Macintosh 128K BMU0 PAL JED -> GAL

daanvdl

6502
Hi all,

I’m currently in the process of restoring a Macintosh 128K logic board. After troubleshooting, I’m confident that BMU0 is defective. When I swap it with the BMU0 from another known-good 128K board, the board works correctly.

I was able to disassemble the original PAL16R4 JED using jed2eqn and extract the logic equations. I then tried to recompile these equations into new GAL code using CUPL (Device Mnemonic = G16V8MS), but unfortunately without a working result so far.

I do have GAL files for BMU2 (same physical location on a Macintosh Plus logic board), but these appear to be different from the 128K BMU0 implementation and don’t seem to be a drop-in replacement.

I’ve attached the original PAL JED file and the equation disassembler file (EQN) to this post.
At this point I’m clearly hitting the limits of my knowledge. Is there anyone here who’s more experienced with this and willing to help convert the PAL JED/EQN into a working GAL implementation?

Thanks in advance!
Daan
 

Attachments

Last edited:
The old DOS PALASM package had a utility called PALTOGAL.EXE that performs a direct translation of the JED file. Also something similar in the OPALJR package from the same period. Might be worth a try!
 
I ran your BMU0.JED through the conversion under dosbox. Let me know if this works?

UPDATE: Here's another conversion from OPALJR.
 

Attachments

Last edited:
Thanks a lot Shirsch. Much appreciated!
I did try PALTOGAL, so thank you for running those conversions as well. Unfortunately, in my case the PAL2GAL output did not result in a working GAL on the board.

After doing a deeper analysis of the disassembled equation file, it turns out the issue is related to inputs 18 and 19. For simplicity, you could think of these as “extra” external inputs. In the original PAL16R4 these are real inputs, but when targeting a GAL16V8 you effectively run out of usable independent external inputs once the required registered outputs and feedback paths are taken into account.
In the automatically converted GAL equations, inputs 18 and 19 were still being compiled as if they were valid external inputs, which leads to incorrect logic behavior on the GAL.

After some experimentation, I found that explicitly tying input 18 and 19 to GND (effectively removing them from the logic) results in a GAL implementation that works correctly on the Macintosh 128K board.

So in short: thanks again for the suggestions and conversions. They were very helpful for analysis, but I’ve since managed to get a working ATF replacement for BMU0. I’m very happy to finally have a functional solution for all the 128K PAL's now!

Thanks for thinking along!
Daan
 

Attachments

  • 128K_BMU0.zip
    128K_BMU0.zip
    322 bytes · Views: 0
  • 128K_PALS.jpg
    128K_PALS.jpg
    128.3 KB · Views: 1
Back
Top