Skip to content

Rope: the Apollo Guidance Computer, taken apart - #4

Merged
storagebits merged 1 commit into
mainfrom
machine/rope
Nov 5, 2026
Merged

storagebits merged 1 commit into
mainfrom
machine/rope

Conversation

@storagebits

Copy link
Copy Markdown
Member

What was built

Rope, the Apollo Guidance Computer Block II and its LM DSKY, as flown on Apollo 11's descent (Luminary 099). Built with the teardown skill in machines/rope/ (agc-shared/, agc-film/, agc-live/).

  • One input: the mission time, counted in MCT since PDI. An Executive log is planned once at load (executive.js, 1 ms steps): SERVICER every 2 s, Verb 16 monitor jobs, the LPD job in P64, one keyboard job per key, and the rendezvous radar's cycle steals. The core sets, VAC areas, duty, COMP ACTY, PROG/ALT/VEL lamps and VERB/NOUN/PROG/R1–R3 (N68, N63, N64, N60, N09, N36) all come from that log and the descent model. No DSKY digit is typed by hand.
  • What opens: the case (closed, section, trays apart with tray B flipped beside A); rope module B1 slides out and the camera goes between 9 cores. It reads real assembled words of Luminary 099 (NOVAC2, 01,2623–01,2633) through inhibit, set, reset and strobe, and the 16 bits fill. An erasable bit plane in B12 does a destructive read and rewrite of a core set's PRIORITY word. Logic module A13 rises with one enlarged dual 3-input NOR and its RTL schematic. The DSKY face is enlarged and its keys are clickable in the live page.
  • Live page: 7 subsystems, 3 sections, 4 views, orbit/zoom, mission speed (1 MCT per 4 s up to ×60), and a radar on/off switch. Keystrokes and the radar switch re-plan the Executive: with the radar off there is no 1202, and keying V16 N68 brings it back. The auto tour plays the film and hands control over on any input.
  • Film: 40 s, with the frame-0 thumbnail and a closing frame that returns to it. The tour opens the case, reads one rope word, reads and rewrites one erasable word, goes back to the DSKY, shows the radar filling the core sets, then the 1202 (PROG lamp, then what the restart kept and dropped), and fast-forwards through P64 to contact. The score has a dry key click per DSKY key, Quindar 2,525/2,475 Hz around the radio calls, the master alarm tone and a low bed in D. There is no hum.
  • Aesthetic: an MIT IL documentation sheet. Ivory paper with a mm grid and drawing frame, a warm low desk lamp, dull-gold and grey-green magnesium trays, ferrite and copper. Seven-segment figures are drawn by code, the lettering is Barlow Condensed and the title sits in a title block. The DSKY's EL green is the only accent, and PROG amber appears only during alarms.
  • check.mjs (added to npm run check), REFERENCES.md, FILM.md, en/fr/es through makeT(), createChrome({slug: 'rope', ...}), an entry at the top of scripts/machines.mjs, a README row, a gallery description and og.png (1200×630, -map_metadata -1).

Figures checked (node machines/rope/check.mjs)

  • MCT 11.72 µs, 85,333 MCT/s, AD = 2 MCT = 23.4 µs, 42,667 additions/s.
  • 6 × 512 × 12 = 36,864 rope words (589,824 bits), 2,048 erasable words (32,768 bits), 5,600 NOR gates.
  • Odd parity on every rope word shown. CAF NO.CORES = 32634. NOVAC with 8 busy core sets falls through to BAILOUT1 and fetches 01202 from the rope.
  • Radar steals: 2 × 6,400 pulses/s × 1 MCT = 15.0 % maximum (13.36 % measured, 13 % used). Duty at the 1202 is 102.5 %.
  • Model vs Apollo 11:
    • 1202 at 317.4 s (flown 317) and 356.4 s (flown 357).
    • 3 alarms in P64 (flown 3), none after P66, none with the radar off.
    • Each restart keeps exactly the newest SERVICER.
  • Descent: 33,500 ft at the first alarm, 7,400 ft at high gate, slant range 7.9 km at high gate (≈ 7.8 km in the NASA descent guidance report).

