swh:1:snp:cdcd2bc43331a436e8c659ba93175ef7d7eb339b
Raw File
Tip revision: 9134d090f9474dbf69599fcb1588f58ee90abaeb authored by Ron Burkey on 24 December 2018, 21:50:36 UTC
Added an alternate version of the 1003186-browsing page from the last
Tip revision: 9134d09
Colossus.html
<!DOCTYPE doctype PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
  <head>
    <meta name="generator" content="HTML Tidy for HTML5 for Linux
      version 5.3.14">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; I; Linux
      2.4.16 ppc) [Netscape]">
    <meta name="Author" content="Ronald Burkey">
    <title>Virtual AGC Colossus Page</title>
    <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@","Colossus &mdash; Comanche &mdash; Artemis").replace("@SUBTITLE@","Sunspot &mdash; Solarium &mdash; Sundisk &mdash; Skylark<br>Command-Module Flight Software"))
  </script>
    <h2>Contents</h2>
    <ul>
      <li><a href="#What_is_Colossus_">What is "Colossus"?</a></li>
      <li><a href="#Its_Always_Sunny_in_Outer_Space_">It's Always Sunny
          in Outer Space</a></li>
      <li><a href="#Known_Software_Versions">Known 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="#ValidityApollo9">Validity of the Colossus 249 Code
            (Apollo 9)</a></li>
        <ul>
          <li><a href="#A_Tour_of_the_Source_Materials">A Tour of the
              Source Materials</a></li>
          <li><a href="#Proofing_in_the_Usual_Case">Proofing in the
              Usual Case</a></li>
          <li><a href="#Proofing_in_Extraordinary_Cases_">Proofing in
              Extraordinary Cases</a></li>
          <li><a href="#When_All_Else_Fails">When All Else Fails—Digital
              Archaeology</a></li>
          <li><a href="#Happy_Epilogue">Happy Epilogue!</a></li>
        </ul>
        <li><a href="#ValidityApollo11">Validity of the Comanche 055
            Code (Apollo 11)</a></li>
        <li><a href="#ValiditySource15">Validity of Artemis 072 Code
            (Apollo 15-17)</a></li>
        <li><a href="#ValidityApollo8">Validity of Colossus 237 (Apollo
            8)</a></li>
        <li><a href="#Validity_of_Solarium_055_Apollo_4">Validity of
            Solarium 055 (Apollo 6)</a><br>
        </li>
      </ul>
    </ul>
    <h2><a name="What_is_Colossus_"></a><small><big>What is "Colossus"?</big><br>
      </small></h2>
    <span style="font-weight: bold;">Colossus</span> is the program
    which was run on the Apollo Guidance Computer installed in the
    Command Module (CM).&nbsp; In order to be loaded into the
    AGC—actually, to be converted to the "core ropes" within the AGC—it
    was necessary to "assemble" <span style="font-weight: bold;">Colossus</span>'s

































    source code into binary machine language, using a computer program
    called <span style="font-weight: bold;">YUL</span>.&nbsp; In the
    context of the Virtual AGC project, of course, the process is
    somewhat different:&nbsp; <span style="font-weight: bold;">Colossus</span>
    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>
    <h2><a name="Its_Always_Sunny_in_Outer_Space_"></a>It's Always Sunny
      in Outer Space<br>
    </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><a
      href="a042186-051.jpg"><span style="font-weight: bold;"><img
          src="a042186-051-small.jpg" alt="" width="140" height="160"
          border="2" align="right"></span></a><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>Programs













    with names like <span style="font-weight: bold;">Sundisk</span>, <span
      style="font-weight: bold;">Solarium</span>, and <span
      style="font-weight: bold;">Sunspot</span> were pre-<span
      style="font-weight: bold;">Colossus</span> versions of the Command
    Module AGC's software.&nbsp; They were not forms of <span
      style="font-weight: bold;">Colossus</span> as such, but provided
    some code for <span style="font-weight: bold;">Colossus</span>.&nbsp;

































    If you click on the image to the left, you can see a simplified
    family tree for <span style="font-weight: bold;">Colossus</span>,
    drawn by me, while if you click on the tables to the right depicts
    the various versions of the software from Apollo-era documents.<br>
    <br>
    The <span style="font-weight: bold;">Colossus</span> program
    eventually had three major versions, not surprisingly known as <span
      style="font-weight: bold;">Colossus</span> 1, <span
      style="font-weight: bold;">Colossus</span> 2, and <span
      style="font-weight: bold;">Colossus</span> 3.&nbsp; Additionally,
    there were minor versions such as <span style="font-weight: bold;">Colossus</span>
    1A, <span style="font-weight: bold;">Colossus</span> 2C, and so on.<br>
    <br>
    <span style="font-weight: bold;">Colossus</span> 2 was also referred
    to by the separate name of <span style="font-weight: bold;">Comanche</span>.&nbsp;
































    I'm not fully aware of how the versioning within the "Colossus 2"
    nomenclature was interrelated to versioning within the "Comanche"
    nomenclature, but here are some relationships I'm sure of:<br>
    <br>
    <div style="text-align: center;">
      <table summary="" style="width: 50%; text-align: left;
        margin-left: auto; margin-right: auto;" cellspacing="2"
        cellpadding="2" border="1">
        <tbody>
          <tr>
            <th style="text-align: center; vertical-align: middle;">
              Colossus<br>
            </th>
            <th style="vertical-align: top; text-align: center;">
              Comanche<br>
            </th>
          </tr>
          <tr>
            <td style="vertical-align: top; text-align: center;"> 2<br>
            </td>
            <td style="vertical-align: top; text-align: center;">Rev. 44
              and Rev. 45<br>
            </td>
          </tr>
          <tr>
            <td style="vertical-align: top; text-align: center;"> 2A<br>
            </td>
            <td style="vertical-align: top; text-align: center;">Rev. 51
              and Rev. 55<br>
            </td>
          </tr>
          <tr>
            <td style="vertical-align: top; text-align: center;"> 2C<br>
            </td>
            <td style="vertical-align: top; text-align: center;">Rev. 67<br>
            </td>
          </tr>
          <tr>
            <td style="vertical-align: top; text-align: center;"> 2D<br>
            </td>
            <td style="vertical-align: top; text-align: center;">Rev. 72<br>
            </td>
          </tr>
        </tbody>
      </table>
      <div style="text-align: left;"> <br>
        Additionally, <span style="font-weight: bold;">Colossus</span>
        3 was referred to by the separate name of <span
          style="font-weight: bold;">Artemis</span>.&nbsp; <span
          style="font-weight: bold;"><br>
          <br>
        </span> Finally, <span style="font-weight: bold;">Skylark</span>
        was post-<span style="font-weight: bold;">Colossus</span>
        Command-Module software.&nbsp; I suspect that it was probably <span
          style="font-weight: bold;">Colossus</span> with features added
        or removed, but I have no real evidence for this suspicion.<span
          style="font-weight: bold;"><br>
          <br>
        </span> Of course, the command-modules themselves are still in
        existence, though that doesn't imply they still contain their
        AGCs.&nbsp; Zach Greene has compiled the following partial list:<br>
        <ul>
          <li><font size="2"><span style="font-size: 10pt;">Apollo 7 is
                located at the Frontiers of Flight Museum in Dallas,
                Texas</span></font></li>
          <li><font size="2"><span style="font-size: 10pt;">Apollo 9 is
                located in the</span></font> <font size="2"><span
                style="font-size: 10pt;">San Diego</span></font> <font
              size="2"><span style="font-size: 10pt;">Aerospace</span></font>
            <font size="2"><span style="font-size: 10pt;">Museum</span></font></li>
          <li><font size="2"><span style="font-size: 10pt;">Apollo 10 is
                located at the</span></font> <font size="2"><span
                style="font-size: 10pt;">Science</span></font> <font
              size="2"><span style="font-size: 10pt;">Museum</span></font>
            <font size="2"><span style="font-size: 10pt;">in</span></font>
            <font size="2"><span style="font-size: 10pt;">London</span></font></li>
          <li><font size="2"><span style="font-size: 10pt;">Apollo 11 is
                located at the National Air and</span></font> <font
              size="2"><span style="font-size: 10pt;">Space</span></font>
            <font size="2"><span style="font-size: 10pt;">Museum</span></font>
            <font size="2"><span style="font-size: 10pt;">in</span></font>
            <font size="2"><span style="font-size: 10pt;">Washington</span></font>
            <font size="2"><span style="font-size: 10pt;">D.C.</span></font></li>
          <li><font size="2"><span style="font-size: 10pt;">Apollo 12 is
                located at the Virginia Air and</span></font> <font
              size="2"><span style="font-size: 10pt;">Space</span></font>
            <font size="2"><span style="font-size: 10pt;">Museum</span></font>
            <font size="2"><span style="font-size: 10pt;">in</span></font>
            <font size="2"><span style="font-size: 10pt;">Hampton</span></font><font
              size="2"><span style="font-size: 10pt;">,</span></font> <font
              size="2"><span style="font-size: 10pt;">Virginia</span></font></li>
          <li><font size="2"><span style="font-size: 10pt;">Apollo 13 is
                located at the Kansas Cosmosphere and</span></font> <font
              size="2"><span style="font-size: 10pt;">Space</span></font>
            <font size="2"><span style="font-size: 10pt;">Center</span></font><font
              size="2"><span style="font-size: 10pt;">.</span></font></li>
          <li><font size="2"><span style="font-size: 10pt;">Apollo 14 is
                located at the Astronaut Hall of Fame in</span></font> <font
              size="2"><span style="font-size: 10pt;">Titusville</span></font><font
              size="2"><span style="font-size: 10pt;">,</span></font> <font
              size="2"><span style="font-size: 10pt;">Florida</span></font></li>
          <li><font size="2"><span style="font-size: 10pt;">The Apollo
                Soyuz CM is located at</span></font> <font size="2"><span
                style="font-size: 10pt;">California</span></font> <font
              size="2"><span style="font-size: 10pt;">Space</span></font>
            <font size="2"><span style="font-size: 10pt;">Center</span></font>
            <font size="2"><span style="font-size: 10pt;">in</span></font>
            <font size="2"><span style="font-size: 10pt;">Los Angeles</span></font><font
              size="2"><span style="font-size: 10pt;">,</span></font> <font
              size="2"><span style="font-size: 10pt;">California</span></font></li>
        </ul>
      </div>
    </div>
    <h2><a name="Known_Software_Versions"></a>Known Software Versions</h2>
    <h3>Summary of the Versions Available Here at this Site<br>
    </h3>
    <ul>
      <li>Sample Block I — <a href="listings/TRIVIUM/MAIN.agc.html">TRIVIUM</a>
        and <a href="listings/TRIVIUM-repaired/MAIN.agc.html">TRIVIUM-repaired</a><br>
      </li>
      <li><a href="listings/Solarium055/MAIN.agc.html">Apollo 6
          (unmanned mission) — Solarium, build 055</a></li>
      <li><a href="listings/Colossus237/MAIN.agc.html">Apollo 8
          —Colossus 1, build 237</a><br>
      </li>
      <li><a href="listings/Colossus249/MAIN.agc.html">Apollo 9 —
          Colossus 1A, build 249</a><br>
      </li>
      <li><a href="listings/Comanche055/MAIN.agc.html">Apollo 11 —
          Colossus 2A (Comanche), build 55</a><br>
      </li>
      <li><a href="listings/Artemis072/MAIN.agc.html">Apollo 15-17 (all
          the same) — Colossus 3 (Artemis), build 72</a><br>
      </li>
    </ul>
    <h3>Highlighted Versions, in Gory Detail, Whether We Have Them or
      Not</h3>
    Information in the following table was taken from online sources,
    rather than from official software-configuration documentation, and
    should not be regarded as authoritative.<br>
    <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="text-align: center;"><span style="font-weight:
              bold;">CSM number</span><br>
          </td>
          <td style="font-weight: bold; text-align: center;">CM 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 style="text-align: center;"><span style="font-weight:
              bold;">Mission-specific documentation</span><br>
          </td>
          <td style="font-weight: bold; text-align: center;"
            valign="middle">Where is it now?</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"><b>TRIVIUM</b><br>
          </td>
          <td valign="middle" align="center">12/1963<br>
          </td>
          <td valign="middle" align="center"><a
              href="ScansForConversion/TRIVIUM">Scanned pages</a><br>
            <br>
            or <br>
            <br>
            <a href="listings/TRIVIUM/MAIN.agc.html">Colorized HTML</a><br>
          </td>
          <td valign="middle"><a href="Documents/agcis_13_yul.pdf">AGC
              Information Series #13: YUL Programming System</a><br>
          </td>
          <td valign="middle"><a name="TRIVIUM"></a>This is an unusual
            program, in that its sole purpose was to demonstrate usage
            of the original AGC assembler, YUL.&nbsp; In fact, its very
            short program listing (only one page of source code!) was
            attached to a 1963 manual (hyperlinked at left) for
            YUL.&nbsp; The document itself was obtained from the
            personal papers of the late Russel Larson.<br>
            <br>
            The program is for a Block I AGC, and thus is not only one
            of the very few Block I AGC programs that has survived, but
            is probably the earliest such program that will ever be
            found.<br>
            <br>
            The program itself contains a pedagogically deliberate error
            — one of the variables it references is not defined within
            the program — and thus YUL could not fully assemble
            it.&nbsp; Besides that error, there are three
            also-deliberate items in the program that are not aligned at
            the proper punch-card columns:&nbsp; one program label, one
            operator, and one operand.&nbsp; YUL was apparently fine
            with those misalignments, though our modern assembler, <a
              href="yaYUL.html">yaYUL</a>, is not, and it treats two of
            them as errors.&nbsp; In spite of all that, however, yaYUL's
            assembly of the code is remarkably like YUL's.<br>
            <br>
            Because TRIVIUM contained these deliberate errors and
            oddities, we're actually providing it for you in two
            forms:&nbsp; TRIVIUM (as hyperlinked at the left)
            corresponds exactly to the original program, errors and all,
            while <a href="listings/TRIVIUM-repaired/MAIN.agc.html">TRIVIUM-repaired</a>
            fixes those errors, and thus assembles as a
            syntactically-correct program.<br>
            <br>
            However ... you may notice that the program identifies
            itself as being by "IMA NIT-PICKER".&nbsp; I surmised that
            IMA may really have been Hugh Blair-Smith, and Hugh tells me
            that that is indeed true.&nbsp; The name IMA NIT-PICKER is
            actually a tongue-and-cheek reference to Richard Volpi, the
            principal author of the AGC Information Series document
            (hyperlinked at the left) in which the program
            appears.&nbsp; Richard apparently tended to pay an enormous
            amount of attention to detail, and hence (Hugh says) was the
            <i>true</i> nit-picker.&nbsp; (See also the comments about
            Volpi in Hugh's book, <a
href="https://www.amazon.com/Left-Brains-Right-Stuff-Computers/dp/0996434534">Left


              Brains for the Right Stuff</a>.)&nbsp; <br>
            <br>
            Amusingly, though, in reviewing the program after all these
            years (about 55 of them!), Hugh was surprised to notice that
            even with the assembly-time error fixed, the program does
            not actually work.&nbsp; Given that the program is less than
            20 lines long altogether, that may hint at some of the
            difficulties involved in writing AGC software.&nbsp; As to
            exactly what's wrong with the program, I leave that as an
            exercise for the reader!<br>
          </td>
        </tr>
        <tr>
          <td valign="middle" align="center">Apollo 3<br>
            (AS-202)<br>
          </td>
          <td valign="middle" align="center">CSM-011<br>
          </td>
          <td valign="middle" align="center"><b>Corona</b><br>
          </td>
          <td valign="middle" align="center">261<br>
          </td>
          <td valign="middle" align="center"><br>
          </td>
          <td valign="middle"><span style="text-decoration: underline;">GSOP































              (R-477)</span><br>
            <ul>
              <li><a href="Documents/R477-AS202-GSOP.pdf">Initial
                  version</a></li>
              <li><a href="Documents/R477-AS202-GSOP-Rev1.pdf">Revision
                  1</a></li>
              <li><a href="Documents/R477-AS202-GSOP-Rev2.pdf">Revision
                  2</a><br>
              </li>
            </ul>
            "<a
