How They Built the Software of Apollo 11
LinuxScribe tips a piece up at Linux.com with inside details on the design and construction of the Apollo 11 code. There are some analogies to open source development but they are slim. MIT drafted the code — to run on the Apollo Guidance Computer, a device with less grunt than an IBM XT — it had 2K of memory and a 1-MHz clock speed. It was an amazing machine for its time. NASA engineers tested, polished, simulated, and refined the code. "The software was programmed on IBM punch cards. They had 80-columns and were 'assembled' to instruction binary on mainframes... and it took hours. ... During the mission, most of the software code couldn't be changed because it was hard-coded into the hardware, like ROM today... But during pre-launch design simulations, problems that came up in the code could sometimes be finessed by... computer engineers using a small amount of erasable memory that was available for the programs. The software used a low-level assembly language and was controlled using pairs or segments of numbers entered into a square-shaped, numeric-only keyboard called a Display and Keyboard Unit... The two-digit codes stood for 'nouns' or 'verbs,' and were used to enter commands or data, such as spacecraft docking angles or time spans for operations." Reader Smark adds, "The Google Code Blog announced today that the Virtual AGC and AGS project has transcribed the Command Module and Lunar Excursion Module code used during the Apollo 11 moon landing. The code is viewable at the VirtualAGC Google Code Page."
I think I just had a geekgasm.
My ism, it's full of beliefs.
http://embedded.com/columns/technicalinsights/218401508?pgno=1
"Calculating trajectories for Apollo program"
"Jack Crenshaw describes what he and team members did to research trajectories for the Apollo missions."
As some one old enough to enter raw hex in to a hex keypad on a machine with an LED display having hand assembled the code in the back of her math exercise book during a math lesson (when I should have been learning stats) this doesn't sound too different.
You kids and yer "raw hex keypads" and "LED readouts." Why, back in my day, we had toggle switches and light bulbs! And we liked it that way! Now you kids get off my law.....hey, wait...you're a girl? You can stay. :)
My blog
This is an Apollo DSKY BTW. A Classic command would have been
[VERB]66[PRO]
Which loosely translated means give me manual control, I need to land this sucker. If you watch the descent movies you will hear "P66" being called out by the LMP a few minutes before landing. Interesting to note that the 6 is right beside PRO. I wonder if there is a bit of clever UI design in that.
http://michaelsmith.id.au
The problem with Apollo 11's guidance wasn't the equpment, it was the moon. Look up MASCONs. Essentially, the moon's density varies from spot to spot and these differences in density changed the gravitational force affecting the LM during its descent. This, in turn, added errors that couldn't be accounted for, pre-flight.
What they did on subsequent flights was to use radar doppler data on the LM as it came around from the backside of the moon to determine the difference between the expected flight path and the actual flight path. Once they had this data, they updated the LM's guidance computer to correct for this effect.
One trickiness is that the state vector of the LM was a 6-tuple. Rather than update the state vector, they figured out that they could just update the range to the landing site by updating 1 number.
Google search for Emil Scheisser. He's the guy who figured this out.
This Apollo computer has specs almost identical to ancient 1970s home technologies like the Atari VCS/2600 game console (1 megahertz, 2K ROM). Or an Atari 400/Commodore VIC-20 computers (1 megahertz, ~8K RAM). That gives you a rough idea of how "weak" the computer inside Apollo truly was.
"I disapprove of what you say, but I will defend to the death your right to say it." - historian Evelyn Beatrice Hall
They overshot the original intended landing point by about 4 miles because of a timing error--the descent burn started about four seconds late.
The rocks-and-boulders-and-crater thing you're thinking of was a different issue.
The meek may inherit the earth, but the strong shall take the stars.
I think you've got the analogy backwards. It actually shows how powerful and capable those early micros were. Kind of embarassing when your multi-gigahertz PC can barely run a word processor, or stalls when trying to display a photo, huh?
Dude, I think I can see my house from here.