Source Code

These source-code files are part of a reconstructed copy of Comanche 51, the initial release (though not the final mission release) of the Apollo 11 Command Module (CM) Apollo Guidance Computer (AGC) software. The flown, final release was Comanche 55. The reconstruction is believed to be exactly accurate, but in the absence of an actual Apollo-era listing of Comanche 51, some explanation of the reconstruction process is needed to insure confidence in that accuracy.

The starting point was the source code of Comanche 55, whose original source code is available. Comanche 55 source code was then modified by undoing changes known to have been made between revisions 51 and 55. The most-significant steps involved reverting changes related to the R-2 lunar potential model, the details of which were known from the previous, separate, independent reconstruction of the Apollo 10 Lunar Module software Luminary 69/2. The now-reconstructed Comanche 51 source code was verified by assembling it and checking that the assembled code had the expected known-correct memory-bank checksums. Note that page numbers in the reconstructed code match those on the Comanche 55 or Luminary 69 printouts, although the source code would likely have different page numbers in a contemporary Comanche 51 listing.

Annotations that were not present in the contemporary source code have been added to the reconstructed code to justify each change relative to Comanche 55. Here's a guide to some of the Apollo documentation relevant to those annotations:
Among documentation not actually referenced in the annotations, there is a short writeup about the reconstruction process in our software repository that may be helpful in understanding it from a different perspective. There's also a handy table that lists what the number of memory-words should be for each routine in Comanche 51, which could make a nice double-check; however, we've not performed that double-check ourselves.

Comments expected to have been present in the original source code are prefixed with a single '#' symbol, whereas comments added later are prefixed by "##" or "###". Report any errors noted by creating an issue report at the Virtual AGC Project's GitHub repository.

005341,000002:                                                                                                  ## Copyright:   Public domain.
005342,000003:                                                                                                  ## Filename:    INTERRUPT_LEAD_INS.agc
005343,000004:                                                                                                  ## Purpose:     A section of Comanche revision 051.
005344,000005:                                                                                                  ##              It is part of the reconstructed source code for the
005345,000006:                                                                                                  ##              original release of the flight software for the Command
005346,000007:                                                                                                  ##              Module's (CM) Apollo Guidance Computer (AGC) for Apollo 11.
005347,000008:                                                                                                  ##              The code has been recreated from a copy of Comanche 055. It
005348,000009:                                                                                                  ##              has been adapted such that the resulting bugger words
005349,000010:                                                                                                  ##              exactly match those specified for Comanche 51 in NASA drawing
005350,000011:                                                                                                  ##              2021153D, which gives relatively high confidence that the
005351,000012:                                                                                                  ##              reconstruction is correct.
005352,000013:                                                                                                  ## Reference:   pp. 131-132
005353,000014:                                                                                                  ## Assembler:   yaYUL
005354,000015:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
005355,000016:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
005356,000017:                                                                                                  ## Mod history: 2019-07-30 MAS  Created from Comanche 55.
005357,000018: 

Page 131

