Original Apollo 11 code open-sourced by NASA — original Command Module and Lunar Module code repos are now public domain resources
Posted by swe129@reddit | vintagecomputing | View on Reddit | 18 comments
im-ba@reddit
Anybody find any bugs in it yet?
zxobs@reddit
If you type "verb 32" "noun 18" a second outlook instance opens.
Der_Kommissar73@reddit
But it does not work either.
Aggropop@reddit
Luminary, the version of the code for Apollo 11 AGC, has a well known bug which actually caused the 1201/1202 errors during descent to the lunar surface.
Mission control made a pretty gutsy decision to go ahead with the landing despite the error, if it popped up again it could have potentially erased the navigational data and caused a 30 second reboot of the AGC, crashing the vehicle and killing the crew.
aardvarkjedi@reddit
It wasn’t a software bug. It was a hardware issue. The power supply of the rendezvous radar was out of phase with the rest of the electronics and that caused over 6000 interrupts per second to the computer, which, due to the way the hardware handled interrupts, caused excessive load on the CPU, which triggered the alarms. Aldrin left the rendezvous radar on in case it was needed if an abort occurred.
the123king-reddit@reddit
It wasn’t really a bug. A switch was flicked that overloaded the agc with telemetry data and the 1202/1201 alarm was the agc saying it’s got too much to do and less important stuff won’t be handled
im-ba@reddit
Wooow that's crazy! I actually hadn't heard of that one before. Apollo 11 got lucky on at least a couple of occasions, then
hrimthurse85@reddit
Now we just need a ESP32 or raspberry based emulator 😆
I'm sure it already exists.
aardvarkjedi@reddit
I wrote an AGC implementation in Verilog for a Xilinx FPGA. I can attest that the architecture is truly weird, with a 15-bit word size, 1’s complement arithmetic, and various hacks to extend the memory space and the instruction set.
aardvarkjedi@reddit
Unlike the AGC code, as far as I know, no one has found or published the original source code of the LVDC (the Launch Vehicle Digital Computer) in the Instrument Unit that controlled the Saturn V.
wosmo@reddit
It does bug me when these things describe it things as how many "bytes of ram" they had.
AGC had 2048 words, a word was 15 bytes + 1 parity. So they've done (2048*15)/8 to get 3,840 "bytes".
Hjalfi@reddit
Oh, yeah, and if anyone's interested, a few years ago I wrote a lunar lander game on the AGC, which you can run on an actual lunar lander. It's also got a writeup on the baroque but fascinating AGC architecture itself: https://cowlark.com/2019-07-20-cowgol-agc
spilk@reddit
I remember them having scans of the code printouts on their website like 20 years ago. i think this stuff has been available in various forms for a long time
kabekew@reddit
This website has an AGC emulator that runs the actual code and lets you interact with the computer controls (and has some instructions how to use it).
Hjalfi@reddit
There's this famous picture of Margaret Hamilton standing next to a printout. https://www.softwareheritage.org/wp-content/uploads/2019/07/Margaret_Hamilton_-_restoration.jpg
scubascratch@reddit
I love this picture but I have always been a bit skeptical of what code she is standing next to. The AGC had 36,864 words of code rope memory. That stack next to her looks like about 10,000 pages tall. So unless every line of code has a half a page of comments, this stack seems too big to be just the AGC code. Maybe it’s 5 versions of the code IDK.
HD64180@reddit
This is not new.
overratedcupcake@reddit
This isn't news. That repo is six years old. The most recent update was three months ago to update an outdated GitHub action definition.