diff --git a/chiptune_player/Makefile b/chiptune_player/Makefile new file mode 100644 index 00000000..8d48cf79 --- /dev/null +++ b/chiptune_player/Makefile @@ -0,0 +1,23 @@ +include ../Makefile.inc + +DOS33 = ../dos33fs-utils/dos33 +PNG2GR = ../gr-utils/png2gr + +all: mock_player.dsk + +mock_player.dsk: CHIPTUNE_PLAYER + $(DOS33) -y mock_player.dsk BSAVE -a 0x1000 CHIPTUNE_PLAYER + +CHIPTUNE_PLAYER: chiptune_player.o + ld65 -o CHIPTUNE_PLAYER chiptune_player.o -C ../linker_scripts/apple2_1000.inc + +chiptune_player.o: chiptune_player.s \ + ../asm_routines/mockingboard.s \ + ../asm_routines/lzss_decompress.s \ + chip_title.inc + ca65 -o chiptune_player.o chiptune_player.s -l chiptune_player.lst + +clean: + rm -f *~ TITLE.GR *.o *.lst \ + CHIPTUNE_PLAYER + diff --git a/mockingboard/chip_title.inc b/chiptune_player/chip_title.inc similarity index 100% rename from mockingboard/chip_title.inc rename to chiptune_player/chip_title.inc diff --git a/chiptune_player/chiptune.png b/chiptune_player/chiptune.png new file mode 100644 index 00000000..941756cc Binary files /dev/null and b/chiptune_player/chiptune.png differ diff --git a/mockingboard/chiptune_player.s b/chiptune_player/chiptune_player.s similarity index 100% rename from mockingboard/chiptune_player.s rename to chiptune_player/chiptune_player.s diff --git a/mockingboard/mock_player.dsk b/chiptune_player/mock_player.dsk similarity index 100% rename from mockingboard/mock_player.dsk rename to chiptune_player/mock_player.dsk diff --git a/chiptune_player/zp.inc b/chiptune_player/zp.inc new file mode 100644 index 00000000..a83a7dd0 --- /dev/null +++ b/chiptune_player/zp.inc @@ -0,0 +1,198 @@ +.define EQU = + +;; Zero page monitor routines addresses + +WNDLFT EQU $20 +WNDWDTH EQU $21 +WNDTOP EQU $22 +WNDBTM EQU $23 +CH EQU $24 +CV EQU $25 +GBASL EQU $26 +GBASH EQU $27 +BASL EQU $28 +BASH EQU $29 +H2 EQU $2C +V2 EQU $2D +MASK EQU $2E +COLOR EQU $30 +INVFLG EQU $32 + +; More zero-page addresses +; we try not to conflict with anything DOS, MONITOR or BASIC related + +COLOR1 EQU $E0 +COLOR2 EQU $E1 +MATCH EQU $E2 +XX EQU $E3 +YY EQU $E4 +YADD EQU $E5 +LOOP EQU $E6 +MEMPTRL EQU $E7 +MEMPTRH EQU $E8 +NAMEL EQU $E9 +NAMEH EQU $EA +NAMEX EQU $EB +CHAR EQU $EC +DISP_PAGE EQU $ED +DRAW_PAGE EQU $EE + +FIRST EQU $F0 +LASTKEY EQU $F1 +PADDLE_STATUS EQU $F2 +XPOS EQU $F3 +YPOS EQU $F4 +TEMP EQU $FA +RUN EQU $FA +TEMP2 EQU $FB +TEMPY EQU $FB +INL EQU $FC +INH EQU $FD +OUTL EQU $FE +OUTH EQU $FF + + +;; Flying Routine Only + +TURNING EQU $60 +;SCREEN_X EQU $61 ; not used? +SCREEN_Y EQU $62 +ANGLE EQU $63 +HORIZ_SCALE_I EQU $64 +HORIZ_SCALE_F EQU $65 +FACTOR_I EQU $66 +FACTOR_F EQU $67 +DX_I EQU $68 +DX_F EQU $69 +SPACEX_I EQU $6A +SPACEX_F EQU $6B +CX_I EQU $6C +CX_F EQU $6D +DY_I EQU $6E +DY_F EQU $6F +SPACEY_I EQU $70 +SPACEY_F EQU $71 +CY_I EQU $72 +CY_F EQU $73 +TEMP_I EQU $74 +TEMP_F EQU $75 +DISTANCE_I EQU $76 +DISTANCE_F EQU $77 +SPACEZ_I EQU $78 +SPACEZ_F EQU $79 +DRAW_SPLASH EQU $7A +SPEED EQU $7B +SPLASH_COUNT EQU $7C +OVER_LAND EQU $7D +NUM1L EQU $7E +NUM1H EQU $7F +NUM2L EQU $80 +NUM2H EQU $81 +RESULT EQU $82 ; 83,84,85 +NEGATE EQU $86 ; UNUSED? +LAST_SPACEX_I EQU $87 +LAST_SPACEY_I EQU $88 +LAST_MAP_COLOR EQU $89 +DRAW_SKY EQU $8A +COLOR_MASK EQU $8B +KEY_COUNT EQU $8C +KEY_OFFSET EQU $8D +DRAW_BLUE_SKY EQU $8E +RANDOM_POINTER EQU $8F +FRAME_COUNT EQU $90 +MB_ADDRL EQU $91 +MB_ADDRH EQU $92 +DONE_PLAYING EQU $93 +MB_FRAME_DIFF EQU $94 +LZSS_RL EQU $95 +LZSS_RH EQU $96 +LZSS_COUNT EQU $97 +LZSS_MASK EQU $98 +LZSS_ENDL EQU $99 +LZSS_ENDH EQU $9A +MB_FRAME_DIFF2 EQU $9F + +SHIPY EQU $E4 + +KEYPRESS EQU $C000 +KEYRESET EQU $C010 + +;; SOFT SWITCHES +CLR80COL EQU $C000 ; PAGE0/PAGE1 normal +SET80COL EQU $C001 ; PAGE0/PAGE1 switches PAGE0 in Aux instead +EIGHTYCOL EQU $C00D +SPEAKER EQU $C030 +SET_GR EQU $C050 +SET_TEXT EQU $C051 +FULLGR EQU $C052 +TEXTGR EQU $C053 +PAGE0 EQU $C054 +PAGE1 EQU $C055 +LORES EQU $C056 ; Enable LORES graphics +HIRES EQU $C057 ; Enable HIRES graphics +AN3 EQU $C05E ; Annunciator 3 + +PADDLE_BUTTON0 EQU $C061 +PADDL0 EQU $C064 +PTRIG EQU $C070 + +;; BASIC ROUTINES + +NORMAL EQU $F273 + +;; MONITOR ROUTINES + +HLINE EQU $F819 ;; HLINE Y,$2C at A +VLINE EQU $F828 ;; VLINE A,$2D at Y +CLRSCR EQU $F832 ;; Clear low-res screen +CLRTOP EQU $F836 ;; clear only top of low-res screen +SETCOL EQU $F864 ;; COLOR=A +TEXT EQU $FB36 +TABV EQU $FB5B ;; VTAB to A +BASCALC EQU $FBC1 ;; +VTAB EQU $FC22 ;; VTAB to CV +HOME EQU $FC58 ;; Clear the text screen +WAIT EQU $FCA8 ;; delay 1/2(26+27A+5A^2) us +SETINV EQU $FE80 ;; INVERSE +SETNORM EQU $FE84 ;; NORMAL +COUT EQU $FDED ;; output A to screen +COUT1 EQU $FDF0 ;; output A to screen + + + + + + +COLOR_BLACK EQU 0 +COLOR_RED EQU 1 +COLOR_DARKBLUE EQU 2 +COLOR_PURPLE EQU 3 +COLOR_DARKGREEN EQU 4 +COLOR_GREY EQU 5 +COLOR_MEDIUMBLUE EQU 6 +COLOR_LIGHTBLUE EQU 7 +COLOR_BROWN EQU 8 +COLOR_ORANGE EQU 9 +COLOR_GREY2 EQU 10 +COLOR_PINK EQU 11 +COLOR_LIGHTGREEN EQU 12 +COLOR_YELLOW EQU 13 +COLOR_AQUA EQU 14 +COLOR_WHITE EQU 15 + +COLOR_BOTH_RED EQU $11 +COLOR_BOTH_DARKBLUE EQU $22 +COLOR_BOTH_DARKGREEN EQU $44 +COLOR_BOTH_GREY EQU $55 +COLOR_BOTH_MEDIUMBLUE EQU $66 +COLOR_BOTH_LIGHTBLUE EQU $77 +COLOR_BOTH_BROWN EQU $88 +COLOR_BOTH_ORANGE EQU $99 +COLOR_BOTH_PINK EQU $BB +COLOR_BOTH_LIGHTGREEN EQU $CC +COLOR_BOTH_YELLOW EQU $DD +COLOR_BOTH_AQUA EQU $EE +COLOR_BOTH_WHITE EQU $FF + +AUX_BOTH_MEDIUMBLUE EQU $33 ; 0011 0011 +AUX_BOTH_GREY EQU $AA ; 1010 1010 diff --git a/mockingboard/Makefile b/mockingboard/Makefile index b7f3aba8..44a47eae 100644 --- a/mockingboard/Makefile +++ b/mockingboard/Makefile @@ -3,7 +3,7 @@ include ../Makefile.inc DOS33 = ../dos33fs-utils/dos33 PNG2GR = ../gr-utils/png2gr -all: dump_ed mock_test.dsk mock_player.dsk lzss_compress +all: dump_ed mock_test.dsk lzss_compress mock_test.dsk: KSP_THEME_UNCOMPRESSED KSP_THEME_COMPRESSED \ KSP_THEME_INTERRUPT INTERRUPT_TEST KSP_THEME_6CH @@ -14,10 +14,6 @@ mock_test.dsk: KSP_THEME_UNCOMPRESSED KSP_THEME_COMPRESSED \ $(DOS33) -y mock_test.dsk BSAVE -a 0x1000 INTERRUPT_TEST -mock_player.dsk: CHIPTUNE_PLAYER - $(DOS33) -y mock_player.dsk BSAVE -a 0x1000 CHIPTUNE_PLAYER - - KSP_THEME_COMPRESSED: ksp_theme_compressed.o ld65 -o KSP_THEME_COMPRESSED ksp_theme_compressed.o -C ../linker_scripts/apple2_1000.inc @@ -36,18 +32,6 @@ ksp_theme_6ch.o: ksp_theme_6ch.s \ ksp_title.inc ca65 -o ksp_theme_6ch.o ksp_theme_6ch.s -l ksp_theme_6ch.lst - -CHIPTUNE_PLAYER: chiptune_player.o - ld65 -o CHIPTUNE_PLAYER chiptune_player.o -C ../linker_scripts/apple2_1000.inc - -chiptune_player.o: chiptune_player.s \ - ../asm_routines/mockingboard.s \ - ../asm_routines/lzss_decompress.s \ - ksp_title.inc - ca65 -o chiptune_player.o chiptune_player.s -l chiptune_player.lst - - - KSP_THEME_INTERRUPT: ksp_theme_interrupt.o ld65 -o KSP_THEME_INTERRUPT ksp_theme_interrupt.o -C ../linker_scripts/apple2_4000.inc diff --git a/mockingboard/chiptune.png b/mockingboard/chiptune.png deleted file mode 100644 index 60619ec0..00000000 Binary files a/mockingboard/chiptune.png and /dev/null differ