Open Source

NASA open-sources original Apollo 11 mission code

At a glance:

  • NASA has open-sourced the original Apollo 11 mission code, making both the Command Module (Comanche055) and Lunar Module (Luminary099) codebases available on GitHub.
  • The code was digitized by Virtual AGC and the MIT Museum from original hard copies, and can now be compiled using the Virtual AGC tool.
  • The Apollo Guidance Computer had just 3,840 bytes of RAM and 69,120 bytes of storage, running at about 85,000 instructions per second.

Historic Mission Code Goes Public

The historic computer software code that guided Apollo 11 to the moon has been open-sourced and is now available for anyone to read, download, and examine. NASA's Chris Garry made the code available on GitHub as public domain, marking a significant moment in both space history and software preservation. The published resource consists of two large codebases: one for the Command Module (Comanche055) and another for the Lunar Module (Luminary099). These modules each ran on their own Apollo Guidance Computer (AGC), which were instrumental to the success of the remarkable mission – the first human Moon landing in history.

On the GitHub repository, Garry indicates that this momentous code was digitized by the Virtual AGC (Virtual Apollo Guidance Computer) project and the MIT Museum. This means the hard copy of the code held at the MIT Museum has been carefully scanned and proofread for digital distribution. In this particular case, we have reams of machine code now in the public domain, easily accessible online for researchers, historians, and curious developers alike.

Technical Details of the Codebase

To take a closer look at some of the example code, we examined the Comanche055 directory, where the ALARM_AND_ABORT.agc file immediately caught attention. After a boilerplate introduction at the top of the file, the purpose of the code becomes quite obvious from the filename itself. Comments within the code reveal that this particular module logs alarm conditions, turns on a warning light when applicable, and handles various abort-level and non-abortive alarms – critical functionality for a mission where system failures could have catastrophic consequences.

Another fascinating code example, shared on social media, highlights the crucial 30 lines of assembly code used for calculating Apollo 11's navigation trajectories. In 1969, this relatively small but elegant code was responsible for calculating transcendental functions like sine and cosine essential for navigating through space. The efficiency and ingenuity of this code demonstrate remarkable programming prowess given the extreme hardware limitations of the era.

The Apollo Guidance Computer Specifications

The specifications of the AGC pale in comparison to even the most rudimentary computers today. For example, an AGC had just 3,840 bytes of RAM and 69,120 bytes of storage. It could run at a maximum of about 85,000 instructions per second. Nevertheless, it was comparable in size to a desktop gaming tower PC of today at 24.250 x 12.433 x 5.974 inches (61.595 x 31.580 x 15.174cm), and weighed 70.1 pounds (31.8kg). The system also needed two DSKY controller units at 17.8 pounds (8.1kg) each in the Command Module, and one DSKY in the Lunar Module, making the entire computing system quite substantial by today's standards.

Modern Context and Preservation

It's fascinating to see this Apollo 11 code from nearly 60 years ago shared in the context of the ongoing Artemis lunar mission. Today, we aren't marveling at the lean and mean machine code that NASA is using to get humans to and from the Moon. Rather, modern missions face different challenges, with software issues like Microsoft Outlook email bugs and hardware malfunctions like a malfunctioning toilet on the Orion spacecraft sometimes taking the shine off the momentous achievements these latest missions represent.

The open-sourcing of this historic code serves multiple purposes: it preserves a crucial piece of computing history, allows researchers to study early software development practices, and provides educational value for understanding how complex missions were accomplished with minimal computing resources. As we continue to push the boundaries of space exploration, having access to the foundational code that made humanity's first lunar landing possible offers both inspiration and valuable historical context.

Editorial SiliconFeed is an automated feed: facts are checked against sources; copy is normalized and lightly edited for readers.

FAQ

What codebases were released by NASA?
NASA released two main codebases: Comanche055 for the Command Module and Luminary099 for the Lunar Module. These were the original software that ran on the Apollo Guidance Computers during the historic Apollo 11 mission.
How can I access and compile this code?
The code is available on GitHub as public domain. You can download it and compile it using the Virtual AGC tool, which works on Linux, Windows XP/Vista/7, Mac OS X 10.3 or later, and some versions of FreeBSD. The Virtual AGC repository also provides information about the AGCs used on both modules.
What were the specifications of the Apollo Guidance Computer?
The AGC had only 3,840 bytes of RAM and 69,120 bytes of storage, running at about 85,000 instructions per second. Physically, it measured 24.250 x 12.433 x 5.974 inches (61.595 x 31.580 x 15.174cm) and weighed 70.1 pounds (31.8kg), plus additional DSKY controller units at 17.8 pounds (8.1kg) each.

More in the feed

Prepared by the editorial stack from public data and external sources.

Original article