Margaret Hamilton’s Apollo 11 flight software is often photographed as a stack of paper taller than she is, and the photograph is not a stunt. The listings for Colossus and Luminary — the command module and lunar module programs written by her team at the MIT Instrumentation Laboratory — really did rise past her shoulders when printed out, and the code inside that stack is what kept Eagle flying when the onboard computer began screaming 1202 about 40,000 feet above the Sea of Tranquility on July 20, 1969.
Five alarms fired in roughly four minutes during the descent. None of them stopped the landing. That is because Hamilton’s team had built the Apollo Guidance Computer’s software around a priority scheduler that, when overwhelmed, threw away lower-priority work and kept the jobs that mattered — the ones flying the spacecraft toward the Moon.

A 70-pound computer with less memory than a modern icon
The Apollo Guidance Computer weighed about 70 pounds. It had 4 kilobytes of read-write memory and 72 kilobytes of read-only memory. To put that in a modern frame, a single emoji on your phone occupies more storage than the entire read-write memory that guided two astronauts to the lunar surface.
The read-only memory was not stored on chips. It was woven. Tiny magnetic cores — donut-shaped rings of ferrite — were threaded by hand with fine copper wires. A wire that passed through a core meant a binary 1. A wire that bypassed it meant a 0. The finished bundle was called a core rope, and the women who wove it at Raytheon’s plant near Boston were selected for manual dexterity. A single mistake could mean unpicking hours of work.
Hamilton’s nickname inside the lab was the Rope Mother. She was the one responsible for making sure every wire went where it was supposed to go, because once the rope was woven, changing a line of code was closer to rebuilding a circuit board than editing a file.
Writing the Moon by hand
Programs were drafted on paper, then developed on a large mainframe at the MIT Instrumentation Laboratory, then translated into machine code and punched onto perforated tape that fed the rope-weaving machines. Every line had to be documented — what it did, why it existed, how it touched the rest of the program. The paperwork trail was enormous, and it is why the printouts stack so high in the famous photograph of Hamilton beside the listings she and her team produced.
The phrase software engineering is often credited to Hamilton herself. She used it, deliberately, because in the mid-1960s software was not treated with the same seriousness as propulsion or guidance hardware. Hamilton insisted that code flying a crewed spacecraft was flight hardware in another form, and the Apollo program had to treat it that way.
What the 1202 alarm actually meant
At about 40,000 feet above the lunar surface, with Eagle pitched over and Neil Armstrong and Buzz Aldrin watching the horizon rise toward them, the Display and Keyboard unit — the DSKY — flashed 1202. Then 1201. Then more. Charlie Duke, capsule communicator in Houston, needed a call from the guidance officers within seconds.
The alarm meant the Apollo Guidance Computer had been handed more work than it could complete in the available cycles. The cause, tracked down after the mission, was the rendezvous radar — left active during descent as an abort safety measure — feeding the computer a stream of data it did not strictly need for landing. That radar was stealing processing time from the tasks that were actually flying the spacecraft.
A computer built to process every request in order might have frozen. Hamilton’s would not. As Silicon Canals recounts, the flight software was built around an asynchronous executive — a priority scheduler — that could restart cleanly, preserve the high-priority jobs, and jettison the rest.
The alarm was not a sign the machine had broken. It was the machine announcing that it knew it was overloaded, and that it had a plan.
Go on that alarm
In Mission Control, guidance officer Steve Bales and computer specialist Jack Garman had seconds to interpret each alarm. Garman had seen a similar 1202 during simulation training weeks earlier — a moment that had been treated not as a wasted afternoon but as engineering material. He had written a cheat sheet, kept under plexiglass at his console, listing which alarms were survivable if the guidance data stayed stable.
The 1202 was on the list. Bales called go. Duke relayed it. Armstrong kept flying. When the alarms came again — 1201, then more 1202s — the same judgment held.

