swh:1:snp:79c9132b4a8931e989e318225e00e088ef6f383d
Raw File
Tip revision: a8fa8f03b50a72034009439908f1339f4ce94518 authored by Ron Burkey on 06 June 2021, 12:28:21 UTC
Fixed more hyperlinks.
Tip revision: a8fa8f0
index.html
<!DOCTYPE doctype PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
  <head>
    <title>Virtual AGC Home Page</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="author" content="Ron Burkey">
    <link rel="icon" type="image/png" href="favicon.png">
    <meta name="author" content="Ron 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@", "HOME PAGE").replace(
"@SUBTITLE@", "Project Overview"))
</script>
    <h2>This Project</h2>
    <a href="AGC%20Software%20Landscape.png"><img
        src="AGC%20Software%20Landscape-small.png" title="Click to
        enlarge" alt="" width="211" height="326" border="2"
        align="right"></a>The purpose of this project is to provide
    computer simulations of the onboard guidance computers used in the
    Apollo Program's lunar missions — but <i>primarily</i> the Apollo
    Guidance Computer (AGC) used in the Command Module and the Lunar
    Module —, and to generally allow you to learn about these guidance
    computers.&nbsp; Since the resources available in this project have
    ballooned so much over the years, exploring it for the first time
    can be quite intimidating.&nbsp; We invite you to look at our <a
      href="ForDummies.html">"kinder and gentler" introductory page</a>
    before immersing yourself in the full, gory detail presented by the
    bulk of the website.&nbsp; <br>
    <br>
    Also, if you have some specific interests and don't want to wade
    through a bunch of stuff unrelated to them, the search bar at the
    top of this page might help.&nbsp; This quick cheat sheet might help
    too:<br>
    <ul>
      <li>If you're interested in the Apollo Guidance Computer (AGC) ...</li>
      <ul>
        <li>We have the original AGC software, in lots of different
          versions, including Apollo 8, 11, and 17, transcribed into
          source code, both <a href="Colossus.html">for the Command
            Module</a> and <a href="Luminary.html">for the Lunar Module</a>.&nbsp;


          The goal is to eventually have these at least for every
          mission.&nbsp; The image to the right (click to enlarge) is
          our roadmap for getting there.<a href="Luminary.html"><br>
          </a></li>
        <li><a href="yaAGC.html">We have simulation software that can
            run that original AGC software on your computer in real time</a>
          (and <a href="yaDSKY.html">can simulate its display/keyboard
            unit</a>)<a href="yaAGC.html"><br>
          </a></li>
        <li><a href="ElectroMechanical.html">We have electrical
            schematics and mechanical drawings for the AGC, and for
            other components of the Guidance and Navigation (G&amp;N)
            system, often transcribed into CAD<br>
          </a></li>
        <li><a href="Verilog.html">We can run Verilog digital
            simulations of the AGC electronics, for detailed inspection
            of how all its signals behave</a></li>
        <li><a href="links.html">And we have lots and lots of Apollo-era
            documentation about the AGC from MIT's Instrumentation Lab,
            NASA, and others</a><br>
        </li>
      </ul>
      <li>If you're interested other flight computers used in the Apollo
        Program ...</li>
      <ul>
        <li><a href="yaAGS.html">For the Lunar Module's Abort Guidance
            System (AGS) computer, we have its original software, and
            simulation software for running that AGS software on your
            computer<br>
          </a></li>
        <li><a href="LVDC.html">We have lots of documentation about the
            Saturn rocket's guidance computer (LVDC) ... but none of its
            original software<br>
          </a></li>
      </ul>
      <li><a href="https://sourceforge.net/projects/nassp/">We can fly
          realistic simulated Apollo missions using real AGC/AGS
          software</a></li>
      <li><a href="Pultorak.html">We can build our own physical AGC/DSKY</a><br>
      </li>
      <li><a href="Gemini.html">We have documentation about the Gemini
          flight computer (OBC) ... but none of its original software</a></li>
      <li><a href="ElectroMechanical.html#LEM_Engineering_Drawings">We
          are beginning to have lots of Grumman's Lunar Module
          engineering drawings (not just the computer-related ones), and
          hopefully will eventually have essentially all of them</a><br>
      </li>
      <li>We do <i>not</i> have anything at all about Mercury or the
        Shuttle.<br>
      </li>
    </ul>
    <br>
    <br>
    <div align="center"> <iframe
        src="https://www.youtube.com/embed/hyhI85Rd1kI"
        allowfullscreen="" width="854" height="480" frameborder="0"></iframe></div>
    <br>
    The video clip above (courtesy of user Dean Koska and YouTube)
    illustrates some of the cute things you can do with Virtual AGC if
    you're of a mind to do so.&nbsp; Dean compiled our <a
      href="yaAGC.html">simulated AGC CPU</a> to run on a Palm
    Centro—explaining that a regular Palm was too slow.&nbsp; He created
    his own simulated display/keypad ( <a href="yaDSKY.html">DSKY</a>),
    presumably aided by the <a href="developer.html">developer info</a>
    we provide for just such a desire.&nbsp; (And sorry, Dean's Palm
    port isn't provided from our <a href="download.html">downloads page</a>.)<br>
    <br>
    Here are some other video clips (courtesy of Niklas Beug and
    YouTube) which take a little longer to watch (20 minutes), but are
    perhaps even more instructive.&nbsp; <a href="yaAGC.html">Our
      simulated AGC software</a> has been integrated into <a
      href="https://github.com/dseagrav/NASSP/tree/master">the NASSP
      add-on</a> for <a href="http://orbit.medphys.ucl.ac.uk/">the
      Orbiter space-flight simulator</a>, and is used there to fly
    simulated Apollo or Apollo-like missions.&nbsp; And you can fly such
    simulated missions&nbsp; too, using that software, as if you were
    Neil Armstrong yourself ... assuming you're up the challenge!&nbsp;
    The videos below show simulated Apollo 11 and 15 lunar landings,
    using our AGC and the actual original Apollo 11 and Apollo 15
    guidance-computer software running on it.&nbsp; Of course, all the
    fancy graphics is NASSP/Orbiter's and not ours, but the AGC is
    behind the scenes, helping to run the spacecraft, and the
    accompanying text describes how the AGC is being used!&nbsp; The
    Apollo 15 video is quite exciting, as the LM swoops in over the
    Lunar Apennine Mountains to the landing site in Hadley Rille.&nbsp;
    (I suppose I should also mention that Nik provided these videos in
    full HD Quality, though you'll only see a much-reduced quality in
    the tiny boxes below, so you might want to head over to YouTube
    itself to watch them, if you want to get the full glory of the
    things.)<br>
    <br>
    <table width="100%" cellspacing="2" cellpadding="2">
      <tbody>
        <tr>
          <td valign="top">
            <center> <iframe
src="https://www.youtube.com/embed/sHaS6sYJsMg?feature=player_detailpage"
                allowfullscreen="" width="640" height="360"
                frameborder="0"></iframe> </center>
            <br>
          </td>
          <td valign="top">
            <center><iframe
                src="https://www.youtube.com/embed/E301HplyA7A"
                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;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;gt;






              </iframe></center>
          </td>
        </tr>
      </tbody>
    </table>
    <br>
    <h2>Contents</h2>
    <ul>
      <li><a href="index.html#What_Is_An_AGC_">What are the "AGC",
          "AGS", and "LVDC"?</a></li>
      <li><a href="index.html#What_Virtual_AGC_Is">What "Virtual AGC" is</a></li>
      <li><a href="index.html#What_Virtual_AGC_Is_Not">What Virtual AGC
          is not</a></li>
      <li><a href="index.html#Principal_Elements_of_Virtual_AGC_">Existing
Elements






          of the Virtual AGC Project<br>
        </a></li>
      <li><a href="index.html#Licensing">Licensing</a></li>
      <li><a href="index.html#What_If_You_Want_To_Help">What if You Want
          to Help?</a></li>
      <li><a href="index.html#Running_the_Emulator">Running the Emulator
          ... or, A Brief Introduction to the GUI</a><br>
      </li>
      <li><a href="index.html#Quick_Start">Quick Start</a></li>
      <ul>
        <li><a href="index.html#Running_the_Validation_Suite_">Running
            the Validation Suite</a></li>
        <li><a href="index.html#Playing_with_Colossus_">Playing with
            Colossus</a></li>
        <li><a href="index.html#Playing_with_Luminary_">Playing with
            Luminary</a></li>
        <li><a href="index.html#Much_more_intensive_playing_with_the_LM">Much
more






            intensive playing with the LM</a></li>
        <li><a href="#Canned_pre-recorded_mission_segments">Canned,
            pre-recorded mission segments</a><br>
        </li>
        <li><a href="index.html#Playing_with_the_Abort_Guidance_System_">Playing
with






            the Abort Guidance System</a><br>
        </li>
        <li><a href="index.html#Playing_with_AGC_assembly_language_">Playing
with






            AGC assembly language</a></li>
        <li><a href="index.html#Modifying_the_LM">Modifying the LM
            software (for the truly brave)</a></li>
        <li><a href="index.html#Final_exam_for_the_advanced_student_">Final
exam






            (for the advanced student)</a></li>
        <li><a href="index.html#..._Or_for_the_silly_mood_">... Or, for
            the silly mood</a></li>
        <li><a href="index.html#..._Or_for_the_even_sillier_mood_">...
            Or, for the even sillier mood</a><br>
        </li>
      </ul>
      <li><a href="index.html#Acknowledgements">Acknowledgements</a></li>
    </ul>
    <h2><a name="What_Is_An_AGC_"></a><small><big>What are "Block I",
          "Block II", the "AGC", "AGS", "LVDC", and "OBC"?</big><br>
      </small></h2>
    "AGC" stands for <span style="font-weight: bold;">A</span>pollo <span
      style="font-weight: bold;">G</span>uidance <span
      style="font-weight: bold;">C</span>omputer.&nbsp; The AGC was the
    principal onboard computer for NASA's Apollo missions, including all
    of the lunar landings.&nbsp; Both the Command Module (CM) and the
    Lunar Module (LM) had AGCs, so two AGCs were used on most of the
    Apollo missions, but with differing software.&nbsp;&nbsp; The
    computer and its software were developed at MIT's Instrumentation
    Laboratory, now known as Draper Labs.<br>
    <br>
    The "block II" AGC, employing the AGC4 instruction set, is the
    particular computer model in which we're interested, most of the
    time. The block II AGC was used not only on Apollo 7 through Apollo
    17 (including all actual lunar landings), but also on three Skylab
    missions, on the Apollo-Soyuz test mission, and on a <a
href="http://www.klabs.org/history/history_docs/reports/dfbw_tomayko.pdf">fly-by-wire






      research project using F-8 aircraft</a>. Nevertheless, only 57
    AGCs were constructed—and 138 display-keyboard units (DSKYs) for
    them—and all of the ones installed in the Lunar Modules were not
    returned to the Earth—so they are definitely collector's items. <br>
    <br>
    There was also the "block I" model of the AGC, which predated the
    block II model.&nbsp; The block I model was supposed to fly in
    Apollo 1 and 2.&nbsp; But since Apollo 1 was tragically destroyed by
    fire, and Apollo 2 never flew, the block I model was never used in
    any manned mission.&nbsp; It was, nevertheless, used in the unmanned
    Apollo 3, 4, and 6 missions.<br>
    <br>
    And of course, don't forget the "block III" model of the AGC, which
    ... wait just one second there, buddy!&nbsp; Anyone who has done any
    reading at all about Apollo, knows there's no such thing as the
    block III AGC.&nbsp; Okay, that's true, but one of the original AGC
    developers, Hugh Blair-Smith, developed some thoughts in his spare
    time about what a block III AGC might look like, and has been kind
    enough to send them to us.&nbsp; If you're an advanced student of
    the AGC who has already absorbed everything there is to know about
    the block II system, <a href="BlockIII.html">you might be
      interested in reading what Hugh has to say about it</a>.<br>
    <br>
    "AGS" stands for <span style="font-weight: bold;">A</span>bort <span
      style="font-weight: bold;">G</span>uidance <span
      style="font-weight: bold;">S</span>ystem, of which the computer
    portion was known as the Abort Electronics Assembly (AEA).&nbsp; The
    AGS/AEA was a completely separate computer system from the AGC, with
    a different architecture, different instruction-set, different
    runtime software, and designed/manufactured by different groups than
    the AGC.&nbsp; It was in the LM as a kind of backup for the AGC, but
    was only supposed to be used (as the name implies) in case of an
    aborted landing.&nbsp; It's sole purpose was to get the LM from
    wherever it was back into lunar orbit, so that the CM could
    rendezvous with the LM.<br>
    <br>
    The "LVDC" ( <span style="font-weight: bold;">L</span>aunch <span
      style="font-weight: bold;">V</span>ehicle <span
      style="font-weight: bold;">D</span>igital <span
      style="font-weight: bold;">C</span>omputer) had yet a different
    architecture, instruction set, software, and manufacturer.&nbsp; It
    was a computer mounted in the Saturn rocket itself, and its
    responsibility was to control the firing of the rocket engines to
    give the rocket the proper trajectory.&nbsp; It was discarded when
    the CSM discarded the rocket, and consequently was used during only
    a very short time interval relative to the total length of the
    mission.<br>
    <br>
    The Gemini spacecraft also had an <b>O</b>n <b>B</b>oard <b>C</b>omputer





    (OBC), having a similar functionality to the Apollo AGC, though with
    greatly reduced capabilities and sophistication, but with a computer
    architecture very similar to the Apollo LVDC.<br>
    <br>
    Because we have much more information about the AGC than we do about
    the AGS,&nbsp; LVDC, and OBC, the bulk of this website and of the
    Virtual AGC project in general concentrates on the AGC.&nbsp;
    Coverage of the other computers is mostly confined to the <a
      href="yaAGS.html">AGS page</a>, <a href="LVDC.html">LVDC page</a>,
    and the <a href="Gemini.html">Gemini</a> <a href="Gemini.html">page</a>
    of this website.&nbsp; And similarly, there is much more discussion
    of the block II AGC than of the block I AGC.<br>
    <h2><a name="What_Virtual_AGC_Is"></a>What "Virtual AGC" Is</h2>
    <i>Virtual AGC</i> is a computer model of the AGC. &nbsp;It does not
    try to mimic the <span style="font-style: italic;">superficial</span>
    behavioral characteristics of the AGC, but rather to model the AGC's
    <i>inner workings</i>. &nbsp;The result is a computer model of the
    AGC which is itself capable of executing the original Apollo
    software on (for example) a desktop PC.&nbsp; In computer terms,
    Virtual AGC is an <span style="font-style: italic;">emulator</span>.&nbsp;
Virtual






    AGC also provides an emulated AGS and (in the planning stages) an
    emulated LVDC and OBC.&nbsp; "Virtual AGC" is a catch-all term that
    comprises all of these.<br>
    <br>
    The current version of the Virtual AGC software has been designed to
    work in Linux (including Raspberry Pi), in Microsoft Windows, and in
    Mac OS X.&nbsp; It also works in at least some versions of
    FreeBSD.&nbsp; <br>
    <h2><a name="What_Virtual_AGC_Is_Not"></a>What Virtual AGC Is Not</h2>
    In and of itself, Virtual AGC is not a full-fledged flight
    simulator, nor a lunar-lander simulator, nor even a behavioral
    simulation of the Apollo Lunar Module (LM) or Command-Module (CM)
    control panels.&nbsp; (In other words, if download and run our
    software and expect a realistic LM control panel to suddenly appear
    on your computer screen, you'll be disappointed.)&nbsp; Virtual AGC
    can be used, however, as a <span style="font-style: italic;">component</span>
    of such a simulated spacecraft, and developers of such software are
    encouraged to do so.&nbsp; Indeed, some developers already have, and
    you may have seen a sample video near the top of this page of such a
    simulation in operation!&nbsp; In particular, there is full support
    for our AGC and AGS emulations in <a
      href="http://orbit.medphys.ucl.ac.uk/">the Orbiter space-flight
      simulator</a> with <a
      href="https://github.com/dseagrav/NASSP/tree/master">the NASSP
      add-on</a>. <br>
    <h2><a name="Principal_Elements_of_Virtual_AGC_"></a><small><big>Existing
Elements






          of the Virtual AGC Project</big></small></h2>
    <p>This isn't exactly an exclusive list, but some of the important
      things we provide in the Virtual AGC project proper are listed
      below.<br>
    </p>
    <h3>AGC Elements<br>
    </h3>
    <ul>
      <li><b>yaAGC</b> is an emulation of the AGC CPU.&nbsp; To
        function, it requires a LM or CM "core rope" binary (see below).<br>
      </li>
      <li><b>yaDSKY</b> is a simulation of the Display/Keyboard used in
        Apollo. &nbsp;It supplies input to <b>yaAGC</b>, or receives
        output from it.&nbsp; The design of the emulator is modular, so
        the DSKY simulation may be easily replaced if you don't care for
        mine, or if you want to replace it with a complete control-panel
        simulation.</li>
      <li><span style="font-weight: bold;">LM_Simulator</span> is a
        simulation of various other Guidance &amp; Navigation (G&amp;N)
        system components, such as the Inertial Measurement Unit (IMU),
        an FDAI ball, an alternative simulated DSKY, and a monitor for
        the AGC's i/o-channel activity.&nbsp; <br>
      </li>
      <li><span style="font-weight: bold;">yaTelemetry</span> is a dumb
        terminal on which telemetry downlinks from <span
          style="font-weight: bold;">yaAGC</span> may be viewed, similar
        to the way such telemetry from the AGC was originally viewed by
        Mission Control.</li>
      <li><span style="font-weight: bold;">yaACA</span> is a program
        that emulates the LM's hand-controller (possibly with a
        joystick), and to communicate the desired pitch/roll/yaw changes
        to <span style="font-weight: bold;">yaAGC</span>.</li>
      <li><b>yaYUL</b> is an assembler, capable of converting AGC4
        assembly language programs like <b>Luminary</b> or <b>Colossus</b>
        (see below) into the binary executable format (a "core rope")
        needed by the AGC.</li>
      <li><b>Luminary</b> is the name of the original 1960's and 1970's
        software used for the Apollo Lunar Modules in the actual
        missions.&nbsp; Both binary executable (needed by <span
          style="font-weight: bold;">yaAGC</span>) and source code
        (needed by <span style="font-weight: bold;">yaYUL</span>) are
        provided.&nbsp; We have many, many versions of this software,
        for different missions.<br>
      </li>
      <li><b>Colossus</b> is the name of the original 1960's and 1970's
        software used for many (but not all) of the Apollo Command
        Modules.&nbsp; As with <span style="font-weight: bold;">Luminary</span>,
        both binary and source are provided, and we have many versions
        of the software.</li>
      <li><span style="font-weight: bold;">Validation</span> is the name
        of a newly-created AGC assembly-language program that provides a
        validation suite for helping to assure that the implementation
        of the virtual CPU is correct.<br>
      </li>
      <li>We have 1000+ scans of many, many of the original Project
        Apollo documents in our document library.</li>
      <li>We're making an ongoing effort to provide hardware support
        (both electrical and mechanical) for the original AGC and DSKY
        designs, and for the Guidance &amp; Navigation (G&amp;N) system
        in general:</li>
      <ul>
        <li>Tens of thousands of scans of the original G&amp;N
          electrical and mechanical drawings.&nbsp; <br>
        </li>
        <li>Many electrically-accurate transcriptions of AGC/DSKY
          electrical drawings in a modern CAD (Computer Aided Design)
          system.</li>
        <li>Translations of into AGC electrical design into the Verilog
          for simulation of the AGC electrical circuitry.</li>
        <li>(Coming real soon now.)&nbsp; 3D-models created from
          AGC/DSKY mechanical design files, for 3D printing.<br>
        </li>
      </ul>
    </ul>
    <h3>AGS Elements</h3>
    <ul>
      <li><span style="font-weight: bold;">yaAGS</span> is an emulation
        of the AGS CPU.&nbsp; To function, it requires a binary of one
        of the flight programs (see below).</li>
      <li><span style="font-weight: bold;">yaDEDA</span> is a simulation
        of the AGS user interface.</li>
      <li><span style="font-weight: bold;">yaLEMAP</span> is an
        assembler for AGS assembly language.</li>
      <li>The source code for the AGS flight program, in a couple of
        different versions.</li>
      <li>AGS scanned documentation, including specification,
        programmer's manuals, and so on.</li>
    </ul>
    <h3>LVDC and Gemini OBC Elements</h3>
    <ul>
      <li>(Planning only.) <span style="font-weight: bold;">yaLVDC</span>,
        an emulation of the LVDC and Gemini OBC CPUs, and various
        programs emulating Gemini-spacecraft peripherals.</li>
      <li><span style="font-weight: bold;">yaASM</span>, an assembler
        for the Apollo LVDC and Gemini OBC assembly language.</li>
      <li>Scans of all known existing LVDC and Gemini OBC documentation.</li>
      <li>Of course, the missing element here is that we have no
        significant access to any true LVDC or Gemini OBC source code,
        so having an assembler or simulator for it is of questionable
        utility.&nbsp; We hope this situation will change, but that hope
        fades with each passing year.<br>
      </li>
    </ul>
    <h3>And to Tie It All together ...</h3>
    <ul>
      <li><span style="font-weight: bold;">VirtualAGC</span> is a GUI
        front-end that ties all of the stuff listed above together into
        an "easily" used bundle.&nbsp; (It should be obvious why
        "easily" is in quotes here.)</li>
    </ul>
    <h2><a name="Licensing"></a>Licensing</h2>
    In general, software not original to Project Apollo is copyrighted
    by the original author, usually Ron Burkey (me!), but is provided to
    you as "free software" under the GNU <a href="http://www.fsf.org">General





      Public License</a> (GPL), though a few programs have been
    explicitly put into the public domain.&nbsp; Software originally
    from Project Apollo (such as <b>Luminary</b> and <b>Colossus</b>)
    is in the public domain, to the best of my non-lawyer
    understanding.&nbsp; Newly-written or revised documentation is being
    placed in the public domain.<br>
    <br>
    Note that if you want to use <b>yaAGC</b> or <b>yaDSKY</b> as
    components of a more-complete Apollo simulation, the modularity of
    the design allows them to be run as stand-alone programs (whilst
    communicating with your own software), and doing so does not force
    any particular licensing requirements upon your own code.
    &nbsp;However, if you choose instead to <span style="font-style:
      italic;">incorporate</span> the code directly into your program or
    to link to it, your program will itself need to be licensed under
    the GPL unless you feel like negotiating an alternate license with
    me.<br>
    <br>
    By "negotiate", I don't mean I'll charge you any money, but merely
    that I want to make sure it would be appropriate to give you an
    alternate license.&nbsp; By way of illustrating what I mean, the <span
      style="font-weight: bold;">yaAGC</span> source code license
    includes&nbsp; a "special exception" as allowed/required by the GPL,
    allowing linking to the non-free <span style="font-weight: bold;">Orbiter</span>
    spacecraft-simulator SDK libraries, which are free of charge but <i>not</i>
    under a GPL-compatible license.&nbsp; And as long as you are making
    your program freely available in the same way as <b>Orbiter</b>
    does, I would be very inclined to offer you such a special exception
    as well ... but you have to talk to me about it, and won't get it
    just by imagining it's okay.&nbsp; Refer to the <a
      href="developer.html">Developer info</a> page for more detail.<br>
    <br>
    Of course, you could develop your own AGC simulator if you don't
    feel like asking me for a non-GPL license for mine.&nbsp; It's not
    as if it's rocket science ... oh, but wait .... <img alt=""
      src="smiley.png" width="16" height="16"><br>
    <h2><a name="What_If_You_Want_To_Help"></a>What If You Want To Help?</h2>
    Check out the <a href="volunteer.html">volunteering page</a>.<br>
    <br>
    <h2><a name="Running_the_Emulator"></a>Running the Emulator ... or,
      A Brief Introduction to the GUI<br>
    </h2>
    What I'll discuss here is merely how to run the pure Virtual AGC
    software as provided directly by this project.&nbsp; If you want to
    run a full-up spacecraft simulation like <a
      href="http://orbit.medphys.ucl.ac.uk/">Orbiter</a> with <a
      href="https://github.com/dseagrav/NASSP/tree/master">the NASSP
      add-on</a>, you'll have to look at the NASSP documentation
    instead.<br>
    <br>
    The first step, of course, is to download the Virtual AGC software
    and install it or build it for the computer platform you're using,
    by following the instructions on the <a href="download.html">download






      page</a>.&nbsp; While the Virtual AGC project provides many
    different programs that implement bits and pieces of the full
    emulation, and which can be run separately if you need to craft the
    various options for your own purposes, the only program you normally
    need to worry about running is the one that's actually <span
      style="font-style: italic;">called</span> <span
      style="font-weight: bold;">VirtualAGC</span>.&nbsp; <span
      style="font-weight: bold;">VirtualAGC</span> is a GUI front-end
    which allows you to choose almost any reasonable set of options
    related to the emulation, and then to run all of the emulation
    programs needed, in a way that allows those programs to
    intercommunicate properly.&nbsp;<br>
    <br>
    Hopefully, <span style="font-weight: bold;">VirtualAGC</span> is
    itself simple enough that it really requires very little explanation
    to use, and your troubles will really begin only after the emulation
    is actually running!&nbsp; But I'll provide a very brief overview
    here.&nbsp; There's also <a href="yaTelemetry.html#VirtualAGC">a
      more detailed explanation of <span style="font-weight: bold;">VirtualAGC</span></a>
    available for your enjoyment.<br>
    <br>
    <div style="text-align: center;"> <img alt="Screenshot of
        VirtualAGC program." src="Screenshot-VirtualAGC.jpg"
        style="border: 2px solid;" width="1147" height="966"><br>
    </div>
    <br>
    The screenshot above (or a reduced-size variation, depending on your
    screen size or the command-line options you use) depicts the one and
    only window of the <span style="font-weight: bold;">VirtualAGC</span>
    program.&nbsp; There are no menus, toolbars, hot-buttons, or other
    controls.&nbsp; While a large number of options are presented, you
    don't necessarily need to change any of the selected options.&nbsp;
    The defaults are as shown, and if you simply click the "Run!" button
    at the bottom of the window, the simulation will run, as which point
    various simulation windows will pop up.&nbsp; If you change any of
    the settings, the program will remember those changes and the
    settings you've selected will be the ones that appear the next time
    you run <span style="font-weight: bold;">VirtualAGC</span>.&nbsp;&nbsp;
Or,






    you could click the "Defaults" button at the bottom of the window to
    restore all of the settings to their defaults.&nbsp; There's really
    very little reason for a complete newcomer to change any of the
    settings, but you will note that you can choose from among the
    several available sets of AGC software for different Apollo missions
    in the pane labeled "Simulation Type."<br>
    <br>
    When the simulation runs, <span style="font-weight: bold;">VirtualAGC</span>'s
rather






    large window will courteously disappear to conserve space on your
    screen, to be replaced by a other popups such as the simulated DSKY
    or a telemetry window, and will only return when the simulation
    ends.&nbsp;<br>
    <br>
    To end the simulation, simply exit from any of the visible elements
    of the simulation—though there's a bit of platform to platform
    variation as to which components are easily terminated, so I'd
    recommend closing the DSKY.&nbsp; Within a few seconds all of the
    other elements of the simulation will automatically terminate.&nbsp;
    Note, however, that the automatic closing of all the simulation
    windows isn't active until several seconds (5 in most versions, 30
    in some) have passed from the time the simulation started up, so if
    you start a simulation and then immediately decide to shut it down,
    you'll still have to wait a little while for the process to
    complete.&nbsp; Also, on Mac OS X, there are various windows that
    simply may not close automatically,&nbsp; and these will simply have
    to be closed manually from their main menus.<br>
    <h2><a name="Quick_Start"></a>Quick Start</h2>
    I expect that anyone who would <span style="font-style: italic;">really</span>
    use Virtual AGC would likely want to adapt it quite a bit, and so
    any simple instructions I might give wouldn't help much.&nbsp; Not
    to mention the burden of training yourself on the technical
    nitty-gritty of Apollo systems before you can actually <span
      style="font-style: italic;">use</span> the AGC for anything!&nbsp;
    :-)&nbsp; But here are a few scenarios where you can quickly get to
    the point of seeing <span style="font-style: italic;">something</span>
    happen, if not necessarily anything meaningful to our sad little
    earthbound minds.&nbsp; But there are still a few things you can try
    that are amusing in a geekish sense.
    <h3><a name="Running_the_Validation_Suite_"></a>Running the
      Validation Suite<br>
    </h3>
    There is a "validation suite", which has been written from scratch
    in AGC assembly language, that attempts to check that each CPU
    instruction is implemented correctly in the AGC simulator.&nbsp; You
    won't get the "Apollo experience" by running it, but at least you'll
    be executing real AGC assembly-language code:<br>
    <ol>
      <li>Run <span style="font-weight: bold;">VirtualAGC</span> as
        described above, select the "Validation Suite" choice in the
        "Simulation Type" area, and hit the "Run!" button. &nbsp;</li>
      <li>On the DSKY, you'll see 00 appear in the PROG and NOUN fields,
        and you'll see the OPR ERR&nbsp; annunciator will light.&nbsp;
        This means that the validation program is ready to start.&nbsp;
        Press the DSKY's PRO key to start the program.&nbsp; The OPR ERR
        annunciater will turn off to indicate that the command was
        accepted.</li>
      <li>After several tens of seconds, 77 will appear in the PROG
        field and the OPR ERR annunciator will light.&nbsp; If anything
        other than 77 appears in the PROG field, then the numbers in the
        PROG and NOUN fields will indicate which area of the test
        failed.&nbsp; (You can press PRO again to proceed with the
        remaining tests.)<br>
      </li>
    </ol>
    <h3><a name="Playing_with_Colossus_"></a><span
        style="text-decoration: underline;"><a name="PlayColossus"></a></span>Playing
