PCB Repair: Primal Rage


Bad motion objects.


Firstly, in typical Atari fashion, this boardset is absolutely huge:

Lots of unpopulated sockets. This is intentional.

It didn’t take long to find the fault with my boardset. Somebody or something had removed the ROMDEC GAL on the ROM board by force…


There was no dump of this GAL. Though a friend with a Primal Rage boardset was able to loan me his ROMDEC GAL, the GAL had its security bit set, preventing read-out. I would have to reverse-engineer it instead.

As with pretty much every Atari schematic set published after 1990, the Primal Rage schematics are incomplete. However, the ROMDEC GAL is actually shown:


The ROMDEC GAL generates the MOB ROM output enables from the MOB ROM address bus. There’s no clock input or synchronous logic involved, which makes our life a lot easier.

I generated a JED file containing 1024 identical test vectors:

V0001 000000000N0LLLLLLLLN*

I then used my Data I/O Unisite programmer to apply the test vectors to the GAL. Any output mismatches are reported by the programmer. I captured the results from the entire run and boiled them down into a truth table. There are better methods/hardware for this sort of thing but I made do with what I had.

The logic defined by the GAL is actually fairly simple and I was able to deduce the equations manually:

/ROMOE0 = /ROMDB1 + /GA23*/GA22 + GA23*GA22 + GA21 + GA20
/ROMOE1 = /ROMDB1 + /GA23*/GA22 + GA23*GA22 + GA21 + /GA20
/ROMOE2 = /ROMDB1 + /GA23*/GA22 + GA23*GA22 + /GA21 + GA20
/ROMOE3 = /ROMDB1 + /GA23*/GA22 + GA23*GA22 + /GA21 + /GA20
/ROMOE4 = /ROMDB1 + /GA23 + /GA22 + GA21 + GA20
/ROMOE5 = /ROMDB1 + /GA23 + /GA22 + GA21 + /GA20
/ROMOE6 = /ROMDB1 + /GA23 + /GA22 + /GA21 + GA20
/ROMOE7 = /ROMDB1 + /GA23 + /GA22 + /GA21 + /GA20

After installing a new socket, programming and installing a new GAL16V8 brought the motion objects back. The original part was a GAL16V8B-10, for which I didn’t have a spare. I had to make do for the time being with a slower 15ns part instead, though I didn’t notice any ill-effects.

To further verify the GAL, I ran the MOB Checksums test in the service mode to test all the MOB ROMs:

Not sure what 0-0 is…


Replace missing ROMDEC GAL.

%d bloggers like this: