Autor Tema: Empezando con ensamblador  (Leído 51875 veces)

Manu

  • Commodoremaníaco
  • ****
  • Mensajes: 118
  • SYS 0
    • Ver Perfil
    • Manuel Sagra
Empezando con ensamblador
« en: Mayo 23, 2012, 18:01:16 »
Estoy empezando a hacer un emulador de varios sistemas en Java (incluído el C64), y como no conocía las tripas estoy empezando a meterle mano, al menos con emuladores :P

Uno de mis primeros programas es esta chorrada, que seguro que le hace gracia a más de uno:

Código: [Seleccionar]
    processor   6502
    org    $1000

           lda #$20
clrloop:   sta $0400,x
           sta $0500,x
           sta $0600,x
           sta $0700,x
           dex
           bne clrloop 

start:
           ldy #$2
mainloop:
           sty $d020
           sty $d021
           lda $d012
           cmp #$60
           bne mainloop
           
           ldy #$7
rastloop:
           sty $d020
           sty $d021
           lda $d012
           cmp #$d0
           bne rastloop
           
           jmp start

¿Qué pensáis que sale en pantalla al hacer un sys 4096? xDDDD
The legend will never die

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Empezando con ensamblador
« Respuesta #1 en: Mayo 23, 2012, 21:29:09 »
Tengo que poner en marcha un ensamblador para probar cosas como esta!

* Pon el PRG :P
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

Manu

  • Commodoremaníaco
  • ****
  • Mensajes: 118
  • SYS 0
    • Ver Perfil
    • Manuel Sagra
Re:Empezando con ensamblador
« Respuesta #2 en: Mayo 23, 2012, 22:26:21 »
Aquí tienes el PRG  8)

Programita
The legend will never die

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Empezando con ensamblador
« Respuesta #3 en: Mayo 23, 2012, 23:11:36 »
Aquí tienes el PRG  8)

Programita

¿Estas seguro que eso hace algo?? :D yo no veo nada...

Por cierto, cuenta un poco que herramientas estas usando, etc...
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

Manu

  • Commodoremaníaco
  • ****
  • Mensajes: 118
  • SYS 0
    • Ver Perfil
    • Manuel Sagra
Re:Empezando con ensamblador
« Respuesta #4 en: Mayo 23, 2012, 23:22:58 »
Tienes que cargarlo (yo lo hago en el vice con "x64 raster.prg"), y luego hacer un sys 4096 en basic :)

Para hacerlo de momento no he hecho nada fuera de lo común, salvo documentarme de los registros del VIC II, usar un editor de texto, y ensamblarlo con el Dasm  8)

Ten en cuenta que el raster se hace de forma muy burda, sin interrupciones ni nada :P
« última modificación: Mayo 24, 2012, 08:46:12 por Manu »
The legend will never die

Zonacas

  • Commodoremaníaco
  • ****
  • Mensajes: 111
    • Ver Perfil
Re:Empezando con ensamblador
« Respuesta #5 en: Mayo 24, 2012, 08:37:50 »
España!!! España!!!

Esta Eurocopa es nuestra con este programita :D

Manu

  • Commodoremaníaco
  • ****
  • Mensajes: 118
  • SYS 0
    • Ver Perfil
    • Manuel Sagra
Re:Empezando con ensamblador
« Respuesta #6 en: Mayo 24, 2012, 08:45:02 »
¡Ese es el espíritu! xDDD

A ver si luego publico una nueva versión algo más optimizada :)
The legend will never die

Laddh

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 233
    • Ver Perfil
Re:Empezando con ensamblador
« Respuesta #7 en: Mayo 24, 2012, 09:53:35 »
Version facil para Josepzin  ;)

Código: [Seleccionar]

; 10 SYS (4096)

*=$800

        BYTE        $00, $0E, $08, $0A, $00, $9E, $20, $28, $34, $30, $39, $36, $29, $00, $00, $00

          *=$1000     
          LDA #$20       
CLRLOOP
          STA $0400,X   
          STA $0500,X   
          STA $0600,X   
          STA $0700,X   
          DEX
          BNE CLRLOOP   
START
          LDY #$2       
MAINLOOP
          STY $D020     
          STY $D021     
          LDA $D012     
          CMP #$60       
          BNE MAINLOOP   
          LDY #$7       
