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 BIOSminimon.v1.0.4is current;v0.9andold/are earlier builds. Builds withrcasm+srec_catinto a ROM at0xF000.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 gmodels 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 inembedded/bus-driver/. -
software/disktool/— builds/writes ELF/OS disk images (putskernel.binon 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; seedocs/.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.