Friday, 4 October 2013

VIC20 Repair Revisited

A while ago I wrote an article about how, in the dim and distant past before I had a decent EPROM programmer, I had repaired a problem with a faulty VIC20. As well as a few corroded chips and bad connections, the Kernal ROM had failed. This was a 24 pin 8K mask ROM, and at the time, the only solution I had was to use a 27C64, a 28 pin 8K EPROM in a socket adapter. The result, although successful, was less than elegant.
Since then, I've managed to get hold of some MCM68766C25 EPROMs, which are pin compatible with the original mask ROM, and a far more elegant solution. The only problem is, since they are rather old and obscure EPROMs, none of the programmers I have support them. So, it's time for another adapter, but this time, one that only needs to be used on the programmer. Rather than make yet another variation of 24-28, 28-24, etc., I decided to make a 'universal' one. Most of the left hand, and half of the right hand pins are consistent across nearly all the devices, so I created an adapter with sockets to allow all the other pins to be wired with jumpers.
This is only going to be used for reading and writing on the programmer, so I added a ZIF socket to the top. It can then be wired appropriately for the task in hand, sit in the programmer, and have the necessary chips inserted in the top.
This turned out to be useful when I was checking through a load of potentially suspicious ROMs from a couple of 8032-SK's which were non-functional. Out of the 12, 2 were dead and 2 were slightly wrong (but slightly wrong in an identical way, I need to investigate that further). It also allowed me to program some 2532 EPROMs (which are pin compatible with the Pet 4K mask ROMs) as temporary replacements
Anyway, back to the VIC20. The standard 8K EPROM, the 27C64, has 3 enable lines and a separate VPP pin, but the 68766 has a single pin for enable and VPP. One solution would be to build a simple transistor circuit to use the enable pin to switch VPP to the G/VPP pin on the 68766. However, I went for the easier way of setting the programmer to 27C512 mode. That standard chip also has a single G/VPP pin, so it just needs to be set to only program the first 8K. Mine has the option to skip 0xFF bytes, so can actually work over the full range. The spec of the chips says 25V in 2mS pulses. The closest I could get was 21V in 1mS pulses, it took a couple of goes, but it worked in the end.
Once programmed, the chip is then a direct replacement for the original mask ROM, so can be used without an adapter. It's not the most elegant way of programming it, but seems to be the cleanest end solution.
The VIC20 is then up and running again.