Forgot your password?
typodupeerror
Space NASA Programming IT Technology

How They Built the Software of Apollo 11 220

Posted by kdawson
from the we-had-to-use-the-letter-o dept.
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."
This discussion has been archived. No new comments can be posted.

How They Built the Software of Apollo 11

Comments Filter:
  • Fake (Score:5, Funny)

    by Yuioup (452151) * on Tuesday July 21, 2009 @08:11AM (#28768209)

    Wow. They sure went out of their way to fake the moon landing. I bet the source-code is fake too :-P

    Y

    • Re: (Score:2, Funny)

      lol Cheyenne Mountain doesn't exist.

    • The software used a low-level assembly language and was controlled using ... numbers entered into a square-shaped, numeric-only keyboard called a Display and Keyboard Unit

      I'm inclined to agree with the parent. This sounds just like the input methods of a Ti-86 calculator...

      • Re:Fake (Score:5, Informative)

        by MichaelSmith (789609) on Tuesday July 21, 2009 @08:35AM (#28768383) Homepage Journal
        This is an Apollo DSKY [nasa.gov] 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.
        • Re:Fake (Score:5, Informative)

          by CWRUisTakingMyMoney (939585) on Tuesday July 21, 2009 @09:36AM (#28768977)
          Just to be pedantic, it was actually the Commander (Armstrong) who actually flew the LM to the surface, not the misnomered LMP, who mainly monitored things and called out warnings and readings. So if anyone said P66 (which the transcript [nasa.gov] doesn't indicate literally happened), it was more likely the Commander, who would've entered the program. The transcript has Armstrong saying "I'm going to..." when he goes into P66.
        • by Anonymous Coward on Tuesday July 21, 2009 @12:49PM (#28771527)

          This guy wins the ubergeek crown of all time. He actually built a fully functional version of an AGC [klabs.org] out of discrete IC chips. Granted, it is not a true AGC clone, since the exact chips could not be procured in 2000-2004, but he did build a functional workalike of the AGC out of individual TTL chips, and wrote two software emulators, and got his modernized hardware reproduction AGC to run actual original AGC machine code software.

      • Re:Fake (Score:5, Informative)

        by commodore64_love (1445365) on Tuesday July 21, 2009 @09:28AM (#28768889) Journal

        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.

        • by TheLink (130905)

          For more perspective, PC keyboard controllers are similar in processing power to something like this: http://www.cpu-world.com/CPUs/8048/Intel-P8048.html [cpu-world.com]

        • Re:Fake (Score:5, Insightful)

          by iocat (572367) on Tuesday July 21, 2009 @10:23AM (#28769579) Homepage Journal
          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?
          • Re: (Score:3, Informative)

            by Demonantis (1340557)
            Your statement is misleading. These beastly machines that we use are expected to be able to do a huge range of operations. The apollo computers were programmed to do a specific set of tasks and calculations. If given enough resources anyone could design a reliable computer that only did word processing or number crunching with amazing reliability.
          • by Shakrai (717556)

            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?

            Of course those early micros relied mostly on ROM according to TFA and didn't have to wait for disk i/o. The CPU is rarely the bottleneck in a modern computer system....

          • Re:Fake (Score:4, Insightful)

            by commodore64_love (1445365) on Tuesday July 21, 2009 @11:15AM (#28770241) Journal

            >>>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.

          • Re:Fake (Score:4, Interesting)

            by icebike (68054) on Tuesday July 21, 2009 @12:54PM (#28771605)

            Not powerful in any meaningful sense. Just incredibly robust and failure tolerant.

            Some might remember the 1202 alarm when the LEM commander had to take over manual control and land the LEM because, according to the mainstream press, the computer crashed.

            Well, it turns out it was not quite that simple. Human error led to the computer reaching a PLANNED restart point. This restart was essentially instant, dumping tasks it could not handle due to missing data, and picking up where it left off.

            Aldrin, due to the closeness of the landing decided to take over manually as he had trained to do hundreds of times in the simulator.

            But the computer did not fail, it restarted, as programmed, and was back on line long before he even got his hand off the switch.

              http://history.nasa.gov/alsj/a11/a11.1201-pa.html [nasa.gov]

        • Re:Fake (Score:4, Informative)

          by LWATCDR (28044) on Tuesday July 21, 2009 @11:26AM (#28770351) Homepage Journal

          "That gives you a rough idea of how "weak" the computer inside Apollo truly was."
          Or how strong the programmers where.
          Most of the code in most programs is for things like UI, security, data validation, help systems and so on.
          Very little code is there to do the actual work.
          The Apollo system was built to be used by a few highly trained people. It didn't need a help system.
          I would rather think of how good the programmers where and frankly the hardware people where than compare it to what we have 40 years latter.
          If you want to think about just how far they had come how fast.
          This was built only 42 years before men landed on the moon. http://en.wikipedia.org/wiki/Spirit_of_St._Louis [wikipedia.org]
          I would say holy freaking jump batman for the moon landing!

    • Re: (Score:2, Funny)

      Wow. They sure went out of their way to fake the moon landing. I bet the source-code is fake too :-PY

      No, they couldn't have written in Python as it wasn't even a gleam in Guido's eye yet.

    • by Anonymous Coward

      Journey to the Moon: The History of the Apollo Guidance Computer
      by Eldon C. Hall
      ISBN: 156347185X

      If anyone is ever in the Mountain View area the Computer History Museum has one of them on display.

      Richard Feynman's book 'What Do You Care What Other People Think?' also mentions the software development scheme used for space shuttle hardware in the context of the Rogers Commission report on the Challenger accident.
      ISBN: 0393320928

    • Re: (Score:3, Funny)

      by elrous0 (869638) *
      I sure hope it's not fake code. I'm a time traveling entrepreneur, and I'm going to make a FORTUNE selling this to the Russians in 1965.
  • by MrKaos (858439) on Tuesday July 21, 2009 @08:12AM (#28768225) Journal
    I think I just had a geekgasm.
    • by mcgrew (92797)

      Wow, I'm glad I didn't see your comment before I took Tami to D'arcy's Pint last week! She's about five foot nothing or shorter and over 200 pounds*, and as we were walking to the car she said "I just had a food orgasm".

      If I'd seen your post I'd probably stuck my foot in my mouth and said "a fatgasm?"

      That would not have been pretty...

      *She has a boyfriend, and it isn't me. he works at D'Arcy's, I can't figure out why he's jealous

  • README.txt (Score:5, Funny)

    by Norsefire (1494323) * on Tuesday July 21, 2009 @08:13AM (#28768227) Journal

    For Vista, the following steps may need to be performed manually after installation:

    1.
    2.

    -- README.txt [google.com]

    Wow, even rocket scientists don't know how to make code work on Vista.

    • Re: (Score:3, Funny)

      by K. S. Kyosuke (729550)
      That's because Microsoft tries very hard to convince everyone by developing Visual Studio that programming for Windows isn't rocket science. Which is why rocket scientists can't program for Windows.
  • Proper Old Skool (Score:4, Interesting)

    by Goth Biker Babe (311502) on Tuesday July 21, 2009 @08:13AM (#28768233) Homepage Journal

    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.

    • by Norsefire (1494323) * on Tuesday July 21, 2009 @08:16AM (#28768249) Journal
      Except if you screwed up you didn't cause several people to explode.
      • Re:Proper Old Skool (Score:5, Interesting)

        by MichaelSmith (789609) on Tuesday July 21, 2009 @08:23AM (#28768313) Homepage Journal
        It was amazing they did so well on Apollo. The only real guidance screw up was on Apollo 11. Every other landing was spot on. Apollo 12 had been targeted for the middle of surveyor crater and was dead on when Pete Conrad got his first look at the landing sight. He had to fly manually to avoid the target.
        • Re:Proper Old Skool (Score:4, Informative)

          by Stele (9443) on Tuesday July 21, 2009 @09:05AM (#28768681) Homepage

          I don't believe there was a screw up of computer guidance in Apollo 11. Armstrong landed way off-target because there were large boulders in the way that weren't accounted for properly in the survey photos. This is why they used up almost all of their descent fuel.

          • Re:Proper Old Skool (Score:5, Informative)

            by icebrain (944107) on Tuesday July 21, 2009 @09:42AM (#28769053)

            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.

          • That's only part of the problem. They were low/long from PDI (power descent initiation) at least partly because of the moon's lumpy gravity, that was poorly understood at the time. That's bascially right from the start. Armstrong noted this in his landmark checks all being about 2 seconds early, which is something like 6000-8000 feet.

                      Brett

          • Re:Proper Old Skool (Score:5, Informative)

            by infolation (840436) on Tuesday July 21, 2009 @11:18AM (#28770271)
            The LM initially overshot because the crew were distracted by alarms [wikipedia.org] caused by the computer being unable to process all its tasks simultaneously. These alarms, in turn, had been triggered because ground simulations hadn't taken account of hardware powering up in a random order which generated data from two radars instead of one, which overloaded the computer.

            Armstrong's boulder avoidance flying was undertaken after the crew realised they'd overshot the target site by 4 seconds.

            (Unfortunately I find this subject insanely fascinating)
      • Several? Oh c'mon, three, tops.

        I hate it when people exaggerate.

      • by mcgrew (92797)

        Nobody exploded. Three astronauts burned to death in the Apollo 1 fire, but they didn't explode. That was the Space Shuttle Challenger.

        And neither of those tragedies had anything to do with software; in both cases, it was hardware design flaws. In Apollo 1 the mistake was using pure oxygen in the cabin, where a spark could incinerate everyone and everything in there (as well as the malfunctioning hardware that caused the spark), in the case of the Challenger it was a management mistake, as the engineeers di

        • And neither of those tragedies had anything to do with software

          Glad they didn't hire those Lockheed-Martin programmers who forgot Nasa had standardized on the Metric system [cnn.com] before the Mars Climate Orbiter Mission. Oops!

          On a side note, Science Fiction author, Frederik Pohl, posted an interesting anecdote about the first Apollo moon landing [tor.com].

          Seth

    • by morgan_greywolf (835522) on Tuesday July 21, 2009 @08:24AM (#28768321) Homepage Journal

      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. :)

      • Toggle switches? LEDs? Bah!

        In World War 2 us submariners used targeting computers that were nothing but gears and rotary dials. Turn the dial to set distance and speed. Turn another dial to set target speed and bearing. Then read-off the solution on a third dial. We didn't need to stinkin' lights! ;-)

    • by Lumpy (12016)

      Exactly. my first computer was a KIM-1 single board that you had to convert your assembler to hex yourself. I did it so much I compiled assembler in my head.

      I find it hilarious when programmers today freak out if they don't have 900 metric tons of libraries to use when they program and a nice glossy IDE.

      Plus the article summary is misleading, the computer in the lander was lower power in processing than my watch or my old TI scientific calculator. Calling it less powerful than a IBM pc XT is not giving

      • Re:Proper Old Skool (Score:4, Informative)

        by Opportunist (166417) on Tuesday July 21, 2009 @10:10AM (#28769383)

        The typical keyboard has more than most computers in the 60s. The average gamer keyboard boasts more processing and storage power than the average computer of the 70s.

        Basically, they flew to the moon on two keyboards and a programmable mouse.

        • And about 1 trillion dollars in debt that we grandchildren are still paying-off. Thanks grandma/grandpa or mom/dad.

          (Sorry I know people hate when reality enters the picture, but that's just the way it is. I'd rather face the hard facts than deny them.)

        • by Kuroji (990107)

          Best analogy ever. This would, of course, be the one day where I end up without mod points.

    • I think I've just fallen in love with the parent poster. Female, biker, embedded systems designer. Now, one small problem, how does a 50+ male become an attractive lesbian?
  • Apollo 15 (Score:4, Interesting)

    by MichaelSmith (789609) on Tuesday July 21, 2009 @08:17AM (#28768267) Homepage Journal
    ...was the first flight to land in terrain where the descent trajectory had to be designed to avoid high altitude terrain. By that I mean they had to fly over a mountain, then into a valley for the landing.

    The terrain model in the PNGS had five vectors in memory to represent terrain. Back in those days, RAM was expensive.
    • by Bazman (4849)

      No, you're confusing Apollo 15 with the landscape on the arcade Lunar Lander game, surely!

  • this is clearly a horrible case of bloatware

  • 1 MHz != 1000 Hz (Score:2, Informative)

    by Fleetie (603229)
    "The Apollo's Guidance Computer was a snail-like 1.024 MHz in comparison, and it's external signaling was half that -- actually measured in Hz (1/1000th of 1 MHz, much as 1 MHz is 1/1000 of 1 GHz)." FAIL!
    • Re: (Score:3, Insightful)

      by VMaN (164134)

      No love for KHz?

    • Re: (Score:3, Interesting)

      You're wrong. Only RAM or ROM is measured in base 2, due to the innate binary nature of computers (they measure in multiples of 256, 512, 1024, 2048, et cetera). Clock speed is independent of that and measured in base 10 such that 1 megahertz == 1000 hertz.

      Anyway:

      This Apollo computer has specs almost identical to ancient 1970s home technologies like the Atari VCS/2600 (1 megahertz, 2K ROM) or an Atari 400 computer or a Commodore VIC-20 (1 megahertz, ~8K RAM). That gives you a rough idea of how "weak" t

      • by SBrach (1073190)
        No you're wrong, here is a hint;

        peta
        tera
        giga
        mega
        kilo
        hecto
        deca

        deci
        centi
        milli
        micro
        nano
        pico
        femto
        • Ooops. 1 MHz = 1 million hertz.

          I wasn't really thinking. I was hung-up on the base 2/base 10 argument (which frankly pisses me off). It seems the great-grandparent believes 1 MHz == 1024 x 1024 hertz == 1,048,576 hertz which would not be correct.

          • by MrKaos (858439)
            I think the binary [wikipedia.org] measure might clear up the differences.
          • I see no indication at all that he beleived 1 MHz == 1024 x 1024 hertz. You made a mistake and misunderstood what his original post was trying to address. No shame in that...many of us have done the same from time to time. However, just admit your mistake instead of making up stuff to cover your ass.

            • >>>I see no indication at all that he beleived 1 MHz == 1024

              QUOTE: "The Apollo's Guidance Computer was a snail-like 1.024 MHz" led me to think the poster though clock speeds were measured in base 2.

              >>>cover your ass

              Thanks for the offer but I'm already wearing Stafford underwear and pants. You can keep your ass-covering.

      • Re: (Score:3, Informative)

        by Bakkster (1529253)

        Only RAM or ROM is measured in base 2, due to the innate binary nature of computers (they measure in multiples of 256, 512, 1024, 2048, et cetera). Clock speed is independent of that and measured in base 10 such that 1 megahertz == 1000 hertz.

        Absolutely correct. Hertz is an SI unit. Just as 1km = 1000m, so does 1kHz = 1000Hz.

        http://en.wikipedia.org/wiki/Hertz

    • I assume that by "FAIL", you're referring to that apostrophe that shouldn't be there.
  • Amazing (Score:2, Funny)

    When you consider how many shitty programmers there are now who use variable names that take up nearly 2k.
    • by gbjbaanb (229885)

      but my objects use more than 2k for their vtable entries, memory guard blocks and garbage collector references before I even start writing any of my code, you insensitive clod!

  • by bAdministrator (815570) on Tuesday July 21, 2009 @08:23AM (#28768307)

    http://embedded.com/columns/technicalinsights/218401508?pgno=1 [embedded.com]

    "Calculating trajectories for Apollo program"
    "Jack Crenshaw describes what he and team members did to research trajectories for the Apollo missions."

  • I found a fascinating audio explanation of how the guidance computer deals with deviation [nyud.net]. Well worth the listen (only a couple of minutes long).
  • I've watched these videos on the different engineering challenges faced by the Apollo program well before this 40th anniversary... but now's as good a time to revisit them as any:

    http://www.videosift.com/video/Moon-Machines-The-Navigation-Computer-1-5 [videosift.com]
    http://www.videosift.com/video/Moon-Machines-Command-Module [videosift.com]
    http://www.videosift.com/video/Moon-Machines-Space-Suits-1-5 [videosift.com]
    http://www.videosift.com/video/Moon-Machines-Lunar-Rover-1-5 [videosift.com]
    http://www.videosift.com/video/Moon-Machines-Saturn-V-1-5 [videosift.com]

  • by 140Mandak262Jamuna (970587) on Tuesday July 21, 2009 @08:38AM (#28768405) Journal
    In those days we had to program the computer the size of a school bus strapped to our backs while trudging through the waist deep snow, for five miles one way, uphill both ways, without mittens while the politicians were whipping us yelling, "you don't want the Ruskies to win, do you?", those were the days boys. Now these young whippersnappers are using laptops with 8 Gigs of RAM and still could not write a simple javascript engine with a just in time debugger without creating a buffer overflow vulnerability while fed very long unicode strings.... bah... now get off my lawn.
    • I never understood you people who loved your giant, bulky VAX machines and insisted I should use one to get "real" work done.

      Bah humbug! I did all my work on an Atari 800 (and later a C-64) which was only slightly bigger than one of today's keyboards. Nice and portable and all you needed was a standard TV to display the code/results.

      • I loved my VAX 11/750 - especially when the DEC commissioning engineer forgot to screw the feet of the disk pack unit to the floor and we both had to make a grab for it when it 'took off' across the computer room as soon as the system test started a sequence of random head movements.

    • by mcgrew (92797)

      In those days we had to program the computer the size of a school bus strapped to our backs

      You had laptops? I'm jealous!

  • by Half-pint HAL (718102) on Tuesday July 21, 2009 @08:40AM (#28768419)

    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.

  • Considering how simple by today's terms the computer was, plus the fact that it couldn't handle all the input anyway leaving the astronauts to essentially land the craft without any assistance. Not to say the computers didn't help with all the other extraordinary feats that were accomplished, but it goes to show that relying solely on computers especially in essentially untested conditions can be dangerous and foolish.
  • Atari 2600 (Score:2, Insightful)

    Wow essentially man landed on the moon with the computing power of a 2600.
  • !opensource (Score:4, Informative)

    by NevarMore (248971) on Tuesday July 21, 2009 @08:43AM (#28768447) Homepage Journal

    Shoehorning a piece of software into an "open source" angle really doesn't do any justice to open source or the software you're writing about.

    Instead of writing about open source software, write about good software that happens to be open source. If there is really good software where we know something about the code, like this Apollo software, then write about that. Discuss the collaborative development the engineers did, talk about the open source clone over at Google Code, but calling this "like opensource but only for NASA" is a massive distraction.

  • The History Channel was running space history stories all day Sunday, and in one of them about Apollo 11 (IIRC it was the show "Modern Machines") they said that a pocket calculator had more power than the 180 lb onboard Apollo computer. Integrated citcuts were very primitive, containing less than 100 transistors each (according to wikipedia).

    An XT was far more powerful than a pocket calculator. Your cell phone is more powerful than an IBM-XT.

    When they were landing on the moon, the computer was in the proces

  • by arkham6 (24514) on Tuesday July 21, 2009 @08:56AM (#28768581)
    1: Download the excellent sim Orbiter:
    http://orbit.medphys.ucl.ac.uk/

    2: Download the Apollo addon NASSP:
    http://nassp.sourceforge.net/wiki/Main_Page

    3: Download the virtual AGC/AGC software:
    http://www.ibiblio.org/apollo/

    4: ?????
    (Literally, spend hours trying to figure out how to fly, how to get into orbit, reading the detailed manuals, etc etc etc)

    5: Profit!
  • A lot of the problems we see with software today are due to the complexity of the hardware and software systems on which it is built. For the most part there are way too many variable to keep in your head at once to make sure they are all coherent.

  • by cluke (30394) on Tuesday July 21, 2009 @09:00AM (#28768625)

    Next time you think you have a tight deadline:

    "Final exam (for the advanced student)
    Prior to the descent of Apollo 14's LM to the lunar surface, a short in the LM control panel caused the abort switch to be triggered intermittently. If this actually happened during the landing, an abort would have automatically occurred (meaning that the lower stage of the LM would have been jettisoned and the upper stage would have blasted back into space). No landing would have been possible, and the astronauts would have faced the grave situation of needing rescue by the command module. It was therefore necessary, in the orbit or two before descent, for the some of the software designers to work out a fix for this problem that allowed a software lockout of the abort switch during the initial phase of the descent, but also allowed reenabling the abort switch later in the descent, in case the astronauts needed to use it. They did, in fact, work out such a fix. Your mission, should you choose to accept it, is this: Work out such a fix and send it to me. Remember, your fix can only involve erasable memory, since the core-rope containing the program cannot be altered. The fix needs to be keyed in at the DSKY by the astronauts. You have about 90 minutes to figure it out. Go!"

    http://www.ibiblio.org/apollo/index.html#Final_exam_for_the_advanced_student_ [ibiblio.org]

  • by Gyske (687847) on Tuesday July 21, 2009 @09:00AM (#28768627)
    A few years ago I read an excellent article on how NASA develops software for the space shuttle. It focuses on the development process. The article is quite long, but well written, informative and entertaining. Read it here: http://www.fastcompany.com/magazine/06/writestuff.html?page=0%2C3 [fastcompany.com]
  • Let's give praise for the great game simulating the lunar landing experience. Running out of fuel was such a sick feeling - watching your module helplessly smash into the surface.

  • I had a base 2K of RAM and a 1 mhz processor on my Sinclair ZX81 too, and I could play lunar lander (with what we called graphics back then on the whopping 16K expansion).

    • And they should have used less, considering reality did all the graphics for them.

      I always said it, application programmers have it better than game programmers. They get all their flashy graphics and environment for free. :(

    • by mcgrew (92797)

      The module only had 2k, half of the Timex's base memory, and no expansion pack. Dod you write it yourself, or buy it?

  • by BCW2 (168187)
    My father in law worked for Boeing in the late 60's and was part of the team of Engineers that built hardware and coded for the LEM. His first experience with code.
    One of his later jobs was QA for every line of code in the fire control computer for Seawolf.
  • Its fascinating how history repeats itself. I mean 40 years after the Wright Brother's first flight, the US government was still trying to recreate the feat.
    • Huh? The first Wright Brothers flight was 1903. According to wikipedia, "Heavier-than-air aircraft were first used in the military in the Italo-Turkish War", and that war took place in 1911-12.

      http://en.wikipedia.org/wiki/Military_aviation [wikipedia.org]

      Unless you mean they were unable to build an exactly identical plane from blueprints and get it to function, which wouldn't be a surprise since the blueprints wouldn't account for any variations that were introduced (accidentally or intentionally) when the Wright Brothers

  • In 2K in 1969!

    But in the 21st century microsoft have decided that a 1Ghz processor (thats 1000 times faster than the apollo CPU) in a netbook is not enough for poor Windows 7 to run more than 3 applications at a time. Gimme a friggin break! FFS , what kind of idiots are calling themselves systems programmers these days.

  • Well Hal, once upon a time...
  • The part that is most amazing to me is that the software was was spitting errors [abc.net.au] the whole time the LEM was landing. It seems like that would make it awfully difficult to concentrate on landing when you're basically getting out-of-memory exceptions the whole way down. I think that they wound up landing with something like 17 seconds of fuel left. It's really a wonder we made it as far as we did on that technology.
    • by 0123456 (636235)

      It wasn't out of memory exceptions, it was 'failed to run all tasks in their timeslice' exceptions. The software was designed to use 95% of the processing power in the worst case, and would have run happily, but NASA procedure was to enable the rendezvous radar prior to landing in case of an abort. The simulator it was tested on didn't fully simulate that radar, so they only found out that processing the extra radar data took more than the spare 5% of CPU time when it was 'tested' for real on the first land

  • There is one dude who built a working replica of the AGC and let it run the original flight software:

    http://klabs.org/history/build_agc/ [klabs.org]

    Lots of good information in those PDFs. Also very interesting that the AGC already ran some simple real-time capable multitasked OS. Simple, but still with a lot of modern ideas in it.

  • I had the pleasure to meet John Schinas, one of the programmers tasked with LEM landing and orbital code and the entrepreneur behind a company my wife had the pleasure to work for. An absolute genius.

    As I hear the story, he was given the task to write the code and was asked how many team members he'd need, he demurred, saying that he'd just do it himself. Program managers said it was impossible for a person to write 100,000 lines of machine code without error, and after he did it, nevertheless tasked back

  • Word != Byte (Score:2, Interesting)

    by jspenguin1 (883588)
    The Block II AGC had 2,048 WORDS of memory, not 2,048 bytes. A word on the AGC is 15 bits + 1 bit parity. So, the AGC actually has 4 KiB of erasable memory, or 3.75 KiB not counting parity.

    Also, keep in mind that this was just data memory, not program memory. A lot of early 8-bit micros loaded their programs into RAM from cassette or paper tape, so the total memory available for data is reduced.

    The AGC had 36 KWords of read-only program memory which was woven into core-rope memory by the same "little old la
  • While the article was good, many people will want likely want to read NASA's online book about computers in space travel, covering computers back in the Gemini program through to the space shuttle and unmanned probes. Fascinating stuff:

    http://history.nasa.gov/computers/contents.html [nasa.gov]

  • ROM (Score:3, Informative)

    by sjames (1099) on Tuesday July 21, 2009 @03:13PM (#28773413) Homepage

    Just calling it ROM doesn't quite convey the level of tech. It was also known as little old lady memory because it was literally copper wire and ferrite cores woven together by little old ladies.

"I got everybody to pay up front...then I blew up their planet." "Now why didn't I think of that?" -- Post Bros. Comics

Working...