For a while now, I've been working on an emulator for the KENBAK-1, an interesting little piece of technology from 1971 that the Boston Computer Museum has crowned the first personal computer. It's less recognized than the other big contender, the Altair 8800, because it wasn't nearly as successful, and also because a lot of people wouldn't count it as a proper computer, seeing as it has only 256 bytes of address space and no input or output devices other than the front panel. Still, it's a marvel of engineering by 1971 standards, a complete and reasonably full-featured 8-bit CPU and 256 bytes of RAM inside a case no larger than a small modern desktop PC.

The emulator is fairly close to completion at the moment; I have the large majority of the instruction opcodes implemented. The main remaining pieces to be completed are the front-panel interface, instruction execution times, and the subtraction instruction (I still have to figure out how arithmetic overflow works, it's been bugging me for quite some time now.) Like most of my larger projects, the Kenbak emulator is written in C++, using GCC and Bloodshed Software's Dev-C++. The front-panel interface will probably use SDL.

There is no functional executable for the emulator yet, but you can download the source here.