Site icon PhilWIP

PCB Repair: Gradius III

Problem

Reboots after POST.

Diagnosis

Another Gradius III on the table…

Probing CPU 1 with a logic analyzer showed program execution spinning in a loop waiting for shared RAM location 0x003956 to change, before the CPU is eventually reset by the watchdog circuit:

I only had probes on 16 address lines and addresses shown are word-based but you get the idea…

Shortly before entering the loop, CPU 1 is meant to trigger a level 4 interrupt on CPU 2 by writing to 0xd8000. We can check if this is actually happening by setting the logic analyzer to trigger around an access to 0xd8000:

We should be seeing activity on SUB_#IPL2. We are not…

The CPU1->CPU2 interrupt generation logic appeared to be broken. I traced the source of /IPL2 back to a 74LS174 at R2, which looked very corroded:

Mmmm, oxides…

One fresh 74LS174 later and we were back to partying like it was 1989 while failing to get beyond stage one…

Fix

Replace 74LS174 at R2.

Exit mobile version