VOGONS


First post, by rpocc

User metadata
Rank Newbie
Rank
Newbie

Hi to all.
Today I would like to introduce here my complete Arduino project: PALDump, version 1.0 1.3

Couple of weeks ago I was trying to revive one of my VGA cards, specifically Hedaka OTIVGA, which I've obtained with one of its PAL chips pulled off. I was struggling searching for an easy to build PAL dumper and to my surprise I coudn't find any related project based on Arduino board. Some PAL-related topics were discussed even here, on Vogons, but neither of them seemed to be simple enough to build with basic DIY tools. So, I've started developing one from scratch and made it to the first working release which I've decided to make public.

It uses Arduino MEGA-2560 mainly due up to 23 needed pins while Uno and other MEGA328-based modules have only 19 (including one shared with Serial RX) which barely enough for PAL16L8 and not enough for PAL20L8.

Main features:

  1. Detection of tri-state outputs using the dedicated probe pin.
  2. Analysis of outputs. It reads each output pin and counts occurunces of each state for all 65K/1M of input combinations, detecting inputs, outputs, I/O or buffered outputs, and builds an internal table of active outputs as the boolean function outputs with addition of Output Enable functions per each buffered output.
  3. Analysis of inputs. It tests each pin that could be used as a logic input and detects if any change at this input doesn't affect output functions. Then it builds a table of usable inputs.
  4. Generation of the truth table. It generates the optimized truth table (with excluded unused inputs) in Berkeley format and transfers it via Serial port (USB/UART1) at 115200 bps.

The output can be fed directly to command-line tool Espresso, which in its turn will generate minimized logic equations, which in their respective turn, may be used almost as-is in pld projects for WinCUPL or other similar software.

During writing and testing this tool, I've dumped couple of PLAs from another OTIVGA card, tried to burn a restored .jed file to ATF16V8B and the board had successfully started with either of its chips replaced by the copy, so I believe this can pass as alpha-test.

It would be great if somebody having required equipment will make dumps of their PALs installed on old PC boards and share them with others. There's no yet such a thing as PLA database, similar to BIOS dumps database but it could appear. I've added first made dumps as examples at the project page and later willing to add more dumps from boards I own with specified identification.

The reason why such thing should exist is the same as BIOS dumps: for situations where there is a known board having a missing PAL. I've finally restored my Hedaka U8 after implementing missing functions presented on another OTIVGA board with different schematic. I'm curious to see a dump/equations from original U8 IC to compare it with mine. A set of ready-to-burn JED and PLD files for two versions os OTIVGA are included to the project page as well.

Last edited by rpocc on 2024-03-04, 16:38. Edited 1 time in total.

Reply 1 of 5, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Wonderful idea and project! Kudos! 🙂💙

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 2 of 5, by majestyk

User metadata
Rank Oldbie
Rank
Oldbie

Did you come across the "DUPAL" project?

https://github.com/DuPAL-PAL-DUmper

They also have a layout for a small PCB with the most common PAL / GAL sockets.

I also support the idea of creating a how to and FAQ here so everybody can dump their PALs / GALS here just like in the BIOS threads.
At the moment I have 5 PALs waiting to be cloned to complete mainboards that have missing PALs.

Reply 3 of 5, by rpocc

User metadata
Rank Newbie
Rank
Newbie
majestyk wrote on 2024-02-25, 20:44:
Did you come across the "DUPAL" project? […]
Show full quote

Did you come across the "DUPAL" project?

https://github.com/DuPAL-PAL-DUmper

They also have a layout for a small PCB with the most common PAL / GAL sockets.

I also support the idea of creating a how to and FAQ here so everybody can dump their PALs / GALS here just like in the BIOS threads.
At the moment I have 5 PALs waiting to be cloned to complete mainboards that have missing PALs.

Yes, I’ve seen this project but to me it seemed more demanding: you have to print PCB, wait for shipping, collect a whole BOM of parts, solder everything together and at the end you get the tool based on popular but not optimal MCU. I can’t evaluate the performance of that project without trying it but since it’s based on the same 8-bit AVR MCU family as Arduino boards, I think using Arduino as a cheap open platform makes it easier to implement for an enthusiast not so experienced in buying and soldering electronic stuff.

As for the FAQ, I think I’ll do something later. I just finished writing yesterday and had no much time for documenting in details.

The project page contains a short list of requirements and brief workflow but I think I can write a tutorial. The main difficulty with that is that I’m no so bad with coding but quite clumsy with writing long texts in English.

Reply 4 of 5, by rpocc

User metadata
Rank Newbie
Rank
Newbie

The code was updated to version 1.3. Works stable with PAL16L8.

It should support PAL20L8 as well, but all 3 chips I have to test are either registered or give doubtful results due to feedbacks (Paradise EGA board). Probably, in order to correclty support feedback configurations in auto mode, this board will need couple of 4066 and one 4051 chips, or couple of 74138 and ULN2003 because the only way to detect feedbacks is shorting outputs to gnd and Vcc to override their own output. That's not a perfect way to deal with digital IC but at least it allows to detect existence of feedback and treat feedback inputs as independent in the truth table.

I've uploaded a little collecting of pld/jed files confirmed to work along with dump files in folder PAL Database at the project page on GIthub.
TODO: upload a normal schematic, upload images of dumped boards and improve support for PAL20 or at least confirm support for combinatorial configurations without feedbacks. Will try the latter later when I get an ATF22V10 IC to brew my own test chips.
Also, I'm going to add the limited support for Arduino UNO and other MEGA328-based boards.

Reply 5 of 5, by rpocc

User metadata
Rank Newbie
Rank
Newbie

A few updates to PAL Database:
1. MB Hyundai Super-16V Clone
2. VGA OTI037C_1037162003_REV_A
3. VGA OTI037C_1037164002_REV_D
4. VGA OTI037C_Hedaka_HED-622

All four has properly named pins in source files, so I even found an interesting additional use of this tool: a simple modification allowed to disable internal FDD controller for SUper-16V XT-clone motherboard, which though has no practical use because its BIOS doesn't support high density drives, so there's no big difference in using buit-in or ISA FDD card.

So, currently database contain 12 tested boards with .jed files.
Interesting thing: Today I found a VGA card, OTIVGA revision D, which appeared similar to my Hedaka HED-622 which initially made me start this project. To my great satisfaction, the dump I got appeared completely pin to pin and equation to equation identical to the one I've redesigned made using reverse engineering.