Tech

A DIY Programmer Made a New Game for the 50-Year-Old Apollo Guidance Computer

“The AGC wasn't just an important part [of Apollo]: it was the core of the entire ship, without which the entire program wouldn't have been possible.”
​The Apollo Guidance Computer. Image: NASA
The Apollo Guidance Computer. Image: NASA

To celebrate the recent 50th anniversary of the Apollo 11 mission, you can play a brand new game for the computer that put humans on the Moon, courtesy of programmer David Given. That is, if you can track down a working machine.

As he outlined in a blog post and a video demonstration on Saturday, Given designed a lunar landing game using the same code that enabled the real lunar landings—the software of the Apollo Guidance Computer (AGC). The code will run on a real AGC, though since the machines are now scarce relics you’re probably better off using an AGC emulator that recreates their inner workings on modern PCs.

Advertisement

Developed at MIT, the AGC was an instrumental part of the Apollo navigation systems. The 70-pound machine (compact for the 1960s) also represented major advances in computer science, and pioneered the use of integrated circuits. There’s currently only one functional AGC in the world, which was recently restored, but enthusiasts like Given are still working with the AGC’s aging code and keeping it alive.

Given worked with an emulator of the AGC run by ibiblio.org, a database created by the University of North Carolina at Chapel Hill. The emulator mimics the original machine on modern computer hardware, and generates code that can be read by the actual Apollo computers.

According to Given’s blog, this is how to get the game working on original hardware: “First, download and decompress the binary. Then hand-weave into core rope memory and assemble into an AGC module. Locate a running AGC and insert it into the common-fixed bank 2 slot. Attach a set of LM [lunar module] simulated peripherals to the AGC and power on.” Super easy!

The story of these AGC units are often retold with an emphasis on their wimpy processing power compared to modern smartphones. While this is true, as Given worked on writing code with the AGC emulator, what stuck out to him was that it was still “recognizably a modern computer” despite the technical limitations of its era.

“The AGC wasn't just an important part [of Apollo]: it was the core of the entire ship, without which the entire program wouldn't have been possible,” Given said in an email.

Advertisement

“The fact that this was designed and implemented by people who hadn't had the benefit of 50 years of computer and software research and were basically making it up as they went along is simply miraculous,” he added. “And it was done so well!”

For instance, Given noted that the AGC was capable of piloting Apollo spacecraft through almost all phases of its voyage—and for the most part it did. While the Apollo lunar module crews opted to manually guide the spacecraft to the surface, the AGC was equipped to land the Eagle (and its successors) automatically, if necessary.

The AGC also proved remarkably resilient to glitches and hiccups. “Famously, the computer failed during Apollo 11's approach, but the software was so robust that it simply restarted and picked up where it left off,” Given said.

He called it “an injustice” that Don Eyles, the MIT engineer who led the development of AGC’s lunar landing software, has not received the same recognition as the Apollo 11 crew.

Fortunately, an online community of AGC enthusiasts have been raising the profile of this essential component in Apollo’s history. Some, like Given, have experimented with virtual AGC emulators, but a team of enthusiast engineers unveiled a restored AGC this month as well. The project was documented by engineer Marc Verdiell on his YouTube channel.

Ken Shirriff, one of the collaborators on the project, took the inevitable next step—mining bitcoin on the restored AGC.

“Implementing the Bitcoin hash algorithm in assembly code on this 15-bit computer was challenging, but I got it to work,” Shirriff wrote in blog post on July 8. “Unfortunately, the computer is so slow that it would take about a million times the age of the universe to successfully mine a Bitcoin block.”

It’s probably fair to say that Eyles and his team did not foresee that their computer, which helped land six human crews on the Moon, would strain to process cryptocurrencies or be repurposed as a lunar landing game a half-century later. Even as the Apollo Moon landings recede into the past, its trailblazing computer is finding new applications in the present.