Build Your Own KIM-1 with Ruud Baltissen
[Up to Early Microcomputers and Trainers]
In this article, Ruud Baltissen describes how you can make your own KIM-1 replica. Ruud improves on the original design and makes it much easier to construct by reducing the parts count using some modern chips not available at the time the original KIM-1 was sold.
Ruud's "KIM-2" retains full software compatibility with the original KIM-1 microcomputer. Schematics for both the original and the simplified version are included along with source code for the monitor ROM. Good luck and have fun building your own classic KIM-1!
What is the KIM-1?
If you don't know by now then stop and read my document about the KIM-1 first.
The Troublemaker: 6530
The only real hurdle to building a replica KIM-1 is an old I/O chip called the 6530. Anybody who is a little familiar with the hardware market can tell you that you can't find anywhere to buy the old 6530 anymore, and it is used twice in the original KIM-1. Happily enough there is another IC available which you could call its brother: the 6532.
The 6532 has 16 I/O-lines, an internal timer and 128 bytes of RAM onboard. It also has no internal mask-programmed ROM. But we (should) know by now that the internal ROM of the 6530 could be selected unindependently from the I/O. So for this project we'll use an external EPROM as replacement. The pinout of the 6532 is completely different but that should not be a problem. The next difference is the fact that the 6532 has a separate IRQ and PB7 line. As we will see, the functionality of both lines is the same as with the 6530. To create the same circumstances we only have to connect them together. The third difference is the availability of PB6 with a 6532. See it as a bonus as I haven't found any reason how it could jeopardize our project. The fourth difference is that it is possible to generate an interrupt depending the behaviour of PA7. But this is an option which is out of function by default after a reset.
The last and major difference however lays in the way the registers are selected:
funtion: RS: A6: A5: A4: A3: A2: A1: A0: R/W: RAM 0 x x x x x x x x DRA 1 x x x x 0 0 0 x A DDRA 1 x x x x 0 0 1 x B DRB 1 x x x x 0 1 0 x C DDRB 1 x x x x 0 1 1 x D PA7, IRQ off, neg edge 1 x x 0 x 1 0 0 0 F PA7, IRQ off, pos edge 1 x x 0 x 1 0 1 0 G PA7, IRQ on, neg edge 1 x x 0 x 1 1 0 0 H PA7, IRQ on, pos edge 1 x x 0 x 1 1 1 0 I read interrupt flag 1 x x x x 1 x 1 1 E read timer, IRQ off 1 x x x 0 1 x 0 1 J read timer, IRQ on 1 x x x 1 1 x 0 1 K Clock / 1, IRQ off 1 x x 1 0 1 0 0 0 L Clock / 8, IRQ off 1 x x 1 0 1 0 1 0 M Clock / 64, IRQ off 1 x x 1 0 1 1 0 0 N Clock / 1024, IRQ off 1 x x 1 0 1 1 1 0 O Clock / 1, IRQ on 1 x x 1 1 1 0 0 0 P Clock / 8, IRQ on 1 x x 1 1 1 0 1 0 R Clock / 64, IRQ on 1 x x 1 1 1 1 0 0 S Clock / 1024, IRQ on 1 x x 1 1 1 1 1 0 TAs we can see, the last 16 registers equal the 16 of the 6530. So now we have to develop some logic which will do the following:
Here we have another problem. The original KIM-1 only has 2K of ROM. While it is possible to buy a 2K EPROM (the 2716), it is more expensive and much less available than the popular 2764, an 8K device. The same problem applies to the RAM. We will use the 8K parts and simply tie the upper address lines to GND to make them act like the 2K versions.
On the new schematic the EPROM and SRAM are wired up to act just like the original KIM-1 memories. However, it would be quite simple to use the upper portions of these chips we have disabled to expand the memory of your replica KIM-1. You can do this by OR-wiring the CS-line with more Kx-outputs of the main 74145. Don't forget to wire up the address lines also! In case of the EPROM we can tie switches to the surplus address lines and have the advantage of a switchable multi-KERNEL system.
Source Codes of the ROM
You can compile your own monitor ROM based on my commented source code. You can browse it online or download it as a text file: kim-src.asm. It should be 100% okay.
Schematics of the New KIM-1
Available here as a GIF file: kim-rb.gif. You can compare it to my schematic of the original KIM-1: kim.gif.
These are major differences between the two:
Send your comments and feedback to Ruud Baltissen, firstname.lastname@example.org.