• Please review our updated Terms and Rules here

Reversing PALs for various S100 boards

RichCini

Veteran Member
Joined
Aug 7, 2005
Messages
547
Location
Long Island, NY
All --

I'm in the process of recreating the Lomas Color Magic board (https://github.com/RichCini/LomasBoards/tree/main/Color Magic) and what's holding me up at this point is re-creating the secured PALs. There are 5 PALs and as of now, I can only get a clean reconstruction of one by using the 27C020 brute force trick. I have not yet built a DuPAL, so that's my next option. Lomas didn't publish the PAL equations, but by slim chance, does anyone know if they existed anywhere and/or know someone who worked at Lomas back in the day?

This is a great board -- I want to use it on my Gazelle -- but they're very hard to come by and worth preserving if possible. I borrowed one from a friend so I could finish-up the recreation.

Thanks for any help with this!

RichC
 
Thanks Dave. Appreciate that. I'm really hoping someone on the forums worked there and/or knows Rich Lomas and can get the original equations...or someone with sufficient design skills to re-create them from scratch based on the schematics. That's a bit beyond me at this point.

The other two PALs are 20L10 which the "PAL dumpers" I've found don't read. So at best I can get only the three 16L8 ones done. But still progress.

Thanks!
Rich
 
No problem.

>>> The other two PALs are 20L10 which the "PAL dumpers" I've found don't read. So at best I can get only the three 16L8 ones done. But still progress.

Perhaps we could look at sorting out the "PAL dumper" so it will process the 20L10's? That might be the easier solution...

Dave
 
It looks like DuPAL has Java configuration files for the various PAL devices.

A 20L10 device specification is missing - so I am looking at what is involved at creating one. I have found the NS manual for the 20L10 - of course it is a maximum of 20 inputs and a maximum of 10 outputs - so the device could have various input and output configurations.

Dave
 
I suspect DuPAL will not read it either.

I see from the schematics for the Lomas Color Magic board that both 20L10 devices (U16 and U55) are used with 13 inputs and 9 outputs = 22 signals in total. Plus 2 power pins = 24 pins.

The DuPAL revision 2 BoM states (in the TODO section) to add an additional 74HCT166 to support PAL20L10 devices. I suspect the problem is that the default PCB can only cope with 8 outputs (max). The 20L10 can have a maximum of 10 outputs (so two input devices of 8 bits are required). 9 outputs are physically used on the Lomas Color Magic board - so we can't even fake it...

This also may preclude the 'brute force' approach, unless you have a programmer with a larger address space and more than 8 data bits for input.

Dave
 
Last edited:
Yes Dave, agreed. I did email the DuPAL project owner last week to see if he was working on the 20L10-capable version referenced in the TODO, but I have not heard back. I was just going to build the v2.0 version and at least get the three 16L8 PALs read and saved.

Of three 16L8 PALs (U1, U18, and U61), I've been able to only reproduce U61 properly using this (http://dreamjam.co.uk/emuviews/readpal.php) process. I get inconsistent results on the other two -- fixed-high pins where there should be something else. I've used both the TL866 and CQ-4X readers to grab the raw data. Even though the page says it reads 16L8, the post-processing program references the 16V8 which is, I think, slightly different but backward compatible.

I think I put all of my "working files" on my Github page so you can see them.

Rich
 
Probably more roll your own that you might be looking for but I made one for reading a PAL I needed to replace. Since it was registered and I didn't implement preload it wasn't able to fully reverse the PAL but got what I needed. Yours aren't registered so easier to reverse. See Chip tester for picture and source code. Didn't implement trying to figure out OE.

http://www.pdp8online.com/TI/ti-portable-professional.shtml
 
For some ideas, there's always my blog here on sussing out combinatorial PALs from years ago. But I understand that if it doesn't require an Arduino, nobody's going to give it a second thought....
 
Thanks Chuck and Dave. Chuck, do you have a link to the blog entry? I searched around and the only link I found pointed to 404. So, I must not be using the right search terms.

At this point, I'm game to try anything, especially if I can scale it to the 20L10.

Thanks!
 