href="Documents/ApolloExperienceReport-GuidanceAndControlSystems-MissionControlProgramerForUnmannedMissionsAS202Apollo4Apollo6.pdf">Apollo

































              Experience Report—Guidance and Control Systems: Mission
              Control Programer for Unmanned Missions AS-202, Apollo 4,
              and Apollo 6</a>"<br>
            <br>
            "<a
              href="Documents/Programming%20Changes%20from%20AS-202%20to%20AS-501.pdf">Programming




























              Changes from AS-202 to AS-501</a>"<br>
            <br>
            "<a
href="Documents/E-1828%20G&amp;N%20System%20Data%20for%20Mission%20AS-202,%20Development%20Engineering%20Inspection.pdf">G&amp;N




















              System Data for Mission AS-202 Development Engineering
              Inspection</a>"<br>
          </td>
          <td valign="middle"> Quoting from the wikipedia article:<br>
            <blockquote> <small><b>"AS-202</b> (also referred to as <b>SA-202</b>)
                was the second unmanned, suborbital test flight of a
                production Block I <a
                  href="https://en.wikipedia.org/wiki/Apollo_Command/Service_Module"
                  title="Apollo Command/Service Module">Apollo
                  Command/Service Module</a> launched with the <a
                  href="https://en.wikipedia.org/wiki/Saturn_IB"
                  title="Saturn IB">Saturn IB</a> launch vehicle. It was
                launched on August 25, 1966 and was the first flight
                which included the spacecraft Guidance and Navigation
                Control system and <a
                  href="https://en.wikipedia.org/wiki/Fuel_cell"
                  title="Fuel cell">fuel cells</a>. The success of this
                flight enabled the Apollo program to judge the Block I
                spacecraft and Saturn IB ready to carry men into orbit
                on the next mission, <a
                  href="https://en.wikipedia.org/wiki/Apollo_1"
                  title="Apollo 1">AS-204</a>."</small><br>
            </blockquote>
            In case you're wondering about the designation "Apollo 3",
            which is not mentioned specifically in the wikipedia
            article, that is how the mission is referenced in the
            Instrumentation Lab's report <a href="hrst/archive/967.pdf">R-700,

































              MIT's Role in Project Apollo</a>, from which a lot of the
            software-versioning information here comes, and frankly,
            it's just catchier than "AS-202".<br>
            <br>
            A fellow named Francois Rautenbach has <i>physically
              extracted</i> the contents of the rope memory from this
            specific AGC, which, he says, was "found on a rubbish dump"
            some time after the mission.&nbsp; He has posted a YouTube
            video of the extraction process which is interesting to
            watch, and includes information about the mission itself
            (including video) as well:<br>
            <div align="center"> <iframe
src="https://www.youtube.com/embed/WquhaobDqLU?feature=player_detailpage"
                allowfullscreen="" width="640" height="360"
                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;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;gt;</iframe><br>
              <br>
              <div align="left"> Right now, the data Francois extracted
                is simply in the form of stored electrical waveforms,
                and isn't even a machine-readable file of octal
                data.&nbsp; But with some luck, perhaps we can convert
                this waveform data into an octal dump of the rope, and
                from that point, convert it back into Block 1 AGC source
                code, to be presented here.&nbsp; Right now this is just
                a plan rather than a reality, so stay tuned!<br>
                <br>
                It may not be immediately obvious to you what the
                significance of the document "Programming Changes from
                AS-202 to AS-501, hyperlinked at the left is.&nbsp; The
                significance is that we <i>have</i> the source code for
                AS-502 (Solarium 55, see below), which is almost
                identical, or indeed perhaps even <i>exactly identical</i>
                to AS-501 (Solarium 54).&nbsp; Thus if we knew the
                changes between AS-202 and AS-501, it might help us
                reconstruct the Corona source code from Solarium 55
                source code, and those change are exactly what the
                document gives us.&nbsp; The document was contributed by
                AGC developer Jay Sampson, who actually coded the
                changes!<br>
              </div>
            </div>
          </td>
        </tr>
        <tr>
          <td style="text-align: center;">Apollo 1<br>
            (AS-204A)<br>
          </td>
          <td style="text-align: center;">CSM-012<br>
          </td>
          <td style="text-align: center;"><span style="font-weight:
              bold;">Sunspot</span><br>
          </td>
          <td style="text-align: center;">≥247<br>
          </td>
          <td><br>
          </td>
          <td style="text-align: left;"><u>GSOP (R-507)</u><br>
            <ul>
              <li>Volume I</li>
              <li><a href="Documents/R507-AS204A-205-GSOP-Volume-II.pdf">Volume































                  II</a></li>
            </ul>
            <a href="WebMirror/SM2A-03-SC012.pdf">Operations Handbook</a><br>
            <br>
            "<a
href="Documents/TRW-66-FMT-470%20Independent%20Flight%20Software%20Validation%20Test%20Results%20for%20Mission%20AS-204A.pdf">Independent




















              Flight Software Validation Test Results for Mission
              AS-204A</a>"<br>
          </td>
          <td style="vertical-align: top;" valign="middle">Yes, Apollo 1
            never flew, but it deserves a place of honor.&nbsp; I'd sure
            like to know where this program can be found!<br>
            <br>
            This was a Block I spacecraft.<br>
            <br>
            The exact version of SUNSPOT that would have flown isn't
            presently known to me, but SUNSPOT 247 is the version TRW
            evaluated in the independent validation testing hyperlinked
            at the left.&nbsp; Therefore, the version that would have
            been in the AGC at mission time must be at least 247, but
            probably higher.<br>
          </td>
        </tr>
        <tr>
          <td style="text-align: center;">Apollo 4<br>
            (AS-501)<br>
          </td>
          <td style="text-align: center;">CSM-017<br>
          </td>
          <td style="text-align: center;"><span style="font-weight:
              bold;">Solarium</span><br>
          </td>
          <td style="text-align: center;">54<br>
          </td>
          <td style="text-align: center;">See the comments at the far
            right.<br>
            <a href="ScansForConversion/Solarium055/"> </a></td>
          <td style="text-align: left;">GSOP (R-537)<br>
            <ul>
              <li><a href="Documents/R537-AS501-GSOP-Volume-I.pdf">Volume































                  I</a><br>
              </li>
              <li><a href="Documents/R537-AS501-GSOP-Volume-II.pdf">Volume































                  II</a><br>
              </li>
              <li>Section 8<br>
              </li>
            </ul>
            "<a
href="Documents/ApolloExperienceReport-GuidanceAndControlSystems-MissionControlProgramerForUnmannedMissionsAS202Apollo4Apollo6.pdf">Apollo

































              Experience Report—Guidance and Control Systems: Mission
              Control Programer for Unmanned Missions AS-202, Apollo 4,
              and Apollo 6</a>"<br>
            <br>
            "<a
              href="Documents/Programming%20Changes%20from%20AS-202%20to%20AS-501.pdf">Programming




























              Changes from AS-202 to AS-501</a>"<br>
            <br>
            <a
href="Documents/Trip%20Report%20on%20AS-501%20Meeting%20at%20MIT-IL%20on%20July%206%201967.pdf">"Trip



























              Report on AS-501Meeting at MIT/IL on July 6, 1967"</a><br>
            <br>
            "<a
href="Documents/Apollo%20Mission%20SA%20501%20Preliminary%20Mission%20Profile.pdf">Apollo




















              Mission SA 501 Preliminary Mission Profile</a>"<br>
            <br>
            <a href="links.html#Miscellaneous_Mission_Documents">Various
              documents specific to this mission</a><br>
          </td>
          <td style="vertical-align: top;" valign="middle"><a
              name="Solarium54"></a>Apollo 4 was an unmanned mission,
            but it did have a working CSM and a working AGC in the
            CM.&nbsp; <br>
            <br>
            This was a Block I spacecraft.<br>
            <br>
            The "Programer"—yes, that's the real spelling, though some
            sources do refer to it as the "programmer"—was the gadget
            that was the stand-in for the crew.<br>
            <br>
            By the way, in the GSOP volumes linked to the left, Volumes
            I and II are actually separated in time by a few months, and
            sections 6-7 overlap between them, but with modifications.<br>
            <br>
            The "Programming Changes ..." and "Trip Report ..."
            documents were contributed by AGC developer Jay Sampson, who
            authored them and made the coding changes described in the
            former.<br>
            <br>
            Regarding the software itself:&nbsp; Jay Sampson, who as I
            mentioned above coded the changes from the Corona (AS-202)
            code to derive Solarium (AS-501), is insistent that there
            were no code changes between missions AS-501 (Apollo 4) and
            AS-502 (Apollo 6).&nbsp; He does note that he had left MIT
            between Apollo 4 and 6 rather than after Apollo 6, and thus
            there is a tiny time window in which such changes could have
            occurred without his knowledge.&nbsp; Still, he believes
            that Solarium 54 is actually 100% identical to Solarium 55
            (see below).&nbsp; Jay speculates that they simply rebuilt
            the memory rope, without changing the source code, and gave
            it a new number.<br>
            <br>
            Here's a timeline of events which, while odd, completely
            support Jay's assertion:<br>
            <ul>
              <li>According to Instrumentation Lab document <a
                  href="hrst/967.pdf">R-700, "MIT's Involvement in
                  Project Apollo", Volume 1</a>, page 20, both Solarium
                54 and 55 were released, for Apollo 4 and Apollo 6
                respectively, in November of 1966.&nbsp; (And indeed,
                there are other documents supported this same factoid.)<br>
              </li>
              <li>Our copy of Solarium 55 is dated December 4, 1966, and
                thus should be from the released version.&nbsp; <a
                  href="ScansForConversion/Solarium055/0010-P1130128.jpg">For
























                  example, page 10</a>.<br>
              </li>
              <li>Solarium 54 flew on November 9, 1967, nearly a year
                after that.</li>
              <li>Solarium 55 flew in April of 1968.<br>
              </li>
            </ul>
            In summary, at this point in time, Jay's account is
            reasonable and I have no evidence that would lead me to
            believe that Jay is mistaken, thus I would maintain that the
            Apollo 4 source code is indeed identical to the Apollo 6
            source code described below.<br>
          </td>
        </tr>
        <tr>
          <td style="text-align: center;">Apollo 6<br>
          </td>
          <td style="text-align: center;">CM-020<br>
            SM-014<br>
          </td>
          <td style="text-align: center;"><span style="font-weight:
              bold;">Solarium</span><br>
          </td>
          <td style="text-align: center;">55<br>
          </td>
          <td><a href="listings/Solarium055/MAIN.agc.html">As colorized,<br>
              hyperlinked,<br>
              HTML</a><br>
            <br>
            <a href="ScansForConversion/Solarium055/"> As scanned page
              images (<span style="font-style: italic;">very</span>
              big!)</a></td>
          <td style="text-align: left;"> "<a