Hamilton later described the software’s behavior in a sentence that captures the whole architecture: it discarded the lower-priority jobs and kept the higher-priority ones, including the landing functions. Nothing more elegant is needed to explain how Eagle got to the surface.
The daughter, the simulator, and the lesson NASA didn’t want to hear
Long before Apollo 11, Hamilton had brought her young daughter Lauren into the lab on weekends. During one visit, Lauren pressed a key on the command module simulator and crashed the running program — she had launched a pre-launch routine mid-flight. Hamilton asked to add code that would prevent astronauts from making the same mistake. The answer she got was that trained astronauts would never do such a thing.
On Apollo 8, Jim Lovell did a version of exactly that thing. The team recovered. The lesson was permanent: in systems where a mistake is measured in lives, that would never happen is not a safety argument.
Hamilton’s team started designing the software around the assumption that failure would arrive uninvited. Overload was not a bug to be denied. It was a condition to survive.
Why the printout stacked taller than she did
The photograph — Hamilton in a striped dress, glasses on, standing beside a chest-high tower of bound source listings — was taken at MIT. It circulates online often enough that it has been fact-checked; it is real. The stack represents the Colossus program for the command module and the Luminary program for the lunar module, plus supporting documentation.
Every page was hand-checked. Debugging was done by eyeball. Programmers read the listings as if they were the computer, tracing execution line by line. Minor errors were FLTs, funny little things. The women weaving the ropes were affectionately called LOLs, little old ladies. The humor coexisted with the seriousness because the seriousness was total.
The reason the stack had to be so tall is that the software was managing a spacecraft that would land in a place no one could reach if something went wrong. There was no patch, no update, no rollback. The rope was woven. The rope flew.
An architecture that assumed the worst
The priority scheduler was doing something remarkable, and it becomes clearer if you compare the AGC to what most computers of its era did under load: crash, hang, or dutifully finish the wrong task. As The Atlantic argued in a 2019 reappraisal of the Apollo computer, the machine’s real achievement was not raw power. It was disciplined behavior under duress. A modern smart toaster has vastly more processing capacity, but the toaster is not designed to decide, in milliseconds, which of ten simultaneous jobs to abandon in order to keep two humans alive.
The AGC’s scheduler could sense when its duty cycle was saturated. It would then trigger a soft restart — flushing lower-priority jobs, keeping the guidance and control loops running, preserving state where it mattered. The 1202 and 1201 codes were, in effect, the computer reporting on its own triage. Each alarm was a piece of housekeeping, not a scream of failure.
The rendezvous radar was still stealing about 13 percent of the computer’s cycles during descent — enough to matter, not enough to defeat the design. The system Hamilton’s team had built absorbed the theft and kept flying.
A career that made software accountable
Hamilton had come to Apollo by way of weather-prediction software at MIT and the SAGE air-defense project, where programmers were sometimes hazed with impossible programs that no one else could debug. She eventually led the Software Engineering Division at the MIT Instrumentation Laboratory. In 2016, President Barack Obama awarded her the Presidential Medal of Freedom for her Apollo work.
Hamilton reflected on being one of very few women in a room full of male engineers at MIT — and on the surprise she encountered when the men she worked with treated her as a peer rather than an interloper. The technical authority was not granted; it was earned line by line, review by review, rope by rope.
The Space Travel archive has returned to this theme before — the idea that spaceflight rests on thousands of prepared decisions rather than a single heroic act. In a recent piece on the 1995 Hubble Deep Field, the same pattern showed up: an instrument doing something impossible because a team had spent months designing for the moment when the impossible would be asked of it.
What Eagle actually did in those four minutes
Once the alarms were declared survivable, Armstrong took semi-manual control. The automatic landing target was carrying Eagle toward a boulder-strewn area near West Crater. He pitched the lunar module forward, extended the descent, and hunted for a clearer patch of ground while Aldrin called out altitude and fuel numbers.
The margin at touchdown has been argued over for decades. The commonly cited figure is roughly 25 seconds of fuel remaining before the mission rules would have forced an abort. Throughout that stretched-out final descent, the AGC kept triaging. It kept flying. It kept holding the throttle authority steady while Armstrong pointed Eagle where he wanted it to go.
When the contact light came on at 4:17 p.m. Eastern time, the software had done something more useful than being flawless. It had been resilient in the specific way its designers had planned for.
The stack that flew
The printout in the photograph is quiet. It is just paper. But every page of it was executable — woven into ropes, loaded into a 70-pound box bolted to the lunar module, running at a clock speed slower than a pocket calculator. And that paper, translated into copper and ferrite, was what decided which task to drop when the alarms began.
Six crewed missions landed on the Moon between 1969 and 1972 using descendants of the same architecture. None of them lost a crew to a software failure. The rope did not fray. The scheduler did not blink.
The stack Hamilton stood next to is now part of the Smithsonian’s collections, along with a selection of her papers. If you flatten out one of those pages under museum glass, you can trace the same handwriting-turned-machine-code that, on a July afternoon in 1969, decided in the space of a few instructions that the landing was worth more than the radar chatter. Eagle went down. The alarms kept flashing. The code kept choosing.