Contents

What is "Luminary"?

AGC software family treeLuminary is the program which was run on the Apollo Guidance Computer installed in the Lunar Module (LM).  In order to be loaded into the AGC—actually, to be converted to the "core ropes" within the AGC—it was necessary to "assemble" Luminary's source code into binary machine language, using a computer program called YUL.  In the context of the Virtual AGC project, of course, the process is somewhat different:  Luminary source code is assembled by the yaYUL program, and then loaded into the yaAGC simulation.

The figure at left (click to enlarge) concisely depicts the relationships among the early LM AGC software and the relationship with the CM's AGC software, while the table to the right (click to enlarge) depicts the various versions of the software, at least for Apollo 5-14, though it has unfortunately been roughed up somewhat by optical-character recognition processing and so its contents can't be fully trusted

Known Software Versions

Summary of the Versions Available Here at this Site

All Versions, in Gory Detail, Whether We Have Them or Not

Mission LM Number Mission
Type
LM Program Version Source Code
Mission-specific documentation
What We Know About It, in a Nutshell
N/A
N/A
N/A
Retread
TBD

N/A
Keep watching this space.
N/A
N/A
N/A
Aurora
12
As colorized, hyperlinked,  HTML

or

Reduced-size  scanned JPG
(100MB)

or

High-quality scanned JPEG 2000
(500MB)
N/A
Don Eyles, one of the AGC developers who you may know as the hero of Apollo 14, has contributed the hardcopy of this program from his personal collection.  We have had it scanned by archive.org, and Mike Stewart has generously financially-sponsored the scanning.  So, thanks Don and Mike!  As usual, we provide it here in the form of reduced-size (but therefore reduced-quality) images for easier access, but the original scans in their full quality are still available in our Virtual AGC collection at archive.org.

I suppose I should mention that if page 52 or 70 of the reduced-sized images look a little weird to you (oh, you conspiracy theorists with your Photoshopping theories!), I should mention that those were places where there was a paper-change on the printer, and I simply glued two partial pages together to make it look pretty.  You can look at the high-quality scans to see all of the pages in their original, un-Photoshopped glory, if you like.  There are also a couple of pages (622 and 623, I think), which are missing right now, but which archive.org should add within a couple of days of when I'm writing this.

Now before you go all elitist and thumb your nose at Aurora just because it never flew on an actual mission (even an unmanned one), let me tell you that from this project's standpoint it is quite a terrific find.  For one thing, it employs unique flavor of the AGC programming language; although it is a  Block 2 program for a Block 2 computer, the language version precedes its final form as used in the later software versions we have available, requiring changes to the assembler just to assemble it.  Technically, it was targeted at the "BLK2" software architecture rather than the "AGC" software architecture.

More significantly, it was the last version we know of to incorporate the full range of AGC testing software that had been created.  In actual mission software, most of this testing software was removed due to size constraints, and due to the fact (I presume) that most of the tests were more-appropriately done in the lab, as acceptance tests, rather than in space where nothing could be done about the failures anyway.  Why do we care about that?  Well, how do you think we test the AGC simulator anyway?  Pre-Aurora, our only choice was to roll our own tests, which the original AGC may not have even been able to pass for all we know.  But now that we have Aurora?  Well, we haven't yet converted it to source code, and couldn't assemble it yet without modifying the assembler to accept this flavor of assembly language anyway, so it's too early to say.  But once we do that, we hope that some lingering bugs in the simulator will be ferreted out, as well as to give us additional confidence in the simulator.  It's also a boon to developers of hardware AGC simulations, like Mike (who sponsored this), because they would like to validate their own simulators just as we would.

Finally, there's something of a mystery associated with Aurora 12.  The hardcopy we have of it is from November 10, 1966, and Aurora at the point should have had a version number in the 80's.  How could it be version 12?  Perhaps one day we'll know!
Apollo 5
LM-1

Sunburst
120
As colorized, hyperlinked,  HTML

