Source Code

These source-code files are part of a reconstructed copy of Comanche 051, the original release of the Apollo 11 Command Module (CM) Apollo Guidance Computer (AGC) software.

The reconstruction began with source code of Comanche 055 previously transcribed from a digitized copy of that program. The code was then updated by undoing changes related to the R-2 lunar potential model, using hints from program comments and change-indicating asterisks in the Comanche 055 listing as a guide. The reconstruction was verified by matching memory-bank checksums to those listed in drawing 2021153D. Note that page numbers in the reconstructed code match those on the Comanche 055 printout, although the added code would likely have changed page numbers for a real Comanche 051 listing.

Comments from 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.

041214,000002:                                                                                                  ## Copyright:   Public domain.
041215,000003:                                                                                                  ## Filename:    TVCEXECUTIVE.agc
041216,000004:                                                                                                  ## Purpose:     A section of Comanche revision 051.
041217,000005:                                                                                                  ##              It is part of the reconstructed source code for the
041218,000006:                                                                                                  ##              original release of the flight software for the Command
041219,000007:                                                                                                  ##              Module's (CM) Apollo Guidance Computer (AGC) for Apollo 11.
041220,000008:                                                                                                  ##              The code has been recreated from a copy of Comanche 055. It
041221,000009:                                                                                                  ##              has been adapted such that the resulting bugger words
041222,000010:                                                                                                  ##              exactly match those specified for Comanche 51 in NASA drawing
041223,000011:                                                                                                  ##              2021153D, which gives relatively high confidence that the
041224,000012:                                                                                                  ##              reconstruction is correct.
041225,000013:                                                                                                  ## Reference:   pp. 945-950
041226,000014:                                                                                                  ## Assembler:   yaYUL
041227,000015:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
041228,000016:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
041229,000017:                                                                                                  ## Mod history: 2019-07-30 MAS  Created from Comanche 55.
041230,000018: 

Page 945

041232,000020:                                                                                                  #  PROGRAM NAME....      TVCEXECUTIVE, CONSISTING OF TVCEXEC, NEEDLEUP, VARGAINS
041233,000021:                                                                                                  #                        1SHOTCHK, REPCHEK, CG.CORR, COPYCYCLES, ETC.
041234,000022:                                                                                                  #  LOG SECTION...        TVCEXECUTIVE            SUBROUTINE...DAPCSM
041235,000023:                                                                                                  #  MODIFIED BY SCHLUNDT                          21 OCTOBER 1968
041236,000024: 
041237,000025:                                                                                                  #  FUNCTIONAL DESCRIPTION....
041238,000026:                                                                                                  #       *A SELF-PERPETUATING WAITLIST TASK AT 1/2 SECOND INTERVALS WHICH:
041239,000027:                                                                                                  #        PREPARES THE ROLL DAP WITH OGA (CDUX)
041240,000028:                                                                                                  #        PREPARES THE ROLL FDAI NEEDLE (FLY-TO  OGA ERROR)
041241,000029:                                                                                                  #        PREPARES THE ROLL PHASE PLANE  OGAERR  (FLY-FROM  OGA ERROR)
041242,000030:                                                                                                  #        PREPARES THE TVC ROLLDAP TASK WAITLIST CALL (3 CS DELAY)
041243,000031:                                                                                                  #        UPDATES THE NEEDLES DISPLAY
041244,000032:                                                                                                  #        UPDATES VEHICLE MASS AND CALLS MASSPROP TO UPDATE INERTIA DATA
041245,000033:                                                                                                  #        UPDATES PITCH, YAW, AND ROLL DAP GAINS FROM MASSPROP DATA
041246,000034:                                                                                                  #        PERFORMS ONE-SHOT CORRECTION FOR TMC LOOP 0-3 SEC AFTER IGNITION
041247,000035:                                                                                                  #        PERFORMS REPETITIVE UPDATES FOR TMC LOOP AFTER THE ONE-SHOT CORR.
041248,000036: 
041249,000037:                                                                                                  #  CALLING SEQUENCE....
041250,000038:                                                                                                  #       *TVCEXEC CALLED AS A WAITLIST TASK, IN PARTICULAR BY TVCINIT4 AND BY
041251,000039:                                                                                                  #        ITSELF, BOTH AT 1/2 SECOND INTERVALS
041252,000040: 
041253,000041:                                                                                                  #  NORMAL EXIT MODE.... TASKOVER
041254,000042: 
041255,000043:                                                                                                  #  ALARM OR ABORT EXIT MODES.... NONE
041256,000044: 
041257,000045:                                                                                                  #  SUBROUTINES CALLED....NEEDLER, S40.15, MASSPROP, TASKOVER, IBNKCALL
041258,000046: 
041259,000047:                                                                                                  #  OTHER INTERFACES....
041260,000048:                                                                                                  #       *TVCRESTART PACKAGE FOR RESTARTS
041261,000049:                                                                                                  #       *PITCHDAP, YAWDAP FOR VARIABLE GAINS AND ENGINE TRIM ANGLES
041262,000050: 
041263,000051:                                                                                                  #  ERASABLE INITIALIZATION REQUIRED....
041264,000052:                                                                                                  #       *SEE TVCDAPON....TVCINIT4
041265,000053:                                                                                                  #       *VARK AND 1/CONACC (S40.15 OF TVCINITIALIZE)
041266,000054:                                                                                                  #       *PAD LOAD EREPFRAC
041267,000055:                                                                                                  #       *BITS 15,14 OF FLAGWRD6 (T5 BITS)
041268,000056:                                                                                                  #       *TVCEXPHS FOR RESTARTS
041269,000057:                                                                                                  #       *ENGINE-ON BIT (11.13) FOR RESTARTS
041270,000058:                                                                                                  #       *CDUX, OGAD
041271,000059: 
041272,000060:                                                                                                  #  OUTPUT....
041273,000061:                                                                                                  #       *ROLL DAP OGANOW, FDAI NEEDLE (AK). AND PHASE PLANE OGAERR
041274,000062:                                                                                                  #       *VARIABLE GAINS FOR PITCH/YAW AND ROLL TVC DAPS
041275,000063:                                                                                                  #       *SINGLE-SHOT AND REPETITIVE CORRECTIONS TO ENGINE TRIM ANGLES
041276,000064:                                                                                                  #        PACTOFF AND YACTOFF
041277,000065: 
041278,000066:                                                                                                  #  DEBRIS....    MUCH, BUT SHAREABLE WITH RCS/ENTRY, ALL IN EBANK6
041279,000067: 

