[Revision F KIM-1.] [Hosted by Floodgap Systems] Submap: The Incredible KIMplement (version 0.3b; includes emulator and sample software) | Links and Archives | Software Library (under construction) | Back to Floodgap Retrobits

KIM-1 @ Retrobits

This is my personal homage to the Commodore and MOS Technology KIM-1 single-board microcomputers, fascinating relics of computing history long since past, and a throwback to good-old-fashioned bare metal programming. As the proud owner of three working KIM-1 systems (Revision A, Revision D and Revision F) and the author and maintainer of the Incredible KIMplement emulator, I continue to discover new and impressive ways to wring utility and fun out of a diminutive 1MHz, 1K computer-on-a-board. This site is designed to offer resources to the new enthusiast, options for emulation, support for current owners and ideas for further exploration. Please contact me at ckaiser@floodgap.com with any suggestions, additional tips or software you've come up with, or just to chat about these fine old units. This site was last updated February 5, 2023. -- Cameron Kaiser

Are you getting rid of KIM-1 equipment or peripherals? Please don't throw it away! E-mail me and let's see if we can give it a new home! In particular, I am looking for a KIM-4 and a Visable board, but anything accepted. Let me know your desired arrangements, and it goes without saying that I will gladly cover any shipping, time and inconvenience.

What's a KIM-1?

The MOS Technology KIM-1, renamed the Commodore KIM-1 after MOS was purchased by Commodore Business Machines (the same Commodore that produced the famous Commodore 64 and Commodore Amiga computers), is a single-board microcomputer designed around the MOS 6502 CPU released in 1975. For those not familiar with the 6502, it (or a customized variant) is the microprocessor powering all 8-bit Commodore computers, including the Commodore 64, VIC-20 and 128; the Apple I, II and III series except the IIgs (which used the 16-bit 65816); all Atari 8-bits including the computer line, the Atari Lynx and the VCS 2600, 5200 and 7800; the Nintendo Famicom a/k/a NES (the Super NES also used the 65816 in a variant form); the TurboGraphix-16; and the BBC Micro series, among others.

The KIM-1 was made to allow engineers to become familiar with the 6502, which was as released a completely different architecture. Previously, Chuck Peddle, MOS' primary engineer, had developed an earlier 6501 microprocessor that was fully pin- and bus-compatible with the well-known Motorola 6800. However, MOS was able to manufacture the 6501 at extremely high yields due to their repairable mask process; this meant the 6501 could hit the market at a rock-bottom price and undercut Motorola and Intel significantly. Naturally, Motorola was quite unhappy about the prospect of a cheap drop-in replacement for their CPUs and immediately sued, winning after a protracted court battle. To counter this, Peddle converted the 6501 into the "lawsuit-compatible" 6502, essentially by just rearranging the pinout and keeping 6800 bus compatibility intact, but this left MOS with a part that couldn't be simply swapped into existing designs without additional work. As an enticement to other engineers, MOS threw together a small evaluation board, slapped a 6502, I/O chips, a basic monitor program and 1K (one kilobyte) of RAM on it, and released that as the KIM-1 kit for just $245.

What Peddle didn't expect was that hobbyists, not engineers, would be the KIM's biggest audience. At one of the lowest prices for a computer kit (due to the 6502's extremely low price of just $25, versus $179 for a 6800 or an Intel 8080), a computer enthusiast could put together a complete, state-of-the-art home system with teletype and tape drive -- both directly supported by the KIM-1's ROM -- for less than $500. The immensely open architecture fostered a burgeoning community of software authors, hardware developers and expansion options; despite this, however, MOS Technology continued to suffer under the cost of the Motorola lawsuit and the collapse of the calculator industry and sold out to Commodore Business Machines in 1976. Commodore, wisely, continued to produce the KIM-1 for several more revisions due to its continued popularity until around 1979. Board versions through Revision G are known.

The KIM-1 is closely related to other 6502-based single-board computers, including the Rockwell TIM (JOLT), the Rockwell AIM-65 and the Synertek SYM-1. These will only be discussed here in the context of comparison to the KIM-1.

What features does a KIM-1 have?

Out of the box, a KIM-1 features one kilobyte of RAM (1024 bytes), not counting the small amount of additional memory in the RIOTs; a 6502 CPU running at a clock speed of one megahertz; two dedicated RAM, ROM, I/O and timer chips (hence the acronym "RIOTs"); a hexadecimal keypad for data entry; and six seven-segment LEDs. It also has application connectors for cassette tape and an external teletype, or other devices compatible with the bus. A simple monitor program for data entry and driving the optional teletype and cassette drive is built-in. You add your own power supply and case.

What can I do with a KIM-1?

The very popular First Book of KIM by Jim Butterfield, Stan Ockers and Eric Rehnke lists these popular applications: many, many simple games (including quite a few that play purely on the LEDs themselves) such as Microchess, assemblers and disassemblers such as MicroAde, multiple interpreters such as Tiny BASIC and FOCAL, text editors and mathematics packages. Also, due to the KIM's open and well documented architecture, many hardware projects have been built for it from simple monitoring circuits and tripwires all the way up to complex data acquisition circuitry and multiplexers.

[The KIM says hello.]

How do I use a KIM-1?

The KIM keypad is actually very easy to figure out, so here is a basic primer.

When you turn on the power supply, the six LEDs light up with the current address (left 4) and its contents (right 2) -- if they don't light up, tap RS and they should appear. Press AD to enter a new address, DA to enter data in that address, and + to move from cell to cell. To set yourself up into a sane environment, turn the keypad switch (the Single Step Toggle) to OFF, and punch in this sequence:

[AD] 1 7 F A [DA] 0 0 [+] 1 C [+]

This sets the NMI vector to the main monitor program so that stopping works. Now, enter a program or data, and when you're ready to run, set the address to the starting point and punch GO. If your program hangs, hit ST to stop it and return to the monitor (or if that doesn't work, hit RS for a non-destructive reset, although you may not be able to return to the spot of the foul).

You will need to know 6502 machine language opcodes to program the KIM-1 effectively, a topic far beyond this page. For more, look at the Links and Archives page for a copy of the KIM-1 User Manual.

What peripherals exist for the KIM-1?
How can I connect it to my PC or Mac?

Of the enormous number of possible projects that could be interfaced to the KIM-1, the most common peripheral was a cassette drive, which was directly supported by the KIM-1. There were also a large selection of 4K and 8K memory boards; the 4K was particularly popular as the decoding for that address range already existed on the KIM-1 (to expand memory above $1fff, additional work was needed). Commodore/MOS made their own 4K card, called the KIM-2, and their own 8K board, the KIM-3 (KIM-3B for "Buffered"). There were also more gargantuan 16K and 32K boards. All of the boards over 4K had the additional hardware for handling the more complex addressing requirements, and most 8K boards allowed you to move the 8K page around in the 6502's 64K addressing range.

Many users interfaced their KIM-1s to a teletype, usually some form of ASR-33 or a relative. Naturally, you didn't have to use a real ol' antique teletype; many users converted the connection to work with "glass teletypes" (a/k/a standard dummy terminals). More on that in a second.

KIM-1s could also drive video displays with appropriate hardware. Probably the best known was Don Lancaster's TV Typewriter, affectionately dubbed the "TVT," most relevant for the KIM-1 in the 6800 bus compatible TVT-6 (thus also with the 6502). The TVT-6 supported multiple text resolutions, including the original TVT's 32x16 display plus 64x13 and 64x25; the TVT-6L did all that plus lowercase. It was extremely popular due to its low cost and easy construction, although much of the cost reduction was achieved by making the CPU do some of the display work, an (IMHO) impaired design. For this reason other display peripherals emerged, but my personal favourite is the K-1008 Visable Memory Board [sic: NOT Visible] by MTU, an 8K memory board with a clever secondary function: plug in a composite monitor, and the 8K of RAM is seen as a monochrome 320x200 hi-resolution display. Commodore 64 denizens will be delighted to know that the bit addressing is very simple; the byte offset is (199-y)*40+INT(x/8) and the bit is x modulo 8, with the leftmost bit being bit 0. PolyMorphic made a VTI card that had the video and keyboard interface all on the same device.

