Original Apollo 11 Guidance Computer Source Code (Comanche055 and Luminary099) on GitHub

Original Apollo 11 Guidance Computer Source Code (Comanche055 and Luminary099) on GitHub

Overview

The repository chrislgarry/Apollo-11 provides the original Apollo 11 Guidance Computer (AGC) source code as transcribed from hardcopy scans. It enables anyone to study, compile, and run the software that guided the Command and Lunar Modules to the Moon.

Source Modules

The repo holds two assemblies: Comanche055 for the Command Module and Luminary099 for the Lunar Module. Both are written in AGC assembly language and processed by the yaYUL assembler. Attribution notes show Comanche055 was assembled revision 055 on 1 APR 1969 and Luminary099 revision 001 on 14 JUL 1969.

Attribution and Licensing

The code is marked as public domain. The attribution table lists copyright as public domain and credits the Instrumentation Laboratory at MIT. The contract and approvals table shows the program was prepared under DSR project 55-23870, sponsored by the Manned Spacecraft Center via contract NAS 9-4065, with approvals signed on 28 MAR 69 by Margaret H. Hamilton and others.

Building and Running

To assemble the source, the yaYUL assembler is required. The project points to the Virtual AGC repository (https://github.com/rburkey2005/virtualagc) for a working emulator and build instructions. Using that toolchain, the AGC binaries can be generated and executed in a simulated environment.

Historical Insights from Comments

Commenters have pointed out several noteworthy details:

The position of the Moon is stored in the computer in the form of a ninth degree polynomial approximation which is valid over a 15 day interval beginning shortly before launch. Therefore the time input by the user should fall within this 15 day interval. (Comment by @wim)

A comment flagged as BEWARE appears in the code: BEWARE ... (Comment by @buredoranna)

One observer noted that in 1969 lowercase letters had not been invented yet for this source. (Comment by @miohtama)

Another remarked that the code could possibly run on hardware as low powered as a modern USB charger chip. (Comment by @ck2)

A user highlighted a video that explains AGC functionality and the error codes that appeared during the landing. (Comment by @soferio)

The yaYUL assembler retains quirks from the original YUL format, and no effort has been made to adapt the assembler to read YUL directly. (Comment by @fjfaase)

Translations and Accessibility

The project includes README translations in many languages, such as Azerbaijani, Bahasa Indonesia, Basa Jawa, Català, Čeština, Dansk, Deutsch, English, Español, Français, Galego, Italiano, Kurdî, Lietuvių, Mongolian, Nederlands, Norsk, Polski, Português, Română, Suomi, Svenska, tiếng Việt, Türkçe, Ελληνικά, Беларуская мова, Русский, Українська, العربية, فارسی, नेपाली भाषा, हिन्दী, অসমীয়া, বাংলা, မြန်မာ, 한국어, 日本語, 正體中文, 简体中文, മലയാളം. This makes the historical source accessible to a global audience.

Legacy and Impact

The repository has garnered significant attention, with one comment noting it has 72k stars on GitHub. It was first shared on Hacker News a decade ago, as highlighted by a user marking the 10-year anniversary. The code serves as a primary reference for understanding early software engineering under extreme constraints, and it continues to be studied, compiled, and celebrated as a landmark of human achievement.

Sources