KIM1Mod. A real KIM-1 in portable format!
Small enough to take with you traveling, battery powered and thanks to the FRAM the contents of RAM are kept when powered off.
The FM1808 used is a non-volatile RAM (32Kx8), used here for ROM and RAM. Datasheet here.
This design appeared in the Google group devoted to the PAL-1 and PAL-1 (and the KIM-1 of course).


And this is how Voyageur describes it:
A modified replica, created for travel and easy to use. The acrylic case is supposed to protect the plate…
Board format 10 x 15 cm, 32 KB of RAM and/or ROM, an expansion connector for daughter-boards, a speaker and a white LED for debugging purpose.
Some other explanations :
The original casing comes from a ‘Schumann wave generator’ sold on eBay as is.
I therefore decided to use this casing for my KIM1 travel project. It had to be cut down a bit to allow access to the keyboard.
. My version of Memory Map (see below) or here ‘MemoryMap.txt’
. the GAL manages all addresses between RAM, ROM and I/O (from $0000 to $FFFF).
See here the ‘KIM1mod.pld’
and it’s easy to change the addresses with WinCUPL and to adapt to any need…
. the FRAM RAMTRON FM1808 can keep out of power all the contents of the ROM and the RAM
(here is a 32 KB capacity).
. the speaker is linked to PB7 of the RIOT 6532 (not used for Tape).
. the white LED is linked to PB6 of the RIOT 6532.
. the Monitor location (ROM as specified in KIM1mod.pld) has the KIM1 6530-002 (I don’t plan to use the TAPE storage) and the WozMon.
. the small USB TTL is a CH340E module, non expensive and easy to find a place on a board. I use a USB C retractable cable.
. the portable power supply is fit with a 5V Step-Up/Step-Down small module from Pololu and can accept four rechargeable or Alkaline batteries.
. the KIM1mod’s current is less than 175 mA
. the NE555 has the same function as half the 556 in the KIM1 circuit diagram (about the \NMI STOP switch).
. the 20 pin expansion connector accepts any daughter-board equipped with 65(C)22, 6821, 82C55, 6850, or ….
. the RESET circuit is a DS1813-10.
Here the circuit diagram


--------------------------------------------- | MEMORY MAP | | | | $E000...$FFFF ROM User 8 K | | | | $6000...$DFFF not used 32 K | | | | $2000...$5FFF RAM3 16 K | | | | $1800...$1FFF ROM Monitor 1 K | | | | $1780...$17FF RAM2 128 B | | | | $1740...$177F \CS RIOT 64 B | | $1720...$173F \CS EXT2 32 B | | $1700...$171F \CS EXT1 32 B | | | | $0000...$16FF RAM < 6 K | | | ---------------------------------------------
PLD file
Dwonload here the ‘KIM1mod.pld’
Name KIM1mod ; PartNo 00 ; Date 22/01/2026 ; Revision 01 ; Designer Engineer Voyageur; Company dC ; Assembly None ; Location Australia ; Device g22v10 ; /* for NEW SBC KIM_1_mod */ /* */ /* compiles OK */ /* works OK */ /* *************** INPUT PINS *********************/ PIN 1 = PHI2 ; /* */ PIN 2 = ERW ; /* */ PIN 3 = A5 ; /* */ PIN 4 = A6 ; /* */ PIN 5 = A7 ; /* */ PIN 6 = A8 ; /* */ PIN 7 = A15 ; /* */ PIN 8 = A14 ; /* */ PIN 9 = A13 ; /* */ PIN 10 = A12 ; /* */ PIN 11 = A11 ; /* */ PIN 13 = A10 ; /* */ PIN 14 = A9 ; /* */ PIN 18 = SYNC ; /* */ /* *************** OUTPUT PINS *********************/ PIN 15 = !SBS ; /* */ PIN 19 = !CSROAM ; /* */ PIN 20 = !WERAM ; /* */ PIN 21 = !CS6532 ; /* $1740 - $177F 64 B */ PIN 22 = !CSEXT1 ; /* $1700 - $171F 32 B */ PIN 23 = !CSEXT2 ; /* $1720 - $173F 32 B */ /* DECLARATIONS AND INTERMEDIATE VARIABLES DEFS */ field ioaddr = [A15..5] ; RAM_eqn = (ioaddr:[0000..16FF]) ; EXT1_eqn = (ioaddr:[1700..171F]) ; EXT2_eqn = (ioaddr:[1720..173F]) ; RIOT_eqn = (ioaddr:[1740..177F]) ; RAM2_eqn = (ioaddr:[1780..17FF]) ; ROM_eqn = (ioaddr:[1800..1FFF]) ; RAM3_eqn = (ioaddr:[2000..5FFF]) ; ROM2_eqn = (ioaddr:[E000..FFFF]) ; ROAM_eqn = RAM_eqn # RAM2_eqn # RAM3_eqn # ROM_eqn # ROM2_eqn ; TOTRAM_eqn = RAM_eqn # RAM2_eqn # RAM3_eqn ; SBS_eqn = TOTRAM_eqn & SYNC ; /* LOGIC EQUATIONS */ CSROAM = ROAM_eqn & PHI2 ; WERAM = TOTRAM_eqn & (!ERW & PHI2 ) ; CS6532 = RIOT_eqn ; CSEXT1 = EXT1_eqn ; CSEXT2 = EXT2_eqn ; SBS = SBS_eqn ;
