Skip to content
— CH. 1 · SILICON CHIPS AND THE MIT LAB —

Apollo Guidance Computer

~6 min read · Ch. 1 of 5
5 sections
  • The Apollo Guidance Computer arrived in 1963 as a digital machine built for the Apollo program. It sat inside each command module and lunar module to handle guidance tasks. Charles Stark Draper led the design at the MIT Instrumentation Laboratory. Eldon C. Hall managed the hardware construction while Raytheon fabricated the flight units. Herb Thaler worked on both architecture and fabrication teams. This computer became the first device based entirely on silicon integrated circuits. Engineers welded chips onto boards instead of using standard soldering techniques. Block I versions contained 4,100 IC packages while later Block II models used roughly 2,800 chips. Fairchild Semiconductor supplied the dual three-input NOR gates that formed the logic core. These flat-pack components utilized resistor-transistor logic within a cast epoxy plastic housing. The decision to use a single chip type avoided problems seen in other early designs like Minuteman II. That rival system mixed diode-transistor logic with diode logic gates which caused reliability issues. NOR gates served as universal building blocks despite requiring more total gate counts. The AGC held about 4,100 IC packages within its compact frame. Its performance matched early home computers from the 1970s such as the Kenbak-1 or Apple II. The physical size remained small compared to modern standards yet housed immense computational power for its era.

  • The memory system stored data using magnetic cores woven into complex patterns called core rope memory. Most software lived inside this read-only structure while a smaller amount occupied erasable magnetic-core memory. Each word measured 16 bits containing 15 data bits plus one parity bit. The CPU internal format included 14 bits of data alongside an overflow bit and sign bit. Cycle times reached 11.72 microseconds for both memory types. The computer featured four central registers named A Z Q and LP for general computation tasks. Register A acted as the accumulator for all arithmetic operations. Register Z tracked the program counter pointing to the next instruction address. Register Q held remainders from division instructions and return addresses after subroutine calls. Register LP stored lower products during multiplication sequences. Additional registers handled specific functions like memory addressing or buffer storage. The S register managed 12-bit memory addresses while Fbank selected ROM banks in fixed-switchable modes. Ebank chose RAM banks when accessing erasable memory. SQ tracked current instruction sequences within the processor pipeline. G served as a 16-bit buffer moving words between memory and registers. X and Y provided inputs to the adder performing ones complement arithmetic. U represented the output sum of registers X and Y combined. B functioned as a general-purpose buffer pre-fetching the next instruction code. C held the ones complement of register B contents. IN and OUT registers handled input and output streams respectively. These components formed a tightly integrated system designed for reliability under extreme conditions.

  • J. Halcombe Laning designed a real-time operating system called Exec that used cooperative multi-tasking. An interrupt-driven scheduler known as Waitlist managed timer-driven tasks throughout flight operations. Tasks ran as short threads capable of rescheduling themselves on the Waitlist queue. Longer operations started jobs through the Exec batch job-scheduler mechanism. Calculations utilized metric units internally but displayed results in feet nautical miles and feet per second. Margaret Hamilton led the team responsible for lunar mission software development. Her group predicted human error types before they occurred during actual missions. Alex Kosmala developed CORONA for the first command module flight. Frederic Martin oversaw COLOSSUS software for lunar command modules. George Cherry directed LUMINARY programs installed in lunar modules. The total effort required 1400 person-years with a peak workforce of 350 people. Hamilton received the Presidential Medal of Freedom in 2016 for her contributions. The design principles became foundational to modern software engineering practices. Asynchronous software priority scheduling testing and human-in-the-loop decision capabilities emerged from this work. Richard Battin provided trajectory algorithms based on earlier research papers. The AGC featured a sophisticated interpreter implementing virtual machine pseudo-instructions. These instructions simplified navigation programs while reducing memory requirements significantly. Double precision trigonometric scalar and vector arithmetic operated within 16 or 24-bit formats. Average execution time reached approximately 24 milliseconds per pseudo-instruction. The YUL assembler enforced proper transitions between native code and interpreted routines. Pinball user interface routines handled keyboard and display services for running tasks. Monitor routines allowed operators to periodically redisplay specific memory locations. Jobs could be initiated manually by astronauts using the DSKY interface.

  • Buzz Aldrin entered command 1668 five minutes into the descent sequence. This instruction told the computer to calculate DELTAH twice per second continuously. The processor normally ran at 85 percent load during approach phases. Extra cycle steals added another 13 percent workload leaving minimal margin for error. Five minutes later Aldrin repeated the same command creating additional system stress. A rapid stream of spurious cycle steals came from the rendezvous radar tracking orbiting modules. These phantom movements generated 6,400 cycle steals per second exceeding available capacity. The AGC displayed alarm codes 1202 and 1202 indicating executive overflow conditions. Steve Bales and Jack Garman issued multiple GO calls despite the flashing lights. Guidance controller teams deleted lower priority tasks including the 1668 display task automatically. Critical guidance and control functions completed successfully while non-essential operations paused. The problem stemmed from a peripheral hardware bug known since Apollo 5 testing. Engineers chose to fly with existing tested hardware rather than untested new radar systems. Two 800 Hz sources remained frequency locked but not phase locked causing random variations. Phantom antenna dithering appeared even though the physical structure stayed stationary. A misconfigured radar switch triggered the cycle steals leading directly to alarms. J. Halcombe Laning's software design saved the mission by prioritizing essential tasks. Without this architecture the landing would have aborted due to lack of stability. The response included soft restarts that recovered normal operation within seconds. Buzz Aldrin noted the pattern appearing whenever he entered 1668 repeatedly. His comment helped ground controllers understand the root cause quickly.

  • Ron Burkey started the Virtual AGC Project in 2003 to recover source code files. He aimed to build functional emulators using transcribed hard copies from the 1960s. Original code became available through both the Virtual AGC Project and MIT Museum archives. Chris Garry uploaded the complete dataset to GitHub in mid-2016 generating media attention. John Pultorak built a working hardware replica of Block I AGC inside his basement. Moonjs created web-based simulators allowing users to experience lunar landings online. Eagle Lander 3D Shareware offered Windows-only simulations with functioning AGC systems. Ronald Burkey maintained home pages hosting simulator binaries plus source recovery tools. Delco Electronics published manuals over 500 pages long covering Apollo 15 procedures. James Tomayko wrote books detailing NASA computer experiences throughout spaceflight history. David Scott authored user views explaining underlying algorithms used during missions. José Portillo Lugo documented Lunar Module Attitude Controller Assembly input processing methods. The National Air and Space Museum displayed Block I units alongside DSKY interfaces. Annotations by Eldon Hall discussed obscure details regarding system programming techniques. These efforts preserved knowledge for educational purposes while honoring historical achievements. Software engineers today study these documents to understand early computing constraints. The project gained renewed interest after decades of dormancy following initial releases.

Common questions

When did the Apollo Guidance Computer arrive for the Apollo program?

The Apollo Guidance Computer arrived in 1963 as a digital machine built specifically for the Apollo program. It was designed to sit inside each command module and lunar module to handle all guidance tasks.

Who led the design of the Apollo Guidance Computer at MIT?

Charles Stark Draper led the design of the Apollo Guidance Computer at the MIT Instrumentation Laboratory. Eldon C. Hall managed the hardware construction while Raytheon fabricated the flight units under this leadership structure.

What memory system stored data in the Apollo Guidance Computer?

The memory system stored data using magnetic cores woven into complex patterns called core rope memory. Most software lived inside this read-only structure while a smaller amount occupied erasable magnetic-core memory.

How many person-years were required to develop the Apollo Guidance Computer software?

The total effort required 1400 person-years with a peak workforce of 350 people. Margaret Hamilton led the team responsible for lunar mission software development during this extensive period.

What alarm codes appeared when Buzz Aldrin entered command 1668 five minutes into descent?

The AGC displayed alarm codes 1202 indicating executive overflow conditions when Buzz Aldrin entered command 1668 five minutes into the descent sequence. These alarms resulted from spurious cycle steals generated by the rendezvous radar tracking orbiting modules.