The Kenbak-1 was created by John Blankenbaker, a computer engineer and inventor, and Michael was drawn to the idea of reproducing it in the form of the Kenbak-2/5 (a 2:5 scale model of the original) for a key reason. “For me, the thing that attracted me to this project, aside from the historical significance, was the sophisticated instruction set that the Kenbak-1 supported,” he explains. “This was surprising because the computer was implemented with discrete logic chips and did not contain a microprocessor. The instructions were on a par with those used in microprocessors that were to follow years later, like the Motorola 6800 (1974) and the MOS Technology 6502 (1975).”
A contemporary take
Michael has a YouTube video that explains in detail how the original computer worked, as he enters a program through the model’s front panel buttons. He then details how the Kenbak-2/5 supplements the original by allowing the user to enter a program by typing in assembly language instructions. In Michael’s words, his version of this computer “allows one to have a ‘classic’ Kenbak-1 experience, then enhances that experience by allowing the user to use more modern tools like an assembler and a debugger.” He also has a detailed Hackaday page, if you feel like having a go yourself.
Using photographs of the original machine as a guide, because finding an original Kenbak-1 would have been difficult and hugely expensive, Michael 3D-printed the frame of the project. “One of the reasons that I chose to make this reproduction at 2/5 (40%) scale was so that all the 3D-printed parts (of which there were only five) would fit onto my printer. So, this simplified the assembly,” he says. “Aside from the screws used to mount the Raspberry Pi to the frame, everything just snaps together.”
A built-in Raspberry Pi 4 is connected to the front panel via a 32-channel expansion HAT. It also runs an IDE that can be accessed on a remote machine via SSH or VNC; the source code is on GitHub (along with the STL files for 3D printing the case).
Michael created the Kenbak-1 Assembler and Emulator using Python and it’s all based on John Blankenbaker’s Programming Reference Manual. Any qualms he had about his understanding of the documentation were laid to rest by fellow enthusiasts who helped him out with potential glitches. “Fortunately, there is a pretty active Kenbak-1 community out there and some people actually tried out my software and found a few bugs and misunderstandings.
The icing on the cake is that Michael’s make has received praise from the original inventor. “I sent John Blankenbaker (91 years young) an email with pictures of my reproduction and a few questions, and he was gracious enough to answer. The first thing he said in his reply was ‘Your email was the most interesting thing I have received today. I was very impressed!’. That sure made my day too!”
Praise indeed, and this underlines one of the reasons why Michael undertook the challenge: “I think that the devices themselves, and their designers, deserve to be remembered and honoured.” Many enthusiasts would certainly agree with that sentiment.