The Red C64

My first home computers were made by Sinclair, and I liked them. Then one day, my brother brought a Commodore 64 that he had borrowed from a classmate. He showed me a demo called "Trap", and I was flabbergasted about the sound abilities of the SID chip. My ZX Spectrum just had a plain beeper, and since then I wished Sinclair had added a decent sound chip. Or that I had a C64 instead of the Speccy.

35 years later, this wish came true as I bought my first C64. It came in a case that is painted in a bright red color. It was sold as broken. The PLA chip was missing, and there was no way to test if that was the only problem.

The machine arrived here in a pretty good state. The paint job was actually quite well done, and everything was nice and clean. It certainly wasn't much used after the previous owner did the modification. I also found traces of further planned modificiations, like numbers painted on the PCB. Maybe the machine broke during their modification attempt, ending their endeavor.

Let's have a look inside. There is a 250425 mainboard, and the PLA chip was missing as announced. I also found that all other chips were made in 1984, except of the VIC which was made end of 1985. This might be a bad sign, maybe they swapped the good VIC with a broken one before selling the machine.

Inside there is a 250425 mainboard. The PLA chip is missing.

I first powered up the board and checked the voltages. The +5V and +12V were fine, so I could be sure that I wouldn't damage the replacement parts I was going to put in.

For the missing PLA, there is a choice of modern FPGA based replacements. I chose a PLAnkton, which just fits into the socket and even has about the same color as the main board. After that, I connected a monitor and powered up the machine again. I got a video sync, but the picture was black. Uh oh… Is it the VIC?

A C64 Dead Test cartridge quickly gave a hint. It flashed the screen four times, saying that the U23 DRAM chip was broken. Fortunately these are 4164 type 64Kx1 DRAM chips, like they are also used for repairing ZX Spectrums. I have a few of them in stock, so I could just replace it.

One RAM is replaced. It's the same type that is used for ZX Spectrum repairs.

Next test, and this time I finally got the famous blue READY prompt. A full diagnostics run confirmed that the missing PLA and one DRAM chip was all that was broken.

Everything is fine now! πŸ˜€

The board is now working again, and ready to be futureproofed. First I replaced the electrolytic capacitors. For C13, I used a bipolar capacitor, which (in my opinion) gave an audible enhancement to the SID audio quality. The old 78xx voltage regulators were replaced by Traco Power DC/DC converters that won't need heatsinks. What got heatsinks instead were the CPU, SID, and VIC. The PLA should get a heatsink as well, but the PLAnkton replacement only consumes a fraction of the original PLA power and stays cold.

I also found four MOS-77xx chips on the board. These are standard 74LS chips, but they are notorious for their high failure rate. I preemptively replaced them with their standard counterparts. The mainboard should now be fine for the next twenty years.

The refurbished board, with PLAnkton, heat sinks, new caps, and DC/DC converters.

The keyboard was in a very clean state, but anyway I decided to disassemble and wash it. I pulled off all keycaps and cleaned them in an ultrasonic bath. I also removed the back PCB, and cleaned the plungers and contacts with a bit of IPA. After that, I reassembled the keyboard. For the space key, I put a bit of silicone grease on the lever mechanics, which gave a much more quiet and satisfying sound when the space key is pressed.

Keycaps put back to their place after washing. The cleaned keyboard.

The previous owner added two extra buttons to the right side of the case. One button is a reset button, a standard modification on a C64. The other one was connected to the "bus available" pin of the expansion port. It essentially freezes the system as long as the button is kept depressed. I have no use for a freeze button, so I decided to put the reset button back, but leave the freeze button out.

