Hi,
ich versuche gerade mich ein bisschen in Assembler einzuarbeiten. Jetzt hab ich mit SID-Wizard ein kleines SID File erstellt und es mit folgendem Codeschnipsel abgespielt:
Code
- setup:
- sei ; Disable interrupts
- lda #<irq_vector ; Set IRQ vector to be called
- sta $0314 ; Once per screen refresh
- lda #>irq_vector
- sta $0315 ; The $ 314 / $ 315 vector points to the IRQ raster routine
- lda #$00
- jsr $1000 ; Initialize sid to play song 0
- ; because a sid can have more than one song
- cli ; Enable interrupts again
- rts
- irq_vector:
- asl $d019 ; ACK raster interrupt
- jsr $1003 ; Call the sid
- jmp $ea31 ; Exit interrupt
Nur es läuft zu schnell. Ich schätze so um 20-50%. Und das egal ob auf dem echten C64 (PAL) oder in Vice (PAL). In SID Wizard ist auch PAL eingestellt. Der VLC-Player auf dem PC spielt das SID File in korrekter Geschwindigkeit ab.
Jetzt meine Frage: Wo liegt der Fehler?
Verzweifelte Grüße
Wellnestom