005359,000020:    4000                                           SETLOC   4000                                  
005360,000021: 
005361,000022:    4000                                           COUNT    02/RUPTS                              
005362,000023: 
005363,000024:    4000           00004                           INHINT                                         #  GO
005364,000025:    4001           34054                           CAF      GOBB                                  
005365,000026:    4002           56006                           XCH      BBANK                                 
005366,000027:    4003           12526                           TCF      GOPROG                                
005367,000028: 
005368,000029:    4004           52011                           DXCH     ARUPT                                 #  T6RUPT
005369,000030:    4005           00006                           EXTEND                                         
005370,000031:    4006           31311                           DCA      T6LOC                                 
005371,000032:    4007           52006                           DTCB                                           
005372,000033: 
005373,000034:    4010           52011                           DXCH     ARUPT                                 #  T5RUPT
005374,000035:    4011           40030                           CS       TIME5                                 
005375,000036:    4012           65036                           AD       .5SEC                                 
005376,000037:    4013           14065                           TCF      T5RUPT                                
005377,000038: 
005378,000039:    4014           52011                           DXCH     ARUPT                                 #  T3RUPT
005379,000040:    4015           34055                           CAF      T3RPTBB                               
005380,000041:    4016           56006                           XCH      BBANK                                 
005381,000042:    4017           13416                           TCF      T3RUPT                                
005382,000043: 
005383,000044:    4020           52011                           DXCH     ARUPT                                 #  T4RUPT
005384,000045:    4021           34063                           CAF      T4RPTBB                               
005385,000046:    4022           56006                           XCH      BBANK                                 
005386,000047:    4023           12000                           TCF      T4RUPT                                
005387,000048: 
005388,000049:    4024           52011                           DXCH     ARUPT                                 #  KEYRUPT1
005389,000050:    4025           34056                           CAF      KEYRPTBB                              
005390,000051:    4026           56006                           XCH      BBANK                                 
005391,000052:    4027           13673                           TCF      KEYRUPT1                              
005392,000053: 
005393,000054:    4030           52011                           DXCH     ARUPT                                 #  KEYRUPT2
005394,000055:    4031           34057                           CAF      MKRUPTBB                              
005395,000056:    4032           56006                           XCH      BBANK                                 
005396,000057:    4033           12104                           TCF      MARKRUPT                              
005397,000058: 
005398,000059:    4034           52011                           DXCH     ARUPT                                 #  UPRUPT
005399,000060:    4035           34056                           CAF      UPRPTBB                               
005400,000061:    4036           56006                           XCH      BBANK                                 
005401,000062:    4037           13716                           TCF      UPRUPT                                
005402,000063: 
005403,000064:    4040           52011                           DXCH     ARUPT                                 #  DOWNRUPT
005404,000065:    4041           34060                           CAF      DWNRPTBB                              
005405,000066:    4042           56006                           XCH      BBANK                                 
005406,000067:    4043           13521                           TCF      DODOWNTM                              
005407,000068: 
005408,000069:    4044           52011                           DXCH     ARUPT                                 #  RADAR RUPT

Page 132

005410,000071:    4045           34061                           CAF      RDRPTBB                               
005411,000072:    4046           56006                           XCH      BBANK                                 
005412,000073:    4047           12504                           TCF      VHFREAD                               
005413,000074: 
005414,000075:    4050           52011                           DXCH     ARUPT                                 #  HAND CONTROL RUPT
005415,000076:    4051           34062                           CAF      HCRUPTBB                              
005416,000077:    4052           56006                           XCH      BBANK                                 
005417,000078:    4053           15336                           TCF      RESUME     +3                         #  NOT USED
005418,000079: 
005419,000080:    4054  E3,1400                                  EBANK=   LST1                                  #  RESTART USES E0,E3
005420,000081:    4054           12063        GOBB               BBCON    GOPROG                                
005421,000082: 
005422,000083:    4055  E3,1400                                  EBANK=   LST1                                  
005423,000084:    4055           02063        T3RPTBB            BBCON    T3RUPT                                
005424,000085: 
005425,000086:    4056     0073                                  EBANK=   KEYTEMP1                              
005426,000087:    4056           16060        KEYRPTBB           BBCON    KEYRUPT1                              
005427,000088: 
005428,000089:    4057  E7,1725                                  EBANK=   MRKBUF1                               
005429,000090:    4057           16067        MKRUPTBB           BBCON    MARKRUPT                              
005430,000091: 
005431,000092:    4060     4056               UPRPTBB            =        KEYRPTBB                              
005432,000093: 
005433,000094:    4060     0340                                  EBANK=   DNTMBUFF                              
005434,000095:    4060           12060        DWNRPTBB           BBCON    DODOWNTM                              
005435,000096: 
005436,000097:    4061  E7,1603                                  EBANK=   DATATEST                              
005437,000098:    4061           56067        RDRPTBB            BBCON    VHFREAD                               
005438,000099: 
005439,000100:    4062     0025                                  EBANK=   TIME1                                 
005440,000101:    4062           04060        HCRUPTBB           BBCON    RESUME                                #  NOT USED
005441,000102: 
005442,000103:    4063     1302                                  EBANK=   DSRUPTSW                              
005443,000104:    4063           14062        T4RPTBB            BBCON    T4RUPT                                
005444,000105: 
005445,000106:    4064     0025                                  EBANK=   TIME1                                 
005446,000107:    4064           04060        T5RPTBB            BBCON    T5RUPT                                
005447,000108: 
005448,000109:    4065           00006        T5RUPT             EXTEND                                         
005449,000110:    4066           65337                           BZMF     NOQBRSM                               
005450,000111:    4067           00006                           EXTEND                                         
005451,000112:    4070           31313                           DCA      T5LOC                                 
005452,000113:    4071           52006                           DTCB                                           
005453,000114: 
005454,000115: 
005455,000116: 

End of include-file INTERRUPT_LEAD_INS.agc.  Parent file is MAIN.agc