PCB Repair: Primal Rage

Problem

Bad motion objects.

Diagnosis

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

RagePCB.JPG
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…

Smashed.JPG
Ouch

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:

ROMDEC.png

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:

MOBChecksums.JPG
Not sure what 0-0 is…

Fix

Replace missing ROMDEC GAL.

Discover more from PhilWIP

Subscribe now to keep reading and get access to the full archive.

Continue reading