Thursday, January 27, 2005

The Sinclair ZX81

The year was 1981. IBM had just announced the IBM PC for the modest sum of $3,000. The Apple II was everywhere. I had been programming various computers ranging from DEC PDP-11's to Apple II's and the dream of owning my own computer was still out of reach for this college physics student and electronics hobbyist.

Then came the Sinclair ZX81. Here was a kit, advertised in BYTE magazine, that you could build and own for $99! It didn't look like much more than a large calculator, but to someone with my desire to soak up every bit of knowledge about computers that I could find, this was my ticket to a whole world of possibilities.

It was ordered, arrived, and I quickly put my soldering skills to use. In two days I was programming Sinclair BASIC and reading a Sinclair users group newsletter out of Harvard describing undocumented tricks that would allow you to load a Z80 machine language program into memory and call directly to your code, bypassing the BASIC interpreter and making the Sinclair architecture as accessible as any minicomputer or personal computer at the time.

I was soon writing machine language on a yellow pad and hand assembling into hexadecimal bytecodes which I would write in the left column of the paper. I think I still have some of those program listings somewhere. While hand coding this way was extremely tedious, the feeling of euphoria when finally seeing your debugged program working was just reward.

If I were asked to describe the biggest weakness of the Sinclair ZX81, it would have to be the storage... audio cassette tapes, that is. It took a lot of messing around with the volume control on my tape recorder. It was easy to lose a program, and they were stored sequentially so you had to play through to the point in the tape you were interested in. You got very accustomed to listening to these tapes as you were rewinding or fast forwarding to the program you were looking for, and you could often recognize a piece of code by how the beginning sounded.

And of course there was the constant threat of the "wiggle" crash. This invariably occurred after you just spent an hour painstakingly typing in a large program listing on the membrane keyboard, pressing hard on the no-feedback keys when the computer moved slightly and the external rampack (seen in the ad above) would wiggle ever so slightly, and cause the system to crash losing all that hard work. I suppose many ZX81's were thrown out a window for just that reason!

To many, the Sinclair ZX81 was a toy. To me, it was a development system. Here is a picture of a buffered expansion board from Computer Continuum Inc., with the ZX81 mounted on edge. In the buffered slots are some of my wire wrapped expansion cards that I built for various college physics projects. The first is a UART serial interface, the second card is a 2K memory expansion, and the third is a 8255 PPI interface. I was planning to add a real keyboard and mount this in a box for a home control application... another unfinished project.

The ZX81 still has a strong following today 23 years later! There are a number of emulators out there and many web sites with code to download. comp.sys.sinclair is a good place to see what the latest news is on new versions of emulators or code. You can even still buy new unbuilt ZX81 kits. Zebra Systems has several hundred kits available for the original price of $99 so that you can still experience the thrill of building one of the earliest (and least expensive) personal computers from the 80's!