RASTLOOP
          STY $D020     
          STY $D021     
          LDA $D012     
          CMP #$D0       
          BNE RASTLOOP   
          JMP START     

Carlos

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 652
    • Ver Perfil
Re:Empezando con ensamblador
« Respuesta #8 en: Mayo 24, 2012, 10:45:57 »
Genial que la gente se vaya animando con la programación del C64.. no pierdo la esperanza de que algún día podamos hacer una colaboración made in foreros :)

PD: Por cierto, alguien sabe que es de Lobogris?? hace tiempo que no se deja ver.

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Empezando con ensamblador
« Respuesta #9 en: Mayo 24, 2012, 11:07:00 »
PD: Por cierto, alguien sabe que es de Lobogris?? hace tiempo que no se deja ver.
Hasta donde sé, Lobogris esta liado con cosas personales...
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Empezando con ensamblador
« Respuesta #10 en: Mayo 24, 2012, 12:03:42 »
Version facil para Josepzin  ;)

Esta tarde lo pruebo!
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

Manu

  • Commodoremaníaco
  • ****
  • Mensajes: 118
  • SYS 0
    • Ver Perfil
    • Manuel Sagra
Re:Empezando con ensamblador
« Respuesta #11 en: Mayo 24, 2012, 14:49:25 »
Ahora lo mismo, con interrupciones raster y música de Snap xDDD

Código: [Seleccionar]
    processor   6502
   
    org $810

           lda #$00
           tax
           tay
           jsr $1000 ; init music
           
           jsr $e544 ; clear screen
           
           sei ; disable interrupts and clear pending irqs
           lda #$7f
           sta $dc0d
           sta $dd0d
           lda #$01
           sta $d01a
           
           lda #$1b ; text mode
           ldx #$08
           ldy #$14
           sta $d011
           stx $d016
           sty $d014
           
           lda #<irq1
           ldx #>irq1
           sta $0314
           stx $0315
           
           ldy #$60 ; first raster interrupt
           sty $d012
           
           lda $dc0d ; clear interrupts and VIC ACK
           lda $dd0d
           asl $d019
           cli
           
loop:
           jmp loop ; loop forever

irq1:
           lda #$7 ; yellow
           sta $d020
           sta $d021
           
           jsr $1003 ; update music
           
           lda #<irq2 ; set the next interrupt vector at raster line RASTER2
           ldx #>irq2
           sta $0314
           stx $0315
           
           ldy #$d0
           sty $d012
           
           asl $d019 ; VIC ACK
           
           jmp $ea81
           
irq2:
           lda #$2 ; red
           sta $d020
           sta $d021
           
           lda #<irq1 ; set the next interrupt vector at raster line RASTER1
           ldx #>irq1
           sta $0314
           stx $0315
           
           ldy #$60
           sty $d012
           
           asl $d019; VIC ACK
           
           jmp $ea81
           
    org $1000-$7e
    INCBIN "snap.sid"

PRG (Luego hacer SYS2064)

¿Alguien sabe porqué se produce ese flickering en los bordes a pesar de que lo primero que haga en la interrupción sea cambiar el color?  :'(
The legend will never die

Manu

  • Commodoremaníaco
  • ****
  • Mensajes: 118
  • SYS 0
    • Ver Perfil
    • Manuel Sagra
Re:Empezando con ensamblador
« Respuesta #12 en: Mayo 24, 2012, 17:58:12 »
Bueno, y ya lo último de hoy...

Sorpresita

Ejecutar el prg y luego hacer un SYS2064

La verdad esto esto es más fácil de lo que pensaba...
The legend will never die

Bieno

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 3957
  • PRINT"ADORA A TU COMMODORE"
    • Ver Perfil
    • bieno64
Re:Empezando con ensamblador
« Respuesta #13 en: Mayo 24, 2012, 18:14:08 »
Genial !!!!!!!!!!! El PAC de Commodore mania. A este paso antes de las 12 nos haces una demo  :)

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Empezando con ensamblador
« Respuesta #14 en: Mayo 24, 2012, 18:38:03 »
Mo-la! un poco mas y ya tenemos "el PRG oficial" de Commodore Manía!!
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com