antoine-source/pacman/PACMAN.E.S
Antoine Vignau 16b857567f v+1
2024-06-24 23:02:13 +02:00

67 lines
1.7 KiB
ArmAsm

*
* Pac-Man
*
* (c) 1983, Atari
* (s) 2024, Antoine Vignau
*
sprEMPTY = 0 ; three tile possibilities
sprDOT = 1
sprENERGY = 2
nbDOTS = 248 ; 244 normal dots & 4 energizer dots
L0300 = $0300 ; buffer area to save scores
L0800 = $0800 ; $0800..$0BFF
L0C00 = $0C00 ; board buffers per player ($380 bytes)
L1000 = $1000 ; P2
L1380 = $1380 ; P3
L1700 = $1700 ; P4
L1A80 = $1A80 ; P5
TEXT = $0400
TEXT2 = $0800
HGR = $2000
HGR2 = $4000
CH = $24 ; firmware X-pos
CV = $25 ; firmware Y-pos
zpHISCORE = $00 ; (3 bytes) high score
zpXBIT = $03 ; X from X-coord to X-bit offset
zpXCOL = $04 ; Y from X-coord to X-col in screen
zpDECSCORE = $05 ; (3 bytes) the decimal score
zpTEMP1 = $08
zpTEMP2 = $09
zpTEMP3 = $0a
zpTEMP4 = $0b
zpX1 = $0c ; (word) start X
zpX2 = $0e ; (word) end X
zpY1 = $10 ; (byte) start Y
zpY2 = $11 ; (byte) end Y
zpHGR = $12 ; (word) pointer to HGR world
zpPTR1 = $14 ; (word) 1st pointer
zpPTR2 = $16 ; (word) 2nd pointer
zpSPRHEIGHT = $18 ; (byte) sprite height in lines
zpSPRWIDTH = $1a ; (byte) sprite width in bytes
zpPTR3 = $1b ; (word)
zpMONITOR = $1d ; 0: b&w, 1: color
zp1E = $1e
zp1F = $1f
* $20 to $4F are not used
zpCURPLAYER = $50 ; current player index
zpNBPLAYERS = $51 ; number of players (1..5)
zpCURSCORE = $52 ; (3 bytes) score
zpRANK = $55 ; rank number (ie. the level)
zpNBDOTS = $56 ; number of dots on the board (248 by default)
zpNBLIVES = $58 ; number of lives (bit 7 is set)
zpPTRFRUIT = $5c ; (word) pointer to the fruit sprite
zpDOTTEMPO = $5e ; tempo for energizer dot blinking
zpDOTFLAG = $5f ; 0: show dots, 1: hide dots
zpE0 = $e0 ; 1: Inky, 2: Pinky, 3: Blinky, 4: Clyde
zpDEMO = $e8 ; 0: game, 1: demo
zpFGMUSIC = $f4 ; 0: music never played, 1: intro music played
zpDEVICE = $f5 ; 0: joypad, 1: joystick