"Open Source Selection" is a column where we share high-quality projects in open source communities such as Github and Gitee, including technology, learning, practical and various interesting content. This issue shares the original code for the Instruction Module (Comanche055) and the Lunar Module (Luminary099) from the Apollo 11 Guidance Computer (AGC).
Beginning with the simulated launch of Apollo 1 on January 27, 1967, the Apollo program lasted nine years and consisted of 17 serial number spacecraft, the most famous of which was Apollo 11, which successfully landed on the moon for the first time on July 16, 1969, carrying three American astronauts, including Armstrong.
At present, the original code of the instruction module (Comanche055) and the luminary099 module in the Apollo 11 guidance computer (AGC) that completed this grand moon landing program has all been open sourced on GitHub, with a total of 145,000 lines of code and more than 300,000 technicians behind the scenes.
Below is Margaret Hamilton, the space program's director of software engineering, standing by a pile of paper full of code.
The AGC code was first made public in 2003, and by transcribing paper copies from the MIT Museum's collection, Paul Fjeld digitized the code and collated it by Deborah Douglas, a scholar specializing in the history of technology and science, and finally uploaded the software to GitHub in its entirety by former NASA intern Chris Garry.
Let's take a look at the code:
Instruction module
Lunar module
The code was written in assembly language, and despite limited resources at the time, the Apollo computer was carefully programmed at the machine code level, with each instruction specifying a function that did not require multiple layers of abstraction in modern programming to translate high-level languages into low-level code, and currently NASA, in conjunction with MIT and a number of other agencies, is funding a project that provides the Apollo Guided Computer (AGC) simulator used in the Apollo Lunar Program command module and lunar module, as well as some other materials:
Register sheet
Time pulser
circuit diagram
Emulator interface
Run the effect
For more information, you can read it yourself.
Open source address: https://github.com/chrislgarry/Apollo-11
If you need project recommendations and resources, please send private messages to the author