This year is set to be an eventful one for space travel and exploration. Already, we've seen SpaceX make history by becoming the first privately-owned company to ferry astronauts to the International Space Station. We're also well into the testing stages of the Starship project that aims to make space exploration and habitation a tangible reality. Not to mention, the summer launch window of NASA's new Perseverance rover to Mars is just around the corner as well.
While all of these are bold initiatives, it helps to take a step back and gauge just how far we've come since our baby steps in the world of space exploration. Fermat's Library has done exactly that. The platform, which specializes in developing software to help illuminate academic papers, went through the original Apollo 11 code that was penned down by Margaret Hamilton in assembly language back in 1969 and annotated many parts of it.
Specifically, the team annotated the SINGLE_PRECISION_SUBROUTINES.agc file for calculating transcendental functions like sine and cosine that were a linchpin for Apollo 11's voyage to the Moon. Fermat's Library uploaded its annotation of the source code on Margins, an online repository that it has curated for academics and enthusiasts to annotate papers with LaTeX and Markdown scripts. The excerpt below shows the computer's approximation of calculates cos(𝜋𝑥) in the SPCOS subroutine.
The complete annotation of the subroutine can be found here. If you are interested in finding out more, the source code of the Command Module (Comanche055) and Lunar Module (Luminary099) on the original Apollo 11 guidance computer (AGC) can be found in this GitHub repository.