The Commodore 64 (C64) holds a special place in the history of personal computing. Introduced in 1982 by Commodore International, it quickly became an iconic machine and a symbol of the home computer revolution. The popularity of the Commodore 64 was unparalleled, and even to this day, it remains the best-selling computer model of all time. Its affordability, versatility, and extensive software library made it a beloved choice for both gaming and productivity.
During its prime, the Commodore 64 was a game-changer in the world of computing. Priced competitively at $595, it was accessible to a wide range of consumers. Its superior graphics and sound capabilities, especially for its time, made it a dominant force in the gaming industry. Countless classics, such as “Maniac Mansion,” “Pitfall,” and “Summer Games,” were developed for the C64, captivating an entire generation of gamers.
Today, the Commodore 64 continues to be cherished by a dedicated community of enthusiasts and collectors. Its legacy lives on through various emulators, hardware remakes, and preservation efforts. The retro computing scene thrives with individuals who tinker, modify, and develop new software and hardware for the C64. A number of online communities still provide platforms for sharing knowledge, discussing projects, and reliving the nostalgia associated with this iconic machine.
Linus Åkesson is most definitely counted among the modern day fans of the Commodore 64. In fact, he loves this classic computer so much that he spent over three years building what he calls the Commodordion — a playable accordion made from a pair of Commodore computers and a stack of floppy disks. If that isn’t love, we don’t know what is!
While the Commodordion is magnificent, even if not especially useful, it does have one notable drawback. The software that powers the computer is loaded from a cassette tape drive emulator. It works, sure, but it is slow and involves some manual steps to get it up and running, not to mention that cassette tape-based storage is notoriously unreliable.
Because of his familiarity with the computer, Åkesson knew that a custom cartridge would solve the problem. They are fast, reliable, and do not require any manual steps to boot. But to interface with the expansion port, a custom PCB is needed. Sure, it is inexpensive to have a custom PCB produced these days, but it generally takes a few weeks to get one in your hands. So Åkesson considered more DIY-friendly options he could build with parts he already had on hand.
A stripboard seemed like a natural option, and the 0.1″ spacing between pads even matched up with the pinout of the Commodore’s expansion port. But there was one big problem with this idea — the stripboard only has contacts on one side, but the expansion port has contacts on both sides. Undeterred, Åkesson studied the pinout of the expansion port, and realized that he might be able to get by using only the pins on the top side of the connector.
At first glance, this would seem impossible because the address pins are on the bottom portion of the connector. How can the computer ask for data from specific memory addresses without specifying the address, after all? Åkesson realized that, so long as data is being accessed sequentially, you do not need to know each address. You can simply present one byte after the other on the data bus as they are requested. But how do you know when they are being requested? Easy enough, just watch the chip select line for the ROM chip — when it goes low, put the next byte on the bus.
In the spirit of working with what he had on hand, an ATmega88 microcontroller was utilized to service the computer’s requests, in conjunction with a tristate buffer to remove it from the data bus when data was not being requested. This microcontroller has 8 KB of flash memory, which is sufficient for the Commodordion’s needs anyway, but it is not a lot, even for a 1980s computer. So, the available memory had to be used wisely, with the program being tightly packed in.
The solution for this problem was to include a small bootloader that writes itself to the computer’s RAM. This bootloader then sequentially grabs program data from the custom cartridge to load into system memory. Using this DIY cartridge, the Commodordion can boot up instantly after powering up.
Åkesson has produced a very detailed write-up with step-by-step instructions for anyone that would like to reproduce the work. If you are not interested in accordions, how about a theremin? Or maybe you would like to do some machine learning with your Commodore?