Site Content

Kaypro-10 and the Heathkit Days

For some odd reason I went under the workbench tonight, retrieved the old Kaypro-10 and fired it up. It booted too! Do you remember these beauties? This was a Kaypro-10, not a 2! It sports a 10 MB (not GB) hard drive and a 4 MHz Z80B CPU. This one has the Advent Turbo ROM too. That ROM allows for bigger hard drives and 96 TPI double sided 5 1/2 inch floppy drives.

Yeah, I had a bad case of computer obsession in those days. My first computer was a home made 8080 system that was started from a discarded circuit board. I used to be a Field Engineer at Kodak and I saved old repair parts. I took this board and reprogrammed the EPROM with code I copied from several books. I borrowed the EPROM Programmer from work to program the chips.  I glued into the EPROM a crude real time OS with debugger and added a text editor and assembler. I added a UART to the circuit board and interfaced the board to a Model 35ASR Teletype. In those days money was tight and I could not afford to buy a crystal for the UART, so I wired in a 555 timer, wrote some code to send a repeating U*U*U* text string to the Teletype and I adjusted the frequency trim pot until the Teletype started printing U*U*U*. The printing was not stable so I got out an oscilloscope. (Remember those?) I looked at the 555 clock and I noticed it was running at 2X the needed frequency. A change of capacitor and a re-tune of the pot and the Teletype was reliable. My editor had the ability to save and load programs to and from paper tape. Looking back on this it was amazing that I ever got this working so well.
Here's a photo of my computer room around 1986.  In the foreground on the left is a Heathkit H19 terminal connected to a Heathkit H8 Computer (not shown.)  On the right is a Heathkit H89 Computer  with the floppy disk drives on the left.  A hard drive was installed in the front of the computer.  That drive was a 10mb drive.  That's megabytes, not gigabytes!

I finally saved enough money in 1982 to buy my first Heathkit computer - the H89. The IBM PC had just come out but the Heathkit came with the OS (CP/M) AND two other applications. I chose MBASIC and a Word Processor - Magic Wand. Another selling point was that the Heath came with full schematics AND the source code to the BIOS! In 1982 I spent $2,300 on this system! That was a LOT of money in those days. The system had a green monochrome 12 inch screen, a 2 MHz Z80 CPU, 64K of memory and two 90K single sided, single density, hard sectored floppy disk drives. No hard drive.

Over the years, my friends and I began to learn Z80 assembly language and write very interesting software programs. I wrote an application to control the X10 CP-290 home control interface. The interface allowed me to use my H89 Computer to control lights and appliances in my house.  This box was sold with MSDOS software. It used a serial port for communication. I learned the communication protocol and wrote a full-featured application in Z80 Assembly Language to allow you to program, save and edit timed events to control lights and appliances in your home using X10 modules that operate over the power line.

In time we were re-writing the Heath BIOS to support adding hard drives and the floppy disk formats of other computers, such as the Kaypro, Osborne, Xerox 820, Morrow, Bigboard, Ampro, Cromemco and even the Commodore 128. We would do re-writes of our code just to save a few bytes or to use faster Z80 instructions instead of slower 8080 ones.

My friend, Lee Hart, was so creative in his use of code. He wrote and sold an aftermarket ROM for the Heathkit H19 terminal. The screen was 80 characters by 20 lines so around 2K of memory would hold a screen worth of data. Typically to clear the screen a programmer would do something like: load zero in the accumulator, put the address of the beginning of video memory in HL, save the contents of the accumulator at that address, increment the address and repeat until you loaded all the screen locations. Well, Lee decided to set the stack pointer SP to the TOP of the video memory, put 0000 in HL and then POP HL a thousand times. He used 16 bit manipulation instead of 8 bit so his routine used less code and ran at least twice as fast. The paradigm he busted was using the stack pointer and stack instructions to manipulate memory other than the stack. Brilliant!

Before the internet we used these computers on dialup bulletin board systems to exchange messages and programs. Our home phones were busy for hours every night with slow transfers that started with 300 baud acoustic coupled modems! When we jumped to 2400 baud we thought we died and went to heaven.

I miss those days. I don't get under the hood much like I did back then. I certainly don't go into the ROMs looking to add features by writing new code.

One thing from those days still makes me smile. In  October 1985 Bill Gates published an article in the Heath/Zenith Users Group Magazine "REMark." Next month in November 1985 I had my own article published in REMark. I read Bill's article. I wonder if he read mine.