Cursito intermedio de asm para la C64: Haciendo un Chipdisk

PVM

  • PVM
  • PVM (aka pungas) is a mutant collective from Argentina. Electronic art/hack/social activism and disruptive artifacts in commodore64, PC and other technologies.
    • Mi blog
« Publicado el: 09/03/2017 »

Introducción

Hola. Primero bajarse el Chipdisk para darse una idea de lo que abarca el cursito:

Listo, empecemos. Tocar un sid en una Commodore 64 es muy sencillo:

setup:
    sei                 ; prohibir interrupciones

    lda #<irq_vector    ; setear vector IRQ para ser llamado
    sta $0314           ; una vez por cada refresh de pantalla
    lda #>irq_vector
    sta $0315           ; el vector $314/$315 apunta a la rutina raster IRQ

    lda #$00
    jsr $1000           ; inicializar sid para que toque canción 0
                        ; ya que un sid puede tener más de una canción

    cli                 ; habilitar interrupciones nuevamente
    rts

irq_vector:
    asl $d019           ; ACK interrupción de raster

    jsr $1003           ; llamar a tocar el sid

    jmp $ea31           ; salir de la interrupción

...y listo. Cada sid sabe tocarse solo, ya que un sid es código + data. La llamada jsr $1003 hace toda la magia, y ese código esta dentro del sid.

Lo complicado de hacer un Chipdisk, no es tocar el sid, sino todo lo demás. Veamos el porqué.