Overview
A TypeScript emulator core for the Minivac 601, the 1961 relay-logic teaching computer designed under Claude Shannon. It's a companion to the TMS1100 emulator, aimed at teaching digital logic and computer history with the real machine's quirks intact.
The Minivac has no instruction set. It's six relays, six lamps, six pushbuttons, six slide switches, and a motorized 16-position rotary dial, all exposed as jack terminals on a console. You “program” it by plugging wires between terminals. So this isn't a CPU emulator -; it's a relay-circuit simulator: it solves the resistive network the wiring creates and steps the relay and motor mechanics through time.
How It Works
The core is a serializable state snapshot (lamps, relays, dial, supply) plus a small set
of mutators -; connect/disconnect a wire, load a book
program, press buttons, throw slide switches, push a relay crossbar by hand -; after
which you advance time with settle() until things go electrically and
mechanically quiet. A wiring shorthand (with # comments) lets you load the
circuits straight from the original manuals.
One genuinely fiddly detail: the motorized dial. Its speed was calibrated from a real measurement (2.004 s per revolution → about 24°/s per volt), and the dial's coast inertia is modeled in degrees, so getting the timing right matters for the experiments that depend on it -; the telephone dial, the match game, the elevator.
// Book 1, Experiment 7 - a relay operated by a pushbutton const mv = new Minivac(); mv.loadProgram(`1+/1H 1G/1A 1J/2A 2B/2- 1B/1-`); mv.setPower(true); mv.settle(); mv.pressButton(1); mv.settle(); mv.relayOperated(1); // true
Current Status
The emulation is complete end-to-end: one verified engine, calibrated from a real motor measurement, with a visual web console running on the same core as the test suite.
- 121 tests passing, drawn from the book experiments across all six original manuals.
- A click-to-plug web console renders the full panel -; lamps, relays, switches, the game matrix, the motorized dial -; with an experiment library, inspector, and sound (keys 1-;6 work the pushbuttons).
- The example library spans basic gates, arithmetic (adders, binary↔decimal converters), applications (alarm, metronome, traffic light, elevator) and the Book VI games -; Tic-Tac-Toe (the machine opens center and can't lose), Nim, the Electronic Maze, the Mind Reading Trick, and more.
- Lesson plans to go with it are drafted as a separate pilot; the original books also hold up well on their own.