Apollo Guidance Computer Activities

AGC - Conference 2: Jim Miller's introduction

Apollo Guidance Computer History Project

Second conference

September 14, 2001

 

Jim Miller's introduction

JIM MILLER: I'm not sure, exactly, how much of what to cover. But let me cover some things briefly about how I got there and what I did.

I evaded the draft during the Korean War by going off to graduate school and staying in college. Got a Masters degree in electrical engineering. That was as long as I could postpone being in the service. And I entered the service in 1956, Air Force. And I was assigned to a place called Cape Cana-VER-al (or something), I had never heard of. John Daly, who read the news on TV, hadn't heard of it either and that's how he pronounced it.

Within a week or two of being there, I was out at the Cape and watched a Redstone launched at night. And I became completely hooked into the idea of rocketry and guiding them. And I stayed in the service a couple of years and came up to MIT to get a doctorate in a program Doc Draper ran called Instrumentation, which was a combination of academic disciplines - multi-departmental.

I started writing code for computers in about 1957. We had a digital computer down there, and eventually I got into programming it for whatever reason. And in writing my doctoral thesis, I got into both celestial mechanics and computers because I wrote on the guidance of a low-thrust rocket vehicle from Earth orbit to lunar orbit. A thousand-pound vehicle with a one-pound engine if I recall. It takes a long time to build up the energy you need to get out to the moon. In the process, I learned a lot about celestial mechanics and trajectories and about writing code for computers.

Hugh Blair-Smith adds:

If this is what I remember getting involved in, the proposed engine would have one quarter of a pound of thrust. There was no combustion; instead, a tank of liquid hydrogen would be bled into an expansion chamber where an RTG (Radio-isotope Thermo-electric Generator; Cobalt 60, perhaps?) would pass an arc through it, boiling it so that gaseous hydrogen would shoot out the nozzle. The designers of this wonder called it the Mouse-Fart engine, and were alleged to have sent a letter to the U.S. Bureau of Standards, solemnly requesting a calibrated mouse. If they were the Germans of Huntsville, they might have achieved an elegant bilingual pun by naming it "Mausfahrt." Anyway, it fell to me to write a simulation of its flight, rendering Jim’s equations in MAC to run on the world’s mightiest IBM 650, our vacuum-tube mainframe prior to 1962, for which the Lab had cut a deal with IBM to add some special experimental instructions. This was the only soup-to-nuts serious MAC application I ever wrote, and it was wonderfully educational on the subject of selecting suitable dt values in the numerical solution of differential equations. This exercise also gave me solid grounds for my belief that, as a language for engineers modeling systems in 3-space, MAC has never been surpassed, and has been equaled only by Intermetrics’ HAL/S -- which Jim was involved in.

JIM MILLER: I really have to say the computer part of it appealed to me more than any of the other parts, although I liked celestial mechanics. When I finished my work, Doc Draper had, through his incredible influence, landed a sole-source contract at the laboratory, Instrumentation Laboratory, where I was based, to do the Apollo Guidance System in late 1961. With Bob Stern, Dick Battin, and Hal Laning, we were a group of what I think was called Advanced Guidance to work the Apollo problem. There were other people on the Polaris side that were busy as well. But we started without my really having any contact with those folks.

I worked on round-trip and abort trajectories. But later, Hal Laning had written an executive and an interpreter for a computer, proposed to be the onboard computer for Apollo, which had originally been intended for a small spacecraft which was to fly to Mars, take one photograph, and come back and drop it somewhere where it could be retrieved. It never happened, but that computer, which was a 15-bit computer of all things, with three bits for op-code and 12 bits for address, was very nicely designed. It had eight op-codes and 4k of memory, of which I think 512 words were erasable and the rest was fixed (read-only) memory.

Hal had written this executive that dispatched tasks on a priority basis and an interpreter, which was something I had never even thought of or heard of. Hal was probably not the first to do that but he was a real pioneer in a lot of ways. He had written this code. And I started reading it and trying to make it better, which was difficult. But it occurred to me that one of the things that we were going need is something that simulated that computer, because we didn't have an actual computer to run. And if we had, it wouldn't have been designed for debugging, and so forth.

So I got, eventually, into the game of writing a computer simulator for Apollo for what we called then, the Mars Computer. That developed over time into a full simulation of the space craft, the guidance computer, all of the hardware that interacted directly with the computer or that controlled the space craft, and even with the crew, including where the fixed stars were and all the sextant operations and so forth. And I ended up in the library developing a star catalogue which, as far as I know, was the one that went to the moon - I don't really know.

The group developed into a half a dozen people or so on different aspects of writing the simulation. We were racing to get it ready in time for Alex's 202 software. I say Alex's because he was in charge of it and bore the brunt of all the stress. The other folks just took life easy. But we were trying to keep up with their needs for the simulation.

We had, at that time, moved from the IBM 650 powerhouse in the Instrumentation Lab up to a Honeywell 800, which was designed to do insurance programming - it had lots of tape drives. A fun machine, but it wasn't quite fast enough. So we eventually got a faster model, and then we moved on to IBM 360 machines.

I remember one day we had two 360 model 75s, just about the world's fastest commercially available machines other than maybe some of the Crays. We had fixed it up so each one had two big 2314 disk arrays. The 2314 had the same footprint as this [big] table. It had eight multi-platter disks in it. Nine actually, for loading up another one while the other eight were in use.

As I recall, we had two of those connected to each machine. And, because of cable restrictions and distance of the machines, we had a fifth one that was sort of half way between the two machines with a cable running from each, so we could share the disk. I remember standing there thinking, we have a gigabyte of storage, between these two machines. I thought that was, at the time, absolutely mind-boggling. Not nearly as mind-boggling as what's happened since then.

DAN LICKLY: You should point out a megabyte on the 75 costs about a million dollars.

JIM MILLER: The machine that was ordered, that 75 that I initially ordered had a half a megabyte of memory. And it had four 2311s because the 2314s weren't available yet. I have forgotten how small the 2311s were.

__: I think they were 28 megabytes.

JIM MILLER: They were small. And the operating system used up, I think, all of the disk space and all of the memory, leaving almost no space for anything else. But memory was so expensive. We had to buy more. We went up to a whole megabyte.

I remember later when I was living in the Netherlands, I bought a megabyte of memory for the PC AT that I had bought. And I rode home from the electronics store on my bicycle with a megabyte of memory in my pocket. And I thought, gee, things have really progressed. Today, the 60 gigabyte disk that I have on my machine at home fits in my shirt pocket. I just can't believe what's happened.

And it is very difficult for me, having even been there, and I think for people who weren't there almost impossible, to imagine the difficulties that people had, dealing with the machine, its 15-bit word, and lots of restrictions on expanding it even though the technology was available. The reliability requirements prevented much happening that would take advantage of what could have been done. Trying to squeeze enough software to fly to the moon and back into what became, I think, 36K words of fixed memory and 2K of erasable memory. Squeezing that out of a 3-bit op-code and a 12-bit address took some funny shenanigans which caused a lot of debugging activity. But I don't think anybody can imagine that the kinds of problems that were faced trying to squeeze a huge amount of software into that tiny, tiny machine.

After getting the simulation group going (and there are lots of war stories about that, probably of little interest to most, and known by the folks here), I foolishly accepted the responsibility of becoming the leader of the mission program for the first lunar module. This was after the Apollo fire. There was a long hiatus of flights, during which time systems were upgraded to the Block II level. I remember the long, long time it seemed that Alex was sweating and working on the 202 software. (The 204 software, intended for the spacecraft that had the fire, never flew.)

I went to Alex, and I said, "Alex, I don't know anything about the mission software. I've been doing the simulation and trajectories and I know a lot of stuff cold. But I don't know anything about a mission program. What do I do? What did you do?" He says, "Well, anytime somebody comes to you and asks you what he should do, make something up." (Laughter) I said, "You're kidding?" He said, "Absolutely not. If they come to ask you, they don't know. And they know better than anybody else. So if they don't know and you don't know, you've got to make something up."

He was exactly right. It worked. You just had to not get stuck on something. You had to take some path. And probably not all of the things that either of us made up were exactly right, but certainly, in my case, the method worked. If it didn't work, you found out about it. And then somebody would come back and say, "This didn't work. Now what should I do?" And you'd make something else up. And that usually worked. Because then you knew. It was 'seat of the pants' a lot of the way.

Hugh Blair-Smith adds:

Jim mentions the original purpose of the series of "Mars" computers, which reminds me that nowhere in these sessions have I heard anybody mention the reason for implementing in core-transistor logic. It was ideal for a long trip like Earth-to-Mars, because its variable speed would save power during the long dull mid-course period without losing the machine’s state or requiring any save-and-reload cycles. That is, the machine’s entire state was held in magnetic cores, and instead of driving the logic at a state-of-the-art 200 KHz or so, you could crank it down to 20 Hz, or 0.01 Hz, or whatever. If performing one instruction per day will do the job, why not save the power?

Herb Thaler's introduction


site last updated 12-08-2002 by Alexander Brown