Minivac-601-Emulator
← Project Index Minivac-601-Emulator

Minivac-601-Emulator

An emulator core for the Minivac 601 (Scientific Development Corp., 1961) -; the relay-logic educational computer designed under Claude Shannon -; for teaching digital logic and computer history.

Exploring Started: 2026 Updated: Jun 2026

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.