Saturday, 30 November 2013

Commodore 64 PLA Replacement

As I have mentioned before, the Achilles heel of many vintage computers are custom chips. These PLA (in Commodore terminology) or ULA (in Sinclair terminology) chips were a way to reduce cost and size by combining the functionality of a number of logic chips into a single package. Sometimes doing simple address decoding (as in many Commodore machines) and also generating sound and video (as in the case of the ZX81 and ZX Spectrum, Acorn Electron etc.).
The trouble with these is they tend to run hot and eventually fail, and replacements they haven't been produced in the last 20 years, the so lead to the demise of many machines.
Over the years, many methods have been used to replace these. The Sinclair ones contain a lot of functionality, so replacement is quite complex, as in my ZX81 Clone.
The Commodore ones are a lot simpler and are mainly address decoding. So the inputs are the address lines, and the outputs are a series of enable lines. So for this address range, enable this chip, for that address range, enable that chip, and so on. There isn't any state or anything more complicated than a simple truth table.
Many people have suggested an EPROM could be used to replace this, the one I followed was here (in German) The pinouts aren't exactly the same, so a few pins need to be redirected. I built a simple adapter for this.
I used a wirewrap socket, pushing it part way through and then soldering it, before cutting of the pins and soldering the remainder two holes to the left as the EPROM socket
Finally adding the 4 wire links.
Here we have a Commodore 64 which is working except for the PLA. It has been tested with a working PLA, and all is well, so time to try out the replacement PLA.
I used a one time programmable version EPROM (an Atmel AT27C512CR-45PU), as these seemed to offer appropriate timing of 45mS, and others had reported success with these.
First off, it looked promising, the system ran for several hours. However, I noticed the SID had been getting rather hot. I went back to a working PLA and ran it for a further couple of hours and the SID ran as normal (which is still hot, but not as hot - must get an IR thermometer). I think this is related to the timing issues. It is possible that certain combinations of outputs may be enabled at the same time during the short time the EPROM is in its intermediate state before the data lines settle down. There is no timing element or enable mechanism to stop this happening.
So, it looks like this isn't a viable long term solution. I think I'm going to try building a replacement with a couple of 20V8 GALs next.

I've has good results with EPROMs and a capacitor to alter the timing slightly, also a nicer PCB

Saturday, 23 November 2013

ZX Spectrum Raspberry Pi Case Mode USB Keyboard

I'd have a few requests for to fit a Raspberry Pi into one of my ZX Spectrum USB keyboards, following on from the previous ZX Spectrum Plus Rasberry Pi Case Mod. This gives a very nice solution of a fully working raspberry pi with a fully functional keyboard all inside the Spectrum. So the pi fitted quite nicely into the Spectrum's successor, and also into it's predecessor, the ZX81, so how hard can it be?
Well, it turns out quite tricky actually. The main issue was height, the components on the pi were to tall to be able to close the case. Also, due to the pi having connectors on all sides, it's quite a challenge.
The first thing was to identify what was necessary. In the first case, the customer needed USB, HDMI and access to the SD card, but none of the other ports. So, step one, get rid of them.
That left a much lower profile version of the board.
The pins were available, should the ports be needed. I later linked the detect pins on the composite video and audio jacks so they would be detected as unplugged. The USB would be wired directly to the board from the USB keyboard, and a hub. I initially thought I could use a 4 port 2x2 hub, by widening the mic and ear ports, but it would have required too much to be removed.
So I went back to the same 4 port hub as I have used with the ZX81 and ZX Spectrum Plus. The other USB cable goes to the USB keyboard board on the back of the keyboard.
I extended the mic socket slightly, so the SD card could be accessed through that, and the power input micro USB via the ear socket.
I suppose LAN could be taken to an RJ45 magjack socket mounted in the power connector space, and HDMI in the TV socket, but I didn't do that with this one.


A more modern version of the conversion kit is available from my Tindie store.

Sunday, 17 November 2013

Rusty VIC20 Restoration

Sometimes it seems you can never tell what you're going to get from ebay. This was one of the one was a candidate for a USB Keyboard, it looked to be a nice, non-yellowed VIC20.
The thing which identified this as a candidate was seen in the photo of the rear of the unit.
Oh dear, looks like this has been sitting in water and the screws had rusted
I was expecting this to be over the whole board, and the thing would be a write off, and therefore just a thorough clean of the case and keyboard, and ready for the USB board.
However, it seemed to be limited to the edge of the board, to the screws and the metalwork.
I wondered if it could be saved, so I took out the board and had a go with a solution of vinegar and water.
It seemed to clean up very well, so I removed the metalwork and a few discrete components and cleaned up the rest of the board.
Most of the board cleaned up quite well. I later reflowed the solder on those tracks to get rid of the remainder of the corrosion.
The metalwork was quite corroded, so I replaced it with a shield from a scrap board.
Now that all the corrosion had been cleared up, I was back with a VIC20, ready to test.
Black screen. Oh dear. Well, now onto the usual VIC20 repair routine. Nothing was running hot (apart from the VIC as usual), reset was happening, the clock was running, and the keyboard was being scanned. So I hooked up a 1541 disk drive and tried some 'blind' disk commands. So even though the screen was showing nothing, typing

LOAD "$",8

resulted in disk access. So this was going to be an easy one. The machine was running, just the display that wasn't happening. So, it was the VIC or the possibly the video memory. Neither of those were socketed, so I tried the VIC first, removing the old chip and replacing it with a socket and a known working chip
Powered it back up and voila, one ready screen.
After that, it was onto giving the case a good clean and sorting out the rusty end panel.
All reassembled, it cleaned up rather well.
It's one of the whitest VIC20's I've seen
A nice addition to the collection

Monday, 11 November 2013

Commodore Bread Bin USB Keyboards

I've been busy adding more keyboards to the range of vintage computers turned into USB keyboards, all available for purchase from my Etsy store.
This week, we have three versions of the classic Commodore ‘Bread Bin’ computers. The oldest is the white (but now slightly yellowed) Commodore Vic 20.
Then follows the classic beige Commodore 64.
Lastly the Commodore 16. A nice looking keyboard from what was never a popular machine. I think people were expecting it to be a cut down Commodore 64 (because of the name and the look), and perhaps expected to be able to upgrade it by 48 at some point in the future. Instead, it was actually a cut down Commodore Plus/4, another one which never made it big.
As with the Commodore 16, the cassette ports, joysticks, and most importantly, software, were not compatible with the hugely successful Commodore 64. I've got a dead Plus/4 that is ready to become a USB keyboard, should anyone want one.
Please don’t get me wrong here, I am a massive fan of these old computers, so I never condone starting this process with a working machine. I see these as an excellent way of giving a new life to the cases from computers that could not otherwise be used. There are still more usable cases and keyboards out there than there are working boards and power supplies.
So, as with all my USB keyboards, I source these as good looking but ‘dead’ computers (‘untested’ in ebay terminology). Sometimes they arrive as write offs (such as the rusty VIC20 above), other times I get them in, and they are relatively easy to fix. I then have to wait for properly broken ones. In the case of these it is usually the custom chips which are the clincher. Although I've made and tried various replacements for these, it often a ‘beyond economic repair’ situation, so these boards can provide parts to save other machines, or can lie in wait for a machine which has a working PAL, but is otherwise dead. In the mean time, the rest of it lives on as a USB keyboard.

Update: the photo of the rusty Vic 20 was from the ebay listing. It has now arrived and turned out to not be as bad as it first appeared. The unit has now been restored to full health, see more details about the Rusty VIC20 Restoration

The search for USB keyboard candidates continues...