Finally, with all these cards, you needed heavy duty power and card management, and Commodore/MOS made the KIM-4 for you to stick them all in. This device offered six slots, buffering circuitry and and beefier power management. And if you wanted to connect S-100 cards to the KIM instead, then you could get a KIMSI from Forethought Products and plug your cards into that. I have a KIMSI (thanks Phil) but I really need to build it a box.

Commodore/MOS also made the KIM-5, an ROM application card with a resident editor and single-pass assembler that could read source from memory or tape, and the KIM-6, a wirewrap prototyping board for homebrew projects.

Nowadays, you can still get new KIM-1 peripherals. Bob Applegate, for example, offers his own memory board as well as a custom I/O board. This last is particularly handy as it converts the 20mA "current loop" TTY interface into standard RS-232, ready to connect to any modern computer with a serial port (and now you can have your own "glass teletype"). Here is Bob's KIM-1 peripherals page.

Armed with one of his cards installed, to connect my KIM-1 to my Power Mac G5 with a Prolific PL-2303 USB serial dongle, I connect a straight-thru DB-9 M-F cable to the port on Bob's I/O board — no null modem required — and set ZTerm to usbserial, 300bps 8N1 with no hardware flow control. On my Linux-based Raptor Talos II using a similar serial dongle, minicom works fine too. Remember to turn on local echo and CAPS LOCK on modern computers, and have delete mapped to RUBOUT. With the KIM-1 off, set the jumper on Bob's I/O board to TTY (instead of KBD), turn the KIM-1 on and press RUBOUT in ZTerm/your terminal program of choice; the KIM will automatically "type" a monitor prompt to your modern computer. The KIM cannot reliably communicate faster than 300 baud without modification.

In TTY mode, go to an address by typing it in hexadecimal and press SPACE, which acts like the AD key on the keypad (the KIM will type it back to you with the current value). Advance addresses without modifying them with CR (usually sent with RETURN or ENTER), like the + key. If your terminal allows it, LF backs up one byte. To modify the current address, type the byte in hexadecimal and press the period "." key; the KIM will advance to the next address automatically. To start the program from the current address, press G (like GO), and to abort the current operation in the monitor (effectively a soft reset), just press RUBOUT again.

Although the SST switch works properly in TTY mode, there are no equivalents for RS or ST from the teletype; you must use the buttons on the KIM-1 keypad. [Front and back of the microproducts Superkim.]

