Skleroza mnie boli a więc wiele podpowiedzi mi będzie potrzebne, aby napisać ponownie coś po ponad 20 latach.
: 04 gru 2019, 22:40
A więc jak w tytule, prace idą opornie, ale cały czas coś tam kombinuję, aktualnie mam taki oto wyciąg z kodu:
Podsumowując $1000 i $1003 to odwołanie do muzyki tworzonej w DMC, problem w tym, że wywołując przerwanie raz program ruszy bez problemu a za drugim razem mi się wiesza. Patrzyłem po moim starym kodzie (który tworzyłem ponad 20 lat temu -a więc i też stąd ta skleroza) i nie wiem w czym problem.
Przerwanie powinno być złapane w momencie otwarcia ramki dolnej (a tym samym górnej), zamiana otwartej ramki na kolor ramki, puszczenie nuty muzycznej, odczekaniu do zejścia ramki górnej i włączenia koloru tła.
Kod: Zaznacz cały
jsr $1000
sei
lda #<irq_01
sta $0314
lda #>irq_01
sta $0315
lda #$0
sta $dc0d
ldy #$0
sty $dc0e
iny
sty $d01a
lda $d011
and #$7f
sta $d011
lda #$fa
sta $d012
cli
Kod: Zaznacz cały
irq_01:
ldx $d020
ldy $d021
lda $d011
pha
and #%11110111
sta $d011
stx $d021
tya
pha
dec $d020
jsr $1003
inc $d020
pla
tay
pla
sta $d011
tya
pha
irq_01b:
lda $d011
and #$80
cmp #$0
bne irq_01b
pla
ldx #$32
irq_01a:
cpx $d012
bne irq_01a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
sta $d021
dec $d019
lda $dc0d
pla
tay
pla
tax
pla
rti
Przerwanie powinno być złapane w momencie otwarcia ramki dolnej (a tym samym górnej), zamiana otwartej ramki na kolor ramki, puszczenie nuty muzycznej, odczekaniu do zejścia ramki górnej i włączenia koloru tła.