Page 946

041281,000069: 16,2720                                           BANK     16                                    
041282,000070: 16,2000                                           SETLOC   DAPROLL                               
041283,000071: 16,2000                                           BANK                                           
041284,000072: 16,2720  E6,1702                                  EBANK=   BZERO                                 
041285,000073: 16,2720                                           COUNT*   $$/TVCX                               
041286,000074: 
041287,000075: 16,2720           40102        TVCEXEC            CS       FLAGWRD6                              #  CHECK FOR TERMINATION (BITS 15,14 READ
041288,000076: 16,2721           74105                           MASK     OCT60000                              #        10 FROM TVCDAPON TO RCSDAPON)
041289,000077: 16,2722           00006                           EXTEND                                         
041290,000078: 16,2723           63134                           BZMF     TVCEXFIN                              #  TERMINATE
041291,000079: 
041292,000080: 16,2724           35036                           CAF      .5SEC                                 #  W.L. CALL TO PERPETUATE TVCEXEC
041293,000081: 16,2725           05245                           TC       WAITLIST                              
041294,000082: 16,2726  E6,1702                                  EBANK=   BZERO                                 
041295,000083: 16,2726           02720 34066                     2CADR    TVCEXEC                               
041296,000084: 
041297,000085: 16,2730           30032        ROLLPREP           CAE      CDUX                                  #  UPDATE ROLL LADDERS (NO NEED TO RESTART-
041298,000086: 16,2731           57662                           XCH      OGANOW                                #        PROTECT, SINCE ROLL DAPS RE-START)
041299,000087: 16,2732           57663                           XCH      OGAPAST                               
041300,000088: 
041301,000089: 16,2733           31450                           CAE      OGAD                                  #  PREPARE ROLL FDAI NEEDLE WITH FLY-TO
041302,000090: 16,2734           00006                           EXTEND                                         #        ERROR (COMMAND - MEASURED)
041303,000091: 16,2735           21662                           MSU      OGANOW                                
041304,000092: 16,2736           55476                           TS       AK                                    #  FLY-TO OGA ERROR, SC.AT B-1 REVS
041305,000093: 
041306,000094: 16,2737           00006                           EXTEND                                         #  PREPARE ROLL DAP PHASE PLANE OGAERR
041307,000095: 16,2740           77705                           MP       -BIT14                                
041308,000096: 16,2741           55664                           TS       OGAERR                                #  PHASE-PLANE (FLY-FROM) OGAERROR,
041309,000097:                                                                                                  #        SC.AT B+0 REVS
041310,000098: 
041311,000099: 16,2742           36214                           CAF      THREE                                 #  SET UP ROLL DAP TASK (ALLOW SOME TIME)
041312,000100: 16,2743           05245                           TC       WAITLIST                              
041313,000101: 16,2744  E6,1702                                  EBANK=   BZERO                                 
041314,000102: 16,2744           03272 34066                     2CADR    ROLLDAP                               
041315,000103: 
041316,000104: 16,2746           04740        NEEDLEUP           TC       IBNKCALL                              #  DO A NEEDLES UPDATE (RETURNS AFTER CADR)
041317,000105: 16,2747           42420                           CADR     NEEDLER                               #        (NEEDLES RESTARTS ITSELF)
041318,000106: 
041319,000107: 16,2750           35003        VARGAINS           CAF      BIT13                                 #  CHECK ENGINE-ON BIT TO INHIBIT VARIABLE
041320,000108: 16,2751           00006                           EXTEND                                         #        GAINS AND MASS IF ENGINE OFF
041321,000109: 16,2752           02011                           RAND     DSALMOUT                              #  CHANNEL 11
041322,000110: 16,2753           10000                           CCS      A                                     
041323,000111: 16,2754           12760                           TCF      +4                                    #        ON, SO OK TO UPDATE GAINS AND MASS
041324,000112: 16,2755           35016                 +5        CAF      TWO                                   #        OFF, SO BYPASS MASS/GAIN UPDATES,
041325,000113: 16,2756           55651                           TS       TVCEXPHS                              #                ALSO ENTRY FROM CCS BELOW WITH
041326,000114: 16,2757           13011                           TCF      1SHOTCHK                              #                VCNTR = -0 (V97 R40 ENGFAIL)
041327,000115: 16,2760           11643                           CCS      VCNTR                                 #        TEST FOR GAIN UPDATE TIME
041328,000116: 16,2761           12765                           TCF      +4                                    #                NOT YET

