Thursday, May 24, 2007

Phosphor Green

My first computer was an Epson QX-10 (see it here too). I was 12 when I got it, back in 1995, and it was already ancient then. It wasn't a PC compatible, and did not even run DOS. Instead, it ran something that predated DOS, an older operating system called CP/M. With its simple CP/M software and elegantly straightforward 8 bit Z-80 hardware, in a cute chassis, it meant to me what old Apple computers must have meant to their owners. The QX-10 was the last, best 8-bit home computer.

I spent many months in the cool glow of its green monochrome screen, learning to program. Gosh I loved that computer. At first I used my electronics skills to keep it running, but when it finally deteriorated past the point of my ability to repair it, I am ashamed to say I cannibalized it for parts. Like Shel Silverstein's story of The Giving Tree, where a boy cuts from his favorite childhood tree until all that's left of it is a sad stump, I chopped pieces from the computer to build other projects, until there was nothing left. When I was 12 it seemed impossible that anyone could understand the entire workings of such a complicated device; now at 23, with much greater electronics experience, I look back and realize that I could keep such a simple computer in repair forever, if only I had left it intact. The only thing I still have from it is a 3 inch long piece of black plastic and silicon - the Z-80 CPU that was at the heart of the system.

Nostalgic Apple II owners and Commodore 64 enthusiasts can now download emulators of their old systems, but no one ever made an Epson QX-10 emulator. I suppose it just wasn't a common enough system.

However, while perusing a computer museum site, Dave's Old Computers, I found he has CP/M emulators (scroll to the very bottom of the page). I always thought that a CP/M program would be for CP/M on a QX-10, or CP/M on a Kaypro, etc. In other words, since CP/M runs on many different computers, I assumed that the programs would need to be both written for CP/M and be for that particular type of computer. But it seems that any CP/M computer can run a program for any other CP/M computer, at least as long as both computers use the Z-80 processor. So even though it might not be emulating the QX-10 per se, it seems to run the programs anyhow.

With emulators in hand, I went looking for CP/M software. I found the CP/M Commercial Software Archive, which even has a version of dBASE II, the environment I first learned to program on. I was disappointed that I couldn't find Valdocs in their downloads section. Although it was written years before Microsoft Office was ever thought of, I could do anything with Valdocs that you can do today with Word and Excel, and I often got compliments on how nice my homework assignments looked when I did them with Valdocs. I kept many of my old disks, but in agreement with Murphy's law, it happened that the disks I still have are mostly blank or worthless, while important ones, such as my own copies of the Valdocs disks, are all missing.

There's still a surprising amount of CP/M software around. The Unofficial CP/M Web Site even includes source code downloads. By far the most eyebrow-raising download of all is option to download the entire source code for the CP/M operating system itself! There is also a "mostly finished" version 3 of CP/M which was being written for the Motorola 68000 processor. The nice thing about this version is that the source code is in C, so it could be compiled for something other than the 68000 as well; one of these days I would like to try taking that C code and porting it to another computer. That would be fun.

1 comment:

Rikard Lang said...

I'd love to see an updated CP/M that could run on modern day x86. I've always had a soft spot for CP/M and its huge software archive that actually lets one be creative without all the distracting graphical elements. I usually write all my short stories in VIM via a terminal just to keep my self as little distracted as possible.

/Rikard