Repairing an Apple //c
I received a //c as part of a lot of 68k and early ppc macs I had purchased, but it had some problems. First, a portion of the screen was always displaying the character "0", and second the keyboard seemed to be displaying characters other than those typed (wasn't qwerty or dvorak layout). I decided to try to fix these problems.
Keyboard and CharGen ROM Replacement
First, the keyboard problem. I figured it was likely a keyboard ROM issue, but could also be the chargen rom. I ended up replacing both of these, since I had the EPROMs and sockets laying around from C64 and NES projects. It couldn't hurt to upgrade these to their latest versions either. I got the ROMs from Reactive Micro's download site. The same version of the chargen ROM wasn't listed in the IIc directory, but the IIe Unenhanced Video ROM matched the part number that was pulled. It seemed to work fine.
The //c came with several different Monitor ROM versions, all but the earliest of which included a self-diagnostic mode. Unfortunately, I had the earliest version that didn't have it. So, grabbing Monitor ROM4 and burning it to another EPROM, then following these instructions I upgraded the //c to the latest ROM version.
The '0' Display Problem
As it turned out, the self-diagnostic in ROM4 was not particularly useful. It did fail the RAM diagnostic, and displayed the following: "RAM 0 0 0 1 0 0 0 0", along with that problem "0" always appearing. This wasn't terribly useful as there are 16 RAM chips on my board, so it wasn't clear if 0 was good or bad, or which chip it could be referring to. The Apple //c revision I have uses 4264 RAM chips. I happened to have several 4164 chips laying around from C64 projects, and the two are compatible. Since the self diagnostic wasn't terribly helpful, I took a ram chip and placed it over each ram chip on the board such that all pins were touching their counterparts "piggyback" style. On each iteration, I'd turn on the machine and see when the "0" disappeared and figured that was the bad chip. After identifying it, desoldering, socketing, and installing the 4164, the //c finally passed its self diagnostic.
And the final result:
After getting it working, it was time to focus on little things like getting all the crud out of the case. Putting the case in the top rack of the dishwasher did wonders. This still leaves the yellowing, scratches, and other damage done over the last 26 years or so, but it's a good start.