In a previous post I've been musing about how in the 1980s, microcomputer learning kits appeared on the market to teach kids and adults how computers work. Note that this is different from learning how to work with computers or even how to program them in a higher level language as in both cases the inner workings of a computer is abstracted. As I'm fascinated by the approach I've also wondered in the post if such kits are still available today or if learning about how computers work has effectively moved on to only be a topic at university courses. Here's what I've found out so far:
Even after some more research I still came up empty handed and it seems such learning and tinkering kits have disappeared today. What I have found, however, is a number of 1980s microcomputer learning kits each with a slightly different approach to the topic. As I am not only interested in the historical perspective but also wonder how this approach could be revived with current hardware and perhaps some self-written software I had a closer look at the tutorials which can be found in PDF format on websites of vintage computing enthusiasts to see how the different kits went about teaching computing basics. Interestingly enough, the approaches are quite different:
The Busch 2090 4-bit Microcomputer Kit
Released in 1981, the Busch 2090 is the oldest of the three microcomputer learning kits I could find. It's based on a 4-bit microcomputer. As the other two, the kit is part of a larger electronics experiment program so it works well together with other electronics kits of the company to expand experiments into the physical world by triggering outputs to LEDs and loudspeakers and receiving input from different kind of self assembled circuits. I've blogged about it in a previous post and you can find some more details see here. (Sorry for this and many other links in this post being in German but it seems these kits were mainly popular in the German speaking world. Google Translate is a helpful tool to translate the pages into your language on the fly.)
Programs are written in a 4-bit pseudo machine code. Each pseudo instruction is always 3 hexadecimal digits long and all operations are explained in the decimal, binary and hexadecimal system. While most pseudo instructions closely resemble actual machine instructions some also perform more complex tasks such as displaying the contents of the accumulator or other registers on the display or reading key input. What I liked best about the teaching approach of the tutorial is the jovial style and a mascot that demonstrates important principles in a funny and easy understandable way as shown in the first image on the left
Another great approach of the tutorial is that almost all program listings contain the memory address for each instruction, the instruction code, the mnemonic for it and a description for each operation as shown in the third image on the left. This makes understanding and memorizing the codes and mnemonics very easy.
I find that the writing style and level of detail makes this kit appealing for kids from 12 to 99. The descriptions of how a microprocessor works and how it communicates with memory and peripherals are very simple but still precise. The tutorial has around 80 pages, so it's not a daunting task to go through it even with the attention span of a 12 year old and I found it to be a perfect balance between beeing too simple and too complex for people that have never touched the subject before.
The Philips 6400 Microcomputer Master Lab
Two years later, in 1983, Philips released it's microcomputer learning kit, the Philips 6400 microcomputer masterlab. While the general approach is the same as in the Busch 2090 there are some significant differences in the practical implementation. Philips used an 8-bit processor for its kit and instead of pseudo machine code instructions, real machine code was used for user programs. I very much like this approach as this is as close to the bare metal as possible. It makes programming a bit more complicated but from the tutorial I take it that the kit was addressed at a somewhat older audience than the Busch computer, perhaps 16 years and up, so this is not much of an issue. Less humor and more facts I would say.
The level of detail is much deeper compared to the Busch kit. At 160 pages the tutorial is twice the size and technical descriptions go much further and deeper. There are good technical descriptions of how two numbers are added in the hexadecimal system, how this is done in the binary system and finally of how this is implemented in hardware with Boolean logic. How subtraction is done by adding the two's complement of a number to another is also introduced as well as multiplication and division operations. The kit also introduces the reader reader to function calls, the stack and stack pointer, discusses Boolean logic (AND, OR, NAND, NOR, XOR), bit masking, jump conditions and quite a number of other bare metal operations. For somebody in the final years of high school who has a knack for mathematics, this level of detail and complexity is probably just right.
My only gripe with the tutorial is that at the beginning program listings are not explained at all and the user has to type in numbers without really knowing what they do or what they stand for. This gets better as more details are introduced as shown in the image on the left but I still felt when reading the tutorial that the program listings should have contained more explanations on an instruction to instruction basis for an easier understanding.
The Kosmos CP1
The tutorial I have of this kit is from 1983 so it also seems to have been brought to the market two years after the Busch 2090. Like the Busch computer, the Kosmos CP1 also seems to address a younger audience as the introduction to computing is quite on a high level of abstraction. Like the Busch approach, the kit uses pseudo-machine instructions, that are, however, much more abstracted than the Busch pseudo-instructions that stick much closer to real machine instructions.
Having gone through the other two tutorials before I focused on this one I have to admit that I found the pseudo-machine code of this approach a bit difficult to understand and I wonder why they ventured so far away from the bare metal instructions. Perhaps this was done to get around the hexadecimal system. Yes, there's not a single hex number throughout the whole tutorial, the computer is entirely programed with decimal numbers. Discovering the hexadecimal system later on must be somewhat of a culture shock. The image on the left shows how a program for the CP1 looks like. Each command is well described but the commands themselves are a bit too abstracted from the real world for my taste. The tutorial has 145 pages and is split into two parts. The first 60
pages are dedicated to introducing the commands and how a computer
works and the second part is dedicated to program examples that are
discussed in detail. Quite a number of the examples let the computer interact with the real world via electronic input and output circuits that can be plugged together on an extension board. While the other two kits include such extension boards, some resistors, transistors, LEDs, etc., I am not sure they were included in the CP1 kit or if was assumed that the reader has already bought other electronics experiment kits from Kosmos before.
What All Have in Common And Why Simplicity Trumps The Full Keyboard + Screen Approach
One thing all three kits have in common is a 7-segment display with six digits (Busch 2090 and Kosmos CP1) or eight digits (Philips 6400). As can be seen in the images the kits are completely operated and programed via numerical input pads and a number of special keys for operations such as performing a reset, for selecting and running a program, for entering programming mode, etc.). This might seem a bit archaic from today's point of view but since these kits are there to introduce the bare metal innards of computers I would still do it like that today. It might be too cumbersome to write long programs with only a numerical keypad to type in raw machine instruction codes but the point of these kits is to teach how a computer works on a low level. Therefore, interacting with it on this level is very appropriate and serves the 'bare metal' approach rather than being a restriction.
In addtion, all kits are very hardware centric so experiments are not limited to generating an output on a 7 segment display and receiving input from the numeric keypad. Instead, experiments can make use of digital input and output ports to which electronic circuits that are put together by the user on an extension board can either deliver input or receive an output to trigger lights or generate a sound.
My Preferences For A Modern Microcomputer Learning Kit
If I were to create such a kit again today for kids age 12 and up and also an adult audience, I think I would take an approach between the Busch 2090 and CP1 on the one hand and the Philips approach on the other. I like the simple and fun approach to the topic of the Busch 2090 tutorial but instead of using pseudo machine instructions I would make use of real machine instructions as is done by the Philips kit. That would mean to introduce function calls a bit earlier in the tutorial to do some more complicated things as showing register contents on the 7-segment display or receiving keyboard input but I think that is a compromise that would be worth it. One could even have two tutorials then, one for a younger and one for a somewhat more technically knowledgeable audience. Or one could create an easy to understand tutorial for both audiences and have a second one with more technical details that builds on the first one for those that have been hooked.
While I think that the audience for such kits was small back in the 1980's and might perhaps be even smaller today it would still be fun to work on this for pure self enjoyment and for giving something to those who'd like to find out how a computer really works. Too bad the day only has 24 hours…