Photo courtesy of Dan Veeneman
Sometime in the late 1970’s I bought my first computer, an ELF II from Netronics. It arrived at the house in a big, padded envelope. Inside the envelope was an empty printed circuit board, and several little plastic bags containing the electronics. I spent a Saturday afternoon with a soldering iron assembling and testing, and then proceeded to try to figure out what I would do with it.
This thing was certainly no supercomputer. It had a whopping 256 bytes of memory. Not megabytes, not kilobytes; just bytes. It featured an RCA COSMAC 1802 8-bit microprocessor. This chip’s main claim to fame was that it was designed to be highly resistant to radiation and electrostatic shock, which led to it being selected by NASA for a number of space projects. To a geeky teenager in the 70’s this gave it a lot of appeal, even though my little board was never going to be exposed to cosmic radiation.
The basic $99 kit was strictly a learning project. It included a two-digit hexadecimal display and a 16-key hexadecimal keypad, plus an Interrupt key and three toggle switches. Programming it consisted of using the toggle switches to step through memory, entering a hex code corresponding to a machine-language instruction, and then stepping to the next memory location. This was tedious, to say the least. Creating a program that did anything useful, or even interesting, in 256 bytes of memory was quite a challenge.
One of the most exciting features was the expansion bus. The board had room for five expansion sockets, and came with one socket plus a few SIP headers which could be used to connect to certain input/output signals. My first project with the ELF consisted of connecting a speaker to one of these sockets. By rapidly toggling the state of the output pin, I could produce tones from the speaker. By changing the speed of this toggling, I could produce tones of different frequencies. My crowning achievement used the interrupt feature of the chip to produce a tone only while a key was pressed, with a different tone for each key. That’s right, I created a primitive music synthesizer capable of producing sixteen different notes! Eat your heart out, Moog!
Just to give you an idea of what it was like programming one of these, here’s a code snippet:
0000 71 RESET DIS ; DISABLE INTERRUPTS 0001 00 DC 0 0002 F8FF FINDRAM LDI 0FFH ; FIND RAM, STARTING AT FFFF 0004 B4 PHI R4 0005 F8FF TRYAGAIN LDI 0FFH ; REPEAT... 0007 A4 PLO R4 ; - TEST TOP BYTE ON PAGE 0008 54 STR R4 ; - STORE 'FF' 0009 04 LDN R4 ; READ IT BACK, 000A FBFF XRI 0FFH ; COMPARE 000C C6 LSNZ ; - IF OK, STORE ALL 0'S, 000D 54 STR R4 ; READ BACK, 000E 04 LDN R4 ; COMPARE 000F 321A BZ RAMFOUND ; - IF OK, THEN RAM FOUND 0011 94 GHI R4 ; - IF NO MORE PAGES TO TEST, 0012 32DD BZ NORAM ; THEN GO TO NORAM 0014 A4 PLO R4 ; ELSE DEC. PAGE NUMBER 0015 24 DEC R4 0016 84 GLO R4 0017 B4 PHI R4 ; ...UNTIL DONE
Keep in mind that one doesn’t see all of this on your display. You start at memory location 0000, enter “71” on the keypad, flick a toggle switch to enter, flick another toggle switch to advance to memory location 0001, enter “00”, etc.
The expansion bus allowed much more, though. Netronics offered an expansion board that included an RS-232 serial port, a cassette interface for storing programs on tape, and a system monitor program that would display memory on a TV set or monitor. Other accessories included a prototyping board, a 4k RAM expansion, and a Tiny BASIC interpreter. Users found a wide variety of creative ways to use these, as documented in the Netronics newsletter. In those pre-Internet days, the newsletter was the only way of keeping up with the activities in the ELF community. Those prototyping features made the ELF II a predecessor of products like the Arduino and the Raspberry Pi.
When I went looking for information online to illustrate this post, I was surprised to find that the COSMAC lives on, in the form of an active retro computing community. If you want to learn more, a good starting point is http://www.cosmacelf.com/. If you want to get in on the fun, a modern version of the original ELF computer is available, designed to fit in an Altoids tin.
Dan Veeneman also has a lot of information at his Decode Systems website. I’d like to thank Dan for giving me permission to use the photo at the top of this post.