Diagnosing a Gottlieb System 80

Recently, I got a “The Amazing Spider-Man” (Gottlieb 1980) that won’t boot. I’ve never worked with this architecture before, so my diagnostics might seem a little haphazard, but this is my plan:

  1. Make sure the board has good power and the chips seem to the be functioning
  2. Scope the signals (address, data, chip select, reset, IRQ, etc.)
  3. Plug into the diagnostic port and single step the processor
  4. Remove the processor and check the ROM, RAM, and RIOT chips
  5. ???
  6. Profit

Step 1 is complete. There was a weird jumper on the back of the board that was shorting power to ground near chip Z26 (hex inverter chip). I can’t begin to imagine why this jumper was there. Its only function was to create a short between +5 and ground, and it did that quite well.

Jumper from Z26 pin 14 (+5V) to ground.

Step 2 – I looked at the signals and they looked reasonable, with the exception of A4. I never saw it go low and it appeared to have noise on it from A5 perhaps.

A3 (yellow) versus A4 (blue).
A4 (blue) versus A5 (yellow).
A4 (blue) versus A6 (yellow).

I thought maybe there was a short in one of the chips that was causing A4 to be pulled high or something. When I removed U4, the problem disappeared, so I replaced U4 and moved on. After this, I was able to see A4 go low on occasion, but when it’s high it still has noise on it from other lines. Maybe it’s just crosstalk, I’m not sure. I decided that it would be easier to tell once I plugged into the diagnostic port and tried to read the addresses being accessed, so I moved on to step 3.

Step 3 – I have a bunch of Arduino Nano’s around (I use them for lots of projects) so I figured I could use one to serve as a diagnostic interface to this board. They’re perfect for this type of thing, but they only have 18 useful I/O lines (I think), so I had to put two together. I basically turned one Arduino into a shift register to read the Address lines, and used the other to input the Data bits and other signals (R/W, SYNC, clock, etc.). I use two lines to control the board – RESET and READY. This code is pretty simple, but I can GitHub it if anyone thinks it might be useful. Here’s my breadboard interface to the System 80.

Two Arduinos plugged into the TC1 socket.

With that done, I wrote code to RESET the 6502, raise the READY line, wait for the SYNC signal, and then drop READY again. After that, I figured I could read what the processor was trying to do. Here are the results of that effort.

(more coming…)

This Post Has 2 Comments

  1. Matt

    I’m interested to hear the rest of your troubleshooting. I have a system 80B that won’t boot.

    1. Ike

      I should really update this article!
      I found out that the processor was being reset periodically because the reset circuit was broken. After replacing a bunch of those components, I discovered that the DIP switches were corroded and needed replacement. I fixed that and something else broke (one of the display buffers maybe?). While it was here, I didn’t mind replacing a chip every month or so, but when I decided to sell it I felt I had to replace the board with a Ni-Wumpf board so the new owner wouldn’t have to worry. http://www.ni-wumpf.com/
      Wish I could be more help!

Leave a Reply