;	@com.wudsn.ide.asm.mainsourcefile=PACMAN.ASM

;	SPACE	2

;	Operating System Equates  ------------------------

;	SPACE	1

DOSVEC	EQU	$000A	;this program's start vector

DOSINI	EQU	$000C	;this program's init vector

POKMSK	EQU	$0010	;mask for POKEY IRQ enable

BRKKEY	EQU	$0011	;BREAK flag

RTCLOK	EQU	$0012	;60 Hz clock

ATRACT	EQU	$4D
DRKMSK	EQU	$4E
COLRSH	EQU	$4F

VDSLST	EQU	$0200

VIMIRQ	EQU	$0216	;immediate IRQ vector

SRTIMR	EQU	$022B	;software-driven keydown timer

SDMCTL	EQU	$022F	;DMA control shadow

SDLSTL	EQU	$0230	;display list pointer (low byte)

SDLSTH	EQU	$0231	;display List pointer (high byte)

SSKCTL	EQU	$0232	;serial port control

LPENH	EQU	$0234	;light pen horizontal position

LPENV	EQU	$0235	;light pen vertical postion

GPRIOR	EQU	$026F	;player priority select

PADDL0	EQU	$0270	;pot 0

STICK0	EQU	$0278	;joystick 0 shadow

STRIG0	EQU	$0284	;red button 0 shadow
STRIG1	EQU	$0285	;red button 1 shadow

SHFLK	EQU	$02BE	;shift-lock flag

PCOLR0	EQU	$02C0	;player color shadow
PCOLR1	EQU	$02C1	
PCOLR2	EQU	$02C2	
PCOLR3	EQU	$02C3	

COLOR0	EQU	$02C4	;playfield color shadow
COLOR1	EQU	$02C5
COLOR2	EQU	$02C6
COLOR3	EQU	$02C7

MEMLO	EQU	$02E7	;start of user memory
KEYDEL	EQU	$02F1	;KEY DELAY

CHART	EQU	$2F3	;character control

CHBAS	EQU	$2F4	;character base address

CH	EQU	$02FC	;character buffer

DDEVIC	EQU	$0300	;peripheral bus ID number

DUNIT	EQU	$0301	;unit number

DCOMND	EQU	$0302	;bus command ordinal

DSTATS	EQU	$0303	;command type/status return

DBUFLO	EQU	$0304	;data buffer pointer

DBUFHI	EQU	$0305

DTIMLO	EQU	$0306	;device timeout in seconds

DBYTLO	EQU	$0308	;number of bytes transferred

DBYTHI	EQU	$0309

DAUX1	EQU	$030A	;command auxiliary bytes

DAUX2	EQU	$030B

ICCOM	EQU	$0342	;CIO command block

ICBAL	EQU	$0344

ICBAH	EQU	$0345

ICBLL	EQU	$0348

ICBLH	EQU	$0349

ICAX1	EQU	$034A

ICAX2	EQU	$034B

CHRORG	EQU	$E000	;OS charset

CIOV	EQU	$E456	;CIO request vector

SIOV	EQU	$E459	;SIO request vector

SETVBV	EQU	$E45C	;system interrupt init vector

XITVBV	EQU	$E462	;system VBLANK return handler

OSRETN	EQU	$E474	;system WARM START entry

CLICK	EQU	$FCD8	;keyclick routine

;	EJECT

;	Hardware Registers  --------------------------------

;	SPACE	1

HPOSP0	EQU	$D000	;player position registers
HPOSP1	EQU	$D001
HPOSP2	EQU	$D002
HPOSP3	EQU	$D003

M0PF	EQU	$D000	;missile 0 to playfield collision
M1PF	EQU	$D001
M2PF	EQU	$D002
M3PF	EQU	$D003

HPOSM0	EQU	$D004	;horizontal position of missile 0
HPOSM1	EQU	$D005
HPOSM2	EQU	$D006
HPOSM3	EQU	$D007

P0PF	EQU	$D004	;player 0 to playfield collision

M0PL	EQU	$D008	;missile 0 to player collision
M1PL	EQU	$D009
M2PL	EQU	$D00A
M3PL	EQU	$D00B

SIZEP0	EQU	$D008	;player size registers

P0PL	EQU	$D00C	;player 0 to player collision

SIZEM	EQU	$D00C	;sizes for all missiles

GRAFP0	EQU	$D00D	;graphics for player0

TRIG0	EQU	$D010	;joystick controller trigger 0

GRAFM	EQU	$D011	;grahics for all missiles

COLPM0	EQU	$D012	;player color registers
COLPM1	EQU	$D013
COLPM2	EQU	$D014
COLPM3	EQU	$D015

COLPF0	EQU	$D016	;playfield color registers
COLPF1	EQU	$D017
COLPF2	EQU	$D018
COLPF3	EQU	$D019

COLBK	EQU	$D01A	;color-luminance of background

PRIOR	EQU	$D01B	;priority select

VDELAY	EQU	$D01C	;vertical delay

GRACTL	EQU	$D01D	;graphics control register

HITCLR	EQU	$D01E	;collision clear

CONSOL	EQU	$D01F	;console key register

POT0	EQU	$D200	;pot 0

AUDF1	EQU	$D200	;audio channel 1 frequency

AUDC1	EQU	$D201	;audio channel 1 control

AUDF2	EQU	$D202	;audio channel 1 frequency

AUDC2	EQU	$D203	;audio channel 1 control

AUDF3	EQU	$D204	;audio channel 1 frequency

AUDC3	EQU	$D205	;audio channel 1 control

AUDF4	EQU	$D206	;audio channel 1 frequency

AUDC4	EQU	$D207	;audio channel 1 control

AUDCTL	EQU	$D208	;audio control

ALLPOT	EQU	$D208	;read 8 line pot port status

KBCODE	EQU	$D209	;keyboard code

STIMER	EQU	$D209	;start timer

RANDOM	EQU	$D20A	;random number generator

SERIN	EQU	$D20A	;serial port input

SKREST	EQU	$D20A	;reset serial port status

POTGO	EQU	$D20B	;start POT scan sequence

SEROUT	EQU	$D20C	;serial port output

IRQEN	EQU	$D20E	;IRQ enable mask

IRQST	EQU	$D20E	;IRQ status

SKCTL	EQU	$D20F	;serial port control

SKSTAT	EQU	$D20F	;keyboard status register

PORTA	EQU	$D300	;port A

DMACTL	EQU	$D400	;DMA control register

CHACTL	EQU	$D401	;character control

DLISTL	EQU	$D402	;display list pointer (low byte)

DLISTH	EQU	$D403	;display list pointer (high byte)

HSCROL	EQU	$D404	;horizontal scroll register

VSCROL	EQU	$D405	;vertical scroll register

PMBASE	EQU	$D407	;player base address

CHBASE	EQU	$D409	;character base address

WSYNC	EQU	$D40A	;wait for horizontal sync

VCOUNT	EQU	$D40B	;scan line counter

PENH	EQU	$D40C	;light pen horizontal position

PENV	EQU	$D40D	;light pen vertical position

NMIEN	EQU	$D40E	;interrupt enable register

NMIRES	EQU	$D40F	;NMI reset

NMIST	EQU	$D40F	;NMI status
