Live data from Hacker News

Apollo 11 Guidance Computer source code

github.com

41–50 of 150 posts

Re: Apollo 11 Guidance Computer source code

#41

BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.s - https://github.com/chrislgarry/Apollo-11/blob/dc4ea6735c4646...

I really wish we can do an AMA with these two, > # THE MASTER IGNITION ROUTINE WAS CONCEIVED AND EXECUTED, AND (NOTA BENE) IS MAINTAINED BY ADLER AND EYLES. I had to look this up, NOTA BENE is latin for, observe carefully or take special notice

Random note: When I was in the 5th grade, our math teacher taught us the meaning of Nota Bene, and used a NB sign to mark important notes when deriving formulas. Still use to this day when making notes

Re: Apollo 11 Guidance Computer source code

#42
post #30

BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.s - https://github.com/chrislgarry/Apollo-11/blob/dc4ea6735c4646...

Did you notice the date: > # Assemble revision 001 of AGC program LMY99 by NASA 2021112-61 > # 16:27 JULY 14, 1969 Likely the printing date but I envisioned the last minute all-nighters right away.

Considering that the binary was woven by hand using copper wire into the computer's core rope memory, I imagine the flight revision had to be finished months before the actual flight.

Re: Apollo 11 Guidance Computer source code

#43

BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.s - https://github.com/chrislgarry/Apollo-11/blob/dc4ea6735c4646...

And the name inspiration [1]

## At the get-together of the AGC developers celebrating the 40th anniversary ## of the first moonwalk, Don Eyles (one of the authors of this routine along ## with Peter Adler) has related to us a little interesting history behind the ## naming of the routine.
##
## It traces back to 1965 and the Los Angeles riots, and was inspired ## by disc jockey extraordinaire and radio station owner Magnificent Montague. ## Magnificent Montague used the phrase "Burn, baby! BURN!" when spinning the ## hottest new records. Magnificent Montague was the charismatic voice of ## soul music in Chicago, New York, and Los Angeles from the mid-1950s to ## the mid-1960s.

[1] https://github.com/chrislgarry/Apollo-11/blob/dc4ea6735c4646...

Re: Apollo 11 Guidance Computer source code

#44

people could've really used a higher-level language compiling to optimized AGC(apollo computer) assembly. Is there any reason why they didn't develop one? It seems it would've helped tremendously with the productivity and verification (and a lot of the explanations and equations would be readable as code, not as an non-executed comment)

  > Is there any reason why they didn't develop one?
“Now you have two problems.”

Edit: OK, maybe that deserves explanation. First, an optimizing compiler is a much bigger project than the AGC code. Second, current optimization techniques didn't exist in 1969, even assuming NASA had enough budget for machine(s) to run them. Third, you need to verify the binary anyway, and small source changes (in either the guidance code or the compiler) can lead to large binary changes.

Re: Apollo 11 Guidance Computer source code

#45

Other than gaining satisfaction from the historical importance of this code is there any conceivable way we can get some use of it - like try it out. Even setting that aside, what is it I'm looking at? Assembly?

I made some art out of it ( http://codeposters.io ) and have it on my walls now.

These are great, well done.

Re: Apollo 11 Guidance Computer source code

#49

people could've really used a higher-level language compiling to optimized AGC(apollo computer) assembly. Is there any reason why they didn't develop one? It seems it would've helped tremendously with the productivity and verification (and a lot of the explanations and equations would be readable as code, not as an non-executed comment)

It was pretty much taken as gospel everywhere at the time that NO compiler could match the speed and size of a well crafted assembly language routine. Back then there were some noble attempts at building optimizing compilers, and probably the more notable one was IBM's ambitious ForTran H. But that's 50-year-old tech now, kids.

Remember also that memory was at a terrific premium. I don't have any specific knowledge about the AGC, but there's an interesting story I read once about a memory shortage in another project - Intel's 8080.

(If you'll permit me an OT digression...)

As the story goes, the program space was so tight in the original microcode for the Intel 8080 microprocessor there wasn't room to spare for a one-byte constant in the code! The architects decided that the AAM and AAD instructions in the 8080 set should have a required operand - 0x0A or 10 - so that the instruction could refer to itself and know that you were operating in base 10!

A side effect of this is that the Intel processors could actually execute AAM and AAD instructions in number bases besides 10; Intel had never formally acknowledged that the instructions do this, and so in the NEC V20 or V30 chips - which were supposed to be Intel compatible - you couldn't change the AAM or AAD operand - it had to be 0x0A.

Post reply on HN