Feb 112012
I recently offered to help a fellow UKVAC member out with recreating a 82S153 in a GAL16V8.
We were originally hoping to get a dump of the original chip and convert it over but we were sent a Verilog implementation.
After a couple of attempt we finally got it working and it is now available for download.
The GAL in question replaces the PLD at 7C, connected to the sound Z80 CPU.
Massive thanks to Adam over at https://ppclone.blogspot.com/ for providing his code.
4 Responses to “Pole Position PAL”
Sorry, the comment form is closed at this time.
/* Dedicated input pins */
pin 1 = I0;
pin 2 = I1;
pin 3 = I2;
pin 4 = I3;
pin 5 = I4;
pin 6 = I5;
pin 7 = I6;
pin 8 = I7;
pin 9 = I8;
pin 11 = I9;
/* Dedicated output pins */
pin 12 = B0;
pin 13 = B1;
pin 14 = B2;
pin 15 = B3;
pin 16 = B4;
pin 17 = B5;
pin 18 = B6;
pin 19 = B7;
/* Output and output enable equations */
!B7 = !I0 & I1 & !I2 & I3 & !I8;
!B6 = I0 & !I1 & !I2 & I3 & !I8;
!B5 = !I0 & !I1 & !I2 & I3 & !I8;
!B4 = I3 & !I4 & I5;
!B3 = I2 & !I3 & !I4 & I5;
!B2 = I0 & I1 & !I2 & !I3 & !I4 & I5 & I6 & !I7
# I0 & I1 & !I2 & !I3 & !I4 & I5 & !I6 & I7;
!B1 = !I0 & I1 & !I2 & !I3 & !I4 & I5 & !I9
# I0 & !I1 & !I2 & !I3 & !I4 & I5 & I9;
!B0 = !I0 & !I1 & !I2 & !I3 & !I4 & I5 & !I9
# I0 & !I1 & !I2 & !I3 & !I4 & I5 & !I9
# !I0 & !I1 & !I2 & !I3 & !I4 & I5 & I9;
Pole Position 7C – works
Thats pretty much what I ended up with only i used a XOR on pin 14 (cmos ram chipselect) instead of an OR, same functionality just a different way of doing it.
Thanks for posting anyway, I didnt want to post up the the equations I was working on as they were not my own work.
Here is pp 2n . 🙂
Name Poleposition 2n;
Device g16v8as;
/* Dedicated input pins */
pin 1 = I0;
pin 2 = I1;
pin 3 = I2; /* Unused input */
pin 4 = I3;
pin 5 = I4;
pin 6 = I5;
pin 7 = I6;
pin 8 = I7;
pin 9 = I8;
pin 11 = I9;
/* Input and/or bidirectional pins */
pin 12 = B0;
pin 19 = B7;
/* Dedicated output pins */
pin 13 = B1;
pin 14 = B2;
pin 15 = B3;
pin 16 = B4;
pin 17 = B5;
pin 18 = B6;
* Output and output enable equations */
!B6 = I1 & !I3 & !I4 & I6 & !I9
# I1 & !I3 & I4 & I6 & !I9
# I1 & !I3 & !I4 & I6 & I9;
!B5 = I1 & !I3 & !I5 & !I6 & I7 & I8 & !B0;
!B4 = !I0 & I1 & !I3 & I6 & !B7
# !I0 & I1 & !I3 & I6 & B7
# I0 & I1 & !I3 & I6 & B7;
!B3 = I1 & !I3 & I5 & !I6 & I7;
!B2 = I1 & !I3 & I5 & !I6 & !I7;
!B1 = I1 & !I3 & !I4 & I6 & !I9
# I1 & !I3 & !I4 & I6 & I9
# I1 & !I3 & I4 & I6 & I9;
It works ….
/* Dedicated output pins */
pin 13 = B1;
pin 14 = B2;
pin 15 = B3;
pin 16 = B4;
pin 17 = B5;
pin 18 = B6;
/* Output and output enable equations */
!B6 = I1 & !I3 & !I4 & I6 & !I9
# I1 & !I3 & I4 & I6 & !I9
# I1 & !I3 & !I4 & I6 & I9;
!B5 = I1 & !I3 & !I5 & !I6 & I7 & I8 & !B0;
!B4 = !I0 & I1 & !I3 & I6 & !B7
# !I0 & I1 & !I3 & I6 & B7
# I0 & I1 & !I3 & I6 & B7;
!B3 = I1 & !I3 & I5 & !I6 & I7;
!B2 = I1 & !I3 & I5 & !I6 & !I7;
!B1 = I1 & !I3 & !I4 & I6 & !I9
# I1 & !I3 & !I4 & I6 & I9
# I1 & !I3 & I4 & I6 & I9;
Brilliant stuff, thanks a lot