.define EQU =

;; Electric Duet addresses

; These are all "Free" zero page locations
FREQ1		EQU	$06
FREQ2		EQU	$07
DURATION	EQU	$08
INSTRUMENT1	EQU	$09
INSTRUMENT2	EQU	$1D
MADDRL		EQU	$1E
MADDRH		EQU	$1F
LOC4E		EQU	$4E
COUNT256	EQU	$4F


;; LZ4 addresses

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

; 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

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


REGISTER_DUMP2	EQU $80
A_FINE_TONE2	EQU $80
A_COARSE_TONE2	EQU $81
B_FINE_TONE2	EQU $82
B_COARSE_TONE2	EQU $83
C_FINE_TONE2	EQU $84
C_COARSE_TONE2	EQU $85
NOISE2		EQU $86
ENABLE2		EQU $87
A_VOLUME2	EQU $88
B_VOLUME2	EQU $89
C_VOLUME2	EQU $8A
ENVELOPE_FINE2	EQU $8B
ENVELOPE_COARS2	EQU $8C
ENVELOPE_SHAPE2 EQU $8D
LYRICSL		EQU $8E
LYRICSH		EQU $8F

FRAME_COUNT	EQU $90
MB_VALUE	EQU $91
MB_ADDRL	EQU $91
MB_ADDRH	EQU $92
DONE_PLAYING	EQU $93
MB_CHUNK_OFFSET EQU $94
CHUNKSIZE	EQU $95
LZ4_DONE	EQU $96
DECODE_ERROR	EQU $97
COPY_TIME	EQU $98
DECOMPRESS_TIME	EQU $99
TIME_TAKEN	EQU $9A
LYRICS_ACTIVE	EQU $9B
;FORTYCOL	EQU $9C
CURSOR		EQU $9D

; 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
SPRITETEMP	EQU	$F2
XPOS		EQU	$F3
YPOS		EQU	$F4
TEMP		EQU	$FA
TEMPY		EQU	$FB
INL		EQU	$FC
INH		EQU	$FD
OUTL		EQU	$FE
OUTH		EQU	$FF


FORTYCOL	EQU	$300
USEMB		EQU	$301


KEYPRESS	EQU	$C000
KEYRESET	EQU	$C010

;; SOFT SWITCHES
CLR80COL	EQU	$C000	; PAGE0/PAGE1 normal
SET80COL	EQU	$C001	; PAGE0/PAGE1 switches PAGE0 in Aux instead
EIGHTYCOLOFF	EQU	$C00C
EIGHTYCOLON	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