I connected the reset button to C34 instead of the expansion port. When pressed, it will retrigger the reset monoflop by discharging the capacitor. This way the button is debounced, and the reset signal is kept for an appropriate minimal time. (C34 applies to 250425 boards only, for other versions see their schematics! Also make sure you're not accidentally shorting one of the decoupling capacitors.) I used Dupont connectors to make the reset button detachable from the mainboard, in case I want to remove the top shell again.

The reset button can stay, but got a Dupont connector so the upper shell of the case can easily be removed. The reset button is connected to C34.

To close the hole of the former freeze button, I was quite lucky that the case was painted in RAL 3020 "traffic red". I found that I have filament in the same color, and 3D-printed a small plug that was then hot-glued to the case. The hole is still visible, but it looks acceptable now.

The holes made for the reset and the freeze button. I don't need the latter one anymore. The reset button is back in its place. The freeze button hole is now closed with a 3D printed plug.

And that's it! I finally have my own, red C64!

Welcome, my shiny new Red C64! 😍

ZX Spectrum "Portugal"

And yet another Speccy that I could buy for a good price. The seller said it was "untested", but I allege that he knew very well it was broken. It's fine for me as I mainly buy those things for the repair fun. 😁

The computer was in a sad condition when I got it. What's remarkable is that the machine was "assembled in Portugal". It's the first time I see this, and to be honest, it was one of the reasons why I wanted to have it. According to the very few information I found on the internet, those machines were intended for the Portugese and South American market, but some of them also made it to the UK and other European countries.

The faceplate was heavily bent, and a connector of the keyboard membrane was broken off. It seems that the previous owner tried to replace the membrane, but wasn't able to remove the faceplate.

The new Speccy is in a poor condition. One of the membrane connectors was broken off and missing.  It was assembled in Portugal.

That's the first hint that the machine wasn't "untested", but underwent a botched repair attempt.

I got the second hint when I tried to power up the machine, but found that it was completely dead, with all the voltages missing. The 5V is generated by an 7805 voltage regulator. It could just have died of old age. But considering the other hint, I rather guess that the previous owner has tried to power this machine with a standard 9V power supply. It has a reversed polarity, which kills the 7805 instantly, and usually damages the lower RAM chips and other components.

Let's have a look inside. There's an Issue 6A board inside, which is the final revision of the board. But besides that, there were no surprises. Anyway it's the first Issue 6A board I own, so I'm happy to have it.

An Issue 6A board, probably built around end of 1984.

The 7805 regulator is definitely broken, but I would have replaced it with a Traco Power DC/DC converter anyway. After I replaced it, the 5V line was back. To my surprise, the 12V and -5V lines were also back, so at least there was no further damage to the power supply.

I did my usual composite mod. Then I connected the computer to my monitor and powered it up to find out what else is broken. To my surprise the start screen appeared, and the Diag ROM also found that all RAM chips are working.

The Speccy just booted up. The Diag ROM found no further defects.

Okay, so much for the "repair fun" I was hoping to get. On the other hand, this board has a second custom chip, the ZX8401, also known as ZXMUX chip. If it would have been damaged, repair would have been a lot more difficult. Not impossible though, since the ZXMUX can be simulated by a few standard SMD chips.

Now that the Speccy was repaired, I continued with replacing the electrolytic capacitors. I also found and fixed a lot of cold joints at the lower RAM chips. The refurbishment of the board was completed after that.

The board after repairing and recapping. A lot of cold solder joints.

Let's have a look at the case. The membrane connector was broken, but luckily there are new membranes available at retro shops. The previous owner tried to remove the faceplate, which is most often glued to the case. Most often, but not here. On this computer, the faceplate was just held in place by four brackets. All that would have needed to be done was to open these brackets and then easily pull of the faceplate.

The faceplate is held by four brackets that can be easily seen on the inside. All that needs to be done is to open them. The faceplate itself is not glued to the case.

Sadly, thanks to the botched repair attempt, the original faceplate was bent too much to be recoverable. It also had some visible scratches. I wished I could have salvaged it, but I decided to replace it with a new one instead. This time I took a metallic red faceplate, which looks as hot as a sunset in Portugal. πŸ˜‰

My new ZX Spectrum "Assembled in Portugal".

And there it is, another ZX Spectrum for my collection.

A new Harlequin

The Superfo Harlequin is a ZX Spectrum 128K clone. It is special because even though it's a 128K Spectrum, it still fits into an 48K Spectrum case. It's also special because the ULA custom chip is replicated by discrete 74HC-type standard chips that can be replaced easily if one of them should get broken. It's just a small advantage though, because the RAM chips, sound chip, and Z80 CPU are rare by now.

I have ordered the Harlequin 128K Black Large DIY Kit at ByteDelight. It comes with all components that are required to build the main board, even those that are difficult to find elsewhere. There is also a Flash ROM chip enclosed in the kit, but it does not contain a Sinclair ROM image for license reasons. What's still required to build a complete Speccy is a ZX Spectrum case with keyboard, and a Flash ROM programmer for the Sinclair ROM.

Assembling

The Harlequin has only a single SMD component, and that one was even presoldered. All the other components are through-hole, so this DIY kit is even suitable for soldering novices.

The ByteDelight Harlequin kit. Also on the photo: The Diag Cart kit, en heerlijke Stroopwafels. πŸ˜‹ How it started. The board, with the only SMD part already presoldered.

I spent the rest of the day with getting the components out of their bags, locating their correct location and then soldering them in. The ByteDelight kit was carefully assembled. Every component comes in separate bags per value, and are enumerated in their optimal order for assembling. It's literally just soldering by numbers. πŸ˜„

The most boring part was to solder in all the 51 sockets. The DIY kit came with standard sockets, but I generally prefer turned pin sockets, so I used that ones instead.

Completely assembled.

The kit also contains the crystal that is needed for an NTSC setup, so you can choose between a PAL and NTSC machine. The board itself is pre-configured for PAL though. For an NTSC machine, a few traces at the bottom side of the PCB need to be cut.

Flashing the ROM

The DIY kit comes with an AMD AM29F040B Flash ROM. It is large enough to contain up to 8 ROM images. A DIP switch selects the image to be used. The pre-flashed image contains a Diag ROM, some other software, but no ZX Spectrum ROM for license reasons. The board itself also supports original Spectrum 48K and 128K ROMs, as well as 27C256 and 27C512 EPROMs.

ROM files can be found on the internet. I decided to keep the first six Flash ROM banks, and use bank 7 for a Spectrum 48K ROM, and bank 8 for a Spectrum 128K+2 ROM.

For flashing, I use the XGecu TL866II+ programmer and the minipro open source software. First I read the original content of the Flash ROM:

minipro --device 'am29f040b@DIP32' --read harlequin.bin

Then I made a copy of the first six banks. It's easy with the dd command. With a block size of 65536 bytes, the banks can be selected with the skip and count options. To keep the first six banks:

dd if=harlequin.bin of=harlequin-6banks.bin bs=65536 count=6

After that, I use cat to compile a new binary. Note that each bank must be 65536 bytes large, so if a ROM image is smaller, it must be duplicated (or quadruplicated):

cat harlequin-6banks.bin \
  48k.rom 48k.rom 48k.rom 48k.rom \
  128k+2.rom 128k+2.rom \
  > harlequin-new.bin

The new image can then be burned to the Flash ROM:

minipro --device 'am29f040b@DIP32' --write harlequin-new.bin

With the Flash ROM inserted into the Harlequin board, it was finally completed and ready for a first start. Unfortunately the maker of the Harlequin board saved a rectifier bridge, so it's still important to take care for the correct polarity of the power plug. Like the ZX Spectrum, the Harlequin needs a power supply with a 5.5/2.1 mm barrel plug with center negative. Most power supplys on the market are center positive.

The Harlequin is alive!

Even though the Harlequin has a lot more chips than an original ZX Spectrum, it is very frugal. It only consumes 1.7W at 9V, while the original Speccy consumes 4.8W. On the other hand, the Harlequin does not need 12V and -5V to run, so these voltages are not generated. This might be a problem for a few very exotic expansions.

The Case

The DIY kit only comprises everything that is needed to assemble the main board. What's missing is a case with keyboard, and a power supply. The board has the same dimension as an original ZX Spectrum 48K board, so you can use original cases (e.g. the standard "rubber key" case or the ZX Spectrum Plus case), or buy a new replica case with new membranes, keymat and faceplate. The latter case is more expensive, but you get a brand new case in return, and you can pick from a large variety of colors.

I decided for a white keyboard, and a transparent case so one can still admire the beautiful Harlequin board even inside a closed case.

A brand new ZX Spectrum 128K "Harlequin"!

The Harlequin has a separate RGB mini DIN connector. It is made in a manner so it won't interfere with a classic case. However you might want to use the RGB connector as it offers a much better image quality. Shops like ZX Renew offer special Harlequin cases with a cutout for the RGB connector. If you want to use a classic case, you might need to cut out a bit of the beautiful old case to access the connector.

From left to right: stereo audio, tape (mic/ear), RGB, composite

Since we are talking about making holes into old cases: The Harlequin has a built-in joystick interface. If you want to, you can cut out a space for a 9 pin Sub-D male connector, and wire it to the board. I refrained from making a cut into my beautiful Harlequin case, and use a classic Kempston joystick interface instead.

Let's Play

The simplest way to load software into the Harlequin is by the Mic/Ear port. There are smartphone apps and also a lot of tools that can generate the sounds to load TAP or TZX files, so there is no need to dig out the old tape recorder and audio cassettes.

I am using my tzxtools. The tzxplay command plays back TZX and TAP files to the standard audio output. I connect the sound card output to the mic/ear connector using a classic phone jack cable.

Since the Harlequin is a full-featured 128K clone, it also comes with an AY-3-8912 sound chip and even a stereo output. So the first thing I did was loading a game that makes use of that soundchip for in-game music.

The 128K version of Cybernoid uses the AY-3-8912 sound chip.

ZX Spectrum "Beauty"

When I started to refurbish old computers in 2021, I couldn't imagine that it was so much fun. 😁 The other day I bought another ZX Spectrum. According to the seller, it had some strange artefacts on the screen and also stability issues, so it was sold as defective. When I tried it at home, it was even worse. I just got a black screen on a white border.

Screenshot made by the seller. Here the screen was just black with a white border.

Inside the case I found an Issue 2 board. The previous owner has added a composite output on a separate connector. As the age of TVs with tuners is definitely over, there is no need to keep the modulator output. I will do my own composite mod instead, and remove this ugly cable that was hanging out.

The manufacturing dates of the components tell an interesting story. This computer has probably been manufactured around the end of 1982. However, all chips that are related to the upper 32KB RAM are socketed, and some were made in 1983. I guess it was originally built as 16K model, and has been extended to the full 48K a year later. As the only chip on this computer, the ULA was made in 1984, so maybe it had been replaced around then.

It's an Issue 2 board with a composite mod on a separate connector. I removed the ULA for testing.

My main suspicion was that the ULA was broken, so I put it into one of my working Spectrums, and was happy to find it in working order. The problem must be somewhere else.

The usual first step is to check the voltages. And bingo, the 12V line had around 7V, and the -5V line was flat. This sounded very familiar, and a look at the coil confirmed my suspicion. The coil had a purple color, and a short between the primary and secondary winding. I guess the coil was already pre-damaged when the Spectrum was sold, causing the artifacts because of poor voltages on the lower RAM chips. When I powered up the computer at home, I eventually killed it.

Well, it's not the first time I had to deal with a broken coil. I unsoldered it, rewound it, and replaced the semiconductors that usually get grilled as a result. Then I powered the system again, and found that all voltages were back to normal. Success!

A shorted coil. The purple color is looking very familiar. It was the same on another Spectrum. The repaired coil.

I put the ULA back into its socket, so I could check what else is broken. And (to my displeasure, to be honest) the computer just came up and was working again.

This is looking good! The computer is working again!

What a spoilsport! I was hoping to have some more repair fun with that machine. πŸ˜‰

Okay, what next? I started with replacing the electrolytic capacitors with fresh ones. Then I found something strange: A wire link was missing that was supposed to be there.

There is supposed to be a wire link here.

That link is important. The upper 32K RAM chips are actually 64K RAM chips, where one half of the memory turned out to be faulty after production, so they were sold with half the size for cheaper. The link configures which half of the memory is to be used. There is no pull-up resistor, so keeping it open is not a valid option. It might cause the upper RAM to randomly flip between the working and faulty memory half. I doubt that this computer has ever been working stable after it was modified to 48K. This link has just been forgotten by whoever did the modification.

The RAM chips are TMS4532-20NL4. The trailing 4 indicates that the upper part of the memory is to be used, so I added a link between the center hole and the "+5V" hole. A trailing 3 would require a link between the center hole and "0V".

I soldered in the link and replaced all electrolytic caps with Vishay ones. I also replaced the 7805 voltage regulator with a Traco Power TSRΒ 1-2450. This modern DC/DC converter is a drop-in replacement that needs no heatsink, and is small enough to still fit into a classic ZX Spectrum case.

Wire link added and electrolytic capacitors replaced.

Issue 2 Spectrum boards have two variable resistors, VR1 and VR2, for color calibration. With the aid of an oscilloscope, calibration is a matter of a minute. I connected the scope to the composite video output (or to the video input of the modulator), and then adjusted both resistors until the signal was looking as smooth as possible. There is a blog article at Spectrum for Everyone that gives more details about the calibration.

Finally, I ran the ZX Spectrum Diagnostics tool. All tests passed, even those of the upper RAM.

All diagnostic checks passed.

Another repair job well done. πŸ˜„

So there is my 3rd ZX Spectrum. Above all, I like the exceptionally good condition of the case. It seems that the computer has barely been used in its 40 years. The keys and faceplate actually look pristine, and there are also only very few and small scratchmarks.

The case is in an excellent state, considering it's 40 years old.

Flash Amiga ROM

It's possible to use EPROMs to update your Amiga to the latest AmigaOS. Unfortunately these EPROMs are not produced any more, so it's becoming increasingly difficult to find these parts on the market. Another disadvantage is that a special UV light source is necessary to erase EPROMs, unlike modern Flash ROMs that can be erased electrically.

So wouldn't it be better to use Flash ROMs instead? Certainly yes, but they do not come in DIP-40 packages that fit the Amiga ROM sockets.

The Flash ROM Adapter

Soldering the Flash ROM chip on a hot plate. djbase kindly published the design of an Amiga Flash ROM Adapter. It can be equipped with 29F400, 29F800, or 29F160 Flash ROMs. They are available at all kind of electronic sellers, and can store up to four Amiga ROMs in a single chip.

Besides the PCB and the Flash ROM chip, you only need four SMD resistors, one SMD capacitor, and pin headers. The problem, however, is that the components are tiny, and the pitch of the Flash ROM chip pins is very fine, so this project is definitely not suited for soldering novices. Trust me. I made three of them for the bin before I was successful.

The Programming Hardware

The Hardware Sandwich For programming, I use an XGecu TL866II Plus programmer and the SN001 Adapter Kit. djbase also provides a special programming adapter, which is connected to the TSOP48/SOP44 base board of the SN001 adapter kit.

This programming adapter sandwich is put into the ZIF socket of the TL866 programmer. The Flash ROM adapter is placed into the ZIF socket of the adapter board, and the pin headers of both boards are connected according to their labels. Note that the current revision of the adapters support Flash ROMs up to the 29F160, and require five wires. I still use the previous revision with only four wires, because I like it better.

If you don't intend to change the Flash ROM content after soldering, you can also save the programming adapter and use the SN003 adapter instead (which often comes bundled with the SN001 adapter kit). You would then flash the Flash ROM before soldering.

The Binary File

For preparing the binary file, I use my Pynaroma toolkit. It takes care for joining multiple ROM files and the necessary byte swapping. For example, to create a ROM image of AmigaOS 2.04 and AmigaOS 3.2.1 for the Amiga 500, this command line can be used:

rom2bin -o flash.bin A500.37.175.rom CDTVA500A600A2000.47.102.rom 

Depending on the flash ROM chip, you can use up to four different ROM files of 512KB each. If the ROM file has a size of 256KB, remember to duplicate it.

Once the adapter is in the Amiga, the desired ROM image can be selected via the header address lines (e.g. by using jumpers or switches). Note that the address pins of the Flash ROM are pulled-up by the adapter. This means that the last ROM file of the sequence is used when all header pins are open.

Flashing

For programming, I prefer to use the open-source minipro software over the original software by XGecu, mainly because the original software is not available for Linux.

It is important to select the correct Flash ROM type. Pick the type that you have actually soldered to your adapter. Always choose the TSOP48 package, as the programming adapter simulates a TSOP48 socket.

I use a M29F800FT, so the correct device setting is M29F800FT@TSOP48, and the command line for flashing the binary file from above is:

minipro --device 'M29F800FT@TSOP48' --write flash.bin 

The Flash ROM will be erased (so there is no need to erase it before), the image written to it, and then verified in a final step.

ROM Replacement

Amiga Flash ROM adapter in an Amiga 500 The Flash ROM is a drop-in replacement for the Amiga ROM. I carefully removed the original ROM from the socket by using a screwdriver with a wide blade.

After that, I put the Flash ROM adapter into the socket. The correct orientation is crucial. The adapter is put with the header having the same orientation as the notch of the original ROM.

Sometimes the holes of the socket are too small to receive the pins of the adapter. In this case the only chance is to either replace the socket, or use an EPROM.

If you own an Amiga 500 Rev. 5 mainboard and experience random crashes with the new Flash ROM, you might need to add resistors to the address lines. This can be done either via resistor packs or by using an Amiga 500 EPROM adapter that is sold at some Amiga shops.

#Advertisement? This blog is free of ads. All shown products have been paid by myself.
Saturday, March 5, 2022