KIM-1

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
KIM-1
MOS KIM-1 IMG 4211 cropped scale.jpg
MOS KIM-1 computer. On display at the Musée Bolo, EPFL, Lausanne.
Developer Chuck Peddle
Manufacturer MOS Technology, Inc.
Type single-board computer
Release date 1976; 48 years ago (1976)
CPU 6502

The KIM-1, short for Keyboard Input Monitor, was 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 (following from the inexpensive 6502) and easy-access expandability.

KIM-1 computer in operation

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 playing with 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 500 US$ with the purchase of the kit for only 245 US$, and then adding a power supply, a used 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.[1] One demo program converted the KIM into a music box by toggling a software-controllable output bit connected to a small loudspeaker.

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."[2] 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).

Not long after the KIM's introduction, MOS Technology, Inc. was purchased by Commodore International and production of the original KIM lasted for a while under the CBM label, before it was ended. Chuck Peddle started work on an expanded version, with a full built-in QWERTY-keyboard, cassette tape drive, and monochrome monitor display.

The monitor was driven by a new built-in display driver chip, meaning no external terminal was required. The ROM firmware was expanded to include the BASIC as well, so the machine was up and running as soon as the power was turned on. The result was the Commodore PET (4 kB RAM, discrete logic graphics), launched in 1977 – one of three historic home/personal computers to appear that year, the two others being the Apple II (also 6502-based) and the TRS-80 (with a Zilog Z80).

Description

The introductory advertisement for the KIM-1 microcomputer, May 1976

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 x 8 ROM, a 64 x 8 RAM, two 8 bit bi-directional ports, and a programmable interval timer.[3] 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 x 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 magazine and the advertisement stated "1 K BYTE RAM" and "2048 ROM BYTES".[4]

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/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".[5] 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

PAiA TVT-6 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.[6] The complete kit could be ordered from PAiA Electronics for 34.95 US$.

Don expanded this design to do color and simple graphics in The Cheap Video Cookbook.[7]

Specifications

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.[8]

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).[8]

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).[8]

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. 8.0 8.1 8.2 Lua error in package.lua at line 80: module 'strict' not found. 091208 users.telenet.be

External links