Jeff Duntemann's Contrapositive Diary Rotating Header Image

January 26th, 2015:

The Strangest Computer I’ve Ever Built

COSMAC Face Card.jpg

Lee Hart sent me the guldurndest thing for Christmas: One of his RCA COSMAC CDP1802 Face Card kits. I needed a distraction from a number of things, starting but not ending with publisher disputes. Lee’s Face Card was just the ticket. I haven’t done much PCB soldering in the last few years. Most of what I have done in the electronics sphere was point-to-point, generally on tube circuits. I hadn’t soldered a 40-pin DIP in, well, um…decades?

There’s a knack to it, and I had to dig around a little to find my roll of Ersin .022 Sn63 solder, but after a few minutes’ careful practice it all came back. The kit doesn’t include a 40-pin socket, but I always socket CPUs. The CPU chip I used (see above) has a distinguished history: It was the very same chip I ordered for my original COSMAC Elf project in the fall of 1976. Later it migrated to my second, heavily hacked Elf design (here’s the board mounted on what really was a scrap Xerox 3100 platen cover) with ten banks of CMOS memory (2,560 bytes!) a breadboard block, and a hex keypad. That second Elf board, in turn, became one of two CDP 1802 machines in my well-known robot Cosmo Klein:

Cosmo Klein Color 500 Wide.jpg

Cosmo and I did the SF con circuit from 1978 to the early 80s, and we were actually featured in Look Magazine, as well as an early cable TV program that no one saw.

So I have a certain history with RCA’s peculiar COSMAC architecture, and have built a number of peculiar computers with it. I’m pretty sure none of them were ever quite as peculiar as Lee’s Face Card. Why? The Face Card has no memory, volatile or nonvolatile. It does not run software. Actually, it’s strapped specifically so that it doesn’t run software. (More on this in a moment.) What it does is light up groups of LEDs to make an animated face. How it does this is, well, peculiar: The LEDs are driven from the 1802 chip’s address lines. The data bus is left floating. The 1802, when reset, begins executing code starting at address 0000 in memory. If there’s no memory and the data bus is floating, the chip just executes empty air. The patterns that appear on the address lines aren’t quite random, but close enough so that the LED eyebrows, face, and mouth move in almost random variations. Oh, and the clock speed? One cycle per second.

Peculiar enough for you?

One of the data bus lines has to be pulled high to prevent the binary instruction 00 from executing. This is the HALT opcode, and if empty air delivers 00 to the data bus, the Face Card will freeze and the face pattern will no longer change.

I have special affection for the Face Card because one of the two COSMAC machines in Cosmo displayed an animated face on a portable TV atop his body. Cosmo could look around, smile, frown, and (on a touchtone signal from my 2M HT) lick his chops.

I built the Face Card in about an hour and a half. I’m careful, I work slowly, and I test most components before soldering them into a circuit board. It worked as designed when I turned it on. Theoretically, the system can run on any power source from 4-6VDC. I found that a 5V supply didn’t quite cut it. Some of the LEDs didn’t light fully, and the patterns seemed to get “stuck” now and then. The board has been running at 6V for two days now, and things are brighter and livelier. They’ll be even livelier when I cut the clock generator resistor in half and double the clock speed to two cycles per second.

$19.95 + $5 shipping. CPU socket not included, but I think using one is a good idea.

Highly recommended.