KIM-1

KIM-1, the first 6502 computer

 

The KIM-1 is my first computer! Extended to 48K, 2 digital mini cassette drives, serial and parallel I/O. Assember and Basic interpreter were available when some memory was added. Homebuild video terminal (32x16 char's, uppercase only.

Developed by Mos Technology. later acquired by Commodore, to show the possibilities of the 6502 microprocessor but quickly discovered as the first mass-produced personal computer. Easy to extend, lots of detailed documentation. With assembler/editors, first Microsoft Basic on cassette and even a Pascal compiler it could do a lot. Mine is an original Mos Technology versiosn, later versions have the Commodore logo on the board, without technical differences.

This prehistoric computer has no "real" keyboard and no video output, program are entered by the small hexadecimal keyboard (located in the lower right part of the picture) and results are displayed on the small LED "screen" (it can display only 6 digits). It has a simple monitor that allows one to examine & modify memory, load and save paper tape, load and save cassette tape, run and debug programs through a 'single step' mode. The monitor works with the built in keypad and LEDs, or a terminal like the Teletype ASR33. This 20 mA current loop is easy to adapt to RS232C and so any videoterminal can be used.

I have written many articles about this computer in the dutch magazine Radio Bulletin and the KIM Gebruikers Club Magazine.

A Pascal compiler was written by Mark Rustad and quite expanded by me (Pascal P2 variant called Pascal-M, UCSD Pascal like).

See the KIM Kenner page for some covers and contents pages (thanks Gert van Opbroek for many covers)

See the Radio Bulletin and KIM-1 page for a list of publications in the then so popular magazine about electronics. Also the articles are available (ram, eprom, ACIA, VIA) that made the Radio Bulletin 6502 expansion system.

 

 

See my other KIM-1 photographs.

KIMTAPE

The binary files in the KIM-1 program archives below have been reproduced, from the original cassette recordings, with the tool KIMTAPE on a PC in a DOS box. See Ed's DX-Forth and Utilities Page for this and other nice programs.
This program also makes it possible to reproduce the original cassette recordings that can be read by a KIM-1.

The files were made as follows: The KIM-1 cassette audio was connected to the PC audio input and (with Cooledit) recorded as a wave file.
For example: qchess.wav
The wave file was then converted with KIMTAPE to a binary file (the exact content of of the KIM-1 memory when recorded).
And the KIMTAPE utility then displays load address (for example and tape ID

c:\kimtape qchess.wav qchess.bin 

KIMTAPE version 0.5 17-May-04 
infile: qchess.wav 
outfile: qchess.BIN
Program 01 address 0200 checksum OK xxxx bytes done 

This .bin file (any extension is fine!) is NOT a wave file! It contains the exact content of the KIM-1 memory when recorded. The size is exactly the number of bytes as stored in the memory of the KIM-1 and much smaller than the wave file. This binary file can be converted back to a wave file with KIMTAPE or converted to a papertape file with KIMPAPER:

C:\kimtape -M -A0200 -D01 -B2 qchess.bin qchess.wav 

As you can see: you have to specify the load address and the program ID. The B parameter indicates hypertape speed (2 here, slow)
The resulting wav file should be acceptable for the KIM-1. It is (as I have tested) acceptable as input for KIMTAPE!

All command parameters can be seen by typing KIMTAPE without parameters:

 
C:\kimtape
 
 KIMTAPE version 0.5  17-May-04
 
 Use:  KIMTAPE [options] infile[.typ] [outfile[.typ]]
 
 -C    console output              -M    make wavefile
 -Bn   HYPERTAPE speed  2x 3x 6x   -I    invert wavefile
 -U    SYM-1 high speed format     -V    VOC wavefile
 -Fn   offset  -127 to 127         -R    RAW wavefile
 -Hn   hysteresis  0 to 127        -Ln   leader (sec)
 -Gn   timing  -2 to 2             -T    sine tone
 -An   load address (hex)          -Dn   prog ID (hex)
 
 default: decode WAV file, KIM-1 format
          load address=0200, file ID=00
 
 Conversion utility for KIM-1 and SYM-1 format audio tapes. 
 Input/output is an 8-bit mono WAV, VOC or RAW wavefile recorded at 
 22,050 samples per second.
 

KIMPAPER KIM-1 papertape conversion

When you attach a serial device like the teletype or a modern PC with Hyperterminal you can sue the TOIM monitor of the KIM-1. One of the functions is loading from and saving to a papertape device on the teletype. Now since this is a way to laod and save data as a textfile this is in fact usefull. The recently announced micro-KIM triggered me to modernize my conversion utility to for MO Technology papertape format. Well, not too modern, it has become a Borland Pascal/Freepascal commandline utility. In the KIMPAPER archive the program., source and information on the program and papertape format can be found.

micro-KIM

Now everybody can own a KIM-1 at a very reasonable price! Vince Briel is developing the micro-KIM, with nearly identical specifications and also a SBC.
Specifications:

The micro-KIM is available for pre-ordering! As a kit or as assembled and tested unit!

 

micro-KIM

KIM-1 programs

The following KIM-1 programs are reproduced here by reading the original cassettes, some dating from 1977, with the KIMTAPE program. It is remarkable how reliable those cassette recordings are. All are Hypertape recordings, most at the highest speed, 6x KIM-1 standard speed (or slowness :).

Some manuals are located on http://users.telenet.be/kim1-6502 the KIM-1 site of Erik Van den Broeck. Also have a look at the other documents at this site, such as the KIM-1 User notes, the KIM manuals, First Book of KIM and much more!

<

Microsoft KB-9 Basic, dated 1977

KB-9 stands for Kim-Basic with 9 digits precision.

The original interpreter was enhanced by me and others in the KIM Club, resulting in my version 3.0. Read here the enhancements in the future.

The KB-9 interpreter was also ported to the Elektuur Junior. The how-to Elektuur article will be available here in the near future.

Scanned manual

The original KB9, Version 2.0 and Version 3.0

Micro-ADE assembler/editor

Micro-Ade program

Micro-ADE was the working horse for many KIM-1 users, the small and powerfull assembler/editor written by Peter Jennings.
Manual and program are placed here with permission by Peter Jennings (thank you Peter for this and for a great program!).

Scanned manual

Source in scanned format (from a bad photocopy):
- editor
- assembler
- i/o
The frontpage is shown on the right.

Also this program was enhanced by the KIM Club, resulting in version 9.0, present in the program archive.
Page 1 and 2 of the command summary.
Read here in the future the source of the enhancements (text by S.T. Woldringh).

No picture

No picture

MicroChess for KIM-1
MicroChess program

MicroChess for KIM-1 by Peter Jennings

Small enough to fit in the 1K memory of a standard KIM-1.
Not only nice to play chess with, the well-written manual including the listing is a source for inspiration!

Manual in html format by Erik van den Broeck

Loading instructions page 1, 2

Q-chess program

Original program and Display version

Q-Chess
Another chess program for the KIM-1. Can be used with a TV-display or with the KIM-1 keyboard and LEDs.

Fer Weber adapted the program so it can be used from a terminal cinnected to the KIM-1: the display version.

Manual

C.W. Moser ASSM/TED

The ASSM/TED program

A powerfull line oriented text editor and Macro assembler for the KIM-1. Requires more memory than Micro-ADE and was less popular.

Manual of ASSM/TED

Manual Fast cassette interface

No picture

Tiny Basic

Tiny basic programs

Itty Bitty Tiny Basic is a very small but complete implementation of the Basic language.

The version for the KIM-1 is delivered in two versions; one for lower memory and one for a KIM-1 with RAM above $2000

Tiny Basic manual
by Erik van den Broeck

The Tiny Basic original manual
on the site of IttyBitty computers

Focal V3d

The program in binary format

The Focal programming language Version 3d for the KIM-1

A small interpreter (about 5K) for a convenient interpreted language.
Requires memory from $2000 and up.

The scanned manual

Disassembled source by Paul R. Santa-Maria

No picture