The source code is here: <a href="http://www.ibiblio.org/apollo/listings/Comanche055/" rel="nofollow">http://www.ibiblio.org/apollo/listings/Comanche055/</a>. We changed the url to the top-level page which provides an overview.<p>Edit: see subthread below.
Not quite sure why this links to the code, and not the top level which has a lot more useful information (such as the simulator needed to run the code).<p><a href="http://www.ibiblio.org/apollo/" rel="nofollow">http://www.ibiblio.org/apollo/</a><p>There's some more information here: <a href="http://googlecode.blogspot.co.uk/2009/07/apollo-11-missions-40th-anniversary-one.html" rel="nofollow">http://googlecode.blogspot.co.uk/2009/07/apollo-11-missions-...</a>
Reading the comments is fun...and a bit scary:<p><pre><code> TC BANKCALL # TEMPORARY, I HOPE HOPE HOPE
CADR STOPRATE # TEMPORARY, I HOPE HOPE HOPE</code></pre>
<a href="http://www.ibiblio.org/apollo/assembly_language_manual.html" rel="nofollow">http://www.ibiblio.org/apollo/assembly_language_manual.html</a><p>Descriptions of instructions, opcodes, number encoding, etc
"arranged for by Deborah Douglas of the MIT Museum"<p>That's my wife's boss; the source material is still sitting on my wife's desk!
<a href="http://www.ibiblio.org/apollo/listings/Comanche055/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc.html" rel="nofollow">http://www.ibiblio.org/apollo/listings/Comanche055/PINBALL_G...</a><p>>Filename: PINBALL_GAME_BUTTONS_AND_LIGHTS.agc<p>Can someone explain what this is? I doubt they had an actual game of pinball in their guidance computer.
Wow. This is really impressive: assembler, real-time systems in space, mission-critical equipment, software that protects lives, etc.<p>Maybe that is too much, causing those writing the next "date finding" app to feel incompetent after reading this.<p>But at least we will know we are standing on shoulders of giants.
It's of cause fun to have this code to look at, but is it really useful? I don't mean it in a condescending way, but is this actually someone at, say SpaceX, looks at and goes: "Oh so that's how they did that"?
<i>Project Apollo features a near-full implementation of the control panels in the Command Module and Lunar Module, and an increasingly accurate simulation of the internal systems (e.g. electrical distribution, fuel cells). Also the Virtual AGC software is supported, which allows you to run precisely the same on-board guidance software as used by the real Apollo Guidance Computer</i><p><a href="http://nassp.sourceforge.net/wiki/Main_Page" rel="nofollow">http://nassp.sourceforge.net/wiki/Main_Page</a>
Isn't it true that the AGC was initially designed to be the sole navigation computer, but when the implementation did not meet the requirements for accuracy (due to accelerometer and gyroscope drift), they switched to a ground-based radar system? This meant the AGC became the back-up in case the communications system failed. Does anyone know if the AGC was ever used to make a mission-critical decision in the absence of the ground-based radar system?<p>Edit: I think it was actually the PGNCS that was made back-up [1]. Sorry the comment about Kalman filter had me confused. Apparently PGNCS was still used for maintaining orientation, controlling rockets, and navigation during planned outages.<p>1: <a href="http://en.wikipedia.org/wiki/Apollo_PGNCS" rel="nofollow">http://en.wikipedia.org/wiki/Apollo_PGNCS</a>
For anyone interesting in learning more about this computer system, I highly recommend _Digital Apollo: Human and Machine in Spaceflight_ by David A. Mindell.<p>The hardware limitations! The incredibly low bug count! The memory hand-woven by ladies in a factory! I was blown away by the capabilities of the Apollo computer systems. The craft could have been practically unmanned.<p>Even more impressive, the computers could fly the craft while ALSO being interrupted by and adjusting to human intervention at nearly every step of the process. The pilots and the engineers practically battled over who would be in control of the craft. Fascinating stuff!
If you are into such things, do take a look at the orbiter project (<a href="http://orbit.medphys.ucl.ac.uk/" rel="nofollow">http://orbit.medphys.ucl.ac.uk/</a>) and the NASSP add-on (<a href="http://nassp.sourceforge.net/wiki/Main_Page" rel="nofollow">http://nassp.sourceforge.net/wiki/Main_Page</a>). I spent many an after-school night flying to the moon by punching codes on a keyboard. It was amazing.<p>edit: Here's a video <a href="https://www.youtube.com/watch?v=7VDV6Gdxakc" rel="nofollow">https://www.youtube.com/watch?v=7VDV6Gdxakc</a>
In MAIN.agc there is a list of bugger words. Not that I know assembly in any meaningful way, but I've never come across this term before.<p>On Googling, it seems to be something to do with a checksum value?
Also a lot of of good information in this document: <a href="http://www.ibiblio.org/apollo/hrst/archive/1029.pdf" rel="nofollow">http://www.ibiblio.org/apollo/hrst/archive/1029.pdf</a><p>(Much of the Apollo Guidance Computer and software was developed by the MIT Instrumentation Lab, the predecessor to Draper Lab.)
The entire source code was actually woven by wire into memory for the Apollo missions: <a href="https://www.youtube.com/watch?v=P12r8DKHsak" rel="nofollow">https://www.youtube.com/watch?v=P12r8DKHsak</a>
Story behind the code:<p>TALES FROM THE LUNAR MODULE GUIDANCE COMPUTER
<a href="http://www.doneyles.com/LM/Tales.html" rel="nofollow">http://www.doneyles.com/LM/Tales.html</a>
what are bugger codes?<p><a href="http://www.ibiblio.org/apollo/listings/Comanche055/MAIN.agc.html" rel="nofollow">http://www.ibiblio.org/apollo/listings/Comanche055/MAIN.agc....</a>