with






      Colossus<br>
    </h3>
    (Actually, all of the things under " <a href="#PlayLuminary">Playing
with






      Luminary</a>" work with Colossus also.)<br>
    <br>
    Run the VirtualAGC program as described earlier, select any of the
    Command Module choices in the "Simulation Type" area, and then try
    the following stuff: <a name="Screenshots"></a><br>
    <ul style="color: rgb(0, 0, 0);">
    </ul>
    <table summary="" style="width: 100%; text-align: left;"
      cellspacing="2" cellpadding="2" border="1">
      <tbody>
        <tr>
          <td style="vertical-align: top;"><a href="V05N09E.png"><img
                style="border: 2px solid; width: 147px; height: 167px;"
                alt="Screenshot of yaDSKY. Click to enlarge."
                src="V05N09E-thm.png" width="147" height="167"></a><br>
          </td>
          <td style="vertical-align: top;">View the alarm codes<br>
          </td>
          <td style="vertical-align: top;">Because of some current bugs
            (07/19/04) in the way I initialize Colossus, there will be
            some program alarms at startup, and the PROG indicator will
            light to inform you of this.&nbsp; You can view the alarms
            by keying in V05N09E at the DSKY.&nbsp; (In normal AGC
            shorthand, 'V' is short for "VERB", 'N' is short for "NOUN",
            and 'E' is short for "ENTR".&nbsp; So "V05N09E" means to hit
            the keys VERB 0 5 NOUN 0 9 ENTR.)<br>
            <br>
            Program alarms 1105 and 1106 happen to be "downlink too
            fast" and "uplink too fast".&nbsp; Uplinks or downlinks
            refer to exchange of telemetry information with ground
            equipment.<br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;"><a href="V35E.png"><img
                style="border: 2px solid; width: 147px; height: 167px;"
                alt="Screenshot of yaDSKY. Click to Enlarge."
                src="V35E-thm.png" width="147" height="167"></a></td>
          <td style="vertical-align: top;">DSKY lamp test</td>
          <td style="vertical-align: top;">At the DSKY, key in
            V35E.&nbsp; This will light up all of the DSKY annunciators,
            flash the VERB/NOUN labels, and display 88 or +88888 in all
            of the numerical registers.&nbsp; After about 5 seconds, the
            test stops—you can tell, because the flashing stops, though
            the numbers remain—and you can continue.<br>
            <br>
            When the accompanying screenshot was taken, I didn't yet
            know how the AGC controls the DSKY's STBY and RESTART
            indicators, so those weren't turned on by the test.&nbsp;
            Because of a bug in the simulator (as of 07/19/04), the PROG
            indicator doesn't re-light after the lamp-test
            completes.&nbsp; Therefore, you may or may not see the PROG
            indicator lit if you try the sample operations below.<br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;"><a href="V91E.png"><img
                style="border: 2px solid; width: 147px; height: 167px;"
                alt="Screenshot of yaDSKY. Click to enlarge."
                src="V91E-thm.png" width="147" height="167"></a><br>
          </td>
          <td style="vertical-align: top;">Display memory-bank checksums</td>
          <td style="vertical-align: top;">The core-rope (read-only)
            memory is divided into 36 banks, numbered 00-43
            (octal).&nbsp; A so-called "bugger word" has been stuck at
            the end of each bank—no comments on this terminology,
            please, since I didn't invent it; when I asked Don Eyles
            some question that involved them, he somewhat-laconically
            stated "we called them check sums"—which causes the checksum
            of the bank to come out to a known value.&nbsp; This known
            value is the same as the bank number when possible, and is
            the logical complement of the bank number otherwise.&nbsp;
            (For example, the checksum of <span style="font-weight:
              bold;">Colossus</span> bank 00007 is 00007, but the
            checksum of bank 00006 is 77771.&nbsp; Both are
            correct.)&nbsp; <span style="font-weight: bold;">Colossus</span>'s
"show-banksum"






            program can be used to display the bank numbers, one by
            one.&nbsp; You can execute the show-banksum program by
            keying in V91E on the DSKY.&nbsp; After a few seconds, the
            statistics for bank 00 will be shown:&nbsp; R1 (the topmost
            5-digit display) will contain the computed checksum; R2 will
            contain the bank number; and R3 will contain the bugger
            word.&nbsp; Each of the displays will be in octal, as
            indicated by the fact that the +/- sign is blank.&nbsp; To
            advance to the next bank, key in V33E.&nbsp; (Hitting the
            PRO key does the same thing.)&nbsp; If you have the patience
            to advance through each of the banks, the next V33E (or PRO)
            after bank 43 will wrap-around to bank 00 again.&nbsp; To
            terminate the show-banksum program, you can key in V34E.<br>
            <br>
            By the way, the bank-6&nbsp; bugger word shown (05143) is
            for Colossus 249.&nbsp; If you ran the Artemis 072 program,
            it would have been 04275, while if you ran the Luminary 131
            program, it would have been 63402.<br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;"><a href="V16N36E.png"><img
                style="border: 2px solid; width: 147px; height: 167px;"
                alt="Screenshot of yaDSKY. Click to Enlarge."
                src="V16N36E-thm.png" width="147" height="167"></a><br>
          </td>
          <td style="vertical-align: top;"><a name="MonitorTime"></a>Monitor
the






            current time</td>
          <td style="vertical-align: top;">If you key in V16N36E or
            V16N65E, it will cause the current time to be
            displayed.&nbsp; (Since we haven't set the time in any way,
            this will be the time since AGC power-up).&nbsp; R1 (the
            topmost 5-digit display) will be in hours, R2 will be in
            minutes, and R3 will be in 100ths of a second.&nbsp; This
            display is updated once per second.<br>
            <br>
            In the accompanying screenshot, the time is 06:58:33.86.<br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;"><a href="V25N36E.png"><img
                style="border: 2px solid; width: 147px; height: 167px;"
                alt="Screenshot of yaDSKY. Click to enlarge."
                src="V25N36E-thm.png" width="147" height="167"></a><br>
          </td>
          <td style="vertical-align: top;">Setting the current time</td>
          <td style="vertical-align: top;">If it annoys you to see the
            time since power-up, you can change the time (for example,
            to mission time) by keying in V25N36E.&nbsp; R1 will go
            blank, enabling you to key in the current hour.&nbsp; Make
            sure you start with a + sign (this is how the AGC knows
            you're using decimal rather than octal), and make sure you
            enter all five digits (including the leading zeroes).&nbsp;
            In case you make a mistake, you can clear R1 any time before
            pressing ENTR by using the CLR key.&nbsp; After you hit the
            ENTR key, R2 will clear and you can enter the current
            minutes.&nbsp; Finally, you can key in the number of seconds
            in R3.&nbsp; Don't forget that the number of seconds is
            actually in 100ths of seconds, so that if (for example) you
            want 30 seconds you'd key in +03000E.<br>
            <br>
            In the accompanying screenshot, it just happened to be
            06:55:25 am., so that's how I set the clock.<br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;"><a href="V27N02E4000E.png"><img
                style="border: 2px solid; width: 147px; height: 167px;"
                alt="Screenshot of yaDSKY. Click to enlarge."
                src="V27N02E4000E-thm.png" width="147" height="167"></a><br>
          </td>
          <td style="vertical-align: top;">Examining the contents of the
            core-rope</td>
          <td style="vertical-align: top;">Key in V27N02E.&nbsp; This
            allows you to enter the address of a word in the core-rope
            into R3.&nbsp; This address will generally be in octal, and
            therefore should not be preceded by a + sign.&nbsp; Also,
            unlike entry of decimal data, in octal you can enter just as
            many digits as you need, and don't need to enter a full five
            digits.&nbsp; The addresses will be 00000-01777 for memory
            bank 00, 02000-03777 for memory bank 01, and so forth, up to
            76000-77777 for memory bank 37.&nbsp; (I'm not sure how to
            examine banks 40-43.)&nbsp; The binary listing of the core
            rope is at the very back of the Colossus 249 assembly
            listing, which can be downloaded from MIT if you have some
            spare time and disk space.&nbsp; (See my <a
              href="links.html">links page</a>.)<br>
            <br>
            In the accompanying screenshot, we see that address 4000
            (octal) of Luminary's core-rope contains the value
            00004.&nbsp; This just happens to be the first instruction
            executed after power-up.&nbsp; It is an <span
              style="font-family: monospace;">INHINT</span> instruction,
            and disables interrupts.&nbsp; The contents of R2 (the
            middle 5-digit register) are not cleared, and thus are just
            whatever lingers from before.<br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;"><a href="V01N02E25E.png"><img
                style="border: 2px solid; width: 147px; height: 167px;"
                alt="Screenshot of yaDSKY. Click to enlarge."
                src="V01N02E25E-thm.png" width="147" height="167"></a><br>
          </td>
          <td style="vertical-align: top;">Examining the contents of
            erasable memory</td>
          <td style="vertical-align: top;">Key in V01N02E.&nbsp; This
            allows you to enter the address of a word in erasable memory
            into R3.&nbsp; The addresses will be 00000-00377 for
            erasable bank E0, 00400-00777 for memory bank E1, and so
            forth, up to 03400-03777 for memory bank E7.&nbsp;
            Alternately, you can "monitor" a memory location (i.e., get
            updates for it once per second) by using VERB 11 rather than
            VERB 01.&nbsp; For example, V11N02E25E will monitor register
            25, the "TIME1" register, which is an internal counter that
            increments every 10 ms.&nbsp; In general, of course, the
            numbers won't mean much unless you reference them to the
            Colossus 249 assembly listing.<br>
            <br>
            In the accompanying screenshot, we actually do look at the
            TIME1 register, and discover that at that instant it
            contained the value 20245 (octal).&nbsp; Of course, you'll
            see something different.&nbsp; Display R2 is not changed, so
            it just contains whatever it contained before.<br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;"><a href="V21N02E25E.png"><img
                style="border: 2px solid; width: 147px; height: 167px;"
                alt="Screenshot of yaDSKY. Click to enlarge."
                src="V21N02E25E-thm.png" width="147" height="167"></a><br>
          </td>
          <td style="vertical-align: top;">Altering the contents of
            erasable memory</td>
          <td style="vertical-align: top;">Key in V21N02E, and enter an
            octal address as above, and then enter a new value to be
            stored at that address.&nbsp; It goes without saying that
            you need to know what you're doing when you do this!<br>
            <br>
            In the accompanying screenshot, I've chosen to reload the
            TIME1 register with the value 12345 (octal), which probably
            won't cause too many adverse effects.&nbsp; Display R2 is
            not changed, so it just contains whatever it contained
            before.</td>
        </tr>
        <tr>
          <td style="vertical-align: top;"><a href="V36E.png"><img
                style="border: 2px solid; width: 147px; height: 167px;"
                alt="Screenshot of yaDSKY. Click to enlarge."
                src="V36E-thm.png" width="147" height="167"></a><br>
          </td>
          <td style="vertical-align: top;">Fresh start</td>
          <td style="vertical-align: top;">Key in V36E.&nbsp; This
            apparently restarts the "pinball" program—i.e., the program
            that is responsible for accepting verbs and nouns and
            displaying stuff on the DSKY—and it's useful for clearing
            garbage from the DSKY's display, as the accompanying
            screenshot demonstrates.<br>
            <br>
            In the accompanying screenshot, a side-effect of the fresh
            start is the thoughtful re-display of the PROG (program
            alarm) which the earlier DSKY lamp-test had wiped out.<br>
          </td>
        </tr>
        <tr>
          <td style="text-align: center; vertical-align: middle;"> (Your
            picture here.)<br>
          </td>
          <td style="vertical-align: top;">Do-it-yourself research</td>
          <td style="vertical-align: top;">The file
            yaAGC/Colossus249/ASSEMBLY_AND_OPERATION_INFORMATION.s lists
            the verb and noun tables, so perhaps you can figure out some
            neat stuff yourself.&nbsp; If you do, <a
              href="mailto:info@sandroid.org">let me know</a> and I'll
            add it to this list.<br>
          </td>
        </tr>
      </tbody>
    </table>
    <table summary="" style="width: 80%; text-align: left; margin-left:
      40px; margin-right: auto;" cellspacing="2" cellpadding="2"
      border="1">
    </table>
    <ul style="color: rgb(0, 0, 0);">
    </ul>
    <h3><a name="Playing_with_Luminary_"></a><span
        style="text-decoration: underline;"><a name="PlayLuminary"></a></span>Playing
with






      <span style="font-weight: bold;">Luminary</span><br>
    </h3>
    You can do the same things as for <span style="font-weight: bold;">Colossus</span>
    above . &nbsp; Or rather than trying stuff at random, you can try
    stepping through a more realistic startup checklist.&nbsp; (Thanks
    to Julian Webb.)
    <ul style="color: rgb(0, 0, 0);">
    </ul>
    <table summary="" style="width: 100%; text-align: left;"
      cellspacing="2" cellpadding="2" border="1">
      <tbody>
        <tr>
          <td style="vertical-align: top;">Step 0<br>
          </td>
          <td style="vertical-align: top;">Run the simulator<br>
          </td>
          <td style="vertical-align: top;">Run <span
              style="font-weight: bold;">VirtualAGC</span> as described
            above, select "Apollo 13 Lunar Module" in the "Simulation
            Type" area, and hit "Run!"</td>
          <td style="vertical-align: top;"><a href="LMV36E.png"><img
                style="border: 2px solid; width: 147px; height: 167px;"
                alt="Screenshot of yaDSKY. Click to enlarge."
                src="LMV36E-thm.png" width="147" height="167"></a><br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;">Step 1<br>
          </td>
          <td style="vertical-align: top;">V35E<br>
          </td>
          <td style="vertical-align: top;">Starts the DSKY lamp
            test.&nbsp; All of the indicator lamps are lit, the
            numerical displays show 88 or +888888 as appropriate, and
            things which are supposed to flash, flash.&nbsp; After about
            5 seconds, the lamp test automatically terminates.<br>
          </td>
          <td style="vertical-align: top;"><a href="LMV35E.png"><img
                style="border: 2px solid; width: 147px; height: 167px;"
                alt="Screenshot of yaDSKY. Click to enlarge."
                src="LMV35E-thm.png" width="147" height="167"></a><br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;">Step 2<br>
          </td>
          <td style="vertical-align: top;">V37E 00E<br>
          </td>
          <td style="vertical-align: top;">"Goto Pooh" — i.e., start
            program P00, the idling program.&nbsp; The numeric area
            under the PROG label will show 00.<br>
          </td>
          <td style="vertical-align: top;"><a href="V37E00E.png"><img
                style="border: 0px solid; width: 147px; height: 167px;"
                alt="Screenshot of yaDSKY. Click to enlarge."
                src="V37E00E-thm.png" width="147" height="167"></a><br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;">Step 3<br>
          </td>
          <td style="vertical-align: top;">V25E N01E 01365E 0E 0E 0E<br>
          </td>
          <td style="vertical-align: top;">Set the count of total failed
            self-tests, total started self-tests, and
            successfully-completed division tests to 0.<br>
          </td>
          <td style="vertical-align: top;"><a
              href="V25N01E1365E0E0E0E.png"><img style="border: 2px
                solid; width: 147px; height: 167px;" alt="Screenshot of
                yaDSKY. Click to enlarge."
                src="V25N01E1365E0E0E0E-thm.png" width="147"
                height="167"></a><br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;">Step 4<br>
          </td>
          <td style="vertical-align: top;">V15 N01E 01365E<br>
          </td>
          <td style="vertical-align: top;">Begin monitoring the
            self-test counts.&nbsp; R1 (the top 5-digit display) shows
            the number of failed tests, R2 shows the number of started
            tests, and R3 the number of completed division tests.&nbsp;
            Each should be +00000 ("all balls").<br>
          </td>
          <td style="vertical-align: top;"><a href="V15N01E1365E.png"><img
                style="border: 2px solid; width: 147px; height: 167px;"
                alt="Screenshot of yaDSKY. Click to enlarge."
                src="V15N01E1365E-thm.png" width="147" height="167"></a><br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;">Step 5<br>
          </td>
          <td style="vertical-align: top;">V21 N27E 10E<br>
          </td>
          <td style="vertical-align: top;">Begin background
            self-tests.&nbsp; These tests will continue until the
            astronaut (you!) terminates them.&nbsp; Continue at least
            until the number of started tests (R2) reaches 3.<br>
          </td>
          <td style="vertical-align: top;"><a href="V21N27E10E.png"><img
                style="border: 2px solid; width: 147px; height: 167px;"
                alt="Screenshot of yaDSKY. Click to enlarge."
                src="V21N27E10E-thm.png" width="147" height="167"></a><br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;">Step 6<br>
          </td>
          <td style="vertical-align: top;">V21 N27E 0E<br>
          </td>
          <td style="vertical-align: top;">Terminate the background
            self-tests.<br>
          </td>
          <td style="text-align: center; vertical-align: middle;">
            (Looks the same,<br>
            of course.)<br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;">...<br>
          </td>
          <td style="vertical-align: top;"><br>
          </td>
          <td style="vertical-align: top;">(more later)<br>
          </td>
          <td style="vertical-align: top;"><br>
          </td>
        </tr>
      </tbody>
    </table>
    <br>
    <h3><a name="Much_more_intensive_playing_with_the_LM"></a>Much more
      intensive playing with the LM</h3>
    Stephan Hotto has provided a helpful tutorial that will let you do
    much more than the simple computer-maintenance activities described
    above.&nbsp; Following his tutorial you'll be able to control the LM
    using the hand-controller (joystick), see the orientation of the
    spacecraft change on the 8-Ball, fire the thrusters, etc.&nbsp; The
    instructions for his tutorial are actually build into the program
    itself, so I'll just tell you enough to read his tutorial rather
    than duplicating the tutorial's information here:<br>
    <ol>
      <li>Since you will be using the ACA simulation (joystick) for
        this, <a href="yaTelemetry.html#Usage_of_yaACA3">you may need
          to do a little configuration of the joystick first</a>, or
        risk finding out that (say) you have no yaw control.<br>
      </li>
      <li>Run <span style="font-weight: bold;">VirtualAGC</span>,<br>
      </li>
      <li>Select the Apollo 13 Lunar Module AGC simulation in the
        Simulation Type pane.</li>
      <li>In the Interfaces pane, click the "Expert" button.&nbsp; (You
        can unclick the AEA simulation if you like.&nbsp; The Telemetry
        monitor won't be directly used either, but I like it so much I'd
        never advise you to deselect it.)</li>
      <li>Run!</li>
      <li>In the window titled "LM Simulator v<span style="font-style:
          italic;">N.N</span> by Stephan Hotto", select Info/Tutorial
        from the menu bar.</li>
      <li>In the window titled "Tutorial for LM System Simulator" that
        pops up, follow <span style="font-style: italic;">either</span>
        the instructions in Section 0.0 <span style="font-style:
          italic;">or</span> else the instructions in Sections
        0.1-1.4,2.0-2.3.<br>
      </li>
    </ol>
    <h3><a name="Canned_pre-recorded_mission_segments"></a> Canned,
      pre-recorded mission segments</h3>
    <p><img src="V21N27E10E-PROG.png" alt="" width="196" height="223"
        align="right">One nice thing about open-source software (which
      our Virtual AGC Project is!) is that other people are free to
      incorporate the software within their own projects, and thus it
      can see a more-rapid diffusion into a wider sphere of usage than
      would have been possible if (say) it was just me developing it by
      myself.&nbsp; In the case of Virtual AGC, one thing that has been
      done with it is that it has been incorporated into <a
        href="http://orbit.medphys.ucl.ac.uk/">the Orbiter Space Flight
        Simulator system</a>, via the <a
        href="http://nassp.sourceforge.net/wiki/Main_Page">Project
        Apollo NASSP add-on</a>, which people then use to fly very
      realistic or imagined Apollo missions.&nbsp; The NASSP folks have
      been kind enough to incorporate the capability of logging
      interactions between the simulated AGC and simulated DSKY, with
      the result that we can "play back" (though not interact with) such
      realistic logged activity on the simulated DSKY.<br>
    </p>
    <p>This capability is only available in Virtual AGC software
      versions 2017-12-11 and later, and it works as follows:&nbsp; if
      you left-click on the PROG lamp indicator with the mouse, a
      file-dialog will open up.&nbsp; Of course, in the <i>real</i>
      DSKY, PROG was not a button; it was merely a lamp.&nbsp; But we've
      assigned it this additional function in our simulated DSKY.&nbsp;
      In the file-dialog, select the pre-recorded script<br>
    </p>
    <blockquote>
      <p><tt>Apollo8-launch.canned</tt><br>
      </p>
    </blockquote>
    <p>As you may imagine, this is a recorded Apollo 8 launch sequence,
      which takes about 15 minutes to play back.&nbsp; You'll see
      various things in watching it:<br>
    </p>
    <ul>
      <li>PROG 02, VERB 75.&nbsp; The script begin at T-40, i.e., 40
        seconds prior to launch, and in this state the AGC simply waits
        to receive an ignition signal from the Saturn rocket ... or
        technically, what it will eventually receive is the "liftoff
        discrete" from the S-IVB stage.&nbsp; Program 02 is the Gyro
        Compassing Program, and its purpose is "to provide the stable
        member orientation for launch".&nbsp; The "stable member" is a
        part of the inertial measuring unit (IMU) which holds the
        gyroscope (for determining the spacecraft orientation) and the
        accelerometers.&nbsp; The astronaut doesn't actually have to
        select Program 02, because it is automatically selected by
        Program 01 (the initialization program), which was run prior to
        T-40, and hence you won't see it in the playback.<br>
      </li>
      <li>PROG 11, VERB 06, NOUN 62.&nbsp; At ignition, the AGC
        automatically transitions from Program 02 to Program 11, the
        Earth Orbit Insertion Monitor Program.&nbsp; Realize that the
        AGC itself was not able to control the Saturn rocket itself,
        other than the Saturn IVB stage, and the Saturn was controlled
        instead by its own internal computer, <a href="LVDC.html">the
          LVDC</a>. The AGC's real work began later! Nor did the AGC
        receive any information from the LVDC as to the quantities it is
        monitoring and displaying on the DSKY.&nbsp; The LVDC and AGC
        separately each had access to their own inertial measurement
        units (IMUs) that measured the acceleration and orientation of
        the spacecraft, and by mathematically integrating this data from
        the IMU, the LVDC and AGC could independently figure out
        everything they needed to know about the current state of motion
        of the rocket ... and hopefully the LVDC and AGC would come up
        with very similar results.&nbsp; So this monitoring activity is
        much less trivial that it may sound to you at first.&nbsp; As
        for what's actually being monitored in this program, the AGC is
        driving the FDAI (i.e., the "eight ball" or "attitude
        indicator") is being driven to show the astronaut the
        orientation of the rocket in a nice graphical way, though the
        FDAI is not a part of the DSKY.&nbsp; But the AGC is also
        computing trajectory parameters and displaying them on the
        DSKY.&nbsp; Those parameters, from top to bottom, are "VI" (the
        inertial velocity magnitude, in feet per second), "H DOT" (the
        rate of change of altitude above the launch pad, also in feet
        per second), and "H" (the height above the launch pad, in tenths
        of a nautical mile).<br>
      </li>
      <li>PROG 11, VERB 16, NOUN 50.&nbsp; After a few minutes, the
        astronaut has initiated this monitoring command.&nbsp; You'll
        notice that the KEY REL lamp is flashing, because the previous
        monitoring (VERB 16, NOUN 62) wasn't actually terminated but
        merely temporarily interrupted, and the astronaut is being
        warned that when he terminates the VERB 16 NOUN 50 monitoring
        he'll automatically return to the other monitoring.&nbsp; As for
        what's being monitored here, from top to bottom, it's the
        "splash error" (in tenths of a nautical mile), and a couple of
        other items about which the documentation is inconsistent.&nbsp;
        The "splash error" part sounds a bit confusing, but apparently
        in Program 11 it has nothing to do with splash-down, but is
        rather the negative of the range to target.<br>
      </li>
      <li>... and so on.&nbsp; Eventually, after this phase of the
        mission is completed, the astronaut keys in VERB 37 ENTR 00 ENTR
        to return to program 00, and then keys in VERB 66.&nbsp; I'm not
        sure why the latter was done.&nbsp; It was for transferring
        state vectors (i.e. the position, velocity, and orientation)
        from the LM's AGC to the CM's, or vice-versa.&nbsp; But of
        course, for Apollo 8 there was no LM.&nbsp; Oh well, I'm
        inexcusably ignorant, so it's probably the correct thing to do!<br>
      </li>
    </ul>
    <p>If you get tired in the middle of all this and don't want to
      watch it all the way to the end, just click PROG again to
      terminate the script.<br>
    </p>
    <h3> </h3>
    <h3><a name="Playing_with_the_Abort_Guidance_System_"></a><span
        style="text-decoration: underline;"><a name="QuickStartAGS"></a></span>Playing
with






      the Abort Guidance System</h3>
    Now admittedly, I don't understand much you can do with the Abort
    Guidance System myself, nor do I claim that the program is complete,
    but there are <span style="font-style: italic;">some</span> things
    you can try:<br>
    <br>
    <table summary="" style="width: 100%; text-align: left;"
      cellspacing="2" cellpadding="2" border="1">
      <tbody>
        <tr>
          <td style="vertical-align: top;"><a href="AgsSelfTestFail.png"><img
                style="border: 2px solid; width: 144px; height: 178px;"
                alt="DEDA displaying results of self-test" title="Click
                to enlarge" src="thumb-AgsSelfTestFail.png" width="144"
                height="178"></a><br>
          </td>
          <td style="vertical-align: top;">CLR 4 1 2 READOUT<br>
          </td>
          <td style="vertical-align: top;"> View the results of the
            self-test, which are stored in the AGS CPU at (octal)
            location 412.&nbsp; A code of +10000 means the test has
            passed.&nbsp;<br>
            <br>
            Oops! the test has failed.&nbsp; That's because the
            self-test is pretty thorough; it tests not only memory
            checksums, but also the operation of various CPU
            instructions.&nbsp;&nbsp; The possible error codes here are:<br>
            <div style="margin-left: 40px;"> +000000 &nbsp; Test still
              in progress<br>
              +100000&nbsp;&nbsp; Test passed<br>
              +300000&nbsp;&nbsp; Logic test failure<br>
              +400000&nbsp;&nbsp; Memory test failure<br>
              +700000&nbsp;&nbsp; Logic <span style="font-style:
                italic;">and</span> memory test failure<br>
            </div>
            <br>
            I was having a little problem with the instruction set when
            this screenshot was taken, thus the self-test failed.&nbsp;
            Fortunately, the AGS flight programs have been written to
            continue operating in the case of self-test failure, even
            though it is "not recommended".&nbsp; The current version of
            <span style="font-weight: bold;">yaAGS</span> actually does
            pass the self-test, and so you'll see a code of +100000
            here.<br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;"><a href="AgsSetClock.png"><img
                style="border: 2px solid; width: 144px; height: 178px;"
                alt="Resetting the clock." title="Click to enlarge"
                src="thumb-AgsSetClock.png" width="144" height="178"></a><br>
          </td>
          <td style="vertical-align: top;">CLR 3 7 7 + 0 0 0 0 0 ENTR<br>
          </td>
          <td style="vertical-align: top;">Set the clock to 0.&nbsp; The
            CPU uses address 377 (octal) as a counter that increments at
            6-second intervals.&nbsp; Before using it, though, we want
            to set it to a known value.&nbsp;<br>
            <br>
            In real life, the AGS time would be initialized by
            synchronizing with the AGC electronically.&nbsp; However,
            I'm not quite yet ready with that particular feature.<br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;"><a href="AgsViewClock.png"><img
                style="border: 2px solid; width: 144px; height: 178px;"
                alt="DEDA display of incrementing time." title="Click to
                enlarge" src="thumb-AgsViewClock.png" width="144"
                height="178"></a><br>
          </td>
          <td style="vertical-align: top;">CLR 3 7 7 READOUT<br>
          </td>
          <td style="vertical-align: top;">Watch the clock
            incrementing.&nbsp; Although the counter changes at 6-second
            intervals, and counts in units of 6 seconds, the CPU
            actually updates the DEDA display every 1/2 second.<br>
          </td>
        </tr>
        <tr>
          <td colspan="3" rowspan="1" style="vertical-align: top;"> The
            operations listed above are very representative from the
            user-interface perspective of all the other kinds of
            operations you can perform on the DEDA.&nbsp; There are
            basically two classes of DEDA-based operations:<br>
            <ol>
              <li>Get a running display of the contents of a memory
                location.&nbsp; The command sequence for this is <span
                  style="font-family: monospace;">CLR <span
                    style="font-style: italic;">OctalDigit1 OctalDigit2
                    OctalDigit3</span> READOUT</span> .&nbsp; Upon
                receiving this command, the AGS CPU will monitor the
                selected memory location and display it on the DEDA
                every 1/2 second.&nbsp; You can pause the readout by
                hitting <span style="font-family: monospace;">HOLD</span>,
                or resume it by hitting <span style="font-family:
                  monospace;">READOUT</span> again.&nbsp; The flight
                software will automatically scale the data or otherwise
                modify it (by changing units of measurement) in a way
                appropriate to the particular memory location before
                displaying the data.&nbsp; If you make a mistake in the
                key sequence, the OPR ERR lamp will light, and you'll
                have to hit <span style="font-family: monospace;">CLR</span>
                to clear the error condition.</li>
              <li>You can change the value of a location of
                memory.&nbsp; In doing so, the flight software may
                choose to interpret your action as a command to perform
                some further action, but I'm not up to speed on what
                those other actions might be.&nbsp; The command sequence
                is <span style="font-family: monospace;">CLR <span
                    style="font-style: italic;">OctalDigit1 OctalDigit2
                    OctalDigit3</span> +/- <span style="font-style:
                    italic;">Digit1 Digit2 Digit3 Digit4 Digit5</span>
                  ENTR</span> .&nbsp;&nbsp; The 5-digit data may be
                octal or decimal, but that is dependent on the
                particular memory location chosen, and isn't a choice
                that the astronaut/user makes.&nbsp; Again, a mistake in
                the sequence will cause the OPR ERR lamp to light.</li>
            </ol>
            Of course, there are operations the astronaut/user can
            perform that are outside of this framework, such as hitting
            the ABORT button or downloading the spacecraft state vector
            from the AGC.&nbsp; However the abort button is a separate
            switch rather than being a part of the DEDA, and I've not
            perfected AGC-to-AGS communication yet.<br>
          </td>
        </tr>
      </tbody>
    </table>
    <br>
    <h3><a name="Playing_with_AGC_assembly_language_"></a>Playing with
      AGC assembly language<br>
    </h3>
    You can modify the validation-suite AGC assembly-language software
    I've provided, and then run the modified software on <span
      style="font-weight: bold;">yaAGC</span>, as follows.<br>
    <ol>
      <li style="color: rgb(0, 0, 0);">Copy the folder containing the
        Validation Suite software to a new folder.&nbsp; (In the
        developer snapshot, these are the files yaAGC/Validation/*.s; in
        the binary installation, they'll still be the files *.s, but the
        easiest way to find the name of the directory they're in is to
        "Browse Source Code" from within the <span style="font-weight:
          bold;">VirtualAGC</span> program and to simply note down what
        directory is being referenced by the browser.)<br>
      </li>
      <li style="color: rgb(0, 0, 0);">Edit some of the validation-suite
        source-code files.&nbsp; The assembly-language programmer's
        manual is <a href="assembly_language_manual.html">here</a>.<br>
      </li>
      <li>Run the VirtualAGC program, select "Custom" in the "Simulation
        Type" area, choose Validation.s from the folder in which you've
        been working.&nbsp; After <span style="font-weight: bold;">VirtualAGC</span>
        automatically runs this through the assembler to create a binary
        executable, just hit "Run!".<br>
      </li>
      <li>You should now see the DSKY doing whatever you've programmed
        it to do.&nbsp;<br>
      </li>
      <li>On the chance that your program may not do what you expected
        it to do, there is primitive debugging capability built into <span
          style="font-weight: bold;">yaAGC</span> which may be helpful
        in tracking down the problems.&nbsp; Just select "Run with debug
        monitor" under "AGC Debug" in the "Options" area of <span
          style="font-weight: bold;">VirtualAGC</span>.&nbsp;
        Instructions for how to use the debugger are <a
          href="yaAGC.html#Debugging">here</a>.&nbsp;<br>
      </li>
    </ol>
    <br>
    <h3><a name="Modifying_the_LM"></a>Modifying the LM software (for
      the truly brave)</h3>
    Same as "Playing with AGC assembly language", but start from the
    Luminary131 source code instead of the Validation Suite software,
    and note that the "custom" file you have to select is MAIN.s rather
    than Validation.s.<br>
    <br>
    <h3><a name="Final_exam_for_the_advanced_student_"></a>Final exam
      (for the advanced student)</h3>
    Prior to the descent of Apollo 14's LM to the lunar surface, a short
    in the LM control panel caused the abort switch to be triggered
    intermittently.&nbsp; If this actually happened during the landing,
    an abort would have automatically occurred (meaning that the lower
    stage of the LM would have been jettisoned and the upper stage would
    have blasted back into space).&nbsp; No landing would have been
    possible, and the astronauts would have faced the grave situation of
    needing rescue by the command module.&nbsp; It was therefore
    necessary, in the orbit or two before descent, for the some of the
    software designers to work out a fix for this problem that allowed a
    software lockout of the abort switch during the initial phase of the
    descent, but also allowed reenabling the abort switch later in the
    descent, in case the astronauts needed to use it.&nbsp; They did, in
    fact, work out such a fix.&nbsp; Your mission, should you choose to
    accept it, is this:&nbsp; Work out such a fix and send it to
    me.&nbsp; Remember, your fix can only involve erasable memory, since
    the core-rope containing the program cannot be altered.&nbsp; The
    fix needs to be keyed in at the DSKY by the astronauts.&nbsp; You
    have about 90 minutes to figure it out.&nbsp; Go!<br>
    <br>
    <a href="#Solution_to_the_Apollo_14_Final_Exam">Click here for the
      solution.</a><br>
    <br>
    <h3><a name="..._Or_for_the_silly_mood_"></a>... Or, for the silly
      mood</h3>
    Use Virtual AGC as a clock for your PC desktop.&nbsp; (My word, this
    software is versatile!)&nbsp; I'd suggest using the "DSKY Type" of
    "Half-size" for this.&nbsp; Use the <a href="#MonitorTime">instructions
given






      above</a> for setting and monitoring the time.&nbsp; You'll have
    to reset the time very morning, because the "hours" will not wrap
    around to 0 after 24.&nbsp; (And besides, the timers will overflow
    after 2<sup>28</sup>/100 seconds, or just over 31 days.)<br>
    <br>
    <span style="font-weight: bold;">Hint:</span>&nbsp; Once you get
    this working well, you'll want to be able to start this up
    automatically, and not have to run <span style="font-weight: bold;">VirtualAGC</span>
    every time.&nbsp; Well, when <span style="font-weight: bold;">VirtualAGC</span>
    runs the simulation, it does so by creating batch files (in Windows)
    or a shell script (in Linux or Mac OS X), then simply running those
    batch files or shell scripts.&nbsp; When you run a custom program in
    <span style="font-weight: bold;">VirtualAGC</span>, you use the
    "More" button in the simulation window to show you the contents of
    those batch files or shell scripts.&nbsp; So you can reuse or adapt
    those files for starting up your own simulation.<br>
    <br>
    Actually, we now have <a href="DIY.html">a "do it yourself" page</a>
    that gives a lot of helpful information on the topic of creating
    your own custom AGC code.&nbsp; In fact, it provides sample AGC code
    that actually implements the clock app, without requiring you to
    manually enter the time at power-up or every morning.&nbsp; Check it
    out!<br>
    <br>
    <h3><a name="..._Or_for_the_even_sillier_mood_"></a>... Or, for the
      even sillier mood</h3>
    Write your own AGC or AEA assembly language program for a
    calculator, or a game (like tic-tac-toe), or some other frivolous
    purpose.&nbsp; It's not very respectful, but it will hone your
    skills for that next AGC or AEA programmer opening you hear
    about.&nbsp; :-)<br>
    <br>
    Again, check out <a href="DIY.html">the do-it-yourself page</a> for
    more info.<br>
    <br>
    <h2><a name="Acknowledgements"></a>Acknowledgements</h2>
    (When I first added this section to the document, I thought it would
    be easy to keep up-to-date.&nbsp; It isn't.&nbsp; As it happens, <i>so</i>
    many people have stepped forward at one point or another that my
    mind simply isn't big enough to hold all of their names.&nbsp; So
    it's entirely possible that even very significant contributors may
    have been inadvertently omitted from the list below.&nbsp; Have no
    hesitation about reminding me if I've slighted you by forgetting to
    mention you!)<br>
    <h3>AGC Software Developers<br>
    </h3>
    Of course, it goes without saying that the greatest thanks go to the
    original software developers of the Apollo project, even if I've
    never personally had any contact with most of them.&nbsp; Hugh
    Blair-Smith needs to be specially mentioned, since his activities
    had a special relevance to my own project, and since he has
    patiently allowed me to pepper him with many questions.&nbsp; Don
    Eyles as well has made himself especially available, and has
    provided huge amount of software and documentation to us.&nbsp; But
    we are told that as many as 300-400 programmers contributed to the <span
      style="font-weight: bold;">Colossus</span> and <span
      style="font-weight: bold;">Luminary</span> source code.&nbsp;
    Though not specifically a <span style="font-style: italic;">software</span>
    developer, Eldon C. Hall also has been very specifically helpful to
    me; Fred Martin, and Jim Kernan have also turned out be particular
    heroes in terms of the operation of this project. <br>
    <br>
    I've not yet uncovered a "full" list of the AGC software
    developers.&nbsp; But we're not totally helpless in figuring out at
    least a partial list.&nbsp; <a
      href="Documents/Memo-Lickly681007_text.pdf">A memo by Dan Lickly
      (a developer himself) about software testing</a> gives us a list
    developers who were responsible for specific "programs", "routines",
    and "areas" within LUMINARY, as of October 1968, and another,
    more-abbreviated <a href="Documents/LUM6_text.pdf">memo by George
      Cherry</a> gives a similar list as of January 1968.&nbsp; Some of
    the folks in those memos are known <i>not</i> to have been AGC
    software developers, though, and I've factored them out where I knew
    to do so.&nbsp; At any rate, here's the list:<br>
    <ul>
      <li>Program P12: Larry Berman</li>
      <li>Program P06: Dana DeWolf</li>
      <li>Programs P10-P11: Phil Shakir<br>
      </li>
      <li>Program P12: Larry Berman<br>
      </li>
      <li>Program P20: Peter Volante, Virginia Dunbar<br>
      </li>
      <li>Program P21: Ted Crocker<br>
      </li>
      <li>Program P22: Peter Volante, Virginia Dunbar<br>
      </li>
      <li>Program P25: Peter Volante, Jack Connor<br>
      </li>
      <li>Program P27: Paul Fagin<br>
      </li>
      <li>Program P30: Peter Adler</li>
      <li>Programs P31-P35: Pat White<br>
      </li>
      <li>Programs P38-P39: Jane Goode<br>
      </li>
      <li>Programs P40-P42: Peter Adler<br>
      </li>
      <li>Progam P47: Bob Covelli, Ken Vincent<br>
      </li>
      <li>Programs P51-P52: Don Millard<br>
      </li>
      <li>Programs P57: Don Millard<br>
      </li>
      <li>Programs P63-P67: Don Eyles</li>
      <li>Programs P66-P67: Don Eyles, Craig Schulenberg</li>
      <li>Programs P70-P71: Walter Bernikowich, Larry Berman<br>
      </li>
      <li>Programs P72-P75: Pat White<br>
      </li>
      <li>Program P76: Ted Crocker</li>
      <li>Programs P78-P79: Jane Goode<br>
      </li>
      <li>Routines R00: Dana DeWolf<br>
      </li>
      <li>Routines R02: Dana DeWolf<br>
      </li>
      <li>Routine R03: Peter Weissman<br>
      </li>
      <li>Routine R04: Jim Kernan<br>
      </li>
      <li>Routine R05: Peter Volante<br>
      </li>
      <li>Routine R10: Walter Bernikowich<br>
      </li>
      <li>Routine R11: Don Eyles, Walter Bernikowich<br>
      </li>
      <li>Routine R12: Bob Covelli<br>
      </li>
      <li>Routine R13: Don Eyles</li>
      <li>Routine R21-R25, R29: Peter Volante<br>
      </li>
      <li>Routine R30: Frank Gauntt<br>
      </li>
      <li>Routine R31: Ted Crocker</li>
      <li>Routine R33: George Cox<br>
      </li>
      <li>Routine R36: Ted Crocker</li>
      <li>Routine R47: Jim Kernan, Phyllis Rye<br>
      </li>
      <li>Routines R50-R55, R59: Don Millard<br>
      </li>
      <li>Routine R60: Frank Gauntt<br>
      </li>
      <li>Routine R61: Virginia Dunbar, Jack Connor<br>
      </li>
      <li>Routines R62-R63: Frank Gauntt<br>
      </li>
      <li>Routine R65: Virginia Dunbar, Jack Connor<br>
      </li>
      <li>Routine R77: Jim Kernan<br>
      </li>
      <li>Pinball: John Vella, Marjorie Besas</li>
      <li>Display interface: Margaret Hamilton, Phyllis Rye<br>
      </li>
      <li>Restarts, fresh start, and other service areas: Phyllis Rye,
        Dana DeWolf</li>
      <li>Integration: Bill Ostanek</li>
    </ul>
    Of course, we can't assume from this snapshot in time of one
    specific program (LUMINARY, but not COLOSSUS) that these were the
    only folks involved, nor even necessarily the most-significant
    ones.&nbsp; We know that some of the original developers of these
    software items had already moved on, and so it wouldn't be
    surprising if some of these "responsible" folks on the list were
    basically trainees who maintained software that was already mature
    and never needed any changes.&nbsp; Or perhaps not!&nbsp; We can't
    tell from just the list by itself.&nbsp; <br>
    <br>
    Indeed, you can get a very different outlook if you look at the
    program comments within the software itself.&nbsp; For example, in
    the list above, John Vella and Marjorie Besas are responsible for
    PINBALL (the display/keyboard program); what does the source code
    for PINBALL itself tell us?&nbsp; Well, the software neglects to
    tell us who wrote PINBALL originally, but it does show a
    modification by "FILENE" in 1967, and another by "BARNERT" in 1969,
    but neither Filene nor Barnert is on the list above.<br>
    <br>
    If we do poke around in the AGC software source code, we can come up
    with a competing list of the programmers who originally wrote or
    modified the code.&nbsp; But many in the seemingly faceless mob who
    wrote the software never thought to tell you who they were at
    all.&nbsp; Here's the list of the ones that did choose to identify
    themselves, along with a sprinkling of names that I got through
    personal correspondence with developers.&nbsp; There's some overlap
    with the list above, but not much!<br>
    <br>
    <table summary="" style="text-align: left; width: 100%;"
      cellspacing="2" cellpadding="2" border="1">
      <tbody>
        <tr>
          <td style="vertical-align: top;">Jonathan D. Addelston, <a
href="http://www.fishneave.com/people/bio.aspx?employee_id=320916505&amp;txtLastName=A&amp;type=lastname">A.






              Peter Adler</a>, Rama M. Aiyawar, <a
              href="http://klabs.org/mapld04/invited/alonso_bio.htm">Ramón






              Alonso</a>, R. R. Bairnsfather, Ruth Birtwell, <a
              href="http://klabs.org/mapld04/invited/blair_smith_bio.htm">Hugh






              Blair-Smith</a>, Norm Brodeur, George W. Cherry, Edgar M.
            Oshika, Ed Copps, Steve Copps, Bob Covelli, J. D. Coyne,
            Danforth, Dana Densmore, DeWitt, Bart DeWolf, Stan Eliassen,
            Al Engle, Don Eyles, Fagin, Filene, Naomi Fisher, Jim
            Flanders, Follett, Gauntt, Richard D. Goss, John Green, <a
              href="http://klabs.org/home_page/hamilton.htm">Margaret
              Hamilton</a> (see also <a href="http://www.htius.com">Hamilton
Technologies,






              Inc.</a>), R. Hirschkop, Mike Houston, Eileen T. Hughes,
            Lowell G. Hull, T. James, G. Kalan, Don Keene, James E.
            Kernan, Kilroy, Allan Klumpp, Tom Knatt, Alex Kosmala,
            Krause, Dan Lickly, Lonske, Lu, Fred W. Martin, R. "Mel"
            Melanson, Jim Miller, John Miller, Ray Morth, N. M. Neville,
            Henry J. Noble, North, Olsson, Rhode, Robertson, S.
            Rudnicki, Phyllis Rye, Jay A. Sampson, Joe Saponaro, Robert
            Schlundt, George Schmidt, Schulenberg, P. Shakir, Smith, <a
              href="http://www.princeton.edu/%7Estengel/">Robert F.
              Stengel</a>, Gilbert Stubbs, Sturlaugson, Richard Talayco,
            W. H. Vandever, Ken Vincent, Peter Volante, P. S. Weissman,
            P. White, Bill Widnall, Ron Wiggins, Willman, Craig Work,
            Saydean Zeldin.<br>
          </td>
        </tr>
      </tbody>
    </table>
    <br>
    It should go without saying that by singling out coders, I don't
    mean to imply that hardware design, system architecture, or even
    program management is not important.&nbsp; The AGC hardware was
    certainly pretty revolutionary for its time, in terms of
    miniaturization and reliability.&nbsp; And indeed, the electrical
    schematics we have are littered with signatures, initials, and dates
    of the responsible folks ... tiny, illegible smudges of names in our
    scans of them.&nbsp; So in the end, we only know a tiny (but
    important) subset of those involved.<br>
    <br>
    A <span style="font-style: italic;">complete</span> AGC honor roll
    would need to include names like Charles Stark Draper and many
    others.&nbsp; But the Virtual AGC project certainly emphasizes the
    software aspects of the AGC over the hardware aspects, so the
    software developers are the ones particularly being honored here. As
    it happens, developer Peter Volante has sent me a bunch of org
    charts showing a little bit about how the MIT Instrumentation Lab's
    internal Apollo organization evolved over time, and many of the
    names listed above appear in those org charts, though in a
    more-structured way:<br>
    <br>
    <table cellspacing="2" cellpadding="2" align="center">
      <tbody>
        <tr>
          <td valign="top"><a href="Documents/ApolloOrg-1962-05.jpg"><img
                alt="" title="Click to expand"
                src="thm-ApolloOrg-1962-05.jpg" width="211" height="160"
                border="2"></a><br>
            <div align="center"><small><i>May 1962</i></small><br>
            </div>
          </td>
          <td valign="top"><a
              href="Documents/ApolloOrg-Group-23B-only-1968-09.jpg"><img
                alt="" title="Click to enlarge"
                src="thm-ApolloOrg-Group-23B-only-1968-09.jpg"
                width="243" height="160" border="2"></a><br>
            <div align="center"><i><small>September 1968, Group 23B only</small></i><br>
            </div>
          </td>
          <td valign="top"><a href="Documents/ApolloOrg-1969-02.pdf"><img
                alt="" title="Click to enlarge"
                src="thm-ApolloOrg-1969-02.jpg" width="207" height="160"
                border="2"></a><br>
            <div align="center"><small><i>February 1969 (18 pages)</i></small><br>
            </div>
          </td>
          <td valign="bottom" align="center">
            <div align="center"><a
                href="Documents/ApolloOrg-1972-02.pdf"><img alt=""
                  title="Click to enlarge"
                  src="thm-ApolloOrg-1972-02.jpg" width="207"
                  height="160" border="0"></a><br>
            </div>
            <div align="center"><i><small>February 1972 (18 pages)</small></i><br>
            </div>
          </td>
        </tr>
      </tbody>
    </table>
    <h3>Others<br>
    </h3>
    <ul>
      <li>I don't want to forget the original developers of the AGS
        software either, but I don't yet know any of your names!</li>
      <li>Gemini software developers Gene Mertz, Charlie Leist, Alden
        Minnick, and Don O'Neill have been of assistance to me, and
        other references to the original developers appear on the <a
          href="Gemini.html">Gemini page</a>.<br>
      </li>
      <li>I'm grateful to the folks at MIT's Dibner Institute's
        now-discontinued History of Recent Science and Technology
        website for making the scans of <span style="font-weight:
          bold;">Luminary</span> 131 and <span style="font-weight:
          bold;">Colossus</span> 249, along with scans of other related
        documents, available online.&nbsp; I'm not sure who is
        responsible for providing the online version of <span
          style="font-weight: bold;">Colossus</span> 249 (at MIT's
        site), but a special thanks goes to you.&nbsp;&nbsp; Thanks to
        David Mindell for helping me to move in the right direction with
        my inquiries, and to Sandy Brown for giving me extremely
        valuable information about the available AGC-related material at
        MIT.<br>
      </li>
      <li>Gary Neff deserves a big vote of gratitude for having the
        foresight (and presumably fortitude) to create the page scans of
        <span style="font-weight: bold;">Luminary</span> 131 software
        source code.&nbsp; Without those I wouldn't even have attempted
        this project.&nbsp;&nbsp; Mr. Neff has also been extremely
        helpful in supplying me with quite a lot of replacement scans
        for garbled pages (52 of them so far) in the currently-available
        online versions of&nbsp;<span style="font-weight: bold;">Colossus</span>
        249.&nbsp; (Thanks also to Mr. Eric Jones, of the <a
          href="http://www.hq.nasa.gov/alsj/">Apollo Lunar Surface
          Journal</a>, for putting me into contact with Mr. Neff.)</li>
      <li>Thanks also to the many helpful people at <a
          href="http://www.archives.gov/facilities/tx/fort_worth.html">NARA
Southwest






          Region</a>.&nbsp; Special thanks to Rodney Krajca and Meg
        Hacker.</li>
      <li>Thanks to Julian Webb for some very fruitful interactions, in
        comparing his AGC simulator to mine, for explaining some
        interactions between the AGC and DSKY, and for some helpful
        introductions.</li>
      <li>Acquisition of the Apollo 15-17 CM AGC software was a team
        effort:<br>
        <table summary="" style="text-align: left; width: 100%;
          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;">Apollo 15-17
                      CM Honor Roll</span></span> </div>
                <ul>
                  <li>The anonymous donor of the Artemis 72 program
                    listing, who I have oh-so-amusingly previously
                    referred to as "D. Thrust".&nbsp; (It's a
                    Nixon/Watergate joke, folks!)<br>
                  </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>Jim Lawton for debugging the source code.&nbsp;
                    This is an enormous amount of effort, and since it
                    is the first time I didn't have to do it myself, I'm
                    very appreciative.&nbsp; Jim also did a lot of extra
                    editing and behind-the-scenes management.<br>
                  </li>
                </ul>
              </td>
            </tr>
          </tbody>
        </table>
      </li>
      <li>Acquisition of the Apollo 11 LM &amp; CM AGC software was a
        team effort:<br>
        <table summary="" style="text-align: left; width: 100%;
          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;">Apollo 11
                      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>Steve Case and Dawn Masuoka for helping to proof
                    the LM binary.<br>
                  </li>
                  <li>... and those whose names I do not know at the
                    Charles Stark Draper Laboratory and NASA who allowed
                    us to do this.<br>
                  </li>
                </ul>
              </td>
            </tr>
          </tbody>
        </table>
      </li>
      <li>Thanks to Paul Fjeld, who has fed me extraordinary information
        on locating versions of <span style="font-weight: bold;">Luminary</span>
        and <span style="font-weight: bold;">Colossus</span> source
        code not otherwise known to me, and on various other related
        topics.</li>
      <li>Thanks to Fabrizio Bernardini for providing some unique
        documentation.</li>
      <li>Acquisition of the Apollo 6 CM AGC software was a team effort:</li>
    </ul>
    <div style="margin-left: 40px;">
      <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;">Apollo 6 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"></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, who seems to have single-handedly
                  converted the scanned pages both to source-code and
                  binary form.<br>
                </li>
              </ul>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
    <ul>
      <li>Acquisition of the AURORA 12 and SUNBURST 120 (Apollo 5) LM
        AGC software was a team effort:</li>
    </ul>
    <div style="margin-left: 40px;">
      <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;">AURORA and
                    Apollo 5 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;">The Internet Archive</span><span
                          style="font-family: sans-serif;"><br>
                          <a href="http://archive.org"><small>www.archive.org</small></a><br>
                        </span></big></td>
                    <td style="text-align: center; vertical-align:
                      middle;"> <span style="text-decoration:
                        underline;"><a href="http://www.archive.org/"> <img
                            alt="" src="InternetArchive.jpg"
                            style="border: 0px solid;" width="97"
                            height="100" border="0"></a></span><br>
                    </td>
                  </tr>
                </tbody>
              </table>
              <br>
              <span style="font-style: italic; text-decoration:
                underline;">Individual honors</span><br>
              <ul>
                <li>Don Eyles for preserving the AURORA 12 and SUNBURST
                  120 program listings, making them available to us, and
                  going to the effort of physically transporting them
                  for us.<br>
                </li>
                <li>Mike Stewart for financially sponsoring the scanning
                  of these programs, as well as doing all of the
                  background work needed to find them and figure out the
                  best way to get them scanned.</li>
                <li>Our volunteer team, for transcribing the scanned
                  program listings into source code.<br>
                </li>
              </ul>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
    <ul>
      <li>Acquisition of RETREAD 50 (unflown) LM AGC software was a team
        effort.</li>
    </ul>
    <div style="margin-left: 40px;">
      <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;">RETREAD 50 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;">The Computer History Museum<br>
                          Mountain View, California<br>
                        </span><span style="font-family: sans-serif;"> <a
                            href="https://www.computerhistory.org/"><small>www.computerhistory.org</small></a><br>
                        </span></big></td>
                    <td style="text-align: center; vertical-align:
                      middle;"> <span style="text-decoration:
                        underline;"><a
                          href="https://www.computerhistory.org/"> </a><a
                          href="https://www.computerhistory.org/"><img
                            alt="" src="chm-logo.png" style="border: 0px
                            solid;" width="153" height="55" border="0"></a></span><br>
                    </td>
                  </tr>
                </tbody>
              </table>
              <br>
              <span style="font-style: italic; text-decoration:
                underline;">Individual honors</span><br>
              <ul>
                <li>Jimmie Loocke, owner of AGC s/n RAY 14<br>
                </li>
                <li>AGC Restoration Core Team:</li>
                <ul>
                  <li>Carl Claunch</li>
                  <li>Ken Shirriff</li>
                  <li>Mike Stewart</li>
                  <li>Marc Verdiell</li>
                </ul>
                <li>Auxiliary AGC Restoration Team Members:</li>
                <ul>
                  <li>John Carlsen</li>
                  <li>Rob Lion<br>
                  </li>
                </ul>
              </ul>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
    <ul>
      <li>Thanks to Matteo Giani for figuring out how to get this beast
        to compile in Mac OS X Panther.<br>
      </li>
      <li>Thanks to <a href="http://www.ibiblio.org">ibiblio.org</a>,
        which began hosting the Virtual AGC project when my own meager
        resources were exhausted.&nbsp; In latter days, The services of
        <a href="http://archive.org">The Internet Archive</a> and <a
          href="https://github.com">GitHub</a> have also become crucial.<br>
      </li>
      <li>Thanks to John Pultorak of <a href="Pultorak.html">Block I
          AGC</a> fame.&nbsp; John has provided not only documentation
        for his project that doesn't appear on the websites hosting his
        other materials, but also has digitized many AGS-related
        documents available nowhere else online (or not online, as far
        as I can tell).</li>
      <li>Thanks to Davis Peticolas, the donor for all of the scanned
        AGS documents.</li>
      <li>Thanks to Mark Grant and Markus Joachim for their work in
        integrating Virtual AGC into the <span style="font-weight:
          bold;">Orbiter</span> spacecraft simulator.</li>
      <li>Thanks to Stephan Hotto for the enormous amount of code he has
        contributed, and for finding various bugs in the simulation.</li>
      <li>Thanks to my core developer team:</li>
      <ul>
        <li>Onno Hommes for stepping in to add many features to the
          project, such as syntax highlighting, GUI debugging
          interfaces, subversion repository, wiki, etc.</li>
        <li>Jim Lawton especially but not exclusively for great
          infrastructural improvements such as tying the project's
          website to our GitHub repository and setting up
          continuous-integration for the latter, along with many other
          things.</li>
        <li>Mike Stewart for using his hardware-based AGC simulator to
          track down and fix many subtle, lingering bugs in our software
          AGC simulator (and vice-versa), as well as a number of other
          innovations.<br>
        </li>
      </ul>
      <li>Thanks to Shelly Kelly, archivist at the University of Houston
        at Clear Lake, for efforts (and patience) above and beyond the
        call of duty, and particularly for some GSOP scans appearing on
        our <a href="links.html">links page</a>.</li>
      <li>Thanks to Jordan Slott, for implementing symbol tables into
        the debugging mode of the AGC simulator.<br>
      </li>
      <li>And finally, thanks to my other correspondants who have
        contributed in ways that don't necessarily fall into any of the
        neat pigeonholes listed above.&nbsp; There are too many of you
        to note adequately here, but I've tried to acknowledge you
        throughout the website where your contributions are
        relevant.&nbsp; If I've unfairly overlooked you, attribute it to
        a 1201 alarm in my brain; let me know and I'll fix it.</li>
    </ul>
    <h2><a name="Solution_to_the_Apollo_14_Final_Exam"></a>Solution to
      the Apollo 14 "Final Exam" Problem</h2>
    Above, we semi-jokingly proposed as a <a
      href="#Final_exam_for_the_advanced_student_">"final exam" problem</a>
    a situation which actually occurred during Alan Shepard and Edgar
    Mitchell's attempt to land the LM during the Apollo 14
    mission.&nbsp; <a
      href="http://www.hq.nasa.gov/alsj/a14/a14AbortDiscrete.html">Paul
      Fjeld has provided a lot of detail about this at the Apollo Lunar
      Surface Journal</a>, by consulting mission transcripts.&nbsp; Our
    Onno Hommes has also gotten an explanation directly from Don Eyles,
    the AGC developer who solved the final exam problem in real time
    during the mission and, as far as I know, the only AGC coder ever to
    be dramatized (in the Apollo 14 episode of <span style="font-style:
      italic;">From the Earth to the Moon</span>).&nbsp; And <a
      href="http://www.doneyles.com/LM/Tales.html">Don has written about
      it himself</a> (among many other stories) pretty interestingly, in
    a fairly popularized way. &nbsp; But here's the detailed solution,
    in as nearly Don's words as we can make it:<br>
    <br>
    <table summary="" style="text-align: left; width: 75%; margin-left:
      auto; margin-right: auto;" cellspacing="2" cellpadding="2"
      border="1">
      <tbody>
        <tr>
          <td style="vertical-align: top; background-color: rgb(204,
            204, 204);"> The procedure developed to work around the
            erroneous abort signal on Apollo 14 was as follows:<br>
            <br>
            (1) After the NOUN 62 countdown starts (an automatic display
            of the countdown toward engine ignition), but before
            ignition, key in<br>
            <br>
            <div style="margin-left: 40px;"> VERB 21 NOUN 1 ENTER 1010
              ENTER<br>
              107 ENTER<br>
            </div>
            <br>
            to set the mode register to 71 to indicate that an abort had
            already occurred.&nbsp;&nbsp;Note that the numbers are in
            "octal" (i.e. based on the root of 8 not 10) so that the
            number "107" actually means "71".<br>
            <br>
            (2) Exactly 26 seconds after ignition, manually advance the
            descent engine throttle to 100%.<br>
            <br>
            (3) Key in<br>
            <br>
            <div style="margin-left: 40px;"> VERB 25 NOUN 7 ENTER 101
              ENTER<br>
              200 ENTER 1 ENTER<br>
            </div>
            <br>
            to enable the landing guidance equations.&nbsp;&nbsp;The
            equations were prevented from starting automatically because
            the mode register is set to the phony value of 71.<br>
            <br>
            (4) Key in<br>
            <br>
            <div style="margin-left: 40px;"> VERB 25 NOUN 7 ENTER 105
              ENTER<br>
              400 ENTER 0 ENTER<br>
            </div>
            <br>
            to explicitly disable the abort monitor. This clears the <span
              class="e">FLAGWORD</span> bit that controls the abort
            monitor.<br>
            <br>
            (5) Key in<br>
            <br>
            <div style="margin-left: 40px;"> VERB 21 NOUN 1 ENTER 1010
              ENTER<br>
              77 ENTER<br>
            </div>
            <br>
            to set the mode register to its proper value of 63.<br>
            <br>
            (6) Return the manual throttle to its minimum
            setting.&nbsp;&nbsp;The throttle stays at 100% because it is
            now being commanded by the guidance
            equations.&nbsp;&nbsp;But if this step were omitted the
            throttle would be forced to stay at 100% when the guidance
            equations later request partial thrust, with bad effects. </td>
        </tr>
      </tbody>
    </table>
    <br>
    Of course, I bet it seems pretty obvious <span style="font-style:
      italic;">now</span>, right? ... right?<br>
    <br>
    Nik Beug has made a YouTube video illustrating actual use of this
    fix, using our AGC simulation built into the Orbiter spacecraft
    simulator as part of <a
      href="https://sourceforge.net/projects/nassp/">the NASSP project</a>.&nbsp;
The






    video actually illustrates two scenarios:<br>
    <ol>
      <li>For the first couple of minutes, shows what would the actual
        spurious abort have looked like.&nbsp; (Answer:&nbsp; It
        separates the ascent and descent stages of the LM, and takes the
        ascent stage back into orbit.&nbsp; You don't die, but you don't
        land!)</li>
      <li>The remainder of the video shows how to enter the fix, prevent
        the spurious abort, and proceed to the surface.<br>
      </li>
    </ol>
    Enjoy!<br>
    <br>
    <center><iframe src="https://www.youtube.com/embed/PeyTllhcx3k"
        gesture="media" allowfullscreen="" width="1280" height="720"
        frameborder="0">&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;gt;






      </iframe></center>
    <br>
    <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
          2021-05-26.<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>
    <br>
  </body>
</html>
back to top