diff --git a/pt3_player/hardware.inc b/pt3_player/hardware.inc new file mode 100644 index 00000000..3b884c55 --- /dev/null +++ b/pt3_player/hardware.inc @@ -0,0 +1,91 @@ +;; Firmware Routines and Hardware Locations + + +KEYPRESS = $C000 +KEYRESET = $C010 + +;; SOFT SWITCHES +CLR80COL = $C000 ; PAGE0/PAGE1 normal +SET80COL = $C001 ; PAGE0/PAGE1 switches PAGE0 in Aux instead +EIGHTYCOL = $C00D +SPEAKER = $C030 +SET_GR = $C050 +SET_TEXT = $C051 +FULLGR = $C052 +TEXTGR = $C053 +PAGE0 = $C054 +PAGE1 = $C055 +LORES = $C056 ; Enable LORES graphics +HIRES = $C057 ; Enable HIRES graphics +AN3 = $C05E ; Annunciator 3 + +PADDLE_BUTTON0 = $C061 +PADDL0 = $C064 +PTRIG = $C070 + +;; BASIC ROUTINES + +NORMAL = $F273 + +;; MONITOR ROUTINES + +HLINE = $F819 ;; HLINE Y,$2C at A +VLINE = $F828 ;; VLINE A,$2D at Y +CLRSCR = $F832 ;; Clear low-res screen +CLRTOP = $F836 ;; clear only top of low-res screen +SETCOL = $F864 ;; COLOR=A +TEXT = $FB36 +TABV = $FB5B ;; VTAB to A +BASCALC = $FBC1 ;; +VTAB = $FC22 ;; VTAB to CV +HOME = $FC58 ;; Clear the text screen +WAIT = $FCA8 ;; delay 1/2(26+27A+5A^2) us +SETINV = $FE80 ;; INVERSE +SETNORM = $FE84 ;; NORMAL +COUT = $FDED ;; output A to screen +COUT1 = $FDF0 ;; output A to screen +CROUT = $FD8E ;; send a RETURN +CROUT1 = $FD8B ;; send a RETURN and clear end of line +PRBYTE = $FDDA +PRHEX = $FDE3 + +;; Applesoft routines +HCLR = $F3F2 +;HGR_PAGE = $E6 + + + +COLOR_BLACK = 0 +COLOR_RED = 1 +COLOR_DARKBLUE = 2 +COLOR_PURPLE = 3 +COLOR_DARKGREEN = 4 +COLOR_GREY = 5 +COLOR_MEDIUMBLUE = 6 +COLOR_LIGHTBLUE = 7 +COLOR_BROWN = 8 +COLOR_ORANGE = 9 +COLOR_GREY2 = 10 +COLOR_PINK = 11 +COLOR_LIGHTGREEN = 12 +COLOR_YELLOW = 13 +COLOR_AQUA = 14 +COLOR_WHITE = 15 + +COLOR_BOTH_BLACK = $00 +COLOR_BOTH_RED = $11 +COLOR_BOTH_DARKBLUE = $22 +COLOR_BOTH_DARKGREEN = $44 +COLOR_BOTH_GREY = $55 +COLOR_BOTH_MEDIUMBLUE = $66 +COLOR_BOTH_LIGHTBLUE = $77 +COLOR_BOTH_BROWN = $88 +COLOR_BOTH_ORANGE = $99 +COLOR_BOTH_PINK = $BB +COLOR_BOTH_LIGHTGREEN = $CC +COLOR_BOTH_YELLOW = $DD +COLOR_BOTH_AQUA = $EE +COLOR_BOTH_WHITE = $FF + +AUX_BOTH_MEDIUMBLUE = $33 ; 0011 0011 +AUX_BOTH_GREY = $AA ; 1010 1010 diff --git a/pt3_player/pt3_dumper.s b/pt3_player/pt3_dumper.s index 4a6bed82..1d3554e4 100644 --- a/pt3_player/pt3_dumper.s +++ b/pt3_player/pt3_dumper.s @@ -4,6 +4,7 @@ ; we re-route this to the printer in Slot #1 for debugging .include "zp.inc" +.include "hardware.inc" PT3_LOC = $4000 diff --git a/pt3_player/pt3_player.s b/pt3_player/pt3_player.s index 15a377ac..9f263a71 100644 --- a/pt3_player/pt3_player.s +++ b/pt3_player/pt3_player.s @@ -4,6 +4,7 @@ ; zero page definitions .include "zp.inc" +.include "hardware.inc" ; Location the files load at. ; If you change this, you need to update the Makefile diff --git a/pt3_player/pt3_table_test.s b/pt3_player/pt3_table_test.s index 030939ce..84769554 100644 --- a/pt3_player/pt3_table_test.s +++ b/pt3_player/pt3_table_test.s @@ -4,6 +4,7 @@ ; we re-route this to the printer in Slot #1 for debugging .include "zp.inc" +.include "hardware.inc" PT3_LOC = $4000 diff --git a/pt3_player/pt3_timer.s b/pt3_player/pt3_timer.s index ea878f77..af313ce7 100644 --- a/pt3_player/pt3_timer.s +++ b/pt3_player/pt3_timer.s @@ -1,6 +1,7 @@ ; PT3 Timer -- times how long it takes .include "zp.inc" +.include "hardware.inc" PT3_LOC = $4000 diff --git a/pt3_player/zp.inc b/pt3_player/zp.inc index 86e8478a..4c171ba5 100644 --- a/pt3_player/zp.inc +++ b/pt3_player/zp.inc @@ -43,24 +43,6 @@ DOSBUFL = $62 DOSBUFH = $63 FILEML = $64 FILEMH = $65 - ;TURNING = $60 - ;SCREEN_X = $61 ; not used? - ;SCREEN_Y = $62 - - - ;ANGLE = $63 - ;HORIZ_SCALE_I = $64 - ;HORIZ_SCALE_F = $65 - ;FACTOR_I = $66 - ;FACTOR_F = $67 - ;DX_I = $68 - ;DX_F = $69 - ;SPACEX_I = $6A - ;SPACEX_F = $6B - ;CX_I = $6C - ;CX_F = $6D - ;DY_I = $6E - ;DY_F = $6F AY_REGISTERS = $70 A_FINE_TONE = $70 @@ -87,9 +69,6 @@ ORNAMENT_H = $83 SAMPLE_L = $84 SAMPLE_H = $85 - - - DECODE_ERROR = $90 A_COLOR = $91 B_COLOR = $92 @@ -163,93 +142,3 @@ INH = $FD OUTL = $FE OUTH = $FF - - -KEYPRESS = $C000 -KEYRESET = $C010 - -;; SOFT SWITCHES -CLR80COL = $C000 ; PAGE0/PAGE1 normal -SET80COL = $C001 ; PAGE0/PAGE1 switches PAGE0 in Aux instead -EIGHTYCOL = $C00D -SPEAKER = $C030 -SET_GR = $C050 -SET_TEXT = $C051 -FULLGR = $C052 -TEXTGR = $C053 -PAGE0 = $C054 -PAGE1 = $C055 -LORES = $C056 ; Enable LORES graphics -HIRES = $C057 ; Enable HIRES graphics -AN3 = $C05E ; Annunciator 3 - -PADDLE_BUTTON0 = $C061 -PADDL0 = $C064 -PTRIG = $C070 - -;; BASIC ROUTINES - -NORMAL = $F273 - -;; MONITOR ROUTINES - -HLINE = $F819 ;; HLINE Y,$2C at A -VLINE = $F828 ;; VLINE A,$2D at Y -CLRSCR = $F832 ;; Clear low-res screen -CLRTOP = $F836 ;; clear only top of low-res screen -SETCOL = $F864 ;; COLOR=A -TEXT = $FB36 -TABV = $FB5B ;; VTAB to A -BASCALC = $FBC1 ;; -VTAB = $FC22 ;; VTAB to CV -HOME = $FC58 ;; Clear the text screen -WAIT = $FCA8 ;; delay 1/2(26+27A+5A^2) us -SETINV = $FE80 ;; INVERSE -SETNORM = $FE84 ;; NORMAL -COUT = $FDED ;; output A to screen -COUT1 = $FDF0 ;; output A to screen -CROUT = $FD8E ;; send a RETURN -CROUT1 = $FD8B ;; send a RETURN and clear end of line -PRBYTE = $FDDA -PRHEX = $FDE3 - -;; Applesoft routines -HCLR = $F3F2 -;HGR_PAGE = $E6 - - - -COLOR_BLACK = 0 -COLOR_RED = 1 -COLOR_DARKBLUE = 2 -COLOR_PURPLE = 3 -COLOR_DARKGREEN = 4 -COLOR_GREY = 5 -COLOR_MEDIUMBLUE = 6 -COLOR_LIGHTBLUE = 7 -COLOR_BROWN = 8 -COLOR_ORANGE = 9 -COLOR_GREY2 = 10 -COLOR_PINK = 11 -COLOR_LIGHTGREEN = 12 -COLOR_YELLOW = 13 -COLOR_AQUA = 14 -COLOR_WHITE = 15 - -COLOR_BOTH_BLACK = $00 -COLOR_BOTH_RED = $11 -COLOR_BOTH_DARKBLUE = $22 -COLOR_BOTH_DARKGREEN = $44 -COLOR_BOTH_GREY = $55 -COLOR_BOTH_MEDIUMBLUE = $66 -COLOR_BOTH_LIGHTBLUE = $77 -COLOR_BOTH_BROWN = $88 -COLOR_BOTH_ORANGE = $99 -COLOR_BOTH_PINK = $BB -COLOR_BOTH_LIGHTGREEN = $CC -COLOR_BOTH_YELLOW = $DD -COLOR_BOTH_AQUA = $EE -COLOR_BOTH_WHITE = $FF - -AUX_BOTH_MEDIUMBLUE = $33 ; 0011 0011 -AUX_BOTH_GREY = $AA ; 1010 1010