# KIM-1

The KIM-1, short for Keyboard Input Monitor, is a small 6502-based single-board computer developed and produced by MOS Technology, Inc. and launched in 1976. It was very successful in that period, due to its low price (thanks to the inexpensive 6502 microprocessor) and easy-access expandability.

## History

MOS Technology's first processor, the 6501, could be plugged into existing motherboards that used the Motorola 6800, allowing potential users (i.e. engineers and hobbyists) to get a development system up and running very easily using existing hardware. Motorola immediately sued, forcing MOS to pull the 6501 from the market. Changing the pin layout produced the "lawsuit-friendly" 6502. Otherwise identical to the 6501, it nevertheless had the disadvantage of having no machine in which new users could quickly start using the CPU.
Chuck Peddle, leader of the 650x group at MOS (and former member of Motorola's 6800 team), designed the KIM-1 in order to fill this need. The KIM-1 came to market in 1976. While the machine was originally intended to be used by engineers, it quickly found a large audience with hobbyists. A complete system could be constructed for under US$500 with the purchase of the computer itself for only US$245, and then adding a power supply, a secondhand terminal and a cassette tape drive.
Many books were available demonstrating small assembly language programs for the KIM, including The First Book of KIM by Jim Butterfield et al. One demo program converted the KIM into a music box by toggling a software-controllable output bit connected to a small loudspeaker. Canadian programmer Peter R. Jennings produced what was probably the first game for microcomputers to be sold commercially, Microchess, originally for the KIM-1.
As the system became more popular, one of the common additions was the Tiny BASIC programming language. This required an easy memory expansion; "all of the decoding for the first 4 K is provided right on the KIM board. All you need to provide is 4 K more of RAM chips and some buffers." The hard part was loading the BASIC from cassette tape—a 15-minute, error-prone ordeal.
Rockwell International—who second-sourced the 6502, along with Synertek—released their own microcomputer in one board in 1978, the AIM-65. The AIM included a full ASCII keyboard, a 20-character 14-segment alphanumeric LED display, and a small cash register-like printer. A debug monitor was provided as standard firmware for the AIM, and users could also purchase optional ROM chips with an assembler and a Microsoft BASIC interpreter to choose from.
Finally, there was the Synertek SYM-1 variant, which could be said to be a machine halfway between the KIM and the AIM; it had the KIM's small display, and a simple membrane keyboard of 29 keys (hex digits and control keys only), but provided AIM-standard expansion interfaces and true RS-232 (voltage level as well as current loop mode supported).

## Description

The KIM-1 consisted of a single printed circuit board with all the components on one side. It included three main ICs; the MCS6502 CPU and two MCS6530 Peripheral Interface/Memory Devices. Each MCS6530 comprises a mask programmable 1024 × 8 ROM, a 64 × 8 RAM, two eight-bit bi-directional ports, and a programmable interval timer. The KIM-1 brochure said "1 K BYTE RAM" but it actually had 1152 bytes. The memory was composed of eight 6102 static RAMs (1024 × 1 bits) and the two 64-byte RAMs of the MCS6530s. In the 1970s memory sizes were expressed in several ways. Semiconductor manufacturers would use a precise memory size such as 2048 by 8 and sometimes state the number of bits (16384). Mini and mainframe computers had various memory widths (8 bits to over 36 bits) so manufacturers would use the term "words", such as 4K words. The early hobbyist computer advertisements would use both "words" and "bytes". It was common to see "4096 words", "4K (4096) words" and "4 K bytes". The term KB was unused or very uncommon. The KIM-1 was introduced in the April 1976 issue of BYTE and the advertisement stated "1 K BYTE RAM" and "2048 ROM BYTES".
Also included were six 7-segment LEDs (similar to those on a pocket calculator) and a 24-key calculator-type keypad. Many of the pins of the I/O portions of the 6530s were connected to two connectors on the edge of the board, where they could be used as a serial system for driving a Teletype Model 33 ASR and paper tape reader and punch.
One of these connectors also doubled as the power supply connector and included analog lines that could be attached to a cassette tape recorder.
Earlier microcomputer systems such as the MITS Altair used a series of switches on the front of the machine to enter data. In order to do anything useful, the user had to enter a small program known as the "bootstrap loader" into the machine using these switches, a process known as booting. Once loaded, the loader would be used to load a larger program off a storage device like a paper tape reader. It would often take upwards of five minutes to load the tiny program into memory, and a single error while flipping the switches meant that the bootstrap loader would crash the machine. This could render some of the bootstrap code garbled, in which case the programmer had to reenter the whole thing and start all over again.
The KIM-1 included a somewhat more complex built-in Terminal Interface Monitor software called TIM that was "contained in 2048 bytes of ROM in two 6530 ROM/RAM/IO arrays". This monitor software included the ability to run a cassette tape for storage, drive the LED display, and run the keypad. As soon as the power was turned on, the monitor would run and the user could immediately start interacting with the machine via the keypad. The KIM-1 was one of the first single-board computers, needing only an external power supply to enable its use as a stand-alone experimental computer. This fact, plus the relatively low cost of getting started, made it quite popular with hobbyists through the late 1970s.

## Video display

The designer of the TV Typewriter, Don Lancaster, developed a low-cost video display for the KIM-1. The add-on board would display up to 4000 characters on a TV or monitor. A typical configuration would be 16 lines of 32 upper-case only characters. The board had only 10 low-cost ICs and used the KIM's memory for the screen storage.
The TVT-6 project appeared on the cover on Popular Electronics in July 1977. The complete kit could be ordered from PAiA Electronics for US$34.95.
Lancaster expanded this design to do color and simple graphics in The Cheap Video Cookbook.

## Specifications

* CPU: MCS6502 - clocked at 1 MHz
* two PIO MCS6530 - 1024 × 8 ROM, 64 × 8 RAM, two 8-bit bi-directional ports, 8-bit programmable interval timer
* eight 6102 static RAM - 1024 × 1 (1024 bytes)
* six 7-segment LEDs
* 24-key calculator type keypad
* two serial ports
* Terminal Interface Monitor (TIM), that handled booting, keypad, seven-segment LEDs, and cassette tape

## Tape format

Each bit is represented by three 2.484 ms long tones. The first is always 3700 Hz, the middle is 3700 Hz for "0" or 2400 Hz for "1", and the last one is always 2400 Hz. This gives an effective bit rate of 134.2 bit/s. Detection is done through a PLL using LM565.
The format of data on the tape is: 100 bytes with the value 0x16 (SYN, Synchronous Idle), one byte with the value 0x2A (*), the record identification number, the start address (two characters for the low byte of address, two characters for the high byte), the end address (in the same format), the actual data, one byte with the value 0x2F ("/" character), a two-byte checksum, and two bytes with the value 0x04 (EOT, End Of Transmission).
Each byte of memory is stored as two sequential ASCII characters on tape, for example, hexadecimal B5 in memory (181 decimal) would be stored as two sequential ASCII characters "B" and "5" (42 and 35 hexadecimal).