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
- KIM-1 monitor source
- KIM-1 monitor data storage
- KIM-1 memory layout
- Expanding the KIM-1
- KIM-1 PCB Edge connectors
- NMI and IRQ and BRK
- Startup of the KIM-1: RESET
- TTY operation summary
- KIM-1 and RUB OUT
- TTY DELAY routines
- Sigma, KB/TTY selection
- GETCH read a character from TTY
- OUTCH send a character to TTY
- Serial file transfer issues
- Suppress the KIM-1 echo
- Serial interface with RTS CTS handshake
- Execute a program: GOEXEC
- SST Single step debug
- LED display and keyboard command summary
- LED Display and keyboard
- Main LED display and keyboard
- Audio tape read and write indicator
- Save to papertape format
- Load papertape format
- Print string
- Audio tape hardware and ROM
- Dump to tape
- Subroutines DUMP to tape
- LOAD from tape
- Subroutines LOAD from tape
- Hypertape DUMP
- Tape copy
- Recording programs with the KIM-1 and the cassette recorder
- Reading tapes from other KIM-1
- PLL Test