Decisions

  • 8 core sets, not 7. The Luminary 099 erasable assignments say "EIGHT SETS OF 12 REGISTERS EACH", which matches Eyles, though the EXECUTIVE comment says seven.
  • "~85,000 instructions/s" in the brief holds for one-MCT instructions. Additions take 2 MCT, so the panels show 85,333 MCT/s and 42,667 additions/s.
  • The job mix is simplified and calibrated. These were set so the model's first two 1202s land on the flown times, and are marked [E] in REFERENCES.md:
    • the crew's keystroke times (not in the transcript);
    • the radar-data load: 1.5 % instead of Eyles' ~2 %, which avoids a spurious overload between the second alarm and P64;
    • the P64 duty ramp.
  • The model's P64 alarms are 1201s. They come at 577, 586 and 598 s, against the flown 1201 at 553 s and 1202s at 578 and 593 s.
  • The master alarm tone (square wave alternating 750/2,000 Hz) comes from the Block II CSM Operations Handbook. The LM's tone is assumed to be the same.
  • The rope's core/strand mapping (word w → core w mod 512, strand ⌊w/512⌋) is the model's own, so neighbouring cores hold neighbouring real words. The 16 sense bits are drawn one after another; the hardware reads them at once.
  • NOR view: the brief says "module cordwood ouvert". AGC logic modules are welded flat-packs, not cordwood, so the view shows a flat-pack logic module (A13). Cordwood appears in the rope module's resistor/diode rows.
  • Build: scripts/build.mjs gains loader: {'.woff2': 'base64'}, the same as the kit's build, for Barlow Condensed (@fontsource/barlow-condensed, added to package.json). This is additive and other machines are unaffected.

Known limitations

  • The tray B interior layout (rope bay, B7–B17, X-ribbed plate) is approximate, from photographs.
  • The descent before high gate is a smooth profile through the published points, not flight data.
  • The PRIORITY word's low 9 bits in the erasable view are an estimate.
  • The film's rope→erasable camera move passes close to the module surfaces for about 1 s.
  • The tray detailing (pockets, ribs) is simple, and the camera views in the live page when the case is closed could be framed better.
  • Opening the built page from file:// logs only the Cloudflare beacon's CORS error and a missing /favicon.svg. These are expected off-site, as on the other machines.
  • Live performance was tested on an Apple M1 (integrated GPU, headless Chrome), where it stayed at tier 0. It was not tested on a low-end PC.
  • The page is 937 KB, under the 1 MB budget but with little headroom.

🤖 Generated with Claude Code

https://claude.ai/code/session_01BzxZC5aA7ZkPTd3m9Kq4wy

The AGC as flown in Apollo 11's LM (Luminary 099), driven by one input, the
mission time counted in memory cycles since PDI. An Executive log planned once
(SERVICER, Verb 16 monitors, the radar's 13 % cycle steals, the crew's keys)
gives the core sets, the lamps and VERB/NOUN/PROG/R1-R3; its first two 1202s
land at 317.4 s and 356.4 s after PDI (flown: 317 and 357). The rope shows
real assembled words of NOVAC2 read bit by bit (a wire through a core is a 1,
around it a 0); an erasable core is read and rewritten; one NOR gate; the
DSKY's 19 keys work in the live page and can bring the 1202 back.

Drawing-sheet aesthetic (ivory paper, mm grid, desk lamp, Barlow Condensed,
seven-segment figures drawn by code), en/fr/es, check.mjs in npm run check.
The site build gains a .woff2 base64 loader for the machine's font.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01BzxZC5aA7ZkPTd3m9Kq4wy
@storagebits
storagebits merged commit 9735681 into main Nov 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant