swh:1:snp:79c9132b4a8931e989e318225e00e088ef6f383d
Tip revision: a8fa8f03b50a72034009439908f1339f4ce94518 authored by Ron Burkey on 06 June 2021, 12:28:21 UTC
Fixed more hyperlinks.
Fixed more hyperlinks.
Tip revision: a8fa8f0
Luminary.html
<!DOCTYPE doctype PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Virtual AGC Luminary Page</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Author" content="Ronald Burkey">
<link rel="icon" type="image/png" href="favicon.png">
<meta name="author" content="Ronald S. Burkey">
<script type="text/javascript" src="Header.js"></script>
</head>
<body style="background-image: url(gray3.jpg);">
<script type="text/javascript">
document.write(headerTemplate.replace("@TITLE@","Luminary — Sunburst — Sundance").replace("@SUBTITLE@","Lunar Module Flight Software"))
</script>
<h2>Contents</h2>
<ul>
<li><a href="#What_is_Luminary_">What is "Luminary"?</a></li>
<li><a href="#Known_Software_Versions">Known Lunar Module Software
Versions</a></li>
<li><a href="#Source_Code_and_Binary">Source Code and Binary</a></li>
<li><a href="#Validity">Validation</a></li>
<ul>
<li><a href="#Validity_of_the_Luminary_131_Source_Code">Validity
of the Luminary 131 Source Code and of the Binary (Apollo
13)</a></li>
<li><a href="#Validity_of_the_Luminary_099_Code_">Validity of
the Luminary 099 Code (Apollo 11)</a></li>
</ul>
</ul>
<h2><a name="What_is_Luminary_" id="What_is_Luminary_"></a><small><big>What
is
"Luminary"?</big><br>
</small></h2>
<a href="AGC-versions.jpg"><span style="font-weight: bold;"><img
alt="AGC software family tree" title="Click on the image to
enlarge." src="AGC-versions-thumb.jpg" style="border: 2px
solid ; width: 132px; height: 160px;" width="219" hspace="16"
height="360" border="0" align="left"></span></a><span
style="font-weight: bold;"><a href="a042186-051.jpg"><img
src="a042186-051-small.jpg" alt="" width="140" height="160"
border="2" align="right"></a></span><a href="a042186-033.jpg"><img
src="a042186-033-small.jpg" alt="" width="116" height="160"
border="2" align="right"></a><a href="R700-3-Table4-11.jpg"><img
alt="" title="Click to enlarge" src="R700-3-Table4-11-small.jpg"
width="171" hspace="16" height="160" border="2" align="right"></a><span
style="font-weight: bold;">Luminary</span> is name of the mission
software which was run on the Apollo Guidance Computer installed in
the Lunar Module (LM) in all of the later missions, Apollo 10
through 17. Actually, the title of this web-page and this
section, "Luminary", is a bit of a misnomer, since we don't limit
ourselves to just Luminary. We present <i>all</i> versions of AGC
software targeted for the Lunar Module that we can get our hands
on. The earliest such software had names like <b>Retread</b><b></b>,
<b>Aurora</b><b></b>, <b>Sunburst</b><b></b>, and <b>Sundance</b><b></b>.
<br>
<br>
In order to be loaded into the AGC—actually, to be converted to the
"core ropes" within the AGC—it was necessary to "assemble" the Lunar
Module's software source code into binary machine language, using a
computer program called <span style="font-weight: bold;">YUL</span>.
In the context of the Virtual AGC project, of course, the process is
somewhat different: The Lunar Module source code is assembled by the
<span style="font-weight: bold;">yaYUL</span> program, and then
loaded into the <span style="font-weight: bold;">yaAGC</span>
simulation.<br>
<br>
The figure at left (click to enlarge), drawn by me, concisely
depicts the relationships among the LM AGC software and the
relationship with the CM's AGC software, while the tables to the
right (click to enlarge) depict the various versions of the software
as given by Apollo-era documents.<br>
<h2><a name="Known_Software_Versions" id="Known_Software_Versions"></a>Known
Lunar
Module Software Versions</h2>
<p>Actually, there are a lot of Lunar Module program versions we
don't have, and won't ever have. For example, the reason
Luminary 69 is called 69 is because of the 68 versions preceding
it, all of which have now vanished with the wind ... we
presume. The same goes for the documentation associated with
the software, so we only have incomplete snapshots at various
points in time, and in the table below I've made an effort to
associate important version-specific documentation with the
software version. However, in case of Luminary, we have an
additional very important resource that I haven't bothered to link
in on a version by version basis, but which you can nevertheless
consult. I refer to the so-called <a
href="links.html#LUMINARY_Memos">LUMINARY Memos</a>, a
collection of 250+ internal Instrumentation Labs covering many
aspects of the Luminary development process, including extensive
descriptions of revision-to-revision changes. Instead of
trying to isolate which memos are specific to which of the many
program revisions, I'll just recommend that you browse the memo
collection yourself as you see fit.<br>
</p>
<table summary="" style="width: 95%; text-align: left; margin-left:
auto; margin-right: auto;" cellspacing="2" cellpadding="2"
border="1">
<tbody>
<tr>
<td style="font-weight: bold; text-align: center;"> Mission</td>
<td style="font-weight: bold; text-align: center;">LM Number</td>
<td style="font-weight: bold; text-align: center;"> Mission<br>
Type</td>
<td style="font-weight: bold; text-align: center;">LM Program</td>
<td style="font-weight: bold; text-align: center;"> Version</td>
<td style="font-weight: bold; text-align: center;">Source Code<br>
</td>
<td valign="bottom" align="center"><b>Engineering</b><b><br>
</b><b>drawings</b><br>
</td>
<td style="text-align: center;"><span style="font-weight:
bold;">Mission-specific documentation</span><br>
</td>
<td style="font-weight: bold; text-align: center;">What We
Know About It, in a Nutshell<br>
</td>
</tr>
<tr>
<td rowspan="2" colspan="1" valign="middle" align="center">N/A<br>
</td>
<td rowspan="2" colspan="1" valign="middle" align="center">N/A<br>
</td>
<td rowspan="2" colspan="1" valign="middle" align="center">N/A<br>
</td>
<td rowspan="2" colspan="1" valign="middle" align="center"><b>Retread</b><br>
</td>
<td valign="middle" align="center">44<br>
</td>
<td valign="middle" align="center"><a
href="listings/Retread44/MAIN.agc.html">As colorized,
hyperlinked, HTML</a><br>
<br>
or<br>
<br>
<a href="ScansForConversion/Aurora12"> Reduced-size
scanned JPG</a><br>
(43MB)<br>
<br>
or<br>
<br>
<a
href="https://archive.org/details/blkiiretreadprog00sher/page/1/mode/1up">High-quality
scanned
JPEG 2000</a><br>
(82MB)</td>
<td rowspan="2" colspan="1" valign="middle" align="center">N/A<br>
</td>
<td rowspan="2" colspan="1" valign="middle" align="center">N/A<br>
</td>
<td valign="middle"><a name="RetreadNutshell"
id="RetreadNutshell"></a>As you've seen elsewhere on this
site, there where two major versions of the AGC, the Block I
and Block II models. While there was never any Block I
code for the Lunar Module, there was certainly Block I code
for the Command Module, and at some point a transition was
made both from writing Block I code to writing Block II code
... but also from writing CM code to writing LM code, and
Retread marks that transition point! It's the
veritable Missing Link of AGC code, which is particularly <i>a
propos</i> since in fact the YUL development system
employed for AGC development didn't sport a linker.
(Joke! Feel free to ignore.)<br>
<br>
In other words, Retread was when Block I code for the CM
began to be adapted into Block II code for the LM.
Thus, like Aurora below, Retread was never intended to be
mission code, and was never flown. But it has the
honor of being the "first" LM software. It is, in
fact, more than a year older than any other AGC software of
any kind (Block I, Block II, CM, LM) available publicly at
the present time, as far as I'm aware!<br>
<br>
Indeed, if you look at the date on this software — I'll save
you the trouble; it's July 9, 1965 — that's the same time
(within a month or two) of when the first Block II AGCs were
actually becoming available, and thus the only way to have
run RETREAD at that time was probably in a digital
simulation. But of course, digital simulations in
advance of actual hardware are never <i>perfect</i>, so
there would be every possibility that RETREAD 44 may not be
exactly compatible with Block II AGC hardware yet ... and it
turns out that that's the case. If, for example, you
look at <a
href="listings/Retread44/AGC_BLK2_INSTRUCTION_CHECK.agc.html">the
self-check
code</a>, run by VERB 21 NOUN 27 ENTER 1 ENTER, not all of
the CPU tests pass! (There is <a
href="https://github.com/virtualagc/virtualagc/issues/562">a
detailed write-up of this issue</a>, if you're
interested.)<br>
<br>
At any rate, this particular program listing came to us from
Don Eyles, via scanning at <a href="http://www.archive.org">archive.org</a>,
financially-sponsored by Mike Higgins.<br>
</td>
</tr>
<tr>
<td valign="middle" align="center">50<br>
</td>
<td valign="middle" align="center"><a
href="listings/Retread50/MAIN.agc.html">As colorized,
hyperlinked, HTML</a></td>
<td valign="top"><a name="Retread50"></a>This is highly
unusual software, not of itself perhaps, but due to the way
we acquired it. We do not have any assembly listing
for it (scanned or otherwise), nor has it been reconstructed
from problem reports and speculations about how it might
differ from the closely-related RETREAD 44 software above.<br>
<br>
<a href="https://www.computerhistory.org/"><img alt=""
src="chm-logo.png" width="153" vspace="6" hspace="6"
height="55" border="2" align="left"></a>Rather, this
software was dumped from physical core-rope modules
presently living in an AGC at the Computer History Museum in
Mountain View, California. In other words, what was
obtained was the <i>executable</i> form of the program, and
not the source code for it. The source code linked at
the left was mostly taken from corresponding sections of
RETREAD 44 source code (see above) and AURORA 12 source code
(see below), but it assembles identically to the contents of
the dumped core-rope modules, thus validating that the
source code is correct. <i>Small</i> areas of the
source code, particularly in memory bank 11, have not yet
been matched to any preexisting code, and therefore source
code for those areas was decompiled from the rope,
using presently-arbitrary program labels and variable names.<br>
<br>
One of the Computer History Museum's (two) rope modules was
defective, but fortunately defective in a way that allowed
ultimate recovery of the data.<br>
<br>
This work was not done by the Virtual AGC Project, but by an
independent project (leading up the 50th anniversary of
Apollo 11) to make one of the original remaining AGCs
operational. The code was then donated by the
restoration project to us. <a href="Restoration.html">Read
our full write-up of the AGC-restoration project here</a>.<br>
</td>
</tr>
<tr>
<td valign="middle" align="center">N/A<br>
</td>
<td valign="middle" align="center">N/A<br>
</td>
<td valign="middle" align="center">N/A<br>
</td>
<td valign="middle" align="center"><b>Aurora</b><br>
</td>
<td valign="middle" align="center">12<br>
</td>
<td valign="middle" align="center"><a
href="listings/Aurora12/MAIN.agc.html">As colorized,
hyperlinked, HTML</a><br>
<br>
or<br>
<br>
<a href="ScansForConversion/Aurora12"> Reduced-size
scanned JPG</a><br>
(100MB)<br>
<br>
or<br>
<br>
<a href="https://archive.org/details/aurora00dapg">High-quality
scanned
JPEG 2000</a><br>
(500MB)<br>
</td>
<td valign="middle" align="center">N/A<br>
</td>
<td valign="middle" align="center">N/A<br>
</td>
<td valign="middle"><a name="AuroraNutshell"
id="AuroraNutshell"></a>Don Eyles, one of the AGC
developers who you may know as <a
href="http://www.doneyles.com/LM/Tales.html">the hero of
Apollo 14</a>, has contributed the hardcopy of this
program from his personal collection. We have had it
scanned by <a href="http://www.archive.org">archive.org</a>,
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 <a
href="https://archive.org/details/virtualagcproject">our
Virtual AGC collection at archive.org</a>.<br>
<br>
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 <i>all</i> of the pages in
their original, un-Photoshopped glory, if you like. <br>
<br>
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.<br>
<br>
More significantly, it was the <i>last</i> 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 our
AGC-emulation software? Prior to having 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, we can run it and
just make sure the real tests pass.<br>
<br>
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!<br>
</td>
</tr>
<tr>
<td valign="middle" align="center">N/A<br>
</td>
<td valign="middle" align="center">N/A<br>
</td>
<td valign="middle" align="center">N/A<br>
</td>
<td valign="middle" align="center"><b>Sunburst</b><br>
</td>
<td valign="middle" align="center">37<br>
</td>
<td valign="middle" align="center"><a
href="listings/Sunburst37/MAIN.agc.html">As colorized,
hyperlinked HTML</a><br>
<br>
or<br>
<br>
<a href="ScansForConversion/Sunburst37/">Reduced-quality PDF
(160MB)</a><br>
<br>
or<br>
<br>
<a href="https://archive.org/details/sunburst37shepat00miti">High-quality
scanned
JPEG 2000 (400MB)</a><br>
</td>
<td valign="middle" align="center">N/A<br>
</td>
<td valign="middle" align="center">N/A<br>
</td>
<td valign="middle"><a name="Sunburst37"></a>This program,
SUNBURST rev 37, otherwise known as SHEPATIN rev 0, is an
early revision of the SUNBURST program, not used in any
mission. The scan was taken from Don Eyles's personal
copy, for our Internet Archive collection, and financially
sponsored by Peter McDermott.<br>
<br>
I would hazard the guess that SHEPATIN was a program Don
used for off-line development of new program features or bug
fixes for SUNBURST, and that SHEPATIN 0 happened to have
been branched from SUNBURST 37 ... thus it is a "clean" copy
in which no changes had yet been made, which fortuitously
(for us) gives us a nice snapshot of SUNBURST development as
well. We know that SHEPATIN was developed at least
through SHEPATIN 6, since the notes at the end of the AURORA
12 assembly listing mention assembly of SHEPATIN 6. At
any rate, whatever the exact history, we're obviously we're
thrilled that Don saved it for us. <br>
<br>
SUNBURST 37 is substantially different from SUNBURST 120
(see below), used later for Apollo 5, and thus, like RETREAD
and AURORA (see above) is a kind of missing link in the
evolutionary chain of the AGC software in general and the
LGC software in particular.<br>
</td>
</tr>
<tr>
<td style="text-align: center;">Apollo 5<br>
</td>
<td style="text-align: center;">LM-1<br>
</td>
<td style="text-align: center;"><br>
</td>
<td style="text-align: center;"><span style="font-weight:
bold;">Sunburst</span><br>
</td>
<td style="text-align: center;">120<br>
</td>
<td align="center"><a
href="listings/Sunburst120/MAIN.agc.html">As colorized,
hyperlinked HTML</a><br>
<br>
or<br>
<br>
<a href="ScansForConversion/Sunburst120"> Reduced-size
scanned JPG</a><br>
(200MB)<br>
<br>
or<br>
<br>
<a href="https://archive.org/details/yulsystemforagcr00nasa">High-quality
scanned
JPEG 2000</a><br>
(500MB)<br>
</td>
<td valign="middle" align="center"><a href="2003993-011.html">AGC</a><br>
<br>
<a href="2003994-011.html">DSKY</a><br>
<br>
<a href="6014999-031.html">G&N System</a><br>
</td>
<td> <span style="text-decoration: underline;">GSOP (R-527)</span><br>
<ul>
<li><a
href="Documents/R-527-GSOP-Sunburst-Section7-GNErrorAnalyses.pdf">
Section 7</a></li>
</ul>
"<a
href="Documents/ApolloExperienceReport-GuidanceAndControlSystems-LunarModuleMissionProgramer.pdf">Apollo
Experience
Report—Guidance and Control Systems: Lunar Module Mission
Programer</a>"<br>
<br>
"<a href="Documents/LM-1%20Trip%20Report%20at%20MSC.pdf">LM-1
Trip
Report at MSC - Flight Support and Debriefing</a>"<br>
<br>
"<a
href="Documents/TRW-67-FMT-548%20Results%20of%20Independent%20Flight%20Software%20Validation%20Test%20of%20the%20BURST116%20Program%20for%20the%20LM-1%20Mission.pdf">Results
of
Independent Flight Software Validation Test of the
BURST116 Program for the LM-1 Mission</a>"<br>
</td>
<td><a name="Apollo5"></a>Apollo 5 was an unmanned mission to
test the LM, and as such it had a working AGC, though at
certain points in the mission the ground controllers
bypassed the AGC (which hadn't been planned for), using the
<a href="yaAGS.html">AGS</a> instead for some
maneuvers. The mission itself was not entirely
successful.<br>
<br>
The "Programer"—actually some sources spell it "programer"
and some "programmer"—was a robotic gadget that was the
stand-in for the crew.<br>
<br>
Don Eyles provided the hardcopy for our the program-listing
scan we present here. It was scanned by archive.org,
and 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.<br>
<br>
The LM-1 Trip Report was provided by its author, AGC
developer Jay Sampson, and provides a fascinating
blow-by-blow description of what transpired during the
actual mission, and a summary of the subsequent debriefing.<br>
<br>
In spite of the relative lack of resources about the Apollo
5 mission, <a href="https://github.com/dseagrav/NASSP">NASSP</a>
developer and enthusiast Niklas Beug tells us that <br>
<blockquote><small>... we have successfully been able to fly
most of the Apollo 5 mission with that scenario,
including two burns with the Descent Propulsion System
and one with the Ascent Propulsion System. As you know,
during the actual Apollo 5 mission Sunburst didn't
actually make it beyond the first DPS burn due to slow
thrust buildup and a resulting thrust fail indication.
But in NASSP Sunburst has been able to complete the
simulated DOI, and the simulated powered descent with a
late abort and staging, followed by a short APS burn.</small><br>
</blockquote>
Recall that NASSP is an Apollo-mission add-on for the
Orbiter spaceflight simulator that integrates our AGC
simulator so that it can run the actual AGC software to
control the simulated CM or LM. The "scenario" Nik is
referring to here is, of course, using SUNBURST 120 in a
simulated LM, but it also involves the trickery employed to
account for the fact that we have no documentation for the
pad-loads needed for this mission. What Nik did to
generate these pad-loads is very interesting, so I'll quote
him in full:<br>
<blockquote><small>[In NASSP], we can't currently have a
running simulated Lunar Module on the launchpad, due to
how NASSP simulates the CSM and Saturn vehicles as one
entity. But nothing was stopping me from creating the
usual padload worksheet for Sunburst120. Luckily there
were a few resources available for that, including the
"Prelaunch Erasable Memo Load Definition for AS206"
document.</small>
<div><small><br>
</small></div>
<div><small>But then I wondered if I could at least try
Sunburst in NASSP, configured correctly with the
padload. So I decided to try and run Sunburst in a CSM
on the launchpad, in a scenario for the historical
Apollo 5 launch time. Sunburst is special, because it
has a lot more in common with a CMC than any other LGC
version. Sunburst has a launch monitor program, very
similar to the one used in every CMC, It is connected
to the Instrument Unit of the Saturn vehicle like a
CMC, so Sunburst gets the same input channel signals
for liftoff etc. as a CMC. So in that way attempting
to run Sunburst in a CSM made a lot of sense.</small></div>
<div><small><br>
</small></div>
<div><small>... I managed to fly Sunburst120 into Earth
orbit, connected to a CSM and on the same trajectory
and time as the Apollo 5 mission. I then saved the
state of the mission, as usual with Orbiter in a
scenario file, and so had the state of the AGC as it
would have been during Apollo 5 after Earth orbit
insertion. Then I started my Dr. Frankenstein work, by
editing the scenario, removing everything of the CSM
and Saturn vehicles and replacing it with the state of
a Lunar Module that is fully powered up. I only kept
the state of the Sunburst erasable memory, IMU
alignment etc. in that scenario. And to my suprise
Sunburst did not complain that it was suddenly
connected to a LM! So I was sucessful in circumventing
the limitations of NASSP to create an Apollo 5
scenario, that could be used as the starting point for
further tests.</small></div>
</blockquote>
<blockquote> </blockquote>
</td>
</tr>
<tr>
<td valign="middle">N/A<br>
</td>
<td valign="middle">N/A<br>
</td>
<td valign="middle">N/A<br>
</td>
<td valign="middle" align="center"><b>Super Job</b><br>
</td>
<td valign="middle" align="center">N/A<br>
</td>
<td valign="middle" align="center"><a
href="listings/SuperJob/MAIN.agc.html">As colorized,
hyperlinked, HTML</a><br>
<br>
or<br>
<br>
<a href="Documents/R68-4125-Volume2.pdf">Listing in Appendix
D of Volume 2 of Raytheon document R68-4125</a><br>
</td>
<td valign="middle" align="center">N/A<br>
</td>
<td valign="middle"><a href="Documents/R68-4125-Volume1.pdf">Raytheon
R68-4125,
volume 1, "Final Report: Auxiliary Memory for Apollo
Guidance Computer"</a><br>
<br>
<a href="Documents/R68-4125-Volume2.pdf">Raytheon R68-4125,
volume 2, "Final Report: Auxiliary Memory for Apollo
Guidance Computer"</a><br>
<br>
<a
href="klabs/history/history_docs/e2254_auxilary_memory.pdf">E-2254:
"Auxiliary
Memory System, Final Report on Phase I"</a><br>
</td>
<td valign="middle"><a name="SuperJob"></a>This program, Super
Job, is a very unusual offering, in that it is AGC code not
written by the MIT Instrumentation Lab, but rather by
Raytheon. Of course, sub-contractors from Raytheon,
A.C. Electronics, and others, were used to help write the
"regular" AGC programs as well, but this program is entirely
written by Raytheon. <br>
<br>
Nor does it seem to have been assembled with the YUL or GAP
assemblers used to assemble all of the other AGC code, but
rather (as far as we can tell!) an in-house Raytheon
assembler. That in-house assembler is almost, but not
quite, compatible with YUL/GAP: slightly different address
formats were used, and the interpretation of certain
operands is slightly different. We support that with a
special command-line switch (--raytheon) in yaYUL.<br>
<br>
The way this program came about is that Raytheon was
contracted to do a feasibility study for potentially
expanding the AGC memory capacity by adding a magnetic-tape
recorder. If you have looked at <a href="Gemini.html">our
Gemini
OBC (on-board computer) page</a>, you'll know that the
later Gemini missions did use a tape-memory unit to load
different OBC software for different mission phases, and
this is a similar idea. The basic characteristics of
the auxiliary memory were:<br>
<ul>
<li>An Auxiliary Core Memory (ACM) consisting of memory
cores: Up to 16K 16-bit words, though only 8K×16
bits were used in the prototype units Raytheon actually
built.</li>
<li>An Auxiliary Tape Memory (ATM) consisting of magnetic
tape (10<sup>8</sup> bits capacity).</li>
<li>The ability to transfer data from the ATM to the ACM
or vice-versa.</li>
<li>The ACM could be directly accessed in the
address-space of the AGC as either "extended fixed
memory" or "extended erasable memory" (see Table 2-2 in
volume 1 of the Raytheon document hyperlinked to the
left).</li>
</ul>
<p>The auxiliary memory was never used in a mission, so you
may suppose it was a completely-obscure feature, but there
is actually some measure of legacy support for it, albeit
very trivial, in every LM code version from Sunburst
onward. The way its effect is seen is that the AGC's
so-called "superbit"— the flag in the memory-bank register
that selects memory banks 40-43 vs banks 30-33 — actually
consists of 3 bits even though single bit is needed.
The extra two superbits would have been used to select the
various auxiliary-memory functions mentioned above.<br>
</p>
<ul>
</ul>
The rationale for the auxiliary memory was that as "feature
creep" (or perhaps "feature explosion") occurred during AGC
development, more and more memory was required, surpassing
the physical resources of the AGC itself. Many "<a
href="http://www.tindallgrams.net">Tindallgrams</a>" cover
this, and indeed, very significant AGC features were
developed in software and then simply discarded due to
memory constraints. For example, code was developed
for the LM for something called a Lunar Optical Rendezvous
System (LORS) that could potentially have been used in place
of the Rendezvous Radar (RR). However, the code for
LORS was larger (much larger) than the code for the RR, thus
causing it to be eliminated, so the only place it exists
today is as a vague reference in a Tindallgram. I wish
we could see the code for LORS, but we cannot. Perhaps
if Raytheon's auxiliary tape memory for the AGC had
eventually been adopted, we might be able to do just
that! But the tape memory was <i>not</i> adopted, so
we cannot. <br>
<br>
Actually, the story I've been told (by MSC's Clark Neily) is
that there was an intense dispute (which he labeled The
Rendezvous Wars) between the optical camp (led by Max Faget)
and the radar camp. You can read Clark's extended
comments about it in <a
href="links.html#Miscellaneous_Mission_Documents">our
document library</a>. The radar camp won for Apollo,
but lost for the shuttle. Such is life!<br>
<br>
At any rate, Super Job is a test program for this tape-drive
system. While we provide the transcribed source code
for SuperJob, it's probably not too useful to run it in the
AGC simulator as of yet; probably the tape drive itself will
have to be simulated as well, perhaps with a new program
that might be named yaTape. Or not; we'll have to wait
and see. It's also worth noting that the scanned
program listing is rather wimpy in places, and has no
niceties such as memory-bank checksums to give us confidence
that the transcription of the source code is correct ... but
we hope (and think) it probably is.<br>
<br>
And finally, as you may have realized, there is actually <i>no</i>
logical reason for including Super Job here on the Luminary
page. There's nothing in the documentation suggesting
that it would be installed in the LM vs the CM.
Rather, it's just a generic concept that might apply to
either spacecraft, or to both of them. But it has to
go somewhere, so here it stays!<br>
</td>
</tr>
<tr align="center">
<td style="vertical-align: middle; white-space: nowrap;">
Apollo 9<br>
</td>
<td style="text-align: center; vertical-align: middle;"> LM-3<br>
</td>
<td style="text-align: center; vertical-align: middle;"> D<br>
</td>
<td style="font-weight: bold; vertical-align: middle;
white-space: nowrap;"> Sundance<br>
</td>
<td style="vertical-align: middle;">306<br>
</td>
<td style="text-align: center; vertical-align: middle;"> <a
href="listings/Sundance306ish/MAIN.agc.html">As colorized,
hyperlinked HTML of Sundance306ish</a><br>
(reconstruction phase 2)<br>
</td>
<td valign="middle" align="center"><a href="2003993-031.html">AGC</a><br>
<br>
<a href="2003994-031.html">DSKY</a><br>
<br>
<a href="6014999-051.html"> G&N System</a></td>
<td style="text-align: left;"> GSOP (R-557)<br>
<ul>
<li><a href="NARA-SW/R-557-sec1-rev1.pdf"> Section 1</a></li>
<li><a href="Documents/HSI-208623.pdf">Section 4</a></li>
<li><a href="Documents/HSI-208619.pdf">Section 5</a><br>
</li>
<li><a href="Documents/HSI-208625.pdf">Section 6</a><br>
</li>
</ul>
<a href="Documents/Apollo9FlightPlan.pdf">Flight Plan</a><br>
<br>
<a href="Documents/HSI-208409.pdf">LM Digital Autopilot
Study Guide, Sundance 302</a><br>
<br>
<a href="Documents/LM-3_Systems_Handbook.pdf">Lunar Module
Systems Handbook, LM-3</a><br>
<br>
<a
href="Documents/LM-3_Apollo_Operations_Handbook_Vol_I.pdf">Apollo
Operations Handbook, Lunar Module 3</a><br>
</td>
<td style="text-align: left; vertical-align: middle;"> <a
name="Sundance306"></a>Executive summary: This is a
program we have and yet don't have. I say we <i>do</i>,
but there are legitimate grounds for disagreement, and you
may need to decide for yourself whether or not you agree
with me. At any rate, we do have software that allows
you to fly Apollo 9 missions. Read on, for more
details!<br>
<br>
Here is some info from James Kernan, one of the LGC
developers, in response to a question from me about about
correct versioning of Sundance:<br>
<br>
<div style="margin-left: 40px;"> <small>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.<br>
</small> </div>
<br>
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.<br>
<br>
Not being "in the building" ourselves, <i>we</i> have no
copies of the full Sundance 306 program, nor of any other
revision of Sundance source code. Annoying!
Nevertheless, we <i>do</i> have quite a bit of access to
Sundance software. What do I mean by that cryptic
statement? Well, within the AGC itself, Sundance (or
any other AGC program) physically resided in executable
form, in up to 6 core-rope modules, denoted as modules B1
through B6. Various individual Sundance physical rope
modules have shown up in private collections and auction
sites, and Mike Stewart has sometimes been able to dump
their contents using <a href="Restoration.html">Jimmy
Loocke's restored AGC</a>. While these disparate
dumped modules do not form a complete set of software for
any one Sundance revision, they are tantalizingly close to
doing so.<br>
<br>
<a
href="https://github.com/virtualagc/virtualagc/tree/master/SundanceXXX">Mike's
dumps of the individual Sundance modules reside in our
GitHub repository</a>. Here's a complete list of the
modules for which we have dumps, and of the personal
collections whence they originally came:<br>
<ul>
<li>B1 (p/n 2003972-371, Sundance 292), Anonymous</li>
<li>B2 (p/n 2003972-451, Sundance 302), Don Eyles</li>
<li>B3 (p/n 2003972-391, Sundance 292), Anonymous</li>
<li>B3 (p/n 2003972-461, Sundance 302), Don Eyles</li>
<li>B4 (p/n 2003972-471, Sundance 302), Eldon Hall</li>
<li>B5 (p/n 2003972-421, Sundance 292), Anonymous</li>
<li>B6 (p/n 2003972-641, Sundance 306), Anonymous</li>
</ul>
<p>But how to fit them together to make something
usable? In case you're wondering, <i>perhaps</i>
they could just magically be compatible with one another,
so that you could simply stick they modules into an AGC
which you happen to have in your garage and have them work
correctly. Well, you should disabuse yourself of
that hope: These revisions of the core-rope modules
are not compatible enough to provide a working
Sundance program when you try using them together.<br>
</p>
<p>Quite the puzzle!<br>
</p>
<p>With some assistance from Nik Beug, Mike has been trying
to piece together this puzzle by <i>reconstructing</i>
Sundance 306 from these binary dumps and other existing
material. If Mike succeeds, it would be quite a
coup, since we already have the Apollo 9 CM software
(Colossus 249). Thus if we had Sundance 306 as well,
we would have the <i>complete</i> Apollo 9 mission
software.<br>
</p>
<p>This software reconstruction turns out (surprise!) to be
quite difficult, and is not yet complete, but the effort
has been rewarded with great success. It is a
3-phase process:<br>
</p>
<table width="90%" cellspacing="2" cellpadding="2"
border="1" align="center">
<tbody>
<tr>
<th valign="bottom">Phase<br>
</th>
<th valign="bottom">Status<br>
</th>
<th valign="bottom">Name of Program Produced<br>
</th>
<th valign="bottom">Description<br>
</th>
</tr>
<tr>
<td valign="middle" align="center">1<br>
</td>
<td valign="middle" align="center">Complete<br>
+<br>
Test flown<br>
</td>
<td valign="middle" align="center">SundanceXXX<br>
</td>
<td valign="top">This phase decompiles (disassembles?)
the multi-revision set of Sundance module binary
dumps we already have, creating source code from
them, and reconciles discrepancies between the
modules. This forms a Sundance program, though
not specifically Sundance 306 (or any other
particular revision), and <i>in principle</i> not
necessarily functional. The "discrepancies" I
just mentioned are almost entirely due to shifts in
the addresses of variables or code between
revisions. The program so-created,
SundanceXXX, matches the binary dumps, aside from
the 800+ "discrepancies" (<a
href="https://github.com/virtualagc/virtualagc/blob/master/SundanceXXX/SundanceXXXDifferences.txt">enumerated
here</a>). It assembles without error.
Moreover, it turns out after doing so that Sundance
XXX is entirely functional, as far as we can tell,
and can acceptably fly simulated Apollo 9 missions
using the Orbiter/NASSP spaceflight simulator,
though it is now essentially obsoleted by
Sundance306ish (see next entry below). You can
view a <a href="listings/SundanceXXX/MAIN.agc.html">browser-friendly
version of the decompiled source code</a> at this
link.</td>
</tr>
<tr>
<td valign="middle" align="center">2<br>
</td>
<td valign="middle" align="center">Complete<br>
+<br>
Test flown<br>
</td>
<td valign="middle" align="center">Sundance306ish<br>
</td>
<td valign="top">This phase transforms the SundanceXXX
source code, to bring it into a form in which
assembled memory banks in module B6 (the only
available physical module loaded with Sundance 306,
as opposed to earlier Sundance revisions) precisely
match the dump of physical memory module B6.
Some 200+ octal mismatches in SundanceXXX are
addressed in this phase. I am told that it
performs perfectly for simulated Apollo 9 missions
in Orbiter/NASSP, and has become the accepted Apollo
9 default there.<br>
</td>
</tr>
<tr>
<td valign="middle" align="center">3<br>
</td>
<td valign="middle" align="center">Someday<br>
</td>
<td valign="middle" align="center">Sundance306<br>
</td>
<td valign="top">This phase transforms the
Sundance306ish source code to bring the core rope
obtained by assembling it into a form which
corresponds specifically to Sundance 306 <i>throughout</i>:
i.e., in memory modules B1-B2, and not merely
B6. Absent additional source material (such as
a complete list of Sundance 306 memory-bank
checksums), this reconstruction phase will
undoubtedly prove to be <i>very</i> difficult, and
we may never be in a position to make adequate
progress or to know that the effort has been
entirely successful ... but we can hope!</td>
</tr>
</tbody>
</table>
<ol>
</ol>
<p>As you may imagine, any comments appearing in such source
code that has been reconstructed from the dumped memory
modules could not have come from the core ropes
themselves. In almost all cases they come from
corresponding lines of source code in Luminary, and may be
incorrect.<br>
</p>
<p>The most-important takeaway from this is that you can
presently fly an Apollo 9 mission using reconstructed
SundanceXXX software in the LM and Colossus249 software in
the CM. We would expect the same to be true of the
reconstructions produced in phases 2 and 3, if/when they
become available.<br>
</p>
</td>
</tr>
<tr align="center">
<td style="vertical-align: middle; white-space: nowrap;"
rowspan="2" colspan="1">Apollo 10<br>
</td>
<td style="text-align: center; vertical-align: middle;"
rowspan="2" colspan="1">LM-4<br>
</td>
<td style="text-align: center; vertical-align: middle;"
rowspan="2" colspan="1">F<br>
</td>
<td style="font-weight: bold; vertical-align: middle;
white-space: nowrap;" rowspan="2" colspan="1"> Luminary 1<br>
</td>
<td style="vertical-align: middle;">069<br>
</td>
<td style="text-align: center; vertical-align: middle;"><a
href="listings/Luminary069/MAIN.agc.html">As colorized,
hyperlinked HTML</a><br>
<br>
or<br>
<br>
<a href="ScansForConversion/Luminary069/">
Reduced-size scanned JPG</a><br>
(200MB)<br>
<br>
or<br>
<br>
<a href="https://archive.org/details/luminary6900miti">High-quality
scanned
JPEG 2000</a><br>
(730MB)</td>
<td rowspan="2" colspan="1" valign="middle" align="center"><br>
<a href="2003993-031.html">AGC</a><br>
<br>
<a href="2003994-121.html">DSKY</a><br>
<br>
<a href="6014999-061.html"> G&N System</a></td>
<td style="text-align: left;" rowspan="2" colspan="1"><br>
GSOP (R-557)<br>
<ul>
<li><a href="NARA-SW/R-557-sec1-rev1.pdf"> Section 1</a></li>
</ul>
<a href="Documents/LUM75-001.pdf">LUMINARY Memo #75</a><br>
<br>
<a href="Documents/LUM78-001.pdf">LUMINARY Memo #78</a><br>
<br>
<a
href="https://archive.org/stream/apertureCardBox467Part2NARASW_images#page/n68/mode/1up">Drawing
2021152B</a><br>
</td>
<td style="text-align: left; vertical-align: middle;"><a
name="Apollo10"></a>This seems to have been the first
Luminary revision targeted at the Apollo 10 mission, and
seems additionally to have been the first revision of
Luminary for which core-rope modules were
manufactured. In other words, it was the first
non-developmental revision of Luminary and the first
released for manufacturing.<br>
<br>
Nevertheless, it ended up not being flown in the
mission. (Instead, see Luminary 69/2 below.)<br>
<br>
The version we have here is from Don Eyle's private
collection, as scanned by archive.org, and financially
sponsored by our Onno Hommes.<br>
</td>
</tr>
<tr>
<td valign="middle" align="center">069/2</td>
<td valign="middle" align="center"><a
href="listings/LUM69R2/MAIN.agc.html">As colorized,
hyperlinked, HTML</a></td>
<td valign="middle"><a name="LUM69R2"></a>We do not have any
scans of the Luminary 69 Rev. 2 software used in the Apollo
10 Lunar Module. But, that software can be
reconstructed with confidence, and that's what's presented
here! For simplicity, we'll refer to it simply as
LUM69R2, and the revision for which we actually have scans
(see the item above) as LUM69.<br>
<br>
How is such a reconstruction even possible? Well, Mike
Stewart did the reconstruction, and <a
href="https://archive.org/stream/apertureCardBox467Part2NARASW_images#page/n68/mode/1up">has
explained it in quite a bit of detail</a>. However,
I'll try to give you a relatively brief overview.
There are 4 key ingredients:<br>
<ul>
<li>We know the <i>checksums</i> of all of LUM69R2's
memory banks, because they are listed in the
recently-discovered engineering drawing 2021152B.
From this and other documentation, there is a high
degree of confidence that the contents of only 2 of the
36 memory banks have changed from LUM69.</li>
<li>We have LUMINARY Memo #75, which <i>describes</i>
what those changes ought to be.</li>
<li>We have LUMINARY Memo #78, which describes a similar
change in Luminary 95 source code.</li>
<li>We have the Luminary 99 source code, which derives
from Luminary 95.<br>
</li>
</ul>
<p>With all of that at our disposal, the appropriate changes
in Luminary 99 can be back-ported to Luminary 69, and then
the fact that we know the LUM69R2 checksums means we can
check that the back-ported changes do indeed produce the
proper bank checksums.<br>
</p>
<p>As a cross-check, Nik Beug has flown the reconstructed
software in the Orbiter/NASSP Apollo 10 simulation, and
reports that it works as expected.<br>
</p>
<p>So in conclusion, we're pretty sure we do have the
LUM69R2 software for Apollo 10, <i>without</i> ever
having been given the assembly listing for the software!<br>
</p>
</td>
</tr>
<tr>
<td rowspan="5" colspan="1" valign="middle" align="center">Apollo
11<br>
</td>
<td rowspan="5" colspan="1" valign="middle" align="center">LM-5<br>
</td>
<td rowspan="5" colspan="1" valign="middle" align="center">G<br>
</td>
<td rowspan="5" colspan="1" valign="middle" align="center"><b>Luminary
1A</b><br>
</td>
<td valign="middle" align="center">97<br>
</td>
<td valign="middle" align="center"><a
href="listings/Luminary097/MAIN.agc.html">As colorized,
hyperlinked, HTML</a></td>
<td rowspan="5" colspan="1" valign="middle" align="center"><br>
<br>
<a href="2003993-031.html">AGC</a><br>
<br>
<a href="2003994-091.html">DSKY</a><br>
<br>
<a href="6014999-091.html"> G&N System</a>N/A<br>
</td>
<td colspan="1" rowspan="5" valign="middle"><br>
<br>
<a href="Documents/Luminary99PadLoads.pdf"> Erasable pad
loads</a><br>
<br>
<a href="Documents/LM_Systems_Handbook_060269.pdf">
Excerpted LM Systems Handbook</a><br>
<br>
<a href="http://www.doneyles.com/LM/Tales.html">The
1201/1202 alarms</a><br>
<br>
<a href="NARA-SW/TheApollo11Adventure.pdf"
style="font-style: italic;">The Apollo 11 Adventure</a><br>
<br>
<span style="text-decoration: underline;">Operational Data
Book</span><br>
<ul>
<li><a
href="Documents/SNA-8-D-027III-Rev2-CsmLmSpacecraftOperationalDataBook-Volume3-MassProperties.pdf">Volume
3</a></li>
</ul>
<span style="text-decoration: underline;">Crew Debriefing</span><br>
<ul>
<li><a
href="Documents/Apollo11TechnicalCrewDebriefing-Volume1.pdf">
Volume 1</a></li>
<li><a
href="Documents/Apollo11TechnicalCrewDebriefing-Volume2.pdf">
Volume 2</a></li>
</ul>
<a href="Documents/Apollo11FlightPlan.pdf">Flight Plan</a><br>
<br>
<a href="Documents/CherryApollo11Exegesis.pdf"> "Exegesis of
the 1201<br>
and 1202 Alarms Which<br>
Occurred During the<br>
Mission G Lunar<br>
Landing"</a><br>
<br>
Digital simulations of the landing:<br>
<ul>
<li><a href="Documents/apollo11landingd00miti_0.pdf">1969</a></li>
<li>1971: <br>
</li>
<ul>
<li><a
href="https://archive.org/details/dianarev12level302eyle">Color
high-res
scan</a></li>
<li><a
href="ScansForConversion/DigitalSimulationAP11ROPE_color/">Color
low-res
enhanced</a><br>
</li>
<li><a
href="ScansForConversion/DigitalSimulationAP11ROPE.pdf">B&W
PDF
(92MB)</a><br>
</li>
</ul>
</ul>
<br>
</td>
<td colspan="1" rowspan="2" valign="middle"><a
name="Luminary097"></a>Luminary 97 and Luminary 98 were
development revisions of the Apollo 11 code, situated
chronologically between Luminary 96 (the first Luminary
revision targeted for Apollo) and Luminary 99/1 (the flight
revision). We do not have physical program listings
for either Luminary 97 or 98, but their source code has been
reconstructed from other available data, and we are
confident that these reconstructions are correct.<br>
<br>
Why? Mike Stewart performed the reconstruction and has
provided <a
href="https://github.com/virtualagc/virtualagc/pull/1078">a
detailed explanation</a>. In brief, we have
known-good source code for Luminary 99 (see below). <a
href="Documents/LUM85_text.pdf">LUMINARY memo #85</a>
describes the differences between Luminary 99 and 98, so we
can use that information to reconstruct Luminary 98 from
99. Similarly, <a href="Documents/LUM83_text.pdf">LUMINARY
memo #83</a> describes the differences between Luminary 98
and 97, so that allows reconstruction of Luminary 97 from
98. Meanwhile, <a
href="https://archive.org/stream/apertureCardBox467Part2NARASW_images#page/n70/mode/1up">engineering
drawing 2021152</a> lists all of the memory-bank checksums
for Luminary 97; since they match the reconstructed Luminary
97 code exactly, we can be confident that Luminary 97 is <i>very</i>
likely to be correct. <br>
<br>
Unfortunately, Luminary 98 was merely an engineering
revision of the software for which no core-rope modules were
manufactured, so drawing 2021152 does not record its
memory-bank checksums. However, since the
correctness of our Luminary 98 reconstruction is a
prerequisite for the correctness of our Luminary 97
reconstruction, which we are confident in, we can have a
pretty fair degree of confidence that Luminary 98 is correct
as well.<br>
</td>
</tr>
<tr>
<td valign="middle" align="center">98<br>
</td>
<td valign="middle" align="center"><a
href="listings/Luminary098/MAIN.agc.html">As colorized,
hyperlinked, HTML</a></td>
</tr>
<tr>
<td valign="middle" align="center">099/0<br>
</td>
<td valign="middle" align="center"><a
href="listings/LMY99R0/MAIN.agc.html">As colorized,
hyperlinked, HTML</a> </td>
<td valign="middle">One of the original AGC programmers, Allan
Klumpp, kept a copy of Luminary 99 Rev 0 (or 99/0 for
short), since donated to <a href="http://www.klabs.org">klabs.org</a>,
having been told that it was the version that flew on Apollo
11. Unfortunately, that turns out not to have been the
case, but it was indeed the first revision of Luminary
released for manufacture for Apollo 11 ... by which I mean
that its core-rope memory modules were actually
manufactured, though not flown.<br>
<br>
We know that the program identifies itself as "REVISION 099
OF AGC PROGRAM LUMINARY BY NASA 2021112-051" in the page
headings of the printouts, so from <a
href="R700-3-Table4-11.jpg">the chart at the top of this
page</a> we know that it's the revision immediately <i>preceding</i>
the flown version. Unfortunately, we at the Virtual
AGC Project have never actually had access to the Luminary
99/0 hardcopy itself, or to any scans of it. I hope
some day to have it scanned, though with each passing year
that seems an increasingly distant dream. Apparently,
Luminary 97 was actually the first AGC software version
actually targeted for Apollo 11, and thus had already been
modified by the time of Luminary 99/0.<br>
<br>
As it turns out, our Mike Stewart (thanks Mike, and Nik Beug
who also helped out) has noticed that we have just enough
info at our disposal to <i>reconstruct</i> the source code
for Luminary 99/0 even in the absence of the program listing
itself. And having reconstructed the source code, we
thus get the executable octal rope for free, and can run it
in the AGC simulator. <br>
<br>
The source code reconstructed by Mike is what you see linked
at the left. <br>
<br>
A few things worked in Mike's favor in performing the
reconstruction. For one thing, at the time the
reconstruction was done, we already had the program version
immediately following it (namely Luminary 99/1, see the very
next row in this table), and a version not much earlier
(namely Luminary 69/2, see the preceding row in this
table). For another, in hardcopies of program listings
like those for Luminary 99/1, the relatively few lines which
have <i>changed</i> from prior versions are marked with a
*, making them relatively easy to find. Finally, while
Allan did not give us his hardcopy of Luminary 99/0 to scan,
he <i>did</i> agree to look at the memory-bank checksums
for us, and was kind enough to give us the checksum of the
single memory bank that differed from 99/1 ... so we could
easily verify that the reconstruction was very <i>likely</i>
to be correct. Of course, one can never be 100% sure,
in the continued absence of the hardcopy. But we're
pretty confident that the reconstruction is accurate;
admittedly, it's possible we may not have found all of the
program-comment changes.<br>
<br>
In case you're wondering, the only change between this
version and the flown version (099/1) is the correction of a
long-standing bug, in which a reset of the computer
incorrectly reset (cleared) certain of the hardware timers,
thus resulting in events that were triggered by the next
expiration of those timers occurring at the wrong time.<br>
</td>
</tr>
<tr align="center">
<td style="vertical-align: middle;">099/1<br>
</td>
<td style="text-align: center; vertical-align: middle;"> <a
href="listings/Luminary099/MAIN.agc.html">As colorized,
hyperlinked, HTML</a><br>
<br>
or<br>
<br>
(MIT Library printout)<br>
<br>
<a href="ScansForConversion/Luminary099"> As scanned page
images (<span style="font-style: italic;">very</span>
big!)</a><br>
<br>
<a href="AP11ROPEpage1472.jpg">Page 1472</a><br>
<br>
<a href="AP11ROPEpage1473.jpg">Page 1473</a><br>
<br>
or<br>
<br>
(Don Eyles's "AP11ROPE" printout)<br>
<br>
<a href="ScansForConversion/AP11ROPE/">Reduced-size page
scans (JPG)</a><br>
<br>
<a href="https://archive.org/details/ap11rope00miti">Full-resolution
page
scans (JPEG 2000)</a><br>
</td>
<td style="text-align: left; vertical-align: middle;"> <a
name="Luminary99Blurb"></a>This is the AGC software
version that was flown in the Apollo 11 Lunar Module.<br>
<br>
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.<br>
<br>
<table summary="" style="text-align: left; margin-left:
auto; margin-right: auto;" cellspacing="2" cellpadding="2"
border="1">
<tbody>
<tr>
<td style="vertical-align: top;">
<div style="text-align: center;"> <span
style="font-weight: bold;"><span
style="text-decoration: underline;">Honor Roll</span><br>
</span>
<div style="text-align: left;"> <span
style="font-style: italic;"><br>
<span style="text-decoration: underline;">Organizational
honors</span></span><br>
</div>
</div>
<table summary="" style="text-align: left; width:
100%;" cellspacing="2" cellpadding="2" border="0">
<tbody>
<tr>
<td style="vertical-align: middle;"> <big><span
style="font-family: sans-serif;">Massachusetts
Institute
of Technology / MIT Museum</span><br
style="font-family: sans-serif;">
<span style="font-family: sans-serif;">Building
N51,
265 Massachusetts Avenue</span><br
style="font-family: sans-serif;">
<span style="font-family: sans-serif;">Cambridge,
MA
02139<br>
<a href="http://web.mit.edu/museum/"><small>web.mit.edu/museum/</small></a><br>
</span></big></td>
<td style="text-align: center; vertical-align:
middle;"> <a
href="http://web.mit.edu/museum/"><img
alt="" title="Click to visit the MIT
Museum website"
src="MITMuseumLogo_red.gif"
style="border: 0px solid ; width: 107px;
height: 101px;" width="107" height="101"></a><br>
</td>
</tr>
</tbody>
</table>
<br>
<span style="font-style: italic; text-decoration:
underline;"> Individual honors</span><br>
<ul>
<li>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.</li>
<li>Paul Fjeld, for digitizing the hardcopy.</li>
<li>(In alphabetical order) Fabrizio Bernardini,
Hartmuth Gutshe, Onno Hommes, Jim Lawton, and
Sergio Navarro, for converting the page images
to source code.</li>
<li>Steve Case and Dawn Masuoka for helping in
proofing the executable binary.<br>
</li>
<li>... and those whose names I do not know at the
Charles Stark Draper Laboratory and NASA who
allowed us to do this.<br>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
<br>
Below, you can see a video made by Niklas Beug, in which
this Luminary 99/1 AGC software is used to make a simulated
Apollo 11 lunar landing, using the Orbiter spaceflight
simulator, with the NASSP 7.0 Apollo-mission add-on and our
own AGC CPU simulator. (A higher-resolution version is
probably available if you go directly to YouTube.)<br>
<br>
<center><iframe
src="https://www.youtube.com/embed/sHaS6sYJsMg"
allowfullscreen="" width="480" height="270"
frameborder="0">&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;br&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;
</iframe></center>
<br>
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. AGC
developer Hugh Blair-Smith speculates that this is the date
of the printing rather than of the program build, and that
seems plausible ... it seems as though you'd want to have
it, for historical purposes! At any rate, the
printout identifies itself as "REVISION 001 OF AGC PROGRAM
LMY99 BY NASA 2021112-061", which according to <a
href="R700-3-Table4-11.jpg">the chart at the very top of
this web-page</a> tells you that it is indeed the version
that was flown in the mission ... but keep reading, because
there are curious postscripts!<br>
<br>
AGC developer Don Eyles also has a copy of Luminary 99,
though oddly named AP11ROPE BY EYLES rather than LMY99 BY
NASA, and it was printed in 1970 for some reason. Our
scan was financed by Vipin Rathor (thanks, Vipin!)
After a full analysis of AP11ROPE yet, I can tell you the
following:<br>
<ul>
<li>The octal rope for AP11ROPE — i.e., the executable
form into which the source code compiles — is <i>identical</i>
to that of Luminary 99/1. Thus, differences
in the source code are confined to things like program
comments which don't affect the executable code.</li>
<li>There is precisely one difference between the program
comments in AP11ROPE and our earlier scan from the MIT
library, and that is on page 2 of the listing, in which
a group of software modules is mentioned as "LEMONAID"
in the one case, and "LNYAIDE" in the other.<br>
</li>
<li>Regarding the software modules just mentioned, even
though Don hadn't changed the program comment naming
them, he actually referred to this section (pp. 153-489)
as "AP11AID", indicating that he presumably intended to
make changes in this area to further his purpose in
branching AP11ROPE from LUMINARY, but just hadn't done
so yet. We know this because of the fact that
assembler-generated lines in the printout refer to this
section not as LEMONAID but as AP11AID.<br>
</li>
<li>Finally, "LEMONAID" was the name for this section in
LUMINARY 69, so that fact that the program comments in
AP11ROPE continue to refer to it as LEMONAID rather than
as LNYAIDE implies that AP11ROPE was not branched
directly from LUMINARY 099/1, in spite of being
essentially identical to it. <br>
</li>
</ul>
Regarding the "digital simulations" mentioned to the right,
these are simulations performed during the Apollo era, not
simulations we have performed as part of the Virtual AGC
project. They are very complete, containing not only
pad loads, but also position/velocity data, notations of
what the astronaut is supposed to input on the DSKY, what
the DSKY is displaying on a moment-to-moment basis,
occasional memory dumps, and so on. There are two
such surviving simulations for Apollo 11, both from Don
Eyles's personal collection. We have had them scanned,
with Matthew Fite financially sponsoring the 1969 version
and Fabrizio Bernardini financially sponsoring the 1971
version. (Thanks Matthew and Fabrizio!) The two
simulations are somewhat different; i.e., these are <i>not</i>
merely two different scans of the same thing.
Unfortunately, the printout for the 1971 simulation is quite
low-contrast, and its full-color scans quite hard to read,
so I've provided a highly-processed, high-contrast B&W
version as well.<br>
<br>
The 1969 digital simulation was done a few days <i>after</i>
the actual landing. While we're not 100% sure why it
was made, one speculation is that it was done in order to
investigate the causes of the 1201 and 1202 program alarms
that had been experienced during the landing itself.
Don Eyles agrees that this must have been what he intended,
and points out that his notes indicate that TLOSS (the
maximum amount of CPU time that it was permissible to
"lose") was set to 10% in that run. (It was the fact that
the CPU time lost in interacting with the rendezvous radar
was excessive that caused the Apollo 11 1201/1202 alarms.
See <a href="Documents/LUM140_text.pdf">LUMINARY Memo #140</a>,
for example, for some background information about TLOSS.)<br>
<br>
Also, you may wonder, why was there a digital simulation of
Apollo 11 in 1971, a couple of years <i>after</i> Apollo 11
landed on the moon? Shouldn't the simulations only
have been useful <i>before</i> the landing? Well, Don
Eyles had this simulation performed for his own purposes and
(after nearly 50 years!) is no longer sure quite what that
purpose was. He worked on several off-the-main branch
AGC programs, such as ZERLINA (see below), intended to
explore improved methods for performing the landing; my
theory is that this simulation provided baseline data
against which to measure such improvements, and Don admits
that this is a plausible theory.<br>
<br>
Speaking of ZERLINA, if you examine the full-color scans for
the digital simulation found at archive.org, you may notice
that the label on the binder (removed in the B&W PDF
I've posted here at this site) identifies the 1971
simulation as "DIANA Rev. 12". It is <i>not</i>
DIANA, however: the binder containing the simulation's
printout had <i>formerly</i> contained a copy of DIANA, we
believe, and Don simply reused it for this printout without
relabeling it. DIANA was another off-the-main-branch
program, like ZERLINA, which was developed by Peter Adler
and Don Eyles in order to explore an improved time-sharing
technique that would avoid the 1201 and 1202 program alarms
experienced in the Apollo 11 landing. The approach
wasn't adopted, though, and copies of DIANA no longer exist
as far as we know. (At any rate, neither Don nor Peter
has a copy.)<br>
</td>
</tr>
<tr>
<td valign="middle" align="center">099/2<br>
</td>
<td valign="middle" align="center"><a
href="listings/LUM99R2/MAIN.agc.html">As colorized,
hyperlinked HTML</a><br>
</td>
<td valign="middle">Here's the curious postscript to the
Apollo 11 software story that I mentioned above.<br>
<br>
<a name="Kernan" id="Kernan"></a>James Kernan, another of
the original AGC developers, has sent us some confusing
facts. I'll let Jim tell it in his own words:<br>
<br>
<div style="margin-left: 40px;"> <small>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.<br>
<br>
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 latter and
named it Lum99R2 Revision 0.<br>
<br>
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.</small><br>
</div>
<br>
Some years later, he retells the story as follows:<br>
<blockquote><small>The evening of the release for Apollo 11,
John Sutherland and I were in the assembly control room
about to make the final assembly of Luminary. For
reasons unsupportable by reason, I had decided that the
Luminary revision for Apollo 11 would be less than 100
and lo and behold we were about to make revision
99. The procedure for releasing a program for
manufacture entailed assigning a <unique name>
Revision 0 by NASA <part number>. The
Revision Number had to be 0 and the author had to be
NASA with the manufacture part number included. So
we chose Lum99 Revision 0 by NASA <part
number>. We had previously got the part number
from Bob Millard in the Program Office. The LM
part numbers were in the 2 million series (if I remember
correctly) and CM numbers were one million. We had
just made LUMINARY Revision 99 when Dan Lickly, our
chief engineer, came into the room with the news that
the ephemeris numbers had to be updated. This
seemly upset my desire to keep the revision number under
100. But the Yul system was flexible. We changed
the name to LUM99R1, and since it took 2 to get the
ephemeris numbers right, the final listing is named
LUM99R2 Revision 0 by NASA <part number>. So
if you have a listing of what you think is the landing
program for Apollo 11, look at the name, revision, and
author to make sure. I did not keep a copy ( I
wish I had). The mainline development of Luminary
for subsequent missions continued with revision 100.</small><br>
</blockquote>
Neither version of this story can be quite correct, in that
it clearly indicates that one difference between Luminary 99
Rev 0 and Rev 1 is that there was an ephemeris change.
However, we have both Luminary Rev 1 (099/1) and a reliable
reconstruction of Luminary Rev 0 (099/0) available to us,
and there is no ephemeris change between them. Thus,
Jim is mistaken about the reason Rev 1 was produced (we know
that it was a bug fix for Rev 0), and presumably it was only
Rev 2 that had an ephemeris change. <br>
<br>
Jim's story is correct in one very important regard, namely
that the <a href="https://en.wikipedia.org/wiki/Ephemeris">ephemeris</a>
data in Luminary 99 Rev 1 is certainly <i>wrong</i>.
How do we know this? Well, ephemeris data in an AGC
program covers the timespan of a year, <a
href="Documents/SGA_Memo20_650929.pdf">beginning on July 1
of one year and continuing through June 30 of the
following year</a>, and so the missions in the time range
July 1, 1969, through June 30, 1970, should all have the
same ephemeris data. Those missions happen to be
Apollo 11, Apollo 12 , and Apollo 13. The ephemeris
data is roughly the last 50 lines of the CONTROLLED
CONSTANTS in the Luminary source code, or in this case<br>
<ul>
<li><a
href="listings/Luminary099/CONTROLLED_CONSTANTS.agc.html">Apollo
11:
Luminary 99 Rev 1 CONTROLLED CONSTANTS</a></li>
<li><a
href="listings/Luminary116/CONTROLLED_CONSTANTS.agc.html">Apollo
12:
Luminary 116 CONTROLLED CONSTANTS</a></li>
<li><a
href="listings/Luminary131/CONTROLLED_CONSTANTS.agc.html">Apollo
13:
Luminary 131 CONTROLLED CONSTANTS</a></li>
</ul>
<p>and it's pretty easy to see that there's a mismatch
between Luminary 99 Rev 1 and the other two. Nor, as
Jim's story would suggest, does it match <a
href="listings/Luminary069/CONTROLLED_CONSTANTS.agc.html">Apollo
10
(Luminary 69)</a>, from the preceding 12-month interval.<br>
</p>
<p>At any rate, no printout of LUM99R2 has ever been found,
nor any other reference to it other than Jim's
recollection, so we can't present you with a bunch of
scanned pages for it the way we can with all the other AGC
listings we've made available.<br>
</p>
<p>Years after this story of Jim's came up, <a
href="https://archive.org/stream/apertureCardBox467Part2NARASW_images#page/n80/mode/1up">engineering
drawing 2021152</a> fell into our hands. This
drawing is a cumulative listing of all manufactured rope
modules, including all of their memory-bank
checksums. While it is possible that some ropes were
manufactured <i>after</i> the highest revision of this
drawing (which goes through Apollo 14), it's hard to see
how it could be in error prior to that. The drawing
includes Luminary 99/0 and 99/1, but it definitely does <i>not</i>
include 99/2. <br>
</p>
<p>So in the end, I think we have to conclude that while the
events in Jim's story undoubtedly happened more-or-less as
he recalls them, and that his story captures very real
information about the Apollo ephemeris, the core-rope
modules for Luminary 99/2 were never manufactured. <i>We</i>
know that Luminary 99/1 worked just fine, in spite of the
incorrect ephemeris, and you can see a video of a
simulated landing using it above. Undoubtedly that
fact was known back in the day as well. My guess is
that they simply decided to stick with what had been
tested, rather than make a slightly riskier change to
something that was theoretically more correct but
untested, and that that detail has simply slipped from
memory as the decades have passed.<br>
</p>
<p>Nevertheless, one thing we are able to do in spite of
that is to imagine for you what Luminary 99/2 would have
been like. You see, if the <i>only</i> difference
between Luminary 99/1 and 99/2 is the ephemeris, and since
the <i>correct</i> ephemeris must agree with Luminary
116, then we can simply patch the correct ephemeris into
the Luminary 99/1 source code ... which is precisely what
we've done in the source-code hyperlink to the left!
You can fly it in Virtual AGC if you like, and I believe
it behaves just as expected.<br>
</p>
</td>
</tr>
<tr align="center">
<td style="vertical-align: middle; white-space: nowrap;">
Apollo 12<br>
</td>
<td style="text-align: center; vertical-align: middle;"> LM-6<br>
</td>
<td style="text-align: center; vertical-align: middle;"> H<br>
</td>
<td style="font-weight: bold; vertical-align: middle;
white-space: nowrap;"> Luminary 1B<br>
</td>
<td style="vertical-align: middle;">116<br>
</td>
<td style="text-align: center; vertical-align: middle;"><a
href="listings/Luminary116/MAIN.agc.html">As colorized,
hyperlinked HTML</a><br>
<br>
or<br>
<br>
<a href="ScansForConversion/Luminary116/">
Reduced-size scanned JPG</a><br>
(300MB)<br>
<br>
or<br>
<br>
<a href="https://archive.org/details/luminary11600nasa">High-quality
scanned
JPEG 2000</a><br>
(700MB)</td>
<td valign="middle" align="center"><a href="2003993-051.html">AGC</a><br>
<br>
<a href="2003994-091.html">DSKY</a><br>
<br>
<a href="6014999-071.html"> G&N System</a></td>
<td style="text-align: left;"> <a
href="Documents/LM_Systems_Handbook_060269.pdf"> Excerpted
LM Systems Handbook</a><br>
<br>
<span style="text-decoration: underline;">Operational Data
Book</span><br>
<ul>
<li><a
href="Documents/SNA-8-D-027III-Rev2-CsmLmSpacecraftOperationalDataBook-Volume3-MassProperties.pdf">Volume
3</a></li>
</ul>
<a href="Documents/Apollo12FlightPlan.pdf">Flight Plan</a><br>
<br>
<a
href="Documents/MSC%2069-FM-248%20Spacecraft%20Operational%20Trajectory%20for%20Apollo%2012%20Volum%20I.pdf">Spacecraft
Operational
Trajectory</a><br>
<br>
<a href="Documents/j2-80-MSC-69-FS-4_text.pdf">Programmed
Guidance Equations for Luminary 1B</a><br>
<br>
<a href="Documents/apollo12landingd00miti.pdf">Digital
simulation of the lunar landing</a><br>
<br>
<a href="Documents/HSI-208616.pdf">E-2260: Guidance,
Navigation, and Control Lunar Module Functional
Description and Operation Using Flight Program LUMINARY
(Rev. 116)</a><br>
</td>
<td style="text-align: left; vertical-align: middle;">This is
from the hardcopy in Don Eyles's private collection, as
scanned at archive.org (sponsored by Ron Burkey, me).
Unfortunately, the printout is pretty faint, and pp.
217-220, 226 are entirely missing. But we've worked
around the missing pages and have been able to completely
reconstruct them.<br>
<br>
Regarding the Programmed Guidance Equations document
hyperlinked at the left, it is an MSC document whose purpose
is "to provide more effective identification and analysis of
various program performance features and to permit more
effective review of published computer program
documentation". In other words, while it does contain
material related to guidance equations, it is perhaps better
to think of this as being a pseudo-code description of the
Luminary 116 program.<br>
<br>
The digital simulation of the landing, from Don Eyles's
personal collection (with scanning financially sponsored by
Matthew Fite), had been made a few months <i>after</i> the
Apollo 12 landing itself. But why? Surely, the
simulation is useful only <i>before</i> the landing? Niklas
Beug has researched the matter, and has noticed that a
couple of the pad-load settings (namely TCGIBRAK and
TCGFBRAK) in the digital simulation are a bit
puzzling. What these tricky pad-load values do is to
prevent the time-consuming computation of the matrix for
converting between the coordinate system of the Inertial
Measurement Unit's stable platform and the coordinate system
of the landing site from occurring within P63. This is
fine because the stable platform is aligned (by the
astronauts) with the landing site reference frame before the
approach occurs, so the two coordinate systems are one and
the same. The Apollo 12 software, then, was used for
testing that this would work simply because it was
coincidentally the most-current software revision at the
time, and not because the digital simulation had anything to
do with Apollo 12 as such. And Niklas has actually
performed a simulated landing with these pad-loads to insure
that it can be done. Admittedly, Don Eyles isn't
particularly receptive of this explanation, so the
conclusion remains in doubt.<br>
<br>
As far as document E-2260 is concerned, its preface say the
following: "The purpose of this document is twofold.
The first is to provide a functional description
(operationally oriented) of the LM GNCS hardware and
software and the interfaces with other spacecraft
systems. The level of detail is that required to
identify and define telemetry outputs. Also included are
function flow diagrams of the LUMINARY programs and routines
together with lists of verbs, nouns, option codes, and
checklist codes for this flow. The second purpose is to
provide the operational procedures for this hardware and
software including nominal airborne condensed checklists,
malfunction procedures, and program notes." </td>
</tr>
<tr>
<td rowspan="4" colspan="1" valign="middle" align="center"><font
color="#000000">Apollo 13</font><br>
</td>
<td rowspan="4" colspan="1" valign="middle" align="center">LM-7<br>
</td>
<td rowspan="4" colspan="1" valign="middle" align="center">H-2<br>
</td>
<td rowspan="4" colspan="1" valign="middle" align="center"><b>Luminary
1C</b><br>
</td>
<td valign="middle" align="center">130<br>
</td>
<td valign="middle" align="center"><a
href="listings/Luminary130/MAIN.agc.html">As colorized,
hyperlinked, HTML</a></td>
<td rowspan="4" colspan="1" valign="middle" align="center"><br>
<a href="2003993-031.html">AGC</a><br>
<br>
<a href="2003994-091.html">DSKY</a><br>
<br>
<a href="6014999-101.html"> G&N System</a></td>
<td rowspan="4" colspan="1" valign="middle"><br>
<span style="text-decoration: underline;">GSOP (R-567)</span><br>
<ul>
<li><a href="NARA-SW/R-557-sec1-rev1.pdf"> Section 1</a><br>
</li>
<li><a href="NARA-SW/R-567-sec2-rev8.pdf"> Section 2</a></li>
<li><a href="NARA-SW/R-567-sec3-rev4.pdf"> Section 3</a></li>
<li>Section 4:</li>
<ul>
<li><a href="NARA-SW/R-567-sec4-rev7-intro.pdf">
Introduction</a></li>
<li><a href="NARA-SW/R-567-sec4-rev7-P00-P39.pdf">
P00-P39</a><br>
</li>
<li><a href="NARA-SW/R-567-sec4-rev7-P40-P69.pdf">
P40-P69</a><br>
</li>
<li><a href="NARA-SW/R-567-sec4-rev7-P70-R09.pdf">
P70-R09</a>. (192 pages, 3.3M bytes.)<br>
</li>
<li><a href="NARA-SW/R-567-sec4-rev7-R10-R56.pdf">
R10-R56</a><br>
</li>
<li><a href="NARA-SW/R-567-sec4-rev7-R57-end.pdf"> R57-</a><br>
</li>
</ul>
<li>Section 5:</li>
<ul>
<li><a href="NARA-SW/R-567-sec5-rev8-5.1-5.2.pdf">
5.1-5.2</a><br>
</li>
<li><a href="NARA-SW/R-567-sec5-rev8-5.3.pdf"> 5.3</a><br>
</li>
<li><a href="NARA-SW/R-567-sec5-rev8-5.4-5.5.pdf">
5.4-5.5</a><br>
</li>
<li><a href="NARA-SW/R-567-sec5-rev8-5.6-end.pdf"> 5.6-</a><br>
</li>
</ul>
<li><a href="NARA-SW/R-567-sec6.pdf">Section 6</a></li>
</ul>
<p><a href="Documents/j2-80-E-2448-REV1_text.pdf">Users'
Guide to Apollo GN&CS Major Modes and Routines, Rev
1</a></p>
<ul>
</ul>
<a href="Documents/LM7_Pad_loads.pdf">Pad loads for LM-7</a><br>
<br>
<a href="Documents/LM_Systems_Handbook_060269.pdf">
Excerpted LM Systems Handbook</a><br>
<br>
<span style="text-decoration: underline;">Operational Data
Book</span><br>
<ul>
<li><a
href="Documents/SNA-8-D-027III-Rev2-CsmLmSpacecraftOperationalDataBook-Volume3-MassProperties.pdf">Volume
3</a></li>
</ul>
<p><a href="Documents/j2-80-MSC-70-FS-2_text.pdf">Programmed
Guidance Equations for Luminary 1C</a><br>
</p>
<ul>
</ul>
</td>
<td valign="middle"><a name="LUM130"></a>Luminary 130 was the
first software release whose ropes were manufactured for the
Apollo 13 LM. There were several subsequent releases
due to bug fixes, so it never actually flew.<br>
<br>
We do not have a physical assembly listing for Luminary 130,
but it has proven possible to reconstruct the source code
with complete confidence (thanks, Mike Stewart!).<br>
<br>
The reason this is possible is that we have a scan of a
Luminary 131 assembly listing, plus <a
href="Documents/LUM129-001.pdf">LUMINARY Memo #129</a>
describing the differences (all minor) between 130 and 131,
thus making it possible undo those changes. Finally,
the recently-uncovered <a
href="https://archive.org/stream/apertureCardBox467Part2NARASW_images#page/n80/mode/1up">engineering
drawing 2021152</a> lists all of the memory-bank checksums
for Luminary 130, thus making it possible to verify that the
modified code has the proper memory-bank checksums.<br>
</td>
</tr>
<tr align="center">
<td style="vertical-align: middle; white-space: nowrap;">131<br>
</td>
<td style="text-align: center; vertical-align: middle;"> <a
href="listings/Luminary131/MAIN.agc.html">As colorized,
hyperlinked, HTML</a><br>
<br>
<a href="ScansForConversion/Luminary131"> <span
style="text-decoration: underline;">Scanned page images
from HRST (<span style="font-style: italic;">very</span>
big, very poor quality!)</span></a><br>
<br>
<a href="ScansForConversion/Luminary131-Eyles/">Scanned page
images, Don Eyles (very big, medium quality!)</a><br>
<br>
<a href="https://archive.org/details/luminary131agcpr00miti">Scanned
page
images, Don Eyles (very very big, good quality!)</a><br>
</td>
<td style="text-align: left; vertical-align: middle;"> <a
name="Luminary131"></a>This is the second Luminary release
whose ropes were manufactured for Apollo 13, but it was not
the revision eventually flown in the mission. Unfortunately,
for over a decade, I said here that it was the revision
actually flown. Niklas Beug was sharp enough to notice
what I was not, namely in the table from <a
href="R700-3-Table4-11.jpg">document R-700 shown at the
top of this very web-page</a> that what <i>we</i> have is
the first version (December 1969) of Luminary 131, but that
subsequent versions were released in January and February
1970, and it was the latter of which that was flown. <br>
<br>
In the early years of this project (2003-2016), we relied on
a scanned PDF of Luminary 131 that had appeared on the
now-defunct History of Recent Technology (HRST)
website. We're not entirely sure of the history of
that scan, though there is <a
href="ScansForConversion/Luminary131/coverLetter.png">a
great cover letter</a> from original AGC developer Jim
Kernan that goes with it. What we are pretty sure of is that
David Craig, apparently a great collector of AGC artifacts,
asked for an AGC program listing, got this one (possibly
xeroxed by Hugh Blair-Smith according to one theory), and
that Gary Neff scanned it, passing the scans along to the
HRST website administrators. Unfortunately, the image
quality became severely compromised after that point ... but
whatever the image quality, we have to be grateful to all of
these folks, because it was really the existence of this
scan that made our entire Virtual AGC project
possible. Thanks, guys! Gary Neff also later
kindly provided me with a replacement for a page which is
garbled in the HRST version. This original scan is
still available, linked at the left as "Scanned page images
from HRST".<br>
<br>
Nevertheless, however grateful we may feel for the HRST
version, we're luckier today to have an infinitely superior
scan, made for us from the personal collection of AGC
developer Don Eyles, and scanned for us by
archive.org. A few pages (1728-1734) happen to be
missing from Don's copy, and I've simply inserted them from
the HRST copy.<br>
<br>
Finally ... we can tell that these two different scans
actually came from the same <i>physical</i> copy.
This makes sense from Jim Kernan's cover letter to David
Craig, which says that Don Eyles supplied it. However,
if you try to check the scans for the hand-written notes
that appear on many of the AGC listings, you soon realize
that the HRST version doesn't have the notations that the
Eyles version has, which is at first blush is impossible
from the same printout! Well, if you're persistent
enough, you do eventually find notations that appear on both
of them. (Look on page 750.) So the conclusion
must be that Don (or somebody) wrote in most of these notes
<i>after</i> the HRST version was copied in 1991, rather
than during the actual Apollo project. Isn't that nice
to think that the program was actually being read and deeply
examined, instead of simply being forgotten on a shelf?<br>
<br>
Regarding the Users' Guide hyperlinked at the left, it is "a
comprehensive, user-oriented description of the APOLLO
GN&C system ... revised as necessary to remain current",
but not targeted at specific missions. However, given
that it is dated July 1970, it is probably pretty accurate
for Apollo 13.<br>
<br>
Regarding the Programmed Guidance Equations document
hyperlinked at the left, it is an MSC document whose purpose
is "to provide more effective identification and analysis of
various program performance features and to permit more
effective review of published computer program
documentation". In other words, while it does contain
material related to guidance equations, it is perhaps better
to think of this as being a pseudo-code description of the
Luminary 116 program. (On the other hand, Section 5 of
the GSOP, "Guidance Equations", also hyperlinked at the
left, does indeed cover this topic explicitly.)<br>
</td>
</tr>
<tr>
<td valign="middle" align="center">131/9<br>
</td>
<td valign="middle" align="center">Perhaps soon ...<br>
</td>
<td valign="top">This is the third Luminary release whose
ropes were manufactured for Apollo 13, but it was not the
revision eventually flown in the mission. <br>
<br>
In calling it revision 131/9, I am really shorthand for
"LUM. 131 REV. 9", which is a very curious designation,
considering that it is "LUM. 131 REV 1" from a few months
later that actually flew in the mission. My guess is
that "REV. 9" is really itself a shorthand for "REV. 0.9".<br>
</td>
</tr>
<tr>
<td valign="middle" align="center">131/1<br>
</td>
<td valign="middle" align="center">Perhaps soon ...</td>
<td valign="top">This is the fourth and final Luminary release
whose ropes were manufactured for Apollo 13, and it was the
revision eventually flown in the mission.</td>
</tr>
<tr>
<td valign="middle" align="center">N/A<br>
</td>
<td valign="middle" align="center">N/A<br>
</td>
<td valign="middle" align="center">H<br>
</td>
<td valign="middle"><b>Zerlina</b><br>
</td>
<td valign="middle">56<br>
</td>
<td valign="middle" align="center"><a
href="listings/Zerlina56/MAIN.agc.html">As colorized,
hyperlinked, HTML</a><br>
<br>
or<br>
<br>
<a href="ScansForConversion/Zerlina56/">Scanned page images
(big, medium quality!)</a><br>
<br>
or<br>
<br>
<a href="https://archive.org/details/zerlina00done">Scanned
page images (very big, good quality!)</a></td>
<td valign="middle" align="center">N/A<br>
</td>
<td valign="middle">Digital simulation of a lunar landing: <a
href="Documents/zerlinalunarland00done.pdf">low resolution</a>
or <a
href="https://archive.org/details/zerlinalunarland00done">high
resolution</a><br>
</td>
<td valign="top"><a name="Zerlina"></a>ZERLINA was an
off-the-main branch AGC program, by Don Eyles, which
experimentally developed a number of proposed improvements
to Luminary. Some of these improvements were actually
incorporated in later versions of Luminary ... but also,
many were never used, even where they were demonstrably
better, due to the need to avoid unnecessary risks —
changing software is always a risk! — as the Apollo program
approached its end. For example, I believe that improved
methods for increasing the positional accuracy of the
landing were explored in it, partially due to some ideas of
astronaut John Young, who flew Zerlina in the LM simulator.<br>
<br>
Our scan of ZERLINA, by the way, was financially sponsored
by Linden Sims. Thanks, Linden!<br>
<br>
Zerlina itself was apparently branched from Luminary 145,
and was developed independently for a period of 6-7
months. Quite a few <a
href="links.html#LUMINARY_Memos">LUMINARY Memos</a>
describe the evolution of Zerlina, such as memos #138, #149,
#161, #171, and #177. Memo #177 covers Zerlina 56
specifically, so as far as we know, 56 was probably the last
version of Zerlina.<br>
<br>
Zerlina was not the <i>only</i> such experimental branch of
the AGC code, but it is the only one (that we know of) to
have survived, and it is the one about which we have the
most information.<br>
<br>
Regarding the digital landing simulation linked at the left,
it is an Apollo-era simulation run by Don Eyles, rather than
a "modern" simulation done by the Virtual AGC project.
The printout came from Don's own private hoard, and the
scanning for our Internet Archive collection was financed by
Niklas Beug and Alex Bart (thanks, guys!).<br>
<br>
In fact, Nik has actually flown a lunar landing using
Zerlina in the NASSP/Orbiter spacecraft simulator, and has
shared a video of it:<br>
<br>
<center><iframe
src="https://www.youtube.com/embed/PP-LzofxsKA"
allowfullscreen="" width="480" height="270"
frameborder="0"></iframe></center>
<br>
</td>
</tr>
<tr>
<td rowspan="3" colspan="1" valign="middle"><span
style="color: rgb(0, 0, 0);">Apollo 14</span><br>
</td>
<td rowspan="3" colspan="1" valign="middle"> LM-8<br>
</td>
<td rowspan="3" colspan="1" valign="middle"> H-3<br>
</td>
<td rowspan="3" colspan="1" valign="middle"> <span
style="color: rgb(0, 0, 0);">Luminary 1D</span><br>
</td>
<td valign="middle" align="center">163<br>
</td>
<td valign="middle" align="center"><a
href="listings/Luminary163/MAIN.agc.html">As colorized,
hyperlinked, HTML</a></td>
<td rowspan="3" colspan="1" valign="middle"><a
href="2003993-071.html">AGC</a><br>
<br>
<a href="2003994-091.html">DSKY</a><br>
<br>
<a href="6014999-111.html"> G&N System</a></td>
<td rowspan="3" colspan="1" valign="middle"> <a
href="Documents/LM_Systems_Handbook_060269.pdf"> Excerpted
LM Systems Handbook</a><br>
<br>
<a href="http://www.doneyles.com/LM/Tales.html">The solder
ball</a><br>
<br>
<a href="Documents/j2-80-E-2448-REV1_text.pdf">Users' Guide
to Apollo GN&CS Major Modes and Routines, Rev 1</a><br>
<br>
Apollo Guidance and Navigation Flowcharts, Program Luminary
1D (Rev 173): <a
href="Documents/j2-80-E-2471-REV2-VOL1_text.pdf">Volume
1/2</a> and <a
href="Documents/j2-80-E-2471-REV2-VOL2_text.pdf">Volume
2/2</a><br>
<br>
<span style="text-decoration: underline;">Operational Data
Book</span><br>
<ul>
<li><a
href="Documents/SNA-8-D-027III-Rev2-CsmLmSpacecraftOperationalDataBook-Volume3-MassProperties.pdf">Volume
3</a><br>
</li>
</ul>
</td>
<td rowspan="2" colspan="1" valign="top"><a name="Luminary163"></a>Luminary
163 and Luminary 173 were the first and second revisions of
Luminary targeted for the Apollo 14 Lunar Module.
Their core-rope modules were manufactured, but they were not
actually flown in the mission. (See Luminary 178
below.)<br>
<br>
No contemporary program listings for Luminary 163 and 173
are known to us, but the programs have been reconstructed
with a high degree of confidence. You should consult
Mike Stewart's notes on the reconstruction (see issues <a
href="https://github.com/virtualagc/virtualagc/pull/1098">#1098</a>
and <a
href="https://github.com/virtualagc/virtualagc/pull/1099">#1099</a>
in our software repository) to understand the reconstruction
process and the differences from software version to
software version. Regarding confidence, however, the
important point to note in these (and in all such)
reconstructions is that in addition to matching the
documented version-to-version changes, the memory-bank
checksums of the reconstructed software match those of the
manufactured core-rope modules as listed in MIT/IL
engineering drawing <a
href="https://archive.org/stream/apertureCardBox467Part2NARASW_images#page/n80/mode/1up">2021152N</a>.
However, things like program comments and page numbering,
which do not affect the contents of the rope memory, may
differ from those of the true program listings.<br>
</td>
</tr>
<tr>
<td valign="middle" align="center">173<br>
</td>
<td valign="middle" align="center"><a
href="listings/Luminary173/MAIN.agc.html">As colorized,
hyperlinked, HTML</a></td>
</tr>
<tr align="center">
<td style="color: rgb(255, 0, 0); vertical-align: middle;"
valign="middle" align="center"> <span style="color: rgb(0,
0, 0);">178</span><br>
</td>
<td style="text-align: center; vertical-align: middle;"> <a
href="listings/Luminary178/MAIN.agc.html">As colorized,
hyperlinked, HTML</a> </td>
<td style="text-align: left; vertical-align: middle;"> <a
name="Apollo14"></a>This is the actual flight program for
the Apollo 14 Lunar Module.<br>
<br>
We've never found any original printout of the Luminary 178
program, but Mike Stewart has managed to reconstruct the
program, and we have a very high degree of confidence that
the reconstruction is correct. By that, I mean that
the source code which has been reconstructed assembles to a
core-rope image in 100% byte-for-byte (or word-for-word, to
be picky) agreement with what was flown in Apollo 14 — i.e.,
a 100% correct executable program. However, because of
the nature of the reconstruction process, it's extremely
likely that some program comments or other superficial
features that don't affect the final core-rope image won't
agree perfectly with the original code, if/when we ever find
a copy of it.<br>
<br>
Mike describes the reconstruction process in detail in his
notes for issues <a
href="https://github.com/virtualagc/virtualagc/pull/1093">#1093</a>
and <a
href="https://github.com/virtualagc/virtualagc/pull/1095">#1095</a>
in our software repository, but don't read them unless you
want to be awed. I'm willing to summarize it for you
in a <i>slightly</i> less mind-boggling way.<br>
<br>
At the time the reconstruction was done (Summer 2019), the
closest revisions to Luminary 178 that were available to us
were those of <a href="#Luminary131">Luminary 131</a>
(Apollo 13) and <a href="#Luminary210">Luminary 210</a>
(Apollo 15). Note the huge gaps: There were 47
revisions of Luminary between Apollo 13 and 14, and 32
revisions of Luminary between Apollo 14 and 15 ... and the
reconstruction requires you to either add in or subtract out
most of those changes! So how does one fill in such
huge gaps?<br>
<br>
Fortunately, Mike noticed additionally that we had a copy of
<a href="#Zerlina">Zerlina 56</a>, which is not technically
Luminary, but which was branched from Luminary 145, and had
had <i>most</i> of the changes up through Luminary 183
added to it afterward. So Zerlina 56 <i>ought</i> to
be much closer to Luminary 178 than either Luminary 131 or
210 is. Additionally, our document library has a vast
store of "<a href="links.html#LUMINARY_Memos">Luminary Memos</a>",
many of which are devoted to describing (albeit only
textually) the differences from one Luminary (and Zerlina)
revision to the next. Simply slogging through all of
the differences between Luminary 131, Luminary 210, and
Zerlina 56, and cross-referencing those differences to the
Luminary Memos (and other supporting documentation), was all
it took to reconstruct Luminary 178. Well, that and a
lot of cleverness, and several months of effort! In
the end, Mike says that only 6 lines of code needed to be
written from scratch, as opposed to being taken as-is from
one of those other sources.<br>
<br>
And perhaps most-importantly, since nobody (even Mike!)
would have been likely to attempt a reconstruction without
it, we have MIT/IL engineering drawing <a
href="https://archive.org/stream/apertureCardBox467Part2NARASW_images#page/n80/mode/1up">2021152N</a>.
This drawing is a list of the memory-bank checksums of all
manufactured Luminary rope-memory modules. Since the
memory-bank checksums for Luminary 178 listed in drawing
2021152N <i>agree</i> with the memory-bank checksums you
get when you assemble the reconstructed Luminary 178 source
code, we are confident the reconstruction is correct!<br>
<br>
As the final icing on the cake, Niklas Beug, a developer and
user of <a href="https://github.com/dseagrav/NASSP">NASSP,
the Apollo-mission add-on for the Orbiter spaceflight
simulator</a>, has flown the reconstructed Luminary 178
code in the simulator, and performed a landing with it,
apparently without problems of any kind ... I guess that
means that the simulator <i>didn't</i> have a ball of
solder rolling around inside the control panel and
threatening to short out the ABORT button. (Ha!)
I have no video of the simulated landing to show you, but at
least you can see the lander resting at Fra Mauro at the end
of the simulation in the following screenshot:<br>
<br>
<div align="center"><a href="simAtFraMauro.jpg"><img alt=""
title="Click to enlarge" src="simAtFraMauro-small.jpg"
width="420" height="263" border="2"></a><br>
</div>
<small><br>
<br>
</small>Regarding the Users' Guide hyperlinked at the left,
it is "a comprehensive, user-oriented description of the
APOLLO GN&C system ... revised as necessary to remain
current", but not targeted at specific missions.
However, given that it is dated July 1970, it is probably
pretty accurate for Apollo 14. </td>
</tr>
<tr>
<td valign="middle" align="center">N/A<br>
</td>
<td valign="middle" align="center">N/A<br>
</td>
<td valign="middle" align="center">J<br>
</td>
<td valign="middle" align="center"><b>Luminary 1D</b><br>
</td>
<td valign="middle" align="center">209<br>
</td>
<td valign="middle" align="center"><br>
</td>
<td valign="middle" align="center">N/A<br>
</td>
<td valign="middle"><br>
</td>
<td valign="middle">AGC developer Allan Klumpp retained a copy
of Luminary 209, based on the the belief that it had flown
on Apollo 17. Unfortunately, this turns out not to
have been the case, and it was really Luminary 210 that flew
(see below). But that doesn't invalidate the value of
Luminary 209. We'd still like to scan it and present
it for you here!<br>
<br>
As it turns out, the printout was donated to <a
href="http://www.klabs.org">klabs.org</a> before we could
get access to it, nor do we have access to it today, but
perhaps we'll be able to scan it some day. <br>
</td>
</tr>
<tr align="center">
<td style="vertical-align: middle; white-space: nowrap;">
Apollo 15<br>
</td>
<td style="text-align: center; vertical-align: middle;"> LM-10<br>
</td>
<td style="text-align: center; vertical-align: middle;"> J-1<br>
</td>
<td rowspan="3" style="font-weight: bold; vertical-align:
middle; white-space: nowrap;"> Luminary 1E</td>
<td rowspan="3" style="vertical-align: middle;">210<br>
</td>
<td rowspan="3" style="text-align: center; vertical-align:
middle;"><br>
<br>
<a href="listings/Luminary210/MAIN.agc.html">As colorized,
hyperlinked, HTML</a><br>
<br>
or<br>
<br>
<a href="ScansForConversion/Luminary210-BW/">
Reduced-resolution high-contrast black&white PNG</a><br>
(300MB)<br>
<br>
or<br>
<br>
<a href="ScansForConversion/Luminary210/">
Reduced-resolution scanned color JPG</a><br>
(250MB)<br>
<br>
or<br>
<br>
<a href="https://archive.org/details/luminary21000miti">High-resolution
scanned
JPEG 2000</a><br>
(500MB)<br>
<br>
<br>
</td>
<td valign="middle" align="center"><a href="2003993-091.html">AGC</a><br>
<br>
<a href="2003994-091.html">DSKY</a><br>
<br>
<a href="6014999-141.html"> G&N System</a></td>
<td rowspan="1" style="text-align: left;"> <a
href="Documents/LmQuickReferenceApollo15.zip"> LGC Data
Cards</a><br>
<br>
<a href="Documents/msc05225.pdf"><span style="font-style:
italic;"> Program Notes</span></a><br>
<br>
<a
href="http://www.hq.nasa.gov/alsj/a15/a15.CMsoftware.html">Delco
Manual</a><br>
<br>
<span style="text-decoration: underline;">GSOP (R-567)</span><br>
<ul>
<li>Section 1, "Prelaunch": TBD<br>
</li>
<li>Section 2, "Data Links":<br>
</li>
<ul>
<li><a href="Documents/j2-80-R-567-SEC2-REV12_text.pdf">Preferred
copy</a><br>
</li>
<li><a
href="Documents/R-567-GSOP-Luminary1E-Section2-DataLinks.pdf">Alternate
copy<br>
</a></li>
</ul>
<li><a href="Documents/j2-80-R-567-SEC3-REV8_text.pdf">Section
3,
"Digital Autopilot"</a><br>
</li>
<li><a href="Documents/j2-80-R-567-SEC4-REV10_text.pdf">Section
4,
"Operational Modes"</a><br>
</li>
<li><a href="Documents/j2-80-R-567-SEC5-REV11_text.pdf">Section
5,
"Guidance Equations</a><br>
</li>
<li>(This GSOP does not have a Section 6.)<br>
</li>
<li>Section 7, "Erasable Memory Programs":<br>
</li>
<ul>
<li><a href="Documents/j2-80-R-567-SEC7_text.pdf">Preferred
copy</a><br>
</li>
<li><a
href="Documents/R-567-GSOP-Luminary1E-Section7-ErasableMemoryPrograms.pdf">Alternate
copy</a></li>
</ul>
</ul>
<p><a href="Documents/j2-80-E-2448-REV4_text.pdf">Users'
Guide to Apollo GN&CS Major Modes and Routines, Rev
4, Colossus 3 and Luminary 1E</a></p>
<ul>
</ul>
<span style="text-decoration: underline;">Operations
Handbook</span><br>
<ul>
<li><a
href="Documents/LMA790-3-LM10-ApolloOperationsHandbookLunarModuleLM10AndSubsequent-Volume1-SubsystemsData.pdf">Volume
1</a></li>
<li>Volume 2</li>
</ul>
<span style="text-decoration: underline;">Operational Data
Book</span><br>
<ul>
<li><a
href="Documents/SNA-8-D-027III-Rev2-CsmLmSpacecraftOperationalDataBook-Volume3-MassProperties.pdf">Volume
3</a></li>
</ul>
<a href="Documents/Apollo15TechnicalCrewDebriefing.pdf">Crew
Debriefing</a><br>
<br>
<a href="Documents/Apollo15FlightPlan.pdf"> Flight Plan</a><br>
<br>
<span style="text-decoration: underline;">Checklists</span><br>
<ul>
<li><a href="Documents/Apollo15LMActivationChecklist.pdf">
LM Activation</a></li>
</ul>
<a
href="Documents/LMA790-2-LunarModuleLM10Through14VehicleFamiliarizationManual.pdf">LM
Familiarization
Manual</a></td>
<td rowspan="3" style="text-align: left; vertical-align:
middle;"><a name="Luminary210"></a>Luminary 210 is what flew
on Apollo 15-17. The scan we have is taken from AGC
developer Don Eyle's collection, as scanned by archive.org,
and financially sponsored by our Jim Lawton. Thanks,
Jim!<br>
<br>
Below, you can see a video made by Niklas Beug of a
simulated Apollo 15 lunar landing, using this Luminary 210
AGC software and the Orbiter spaceflight simulator, with the
NASSP 8.0 Apollo-mission add-on and our own AGC CPU
simulator. (A higher-resolution version is probably
available if you go directly to YouTube.)<br>
<br>
<center><iframe
src="https://www.youtube.com/embed/E301HplyA7A"
allowfullscreen="" width="480" height="270"
frameborder="0"></iframe></center>
<br>
Regarding "digital simulation" of the Apollo 17 landing
hyperlinked at the left, it is an Apollo-era computer run
(not one done by our project!), also from Don Eyles's
collection, scanned by archive.org, and financially
sponsored by our Fabrizio Bernardini. It includes
things like the pad loads, position of the LM at any given
time, what's displayed on the DSKY at those times, and so
forth.<br>
<br>
Regarding the Users' Guide hyperlinked at the left, it is "a
comprehensive, user-oriented description of the APOLLO
GN&C system ... revised as necessary to remain current",
but not targeted at specific missions. However, given
that it specifically references Colossus 3 and Luminary 1E,
that seems pretty specific to Apollo 15, 16, and 17.<br>
</td>
</tr>
<tr align="center">
<td style="vertical-align: middle; white-space: nowrap;">
Apollo 16<br>
</td>
<td style="text-align: center; vertical-align: middle;"> LM-11<br>
</td>
<td style="text-align: center; vertical-align: middle;"> J-2<br>
</td>
<td valign="middle" align="center"><a href="2003993-111.html">AGC</a><br>
<br>
<a href="2003994-091.html">DSKY</a><br>
<br>
<a href="6014999-151.html"> G&N System</a></td>
<td style="text-align: left;"> <a
href="Documents/msc05225.pdf"><span style="font-style:
italic;"> Program Notes</span></a><br>
<br>
<span style="text-decoration: underline;">GSOP (R-567)</span><br>
<ul>
<li>Section 1, "Prelaunch": TBD<br>
</li>
<li>Section 2, "Data Links":<br>
</li>
<ul>
<li><a href="Documents/j2-80-R-567-SEC2-REV12_text.pdf">Preferred
copy</a><br>
</li>
<li><a
href="Documents/R-567-GSOP-Luminary1E-Section2-DataLinks.pdf">Alternate
copy<br>
</a></li>
</ul>
<li><a href="Documents/j2-80-R-567-SEC3-REV8_text.pdf">Section
3,
"Digital Autopilot"</a><br>
</li>
<li><a href="Documents/j2-80-R-567-SEC4-REV10_text.pdf">Section
4,
"Operational Modes"</a><br>
</li>
<li><a href="Documents/j2-80-R-567-SEC5-REV11_text.pdf">Section
5,
"Guidance Equations</a><br>
</li>
<li>(This GSOP does not have a Section 6.)<br>
</li>
<li>Section 7, "Erasable Memory Programs":<br>
</li>
<ul>
<li><a href="Documents/j2-80-R-567-SEC7_text.pdf">Preferred
copy</a><br>
</li>
<li><a
href="Documents/R-567-GSOP-Luminary1E-Section7-ErasableMemoryPrograms.pdf">Alternate
copy</a></li>
</ul>
</ul>
<p><a href="Documents/j2-80-E-2448-REV4_text.pdf">Users'
Guide to Apollo GN&CS Major Modes and Routines, Rev
4, Colossus 3 and Luminary 1E</a></p>
<ul>
</ul>
<span style="text-decoration: underline;">Operations
Handbook</span><br>
<ul>
<li><a
href="Documents/LMA790-3-LM10-ApolloOperationsHandbookLunarModuleLM10AndSubsequent-Volume1-SubsystemsData.pdf">Volume
1</a></li>
<li><a
href="Documents/LMA790-3-LM11-ApolloOperationsHandbookLunarModuleLM11AndSubsequent-Volume2-OperationalProcedures.pdf">Volume
2</a></li>
</ul>
<span style="text-decoration: underline;">Operational Data
Book</span><br>
<ul>
<li><a
href="Documents/SNA-8-D-027III-Rev2-CsmLmSpacecraftOperationalDataBook-Volume3-MassProperties.pdf">Volume
3</a></li>
</ul>
<a href="Documents/Apollo16FlightPlan.pdf">Flight Plan</a><br>
<br>
<a
href="Documents/LMA790-2-LunarModuleLM10Through14VehicleFamiliarizationManual.pdf">LM
Familiarization Manual</a><br>
</td>
</tr>
<tr>
<td style="text-align: center; vertical-align: middle;
white-space: nowrap;"> Apollo 17<br>
</td>
<td style="text-align: center; vertical-align: middle;"> LM-12<br>
</td>
<td style="text-align: center; vertical-align: middle;"> J-3<br>
</td>
<td valign="middle" align="center"><a href="2003993-111.html">AGC</a><br>
<br>
<a href="2003994-091.html">DSKY</a><br>
<br>
<a href="6014999-161.html"> G&N System</a></td>
<td> <a href="Documents/LM_Systems_Handbook_Apollo17.pdf">
Excerpted LM Systems Handbook</a><br>
<br>
<a href="Documents/msc05225.pdf"><span style="font-style:
italic;"> Program Notes</span></a><br>
<br>
<span style="text-decoration: underline;">GSOP (R-567)</span><br>
<ul>
<li>Section 1, "Prelaunch": TBD<br>
</li>
<li>Section 2, "Data Links":<br>
<a
href="Documents/R-567-GSOP-Luminary1E-Section2-DataLinks.pdf"></a></li>
<ul>
<li><a href="Documents/j2-80-R-567-SEC2-REV12_text.pdf">Preferred
copy</a><br>
</li>
<li><a
href="Documents/R-567-GSOP-Luminary1E-Section2-DataLinks.pdf">Alternate
copy<br>
</a></li>
</ul>
<li><a href="Documents/j2-80-R-567-SEC3-REV8_text.pdf">Section
3,
"Digital Autopilot"</a><br>
</li>
<li><a href="Documents/j2-80-R-567-SEC4-REV10_text.pdf">Section
4,
"Operational Modes"</a><br>
</li>
<li><a href="Documents/j2-80-R-567-SEC5-REV11_text.pdf">Section
5,
"Guidance Equations</a><br>
</li>
<li>(This GSOP does not have a Section 6.)<br>
</li>
<li>Section 7, "Erasable Memory Programs":<br>
<a
href="Documents/R-567-GSOP-Luminary1E-Section7-ErasableMemoryPrograms.pdf"></a></li>
<ul>
<li><a href="Documents/j2-80-R-567-SEC7_text.pdf">Preferred
copy</a><br>
</li>
<li><a
href="Documents/R-567-GSOP-Luminary1E-Section7-ErasableMemoryPrograms.pdf">Alternate
copy<br>
</a></li>
</ul>
</ul>
<p><a href="Documents/j2-80-E-2448-REV4_text.pdf">Users'
Guide to Apollo GN&CS Major Modes and Routines, Rev
4, Colossus 3 and Luminary 1E</a></p>
<ul>
</ul>
<span style="text-decoration: underline;">Operations
Handbook</span><br>
<ul>
<li><a
href="Documents/LMA790-3-LM10-ApolloOperationsHandbookLunarModuleLM10AndSubsequent-Volume1-SubsystemsData.pdf">Volume
1</a></li>
<li><a
href="Documents/LMA790-3-LM11-ApolloOperationsHandbookLunarModuleLM11AndSubsequent-Volume2-OperationalProcedures.pdf">Volume
2</a></li>
</ul>
<span style="text-decoration: underline;">Operational Data
Book</span><br>
<ul>
<li><a
href="Documents/SNA-8-D-027III-Rev2-CsmLmSpacecraftOperationalDataBook-Volume3-MassProperties.pdf">Volume
3</a></li>
</ul>
<a href="Documents/Apollo17TechnicalCrewDebriefing.pdf">Crew
Debriefing</a><br>
<br>
<a href="Documents/Apollo17FlightPlan.pdf"> Flight Plan</a><br>
<br>
<a
href="Documents/LMA790-2-LunarModuleLM10Through14VehicleFamiliarizationManual.pdf">LM
Familiarization Manual</a><br>
<br>
Landing digital simulation:<br>
<ul>
<li><a
href="https://archive.org/details/apollo17landingd00miti">Color
high-res
scan</a></li>
<li><a
href="ScansForConversion/Apollo17DigitalSimulation/">Local
low-res
images</a><br>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
<div style="text-align: left;"> <br>
<h2><a name="Source_Code_and_Binary" id="Source_Code_and_Binary"></a>Source
Code
and Binary</h2>
You can obtain both the source code and (independently derived)
binary code for each of the software versions mentioned by
installing Virtual AGC on your computer. The files are
contained within a subdirectory named after the software version
(such as "Luminary131"). The more important files supplied
are these:<br>
<br>
<div style="margin-left: 40px;">
<table summary="" style="width: 75%; text-align: left;
margin-left: auto; margin-right: auto;" cellspacing="2"
cellpadding="2" border="0">
<tbody>
<tr>
<td style="vertical-align: top;"><span style="font-style:
italic;">Filename</span>.agc<br>
</td>
<td style="vertical-align: top; text-align: left;"> Source
code for major subdivisions of the <span
style="font-weight: bold;">Luminary</span> program.</td>
</tr>
<tr>
<td style="vertical-align: top;">MAIN.agc<br>
</td>
<td style="vertical-align: top;">Organizer which treats
all of the other assembly-language files (*.agc) as
include-files, to form the complete program.<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;"><span style="font-style:
italic;">Filename</span>.binsource<br>
</td>
<td style="vertical-align: top;">Human-readable form of
the Luminary binary executable, as an octal listing.<br>
</td>
</tr>
<tr>
<td style="vertical-align: top;"><span style="font-style:
italic;">Filename</span>.bin<br>
</td>
<td style="vertical-align: top;">Binary executable created
from binsource (octal listing) file.<br>
</td>
</tr>
</tbody>
</table>
<br>
</div>
In other words, to create a <span style="font-weight: bold;">Luminary</span>
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:<br>
<div style="margin-left: 40px;"> <br>
<span style="font-family: monospace;">cd Luminary131</span><br
style="font-family: monospace;">
<span style="font-family: monospace;">../yaYUL/yaYUL --force
MAIN.agc >Luminary131.lst</span><br>
</div>
<br>
The listfile (Luminary131.lst) so produced is a bit more
manageable than scans of the original printouts, 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:<br>
<br>
<div style="margin-left: 40px;"> <span style="font-family:
monospace;">diff -s MAIN.agc.bin Luminary131.bin</span><br>
</div>
<br>
(Replace "diff -s" with "fc /b" in Windows.) <br>
<br>
<table summary="" style="width: 60%; text-align: left;
margin-left: auto; margin-right: auto;" cellspacing="2"
cellpadding="2" border="1">
<tbody>
<tr>
<td style="vertical-align: top;">
<h3 style="text-align: left;">Technically speaking....</h3>
A point which may not be completely appreciated is that
Luminary131.bin was <span style="font-style: italic;">not</span>
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 <span style="font-weight: bold;">Luminary</span>
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 <span style="font-weight: bold;">Oct2Bin</span>,
with the following steps:<br>
<br>
<div style="margin-left: 40px; font-family: monospace;">
cd Luminary131<br>
./Oct2Bin <Luminary131.binsource<br>
mv Oct2Bin.bin Luminary131.bin<br>
</div>
<br>
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. </td>
</tr>
</tbody>
</table>
<br>
<h2><a name="Validity" id="Validity"></a>Validation</h2>
<h3><a name="Validity_of_the_Luminary_131_Source_Code"
id="Validity_of_the_Luminary_131_Source_Code"></a>Validity of
the Luminary 131 Source Code and of the Binary (Apollo 13)<br>
</h3>
I believe that the core-rope image (which is what is needed to
actually run the <span style="font-weight: bold;">Luminary</span>
software in the yaAGC CPU emulator) I've provided for <span
style="font-weight: bold;">Luminary</span> 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 <a
href="Colossus.html#Validity">Colossus</a> software.<br>
<h3><a name="Validity_of_the_Luminary_099_Code_"
id="Validity_of_the_Luminary_099_Code_"></a>Validity of the
Luminary 099 Code (Apollo 11)<br>
</h3>
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:<br>
<ul>
<li>A small corps of volunteers—thanks (in alphabetical order)
Fabrizio Bernardini, Hartmuth Gutsche, Onno Hommes, Jim
Lawton, and Sergio Navarro!—took the existing Luminary 131
source-code files and laboriously compared them line-by-line
to the Luminary 099 assembly-listing page images, porting the
differences they found.</li>
<li>The resulting Luminary 099 source code was assembled using <span
style="font-weight: bold;">yaYUL</span> to produce a binary
executable, which was horribly wrong at this point, but was
used to create a "binsource" file (which is an octal listing
of the entire program).</li>
<li>The binsource file was laboriously proofed against the octal
listing in the page images (this time by me), and
corrected. As a double-check, the bank checksums are all
correct.</li>
<li>Finally, at every point where the binary created from the
source code by <span style="font-weight: bold;">yaYUL</span>
differed from the binsource file, the source code was compared
to the page images and corrected. After all corrections
were made, the binary created by <span style="font-weight:
bold;">yaYUL</span> was identical to the binary created from
the binsource file.</li>
</ul>
<p>The binary thus produced by <span style="font-weight: bold;">yaYUL</span>
is supplied in the source tree and used for regression testing.<br>
</p>
<h3>Validity of the Other Versions</h3>
Well, it's much the same as what's above, so I'm not going to keep
describing the same steps over and over again. Suffice it to
say that we verified them all using the same standards.<br>
<br>
</div>
<hr style="width: 100%; height: 2px;">
<center> <br>
<span style="color: rgb(84, 89, 93); font-family: sans-serif;
font-size: 11.05px; font-style: normal; font-variant: normal;
font-weight: normal; letter-spacing: normal; line-height:
16.575px; orphans: auto; text-align: center; text-indent: 0px;
text-transform: none; white-space: normal; widows: 1;
word-spacing: 0px; -webkit-text-stroke-width: 0px; display:
inline !important; float: none; background-color: rgb(255, 255,
255);"> This page is available under the <a
href="https://creativecommons.org/publicdomain/zero/1.0/">Creative
Commons
No Rights Reserved License</a></span><br>
<i><font size="-1">Last modified by <a
href="mailto:info@sandroid.org">Ronald Burkey</a> on
2021-04-20.<br>
<br>
<a href="http://www.ibiblio.org"><img style="border: 0px solid
; width: 300px; height: 100px;" alt="Virtual AGC is hosted
by ibiblio.org" src="hosted.png" width="300" height="100"></a><br>
</font></i> </center>
<br>
</body>
</html>