href="Documents/ApolloExperienceReport-GuidanceAndControlSystems-MissionControlProgramerForUnmannedMissionsAS202Apollo4Apollo6.pdf">Apollo

































              Experience Report—Guidance and Control Systems: Mission
              Control Programer for Unmanned Missions AS-202, Apollo 4,
              and Apollo 6</a>"<br>
            <br>
            "<a
href="Documents/MSC-PA-R-68-8%20Apollo%206%20Mission%203-Day%20Report.pdf">Apollo


























              6 Mission 3-Day Report</a>"<br>
          </td>
          <td style="vertical-align: top;" valign="middle"> Apollo 6 was
            an unmanned mission, but it did have a working CSM and a
            working AGC in the CM.&nbsp; Eldon C. Hall's copy of this
            program listing is in the American Computer Museum, which
            has graciously allowed us to digitize the program listing
            for use in Virtual AGC.<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;
                            white-space: nowrap;"> <big><span
                                style="font-family: sans-serif;">American

































                                Computer Museum</span><br
                                style="font-family: sans-serif;">
                              <span style="font-family: sans-serif;">Bozeman,

































                                Montana</span><span style="font-family:
                                sans-serif;"><br>
                                <a href="http://www.compustory.com"><small>www.compustory.com</small></a><br>
                              </span></big></td>
                          <td style="text-align: center; vertical-align:
                            middle;"> <span style="text-decoration:
                              underline;"><a
                                href="http://www.compustory.com"><img
                                  alt=""
                                  src="AmericanComputerMuseumLogo.jpg"
                                  style="border: 0px solid ; width:
                                  171px; height: 59px;" width="342"
                                  height="117" border="0"></a></span><br>
                          </td>
                        </tr>
                      </tbody>
                    </table>
                    <br>
                    <span style="font-style: italic; text-decoration:
                      underline;"> Individual honors</span><br>
                    <ul>
                      <li>Eldon C. Hall, for his foresight in
                        preservation, the leads he provided, and for his
                        overall approval.<br>
                      </li>
                      <li>George Keremedjiev, Curator of the American
                        Computer Museum, for making the listing
                        available.<br>
                      </li>
                      <li>Kim Scott, Archivist of Special Collections,
                        Renne Library, Montana State University, and
                        other MSU individuals whose names I do not know,
                        for helpful and responsible supervision of the
                        digitization effor.<br>
                      </li>
                      <li>Marilyn Chang, Librarian, Wings Over the
                        Rockies Air &amp; Space Museum, for the
                        necessary research and contacts.<br>
                      </li>
                      <li>Fabrizio Bernardini, for bringing Marilyn into
                        the loop.</li>
                      <li>Henry Wesso, for constructing the special copy
                        stand used for the digitization.</li>
                      <li>Gil Guerrero, for providing advice and camera
                        equipment.</li>
                      <li>Jim Lawton, for single-handedly converting the
                        page scans to source-code files.<br>
                      </li>
                    </ul>
                  </td>
                </tr>
              </tbody>
            </table>
            <br>
            This was a block I spacecraft.<br>
            <br>
            The "Programer"—yes, that's the real spelling, though some
            other sources refer to it as the "programmer"—was the gadget
            that was the stand-in for the crew.&nbsp; The same physical
            programer, not merely the same <span style="font-style:
              italic;">type</span> of programer, was used in both the
            Apollo 4 and Apollo 6 missions<br>
            <br>
            The "3-Day Report" was contributed by AGC developer Jay
            Sampson.<br>
          </td>
        </tr>
        <tr align="center">
          <td style="white-space: nowrap;">Apollo 7<br>
          </td>
          <td>CSM-101<br>
          </td>
          <td style="font-weight: bold; white-space: nowrap;"> Sundisk<br>
          </td>
          <td style="white-space: nowrap;">282<br>
          </td>
          <td style="text-align: center;"><br>
          </td>
          <td style="text-align: left;">E-2150, <a
              href="Documents/HSI-208476.pdf">Guidance, Navigation, and
              Control Block II Command and Service Module Functional
              Description and Operation Using Flight Program SUNDISK
              (Rev. 282)</a> </td>
          <td style="text-align: left; vertical-align: middle;"
            valign="middle"> Regarding document E-2150, linked to the
            left, the preface reads: "The purpose of this document is
            twofold.&nbsp; The first is to provide a functional
            description (operationally oriented) of the CSM GNCS
            hardware and software and the interfaces with other SC
            systems.&nbsp; The level of detail is that required to
            identify and define telemetry outputs. Also included are
            functional flow diagrams of the Sundisk 282 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 malfunction procedures, and program
            notes.&nbsp; The nominal airborne expanded and condensed
            checklist for Sundisk appear in the Guidance System
            Operation Plan, R547." </td>
        </tr>
        <tr align="center">
          <td style="color: rgb(255, 0, 0); vertical-align: middle;
            white-space: nowrap;"> Apollo 8<br>
          </td>
          <td>CSM-103<br>
          </td>
          <td style="font-weight: bold; color: rgb(255, 0, 0);
            white-space: nowrap;"> Colossus 1<br>
          </td>
          <td style="white-space: nowrap;">237<br>
          </td>
          <td colspan="1" rowspan="1" style="text-align: center;"> <a
              href="listings/Colossus237/MAIN.agc.html">As colorized,<br>
              hyperlinked,<br>
              HTML</a><br>
            <br>
            <a href="ScansForConversion/Colossus237/"> As scanned page
              images (<span style="font-style: italic;">very</span>
              big!)</a> <a href="ScansForConversion/Colossus249"> </a></td>
          <td style="text-align: left;"> <span style="text-decoration:
              underline;">GSOP (R-577)</span><br>
            <ul>
              <li><a href="NARA-SW/R-577-sec1-rev1.pdf"> Section 1</a><br>
              </li>
              <li><a href="NARA-SW/R-577-sec2-rev2.pdf"> Section 2</a></li>
              <li><a href="NARA-SW/R-577-sec3-rev3.pdf"> Section 3</a></li>
              <li>Section 4:</li>
              <ul>
                <li><a href="NARA-SW/R-577-sec4-rev6-intro.pdf">
                    Introduction</a></li>
                <li><a href="NARA-SW/R-577-sec4-rev6-P00-P29.pdf">
                    P00-P27</a></li>
                <li><a href="NARA-SW/R-577-sec4-rev6-P30-P39.pdf">
                    P30-P39</a></li>
                <li><a href="NARA-SW/R-577-sec4-rev6-P40-P69.pdf">
                    P40-P67</a></li>
                <li><a href="NARA-SW/R-577-sec4-rev6-P70-R32.pdf">
                    P70-R32</a></li>
                <li><a href="NARA-SW/R-577-sec4-rev6-R33-V41.pdf">
                    R33-V41</a></li>
                <li><a href="NARA-SW/R-577-sec4-rev6-V42-end.pdf"> V42-</a></li>
              </ul>
              <li>Section 5:</li>
              <ul>
                <li><a href="NARA-SW/R-577-sec5-rev4-start-5.2.pdf">
                    -5.2</a><br>
                </li>
                <li><a href="NARA-SW/R-577-sec5-rev4-5.3-5.5.pdf">
                    5.3-5.5</a><br>
                </li>
                <li><a href="NARA-SW/R-577-sec5-rev4-5.6-end.pdf"> 5.6-</a><br>
                </li>
              </ul>
              <li><a href="NARA-SW/R-577-sec6-rev1.pdf"> Section 6</a></li>
            </ul>
            <span style="text-decoration: underline;">Flight Plan</span>
            <ul>
              <li><a
                  href="Documents/FlightPlanApollo8-Martin-sects1-2.pdf">
                  Sections 1-2</a><br>
              </li>
              <li><a
                  href="Documents/FlightPlanApollo8-Martin-sects3-5.pdf">
                  Sections 3-5</a><br>
              </li>
            </ul>
            <span style="text-decoration: underline;">Digital Simulation<br>
            </span>
            <ul>
              <li>Relatively-small PDF:&nbsp; <a
                  href="ScansForConversion/Colossus237DigitalSimulation-Anomaly45.pdf">Bailout










                  during Burn (Colossus Anomaly #45)</a></li>
              <li>Large, full-resolution scan:&nbsp; <a
href="https://archive.org/details/Colossus237DigitalSimulationAnomaly45Images">Bailout










                  during Burn (Colossus Anomaly #45)</a></li>
            </ul>
            <span style="text-decoration: underline;"><a
                href="links.html#Checklists">Checklists</a><br>
              <br>
              Technical Debriefing<br>
            </span>
            <ul>
              <li><a
                  href="Documents/Apollo8-TechnicalDebriefing-Martin-1.pdf">
                  pp. 1-70</a></li>
              <li><a
                  href="Documents/Apollo8-TechnicalDebriefing-Martin-2.pdf">
                  pp. 71-149</a><br>
              </li>
            </ul>
          </td>
          <td style="text-align: left; vertical-align: middle;"
            rowspan="1" colspan="1" valign="middle"><a name="Apollo8"></a>I
            presently have no definitive configuration-management data
            from the original Apollo Program which I can call upon to
            state conclusively which AGC software versions were used for
            which missions.&nbsp; In particular, I couldn't prove in
            court that either <span style="font-weight: bold;">Colossus</span>
            1 (build 237, August 24, 1968) or <span style="font-weight:
              bold;">Colossus</span> 1A (build 249, October 28, 1968)
            actually flew.&nbsp; The GSOP linked at left is a combined
            operations plan for both builds 237 and 249, and it refers
            specifically to spacecraft AS-503 and CM-103 (used for
            Apollo 8), and LM-3 (used for Apollo 9).&nbsp; From this I
            infer that build 237 flew on Apollo 8 and build 249 flew on
            Apollo 9, and will operate on this assumption until more
            data is available.&nbsp; Long-time followers of this site
            will perhaps recall that I used to identify build 249 as
            being for Apollo 8, but I now think this was probably an
            error.<br>
            <br>
            The <span style="font-weight: bold;">Colossus</span> 237
            program listing was made available by original AGC developer
            Fred Martin.&nbsp; (Thanks, Fred!)&nbsp; The listing cuts
            off abruptly after page 1557—whereas you'd normally
            anticipate that there are 1700+ pages—so some of the
            assembler-generated tables at the end of the listing are
            missing.&nbsp; Of particular inconvenience, because it
            presents special problems for verifying the correctness of
            the simulation, is the absence of the octal listing and of
            the memory-bank checksums.&nbsp; However, all of the source
            code is present, and that's enough to work with.<br>
            <br>
            The Apollo 8 Flight Plan and Technical Debriefing were also
            provided by Fred.<br>
            <br>
            The digital simulation linked at the left is an Apollo-era
            simulation, and not one produced by the Virtual AGC
            Project.&nbsp; It is the only Colossus digital simulation
            available so far, although there are a number of <a
              href="Luminary.html">Luminary</a> digital simulations in
            our library, and as such it has a unique value.&nbsp;
            Specifically, it has pad-loads, though those pad-loads are
            for March 1969 rather than for December 1968. <br>
          </td>
        </tr>
        <tr align="center">
          <td style="color: rgb(255, 0, 0); vertical-align: middle;
            white-space: nowrap;"> Apollo 9<br>
          </td>
          <td>CSM-104<br>
          </td>
          <td style="font-weight: bold; color: rgb(255, 0, 0);
            vertical-align: middle; white-space: nowrap;"> Colossus 1A<br>
          </td>
          <td style="vertical-align: middle; white-space: nowrap;"> 249<br>
          </td>
          <td><a href="listings/Colossus249/MAIN.agc.html">As colorized,
              hyperlinked,&nbsp; HTML</a><br>
            <br>
            <a href="ScansForConversion/Colossus249-Martin/"> Scanned
              image set #1 (<span style="font-style: italic;">very</span>
              big!)</a><br>
            <br>
            <a href="ScansForConversion/Colossus249"> Scanned image set
              #2 (<span style="font-style: italic;">very</span> big!)</a></td>
          <td style="text-align: left;"> <span style="text-decoration:
              underline;">GSOP (R-577)</span><br>
            <ul>
              <li><a href="NARA-SW/R-577-sec1-rev1.pdf"> Section 1</a><br>
              </li>
              <li><a href="NARA-SW/R-577-sec2-rev2.pdf"> Section 2</a></li>
              <li><a href="NARA-SW/R-577-sec3-rev3.pdf"> Section 3</a></li>
              <li>Section 4:</li>
              <ul>
                <li><a href="NARA-SW/R-577-sec4-rev6-intro.pdf">
                    Introduction</a></li>
                <li><a href="NARA-SW/R-577-sec4-rev6-P00-P29.pdf">
                    P00-P27</a></li>
                <li><a href="NARA-SW/R-577-sec4-rev6-P30-P39.pdf">
                    P30-P39</a></li>
                <li><a href="NARA-SW/R-577-sec4-rev6-P40-P69.pdf">
                    P40-P67</a></li>
                <li><a href="NARA-SW/R-577-sec4-rev6-P70-R32.pdf">
                    P70-R32</a></li>
                <li><a href="NARA-SW/R-577-sec4-rev6-R33-V41.pdf">
                    R33-V41</a></li>
                <li><a href="NARA-SW/R-577-sec4-rev6-V42-end.pdf"> V42-</a></li>
              </ul>
              <li>Section 5:</li>
              <ul>
                <li><a href="NARA-SW/R-577-sec5-rev4-start-5.2.pdf">
                    -5.2</a><br>
                </li>
                <li><a href="NARA-SW/R-577-sec5-rev4-5.3-5.5.pdf">
                    5.3-5.5</a><br>
                </li>
                <li><a href="NARA-SW/R-577-sec5-rev4-5.6-end.pdf"> 5.6-</a><br>
                </li>
              </ul>
              <li><a href="NARA-SW/R-577-sec6-rev1.pdf"> Section 6</a></li>
            </ul>
            <a
href="ApolloProjectOnline/Documents/CSM%20104%20Systems%20Handbook%2019690124.pdf">Systems

































              Handbook</a><br>
            <br>
            <a href="Documents/Apollo9FlightPlan.pdf"> Flight Plan</a><br>
          </td>
          <td style="vertical-align: top; text-align: left;"
            valign="middle">See the Apollo 8 notes above for the
            rationale for believing that build 249 flew on Apollo 9.<br>
            <br>
            Two separate sets of scanned images of the Colossus 249
            program listing are provided.&nbsp; They are from different
            reproductions of the <i>same</i> original 1968 printout, as
            owned by different AGC developers.&nbsp; Scanned image set
            #1 is in far better condition than set #2 and is more
            legible, but only the less-legible set #2 was actually
            available to me when I originally implemented Colossus
            249.&nbsp; Any hand-written notes on the listings are from
            the original developers (as far as I know), and so those
            notes differ on the two image sets.<br>
            <br>
            Scanned image set #1 is from a copy in the collection of
            original AGC developer Fred Martin.&nbsp; (Thanks,
            Fred!)&nbsp; Fred provided it to us temporarily for the
            purpose of scanning it.&nbsp; As far as I know, this
            reproduction is available only here.<br>
            <br>
            As for scanned image set #2, the marking on the front of the
            document implies that it was original AGC developer Norm
            Brodeur's copy.&nbsp; I originally obtained the scan from
            MIT's Dibner Institute's now-discontinued website titled
            "History of Recent Science and Technology."&nbsp; Here at
            Virtual AGC, I choose to present the listing as a set of
            individual page images instead of a giant PDF.&nbsp; This
            listing has been improved by the replacement of 52 garbled
            pages (supplied by Mr. Gary Neff), which I suppose are
            probably available only here as well.<br>
            <br>
            I have been told that the assembly listings, originally,
            could be printed either on "very noisy" line-printers with a
            restricted character set that happened to correspond to the
            character set allowed for the AGC programs themselves, or
            else on a page-printer that had a 256-character set, but in
            which the character set could be swapped out to allow
            different characters to be printed from the same numerical
            codes.&nbsp; All of the AGC printouts that are available to
            us are from the line printers, <i>except</i> this Colossus
            249 printout, which was made on the page printer.&nbsp;
            Unfortunately, the wrong character-set was set up on the
            printer when the printout was made, so that while all of the
            upper-case alphanumeric characters were printed correctly,
            many of the non-alphanumeric characters were systematically
            printed as different characters, in a kind of substitution
            cipher.&nbsp; The complete set of character-substitutions,
            in so far as I have been able to discern them, is as
            follows:<br>
            <div align="center">
              <table cellspacing="2" cellpadding="2" border="1">
                <tbody>
                  <tr>
                    <th valign="top">Desired Character<br>
                    </th>
                    <th valign="top">Printed As<br>
                    </th>
                  </tr>
                  <tr>
                    <td valign="top" align="center">&lt;<br>
                    </td>
                    <td valign="top" align="center">±</td>
                  </tr>
                  <tr>
                    <td valign="top" align="center">'<br>
                    </td>
                    <td valign="top" align="center">α</td>
                  </tr>
                  <tr>
                    <td valign="top" align="center">"<br>
                    </td>
                    <td valign="top" align="center">β</td>
                  </tr>
                  <tr>
                    <td valign="top" align="center">|<br>
                    </td>
                    <td valign="top" align="center">γ</td>
                  </tr>
                  <tr>
                    <td valign="top" align="center">&gt;<br>
                    </td>
                    <td valign="top" align="center">δ</td>
                  </tr>
                  <tr>
                    <td valign="top" align="center">?<br>
                    </td>
                    <td valign="top" align="center">π</td>
                  </tr>
                  <tr>
                    <td valign="top" align="center">%<br>
                    </td>
                    <td valign="top" align="center">Σ</td>
                  </tr>
                  <tr>
                    <td valign="top" align="center">&amp;<br>
                    </td>
                    <td valign="top" align="center">d<br>
                    </td>
                  </tr>
                  <tr>
                    <td valign="top" align="center">#<br>
                    </td>
                    <td valign="top" align="center"><math
                        xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mo>∫</mo><annotation
                            encoding="TeX">∫</annotation></semantics></math><br>
                    </td>
                  </tr>
                  <tr>
                    <td valign="top" align="center">:<br>
                    </td>
                    <td valign="top" align="center">'<br>
                    </td>
                  </tr>
                  <tr>
                    <td valign="top" align="center">@<br>
                    </td>
                    <td valign="top" align="center">:<br>
                    </td>
                  </tr>
                  <tr>
                    <td valign="top" align="center">_<br>
                    </td>
                    <td valign="top" align="center"><i>discarded</i><br>
                    </td>
                  </tr>
                </tbody>
              </table>
              <div align="left">Naturally, in transcribing the scanned
                assembly-listing as source code, we have made these
                substitutions already, so a '&lt;' looks like a '&lt;',
                a '?' looks like a '?', etc. <br>
              </div>
            </div>
          </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"><b>Colossus 2<br>
              (Comanche)</b><br>
          </td>
          <td valign="middle" align="center">44<br>
          </td>
          <td valign="middle" align="center">Perhaps some day ...<br>
          </td>
          <td valign="middle"><br>
          </td>
          <td valign="middle">We know that Margaret Hamilton has a copy
            of this, and hope to get it from her some day.&nbsp; Alas!
            today is not that day.&nbsp; While it is not a flown
            version, it's pretty close to the flown version on Apollo 10
            (only a two-month difference according to the table from
            R-700 at the top of this page).<br>
          </td>
        </tr>
        <tr align="center">
          <td style="vertical-align: middle; white-space: nowrap;">
            Apollo 10<br>
          </td>
          <td>CSM-106<br>
          </td>
          <td style="font-weight: bold; vertical-align: middle;
            white-space: nowrap;"> Colossus 2<br>
            (Manche)<br>
          </td>
          <td style="vertical-align: middle; white-space: nowrap;"> 45/2<br>
          </td>
          <td style="text-align: center;"><br>
          </td>
          <td style="text-align: left;"> <span style="text-decoration:
              underline;">GSOP (R-577)</span><br>
            <ul>
              <li>Section 5:</li>
              <ul>
                <li><a href="Documents/R-577-Colossus2-Martin-5.1.pdf">
                    5.1</a></li>
                <li><a href="Documents/R-577-Colossus2-Martin-5.2.pdf">
                    5.2</a></li>
                <li><a href="Documents/R-577-Colossus2-Martin-5.3.pdf">
                    5.3</a></li>
                <li><a href="Documents/R-577-Colossus2-Martin-5.4.pdf">
                    5.4</a></li>
                <li><a href="Documents/R-577-Colossus2-Martin-5.5.pdf">
                    5.5</a></li>
                <li><a
                    href="Documents/R-577-Colossus2-Martin-5.6789.pdf">
                    5.6,7,8,9</a><br>
                </li>
              </ul>
            </ul>
          </td>
          <td style="text-align: left; vertical-align: middle;"
            valign="middle"> Section 5 of the GSOP, presented here, was
            provided by original AGC developer Fred Martin.<br>
          </td>
        </tr>
        <tr align="center">
          <td style="vertical-align: middle; white-space: nowrap; color:
            rgb(255, 0, 0);"> Apollo 11<br>
          </td>
          <td style="color: rgb(255, 0, 0);">CSM-107<br>
          </td>
          <td style="font-weight: bold; vertical-align: middle;
            white-space: nowrap; color: rgb(255, 0, 0);"> Colossus 2A<br>
            (Comanche)<br>
          </td>
          <td style="vertical-align: middle; white-space: nowrap;"> 55<br>
          </td>
          <td style="text-align: center;"><a
              href="listings/Comanche055/MAIN.agc.html">As colorized,
              hyperlinked,&nbsp; HTML</a><br>
            <br>
            <a href="ScansForConversion/Comanche055"> As scanned page
              images (<span style="font-style: italic;">very</span>
              big!)</a><br>
          </td>
          <td style="text-align: left;"> <span style="text-decoration:
              underline;">Operational Data Book</span><br>
            <ul>
              <li><a href="Documents/HSI-41539.pdf">Volume 1, Part 1</a><br>
                <a
href="Documents/SNA-8-D-027III-Rev2-CsmLmSpacecraftOperationalDataBook-Volume3-MassProperties.pdf">
                </a></li>
              <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> </td>
          <td style="text-align: left; vertical-align: middle;"
            valign="middle"> 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.&nbsp;<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&nbsp; 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>... 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>
          </td>
        </tr>
        <tr align="center">
          <td style="vertical-align: middle; white-space: nowrap;">
            Apollo 12<br>
          </td>
          <td>CSM-108<br>
          </td>
          <td style="font-weight: bold; vertical-align: middle;
            white-space: nowrap;"> Colossus 2C<br>
            (Comanche)<br>
          </td>
          <td style="vertical-align: middle; white-space: nowrap;">67<br>
          </td>
          <td style="text-align: center;"><br>
          </td>
          <td style="text-align: left;"> <span style="text-decoration:
              underline;">Operational Data Book</span><br>
            <ul>
              <li><a href="Documents/HSI-41539.pdf">Volume 1, Part 1</a><br>
                <a
href="Documents/SNA-8-D-027III-Rev2-CsmLmSpacecraftOperationalDataBook-Volume3-MassProperties.pdf">
                </a></li>
              <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>
            E-2442, <a href="Documents/HSI-208615.pdf">Guidance,
              Navigation, and Control Command Module Functional
              Description and Operation Using Flight Program COLOSSUS 2C
              (COMANCHE 67)</a><br>
          </td>
          <td style="text-align: left; vertical-align: middle;"
            valign="middle"> Regarding document E-2442, linked to the
            left, the preface reads: "The purpose of this document is
            twofold.&nbsp; The first is to provide a functional
            description (operationally oriented) of the CSM GNCS
            hardware and software and the interfaces with other
            spacecraft systems.&nbsp; The level of detail is that
            required to identify and define telemetry outputs. Also
            included are function flow diagrams of the COLOSSUS 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 align="center">
          <td style="vertical-align: middle; white-space: nowrap;">
            Apollo 13<br>
          </td>
          <td>CSM-109<br>
          </td>
          <td style="font-weight: bold; vertical-align: middle;
            white-space: nowrap;"> Colossus 2D<br>
            (Comanche)<br>
          </td>
          <td style="vertical-align: middle; white-space: nowrap;">72/3<br>
          </td>
          <td style="text-align: center;"><br>
          </td>
          <td style="text-align: left;"> <span style="text-decoration:
              underline;">Operational Data Book</span><br>
            <ul>
              <li><a href="Documents/HSI-41539.pdf">Volume 1, Part 1</a><br>
                <a
href="Documents/SNA-8-D-027III-Rev2-CsmLmSpacecraftOperationalDataBook-Volume3-MassProperties.pdf">
                </a></li>
              <li><a
href="Documents/SNA-8-D-027III-Rev2-CsmLmSpacecraftOperationalDataBook-Volume3-MassProperties.pdf">Volume





























                  3</a></li>
            </ul>
            <p><a href="Documents/j2-80-E-2448-REV1_text.pdf">Users'
                Guide to Apollo GN&amp;CS Major Modes and Routines, Rev
                1</a><br>
            </p>
            <ul>
            </ul>
          </td>
          <td style="text-align: left; vertical-align: middle;"
            valign="middle"> Regarding the Users' Guide hyperlinked at
            the left, it is "a comprehensive, user-oriented description
            of the APOLLO GN&amp;C system ... revised as necessary to
            remain current", but not targeted at specific
            missions.&nbsp; However, given that it is dated July 1970,
            it is probably pretty accurate for Apollo 13.<br>
          </td>
        </tr>
        <tr align="center">
          <td style="vertical-align: middle; white-space: nowrap;">
            Apollo 14<br>
          </td>
          <td>CSM-110<br>
          </td>
          <td style="font-weight: bold; vertical-align: middle;
            white-space: nowrap;"> Colossus 2E<br>
            (Comanche)<br>
          </td>
          <td style="vertical-align: middle; white-space: nowrap;">108<br>
          </td>
          <td style="text-align: center;"><br>
          </td>
          <td style="text-align: left;"> <span style="text-decoration:
              underline;">Operational Data Book</span><br>
            <ul>
              <li><a href="Documents/HSI-41539.pdf">Volume 1, Part 1</a><br>
                <a
href="Documents/SNA-8-D-027III-Rev2-CsmLmSpacecraftOperationalDataBook-Volume3-MassProperties.pdf">
                </a></li>
              <li><a
href="Documents/SNA-8-D-027III-Rev2-CsmLmSpacecraftOperationalDataBook-Volume3-MassProperties.pdf">Volume





























                  3</a></li>
            </ul>
            <p><a href="Documents/j2-80-E-2448-REV1_text.pdf">Users'
                Guide to Apollo GN&amp;CS Major Modes and Routines, Rev
                1<br>
              </a></p>
            <ul>
            </ul>
          </td>
          <td style="text-align: left; vertical-align: middle;"
            valign="middle"> <a name="Apollo14"></a>Regarding the
            Users' Guide hyperlinked at the left, it is "a
            comprehensive, user-oriented description of the APOLLO
            GN&amp;C system ... revised as necessary to remain current",
            but not targeted at specific missions.&nbsp; However, given
            that it is dated July 1970, it is probably pretty accurate
            for Apollo 14.<br>
            <br>
            Although we don't presently have the Apollo 14 CM software,
            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>, tells us that it's actually possible to use
            a modified form of Artemis (the Apollo 15-17 software) to
            fly satisfactory Apollo 14 missions.&nbsp; Let me simply
            quote Nik:<br>
            <blockquote><small>We currently don't have any AGC version
                available that was flown on Apollo 14, which causes a
                few, mostly procedural issues for NASSP. Apollo 14 was
                the only mission flown in the time period from July 1st,
                1970 to July 1st 1971 and as such used a slightly
                different coordinate system than the AGC versions before
                and after that. And using a different coordinate system
                means that a few hardcoded constants had to be changed
                every year: star unit vectors, solar and lunar ephemeris
                in the LGC and a few other numbers. These numbers for
                the yearly coordinate system used by Apollo 14 are
                available or can be calculated. So we did just that and
                created our own AGC versions for Apollo 14. Both CMC and
                LGC are derived from the AGC versions flown on Apollo
                15, Luminary 1E and Artemis (Colossus 3). We determined
                that these most closely match the programs and
                capabilities of the AGC versions actually flown on
                Apollo 14. One regular NASSP user (Alex Bart, ...)
                tested Apollo 14 with these modified AGC versions and
                flew the complete simulated mission with them. We are
                very confident now that these AGC versions are working
                as they should. As I said, they are essentially still
                the AGC versions flown on Apollo 15, only slightly
                modified to properly work with Apollo 14. ... <a
href="https://github.com/dseagrav/NASSP/tree/Orbiter2016/Config/ProjectApollo">They















                  are available here</a>,
                as&nbsp;Artemis072NBY71.bin&nbsp;and&nbsp;Luminary210NBY71.bin,
                [i.e.] Artemis072 and Luminary210 modified to work for
                the Nearest Besselian Year (NBY) coordinate system of
                1971.</small><br>
            </blockquote>
            <br>
          </td>
        </tr>
        <tr align="center">
          <td style="vertical-align: middle; white-space: nowrap; color:
            rgb(255, 0, 0);"> Apollo 15<br>
          </td>
          <td><span style="color: rgb(255, 0, 0);">CSM-112</span><br>
          </td>
          <td colspan="1" rowspan="1" style="vertical-align: middle;
            white-space: nowrap; color: rgb(255, 0, 0); font-weight:
            bold;"> Colossus 3<br>
            (Artemis)<br>
          </td>
          <td colspan="1" rowspan="1" style="vertical-align: middle;
            white-space: nowrap; color: rgb(255, 0, 0);"> 72<br>
          </td>
          <td colspan="1" rowspan="3" style="text-align: center;"> <br>
            <br>
            <a href="listings/Artemis072/MAIN.agc.html">Colorized,
              hyperlinked,&nbsp; HTML</a><br>
            <br>
            <a href="ScansForConversion/Artemis072/"> As scanned page
              images (<span style="font-style: italic;">very</span>
              big!)</a><br>
          </td>
          <td style="text-align: left;"> <span style="text-decoration:
              underline;">GSOP (R-577)</span><br>
            <ul>
              <li><a href="Documents/HSI-208464.pdf"> Section 1</a><br>
              </li>
              <li><a href="Documents/HSI-208452.pdf"> Section 2</a><br>
              </li>
              <li><a href="Documents/HSI-208472.pdf"> Section 3 (rev 11)</a></li>
              <li><a href="Documents/R577-section3-rev14.pdf">Section 3
                  (rev 14)</a><br>
              </li>
              <li>Section 4</li>
              <li><a href="Documents/HSI-208454.pdf"> Section 5</a></li>
              <li>Section 6</li>
              <li><a href="Documents/HSI-208442.pdf"> Section 7</a></li>
            </ul>
            Programmed Guidance Equations for Colossus 3:
            <ul>
              <li><a
                  href="Documents/programmed-guidance-equations-colossus-3-001_text.pdf">Part

















                  1<br>
                </a></li>
              <li><a
                  href="Documents/programmed-guidance-equations-colossus-3-002_text.pdf">Part

















                  2<br>
                </a></li>
              <li><a
                  href="Documents/programmed-guidance-equations-colossus-3-003_text.pdf">Part

















                  3</a><br>
              </li>
            </ul>
            <p><a href="Documents/j2-80-E-2448-REV4_text.pdf">Users'
                Guide to Apollo GN&amp;CS Major Modes and Routines, Rev
                4, Colossus 3 and Luminary 1E<br>
              </a></p>
            <ul>
            </ul>
            <a href="Documents/Apollo15_Colossus3_CMC_Data_Cards.pdf">CMC

































              Data Cards</a><br>
            or<br>
            <a href="CMC_data_cards_15_Fabrizio_Bernardini.pdf">CMC data
              cards</a><br>
            <br>
            <a href="Documents/msc05225.pdf"><span style="font-style:
                italic;"> Program Notes</span></a><br>
            <br>
            <a href="Documents/BwCsmHandbookGncSection_112-114.pdf"> CSM
              Systems Handbook</a><br>
            <br>
            <span style="text-decoration: underline;">Operational Data
              Book</span><br>
            <ul>
              <li><a href="Documents/HSI-41539.pdf">Volume 1, Part 1</a><br>
                <a
href="Documents/SNA-8-D-027III-Rev2-CsmLmSpacecraftOperationalDataBook-Volume3-MassProperties.pdf">
                </a></li>
              <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/Apollo15CSMEntryChecklist.pdf">
                  Entry</a></li>
              <li><a
                  href="Documents/Apollo15CSMGuidanceAndControlChecklist.pdf">
                  Guidance&amp;Control</a></li>
              <li><a href="Documents/Apollo15CSMLaunchChecklist.pdf">
                  Launch</a></li>
              <li><a href="Documents/Apollo15CSMSystemsChecklist.pdf">
                  Systems</a><br>
              </li>
            </ul>
          </td>
          <td colspan="1" rowspan="3" style="text-align: left;
            vertical-align: middle;" valign="middle"> Also known as <span
              style="font-weight: bold;">Artemis</span> build 072,
            released (Fabrizio Bernardini tells me) January 31,
            1971.&nbsp; A private collector has graciously allowed us to
            digitize this program listing for use in Virtual AGC.<br>
            <br>
            Thanks also to:<br>
            <ul>
              <li>Henry Wesso, for constructing the special copy stand
                used for the digitization.</li>
              <li>Gil Guerrero, for providing advice and camera
                equipment.</li>
              <li>(In alphabetical order) Steve Case, Hartmuth Gutshe,
                Onno Hommes, Jim Lawton, and Sergio Navarro, for
                converting the page images to source code.</li>
              <li>To Jim Lawton, for debugging the converted source-code
                files.<br>
              </li>
            </ul>
            Regarding the Programmed Guidance Equations document
            hyperlinked at the left, it is basically a pseudo-code
            description of the Artemis 72 program.&nbsp; Unfortunately,
            pages ORBI-9 and ORBI-10 are missing.<br>
            <br>
            Regarding the Users' Guide hyperlinked at the left, it is "a
            comprehensive, user-oriented description of the APOLLO
            GN&amp;C system ... revised as necessary to remain current",
            but not targeted at specific missions.&nbsp; However, given
            that it specifically references Colossus 3 and Luminary 1E,
            that seems pretty specific to Apollo 15, 16, and 17.<br>
            <br>
          </td>
        </tr>
        <tr style="color: rgb(255, 0, 0);" align="center">
          <td style="vertical-align: middle; white-space: nowrap;">
            Apollo 16<br>
          </td>
          <td>CSM-113<br>
          </td>
          <td rowspan="1" style="font-weight: bold; text-align: center;">Colossus
































            3<br>
            (Artemis)</td>
          <td rowspan="1" style="text-align: center;">72<br>
          </td>
          <td style="text-align: left; color: rgb(0, 0, 0);"> <span
              style="text-decoration: underline;">GSOP (R-577)</span><br>
            <ul>
              <li><a href="Documents/HSI-208464.pdf"> Section 1</a><br>
              </li>
              <li><a href="Documents/HSI-208452.pdf"> Section 2</a><br>
              </li>
              <li><a href="Documents/HSI-208472.pdf"> Section 3 (rev 11)</a></li>
              <li><a href="Documents/R577-section3-rev14.pdf">Section 3
                  (rev 14)</a><br>
              </li>
              <li>Section 4</li>
              <li><a href="Documents/HSI-208454.pdf"> Section 5</a></li>
              <li>Section 6</li>
              <li><a href="Documents/HSI-208442.pdf"> Section 7</a></li>
            </ul>
            <p>Programmed Guidance Equations for Colossus 3:<br>
            </p>
            <ul>
              <li><a
                  href="Documents/programmed-guidance-equations-colossus-3-001_text.pdf">Part

















                  1<br>
                </a></li>
              <li><a
                  href="Documents/programmed-guidance-equations-colossus-3-002_text.pdf">Part

















                  2<br>
                </a></li>
              <li><a
                  href="Documents/programmed-guidance-equations-colossus-3-003_text.pdf">Part

















                  3</a></li>
            </ul>
            <p><a href="Documents/j2-80-E-2448-REV4_text.pdf">Users'
                Guide to Apollo GN&amp;CS Major Modes and Routines, Rev
                4, Colossus 3 and Luminary 1E</a></p>
            <ul>
            </ul>
            <a href="Documents/msc05225.pdf"><span style="font-style:
                italic;">Program Notes</span></a><br>
            <br>
            <a href="Documents/BwCsmHandbookGncSection_112-114.pdf"> CSM
              Systems Handbook</a><br>
            <br>
            <span style="text-decoration: underline;">Operational Data
              Book</span><br>
            <ul>
              <li><a href="Documents/HSI-41539.pdf">Volume 1, Part 1</a><br>
                <a
href="Documents/SNA-8-D-027III-Rev2-CsmLmSpacecraftOperationalDataBook-Volume3-MassProperties.pdf">
                </a></li>
              <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>
          </td>
        </tr>
        <tr style="color: rgb(255, 0, 0);">
          <td style="text-align: center; vertical-align: middle;
            white-space: nowrap;"> Apollo 17<br>
          </td>
          <td style="text-align: center;">CSM-114<br>
          </td>
          <td style="font-weight: bold; text-align: center;">Colossus 3<br>
            (Artemis)</td>
          <td style="text-align: center;">72<br>
          </td>
          <td style="text-align: left; color: rgb(0, 0, 0);"> <span
              style="text-decoration: underline;">GSOP (R-577)</span><br>
            <ul>
              <li><a href="Documents/HSI-208464.pdf"> Section 1</a><br>
              </li>
              <li><a href="Documents/HSI-208452.pdf"> Section 2</a><br>
              </li>
              <li><a href="Documents/HSI-208472.pdf"> Section 3 (rev 11)</a></li>
              <li><a href="Documents/R577-section3-rev14.pdf">Section 3
                  (rev 14)</a><br>
              </li>
              <li>Section 4</li>
              <li><a href="Documents/HSI-208454.pdf"> Section 5</a></li>
              <li>Section 6</li>
              <li><a href="Documents/HSI-208442.pdf"> Section 7</a></li>
            </ul>
            <p>Programmed Guidance Equations for Colossus 3:<br>
            </p>
            <ul>
              <li><a
                  href="Documents/programmed-guidance-equations-colossus-3-001_text.pdf">Part

















                  1<br>
                </a></li>
              <li><a
                  href="Documents/programmed-guidance-equations-colossus-3-002_text.pdf">Part

















                  2<br>
                </a></li>
              <li><a
                  href="Documents/programmed-guidance-equations-colossus-3-003_text.pdf">Part

















                  3</a></li>
            </ul>
            <p><a href="Documents/j2-80-E-2448-REV4_text.pdf">Users'
                Guide to Apollo GN&amp;CS Major Modes and Routines, Rev
                4, Colossus 3 and Luminary 1E</a></p>
            <ul>
            </ul>
            <a href="Documents/msc05225.pdf"><span style="font-style:
                italic;">Program Notes</span></a><br>
            <br>
            <a href="Documents/BwCsmHandbookGncSection_112-114.pdf"> CSM
              Systems Handbook</a><br>
            <br>
            <span style="text-decoration: underline;">Operational Data
              Book</span><br>
            <ul>
              <li><a href="Documents/HSI-41539.pdf">Volume 1, Part 1</a><br>
                <a
href="Documents/SNA-8-D-027III-Rev2-CsmLmSpacecraftOperationalDataBook-Volume3-MassProperties.pdf">
                </a></li>
              <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>
          </td>
        </tr>
        <tr>
          <td style="text-align: center;">Skylab 2-4<br>
          </td>
          <td style="text-align: center;">CSM-116<br>
            CSM-117<br>
            CSM-118<br>
          </td>
          <td style="text-align: center;"><span style="font-weight:
              bold;">Skylark</span><br>
          </td>
          <td style="text-align: center;">48?<br>
          </td>
          <td style="text-align: center;"><br>
          </td>
          <td style="text-align: left; white-space: nowrap;"> <a
              href="NARA-SW/SkylabDataCards.pdf"> </a><a name="Skylark"></a><a
              href="NARA-SW/SkylabDataCards.pdf">Quick-reference cards</a><br>
            <br>
            <span style="text-decoration: underline;">GSOP (R-693)</span><br>
            <ul>
              <li><a href="Documents/HSI-208464.pdf"> Section 1 (same as
                  R-577)</a><br>
              </li>
              <li><a
                  href="Documents/R-693-GSOP-Skylark1-Section2-DataLinks.pdf">
                  Section 2</a></li>
              <li><a
href="Documents/R-693%20GSOP%20Skylark%201%20Section%203%20Digitgal%20Autopilots.pdf">Section






















                  3</a></li>
              <li><a
                  href="Documents/R-693-GSOP-Skylark1-Section4-OperationalModes.pdf">
                  Section 4</a></li>
              <li><a href="Documents/HSI-208456.pdf">Section 5</a></li>
              <li>Section 6 (same as R-577)</li>
              <li>Section 7</li>
            </ul>
            <p>Programmed Guidance Equations for Skylark 48:<br>
            </p>
            <ul>
              <li><a
                  href="Documents/programmed-guidance-equations-skylark-001.pdf">Part
















                  1</a></li>
              <li><a
                  href="Documents/programmed-guidance-equations-skylark-002.pdf">Part
















                  2</a></li>
              <li><a
                  href="Documents/programmed-guidance-equations-skylark-003.pdf">Part
















                  3</a></li>
            </ul>
            <ul>
            </ul>
            <a
href="Documents/MSC-06814-SkylabCommandServiceModuleSystemsHandbook-CSM116-119.pdf">CSM

































              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><br>
              </li>
            </ul>
          </td>
          <td style="vertical-align: top;" valign="middle">Regarding the
            Programmed Guidance Equations document hyperlinked at the
            left, it is basically a pseudo-code description of the
            Skylark 48 program. </td>
        </tr>
        <tr>
          <td style="text-align: center;">Apollo-Soyuz<br>
          </td>
          <td style="text-align: center;">CSM-111<br>
          </td>
          <td style="text-align: center;"><span style="font-weight:
              bold;">Skylark</span><br>
          </td>
          <td style="text-align: center;">TBD<br>
          </td>
          <td style="text-align: center;"><br>
          </td>
          <td style="text-align: left; white-space: nowrap;"> <a
              href="NARA-SW/ApolloSoyuzDataCards.pdf"> Quick-reference
              cards</a><br>
            <br>
            <span style="text-decoration: underline;">GSOP (R-693)</span><br>
            <ul>
              <li><a href="Documents/HSI-208464.pdf"> Section 1 (same as
                  R-577)</a><br>
              </li>
              <li><a
                  href="Documents/R-693-GSOP-Skylark1-Section2-DataLinks.pdf">
                  Section 2</a></li>
              <li><a
href="Documents/R-693%20GSOP%20Skylark%201%20Section%203%20Digitgal%20Autopilots.pdf">Section






















                  3</a></li>
              <li><a
                  href="Documents/R-693-GSOP-Skylark1-Section4-OperationalModes.pdf">
                  Section 4</a></li>
              <li><a href="Documents/HSI-208456.pdf">Section 5</a></li>
              <li>Section 6 (same as R-577)</li>
              <li>Section 7</li>
            </ul>
            <p>Programmed Guidance Equations for Skylark 48:<br>
            </p>
            <ul>
              <li><a
                  href="Documents/programmed-guidance-equations-skylark-001.pdf">Part
















                  1</a></li>
              <li><a
                  href="Documents/programmed-guidance-equations-skylark-002.pdf">Part
















                  2</a></li>
              <li><a
                  href="Documents/programmed-guidance-equations-skylark-003.pdf">Part
















                  3</a></li>
            </ul>
            <ul>
            </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><br>
              </li>
            </ul>
          </td>
          <td style="vertical-align: top;" valign="middle">As far as the
            GSOP and guidance-equation documents hyperlinked to the left
            are concerned, note that internally they refer specifically
            to Skylab missions and/or to Skylark 48, so I'm not sure of
            the degree of relevance to the Apollo-Soyuz mission.&nbsp;
            However, given the lack of Apollo-Soyuz specific data, I'm
            provisionally linking them here as well!<br>
          </td>
        </tr>
      </tbody>
    </table>
    <div style="text-align: left;"> <br>
      <h2><a name="Source_Code_and_Binary"></a>Source Code and Binary</h2>
      Both source code and (independently derived) binary code are
      provided within the yaAGC tarball downlod.&nbsp; The files are
      contained within a subdirectory named after the software version
      (such as "Colossus249" and "Artemis072").&nbsp; The more important
      files supplied are these:<br>
      <br style="font-style: italic;">
      <div style="margin-left: 40px;">
        <table summary="" style="text-align: left; width: 33%;"
          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;">Source code for major
                subdivisions of the <span style="font-weight: bold;">Colossus</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 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;">Colossus</span>
      binary executable rather than using the one provided with yaAGC
      (such as Colossus249.bin), one simply needs to assemble the file
      MAIN.agc.&nbsp; 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 Colossus249</span><br
          style="font-family: monospace;">
        <span style="font-family: monospace;">../yaYUL/yaYUL MAIN.agc
          &gt;Colossus249.lst</span><br>
      </div>
      <br>
      The binary so produced, MAIN.agc.bin, should be byte-for-byte
      identical to the binary (Colossus249.bin) provided with the yaAGC
      distribution.&nbsp; 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 MAIN.agc.bin Colossus249.bin</span><br>
      </div>
      <br>
      (Replace "diff" with "fc /b" in Windows.)&nbsp;<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
              Colossus249.bin was <span style="font-style: italic;">not</span>
              created from the assembly-language source files.&nbsp;
              Therefore, the byte-for-byte equivalence mentioned above
              actually has some significance.&nbsp; In fact, both the
              assembly-language source code and Colossus249.bin (or
              Colossus249.binsource) come from separate readings of the
              original <span style="font-weight: bold;">Colossus</span>
              assembly listing scan, so their equivalence provides an
              important check on validity.&nbsp; (See below.)&nbsp; The
              file Colossus249.bin was created from the
              human-readable/editable ASCII file Colossus249.binsource
              by means of the program <span style="font-weight: bold;">Oct2Bin</span>,
              with the following steps:<br>
              <br>
              <div style="margin-left: 40px;"> <span
                  style="font-family: monospace;">cd Colossus249</span><br
                  style="font-family: monospace;">
                <span style="font-family: monospace;">../Luminary131/Oct2Bin

































                  &lt;Colossus249.binsource</span><br
                  style="font-family: monospace;">
                <span style="font-family: monospace;">mv Oct2Bin.bin
                  Colossus249.bin</span><br>
              </div>
              <br>
              Admittedly, few people are likely to perform any
              processing of this kind unless contibuting a new version
              of the Colossus code to the Virtual AGC project. </td>
          </tr>
        </tbody>
      </table>
      <br>
      <h2><a name="Validity"></a>Validation</h2>
      I generally put a lot of effort into insuring that the executable
      binaries being run in the simulated AGC are byte-for-byte (or in
      the case of the AGC, word-for-word) identical to the original
      binaries used in the spacecraft.&nbsp; Most people won't be
      interested in this validation effort at all—just as we're not
      usually interested in how food gets from plants and animals onto
      the plates in front of us as long as we get our dinners on time;
      we're happy to trust others to do the work for us—but for those
      few of you who wonder if the simulated AGC really is running the
      correct code, the following sections provide explanations.&nbsp;
      The different program versions are presented in the order in which
      they were worked on.<br>
      <h3><a name="ValidityApollo9"></a>Validity of the Colossus 249
        Code (Apollo 9)<br>
      </h3>
      The following description of validation was written prior to
      having the <span style="font-weight: bold;">Colossus249</span>
      software source code in machine-readable form, and therefore prior
      to being able to the core-rope image against the source code as
      described above.&nbsp; Not only that, but there were seven errors
      in the core-rope not detected by the procedure described below!<br>
      <br>
      So the description is now obsolete.&nbsp; But I like it, and it's
      my website, so it stays.&nbsp; (Actually, it continues to have
      value, since we don't yet have all versions of the AGC source, and
      since it describes how to proceed in the case of recovering
      poor-quality assembly listings.)<br>
      <h4><a name="A_Tour_of_the_Source_Materials"></a>A Tour of the
        Source Materials</h4>
      Let's look at a pages from the <a
        href="ScansForConversion/Colossus249/0200.pdf"> source materials</a>
      (actually, a greatly improved version) I've used in reconstructing
      <span style="font-weight: bold;">Colossus</span> 1A (build
      249).&nbsp; In appearance, what we have is a <span
        style="font-style: italic;">scan</span> of a <span
        style="font-style: italic;">photocopy</span> of an <span
        style="font-style: italic;">assembly listing</span> of the
      program.&nbsp; Significant portions of the assembly listing have
      been corrupted (or even destroyed) after scanning, seemingly by
      processing with the optical-character-recognition capabilities of
      Adobe Acrobat.&nbsp; (The <a
        href="ScansForConversion/Luminary131/0202.jpg"> source materials</a>
      used for <span style="font-weight: bold;">Luminary</span> 1C,
      build 131, are generally similar, except that the original
      photocopy seems to be of better quality, the scans seem to have
      been performed with much more care, and no destructive
      post-processing has been performed.&nbsp; On the other hand, the
      original <span style="font-weight: bold;">Luminary</span>
      printout seems to have been on computer paper with green and white
      color bars, and the remnants of the green bars make portions of
      the listing very difficult to read with certainty.&nbsp; Most of
      what I have to say will apply to <span style="font-weight: bold;">Luminary</span>
      as well as to <span style="font-weight: bold;">Colossus</span>.)&nbsp;
































      With some luck, I'll be able to find (or will be given) better
      source materials at some point in the future, but I've had no luck
      so far in obtaining such materials and therefore have had to make
      do with what's available.<br>
      <br>
      An <span style="font-style: italic;">assembly listing</span> is a
      type of report created when a program's source code is processed
      ("assembled"), in this case by the assembler program called <span
        style="font-weight: bold;">YUL</span>.&nbsp; (Actually, by <span
        style="font-weight: bold;">GAP</span>, the successor to <span
        style="font-weight: bold;">YUL</span>, but when I say "YUL" I
      really mean "either YUL or GAP".)&nbsp; Such an assembly listing
      contains not only a listing of the source code, but also other
      helpful information such as the octal values which the source code
      assembles to.&nbsp; The octal codes are what is needed to <span
        style="font-style: italic;">run</span> the program, while the
      source code is what is needed to <span style="font-style:
        italic;">modify</span> the program.&nbsp; The general layout of
      the <span style="font-weight: bold;">Colossus</span> (or <span
        style="font-weight: bold;">Luminary</span>) assembly listing has
      a series of sections, of which some of the more interesting are:<br>
      <ul>
        <li>A listing of the source code, side by side with the octal
          codes created from the source code, side by side with the
          addresses at which the octal values are placed.&nbsp; <a
            href="853.pdf">Click here</a> to see a typical page (without
          OCR).&nbsp; The source code is on the right-hand side of the
          page, whereas the octal values, addresses, and other
          miscellaneous notations are on the left-hand side of the
          page.&nbsp; This section occupies about 1500 pages of the
          assembly listing.<br>
        </li>
        <li>A symbol table, giving the addresses at which all of the
          symbols created by the program are defined.</li>
        <li>An octal listing, which is the same as the octal values
          shown earlier side by side with the source code, but now
          rearranged so that the values are arranged by memory
          address.&nbsp; <a href="1714.pdf">Click here</a> to see a
          typical page (without OCR).&nbsp; This section occupies about
          150 pages of the source listing.<br>
        </li>
        <li>An octal-to-page cross reference, in which you can find the
          page of the assembly listing at which the octal value for any
          given address is defined.</li>
      </ul>
      <h4><a name="Proofing_in_the_Usual_Case"></a>Proofing in the Usual
        Case</h4>
      From the description above, you will have noted that source code
      is listed once within the assembly listing, but that octal values
      created from the source code are listed <span style="font-style:
        italic;">twice</span>, and are therefore redundant.&nbsp;
      Furthermore, knowing the source code, one can recreate the octal
      values from it.&nbsp; (The reverse is not as easy.)&nbsp; Finally,
      the octal listing is much shorter than the source-code
      listing.&nbsp; Therefore, it shouldn't be surprising that it is
      much easier to create a file containing a valid octal listing of
      the program than it is to create a file containing a valid
      source-code listing.<br>
      <br>
      It is also much easier to <span style="font-style: italic;">know</span>
      that an octal listing is valid than it is to know that a
      source-code listing is valid.&nbsp; This is true because the <span
        style="font-weight: bold;">YUL</span> assembler has added
      "checksums" to the octal values, which can be used to verify (or
      at least give a high degree of confidence) that the octal values
      are correct.&nbsp; The way this works is that the so-called "fixed
      memory" of the AGC has been divided into 36 banks, numbered 0-43
      in octal notation, each of which has a 15-bit checksum created by
      adding up all of the 15-bit words within the bank.&nbsp;
      (Actually, the rule for computing the checksum is more
      complicated, but that's the basic idea.)&nbsp; Therefore, if we
      compute the checksum of a bank and see that it is the same as the
      checksum provided by <span style="font-weight: bold;">YUL</span>,
      we can be fairly confident that the contents of the bank are
      correct.&nbsp; (I should mention that I've provided a utility
      called <span style="font-weight: bold;">Oct2Bin</span> which is
      helpful in this connection.&nbsp; Octal codes can be placed in a
      simple ASCII file, and then processed with <span
        style="font-weight: bold;">Oct2Bin</span> to create a file
      containing the actual octal/binary codes and to verify all bank
      checksums.)<br>
      <br>
      Another helpful touch added by <span style="font-weight: bold;">YUL</span>
      is that each octal value is accompanied by a <span
        style="font-style: italic;">parity bit</span>, contrived to make
      the number of 1-bits within the octal value (including the parity
      bit) an odd number.&nbsp; This is useful in detecting single digit
      errors of some kinds.&nbsp; (The digits 0, 3, 5, and 6 have <span
        style="font-style: italic;">even parity</span>, while the digits
      1, 2, 4, and 7 have <span style="font-style: italic;">odd parity</span>.&nbsp;
































      Therefore, examination of the parity bit could detect substitution
      of a '2' for a '3', for example, but not substitution of a '5' for
      a '6'.)<br>
      <br>
      In almost all cases, the following simple procedure suffices to
      produce a valid octal listing:<br>
      <ol>
        <li>Manually proof-read a memory bank of the octal listing
          against the original assembly listing, using the redundancy of
          the octal values or manually assembling source code as
          necessary to account for corrupted areas of the assembly
          listing.</li>
        <li>Compute and verify the checksum.</li>
        <li>On failure, go back to step 1.&nbsp; On success do the next
          memory bank.</li>
      </ol>
      Given a valid octal listing, determining the validity of a <span
        style="font-style: italic;">source-code</span> listing is rather
      trivial:&nbsp; simply run the source code through the <span
        style="font-weight: bold;">yaYUL</span> assembler, and verify
      that the same octal listing is produced.<br>
      <br>
      This procedure in fact suffices for the entire <span
        style="font-weight: bold;">Luminary</span> octal listing, and
      for all memory banks of <span style="font-weight: bold;">Colossus</span>
      except banks 35 and 36 (octal).&nbsp; If you want to learn more
      about proofing <span style="font-weight: bold;">Colossus</span>
      memory banks 35 and 36, read onward.&nbsp; Otherwise, quit now!<br>
      <br>
      <span style="font-weight: bold;">Postscript</span>:&nbsp; After
      writing all of the material below, I was fortunate enough to
      receive some much-improved page scans of relevant portions of bank
      36 from Mr. Gary Neff.&nbsp; Therefore, bank 36 is now capable of
      being proofed by the simple method explained above.&nbsp; However,
      it was previously proofed using the much more complex methods
      explained below, and therefore I haven't bothered to change the
      explanation that follows.<br>
      <h4><a name="Proofing_in_Extraordinary_Cases_"></a>Proofing in
        Extraordinary Cases<br>
      </h4>
      The simple proofing method outlined above fails when the scan of
      the assembly listing for some memory bank is <span
        style="font-style: italic;">so</span> corrupted that the bank
      checksum or some value(s) within the memory bank are completely
      unknown.&nbsp; Sadly, this condition occurs within <span
        style="font-weight: bold;">Colossus</span> 1C (build 249) banks
      35 and 36.&nbsp; <a href="1713.pdf">Click here</a> to see the
      culprit page of the octal listing.&nbsp; This corrupted page from
      the octal listing actually wads together the end of bank 35 and
      the beginning of bank 36 in such a way that there is no chance of
      figuring out any but a small part of them.&nbsp; In this case, one
      has no choice but to use the redundant listing of the octal values
      that appears side by side with the source code.<br>
      <br>
      Unfortunately, though, the redundant octal values in the source
      code listing fail us here, though in different ways for bank 35
      and bank 36.&nbsp; For bank 35, we encounter the problem that the
      bank checksum appears <span style="font-style: italic;">only</span>
      within the octal listing and is not redundant.&nbsp; Therefore, we
      can theoretically know all of the octal values in the memory
      bank—if our proofing is 100% accurate—but cannot use the bank
      checksum to give us the degree of confidence we would like.&nbsp;
      For bank 36, the checksum is intact but some of the octal values
      cannot be directly determined because of corruption within the
      source-code listing.&nbsp; (In other words, <span
        style="font-style: italic;">both</span> the octal listing and
      the source-code listing are corrupted in the <span
        style="font-style: italic;">corresponding place</span>.)&nbsp;
      As far as proofing is concerned, however, the conclusion is the
      same:&nbsp; We need some method of proofing which gives us a high
      level of confidence in the result, in the absence of a checksum.<br>
      <br>
      Here is the alternate method of proofing used in this cases, which
      seems to offer a fairly high level of confidence:<br>
      <ol>
        <li>Note first that each memory bank actually occupies 4 pages
          within the octal listing.&nbsp; For this method, we proof each
          memory page separately from the others.</li>
        <li>Manually proof-read the memory page, using either the octal
          listing or the source-code listing as desired or
          appropriate.&nbsp; While doing so, record the number of digits
          which have been corrected.</li>
        <li>Repeat step 2 until zero corrections have been made in two
          successive proofings.</li>
        <li>To the extent feasible, one of the 0-error proofings should
          use the octal listing, and the other should use the
          source-code listing.</li>
      </ol>
      The theory behind this procedure is that in any given proofing a
      certain percentage of errors is corrected, and that by monitoring
      the number of errors that have been corrected we can get a good
      sense of the number of errors remaining.&nbsp; To take a "typical"
      case, suppose that on the first proofing 100 errors are detected
      and corrected, on the second proofing 1 error is detected and
      corrected, and on the third and fourth proofings 0 errors are
      detected.&nbsp; It would be reasonable to suppose that each
      proofing pass detects 99% of errors, so the expected number of
      errors remaining after the 4th pass is 100*0.01*0.01*0.01*0.01, or
      about a millionth of an error.&nbsp; Of course, this reasoning
      assumes that our ability to detect and correct different errors
      has some quality of statistical independence, and that errors are
      not remaining undetected through some systematic problem.&nbsp; We
      try to overcome that objection by making sure that we use both the
      octal listing and the source-code listing in the proofing process,
      but how successful we have been is always debatable.<br>
      <br>
      As far as proofing is concerned, this technique suffices for <span
        style="font-weight: bold;">Colossus</span> banks 35 and 36, but
      does not actually give us a 100% knowledge of the octal values
      within the banks.&nbsp; For bank 35, we can simply construct a
      checksum and be done with it.&nbsp; But for bank 36, we need to do
      a little more work.&nbsp; If you want to know more about that,
      read onward!<br>
      <h4><a name="When_All_Else_Fails"></a>When All Else Fails—Digital
        Archaeology<br>
      </h4>
      In a case like bank 36, the technique above may give us confidence
      that all octal values that are legible in the page images are
      keyed accurately, but the proofing technique can't give us any
      insight into the octal values that are simply missing from both
      the source-code listing and the octal listing.&nbsp; One trick we
      can try is to compare the <span style="font-weight: bold;">Colossus</span>
      and <span style="font-weight: bold;">Luminary</span> source-code,
      which actually have a high degree of overlap in general.&nbsp;
      Unfortunately, this is not a case in which there is any such
      overlap, so the comparison is of no help.<br>
      <br>
      Click <a href="850.pdf">here (p. 846)</a> and <a href="851.pdf">here
































        (p. 847)</a> to see the pages of the source-code listing that
      are relevant to the problems in bank 36, namely:<br>
      <ol>
        <li>Address 36,2634:&nbsp; This source-code line is simply
          missing.&nbsp; We have no clue as to what may have been in it,
          except that it is seemingly the <span style="font-style:
            italic;">first</span> part of a double-precision constant
          whose <span style="font-style: italic;">second</span> part is
          the word 00000 octal.</li>
        <li>Address 36,2734:&nbsp; Appears to be interpretive code
          reading "<span style="font-style: italic;">something1
            something2</span>", but only a couple of pixel rows are
          present, and so neither the octal code nor the
          assembly-language code can be read.</li>
        <li>Address 36,2742:&nbsp; Highly corrupted, but <span
            style="font-style: italic;">may</span> have the octal code
          00021 and <span style="font-style: italic;">may</span> have
          interpretive source code reading "16D".</li>
        <li>Address 36,2747:&nbsp; Pretty corrupted, but seems likely to
          be the interpretive source code "CALL" with octal code 77624.<br>
        </li>
      </ol>
      As far as points 3 and 4 are concerned, I think it's pretty easy
      to convince ourselves that the proposed interpretations are
      probably correct.&nbsp; If you want a challenge, you may like to
      try solving problems 1 and 2 for yourself, before continuing to
      read my proposed solution below.<br>
      <br>
      Point 2 is somewhat trickier than problems 3 and 4, because the
      corruption of the page-image is so much greater.&nbsp; But with
      some effort, we can still figure it out.&nbsp; Within the <a
        href="851.pdf">offending page</a> of the source-code listing,
      notice the notations "REF" and "LAST".&nbsp; These notations
      appear only on source-code lines referencing variables.&nbsp;
      "REF" gives the number of times the variable has been referred to
      so far in the assembly listing, which "LAST" gives the page number
      on which the preceeding reference occurred.&nbsp; The problematic
      source line clearly contains REF and LAST notations (even though
      we cannot read them), and so it is clear that <span
        style="font-style: italic;">something2</span> is the name of a
      variable.&nbsp; You should be able to convince yourself fairly
      easily that the variable in question is <span style="font-family:
        monospace;">RCON</span>.&nbsp; In other words, <span
        style="font-style: italic;">something2</span>="<span
        style="font-family: monospace;">RCON</span>".&nbsp; (In case
      it's still not obvious <span style="font-style: italic;">how</span>
      you would convince yourself of this, note that "REF 6" to <span
        style="font-family: monospace;">RCON</span> is below the missing
      source line, while "REF 4" is on the preceding page, but that "REF
      5" is nowhere to be found.)&nbsp; Next, because this section of
      code is AGC interpreter language (rather than assembly language),
      we can narrow down the choices for <span style="font-style:
        italic;">something1</span>; theoretically, the only
      possibilities are <span style="font-family: monospace;">STORE</span>,
      <span style="font-family: monospace;">STODL</span>, or <span
        style="font-family: monospace;">STOVL</span>.&nbsp; Simply in
      terms of appearances, it seems likely that <span
        style="font-style: italic;">something1</span>=<span
        style="font-family: monospace;">STODL</span>.&nbsp;
      Unfortunately, the interpreter documentation (<a
        href="hrst/archive/1687.pdf"><span style="font-style: italic;">Users






















          Guide to the Block II AGC/LGC Interpreter</span></a>, by
      Charles A. Muntz) was last updated in early 1965, and contains an
      incorrect numerical opcode for <span style="font-family:
        monospace;">STODL</span>.&nbsp; Not to be deterred, though, if
      we look at the other source-code lines near the missing line, we
      see intact lines like "<span style="font-family: monospace;">STODL
        RPRE,</span>" (the comma after "<span style="font-family:
        monospace;">RPRE</span>", by the way, is actually part of the
      variable name), from which we can deduce that the octal code for <span
        style="font-family: monospace;">STODL</span> is 16000.&nbsp;
      Noting that <span style="font-family: monospace;">RCON</span> has
      the address 1635, therefore, "<span style="font-family:
        monospace;">STODL RCON</span>" must assemble to the octal code
      16000+1635+1=17636.&nbsp; But—and why, I'd like to know, does
      there always seem to be <span style="font-style: italic;">another</span>
      "but"?—the missing line of code is preceded by a line of source
      code reading simply "<span style="font-family: monospace;">STADR</span>".&nbsp;






















      The <span style="font-family: monospace;">STADR</span> opcode has
      the odd effect of complementing the code that follows it.&nbsp;
      Therefore—finally!—the missing octal code for address 36,2734 is
      probably 60141.&nbsp; This closely matches the remaining pixel
      fragments (and expected parity bit) of the missing line, and so we
      can feel good about it.<br>
      <br>
      Having now determined all of the octal values within the bank
      except at address 36,2634, and noting the checksum for bank 36 is
      known, we can consider the possibility of recreating the octal
      value at 36,2634 simply by putting a value there that correctly
      reproduces the bank's checksum.&nbsp; This is actually trickier
      than you may suppose, since the checksum is unique only up to a
      sign.&nbsp; (In other words, we don't know whether to insert a
      value that produces the positive checksum or one that produces the
      negative checksum.)&nbsp; Often, either the positive or the
      negative checksum will be impossible to produce, thus removing the
      uncertainty.&nbsp; Where it is possible to produce both the
      positive and the negative checksum, we note that 90% of the memory
      banks have positive checksums, so we have a much better chance of
      being correct if we choose the positive checksum.&nbsp;&nbsp; All
      of this turns out to be an anti-climax, however:&nbsp; Prior to
      any of the reasoning listed above, our inclination was simply to
      put 00000 at address 36,2634.&nbsp; Remarkably, this produces the
      correct bank checksum without any additional work on our
      part!&nbsp; Perhaps this is the first time in history that a gut
      reaction has been confirmed by checksum.<br>
      <h4><a name="Happy_Epilogue"></a>Happy Epilogue!</h4>
      After the all of the intricate reasoning above was worked out—and
      the description above written—Mr. Gary Neff was able to send me
      some terrific replacement scans of the problematic
      assembly-listing pages from bank 36, namely pp. 846-847.&nbsp; If
      you examine locations 36,2634, 36, 2734, 36,2742, and 36,2747 on
      the new scan, you'll see that they indeed contain exactly the
      values deduced above!&nbsp; I still think the exploration I went
      through before receiving the new scans is a valuable illustration
      of technique, not to mention being soothing to my ego, so I'll
      leave it in place for future generations to enjoy.&nbsp; :-)<br>
      <h3><a name="ValidityApollo11"></a>Validity of the Comanche 055
        Code (Apollo 11)<br>
      </h3>
      The Comanche 055 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.&nbsp; The conversion technique was very abbreviated
      compared to that of Colossus 249, as follows:<br>
      <ul>
        <li>A small corps of volunteers—thanks (in alphabetical order)
          Fabrizio Bernardini, Hartmuth Gutshe, Onno Hommes, Jim Lawton,
          and Sergio Navarro!—took the existing Colossus 249 source-code
          files, or on occasion the Luminary 131 source-code files, and
          laboriously compared them line-by-line to the Comanche 055
          assembly-listing page images, porting the differences they
          found.</li>
        <li>The resulting Comanche 055 source code was assembled using <span
            style="font-weight: bold;">yaYUL</span> to produce a binary
          executable, which was horribly wrong at this point (with
          dozens of conversion errors), 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.&nbsp; 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.&nbsp; 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.<br>
        </li>
      </ul>
      The binary thus produced by <span style="font-weight: bold;">yaYUL</span>
      is supplied in the source tree and used for regression testing.<br>
      <h3><a name="ValiditySource15"></a>Validity of Artemis 072 Code
        (Apollo 15-17)</h3>
      The Artemis 072 executable (Artemis072.bin) was created by
      manually entering binary data from scans of an Artemis 072
      assembly listing.&nbsp; The data was proofed and reproofed until
      the bank checksums, as described above, were correct, and the
      binary was made available to the public on 2006-01-10.&nbsp; On
      2010-02-20 (more than 4 years later), source code was finally
      available and assembled.&nbsp; <span style="text-decoration:
        underline;">A single error</span> <span style="font-style:
        italic; text-decoration: underline;">which did not affect the
        memory-bank checksum</span> <span style="text-decoration:
        underline;">was found</span> and corrected in the binary.&nbsp;
      So we are <span style="font-style: italic;">now</span> confident
      that what is being provided is both complete and correct.<br>
      <br>
      This is an interesting object lesson.&nbsp; My previous notes in
      this section, prior to the availability of source code, made it
      clear that I wouldn't be surprised if additional pairs or even
      triplets of errors were found in the binary ... but the notion
      that an unpaired error might still exist which did not affect the
      checksum never occurred to me.&nbsp; The problem is a weakness in
      the checksumming algorithm used in the AGC.<br>
      <br>
      If the AGC had used a "normal" checksumming algorithm (from the
      modern point of view) with 2's-complement arithmetic, any <span
        style="font-style: italic;">single</span> error in data would
      have caused the checksum to change, and the error to be detected.<br>
      <br>
      But in the 1's-complement arithmetic of the AGC, simple
      checksumming does not have the same desirable property.&nbsp; For
      example, since there is both a +0 and a -0, which produce the same
      result in an addition, a memory error in which +0 is replaced by
      -0 (or vice versa) produces the same checksum and would be
      undetectable.&nbsp; But algorithmically the problem is more
      complicated than that, since a simple checksum algorithm was not
      used.&nbsp; The actual algorithm used on a data-word by data-word
      basis was this:<br>
      <ul>
        <li>The next data word is added to the running checksum.</li>
        <li>If there is <span style="font-style: italic;">positive</span>
          overflow, the result is reduced by 040000 (considered as a
          positive number, thus preserving the sign of the result) and
          then incremented.</li>
        <li>if there is <span style="font-style: italic;">negative</span>
          overflow, the result is incremented by 040000 (again,
          considered as a positive number, thus preserving the sign of
          the result), and then decremented.</li>
      </ul>
      For example, if the running checksum was 030000 (a positive
      number), and the next data word was 020000 (another positive
      number), then adding them would give 050000 (arithmetic
      overflow!), which would be decremented (due to the overflow) by
      040000 to give 010000, and then incremented by 1 to give a running
      checksum of 010001.<br>
      <br>
      If you are amused by such stuff, I invite you to consider the ways
      in which such an algorithm might fail to detect error.&nbsp; In
      the case of the Artemis 72 binary, the now-corrected error was a <span
        style="font-style: italic;">single bit</span> (the most
      significant bit) of a single memory location.<br>
      <h3><a name="ValidityApollo8"></a>Validity of Colossus 237 (Apollo
        8)</h3>
      The Colossus 237 program listing presented a special challenge,
      because the only physical copy we've had access to is
      truncated.&nbsp; It contains all of the source code, as well as
      the binary words associated with the source code on a line-by-line
      basis.&nbsp; But it is missing the octal listing that condenses
      all of the binaries into an easily accessible form.&nbsp; Because
      the octal listing is missing, the "bugger words" that are used to
      make the memory-bank checksums compute correctly are also
      missing.&nbsp; Thus, important redundancies and checksums that
      normally would be used to provide confidence of correctness are
      missing.<br>
      <br>
      Therefore, the following unique validation procedure was applied
      instead:<br>
      <ul>
        <li>A "binsource" file was created by laboriously stepping
          through the page images of the program listing, line-by-line,
          and observing the listed binary words.&nbsp; The "bugger
          words" are not available in this fashion, and are therefore
          left at zero.</li>
        <li>Since Colossus 237 and Colossus 249 are separated in time by
          only a few months, the binsource files of Colossus 237 and
          Colossus 249 — i.e., the binary files we create manually,
          independently of the source listings, as part of the
          data-entry process — were compared using automated tools
          ('diff' or similar).&nbsp; Where differences existed, the page
          images of the Colossus 237 program listing were referenced to
          verify (to the extent possible) that the differences were real
          rather than being transcription errors.&nbsp;<br>
        </li>
        <li>Where complete memory banks were found to be identical by
          the automated comparison, the bugger words were copied from
          Colossus 249 to Colossus 237.</li>
        <li>Source-code files were created from the page images of the
          program listing.</li>
        <li>The binary of the assembled source-code files was compared
          in an automated fashion against the binary created from the
          binsource file, and either the binsource file or the source
          code (or both) were corrected when any discrepancies were
          found.&nbsp; At this stage of the process, validation process,
          it is very typical for "superbank" errors to show up; these
          are errors not in the source code <i>per se</i>, but are due
          to discrepancies between <b>yaYUL</b>'s assumptions about the
          superbank memory settings in comparison to the assumptions of
          the original YUL or GAP assemblers; thus, those superbank
          problems were corrected as well.<br>
        </li>
        <li>For any banks remaining without bugger words in the
          binsource file, the bugger words created by <span
            style="font-weight: bold;">yaYUL</span> were added.</li>
      </ul>
      <p>Thus while we can't have as much confidence in the validity of
        the Colossus 237 transcription, in comparison to almost all of
        the other Colossus and Luminary transcriptions, the code has
        nevertheless been double-checked both manually (visually) and in
        an automated fashion as well.<br>
      </p>
      <h3><a name="Validity_of_Solarium_055_Apollo_4"></a>Validity of
        Solarium 055 (Apollo 6)</h3>
      Solarium 055 presented a big challenge because it is the first
      Block I code processed, and no Block I support was previously
      provided by the <span style="font-weight: bold;">yaYUL</span>
      assembler.&nbsp; However, support for Block 1 was in fact added to
      <b>yaYUL</b>, and after that validation of Solarium 055 differed
      little from any other AGC program.&nbsp; Unfortunately there is no
      way as of yet to run Solarium in yaAGC, so we have not had the
      additional pleasure (and assurance!) of witnessing it run.<br>
    </div>
    <br>
    <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
          2018-12-02.<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>
back to top