Commodore C16 Repair, Restoration, & Upgrade

A while back, I bought my first Commodore C16, yet another 1980s 8-bit computer for my collection. The machine was in good condition and came with several accessories as well as its original box, however it was sold as “untested”.

The Commodore C16 was one of the Commodore 264 line of 8-bit home computers, which were designed to be a low-cost equivalent to the C64 and C128. The C16 was the mid-range offering, designed to be a cost-reduced version of the C64 – it had a black case and grey mechanical keyboard modelled after the C64/VIC-20, but less capable hardware than the Plus/4 (16KB RAM, no serial port, no onboard productivity software).

The 264 series was not a commercial success, though the C16 and Plus/4 had reasonable sales in Europe, so the C16 is relatively easy to find.

The C16 seemed to be all original, and featured a 1984 250443 REV.A mainboard with 16 KB of factory-installed RAM – the CPU, ROMs, PLA, and TED were socketed.

This was one of my very first restorations, hence the relatively poor-quality photos, lack of diagnostic experience, and relatively poor quality of rework.

After checking that the PSU was working OK, I did a quick power-on test – the computer seemed to output video, but only displayed a black screen, so required repair.

Initial testing – computer outputs video, but only displays a black screen.

In the C16, a black screen fault is a common failure mode which can indicate all kinds of problems: typically, a missing or improper signal, a data or address bus conflict, an addressing problem, or a stack page fault, all of which can be caused by a power issue or a failed IC. Most of the ICs on the board are connected to the data or address bus, so there are a large number of potential problems that need to be worked through.

The first thing to check with any repair is that power is being correctly received on the board, which may indicate a problem with the power socket, power switch, or fuse – I checked for 9Vdc at the switch and 5Vdc at the 7805 regulator, and both were OK.

A constant reset can also cause a black screen – I checked the reset signal at the CPU and it worked as expected, staying low (around 0Vdc) for about a second at power on, then going high (around 5Vdc). I noticed that the computer exhibited different symptoms after reset, instead displaying a “garbage” screen with flashing blocks, characters, and lines.

I checked for signs of previous rework which could indicate a potential problem (flux residue, non-factory sockets, etc), but there was none; I also checked for physical damage on the board which could be causing connection problems, including scratches or cold solder joints, but the board was pristine.

I reseated all of the socketed ICs and cleaned all sockets, ports, and switches with contact cleaner, however there was still no change in symptoms.

At this point I decided to aim my investigation at the ICs themselves. With this being one of my early restorations, I didn’t have any diagnostic tools to help me in trying to locate the problem – no diagnostic cartridge, loop-back harness, oscilloscopeIR thermometerlogic probe, MiniPro TL866II, a test board, set of test ICs, or even a desoldering station (a Duratool D00672). I also had very limited diagnostic experience, which meant that I was reliant upon online case studies.

I did have a known-good TED IC (MOS 8360) which I tested in the faulty computer, but it didn’t make any change to the symptoms, so the original TED was probably OK.

I started with U14 (MOS 7711), an unreliable equivalent of the 74LS139, which is responsible for generating some of the chip select lines. I removed the IC using a solder pump and solder wick, then installed a socket, then installed a new-old-stock 74LS139 – this led to no change in symptoms.

New IC installed at U14.

I always use high-quality double-sided sockets, which are more reliable than cheap single-sided sockets as they contact the IC legs on both sides – a lot of people push the use of turned-pin sockets, but I don’t like using them as they make swapping ICs difficult, they are difficult to desolder, and they are visibly obviously non-standard.

I did the same for U10 (555 timer IC), a critical component of the reset circuit, but again there was no change in symptoms.

Then, I did the same for U7 and U8 (both 74LS257 multiplexer ICs), which are responsible for generating address signals for the RAM and are known to cause these kind of problems. With new-old-stock ICs installed, the symptoms changed – I was still getting a “garbage” screen, but it more closely resembled the normal startup screen.

C16 “garbage” screen, with offset startup text.

During this step, the board unfortunately sustained minor damage to two traces under U8, which I rectified with some small lengths of wrapping wire.

I then turned to the MOS 7501/8501 CPU, which is part of the 8502 family and is proprietary to the 264 series of computers – this is notoriously unreliable due to it being manufactured using the new and unproven (at the time) HMOS process.

I didn’t have a test board at this point, so I took a plunge and ordered a modern-made CPLD-based 8501 equivalent to see if this would make any difference. Original MOS 7501/8501 CPUs are available but are hard to come by due to their unreliability – it is also possible to get kits which replace the CPU with the more readily available MOS 6510 from the Commodore 64, but these require a modified Kernal ROM to function.

Soldered ICs replaced.

After replacing the MOS 8501 CPU, the computer now seemed to boot correctly (with flashing cursor and correct amount of RAM showing). It also passed all diagnostic tests with a diagnostic cartridge and loopback harness installed.

I also replaced the working MOS 251641 PLA with a modern-made CPLD-based equivalent, which is much more reliable than the original IC.

Commodore C16 boots correctly for the first time.

Now that the machine was working again, I wanted to perform some preventative maintenance, starting with the electrolytic capacitors – these are commonly used for filtering, smoothing, and decoupling in both high- and low-voltage electronics.

