(this post was originally from a separate blog of mine months ago, i’m reposing it here for consolidation).
It’s been almost 45 years since the last man stepped on the moon, a day shy of 15 years before I was even born. The technology that has advanced since then is phenomenal. There’s that old meme of how the computer in our phone was more powerful than the computer they took to the moon. In fact it’s been compared more to a current day graphing calculator than even a handheld mobile.
https://s-media-cache-ak0.pinimg.com/736x/0e/f5/f4/0ef5f49e0c2d398f51dfe4d774a96249.jpg
But recently, a bit of that history was released out publicly on Github. The source code for the Apollo 11 Guidance Computer for both the Command Module and Lunar Module, both referenced as Comanche055 and Luminary099, were recently uploaded to the code sharing site by NASA intern Chris Garry.
The code its self had been available for almost 15 years now, it’s the first time it’s been available in a format such as one Github. Originally scanned by pilot Gary Neff, MIT obtained the scans, where in 2003, researcher Ron Burkey transcribed the original hard copies manually line by line.
But now that it’s available in such clear format to the masses, Reddit/githubers/the internet at large have been pouring over the source code, written 100% in Assembly, and realizing there’s more to the code than just commands. it turned out the original engineers who wrote the code had a bit of a sense of humour, peppering the code with references, jokes and quotes through out.
Burn Baby Burn
For example, The Master Ignition Routine has prefaced with ‘Burn, Baby, Burn’ along with an explanation of it.
https://i0.wp.com/data.qz.com/2016/static-images/nasa1.png
Later own though, they even quote shakespear.
A Reddit user noted that there’s more to the quote though, and that the Nouns and Verbs mentioned are actually a reference to the way in which the commands were named based off of how they were entered into the computer system.
Rule 1 of Aerospace, Hope is not a Method
Some bugs and issues were found in the thousands of lines of code. One which being two commands that were hoped to be kept temporary, but eventually made their way into the final product. I can only assume what ever IDE they used didn’t have //TODO: tracing.
https://i0.wp.com/data.qz.com/2016/static-images/nasa3.png
One user on Github even took to noting an issue with stirring the cryogenic tanks with a circuit fault present. A nod to the Apollo 13 incident. It was noted that the bug was fixed in a later release (Apollo 14).
Programmings Changed, Programmers Haven’t
To find comments such as these is not something new though. The original source code of the Windows 1.0 OS, which was released recently, had similar easter eggs and references to Shakespear, as well as some less elegant yet more modern vocabulary. To be fair, I’ve heard Shakespear invented that word as well. You can find the collection of the easter eggs over here.
https://www.neowin.net/images/uploaded/wtacvxy.jpg
Leave it to the Internet
The /r/ProgrammerHumor subreddit has a running commentary and insight into the Apollo 11 code its self and is worth a good read. And as proof it all works; The original Quartz post on the code has a video of an Apollo Guidance Computer emulator running the code its self.
It’s amazing to see under the hood of such a piece of history, and to look upon the engineering methodologies and results of a generation ago which accomplished something so tremendous. And despite all our advances, at the end of it all, this proves that from the 60’s, through the 80’s and into now,not everything has changed with programmers.