The Apollo Guidance Computer

The Apollo Guidance Computer, or AGC, was designed and built at the MIT Instrumentation Laboratory under Charles Stark Draper, with hardware led by Eldon C. Hall and flight units fabricated by Raytheon. It was one of the first computers to use integrated circuits in quantity, and it had to do something no earlier machine had done in flight: run a fixed set of guidance, navigation, and control tasks in real time, continuously, with human lives depending on it. Two versions flew, one in the Command Module and one in the Lunar Module, and their original assembly-language source has been transcribed from the printed listings and published openly. The repository description records it plainly as the “Original Apollo 11 guidance computer (AGC) source code for Command Module (Comanche055) and Lunar Module (Luminary099).”

By modern standards the machine was tiny. Its read-only program lived in core rope memory, where the software was literally woven into wire by hand, and its erasable working memory was a few thousand 16-bit words. Yet within those limits the AGC ran a sophisticated operating environment. A priority-driven executive scheduled jobs by importance rather than running a fixed loop, and a “restart” capability let the computer recover and resume its most important work if it was overloaded or interrupted.

That design was tested in the most public way possible. During the final descent of Apollo 11 in July 1969, the AGC threw a series of 1201 and 1202 program alarms as it ran short of time to complete all its scheduled jobs. Because the executive was built to shed low-priority work and restart cleanly rather than freeze, it kept the guidance running and the landing continued. The software did exactly what its designers, including Margaret Hamilton’s team, had built it to do under overload.

The reliability behind that moment was hard-won. E. C. Hall’s 1972 NASA report “Reliability history of the Apollo guidance computer” describes the strict quality control behind the flight units, analyzing seventeen computers that flew missions plus additional flight-ready units, all subject to mandatory failure reporting and analysis. The AGC was treated as safety-critical hardware long before that term was common.

The AGC matters in the history of computing because it is a direct ancestor of the embedded systems that now run cars, aircraft, and spacecraft. It proved that a small, fixed-program computer could be made dependable enough to bet a mission on, and that careful real-time scheduling could keep such a machine alive under conditions its designers could not fully predict. The published source code, still readable today, lets anyone study how that was done line by line.