Page 947

041330,000118: 16,2762           12771                           TCF      GAINCHNG                              #                NOW
041331,000119: 16,2763           12763                           TCF      +0                                    #                NOT USED
041332,000120: 16,2764           12755                           TCF      VARGAINS   +5                         #                NO, LOTHRUST (S40.8 R40)
041333,000121: 
041334,000122: 16,2765           55653                 +4        TS       VCNTRTMP                              #        PROTECT VCNTR AND
041335,000123: 16,2766           31474                           CAE      CSMMASS                               #        CSMMASS DURING AN IMPULSIVE BURN
041336,000124: 16,2767           55652                           TS       MASSTMP                               
041337,000125: 16,2770           13002                           TCF      EXECCOPY                              
041338,000126: 
041339,000127: 16,2771           04740        GAINCHNG           TC       IBNKCALL                              #  UPDATE IXX, IAVG, IAVG/TLX
041340,000128: 16,2772           13422                           CADR     FIXCW                                 #  MASSPROP ENTRY (ALREADY INITIALIZED)
041341,000129: 16,2773           04740                           TC       IBNKCALL                              #  UPDATE 1/CONACC, VARK
041342,000130: 16,2774           36462                           CADR     S40.15                                #        (S40.15 IS IN TVCINITIALIZE)
041343,000131: 16,2775           41637                           CS       TENMDOT                               #  UPDATE MASS FOR NEXT 10 SEC. OF BURN
041344,000132: 16,2776           61474                           AD       CSMMASS                               
041345,000133: 16,2777           55652                           TS       MASSTMP                               #  KG B+16
041346,000134: 
041347,000135: 16,3000           34374                           CAF      NINETEEN                              #  RESET THE VARIABLE-GAIN UPDATE COUNTER
041348,000136: 16,3001           55653                           TS       VCNTRTMP                              
041349,000137: 
041350,000138: 16,3002           25651        EXECCOPY           INCR     TVCEXPHS                              #  RESTART-PROTECT THE COPYCYCLE         (1)
041351,000139: 
041352,000140: 16,3003           31652                           CAE      MASSTMP                               #  CSMMASS KG B+16
041353,000141: 16,3004           55474                           TS       CSMMASS                               
041354,000142: 
041355,000143: 16,3005           31653                           CAE      VCNTRTMP                              #  VCNTR
041356,000144: 16,3006           55643                           TS       VCNTR                                 
041357,000145: 16,3007           55444                           TS       V97VCNTR                              #  FOR ENGFAIL (R41) MASS UPDATES AT SPSOFF
041358,000146: 
041359,000147: 16,3010           25651                           INCR     TVCEXPHS                              #  COPYCYCLE OVER                        (2)
041360,000148: 
041361,000149: 16,3011           11447        1SHOTCHK           CCS      CNTR                                  #  CHECK TIME FOR ONE-SHOT OR REPCORR
041362,000150: 16,3012           13016                           TCF      +4                                    #        NOT YET
041363,000151: 16,3013           13031                           TCF      1SHOTOK                               #        NOW
041364,000152: 16,3014           13022                           TCF      REPCHEK                               #        ONE-SHOT OVER, ON TO REPCORR
041365,000153: 16,3015           13031                           TCF      1SHOTOK                               #        NOW (ONE-SHOT ONLY, NO REPCORR)
041366,000154: 
041367,000155: 16,3016           55676                 +4        TS       CNTRTMP                               #  COUNT DOWN
041368,000156: 16,3017           36211                           CAF      SIX                                   #  SETUP TVCEXPHS FOR ENTRY AT CNTRCOPY
041369,000157: 16,3020           55651                           TS       TVCEXPHS                              
041370,000158: 16,3021           13132                           TCF      CNTRCOPY                              
041371,000159: 
041372,000160: 16,3022           31642        REPCHEK            CAE      REPFRAC                               #  CHECK FOR REPETITIVE UPDATES
041373,000161: 16,3023           00006                           EXTEND                                         
041374,000162: 16,3024           63134                           BZMF     TVCEXFIN                              #        NO,  OVER-AND-OUT
041375,000163: 16,3025           55446                           TS       TEMPDAP    +1                         #        YES, SET UP CORRECTION FRACTION
041376,000164: 16,3026           35015                           CAF      FOUR                                  #  SET UP TVCEXPHS FOR ENTRY AT CORSETUP
041377,000165: 16,3027           55651                           TS       TVCEXPHS                              
041378,000166: 16,3030           13043                           TCF      CORSETUP                              

