.define EQU =

LZ4_SRC		EQU $00
LZ4_DST		EQU $02
LZ4_END		EQU $04
COUNT		EQU $06
DELTA		EQU $08
LZ4_SRC1	EQU $0A
LZ4_SRC2	EQU $0C

;; 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

; dos33 zero page = 26-2f, 35-38, 3e 3f 40-4d 
; overlap applesoft  67-6a,6f,70,af,b0,ca-cd,d8 


; DOS33: Confirmed kills $68


REGISTER_DUMP2	EQU $60
A_FINE_TONE2	EQU $60
A_COARSE_TONE2	EQU $61
B_FINE_TONE2	EQU $62
B_COARSE_TONE2	EQU $63
C_FINE_TONE2	EQU $64
C_COARSE_TONE2	EQU $65
NOISE2		EQU $66
ENABLE2		EQU $67
A_VOLUME2	EQU $68
B_VOLUME2	EQU $69
C_VOLUME2	EQU $6A
ENVELOPE_FINE2	EQU $6B
ENVELOPE_COARSE2	EQU $6C
ENVELOPE_SHAPE2  EQU $6D

;RWTSL		EQU $60
;RWTSH		EQU $61
;DOSBUFL		EQU $62
;DOSBUFH		EQU $63
;FILEML		EQU $64
;FILEMH		EQU $65
				;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

REGISTER_DUMP	EQU $70
A_FINE_TONE	EQU $70
A_COARSE_TONE	EQU $71
B_FINE_TONE	EQU $72
B_COARSE_TONE	EQU $73
C_FINE_TONE	EQU $74
C_COARSE_TONE	EQU $75
NOISE		EQU $76
ENABLE		EQU $77
A_VOLUME	EQU $78
B_VOLUME	EQU $79
C_VOLUME	EQU $7A
ENVELOPE_FINE	EQU $7B
ENVELOPE_COARSE	EQU $7C
ENVELOPE_SHAPE  EQU $7D


COPY_OFFSET	EQU $7E
DECODER_STATE	EQU $7F
				;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
CHUNKSIZE	EQU $80
LZ4_DONE	EQU $81
DECODE_ERROR	EQU $82

A_COLOR		EQU $83
B_COLOR		EQU $84
C_COLOR		EQU $85
COPY_TIME	EQU $86
DECOMPRESS_TIME	EQU $87
TIME_TAKEN	EQU $88
SCREEN_Y	EQU $89
WHICH_FILE	EQU $8A
				;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
RASTERBARS_ON	EQU $8C
				;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
;MB_CHUNK	EQU $92
MB_ADDRL	EQU $91
MB_ADDRH	EQU $92
DONE_PLAYING	EQU $93
;MB_FRAME_DIFF	EQU $94
MB_CHUNK_OFFSET EQU $94


A2_COLOR		EQU $95
B2_COLOR		EQU $96
C2_COLOR		EQU $97

				;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

; 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

INL2	= $f4
INH2	= $f5

       namlo   =       $f6
       namhi   =       $f7
       step    =       $f8     ; state for stepper motor
       tmptrk  =       $f9     ; temporary copy of current track
       phase   =       $fa     ; current phase for /seek



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_BLACK	EQU	$00
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
