The KIM-1 explained

To know more about the history how KIM-1 became such a success: read The history of the KIM-1

Quote from Jim Butterfield

Shortly after MOS Technology, Inc. developed the 6502 processor chip, they designed a single-board computer called the KIM-1 to show off the capabilities of the chip family, and to allow engineering prototyping.

Apart from the obvious things that a computer must have (CPU, RAM, I/O chips), they threw on the board just about anything that they thought someone might like to have as an interface. For example: the basic monitor program allowed a hex keypad input (hey, KIM stands for Keyboard Input Monitor) and 6-digit LED display; it had a bit-banger audio output which could be used to store programs on a cassette tape unit; it had a corresponding PLL audio input line that would read back from such a cassette tape; and it had teletype input/output facilities (again, bit-banger). Its basic RAM was 1K, supplemented by a little extra RAM in the 6530 I/O chips.

A feature of the board that many users never realized, perhaps, is that all on-board devices were selectable via external connections. What that means is that you could plug the KIM-1 board into a mother housing, which could, as desired, disconnect any or all of the peripheral circuits, I/O chips, RAM, or the ROMs containing the monitor.

The hardware and the software in the KIM-1 work closely together. The tiny program, less than 2KB in the two ROMs, together with the simple hardware is very clever designed.

The KIM-1 is a complete computer with two user interfaces and two types of data storage with a simple namespace. It is one of the first 6502 computers, and many clones or derived 6502 SBC systems are designed with more or less KIM-1 copied parts of the software and hardware. On this site you can find many examples!

On the following pages I will try to explain how all this is working together. It will not be a rewrite of the KIM-1 user manual, please read that first, but more a deeper personal dive into the software and hardware of what the makes the KIM-1 tick. Also expected a basic knowledge of the 6502, the 6530 (see the datasheets and the books) and digital electronics.

The source extracts are taken from the reconstructed source listing of the KIM-1.

The KIM-1 monitor

The KIM-1 monitor software exists of two separate parts. The 6530-002 RRIOT ROM, called KIM as separate IC, RRIOT and the 6530-003 RRIOT ROM.
The two are not written as one , the 6530-002 routines do not need the 6530-003. The 6530-003 only jumps into the KIM-1 monitor START entry point, the two routines are to be executed via the GO command.

One could speculate the 6530-002 software was developed together with the LED/keyboard display and TTY interface hardware. And when that design was done, the need for data storage for the user arose and the 6530-003 was added.

The 6530-003 only has audio tape read and write routines and uses the ports of the 6530-002 for the audio bit streams.
The 6530-002 can be used to build a standalone computer, the 6530-003 is an addon for a 6530-002 based system.
Besides sharing RAM locations in the zeropage and the RAM area in the 6530-002 RRIOT the two do not use each others routines. The 6530-003 routines only know the address of the 6530-002 START routine.

The 6530-002 ROM, the KIM monitor explained