Electrolytic capacitors typically comprise aluminium windings insulated by a liquid electrolyte, which can dry out over time and negatively affect performance (even failing dead short), or leak out and cause corrosion to the PCB and surrounding components.

As such, I always replace all the original electrolytic capacitors with high-quality modern equivalents – this doesn’t take too long on the C16, as there aren’t many.

I usually remove all of the capacitors at once using my desoldering station (a Duratool D00672), then install the new ones one-by-one whilst taking particular care to ensure that the value, voltage rating, and orientation are correct – electrolytic capacitors are polarised, so must be installed the correct way around, else they’ll blow up during use.

You can’t always trust the markings on the PCB silkscreen, as sometimes mistakes were made in the design from the factory (take the Commodore CD32, for example), so care must be taken to match the orientation of the new capacitor with the original.

I used a commercially available capacitor pack from Retroleum.

Mainboard with the new CPU installed.

At this point, I wanted to perform a common modification to the C16: upgrade it to 64KB RAM, like the Plus/4. Aside from the different amounts of memory, the main chipset of the 264 series is common throughout, so this would make the C16 (mostly) compatible with Plus/4 software.

I originally did this in 2018, then I updated the modification two years later, in 2021.

2018 Modification Overview

At the time of me writing this post, there are several RAM upgrade kits available for the C16, some of which require mainboard modification and some of which don’t. There are even professional upgrade services available if you don’t want to do this yourself.

However, back in the dark ages when I was first performing this modification, these were not an option. Therefore, this meant replacing the two original (16k x 4-bit) 4416 DRAM ICs with (64k x 4-bit) 41464 DRAM ICs (as used in the Commodore 64C) and wiring in the two upper address lines on the CPU – it’s also possible to install an optional switch to select between 16KB and 64KB RAM.

I won’t go into detail as to the process involved, as this is documented in depth online.

I removed the original 4416 DRAM ICs (U5 and U6), installed sockets, and replaced them with new-old-stock 41464 DRAM ICs, available from Retroleum; I disconnected the two necessary address pins on the two multiplexer ICs (U7 and U8) from 5V by cutting two traces on the PCB, and attached them to the two upper address pins on the CPU (A6 and A7) instead using lengths of wrapping wire.

After performing this modification, the C16 booted correctly with 64KB RAM.

I also did plenty of testing to make sure the machine was operating correctly.

2021 Modification Overview

After some time had passed, I decided to revisit this project – at this stage I had more experience, some inspiration from Twitter, and some spare time and motivation.

This time around, I wanted to perform a more professional installation, and I also wanted to use a purpose-designed switchable (16/64K) RAM upgrade board.

The first step was to clean up some of my previous rework, starting with two damaged vias and traces under the 74LS257 IC at U8 – I removed the socket I’d installed previously, jumped the two breaks with wrapping wire, then installed a new socket. I also bridged the address line that I’d cut on the underside of the board using solder.

There was also a damaged via and trace under the 74LS257 IC at U7, as well as a cut address line – I removed the socket I’d installed previously, jumped the two breaks with wrapping wire, then installed a new socket.

The second step was the installation of the upgrade board itself, which is a relatively simple process: the upgrade board simply fits into the U7 and U8 sockets, a pin header is installed onto the two upper address lines (accessible by the RF modulator), and a cable (provided) is fitted to connect these to the upgrade board.

The mainboard could then be reinstalled into the case – handily, either through design or pure luck, the RAM size select switch is accessible through the RF shield.

The computer still seemed to boot OK following all of my modifications. However, just because a computer boots, that doesn’t mean it’s working properly. Thorough testing is necessary to verify correct operation, so I did as much testing as I could.

  • All keys register correctly; shift-lock mechanism works OK.
  • Luma/chroma and composite video outputs work OK.
  • Dedicated audio output works OK.
  • All diagnostic tests pass correctly with diagnostic harness and loopback harness.
  • Reset button work OK.
  • Power LED work OK.

After all this work was performed, I did some finishing up: I thoroughly cleaned the mainboard with compressed air and an ESD-safe brush; I thoroughly cleaned the case inside and out using Cillit Bang general-purpose degreaser, a microfibre cloth for large areas, and a toothbrush for small areas; I disassembled and cleaned the keyboard; I cleaned all IC sockets, ports, and switches with contact cleaner; I also replaced the thermal compound on the TED heatsink and the 7805 regulator heatsink.

Functionally, the original PSU was working fine – I usually install a modern mains plug (3A fused) on any PSUs that I use, and check the output voltage(s). Aside from that, the PSU casing and cabling just needed a good clean.

I’d usually recommend using a modern PSU with any vintage computer, as the originals can be prone to failure – however, the C16 takes an unregulated 9 Vdc input which is regulated internally, meaning a PSU failure would be unlikely to damage the computer, so an original PSU (with a modern plug) should be safe to use.

It is normal for these unregulated 9 Vdc PSUs to output a voltage greater than specified (typically around 15 Vdc unloaded), even under load, as this will be roughly linear to the AC input voltage – according to its datasheet, the 7805 voltage regulator can output 5 Vdc at up to 1.5A and handle an input voltage of up to 25 Vdc.

Published by themightymadman

A conscientious, intelligent and committed graduate engineer, with excellent interpersonal skills, an eye for detail and a keen interest in hardware design, mathematics, and software development.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: