Recently, I got hold of quite a few broken Commodore 64 motherboards. It has been a while since I last had the chance to repair one of those boards and it was fun! I dubbed this repair project the “Blank Screen Marathon” and documented the whole process in German on Forum64. I might still give a summary in English here at a later point. But today, I’d like to introduce a small side project that resulted from this repair marathon.
Among those broken boards were several with defective ROM chips. They were all so called “long boards” that use three of those ICs. One of them holds the “Kernal” which is what you might call a very rudimentary operating system. The other two hold the Basic interpreter and the character data.
The easiest and probably the cheapest way to replace one of those ROMs today, is to use a W27C512 EEPROM. These have the added benefit of a larger memory. Kernal and Basic require 8KB, the character set 4KB, so multiple different version will fit into one EEPROM. This also allows for a Kernal switcher, for example.
However, it does require some kind of adapter to use those 28 pin EEPROMs as a replacement for the 24 pin ROM ICs. The Open2327RomAdapter is one example for such a simple adapter board.
While these adapters are cheap and functional, they are massive constructs compared to the original IC. I wanted a more compact and elegant solution, and I wanted a way to easily switch between different ROM banks directly on the replacement board.
So, I took some inspiration from prior work shown on Forum64 (see here and here) and created the “KERNALquattro”. “KQ” for short, maybe. It uses a surface mount AT28HC256 EEPROM that nicely fits onto the bottom side of the adapter PCB. With its 32KB it has enough memory to store 4 Kernal images. In order to make these accessible, the KERNALquattro provides alternative ways to switch between them: using either a DIP switch, solder bridges, or some other kind of switch wired to the external connector.
The AT28HC256 can either be programmed prior to soldering or with the help of a special adapter board. This adapter goes in between the KQ and the ZIF-Socket of a standard programmer like the TL866. It maps the 24 pins of the KQ back to 28 pin layout of a 28C256 in DIP package.
When using the adapter, all four switches on the KQ must be opened, i.e. switched to the OFF position. After programming, switches 3 and 4 (CS and WE) need to be closed again to use the KQ. Switches 1 and 2 (A13 and A14) can be used to select the memory banks.
The BOMs for the KQ and the adapter are quite short as one would expect. Unfortunately, the AT28HC256E EEPROM is not easy to source right now and more expensive than it used to be. Very likely, this is due to the current situation, the global shortage of semiconductors.
|1||U1||AT28HC256E EEPROM||eBay (China)|
|2||R1,R2||10k resistor 0805||eBay (China)|
|1||SW1||DIP Switch SMD SPSTx4||eBay (China)|
|1||CN1||male pin headers, round||eBay (China)|
|4||J1||Pogo pins, 1.0mm diameter||eBay (China)|
|1||CN1||female pin headers, round||eBay (China)|
|1||U1||male pin headers, round||eBay (China)|
First tests of the KERNALquattro rev.1 have been successful, there doesn’t seem to be any pressing need for a new revision right now. So, PCBs for the KERNALquattro and the KQAdapter
will be are available at PCBWay very soon now.
I’d like to do a little more testing followed by some cleaning up of my project files. When that’s done, I will share the project files on Github as usual. So, make sure to check for updates here.