"What's a Computer?" |
The last time I had patently too much time on my hands, in 1997 (seventeen years!), I hacked together a software simulation of it. I had intended this to be a general purpose simulator but it fell by the wayside after the UK101. In the intervening time I'd often regretted not writing the simulator in Java (indeed, a very good Java-based simulator now exists) but luckily where microcontrollers are concerned, C/C++ is still the only game in town, and most of the code compiled under the Energia IDE.
The hardware is almost insultingly simple, there are five components:
- A Stellaris Launchpad from Texas Instruments,
- An SD card drive,
- A TFT LCD boosterpack,
- A PS/2 socket,
- A PS/2 keyboard.
While the Launchpad has only 16k of RAM, of which 12k is used for the main memory and 2k for the display, it does have 256k of flash, easily enough to contain all of the ROMs I've collected for it. (Another UK101 hardware instantiation can support the full 40k of user RAM.)
This build's main limitations are the display (only 30 lines of 40 characters vs the original's 32x48 --- affordable TFT screens max-out at 240x320 pixels these days) and the keyboard (a lot of the games use the Control, Left-shift and Right-shift keys, which aren't available individually from the off-the-shelf PS/2 keyboard library).
However it has one modern advantages over the original which almost makes it enjoyable to use: checkpointing and restoring the machine state using the SD card. This allows creation of initial game images (which load instantly since they're only 14k) and progressive checkpoints, as adventure games are completed, for instance, or new programs developed.
Space Invaders: it doesn't get much better than this! |
Code and programs are at GitHub, should you care.
The final thing is to find a suitably retrotacular housing for it. Something like this would be about right...