Did anyone clone the KIM? (What's a Superkim?)

Ignoring other non-compatible 6502 "trainer" boards and the modern re-creations which I'll get to in a moment, the most notable clones were the MCS Alpha-1, the Synertek VIM-1/SYM-1 and the microproducts Superkim. All of these were "upgraded" versions that took the basic KIM architecture and added their own bespoke features.

The Alpha-1, made by Berliner Unternehmens MCS, was based on the KIM-1 and was tape compatible, but came in an unusual form factor where the CPU board plugged into a slot on the "computer" where the LED and keypad was. It didn't exist in large numbers and I'm not sure if any were even sold outside of Europe. I don't have one.

The Synertek SYM-1 came out in 1978, originally named the VIM-1. It is a somewhat smaller board, but has more expansion options and an improved monitor. It can use the same peripheral cards and was also tape compatible. I don't have one of these either.

Finally, the 1979 microproducts Superkim was an almost unabashed total clone of the KIM board, but fully socketed with over 200 gold-plated wire-wrap pins extending through it for I/O. These were intended for commercial and industrial applications and I actually have one of these units, shown at the right. Consistent with its intended market, this board appears to have been used in a card cage with the keypad consequently missing entirely and appears to not ever have been mounted. In addition, the amount of wirewrap involved in the rear of it is intimidating, so don't ask me to power it up lest I short the damn thing out. The Superkim had a prototyping breadboard as standard, this one with a large number of additional chips (mostly EPROMs) and sockets installed, so when it was operational this unit clearly did a lot of work doing something.

The wirewrap notwithstanding, microproducts put a lot of expansion capacity on this board. In addition to multiple ROM sockets, some of which are populated, it can take up to 4K of RAM (from the factory it provided 1K, but this unit has eight TMS 4045-45NL static RAM chips for the full complement of 4K) and four 6522 VIAs (three are installed on this board, all plastic MPS chips), and includes cassette and RS-232 connectors. The RIOTs are also the plastic MPS version, but the CPU is a Rockwell R6502P, which may have been installed secondarily.

The Superkim was developed by Paul Lamar, who used the KIM-1 for automotive braking and acceleration testing but found the expansion capacity inadequate. Neither MOS nor Commodore had any involvement with the Superkim and the board appears to be completely custom (it reads "LAMAR INSTRUMENTS" with a 213 area code phone number for the Los Angeles area). I have no idea how many got sold, but there probably weren't very many of them.

It is arguable how much the 1978 Rockwell AIM-65 can be considered a KIM clone, though it was strongly based on it and some hardware will work on both. However, it is a greatly expanded system with a wider LED screen and a full keyboard and printer, and would not be easily recognizeable as related. I also have an AIM-65 myself and it's a delightful little computer.
[Tiny BASIC running in the Incredible KIMplement.]

How can I emulate a KIM-1?

The KIM-1 is not difficult to emulate in its basic form as it is not a terribly complicated system. There are many emulators, notably a simple MESS driver.

That said, many emulators only give you the basic hardware (the MESS driver is particularly unadorned). This was part of the reason I wrote my own.

The Incredible KIMplement, in my very biased opinion, will give you probably the fullest view of what a KIM can do of the presently extant emulators. While I am still working on its feature set, it provides a standard TTY (a simulated ASR-33) that you can even redirect to a real serial port, includes an emulated KIM-4 with a total of 16K RAM, and is complete enough to run many programs from The First Book of KIM and even FOCAL and Tiny BASIC — included and ready to run! What's more, it will run on a real Commodore 64, or any system that has a Commodore 64 emulator available (Macintosh, DOS, Windows, Linux/most Unices). Please give it a spin. ROMs are built-in and not required. (Current version 0.3 of as of February 5, 2023.)

How can I build/buy/expand a KIM-1 of my own?

There are various replica KIMs available, some of which are Do-It-Yourself and some available fully assembled. I haven't used any of these personally and I can't vouch for their compatibility or quality. They include the Corsham Tech KIM Clone (DIY or fully assembled), Briel Computers MicroKIM (DIY or fully assembled), KIM Uno (DIY), PAL-1 (DIY). This list is probably nowhere near exhaustive!

If you really want to start from scratch, Ruud Baltissen gives you instructions on how to build your own KIM-1 clone using (mostly) off-the-shelf components, especially because the 6530 RIOTs are a trick to get -- Ruud shows you how to do this with the related 6532 and standard EPROMs. Schematics included.

If you don't want to build your own and you prefer the original taste, you can always buy used. KIM-1 units do appear on eBay or other auction sites in varying condition from time to time. Particularly fine specimens in working condition with manuals and accessories may not be cheap, however. Perhaps going homebrew is looking better and better ...

If you're just interested in playing with the 6502, you might look at one of the single-board KIM relatives such as the SYM-1 or AIM-65; 6502.org's Trainers Section has some resources for you to start. Note that these themselves aren't cheap anymore either.

Or just get a Commodore 64, which is still relatively plentiful, and enjoy life on a wonderful 6502-based platform that's fun to program and plays great old school games (and can emulate a KIM, too).

Where to now?

Would you like to find manuals or links?
Would you like to try the KIMplement emulator?
Would you like to download KIM software (coming soon)?
Would you like to send me E-mail?

Or, would you like to see what else there is at Floodgap Retrobits?


Cameron Kaiser