Memory Layout
Return to previous page
0000-3fff ROM
0000 - 0fff pacman 6e mspacman boot1
1000 - 1fff pacman 6f mspacman boot2
2000 - 2fff pacman 6h mspacman boot3
3000 - 3fff pacman 6j mspacman boot4
4000-43ff Video RAM
4400-47ff Color RAM
4c00-4fff RAM
8000-9fff ROM (Ms Pac-Man and Ponpoko only)
8000 - 8fff mspacman boot5
9000 - 9fff mspacman boot6
a000-bfff ROM (Ponpoko only)
memory mapped ports:
read:
5000 IN0
5040 IN1
5080 DSW 1
50c0 DSW 2 (Ponpoko only)
IN0:
01 up
02 left
04 right
08 down
10 rack test
20 coin 1
40 coin 2
80 coin 3
IN1:
01 up
02 left
04 right
08 down
10 service
20 start 1
40 start 2
80 cabinet (set - upright)
write:
4ff0-4fff 8 pairs of two bytes:
the first byte contains the sprite image number (bits 2-7),
Y flip (bit 0),
X flip (bit 1);
the second byte the color
5000 interrupt enable
5001 sound enable
5002 ????
5003 flip screen
5004 1 player start lamp
5005 2 players start lamp
5006 coin lockout
5007 coin counter
5040-5044 sound voice 1 accumulator (nibbles) (used by the sound hardware only)
5045 sound voice 1 waveform (nibble)
5046-5049 sound voice 2 accumulator (nibbles) (used by the sound hardware only)
504a sound voice 2 waveform (nibble)
504b-504e sound voice 3 accumulator (nibbles) (used by the sound hardware only)
504f sound voice 3 waveform (nibble)
5050-5054 sound voice 1 frequency (nibbles)
5055 sound voice 1 volume (nibble)
5056-5059 sound voice 2 frequency (nibbles)
505a sound voice 2 volume (nibble)
505b-505e sound voice 3 frequency (nibbles)
505f sound voice 3 volume (nibble)
5060-506f Sprite coordinates, x/y pairs for 8 sprites
50c0 Watchdog reset
I/O ports:
OUT on port $0 sets the interrupt vector
Return to previous page