Memory Map of Pac-Man


This is extremely preliminary... Bear with me....

Address
Bus Cycle
Affect
0000 0000 0000 0000
Read/Write
Start of ROM
0011 1111 1111 1111
Read/Write
End of ROM
0100 0000 0000 0000
Read/Write
Start of Character Video RAM (See below)
0100 0011 1111 1111
Read/Write
End of Character Video RAM
0100 0100 0000 0000
Read/Write
Start of Character Color RAM
0100 0111 1111 1111
Read/Write
End of Character Color RAM
0100 1000 0000 0000
Read/Write
??? Something to do with sprites ???
0100 10?? ???? ????
Read/Write
End of Sprite RAM
0100 1011 1111 1111
Read/Write
End of RAM
0101 0000 00XX XXXX
Write
out
0101 0000 0100 XXXX
Write
WR0
0101 0000 0101 XXXX
Write
WR1
0101 0000 0110 XXXX
Write
WR2
0101 0000 0111 XXXX
Write
Not Used
0101 0000 10XX XXXX
Write
Not Used
0101 0000 11XX XXXX
Write
Watch Dog Reset
0101 0000 00XX XXXX
Read
IN0 - Data bus:
v
Bit
7
6
5
4
3
2
1
0
Meaning
CREDIT
COIN2
COIN1
DIP6
DOWN
RIGHT
LEFT
UP
0101 0000 01XX XXXX
Read
IN1 - Data bus:
Bit
7
6
5
4
3
2
1
0
Meaning
TABLE
START1
START2
TEST
DOWN2
RIGHT2
LEFT2
UP2
0101 0000 10XX XXXX
Read
DIPSWITCH - Data bus:
Bit
7
6
5
4
3
2
1
0
Meaning
Solder1
Solder2
DIP5
DIP4
DIP3
DIP2
DIP1
DIP0
0101 0000 11XX XXXX
Read
Not Used
XXXX XXXX XXXX XXXX
IN/OUT
Interrupt Register


Character RAM Layout

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
VVVVVVVVVVVVVVVVVVVVVVVVVVVV
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Key:

XVThis is a standard screen location.

XThis location exists, but is not visible on the screen.

This is not visible on the screen, nor is there any memory associated with this block. It is a placeholder.

The direction of the arrow gives the direction of the next character more or less.

Character RAM starts at 0x4000.

XThis is offset 0x00 in character memory. Therefore, if you write into location 0x4000 it will go here.

XThis is offset 0x20 in character memory.

This is offset 0x40 in character memory.

This is offset 0x60 in character memory.

The rest of the blue section continues down and to the left.

XThis is offset 0x3C0 in character memory.

XThis is offset 0x3E0 in character memory.

******If you have any trouble understanding this, e-mail me, (david@indigita.com) and I will attempt to make it more clear.


email: david@indigita.com