A few years after graduating from Earlham College with a BA in Mathematics, Margaret Hamilton soon found herself in charge of software development and production for the Apollo missions to the Moon at the MIT Instrumentation Laboratory. Her work was critical to the success of the six voyages to the Moon between 1969 and 1972.
In a male-dominated field, Hamilton became known as the “Rope Mother,” which was an apt description for her role and referred to the unusual way that computer programs were stored on the Apollo Guidance Computers. Like all digital computers, they stored information in binary arithmetic—as sequences of ones and zeros. The computer had two kinds of memory. The first could be written to and read from during the machine’s operations—what we now call RAM. The second was read-only—what we now call ROM. Modern memories store these digits on silicon chips, but in the 1960s the preferred way to store digits was by magnetizing tiny, donut-shaped pieces of material called cores. Each Apollo computer contained 4 kilobytes of read-write memory and 72 kilobytes of read-only memory. For the read-only memory, the cores were threaded with a series of wires. If a wire passed through the core it sensed a binary one, and if the wire bypassed the core, a binary zero. The cores were laid out in a long sequence, with the wires snaking through them—the assembly was called a core rope.
Weaving the rope was a tedious process. The programs were developed on a large computer located at the MIT Lab, then translated into a code and punched on to perforated tape. This was then fed into a machine that positioned the cores for proper threading. Most of the employees who threaded the ropes were women, chosen for their manual dexterity. It is not hard to see that getting the programs right was a high priority. Once the ropes were woven it was very difficult and time-consuming to identify and fix an error. It is ironic to call these programs software, since making a change was as difficult, if not harder, than modifying a hardware circuit.
Getting the programs right was the responsibility of Ms. Hamilton, the “Rope Mother.” It was precise work, and it required documenting every decision and every line of code with a full explanation of what it did and how its actions affected the rest of the program. The enormous quantities of paperwork required were typical of the way the entire Apollo program was managed.
In the 1960s there were few formalized guidelines about how to write, document, and test complex software. But the Apollo software worked, and was remarkably error-free. Historians disagree about the cause of the famous computer alarms that nearly caused the Apollo 11 landing to be scrubbed at the last minute. But we do know that the software developed by Hamilton’s group allowed the overloaded Lunar Module computer to restart, shed unimportant tasks, and guide the astronauts to a safe landing. It is worth remembering that moment today, when we read of computer projects running over budget or being delivered with fatal bugs.
Despite the laborious task, Hamilton and her team kept a sense of humor. She called the women who wove the ropes LOLs or “little old ladies.” Mysterious but minor bugs in the programs were called FLTs or “Funny Little Things.” And you debugged a program by the “Auge Kugel” method. That is the German phrase for eyeball. In other words, you looked at the listing and tried to read it as if you were a computer. Some might not think that was proper engineering practice, but it worked.
Our Museum acquired a number of Hamilton’s papers, including a selection of the program listings shown in the now-famous photograph of her. Recently I had a look at the print-out, which led me to think of another acronym, of obscure origins: MEGO or “My Eyes Glazed Over.” The programmers worked in an obscure, and little-recognized corner of the massive effort that was needed to fulfill President Kennedy’s challenge. I salute them, and give credit to the “Rope Mother” who guided that effort.