chiptune_player: fix interrupt handler on older Apple II

This commit is contained in:
Vince Weaver 2018-09-04 12:59:05 -04:00
parent 42e4f41997
commit 5d41cc0a0d
4 changed files with 24 additions and 4 deletions

View File

@ -8,8 +8,9 @@ all: chiptune_player.dsk chiptune_unrolled.dsk
$(DOS33):
cd ../dos33fs-utils && make
chiptune_player.dsk: CHIPTUNE_PLAYER ./krw/INTRO2.KRW
chiptune_player.dsk: CHIPTUNE_PLAYER ./krw/INTRO2.KRW HELLO
cp chiptune_empty.dsk chiptune_player.dsk
$(DOS33) -y chiptune_player.dsk SAVE A HELLO
$(DOS33) -y chiptune_player.dsk BSAVE -a 0x0C00 CHIPTUNE_PLAYER
$(DOS33) -y chiptune_player.dsk SAVE B ./krw/CAMOUFLAGE.KRW
$(DOS33) -y chiptune_player.dsk SAVE B ./krw/CHRISTMAS.KRW
@ -53,6 +54,8 @@ chiptune_unrolled.dsk: CHIPTUNE_UNROLLED ./krw/INTRO2.KRW
$(DOS33) -y chiptune_unrolled.dsk SAVE B ./krw/UNIVERSE.KRW
$(DOS33) -y chiptune_unrolled.dsk SAVE B ./krw/WAVE.KRW
HELLO: hello.bas
../asoft_basic-utils/tokenize_asoft < hello.bas > HELLO
CHIPTUNE_PLAYER: chiptune_player.o
ld65 -o CHIPTUNE_PLAYER chiptune_player.o -C ../linker_scripts/apple2_c00.inc

Binary file not shown.

View File

@ -0,0 +1,4 @@
5 PRINT
10 PRINT "LOADING VMW CHIPTUNE PLAYER V1.2"
50 PRINT
100 PRINT CHR$ (4)"BRUN CHIPTUNE_PLAYER"

View File

@ -13,8 +13,14 @@
TIME_OFFSET EQU 13
interrupt_handler:
pha ; save A ; 3
; Should we save X and Y too?
; pha ; save A ; 3
; A is saved in $45 by firmware
txa
pha ; save X
tya
pha ; save Y
; inc $0404 ; debug (flashes char onscreen)
@ -350,7 +356,14 @@ mb_clear_reg:
exit_interrupt:
pla ; restore a ; 4
; pla ; restore a ; 4
pla
tay ; restore Y
pla
tax ; restore X
lda $45 ; restore A
rti ; return from interrupt ; 6