Name            TLC-MBC Memory Map Decoder;
Partno          Lattice22V10D;
Revision        01;
Date            29/07/15;
Designer        Clive Thomas;
Company         tlcstuff.uk;
Location        GB;
Assembly        None;
Device          g22v10;

/*******************************************/
/* I/O is in the first $100 bytes starting */
/* at $8000 so there's no loss of ram and  */
/* minimal loss of eeprom at it's start.   */
/* I/O0-2 are on board, while I/O3 is for  */
/* future expansion off-board.             */
/* RAMCS is not really needed, but there   */
/* was a pin left over...                  */
/*******************************************/



/* Pin Layout 
        --------
 PHI2  |1     24| Vcc
 RW    |2     23| /RD
 A15   |3     22| /WR
 A14   |4     21| /RAMCS
 A13   |5     20| /ROMCS
 A12   |6     19| /IO0
 A11   |7     18| /IO1
 A10   |8     17| /IO2
 A9    |9     16| /IO3
 A8    |10    15| A4
 A7    |11    14| A5
 Gnd   |12    13| A6 
        --------
 */


/* Inputs */
Pin 1  =  PHI2;
Pin 2  =  RW;
Pin 3  =  A15;
Pin 4  =  A14;
Pin 5  =  A13;
Pin 6  =  A12;
Pin 7  =  A11;
Pin 8  =  A10;
Pin 9  =  A9;
Pin 10 =  A8;
Pin 11 =  A7;
Pin 13 =  A6;
Pin 14 =  A5;
Pin 15 =  A4;


/* Outputs */
Pin 23 = !RD;
Pin 22 = !WR;
Pin 21 = !RAMCS;  /* Addr Range: $0000-$7FFF */
Pin 20 = !ROMCS;  /* Addr Range: $8100-$FFFF */
Pin 19 = !ACIACS; /* Addr Range: $8000-$800F */ 
Pin 18 = !VIACS;  /* Addr Range: $8010-$801F */ 
Pin 17 = !PCFCS;  /* Addr Range: $8020-$802F */ 
Pin 16 = !IOBCS;  /* Addr Range: $8080-$80FF */ 


/* Rules */
RD     = PHI2 & RW;
WR     = PHI2 & !RW;
RAMCS  = A15;
ROMCS  = A15 & !A11 & !A10 & !A9 &  A8
		# A15 & !A11 & !A10 &  A9 & !A8
		# A15 & !A11 & !A10 &  A9 &  A8
		# A15 & !A11 &  A10 & !A9 & !A8
		# A15 & !A11 &  A10 & !A9 &  A8
		# A15 & !A11 &  A10 &  A9 & !A8
		# A15 & !A11 &  A10 &  A9 &  A8
		# A15 &  A11 & !A10 & !A9 & !A8
		# A15 &  A11 & !A10 & !A9 &  A8
		# A15 &  A11 & !A10 &  A9 & !A8
		# A15 &  A11 & !A10 &  A9 &  A8
		# A15 &  A11 &  A10 & !A9 & !A8
		# A15 &  A11 &  A10 & !A9 &  A8
		# A15 &  A11 &  A10 &  A9 & !A8
		# A15 &  A11 &  A10 &  A9 &  A8;

ACIACS = A15 & !A14 & !A13 & !A12 & !A11 & !A10 & !A9 & !A8 & !A7 & !A6 & !A5 & !A4;
VIACS  = A15 & !A14 & !A13 & !A12 & !A11 & !A10 & !A9 & !A8 & !A7 & !A6 & !A5 &  A4;
PCFCS  = A15 & !A14 & !A13 & !A12 & !A11 & !A10 & !A9 & !A8 & !A7 & !A6 &  A5 & !A4;
IOBCS  = A15 & !A14 & !A13 & !A12 & !A11 & !A10 & !A9 & !A8 &  A7;