or

Reduced-size  scanned JPG
(200MB)

or

High-quality scanned JPEG 2000
(500MB)
GSOP (R-527)
"Apollo Experience Report—Guidance and Control Systems: Lunar Module Mission Programer"
Apollo 5 was an unmanned mission to test the LM, and as such it had a working AGC.  Due to software bugs, it was necessary for ground controllers to deactivate the AGC at certain points in the mission.

The "Programer"—actually some sources spell it "programer" and some "programmer"—was the robotic gadget that was the stand-in for the crew.

Don Eyles provided the hardcopy for our the scan we present here.  It was scanned by archive.org, which was generously sponsored by Mike Stewart.  The original printout unfortunately has some problems in the vicinity of pp. 820-830, but we naturally correct those in our transcription.
Apollo 9
LM-3
D
Sundance
306

GSOP (R-557)
Flight Plan
Here is some info from James Kernan, one of the LGC developers, in response to my question about correct versioning of Sundance:

Sundance 306 is correct.  I was the "rope mother" for Sundance-Apollo 9.  ...  Sundance was not only the Apollo 9 LM flight program, it was also the development bed for the Lunar orbit and landing software.  At some point we created a version and called it Luminary.  I think the last few revisions of Sundance were devoted to disabling crew access to the Lunar orbit and landing software that was present in the build.

Jim also tells me that a copy of Sundance 306 may still "be in the building".  I'm not certain which building he's talking about, but it's nevertheless interesting news that a copy of the program does exist somewhere.
Apollo 10
LM-4
F
Luminary 1
069/2
As colorized, hyperlinked,  HTML ... soon, perhaps!

or

Reduced-size  scanned JPG
(200MB)

or

High-quality scanned JPEG 2000
(730MB)
GSOP (R-557)
The version we have here is from Don Eyle's private collection, as scanned by archive.org, and financially sponsored by our Onno Hommes.

Actually, though, it may not be quite the version actually flown on Apollo 10.  As it says right at the top of every page, it is REVISION 069 OF AGC PROGRAM LUMINARY BY NASA 2021112-011, whereas it is known that the version flown on Apollo 10 was Luminary 69 Rev. 2, 2021112-031, which was released five months later.  Such last-minute changes were often the result of ephemeris upddates or other time-sensitive data that had to be specific to the launch window, but we don't know this for sure at the moment.

Regardless, this is the closest thing to Apollo 11 mission software we have, or are likely to find, so beggars can't be choosers!
Apollo 11
LM-5
G
Luminary 1A
099/1
As colorized, hyperlinked,  HTML

As scanned page images (very big!)
Erasable pad loads

Excerpted LM Systems Handbook

The 1201/1202 alarms

The Apollo 11 Adventure

Operational Data Book
Crew Debriefing
Flight Plan
Page images have been taken from a hardcopy from the Charles Stark Draper Historical Collection, MIT Museum, and then converted to source code by a team of volunteers.

Honor Roll

Organizational honors

Massachusetts Institute of Technology / MIT Museum
Building N51, 265 Massachusetts Avenue
Cambridge, MA  02139
web.mit.edu/museum/


Individual honors
  • Deborah Douglas, the Museum's Curator of Science and Technology, who conceived the idea of making this material available to us, and without whom we had literally no chance of obtaining it.
  • Paul Fjeld, for digitizing the hardcopy.
  • (In alphabetical order) Fabrizio Bernardini, Hartmuth Gutshe, Onno Hommes, Jim Lawton, and Sergio Navarro, for converting the page images to source code.
  • Steve Case and Dawn Masuoka for helping in proofing the executable binary.
  • ... and those whose names I do not know at the Charles Stark Draper Laboratory and NASA who allowed us to do this.

The MIT Museum copy is dated 14 July, 1969, which seems odd at first glance, since it would be far too late to actually have been included in the Apollo 11 mission.  Hugh Blair-Smith speculates that this is the date of the printing rather than of the program build, and that seems plausible. 

One of the original AGC programmers, Mr. Allan Klumpp, also has a copy.  Allan's copy is awaiting scanning to be made available online at klabs.org, which we are eagerly anticipating.  A comparison of memory-bank checksums ("bugger words") has been made between the MIT and Klumpp listings (thanks to Paul Fjeld and Allan Klumpp), and it has been found that these two listings have a small difference in memory bank 6.  In other words, they are not precisely the same!  So one or the other of these is not the software that was actually flown. 

Mr. James Kernan, another of the original AGC developers, has sent us some facts that may explain the confusion, if not to tell us which version was actually flown.  I'll let Jim tell it in his own words:

I was an employee at Draper Lab, and was in charge of the Lunar Module LGC computer programming group and also in charge of Assembly Control for the flight software during the Apollo 9-12 software development period.  The latter responsibility included reviewing all proposed alterations to the flight software and the YUL assembler inputs.

I can explain the confusion over the Luminary version that flew on Apollo 11.  We were aiming for Luminary Revision 99 as the Apollo 11 Lunar Module flight software.  There was a tradition (or rule) that the flight software version should have no revision, so we renamed Luminary Revision 099 as Lum99 Revision 0.  At the last minute, Dan Lickly, our chief engineer, appeared with ephemerides updates and it took two tries to get it right.  The result was that we created Lum99 Revision 1 and Lum99 Revision 2.  We made a no-change version of the later and named it Lum99R2 Revision 0.

The tapes and ropes were made from that.   That is my recollection.  Unfortunately, I did not have the foresight to keep a printout of the flight version.
Apollo 12
LM-6
H
Luminary 1B
116

Excerpted LM Systems Handbook

Operational Data Book
Flight Plan

Apollo 13
LM-7
H-2
Luminary 1C
131
As colorized, hyperlinked,  HTML

As scanned page images (very big!)
GSOP (R-567)
Pad loads for LM-7

Excerpted LM Systems Handbook

Operational Data Book
Mr. Paul Fjeld has also told me (or speculated) that the listing from which these scans were created was originally preserved by Don Eyles (one of the programmers), and then copied/reduced by Hugh Blair-Smith (whose name appears frequently on this site), via James Kernan (another of the original programmers), for David Craig (whose ex libris appears on p. 2 of the scan, and who is apparently a great collector of Apollo artifacts).  Somehow it was passed to Mr. Gary Neff, who created the scans, which he gave back to Mr. Craig, and which were then placed online at MIT's History of Recent Science and Technology website.  Unfortunately, the quality of the page images was somehow greatly reduced in the latter steps, and the high-quality page images that Mr. Neff produced were discarded in the process.  MIT's HRST website has subsequently disappeared, but eventually was mirrored elsewhere on the web, and is partially mirrored here.  However, we choose to present this listing as a set of individual page images rather than as a single gigantic PDF file you'll find elsewhere on the web.  (Whew!  "Many hands make the work Luminary.")  By the way, Mr. Neff also kindly provided me with a replacement for a page which is garbled in the MIT version, and consequently is probably available only here.
Apollo 14
LM-8
H-3
Luminary 1D
178

Excerpted LM Systems Handbook

The solder ball

Operational Data Book

Apollo 15
LM-10
J-1
Luminary 1E 210


As colorized, hyperlinked,  HTML (hopefully soon!)

or

Reduced-resolution  high-contrast black&white PNG
(300MB)

or

Reduced-resolution  scanned color JPG
(250MB)

or

High-resolution scanned JPEG 2000
(500MB)


LGC Data Cards

Program Notes

Delco Manual

GSOP (R-567)
Operations Handbook
Operational Data Book
Crew Debriefing

Flight Plan

Checklists
LM Familiarization Manual
Allan Klumpp (one of the AGC programmers) tells me that he believes Luminary 1D build 209 was used for these flights, and he was certainly in a position to know.  But it does contradict the statements in the A17 Flight Readiness Review (Fabrizio Bernardini tells me), which agree with the information to the left.  Unfortunately, Allan's copy of Luminary 209 is not available to us at present.

At any rate, the version we have is Luminary 210, from Don Eyle's collection, as scanned by archive.org, and financially sponsored by our Jim Lawton.  Thanks, Jim!
Apollo 16
LM-11
J-2
Program Notes

GSOP (R-567)
Operations Handbook
Operational Data Book
Flight Plan

LM Familiarization Manual
Apollo 17
LM-12
J-3
Excerpted LM Systems Handbook

Program Notes

GSOP (R-567)
Operations Handbook
Operational Data Book
Crew Debriefing

Flight Plan

LM Familiarization Manual
(The data in this table originally came from on-line sources, but in the form shown contains many corrections supplied by Mr. Paul Fjeld.  Please don't take this information as authoritative!)

Source Code and Binary

Both source code and (independently derived) binary code are provided within the yaAGC tarball downlod.  The files are contained within a subdirectory named after the software version (such as "Luminary131").  The more important files supplied are these:

Filename.agc
Source code for major subdivisions of the Luminary program.
MAIN.agc
Organizer which treats all of the other assembly-language files (*.agc) as include-files, to form the complete program.
Filename.binsource
Human-readable form of the Luminary binary executable, as an octal listing.
Filename.bin
Binary executable created from binsource (octal listing) file.

In other words, to create a Luminary binary executable rather than using the one provided with yaAGC (such as Luminary131.bin), one simply needs to assemble the file MAIN.agc.  Typically, if all files remain organized the way they are in the yaAGC distribution tarball, the sequence of steps for doing so (from a command-line prompt) would be something like this:

cd Luminary131
../yaYUL/yaYUL --force MAIN.agc >Luminary131.lst

The listfile (Luminary131.lst) so produced is a bit more manageable than the scanned version at MIT's website, in that it is a hundredth the size and you can perform text-searches on it.  The binary so produced, MAIN.agc.bin, should be byte-for-byte identical to the binary (Luminary131.bin) provided with the yaAGC distribution.  Therefore, the following Linux command should reveal no differences between the two:

diff -s MAIN.agc.bin Luminary131.bin

(Replace "diff -s" with "fc /b" in Windows.) 

Technically speaking....

A point which may not be completely appreciated is that Luminary131.bin was not created from the assembly-language source files.  Therefore, the byte-for-byte equivalence mentioned above actually has some significance.  In fact, both the assembly-language source code and Luminary131.bin (or Luminary131.binsource) come from separate readings of the original Luminary assembly listing scan, so their equivalence provides an important check on validity.  (See below.)  The file Luminary131.bin was created from the human-readable/editable ASCII file Luminary131.binsource by means of the program Oct2Bin, with the following steps:

cd Luminary131
./Oct2Bin <Luminary131.binsource
mv Oct2Bin.bin Luminary131.bin

Admittedly, few people are likely to perform any processing of this kind unless contributing a new version of the Luminary code to the Virtual AGC project.

Validation

Validity of the Luminary 131 Source Code and of the Binary (Apollo 13)

I believe that the core-rope image (which is what is needed to actually run the Luminary software in the yaAGC CPU emulator) I've provided for Luminary 1C (build 131) is 100% accurate.  If you're not willing to take my word for that, and if the discussion in the preceding section doesn't convince you, an extended discussion of proofing and validation of the core-rope appears in the description of the Colossus software.

Validity of the Luminary 099 Code (Apollo 11)

The Luminary 099 page images became available after the Colossus 249 and Luminary 131page images had already been converted to source-code files, and prior to any other missions becoming available.  The conversion technique was very abbreviated compared to that of Luminary 131, as follows:
The binary thus produced by yaYUL is supplied in the source tree and used for regression testing.


Last modified by Ronald Burkey on 2016-11-23.

Virtual AGC is hosted
              by ibiblio.org