Excellent question, Rich. It's time to ask the moderators what happened to everyone's blogs. I posted the original sometime around 2011 and updated it in 2019. Now it seems that all of the blogs have been tossed into the bit bucket.

Mods, what say yout?

FWIW, here's my 2011 post referencing the blog start: https://forum.vcfed.org/index.php?threads/cloning-a-pal-hal-part-1.1069761/
 
Last edited:
Blogs are way down on top page
https://forum.vcfed.org/index.php
Yours
https://forum.vcfed.org/index.php?forums/chuck-g.1069492/

Links in your blog posting to next one are broken so you have to go to each from the top level. Would be good to have them fixed.
But I understand that if it doesn't require an Arduino, nobody's going to give it a second thought...
Suspect I didn't know your posting existed at the time. Since I was checking a registered part I wanted to be able to apply arbitrary patterns so wouldn't have gone with counter approach.
Yup I use adjustable wrenches more than I should also.
 
Perfect! Part 9 mentions an updated program called "ttl16l8" but there's no link (assuming broken along the way). You have that anywhere?

Also, what are your thoughts on expanding this to a 20L10? There's a 74LS150 which is a 16-1 multiplexer but I think falls into the "rare" category at this point?

I would be happy to run this through KiCAD and get some boards made if there's even tangential interest. I have plenty of DOS laptops around with real LPT ports too.

Rich
 
You can (obviously) cascade more '393 counters for the increased number of inputs.

I would disconnect U2A/6 from U4/7 and permanently connect U4/7 to GND (thus permanently enabling the output).

Add a further '151 (let's call it U5) and parallel up U4 and U5 pins 9, 10 and 11.

Permanently connect U5/7 to GND (thus permanently enabling the output).

U5 provides us with with a further 8 inputs without resorting to difficult-to-obtain parts.

However, we now need to switch DATA OUT between the two '151s.

We can do this by adding a '157 to the circuit and wiring pin 1 (select) to U2A/6 (this selects one of the two '151 outputs), pin 2 to U4/5 (the output from the existing '151), pin 3 to U5/5 (the output from the new '151). Pin 4 becomes the new DATA OUT (instead of U4/5).

Sorry for the text instead of a schematic...

This should provide for up to 16 inputs - enough for a 20L10.

Of course, the analysis software will require modifying. I will read Chuck's blog for the analysis software next.

Dave
 
Thanks Dave. I figured I needed more 393's but not sure about the 151. I'll work on a schematic later today and post it on Github so you can see it as a second set of eyes.

Rich
 
Rich,

Sounds like a plan...

U16 and U55 both appear to have 13 inputs and 9 outputs (if I have counted correctly). One more output (9) than will fit into a '151 (8). Adding a second '151 will give you up to 16 inputs. You mentioned the '150 (16:1 multiplexer) in a previous post. Using two '151s and a '157 will use commercially available parts.

Dave
 
I did extend the hardware/software enough to handle the AT&T 6300 Bus Corrector IC--a 16L8 Details escape me, but here's the program that I used. Too many years have gone by to remember the details, however.
 

Attachments

  • tt16l8.zip
    19.5 KB · Views: 3
Yes Dave, agreed. I did email the DuPAL project owner last week to see if he was working on the 20L10-capable version referenced in the TODO, but I have not heard back. I was just going to build the v2.0 version and at least get the three 16L8 PALs read and saved.

Of three 16L8 PALs (U1, U18, and U61), I've been able to only reproduce U61 properly using this (http://dreamjam.co.uk/emuviews/readpal.php) process. I get inconsistent results on the other two -- fixed-high pins where there should be something else. I've used both the TL866 and CQ-4X readers to grab the raw data. Even though the page says it reads 16L8, the post-processing program references the 16V8 which is, I think, slightly different but backward compatible.

I think I put all of my "working files" on my Github page so you can see them.

Rich
The 16V8 can be programmed to function like a 16L8 but they are not "fuse" compatible.
The 16V8 has additional gates that don't exist in the 16L8.

To clone a 16L8 you need to read the part to a .JED file then convert to source ,change the source to 16V8
and recompile to a new .JED file then program the new part.

Years ago I had a program called jed2eqn. I think it's still around.

joe
 
Back
Top