Page 948

041380,000168: 16,3031           35003        1SHOTOK            CAF      BIT13                                 #  CHECK ENGINE-ON BIT, NOT PERMITTING
041381,000169: 16,3032           00006                           EXTEND                                         #        ONE-SHOT DURING ENGINE-SHUTDOWN
041382,000170: 16,3033           02011                           RAND     DSALMOUT                              
041383,000171: 16,3034           10000                           CCS      A                                     
041384,000172: 16,3035           13037                           TCF      +2                                    #        ONE-SHOT OK
041385,000173: 16,3036           13134                           TCF      TVCEXFIN                              #        NO, TERMINATE
041386,000174: 
041387,000175: 16,3037           25651                           INCR     TVCEXPHS                              #                                        (3)
041388,000176: 
041389,000177: 16,3040           33137        TEMPSET            CAF      FCORFRAC                              #        SET UP CORRECTION FRACTION
041390,000178: 16,3041           55446                           TS       TEMPDAP    +1                         
041391,000179: 
041392,000180: 16,3042           25651                           INCR     TVCEXPHS                              #  ENTRY FROM REPCHEK AT NEXT LOCATION   (4)
041393,000181: 
041394,000182: 16,3043           31466        CORSETUP           CAE      DAPDATR1                              #  CHECK FOR LEM-OFF/ON
041395,000183: 16,3044           75003                           MASK     BIT13                                 #  (NOTE, SHOWS LEM-OFF)
041396,000184: 16,3045           00006                           EXTEND                                         
041397,000185: 16,3046           13050                           BZF      +2                                    #  LEM IS ON,  PICK UP   TEMPDAP+1
041398,000186: 16,3047           31446                           CAE      TEMPDAP    +1                         #  LEM IS OFF, PICK UP 2(TEMPDAP+1)
041399,000187: 16,3050           61446                           AD       TEMPDAP    +1                         
041400,000188: 16,3051           55445                           TS       TEMPDAP                               #  CG.CORR USES TEMPDAP
041401,000189: 
041402,000190: 16,3052           37716                           CAF      NEGONE                                #  SET UP FOR CNTR = -1 (ONE-SHOT DONE)
041403,000191: 16,3053           55676                           TS       CNTRTMP                               #        (COPYCYCLE AT .CNTRCOPY.)
041404,000192: 
041405,000193: 16,3054           00006        CG.CORR            EXTEND                                         #  PITCH TMC LOOP
041406,000194: 16,3055           31606                           DCA      PDELOFF                               
041407,000195: 16,3056           53673                           DXCH     PACTTMP                               
041408,000196: 16,3057           00006                           EXTEND                                         
041409,000197: 16,3060           41606                           DCS      PDELOFF                               
041410,000198: 16,3061           20001                           DDOUBL                                         
041411,000199: 16,3062           20001                           DDOUBL                                         
041412,000200: 16,3063           53612                           DXCH     TTMP1                                 
041413,000201: 16,3064           00006                           EXTEND                                         
041414,000202: 16,3065           31602                           DCA      DELPBAR                               
041415,000203: 16,3066           20001                           DDOUBL                                         
041416,000204: 16,3067           20001                           DDOUBL                                         
041417,000205: 16,3070           21612                           DAS      TTMP1                                 
041418,000206: 16,3071           00006                           EXTEND                                         
041419,000207: 16,3072           31612                           DCA      TTMP1                                 
041420,000208: 16,3073           00006                           EXTEND                                         
041421,000209: 16,3074           71445                           MP       TEMPDAP                               
041422,000210: 16,3075           21673                           DAS      PACTTMP                               
041423,000211: 
041424,000212: 16,3076           00006                           EXTEND                                         #  YAW TMC LOOP
041425,000213: 16,3077           31610                           DCA      YDELOFF                               
041426,000214: 16,3100           53675                           DXCH     YACTTMP                               
041427,000215: 16,3101           00006                           EXTEND                                         
041428,000216: 16,3102           41610                           DCS      YDELOFF                               
041429,000217: 16,3103           20001                           DDOUBL                                         

