.define EQU = LZ4_SRC EQU $00 LZ4_DST EQU $02 LZ4_END EQU $04 COUNT EQU $06 DELTA EQU $08 ;; 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 REGISTER_DUMP EQU $50 A_FINE_TONE EQU $50 A_COARSE_TONE EQU $51 B_FINE_TONE EQU $52 B_COARSE_TONE EQU $53 C_FINE_TONE EQU $54 C_COARSE_TONE EQU $55 NOISE EQU $56 ENABLE EQU $57 A_VOLUME EQU $58 B_VOLUME EQU $59 C_VOLUME EQU $5A ENVELOPE_FINE EQU $5B ENVELOPE_COARSE EQU $5C ENVELOPE_SHAPE EQU $5D COPY_OFFSET EQU $5E DECODER_STATE EQU $5F ;; 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_VALUE EQU $91 DONE_PLAYING EQU $92 MB_ADDRL EQU $93 MB_ADDRH EQU $94 MB_CHUNK_OFFSET EQU $95 MB_DETECTED EQU $96 WHICH_CHUNK EQU $97 STATE EQU $98 ; 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 SHIPY 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 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