Saturday, 18 July 2015

Commodore PET 3032 Mainboard Repair

This is an old post, preserved for reference.
The products and services mentioned within are no longer available.

These Commodore PET repairs are coming in thick and fast. This time it's a 3032 board. These were sometimes sold with 3032 on the front and 2001-32N on the back. This sits in the timeline between the original 2001 and the later 4032.

The earlier PETs had discrete video circuits and difficult to find 6540 and 6550 memory chips. For the 3032, they switched to using 4116 DRAM and 2532 compatible 24 pin ROMS. Later boards kept this memory arrangement, but switched to using the 6545 CRTC to drive the screen. The later boards also moved the datasette connector to the side. The 3032 still has this inside, where it used to connect to the internal drive on the 2001, but is a bit redundant on the 3032. Other than that, the Pet doesn't change much over the years. Things like the I/O ports and the IEEE-488 interface are pretty much unchanged from 1977 to 1984.
This one has apparently been to a number of 'vintage computer repair experts', who have concluded it is a ROM or RAM problem. However, their efforts have left it a little worse for wear. I try not to be critical of other people's work, but this time I have to make an exception. Before I start on the actual faults, I need to undo some of the previous 'repairs'. First comes the oddest repair I've ever seen on a Pet. Or any computer for that matter. There is a thick black wire soldered to a pin on the back of the board.
Following this around the board, it goes to the same pin on the ROM in the socket above. One of the ROM chips appears to have a damaged leg, and this has been 'repaired' with the wire.
I don't even know where to start with the reasons why this is not a good idea. It's too long, too thick, will affect timing, will pick up interference, the fact it can be easily fixed in many other ways, the fact that pin is in parallel with all the other ROM sockets in the same row and also present in many other places closer by. Let's just say it's wrong. Also the ROMs are in the wrong sockets anyway, so it was never going to work. As it arrived, they were as follows:
  • UD9 - 901465-22
  • UD8 - 901447-29
  • UD7 - 901465-23
  • UD6 - 901465-20 (with the wire)
  • UD5 - empty
  • UD4 - 901465-21
  • UD3 - empty
I don't think that is ever going to work. The editor ROM (UD8) is original, and dated the same as the rest of the board (early 1980), but the rest are a set of BASIC 4 ROMs are dated late 1981. I had thought this must have been upgraded from BASIC 2, but the editor wouldn't have worked with BASIC 2, so I'm not sure why but all the other chips date to late 79, early 80, apart from the 4 ROMS. I've heard mention of BASIC 3, but never seen a set of ROMs - was this originally BASIC 3?
The correct order of the BASIC 4 ROMs should be:
  • UD9 - 901465-22
  • UD8 - 901447-29
  • UD7 - 901465-21
  • UD6 - 901465-20 (without the wire)
  • UD5 - 901465-23
  • UD4 - empty
  • UD3 - empty
