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 – I also sourced a reproduction box.

Following the restoration, the computer seemed to work well through manual testing.

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

2022 Addendum

Some time on from the original repair, I wanted to revisit this C128D to do some extra testing and to add some minor modifications to improve reliability, usability, and serviceability – this would include recapping the internal PSU, making the drive LED removable from the mainboard, adding address switches for the internal 1571 drive, and adding a disable switch for the internal 1571 drive.

Recapping the internal PSU was a reasonably simple process, as there are only four electrolytic capacitors on this model: a 22uF 25V radial part, a 330uF 25V radial part, a 4700uF 6V radial part, and a 4700uF 25V radial part (which I switched both out for 4700uF 25V radial parts). The original 4700uF capacitors were FRAKO parts, which are apparently known for failing short-circuit.

Making the drive activity LED removable required desoldering it from the mainboard, soldering in a 3-way 2.54mm pin header, crimping the cables using the appropriate male Dupont crimps, and adding the appropriate 3-pin 2.54mm male connector.

Adding switches to easily set the address of the internal drive (8/9/10/11) in hardware involved cutting two jumper pads next to the 6522 VIA at U106, and fitting switches across them – some people opt to add large switches to the case, but I didn’t need these to be accessible or noticeable externally, so I just fitted two jumper switches instead.

In order to properly use a self-test cartridge and harness with a C128D, the internal 1571 drive needs to be disabled – it’s easy enough to add a disable switch next to the 6526 CIA at U1, which involves cutting the ATN signal line, adding a switch across it, and pulling the CIA side of the line high using a 10kOhm 0.25W resistor. As with the address switches, I just used a jumper switch fitted internally.

Following the restoration, I performed thorough testing:

  • All three boot modes (C128, C64, and CP/M) work OK.
  • All keys register correctly; shift-lock mechanism work OK.
  • Internal 1571 FDD passes read/write performance and alignment tests.
  • Power and drive LEDs work OK.
  • Reset button works OK.
  • 40-column luma/chroma and composite video outputs work OK.
  • 80-column RGB video output works OK.
  • Dedicated audio output works OK; all SID channels/filters work OK.
  • All hardware sprites and colours work OK.
  • All tests pass with diagnostic cartridge and harness (looped for 2 hours); both CIA timers OK.

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: