Tuesday, 13 September 2016

Exploring the guidance computers used in the first Apollo flight missions

A man named Francois Rautenbach has recently become the owner of an Apollo Guidance Computer (AGC) from the Apollo missions. The type of computer he has was the first computer that was launched into space as part of the Apollo missions and Rautenbach argues that this was the first computer computer to ever use integrated circuits, or microchips (as opposed to mainframe computers with big paper tapes) and the first computer to have re-programmable software.

To be clear the exact computers in the videos below appear to be a test AGC with no memory modules - that may have been used to develop the software that eventually sent man to the Moon - along with the actual memory modules used in the first test flight of the guidance computer system in a rocket, flight AS-202. Both the development computer and the memory modules paved the way for the eventual moon landing in Apollo 11.

You'd be forgiven for thinking that something like this would be stored in a museum somewhere; but no, it was all scrapped and sold at auction to a man in Texas. After attracting some attention for selling some of the other pieces of computing and space history on eBay (even though it was all legitimate and his to sell) he went quiet and still remains anonymous. 

Rautenbach managed to befriend this mystery man and went over to see the AGC for himself. He even managed to get the memory modules shipped back to his native South Africa, where he has published a series of videos of him unboxing, reading and even taking X-rays of them. 

Video: The computer suspected to have been used to code the software for the Apollo missions

Flight AS-202

Flight AS-202 was the test flight for the guidance computer before the ill-fated Apollo 1 mission. The type of computer that these memory modules hold the software for were the guidance computers used in all the unmanned Apollo missions - a more sophisticated evolution of this computer was used for the manned flights. 

AS-202 launch.jpg
Flight AS-202 launched in August, 1966

The rocket (a Saturn 1b with Apollo service module and command module) reached its desired height, ran a few tests and then crashed itself into the sea where it was recovered by the US Navy.

Memory modules

Rautenbach has managed to extract the raw waveform data stored in the memory modules for flight AS202 and is currently preparing to release the full set for anyone to see. He and some of his counterparts are aiming to analyse these to get to the full raw binary code of 1s and 0s and to eventually reverse engineer the software on this computer. They previously achieved this and made a virtual emulator of another Apollo mission

Video: Reading the memory modules for flight AS-202

If you're not interested in the memory modules, at least watch the video from this point for footage from on board the rocket.

Rope memory and magnetic cores

Unlike computers of today, where information can be readily written, read and overwritten, these early computers tended to have read only memory (or ROM), because they were hardwired. Literally, in order to store any piece of software coding, the individual instructions had to be wired by hand by women in a factory with the aid of the machine seen below in the video. They even became known in MIT as little old lady memory or LOL memory because of their manufacturing methods! 

Video: construction of rope memory

After a little digging around on Google and in YouTube comments, I found out a few more things about this software: 

    • A bit is a single binary digit, so a single 0 or 1 - get it? 
    • Each instruction or word of the code (add, compare etc) is made up of 16 bits - most programs nowadays use 32 bit or 64 bit instructions
    • Each magnetic core (we'll get onto how these work later) can accommodate 128 individual wires, divided into 8 strands of 16 wires. So each core contains eight individual 16 bit instructions
    • As in the video, with 512 cores each containing 128 bits, each module contains 65,536 bits or 4096 instructions or 65 Kb 
    • Remember a single byte (B) is 8 bits (b)
    • In the video each module contains about half a mile of wiring to get 65 Kb. If you scaled that up to the 64 GB (Gigabyte) of memory you can easily find in SD cards, you'd need 4 million miles of wiring! 
    • 64 Kb = 8 KB, 64 GB/8 KB = 8 million;
      8 million x 0.5 miles = 4 million miles

The magnetic cores themselves are very interesting too. An electrical current of a certain polarity, causes the magnetic core to be magnetised in a certain direction, with the opposite current causing the opposite direction of magnetisation. These can be signified as 1 or 0. To change the magnetisation you change the polarity of the input current. 

If you then wire two cores together, you can create a system by which changing the magnetism in one core causes the opposite change in polarity in the other core i.e. you can transfer bits from one core to another in a circuit. 

If you scale that up and add in various extra complications that I don't understand anywhere near well enough to attempt to explain, you end up with a memory module for a rocket's guidance computer.

If you want to learn more about how computers used to work in those days, or would just like to amuse yourself with an old fashioned US military training video, take a look below: 

Video: Magnetic Cores I - properties

Video: Magnetic cores II - simple circuits


Post a Comment