I've returned them to the correct sockets. Next, some of the capacitors have been replaced. Most are fine, but two large axial capacitors have been replaced with radial ones at some point. The legs aren't long enough, so they have been joined above the board, and I'm not to happy with that. Apart from the aesthetics, there is a chance that the leads could short out to other tracks on the board.
I've replaced those with axial ones, as they would have originally been, with the largest one held down with a cable tie through the holes provided.
Finally, it looks like someone started to repair the problems, two of the DRAM chips are missing
The appear to have been removed with a claw hammer.
I've cleaned the pads up, repaired the damaged tracks and fitted two sockets.
I've used lots of flux and what would normally be a bit too much solder on these sockets as the some of the through hole plating has been damaged so I've lets the solder go through to reconnect the two sides. Continuity tests to the pins and the other DRAMs are fine.
OK, so that's all the previous repairs undone, time to fix the actual original problems. As usual, I've started with a ROM/RAM board in place.
That is a good start, but can you spot the deliberate mistake? I'm using the monitor on the 4032, as I often do, for testing. The later Pets use different sync polarity to the older ones. In cases where I have an older Pet board and a later Pet monitor (or the reverse), I made a little board to selectively invert the video and sync signals.
This uses a quad XOR gate, so there is the same latency on the inverted and non inverted signals. The dip switches select which signals to invert, normally this is video and vertical sync. The signal timing is not quite right, but it's good enough to display. With that in place, the monitor is now displaying correctly.
So, back to the good start, it's basically running, albeit with the help of the ROM/RAM board. The lines on the screen are caused by bad video RAM. I removed the two chips - notice it is possible to do that cleanly and without damaging the board.
I started with two new 2114 chips, later testing found one of the originals was working OK, so I put that one back. With the video fixed, I tried the ROMs and found it wouldn't work using the onboard ROMs. Selectively replacing them one by one using the DIP switches on the ROM/RAM board, I found that one of the ROMs was not working.
With an EPROM, it's back to booting up again. With two 4116's in the two new DRAM sockets, the onboard RAM now passed, and I was able to remove the ROM/RAM board.
I didn't get any response from either datasette port or the IEEE-488 bus, I also noticed the screen was sometimes starting in lower case. It is normal for 80 column PETs with the business keyboard to start in lower case, and on the 80 column PETs, the shift changes from upper to lower case. This was happening here.
That is what it should look like, all the 40 column PETs with graphic keyboard should start in upper case, and shift should change between upper case characters and graphic symbols. You should be able to change between these modes using
  • PRINT CHR$(14) 
or
  • PRINT CHR$(142)
Neither of these was having any effect. This should change the output of pin 39 of the 6522, which drives one of the address lines on the character ROM and selects the alternate character sets. This line wasn't changing. This and the lack of datasette and IEEE-488 IO pointed to the 6522. I replaced that and it appeared to work for a while, The datasette and IEEE-488 was also working. Problem solved.
But no, it didn't, it continued to be intermittent and went back to lower case and no IO.
I retested the replacement 6522 in another Pet, and it seemed fine. I also tried the original 6522, and that too seemed fine. I then suspected the socket. The white sockets used in these early Pets are known for bad contacts, but in this case, all the pins were buzzing through correctly, even with a bit of wiggling. I eventually traced this back to one of the enable lines, it never seemed to change. I checked the connection and it seemed fine, so I went back to the source IC F1, a 74LS08 quad AND gate. The inputs to that were changing, but the output never went low.
I removed that and tested it, and the one gate used to drive the 6522 enable pin was indeed faulty. Replacing that with a good 74LS08 and the original 6522 and everything was back in business.
The boot screen was back in lower case, and the print statements could change mode. The datasette ports were now both working. Testing with the new blue pet microSD drive found everything working on the IEEE-488 bus side.
The connector in the middle is a piezo speaker connected to CB2. Can't play Space Invaders without the sound, and the onboard piezo didn't appear until the 4032.
Soak testing showed up a problem with another of the ROM chips, so that was replaced with an EPROM as well,
I left it running various tests, games and demos for most of the day. The temperatures were fine and no errors were reported.
All done and ready to go back. Another pet back in the land of the living. The final tally of faults was:
  • RAM - 2 chips had been removed, damaged tracks repaired, sockets and replacement DRAM chips fitted..
  • Video RAM - there were some faults in one of the video RAM chips. Both have been socketed, and one replaced.
  • ROM - Two chips were in the wrong sockets, damage to a pin and the long wire mod on another chip. Two ROMs found faulty and replaced with EPROMs.
  • I/O - Faults traced back to faulty AND gate. Replaced and now both datasettes, user port and IEEE-488 working.
  • Capacitors - two radial capacitors removed and replaced by axial versions.
How much of that is the actual original fault, and how much is due to later repair attempts, I don't know. The two missing DRAM chips may have been faulty, or just they may have been fine and just happened to be the first in line.
There are a few more PET and PET related repairs to come, and if you have anything that needs repairing, you can contact me.