I assume you know what a KIM-1 computer is (was). It was the first 6502 based computer, released in 1977 by MOS Technologies. I purchased my KIM-1 in 1978 for $225 when I was 16 years old. It was my first computer! I did a lot of expansion, but sold it in 1979 in order to buy an OSI Superboard. What a mistake. The Superboard was great, but I should have kept the KIM!

Circa 2003, I mention my long-lost KIM to a co-worker, who then offers to loan me his KIM, which had been sitting in his closet since 1979. Ron's machine came right up, and has provided hours of enjoyment for me, reliving the old days of computers.

Since then, I've purchased one KIM-1 on eBay, and another was offered to me by the original owner for a very nice price. Both machines proudly sit on my desk in the basement, and get used at least once or twice a week. Even after 28 years, Lunar Lander is still fun!

Using an ASCII Terminal with a KIM-1

First, you need to deal with the 20 ma interface problem. I did it by building a board to do the job

Like most people, I use HyperTerm from a Windows XP box. When you set it up, choose a decent baud rate at first. Remember that the KIM is shifting all
the bits manually, not with a UART, so slower baud rates give more room for error. These are the settings I use:

  • 2400 baud
  • 8 data bits
  • 2 stop bits - note that this is unusual!  One stop bit is used for almost all serial communications, but the KIM needs two.
  • No parity
  • No flow control

Loading Programs

The KIM-1 has a cassette interface, which I used back in the 70s, but is horribly slow. Besides, cassette recorders are almost as rare as KIMs anymore! Note that you can greatly speed up the interface speed by using HYPERTAPE by Jim Butterfield from The First Book of KIM.

I had started using my PC's sound card to save/reload programs using the cassette interface, but it's still just awful. So, I decided to do everything in assembly language using the TASM assembler, then wrote a little C program to convert the OBJ output to a "TTY format" file, then use the KIM's "L" command and Hyperterm's upload text file option to send the file. Loads a 1k file in a few seconds complete with error checking.