diff --git a/chiptune_player/Makefile b/chiptune_player/Makefile index ff419374..65beb217 100644 --- a/chiptune_player/Makefile +++ b/chiptune_player/Makefile @@ -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 diff --git a/chiptune_player/chiptune_player.dsk b/chiptune_player/chiptune_player.dsk index f56a2b9d..92fd25fb 100644 Binary files a/chiptune_player/chiptune_player.dsk and b/chiptune_player/chiptune_player.dsk differ diff --git a/chiptune_player/hello.bas b/chiptune_player/hello.bas new file mode 100644 index 00000000..333805b0 --- /dev/null +++ b/chiptune_player/hello.bas @@ -0,0 +1,4 @@ + 5 PRINT + 10 PRINT "LOADING VMW CHIPTUNE PLAYER V1.2" + 50 PRINT + 100 PRINT CHR$ (4)"BRUN CHIPTUNE_PLAYER" diff --git a/chiptune_player/interrupt_handler.s b/chiptune_player/interrupt_handler.s index 8eac0864..05240ae9 100644 --- a/chiptune_player/interrupt_handler.s +++ b/chiptune_player/interrupt_handler.s @@ -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