Memory selection hardware

In the CPC6128, the memory selection hardware is controlled by a PAL chip. The input and output signals of this chip are known and can be found by studying the CPC6128 service manual.

The functions of the PAL chip are also known, as this is well documented, however the truth table and logic operation of the signals are not known.

This document presents a valid logic schematic which would perform the same action as the original chip.
External Signals
 
 
Signal Direction Description
D7 AND D6 IN
D0 IN
/RESET IN
RAMDIS IN "1" to disable ram
D1 IN
D2 IN
NCAS IN
A15 IN
A14 IN
A14OUT OUT final A14 defines memory region to access in bank
A15OUT OUT final A15. defines memory region to access in bank
/IOWR IN "0": I/O Write opertation
/CAS0 OUT "0": selects bank 0 of 64K ram
/CAS1 OUT "0": selects bank 1 of 64K ram
/CPU IN 1MHZ CLOCK
GND

Truth Tables

NOTE:

SELECTION 0

 
Memory Range Block
&0000-&3fff 0
&4000-&7fff 1
&8000-&bfff 2
&c000-&ffff 3

 
INPUTS OUTPUTS
D2 D1 D0 A15 A14 /CAS1 /CAS0 A15OUT A14OUT
0 0 0 0 0 1 0 0 0
0 0 0 0 1 1 0 0 1
0 0 0 1 0 1 0 1 0
0 0 0 1 1 1 0 1 1

SELECTION 1

 
Memory Range Block
&0000-&3fff 0
&4000-&7fff 1
&8000-&bfff 2
&c000-&ffff 3*

 
 
INPUTS OUTPUTS
D2 D1 D0 A15 A14 /CAS1 /CAS0 A15OUT A14OUT
0 0 1 0 0 1 0 0 0
0 0 1 0 1 1 0 0 1
0 0 1 1 0 1 0 1 0
0 0 1 1 1 0 1 1 1

SELECTION 2

 
Memory Range Block
&0000-&3fff 0*
&4000-&7fff 1*
&8000-&bfff 2*
&c000-&ffff 3*

 
 
INPUTS OUTPUTS
D2 D1 D0 A15 A14 /CAS1 /CAS0 A15OUT A14OUT
0 1 0 0 0 0 1 0 0
0 1 0 0 1 0 1 0 1
0 1 0 1 0 0 1 1 0
0 1 0 1 1 0 1 1 1

SELECTION 3

 
Memory Range Block
&0000-&3fff 0
&4000-&7fff 3
&8000-&bfff 2
&c000-&ffff 3*

 
 
INPUTS OUTPUTS
D2 D1 D0 A15 A14 /CAS1 /CAS0 A15OUT A14OUT
0 1 1 0 0 1 0 0 0
0 1 1 0 1 1 0 1 1
0 1 1 1 0 1 0 1 0
0 1 1 1 1 0 1 1 1

SELECTION 4

 
Memory Range Block
&0000-&3fff 0
&4000-&7fff 0*
&8000-&bfff 2
&c000-&ffff 3

 
 
INPUTS OUTPUTS
D2 D1 D0 A15 A14 /CAS1 /CAS0 A15OUT A14OUT
1 0 0 0 0 1 0 0 0
1 0 0 0 1 0 1 0 0
1 0 0 1 0 1 0 1 0
1 0 0 1 1 1 0 1 1

SELECTION 5

 
Memory Range Block
&0000-&3fff 0
&4000-&7fff 1*
&8000-&bfff 2
&c000-&ffff 3

 
 
INPUTS OUTPUTS
D2 D1 D0 A15 A14 /CAS1 /CAS0 A15OUT A14OUT
1 0 1 0 0 1 0 0 0
1 0 1 0 1 0 1 0 1
1 0 1 1 0 1 0 1 0
1 0 1 1 1 1 0 1 1

SELECTION 6

  s
Memory Range Block
&0000-&3fff 0
&4000-&7fff 2*
&8000-&bfff 2
&c000-&ffff3

 
 
INPUTS OUTPUTS
D2 D1 D0 A15 A14 /CAS1 /CAS0 A15OUT A14OUT
1 1 0 0 0 1 0 0 0
1 1 0 0 1 0 1 1 0
1 1 0 1 0 1 0 1 0
1 1 0 1 1 1 0 1 1

SELECTION 7

 
Memory Range Block
&0000-&3fff 0
&4000-&7fff 3*
&8000-&bfff 2
&c000-&ffff 3

 
 
INPUTS OUTPUTS
D2 D1 D0 A15 A14 /CAS1 /CAS0 A15OUT A14OUT
1 1 1 0 0 1 0 0 0
1 1 1 0 1 0 1 1 1
1 1 1 1 0 1 0 1 0
1 1 1 1 1 1 0 1 1

 

ALL SELECTIONS

 
INPUTS OUTPUTS
D2 D1 D0 A15 A14 /CAS1 /CAS0 A15OUT A14OUT
0 0 0 0 0 1 0 0 0
0 0 0 0 1 1 0 0 1
0 0 0 1 0 1 0 1 0
0 0 0 1 1 1 0 1 1
0 0 1 0 0 1 0 0 0
0 0 1 0 1 1 0 0 1
0 0 1 1 0 1 0 1 0
0 0 1 1 1 0 1 1 1
0 1 0 0 0 0 1 0 0
0 1 0 0 1 0 1 0 1
0 1 0 1 0 0 1 1 0
0 1 0 1 1 0 1 1 1
0 1 1 0 0 1 0 0 0
0 1 1 0 1 1 0 1 1
0 1 1 1 0 1 0 1 0
0 1 1 1 1 0 1 1 1
1 0 0 0 0 1 0 0 0
1 0 0 0 1 0 1 0 0
1 0 0 1 0 1 0 1 0
1 0 0 1 1 1 0 1 1
1 0 1 0 0 1 0 0 0
1 0 1 0 1 0 1 0 1
1 0 1 1 0 1 0 1 0
1 0 1 1 1 1 0 1 1
1 1 0 0 0 1 0 0 0
1 1 0 0 1 0 1 1 0
1 1 0 1 0 1 0 1 0
1 1 0 1 1 1 0 1 1
1 1 1 0 0 1 0 0 0
1 1 1 0 1 0 1 1 1
1 1 1 1 0 1 0 1 0
1 1 1 1 1 1 0 1 1

Observations