top of page

Recommended: Gigatron

a computer w/o a microprocessor


KIM Uno: a DIY clone of the KIM-1

Summary of Features


  • Calculator-sized KIM-1.

  • Also compatible with the Apple-1 through its ROMs and I/O.

  • Built-in 6502 programmable calculator (floating point library and display mode)

  • Open source hard/software - see downloads here.

  • Full emulation of 6502 & unaltered KIM-1 ROM on an Arduino Pro Mini (atMega328).

  • Includes serial port (ie, you can use a PC as external keyboard/screen).

  • Partial emulation of the 6530 I/O chips. Display driven through ROM, not yet by hacking of I/O registers.

  • Extras:


      Special serial mode lets you use the KIM-1 fully on a 'bare' microcontroller, without the KIM Uno PCB.

    • Additional ROMs and preloaded of software in RAM let the KIM Uno start up with a tool set that any KIM-1 programmer really needed back in the day: Mini-assembler (Baum & Wozniak), Relocate & Branch calculator (Butterfield), Movit (Edwards).

    • Microchess built in to ROM. 'Dual screen' version with  optional display of chess board on serial port.

    • On-board 1K EEPROM serves either as an extra 1K of nonvolatile RAM or as 'solid-state tape storage'.

  • The single connector on the Pro Mini serves as power connector, serial port and to update firmware.

  • Expansion port provides I2C, accessible by or through the emulator. This makes it simple to add SD mass storage, or WiFi connectivity or just things like temperature sensors.

  • Expansion port also allows any other microcontroller (STM32, esp32) to use the board without the on-board Pro Mini.

KIM Uno Memory Map


The figure below shows the memory maps of the real KIM-1 and the KIM Uno next to each other. The core point being, ROMs have been added in unused parts of the KIM's memory map. Given there are 1152 bytes RAM and 2K ROM, there's plenty of empty space to fill... the limiting factor is the 32K Flash available within the atMega328. 

Some small utilities are preloaded into RAM at boot time, rather than added as ROM. They can just be overwritten if not used. Back in the day, they were typically loaded from tape before starting to code on the KIM-1. Having them preloaded is a nicer option...

bottom of page