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."
Except if you screwed up you didn't cause several people to explode.
No love for KHz?
When I wrote my own equivalent program in C= BASIC, you weren't in a lunar module at all -- you were on foot. There was no fuel, but you had a time limit. You'd been poisoned, you see, and you had to get to hospital, quick. Go too slow, you don't reach the hospital in time, die. Go too fast, run into a wall, die.
I was a very strange child.
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
Wow essentially man landed on the moon with the computing power of a 2600.
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.
>>>Kind of embarassing when your multi-gigahertz PC can barely run a word processor, or stalls when trying to display a photo, huh?
>>>
No not really. If I tried to run a modern word processor on an Atari or Commodore computer, it wouldn't even fit. And by the time you stripped-out enough code to make it fit, you'd have a plainjane processor with fixed fonts that are bitmapped and not scalable (i.e. no postscript encapsulation). You'd have pixelated printouts not clean professional documents like today's machines produce.
As for photos, it used to take my Commodore 64 ten minutes to display a simple 320x240 VGA image. If it tried to display one of today's typical 16-million-color photos, first it wouldn't fit into the available memory, and second it probably would take a full day of number-crunching, displaying just one scanline every half hour.
Even newer machines like PowerPC Macs have trouble with our modern technologies. I tried to watch an AVI movie on my 400 megahertz PPC, and it was like watching slow motion. Modern tasks demand a fast clock.
"I disapprove of what you say, but I will defend to the death your right to say it." - historian Evelyn Beatrice Hall