BURN BABY BURN
Of all the filenames in the Apollo 11 source code, this one tends to stop people cold: BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.agc. It sounds like a dare. It was, in a way.

Page 731 of the actual Luminary099 assembly listing, photographed at the MIT Museum by Paul Fjeld for the Virtual AGC project. Comment lines prefixed R have blank address and octal columns — the assembler produced nothing for them.
The Name
Section titled “The Name”The name traces back to Magnificent Montague, a larger-than-life disc jockey who ruled soul music radio in Chicago, New York, and Los Angeles from the mid-1950s through the mid-1960s. His signature catchphrase — shouted when he put on a record too hot to handle — was “Burn, baby! BURN!”
The phrase took on darker resonance during the 1965 Watts riots in Los Angeles, when it was reportedly chanted in the streets. By the time Don Eyles and Peter Adler were writing the ignition routine for the Lunar Module’s guidance computer, the phrase had become cultural shorthand for something intense and unstoppable.
At the 2009 reunion of AGC developers celebrating the 40th anniversary of the first moonwalk, Eyles confirmed the connection. The source code itself includes this note:
## It traces back to 1965 and the Los Angeles riots, and was inspired## by disc jockey extraordinaire and radio station owner Magnificent Montague.## Magnificent Montague used the phrase "Burn, baby! BURN!" when spinning the## hottest new records.What It Does
Section titled “What It Does”The master ignition routine is the central engine sequencing system for the Lunar Module. It handles every phase of engine ignition for programs P12, P40, P42, P61, and P63 — from the pre-ignition countdown at TIG-35 seconds through TIG+26 seconds, when DPS programs throttle up.
The routine manages:
- Pre-ignition countdown displays
- Ullage (settling) burns to push fuel against the engine inlet
- The actual engine-on command
- Post-ignition throttle-up
- Abort handling if something goes wrong before or during ignition
Different programs require different behaviors at each stage, so the routine uses a table-driven design. Each calling program sets the erasable register WHICH to point to its own table of constants and branch addresses.
The Latin
Section titled “The Latin”Eyles and Adler left their mark in the comments. Just before the program tables, the code declares:
# THE MASTER IGNITION ROUTINE WAS CONCEIVED AND EXECUTED, AND (NOTA BENE) # IS MAINTAINED BY ADLER AND EYLES. # # HONI SOIT QUI MAL Y PENSE
Nota bene — “note well.” Honi soit qui mal y pense — “Shame on him who thinks evil of it,” the motto of the Order of the Garter, the oldest order of chivalry in England. A warning to anyone who might criticize their work, wrapped in medieval French.
And just below, guarding the program tables:
# NOLI SE TANGERE
“Do not touch.” A direct instruction to any maintainer who might be tempted to rearrange the carefully indexed table entries that follow.
The Tables
Section titled “The Tables”The table-driven architecture is elegant for its constraints. Each program’s table occupies a fixed set of indexed entries. The ignition routine uses INDEX WHICH to jump to the correct entry for the current program:
P63TABLE VN 0662 # (0) Verb/Noun for display TCF ULLGNOT # (1) Ullage setup TCF COMFAIL3 # (2) Communication failure TCF V99RECYC # (3) Post-burn/recycle TCF TASKOVER # (4) Task termination TCF P63SPOT # (5) Program-specific entry DEC 2240 # (6) Ullage duration (centiseconds) EBANK= WHICH 2CADR SERVEXIT # (7) AVERAGEG exit addressEntry (0) holds the Verb/Noun code for the countdown display. Entry (6) holds the ullage duration — 22.4 seconds for P63, zero for P12 (which needs no ullage), and 26.4 seconds for P42. The two-word address at (7) tells the routine where to return control after the burn is established.
BURNBABY and B*RNB*B*
Section titled “BURNBABY and B*RNB*B*”The entry point is BURNBABY. Its first act is practical — restart protection and zeroing out the delta-V accumulator:
BURNBABY TC PHASCHNG # GROUP 4 RESTARTS HERE OCT 04024 CAF ZERO # EXTIRPATE JUNK LEFT IN DVTOTAL TS DVTOTAL TS DVTOTAL +1
“Extirpate” — to root out and destroy completely. Not “clear” or “zero.” Extirpate.
Shortly after, a second label appears: B*RNB*B*. This isn’t obfuscation; it is a distinct entry point reached after the auto-mode check completes. The asterisks were likely chosen to create a visually distinct label that wouldn’t collide with BURNBABY in the symbol table while still being obviously related.
HELLO and GOODBYE
Section titled “HELLO and GOODBYE”The P40AUTO subroutine — which checks that the guidance computer is in primary control and auto-stabilization mode — greets and dismisses the caller like a shopkeeper:
P40AUTO TC MAKECADR # HELLO THERE. TS TEMPR60 # FOR GENERALIZED RETURN TO OTHER BANKS.
And at the return:
GOBACK CA TEMPR60 TC BANKJUMP # GOODBYE. COME AGAIN SOON.
The Countdown Sequence
Section titled “The Countdown Sequence”The ignition timeline is a cascade of waitlist tasks, each setting up the next:
- TIG-35: Blanks the DSKY for 5 seconds to signal that Average-G is starting
- TIG-30: Starts the countdown display and triggers ullage if needed
- TIG-5: Resets flags, prepares for ignition
- TIG-0: Sets IGNFLAG and either fires the engine immediately or waits for the astronaut’s “PROCEED” response to the “PLEASE ENABLE ENGINE” display (Verb 99)
The engine-on command itself is startlingly direct:
IGNITION CS FLAGWRD5 # INSURE ENGONFLG IS SET. MASK ENGONBIT ADS FLAGWRD5 CS PRIO30 # TURN ON THE ENGINE. EXTEND RAND DSALMOUT AD BIT13 EXTEND WRITE DSALMOUTThat WRITE DSALMOUT — writing a single bit to an output channel — is the instruction that ignites a rocket engine 240,000 miles from Earth.
The Question Mark
Section titled “The Question Mark”Near the end of the constants section, there is this:
? = GOTOPOOHA label that is literally a question mark, equated to GOTOPOOH — the routine that returns the computer to program P00 (idle). Whether this was a placeholder that never got a proper name, or a deliberate expression of uncertainty about where to go next, the source code does not say.