What's new
A

Apocalypse

Hey,

it's been asked several times how to swap the 28 pin 1Mb mask ROMs for EEPROMs or how to convert a Turbo to vanilla OutRun.
The OG fitted PAL (IC46 on the video board, 315-5227A) allows to use either 8 x 1Mb mask ROMs or 32 x 27C256 EPROMs by populating either R3 (27C256) or R4 (1Mb mask ROMs).

Of course you could desolder the 8 first DIP28 sockets to install DIP32 ones instead and use 27C1000 (non JEDEC) EPROMs but not everyone likes/wants/has the skills to modifiy OG hardware.

There's an other completely reversible method consisting of using a modified 315-5227A PAL allowing to use 16 x 27C512 EPROMs instead.
Here's the source code for a drop in replacement using a GAL18V10 chip, feel free to adapt for GAL16V8 (requires 1 wire to accomodate pin 9 not being configurable as an output) or anything else:

Code:
Name     315-5227A_MOD;
PartNo   ;
Date     ;
Revision ;
Designer ;
Company  ;
Assembly ;
Location ;
Device   G18V10;

/* Dedicated input pins */

pin 1   = ADDR_LATCH;     /* Input */
pin 2   = A15;         /* Input */
pin 3   = A16;         /* Input */
pin 4   = A17;         /* Input */
pin 5   = A18;         /* Input */
pin 6   = A19;         /* Input */
pin 7   = ADDR_ON;     /* Input */
pin 8   = SEL;         /* Input (L=27C512=R3, H=1Mb MASK=R4) */

/* Programmable output pins */

pin 9  = OE;     /* Combinatorial output */
pin 11 = CE8;     /* Unused output */
pin 12 = CE7;     /* Unused output */
pin 13 = CE6;     /* Unused output */
pin 14 = CE5;     /* Unused output */
pin 15 = CE4;     /* Unused output */
pin 16 = CE3;     /* Combinatorial output */
pin 17 = CE2;     /* Combinatorial output */
pin 18 = CE1;     /* Combinatorial output */
pin 19 = CE0;     /* Combinatorial output */

/* Output equations */

OE = ADDR_ON & !SEL # ADDR_LATCH & A16 & SEL # !ADDR_LATCH & SEL & OE;

!CE3 = ADDR_LATCH &  A16 &  A17 & !A18 & !SEL # !ADDR_LATCH & !CE3;
!CE2 = ADDR_LATCH & !A16 &  A17 & !A18 & !SEL # !ADDR_LATCH & !CE2;
!CE1 = ADDR_LATCH &  A16 & !A17 & !A18 & !SEL # !ADDR_LATCH & !CE1 # ADDR_LATCH &  A17 & !A18 & !A19 & SEL;
!CE0 = ADDR_LATCH & !A16 & !A17 & !A18 & !SEL # !ADDR_LATCH & !CE0 # ADDR_LATCH & !A17 & !A18 & !A19 & SEL;

/* End */

Cheers!
 
Last edited by a moderator:
Top