Page 949

041431,000219: 16,3104           20001                           DDOUBL                                         
041432,000220: 16,3105           53612                           DXCH     TTMP1                                 
041433,000221: 16,3106           00006                           EXTEND                                         
041434,000222: 16,3107           31604                           DCA      DELYBAR                               
041435,000223: 16,3110           20001                           DDOUBL                                         
041436,000224: 16,3111           20001                           DDOUBL                                         
041437,000225: 16,3112           21612                           DAS      TTMP1                                 
041438,000226: 16,3113           00006                           EXTEND                                         
041439,000227: 16,3114           31612                           DCA      TTMP1                                 
041440,000228: 16,3115           00006                           EXTEND                                         
041441,000229: 16,3116           71445                           MP       TEMPDAP                               
041442,000230: 16,3117           21675                           DAS      YACTTMP                               
041443,000231: 
041444,000232: 16,3120           25651        CORCOPY            INCR     TVCEXPHS                              #  RESTART PROTECT THE COPYCYCLE         (5)
041445,000233: 
041446,000234: 16,3121           00006                           EXTEND                                         #  TRIM-ESTIMATES, AND
041447,000235: 16,3122           31673                           DCA      PACTTMP                               
041448,000236: 16,3123           55423                           TS       PACTOFF                               #        TRIMS
041449,000237: 16,3124           53606                           DXCH     PDELOFF                               
041450,000238: 
041451,000239: 16,3125           00006                           EXTEND                                         
041452,000240: 16,3126           31675                           DCA      YACTTMP                               
041453,000241: 16,3127           55424                           TS       YACTOFF                               
041454,000242: 16,3130           53610                           DXCH     YDELOFF                               
041455,000243: 
041456,000244: 16,3131           25651                           INCR     TVCEXPHS                              #  ENTRY FROM 1SHOTCHK AT NEXT LOCATION  (6)
041457,000245: 
041458,000246: 16,3132           31676        CNTRCOPY           CAE      CNTRTMP                               #  UPDATE CNTR (RESTARTS OK, FOLLOWS CPYCY)
041459,000247: 16,3133           55447                           TS       CNTR                                  
041460,000248: 
041461,000249: 16,3134           35021        TVCEXFIN           CAF      ZERO                                  #  RESET TVCEXPHS
041462,000250: 16,3135           55651                           TS       TVCEXPHS                              
041463,000251: 16,3136           15324                           TCF      TASKOVER                              #  TVCEXECUTIVE FINISHED
041464,000252: 
041465,000253: 16,3137           10000        FCORFRAC           OCT      10000                                 #  ONE-SHOT CORRECTION FRACTION  
041466,000254: 

Page 950 This page is empty.

041469,000257: 
041470,000258: 

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