Skip to content

System-5 — Ken Rother's PCB-based 1802 ELF

System-5 is a printed-circuit-board 1802 computer built in 2004–2005 to run Mike Riley's ELF/OS. It replaced the wire-wrapped System-4 (1979–1982) one card at a time while keeping the System-4 30-pin bus, so old wire-wrap cards and new PCB cards could be mixed. All boards were designed in Eagle 4.x.

Original write-up: https://ken.krother.com/1802/ (local copy in docs/website-2005/).

The system

Card Folder Summary
Bus hardware/bus Vero-board backplane, 30-pin card edge. Rev A 1982, Rev B Dec 2005 (dropped ±12V, added N1/N2). Pinout in hardware/board-notes/BoardNotes.txt.
CPU hardware/cpu CDP1802, clock, CM1232 power-on reset/auto-run, mode control (run/load/wait/reset), 4K EPROM, VMA reset-address remap, EF jumpers, aux connectors for the front panel and 1861 card. Rev A made Jan 2005 (needed rework); Rev B/C fixes. eagle/cpu1-prototype = first unrouted cut with the 1861 on board.
Memory hardware/memory 2× 62256 RAM + 2× 27256 EPROM, every 4K block jumper-enabled (74LS151). First card built. Rev A → B (bypass caps, LEDs, labels) → C, plus a 2014 rev-c-mill variant for PCB milling. mem1/mem2 are earlier 6116-based designs.
IO: 1861 video + keyboard hardware/io-1861-keyboard CDP1861 video, CDP1852 input port, I/O decode (from Mike Riley's ELF). PS/2 keyboard → PAK-VI (AWC Electronics PS/2-to-ASCII) → PIC16F84 (serial→parallel, pic-ps2-firmware/keyboard.c) → 1852. Rev A Jan 2005.
6845 video hardware/video-6845 6845 alphanumeric video card based on BYTE, May 1979. Composite + Electrohome drive outputs. Rev A Feb 2005 (the first working card, later stripped; eagle/rev-a/); Rev B (lower case, simplified clocking, Apr 2005) is the working card now: the 2005 Eagle source in eagle/rev-b/ and the KiCad order master in kicad/rev-b/.
CF disk (IDE) hardware/ide-cf Mike Riley's 8-bit IDE interface plus port-select jumpers; used with a CF-to-IDE adapter and a 16MB CF card. Rev A Feb 2005.
Breadboard proto hardware/proto-breadboard Solderless-breadboard prototyping card.
Bus driver hardware/bus-driver New, 2026: Arduino Nano and 2× MCP23017 on the bus, a test and monitor card after the YACC1 bus tester. Rev A (ordered 2026-10-09) is scrap: routed on 4 layers, ordered from a 2-layer zip. Rev B (BUSDRV-B, kicad/rev-b/) is the same circuit as a true 2-layer board, ordered from JLCPCB 2026-10-20.
Front panel — Planned only (TIL311 displays, switches) — never designed. The System-4 wire-wrap panel was used via the CPU card header.

Board conventions (size 5.50" × 3.75", LED positions, labelling KSR -- XXX#-A, CAM jobs) are in hardware/board-notes/.

Each board has an eagle/<rev>/ tree (production gerbers in fab/) and, once converted, a kicad/<rev>/ tree. Which boards were ordered: hardware/FABRICATED.md. Open work: BACKLOG.md.

Where both the Eagle working folder and the published website had a file with the same name but different content, the website version is kept in a website-copy/ subfolder. Eagle's numbered backups (*.b#1, *.s##, …) are in eagle-backups/ subfolders.

Firmware (Ken's)

  • firmware/hbios/ — HBIOS: 6845 video and keyboard drivers layered on Mike Riley's ELF/OS BIOS (changes marked #define KSR); boots into the BIOS minimon. v1.0.4 is current; v0.9 and old/ are earlier builds. Builds with rcasm + srec_cat into a ROM at 0xF000. video-g/ is a build for the VIDEO-G card (6845 on ports 5/6, 64 x 25, a faster scroll; for the emulator, not burned).
  • firmware/elfos-install-rom/ — packs the ELF/OS install image into the upper 32K EPROM.
  • firmware/system4-tiny-basic-rom/ — original Tiny BASIC EPROM pulled from the System-4 wire-wrap machine, plus its disassembly.
  • firmware/rom-tests/ — test ROM (sec2).
  • firmware/char-rom-fonts/ — 2513 character-generator ROM images and C tools to build/view font EPROMs for the 6845 card.

Software (Ken's host tools)

  • software/s5emu/ — System-5 emulator and debugger (terminal + browser; in a browser tab on a Mac or in a GitHub Codespace: software/s5emu/CODESPACE.md, .devcontainer/): runs the real HBIOS ROM and boots ELF/OS from a disk image; 1861, IDE/CF, 6845, keyboard, memory jumpers, bus-driver link; --video g models the VIDEO-G card.

  • software/gbasic/ — GBASIC, an integer BASIC for ELF/OS with VIDEO-G graphics (1802 assembly, 2026-11-01): the source, the built program, its language reference (README.md) and tests in the emulator.

  • tools/asm1802.py — a Python 1802 assembler (rcasm syntax, short-branch page check, relaxing jumps, macros); builds GBASIC and the VIDEO-G HBIOS.

  • software/busdrv/ — s5busdrv.py, the host tool for the bus driver card (peek/poke/dump, hex load with verify, memtest, I/O, bus watch); firmware in embedded/bus-driver/.

  • software/disktool/ — builds/writes ELF/OS disk images (puts kernel.bin on the CF card).

  • software/rcasm-mac-build/ — older rcasm source patched in 2017 to build on macOS (includes a Mac x86_64 binary).

Reference (third-party, kept for building and context)

  • reference/mike-riley/ — ELF/OS (kernel 135, utilities and languages, 0.2.6 release), rcasm 2007 source, EDTASM, MicroElf/PicoElf boards and a mirror of elf-emulation.com.
  • reference/elf2000-spare-time-gizmos/ — ELF2000 (Spare Time Gizmos / Bob Armstrong): manuals, EELF, ELF-Disk, STG1861, ROM v60/v87 images (with Ken's EPROM-split Makefiles), ElfOS-2K 0.2.8. Not part of System-5.
  • reference/tiny-basic/ — Lee Hart/TMSI 1802 Tiny BASIC; RCA Tiny BASIC (Herb Johnson).
  • reference/tools/ — A18 assembler, TASM 3.1, 1806 disassembler, srecord source tarballs (1.20/1.23/1.27), Macro Assembler AS manual, LCD font tool.
  • reference/datasheets/ — CDP1802 datasheet, RCA MPM-201A 1802 User Manual (1976), EPROM databook.

Docs

  • docs/website-2005/ — "Ken's 1802 World" site (System-1, System-4, System-5, stand-alone projects, photos). Files that are also elsewhere in this repo (schematics, BIOS source, tool tarballs) were removed here; see docs/.removed-dups.txt.
  • docs/website-older/ — earlier versions of the same site.

Other projects

1802 work that is not System-5 (the Netronics ELF II recreation, the 2020 COSMAC ELF PCB, the ELF2000/PicoElf ROMs, the ET-3400 EPROM reads and general 1802 documentation) is in its own private repository since 2026-10-26: github.com/ksr/other-projects (~/Developer/other-projects), split out of this one with its history.

Provenance

Assembled 2026-10-04 from ~/Documents/Projects/elf-1, elf-2 and 1802 (all left untouched). elf-1 was largely a subset of elf-2; exact duplicates were collapsed to one copy. Not carried over: FrontPage _vti_* metadata, vim swap files, .o objects, extracted srecord build trees (source tarballs kept), and 2005-era Linux i386 binaries that have source alongside. Duplicate include files inside individual ELF/OS program folders were left in place because each program's build expects them.