Commodore C128D(CR) Restoration

Three years ago, around the time I was first starting to collect vintage computer equipment, I was lucky enough to get my hands on a Commodore C128D(CR) 8-bit computer and matching 1084S-D2 CRT monitor.

Commodore C128D and matching 1084S-D2 CRT monitor.

The C128D(CR) is the later cost-reduced version of the C128D, featuring a metal case and combined mainboard / drive board with 64KB of VRAM.

According to the previous owner, the computer seemed to boot up okay but was otherwise in unknown condition – it was also missing its proprietary keyboard, a common problem with these machines as the keyboards are often discarded, making them extremely difficult to find on their own. I was lucky enough to track one down on eBay, for a reasonable price.

On arrival, the machine did indeed boot up in C128 mode as expected, with a flashing cursor and the correct amount of RAM showing – however, the power LED was intermittent, the FDD LED didn’t work at all, the computer wouldn’t load from an external tape deck, and the internal 5.25″ FDD (based on the Commodore 1571 mechanism) wouldn’t load disks, giving a “FILE NOT FOUND?” error. Further investigation was therefore required.

C128D front panel, including power LED PCB.

The LED issues turned out to be due to several cold solder joints on the LED PCBs at the front of the case – these were so bad that the LEDs could wiggle around. Soldering all the PCB joints with fresh leaded solder fixed both LEDs.

The cassette loading issue was a little more complicated – the computer would recognise an attached cassette deck, however when the “LOAD” command was entered and play pressed, the computer would sit on a blank screen and the cassette motor would not move.

It appeared that motor power was not getting to the cassette deck via the cassette port. Cleaning the contacts on the cassette port did not solve the problem; I noticed that the motor driver transistor Q301 (D880) was barely attached to the board, as its legs had become brittle and snapped – installing a suitable replacement did not solve the problem; I tested the 9 Vac supply rail at the user port, which is used for the cassette motor, however no voltage was present – I traced the lack of voltage all the way to the PSU, and on closer inspection I noticed that one of the fuses was blown – after fitting a suitable fuse (T0.315A 250V), tape loading from a cassette deck worked fine.

The disk loading issue was also quite time consuming. To ensure that the serial hardware on the mainboard was okay, I tried loading from an external SD2IEC device, and this worked fine – this meant that the problem was with the internal 1571 drive itself, either the control hardware on the mainboard or, more likely, the head mechanism.

I tried carefully cleaning both the upper and lower head with 99.9% IPA and a cotton bud, however this did not solve the loading problem; I checked the resistance of the head coils via the head connector in case the head had failed (Newtronics heads have a habit of failing open-circuit) and compared these against the expected values, and everything seemed okay.

I then noticed that the upper head was not sitting flat on the disk, but instead sat at a noticeable angle. Apparently, this is a common problem which occurs when 1571 drives are stored for long periods of time with the latch open – the head support bends into an angled position, meaning the head does not make proper contact with the disk.

After carefully and gradually bending the upper head mount back into what appeared to be its flat position, the drive seemed to reliably load disks. I’ve since been making sure to insert a factory transit card into all of my drives when they are not in use – a disk can also be used for this purpose if required.

Internal 1571 5.25″ FDD correctly loading a disk.

Once the repair work was complete, I wanted to improve the reliability of the system – this involved replacing all of the electrolytic capacitors with high-quality modern replacements, resoldering a large number of poor-quality solder joints on the underside of the mainboard, reattaching the shield can around the video area (which had become detached due to poor soldering), replacing the thermal paste between the shield can lid and the two video ICs, cleaning all of the ports and switches (using contact cleaner) and edge connectors (using a white eraser), and cleaning a large liquid spill on the underside of the board.

Cosmetic attention was also required; the upper case was badly chipped, the entire machine was filthy after decades in storage, covered in various sticky things and marks, and the lower case was missing all of its rubber feet.

The first issue was amended by sourcing a replacement upper case piece on eBay, in excellent condition; the second issue was amended by fully dismantling and thoroughly cleaning the entire computer, inside and out, using Cillit Bang and a microfibre cloth initially, followed by 99.9% IPA for stubborn marks; the last issue was amended by installing a set of new white rubber case feet.

Following the restoration, the computer seems to work perfectly.

  • All keys register correctly; shift-lock mechanism work OK.
  • All boot modes (C128, C64, and CP/M) work OK.
  • Internal 5.25″ FDD reads and writes disks reliably.
  • Power and drive LEDs work OK.
  • Reset button works OK.
  • 40-column and 80-column luma/chroma and composite video outputs work OK.
  • Audio output work OK.
  • All diagnostic tests pass correctly with diagnostic cartridge and loopback harness.

A time-consuming repair, but a resounding success! It goes to show that just about anything can be repaired, and saved from the dump.

Published by themightymadman

My name is Adam Wilson - I'm an electronics engineer based in the North East of England, UK, and I like tinkering with old junk. In my spare time, I collect, repair, refurbish, and (sometimes) sell vintage computer systems and peripherals, typically from the 1980s (the likes of Commodore, Sinclair, Acorn, Apple, Amstrad, and Atari).

6 thoughts on “Commodore C128D(CR) Restoration

  1. In noticed you have a Commodore SX-64 too.
    I have always wondered it you could connect the external 128-keyboard to the SX-64.
    The engineers might have used the same technique?

    Liked by 1 person

    1. Hi 😊 The C128D and SX-64 use a similar keyboard connector, but I don’t think the keyboard from a C128D would work on an SX-64 (and vice versa) as the pin mapping and keyboard matrix are different, unfortunately.


      1. Thanks! Makes sense to change the mapping: the C-128 keyboard has much more keys (the numeric keyboard for example)

        Liked by 1 person

Leave a Reply

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

You are commenting using your 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: