Main.annotation
<table style="text-align: left;" border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="white-space: nowrap; vertical-align: middle;">
<img alt="" src="Apollo32.png" style="width: 32px; height: 32px;" align="left">
</td>
<td style="vertical-align: middle;">
These source-code files are part of a reconstructed copy of Comanche 51, the
initial release (though not the final mission release) of the Apollo 11
Command Module (CM) Apollo Guidance Computer (AGC) software. The flown, final
release was Comanche 55. The reconstruction is believed to be exactly accurate,
but in the absence of an actual Apollo-era listing of Comanche 51, some
explanation of the reconstruction process is needed to insure confidence in
that accuracy.
<br><br>
The starting point was the source code of Comanche 55, whose original source code
is available. Comanche 55 source code was then modified by undoing changes known
to have been made between revisions 51 and 55. The most-significant steps involved
reverting changes related to the R-2 lunar potential model, the details of which
were known from the previous, separate, independent reconstruction of the Apollo 10
Lunar Module software Luminary 69/2. The now-reconstructed
Comanche 51 source code was verified by assembling it and checking that the assembled
code had the expected known-correct memory-bank checksums. Note that page numbers in
the reconstructed code match those on the Comanche 55 or Luminary 69 printouts, although
the source code would likely have different page numbers in a contemporary Comanche 51 listing.
<br><br>
Annotations that were not present in the contemporary source code have been added to
the reconstructed code to justify each change relative to Comanche 55. Here's a guide
to some of the Apollo documentation relevant to those annotations:<br>
<ul>
<li><a href="https://archive.org/stream/apertureCardBox467Part2NARASW_images#page/n89/mode/1up">
MIT/IL engineering drawing 2021153D, sheet 3</a>. Listing of the memory-bank
checksums for Comanche 51.</li>
<li><a href="https://archive.org/details/Comanche55J2k60">
Comanche 55 (Apollo 11 CM final release) assembly listing</a>.</li>
<li><a href="http://www.ibiblio.org/apollo/listings/LUM69R2/MAIN.agc.html">
Reconstructed Luminary69/2 (Apollo 10 LM final release) assembly listing</a>.</li>
<li><a href="https://archive.org/details/luminary6900miti">
Luminary 69 (Apollo 10 LM initial release) assembly listing</a>.</li>
<li><a href="https://archive.org/details/Colossus249MartinPp15651719">
Colossus 249 (Apollo 9 CM final release) assembly listing</a>.</li>
<li><a href="http://www.ibiblio.org/apollo/links.html#PGE_COLOSSUS2">
<i>Programmed Guidance Equations for Colossus 2, Based on Comanche 55</i></a>.
A pseudocode representation of Comanche 55, showing change bars
for differences from Comanche 45/2.</li>
</ul>
Among documentation not actually referenced in the annotations, there is
<a href="https://github.com/virtualagc/virtualagc/pull/1080">
a short writeup about the reconstruction process in our software repository</a>
that may be helpful in understanding it from a different perspective. There's also
<a href="https://www.ibiblio.org/apollo/Documents/E1142-61.pdf#page=33">a handy table</a>
that lists what the number of memory-words should be for each routine in Comanche 51,
which could make a nice double-check; however, we've not performed that double-check ourselves.
<br><br>
Comments expected to have been present in the original source code are prefixed with a single '#' symbol,
whereas comments added later are prefixed by "##" or "###". Report any errors
noted by creating an
issue report at <a href="https://github.com/rburkey2005/virtualagc/issues">the Virtual AGC
Project's GitHub repository</a>.
</td></tr></tbody></table>