memory map to chip locations

Talon2000

Well-known member
Joined
Oct 24, 2008
Messages
2,745
Reaction score
169
Location
Princeton, Texas
Is there a way to correlate the memory maps given in the game manual to the actual chip locations on the board?

For example here's the manual information on Liberator memory map.

There being 12 memory chips.

Is there a book out there that would teach me more about these old processors and memory allocations? I would like to learn more about how memory is accessed.
HEX R/W D7 D6 D5 D4 D3 D2 D2 D0 function
17 ---------+-----+------------------------+------------------------
18 0000 D D D D D D D D XCOORD
19 0001 D D D D D D D D YCOORD
20 0002 D D D BIT MODE DATA
21 ---------+-----+------------------------+------------------------
22 0003-033F D D D D D D D D Working RAM
23 0340-3D3F D D D D D D D D Screen RAM
24 3D40-3FFF D D D D D D D D Working RAM
25 ---------+-----+------------------------+------------------------
26 4000-403F R D D D D D D D D EARD* read from non-volatile memory
27 ---------+-----+------------------------+------------------------
28 5000 R D coin AUX (CTRLD* set low)
29 5000 R D coin LEFT (CTRLD* set low)
30 5000 R D coin RIGHT (CTRLD* set low)
31 5000 R D SLAM (CTRLD* set low)
32 5000 R D SPARE (CTRLD* set low)
33 5000 R D SPARE (CTRLD* set low)
34 5000 R D COCKTAIL (CTRLD* set low)
35 5000 R D SELF-TEST (CTRLD* set low)
36 5000 R D D D D HDIR (CTRLD* set high)
37 5000 R D D D D VDIR (CTRLD* set high)
38 ---------+-----+------------------------+------------------------
39 5001 R D SHIELD 2
40 5001 R D SHIELD 1
41 5001 R D FIRE 2
42 5001 R D FIRE 1
43 5001 R D SPARE (CTRLD* set low)
44 5001 R D START 2
45 5001 R D START 1
46 5001 R D VBLANK
47 ---------+-----+------------------------+------------------------
48 6000-600F W D D D D base_ram*
49 6200-621F W D D D D D D D D COLORAM*
50 6400 W INTACK*
51 6600 W D D D D EARCON
52 6800 W D D D D D D D D STARTLG (planet frame)
53 6A00 W WDOG*
54 ---------+-----+------------------------+------------------------
55 6C00 W D START LED 1
56 6C01 W D START LED 2
57 6C02 W D TBSWP*
58 6C03 W D SPARE
59 6C04 W D CTRLD*
60 6C05 W D COINCNTRR
61 6C06 W D COINCNTRL
62 6C07 W D PLANET
63 ---------+-----+------------------------+------------------------
64 6E00-6E3F W D D D D D D D D EARWR*
65 7000-701F D D D D D D D D IOS2* (Pokey 2)
66 7800-781F D D D D D D D D IOS1* (Pokey 1)
67 8000-EFFF R D D D D D D D D ROM
68 -----------------------------------------------------------------
 
SO you can assume that Dram0 is 0003h to 07ffh or is it Dram11 and that 0800h to 0fffh is Dram1, or is it Dram10.
 
You can't assume anything.

There are 3 ways to figure it out:

1. Read the schematics
2. Trial and error - removing chips or shorting address lines to see what changes
3. Use a logic analyzer to replace the CPU and toggle the address lines to see what gets enabled.
 
Trying to figure it out from the schematics, but I'm not understanding how to do just that. Given what is on the schematic.

libmem.jpg
 
Yes I know that is the overall size but when writing to the memory, you start with 0000h going to 3fffh . Well if I have a memory error writing to say 101Eh knowing that each chip is 0000h-07ffh I'm assuming it should be the second chip in the memory block. Is that correct. Is the memory addressed this way?
 
Yes I know that is the overall size but when writing to the memory, you start with 0000h going to 3fffh . Well if I have a memory error writing to say 101Eh knowing that each chip is 0000h-07ffh I'm assuming it should be the second chip in the memory block. Is that correct. Is the memory addressed this way?

No.
Every one of those 4116s is at memory location 0x101e, and every other location between 0x0000 and 0x3fff.
 
Yeah- if these are one-bit chips, then they comprise a memory bank altogether.

An address triggers access to all of the chips in the bank and they each contribute a bit to the output. (a LITERAL bit).

It looks like you've got 8 bits of data and then 4 share the same input -

have fun-

K
 
Back
Top Bottom