Source Code
041902,000001: # Copyright: Public domain.
041903,000002: # Filename: TVCEXECUTIVE.agc
041904,000003: # Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
041905,000004: # It is part of the source code for the Command Module's (CM)
041906,000005: # Apollo Guidance Computer (AGC), for Apollo 11.
041907,000006: # Assembler: yaYUL
041908,000007: # Contact: Ron Burkey <info@sandroid.org>.
041909,000008: # Website: www.ibiblio.org/apollo.
041910,000009: # Pages: 945-950
041911,000010: # Mod history: 2009-05-12 RSB Adapted from the Colossus249/ file of the
041912,000011: # same name, using Comanche055 page images.
041913,000012: # 2009-05-20 RSB Corrections: CAE -> CAF in one place.
041914,000013: # 2009-05-21 RSB In 1SHOTCHK, a CAF SEVEN was corrected to
041915,000014: # CAF SIX.
041916,000015: # 2010-08-28 JL Fixed indentation.
041917,000016: # 2011-05-08 JL Flagged workaround.
041918,000017:
041919,000018: # This source code has been transcribed or otherwise adapted from digitized
041920,000019: # images of a hardcopy from the MIT Museum. The digitization was performed
041921,000020: # by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
041922,000021: # thanks to both. The images (with suitable reduction in storage size and
041923,000022: # consequent reduction in image quality as well) are available online at
041924,000023: # www.ibiblio.org/apollo. If for some reason you find that the images are
041925,000024: # illegible, contact me at info@sandroid.org about getting access to the
041926,000025: # (much) higher-quality images which Paul actually created.
041927,000026:
041928,000027: # Notations on the hardcopy document read, in part:
041929,000028:
041930,000029: # Assemble revision 055 of AGC program Comanche by NASA
041931,000030: # 2021113-051. 10:28 APR. 1, 1969
041932,000031:
041933,000032: # This AGC program shall also be referred to as
041934,000033: # Colossus 2A
041935,000034:
041936,000035: # Page 945
041937,000036: # PROGRAM NAME.... TVCEXECUTIVE, CONSISTING OF TVCEXEC, NEEDLEUP, VARGAINS
041938,000037: # 1SHOTCHK, REPCHEK, CG.CORR, COPYCYCLES, ETC.
041939,000038: # LOG SECTION.... TVCEXECUTIVE SUBROUTINE ....DAPCSM
041940,000039: # MOD BY SCHLUNDT 21 OCTOBER 1968
041941,000040:
041942,000041: # FUNCTIONAL DESCRIPTION....
041943,000042: # *A SELF-PERPETUATING WAITLIST TASK AT 1/2 SECOND INTERVALS WHICH:
041944,000043: # PREPARES THE ROLL WITH OGA (CDUX)
041945,000044: # PREPARES THE ROLL FDAI NEEDLE (FLY-TO OGA ERROR)
041946,000045: # PREPARES THE ROLL PHASE PLANE OGAERR (FLY-FROM OGA ERROR)
041947,000046: # PREPARES THE TVC ROLLDAP TASK WAITLIST CALL (3 CS DELAY)
041948,000047: # UPDATES THE NEEDLES DISPLAY
041949,000048: # UPDATES THE VEHICLE MASS AND CALLS MASSPROP TO UPDATE INERTIA DATA
041950,000049: # UPDATES PITCH, YAW, AND ROLL DAP GAINS FROM MASSPROP DATA
041951,000050: # PERFORMS ONE-SHOT CORRECTION FOR TMC LOOP 0-3 SEC AFTER IGNITION
041952,000051: # PERFORMS REPETITIVE UPDATES FOR THE TMC LOOP AFTER THE ONE-SHOT CORR.
041953,000052:
041954,000053: # CALLING SEQUENCE....
041955,000054: # *TVCEXEC CALLED AS A WAITLIST TASK, IN PARTICULAR BY TVCINIT4 AND BY
041956,000055: # ITSELF, BOTH AT 1/2 SECOND INTERVALS
041957,000056:
041958,000057: # NORMAL EXIT MODE.... TASKOVER
041959,000058:
041960,000059: # ALARM OR ABORT EXIT MODES.... NONE
041961,000060:
041962,000061: # SUBROUTINES CALLED....NEEDLER, S40.15, MASSPROP, TASKOVER, IBNKCALL
041963,000062:
041964,000063: # OTHER INTERFACES....
041965,000064: # *TVCRESTART PACKAGE FOR RESTARTS
041966,000065: # *PITCHDAP, YAWDAP FOR VARIABLE GAINS AND ENGINE TRIM ANGLES
041967,000066:
041968,000067: # ERASABLE INITIALIZATION REQUIRED....
041969,000068: # *SEE TVCDAPON....TVCINIT4
041970,000069: # *VARK AND 1/CONACC (S40.15 OF R03)
041971,000070: # *PAD LOAD EREPFRAC
041972,000071: # *BITS 15,14 OF FLAGWRD6 (T5 BITS)
041973,000072: # *TVCEXPHS FOR RESTARTS
041974,000073: # *ENGINE-ON BIT (11.13) FOR RESTARTS
041975,000074: # *CDUX, OGAD
041976,000075:
041977,000076: # OUTPUT....
041978,000077: # *ROLL DAP OGANOW, FDAI NEEDLE= (AK). AND PHASE PLANE OGAERR
041979,000078: # *VARIABLE GAINS FOR PITCH/YAW AND ROLL TVC DAPS
041980,000079: # *SINGLE-SHOT AND REPETITIVE CORRECTIONS TO ENGINE TRIM ANGLES
041981,000080: # PACTOFF AND YACTOFF
041982,000081:
041983,000082: # DEBRIS.... MUCH, BUT SHAREABLE WITH RCS/ENTRY, ALL IN EBANK6
041984,000083:
041985,000084: # Page 946
041986,000085: 16,2720 BANK 16
041987,000086: 16,2000 SETLOC DAPROLL
041988,000087: 16,2000 BANK
041989,000088: 16,2720 E6,1702 EBANK= BZERO
041990,000089: 16,2720 COUNT* $$/TVCX
041991,000090:
041992,000091: 16,2720 40102 TVCEXEC CS FLAGWRD6 # CHECK FOR TERMINATION (BITS 15,14 READ
041993,000092: 16,2721 74105 MASK OCT60000 # 10 FROM TVCDAPON TO RCSDAPON)
041994,000093: 16,2722 00006 EXTEND
041995,000094: 16,2723 63134 BZMF TVCEXFIN # TERMINATE
041996,000095:
041997,000096: 16,2724 35036 CAF .5SEC # W.L. CALL TO PERPETUATE TVCEXEC
041998,000097: 16,2725 05245 TC WAITLIST
041999,000098: 16,2726 E6,1702 EBANK= BZERO
042000,000099: 16,2726 02720 34066 2CADR TVCEXEC
042001,000100:
042002,000101: 16,2730 30032 ROLLPREP CAE CDUX # UPDATE ROLL LADDERS (NO NEED TO RESTART-
042003,000102: 16,2731 57662 XCH OGANOW # PROTECT, SINCE ROLL DAPS RE-START)
042004,000103: 16,2732 57663 XCH OGAPAST
042005,000104:
042006,000105: 16,2733 31450 CAE OGAD # PREPARE ROLL FDAI NEEDLE WTIH FLY-TO
042007,000106: 16,2734 00006 EXTEND # ERROR (COMMAND - MEASURED)
042008,000107: 16,2735 21662 MSU OGANOW
042009,000108: 16,2736 55476 TS AK # FLY-TO OGA ERROR, SC.AT B-1 REVS
042010,000109:
042011,000110: 16,2737 00006 EXTEND # PREPARE ROLL DAP PHASE PLANE OGAERR
042012,000111: 16,2740 77705 MP -BIT14
042013,000112: 16,2741 55664 TS OGAERR # PHASE-PLANE (FLY-FROM) OGAERROR,
042014,000113: # SC.AT B+0 REVS
042015,000114:
042016,000115: 16,2742 36214 CAF THREE # SET UP ROLL DAP TASK (ALLOW SOME TIME)
042017,000116: 16,2743 05245 TC WAITLIST
042018,000117: 16,2744 E6,1702 EBANK= BZERO
042019,000118: 16,2744 03272 34066 2CADR ROLLDAP
042020,000119:
042021,000120: 16,2746 04740 NEEDLEUP TC IBNKCALL # DO A NEEDLES UPDATE (RETURNS AFTER CADR)
042022,000121: 16,2747 42420 CADR NEEDLER # (NEEDLES RESTARTS ITSELF)
042023,000122:
042024,000123: 16,2750 35003 VARGAINS CAF BIT13 # CHECK ENGINE-ON BIT TO INHIBIT VARIABLE
042025,000124: 16,2751 00006 EXTEND # GAINS AND MASS IF ENGINE OFF
042026,000125: 16,2752 02011 RAND DSALMOUT # CHANNEL 11
042027,000126: 16,2753 10000 CCS A
042028,000127: 16,2754 12760 TCF +4 # ON, SO OK TO UPDATE GAINS AND MASS
042029,000128: 16,2755 35016 +5 CAF TWO # OFF, SO BYPASS MASS/GAIN UPDATES,
042030,000129: 16,2756 55651 TS TVCEXPHS # ALSO ENTRY FROM CCS BELOW WITH
042031,000130: 16,2757 13011 TCF 1SHOTCHK # VCNTR = -0 (V97 R40 ENGFAIL)
042032,000131: 16,2760 11643 CCS VCNTR # TEST FOR GAIN OF UPDATE TIME
042033,000132: 16,2761 12765 TCF +4 # NOT YET
042034,000133: # Page 947
042035,000134: 16,2762 12771 TCF GAINCHNG # NOW
042036,000135: 16,2763 12763 TCF +0 # NOT USED
042037,000136: 16,2764 12755 TCF VARGAINS +5 # NO, LOTHRUST (S40.6 R40)
042038,000137:
042039,000138: 16,2765 55653 +4 TS VCNTRTMP # PROTECT VCNTR AND
042040,000139: 16,2766 31474 CAE CSMMASS # CSMMASS DURING AN IMPULSIVE BURN
042041,000140: 16,2767 55652 TS MASSTMP
042042,000141: 16,2770 13002 TCF EXECCOPY
042043,000142:
042044,000143: 16,2771 04740 GAINCHNG TC IBNKCALL # UPDATE IXX, IAVG, IAVG/TLX
042045,000144: 16,2772 13422 CADR FIXCW # MASSPROP ENTRY (ALREADY INITIALIZED)
042046,000145: 16,2773 04740 TC IBNKCALL # UPDATE 1/CONACC, VARK
042047,000146: 16,2774 36462 CADR S40.15 # (S40.15 IS IN TVCINITIALIZE)
042048,000147: 16,2775 41637 CS TENMDOT # UPDATE MASS FOR NEXT 10 SEC. OF BURN
042049,000148: 16,2776 61474 AD CSMMASS
042050,000149: 16,2777 55652 TS MASSTMP # KG B+16
042051,000150:
042052,000151: 16,3000 34374 CAF NINETEEN # RESET THE VARIABLE-GAIN UPDATE COUNTER
042053,000152: 16,3001 55653 TS VCNTRTMP
042054,000153:
042055,000154: 16,3002 25651 EXECCOPY INCR TVCEXPHS # RESTART-PROTECT TEH COPYCYCLE (1)
042056,000155:
042057,000156: 16,3003 31652 CAE MASSTMP # CSMMASS KG B+16
042058,000157: 16,3004 55474 TS CSMMASS
042059,000158:
042060,000159: 16,3005 31653 CAE VCNTRTMP # VCNTR
042061,000160: 16,3006 55643 TS VCNTR
042062,000161: 16,3007 55444 TS V97VCNTR # FOR ENGFAIL (R41) MASS UPATES AT SPSOFF
042063,000162:
042064,000163: 16,3010 25651 INCR TVCEXPHS # COPYCYCLE OVER (2)
042065,000164:
042066,000165: 16,3011 11447 1SHOTCHK CCS CNTR # CHECK FOR ONE-SHOT OR REPCORR
042067,000166: 16,3012 13016 TCF +4 # NOT YET
042068,000167: 16,3013 13031 TCF 1SHOTOK # NOW
042069,000168: 16,3014 13022 TCF REPCHEK # ONE-SHOT OVER, ON TO REPCORR
042070,000169: 16,3015 13031 TCF 1SHOTOK # NOW (ONE-SHOT ONLY, NO REPCORR)
042071,000170:
042072,000171: 16,3016 55676 +4 TS CNTRTMP # COUNT DOWN
042073,000172: 16,3017 36211 CAF SIX # SETUP TVCEXPHS FOR ENTRY AT CNTRCOPY
042074,000173: 16,3020 55651 TS TVCEXPHS
042075,000174: 16,3021 13132 TCF CNTRCOPY
042076,000175:
042077,000176: 16,3022 31642 REPCHEK CAE REPFRAC # CHECK FOR REPETITIVE UPDATES
042078,000177: 16,3023 00006 EXTEND
042079,000178: 16,3024 63134 BZMF TVCEXFIN # NO (NEG OR +-ZERO)
042080,000179: 16,3025 55446 TS TEMPDAP +1 # YES, SET UP CORRECTION FUNCTION
042081,000180: 16,3026 35015 CAF FOUR # SET UP TVCEXPHS FOR ENTRY AT CORSETUP
042082,000181: 16,3027 55651 TS TVCEXPHS
042083,000182: 16,3030 13043 TCF CORSETUP
042084,000183: # Page 948
042085,000184: 16,3031 35003 1SHOTOK CAF BIT13 # CHECK ENGINE-ON BIT, NOT PERMITTING
042086,000185: 16,3032 00006 EXTEND # SWITCHOVER DURING ENGINE-SHUTDOWN
042087,000186: 16,3033 02011 RAND DSALMOUT
042088,000187: 16,3034 10000 CCS A
042089,000188: 16,3035 13037 TCF +2 # ONE-SHOT OK
042090,000189: 16,3036 13134 TCF TVCEXFIN # NO, TERMINATE
042091,000190:
042092,000191: 16,3037 25651 INCR TVCEXPHS # (3)
042093,000192:
![]() |
[WORKAROUND] RSB 2009. The following instruction was previously "CAE FCORFRAC", but FCORFRAC is not in erasable memory as implied by the use of CAE. I've accordingly changed it to CAF instead to indicate fixed memory. |
042097,000196: 16,3040 33137 TEMPSET CAF FCORFRAC # SET UP CORRECTION FRACTION
![]() |
[WORKAROUND] |
042099,000198: 16,3041 55446 TS TEMPDAP +1
042100,000199:
042101,000200: 16,3042 25651 INCR TVCEXPHS # ENTRY FROM REPCHECK AT NEXT LOCATION (4)
042102,000201:
042103,000202: 16,3043 31466 CORSETUP CAE DAPDATR1 # CHECK FOR LEM-OFF/ON
042104,000203: 16,3044 75003 MASK BIT13 # (NOTE, SHOWS LEM-OFF)
042105,000204: 16,3045 00006 EXTEND
042106,000205: 16,3046 13050 BZF +2 # LEM IS ON, PICK UP TEMPDAP+1
042107,000206: 16,3047 31446 CAE TEMPDAP +1 # LEM IS OFF, PICK UP 2(TEMPDAP+1)
042108,000207: 16,3050 61446 AD TEMPDAP +1
042109,000208: 16,3051 55445 TS TEMPDAP # CG.CORR USES TEMPDAP
042110,000209:
042111,000210: 16,3052 37716 CAF NEGONE # SET UP FOR CNTR = -1 (SWTCHOVR DONE)
042112,000211: 16,3053 55676 TS CNTRTMP # (COPYCYCLE AT "CNTRCOPY")
042113,000212:
042114,000213: 16,3054 00006 CG.CORR EXTEND # PITCH TMC LOOP
042115,000214: 16,3055 31606 DCA PDELOFF
042116,000215: 16,3056 53673 DXCH PACTTMP
042117,000216: 16,3057 00006 EXTEND
042118,000217: 16,3060 41606 DCS PDELOFF
042119,000218: 16,3061 20001 DDOUBL
042120,000219: 16,3062 20001 DDOUBL
042121,000220: 16,3063 53612 DXCH TTMP1
042122,000221: 16,3064 00006 EXTEND
042123,000222: 16,3065 31602 DCA DELPBAR
042124,000223: 16,3066 20001 DDOUBL
042125,000224: 16,3067 20001 DDOUBL
042126,000225: 16,3070 21612 DAS TTMP1
042127,000226: 16,3071 00006 EXTEND
042128,000227: 16,3072 31612 DCA TTMP1
042129,000228: 16,3073 00006 EXTEND
042130,000229: 16,3074 71445 MP TEMPDAP
042131,000230: 16,3075 21673 DAS PACTTMP
042132,000231:
042133,000232: 16,3076 00006 EXTEND # YAW TMC LOOP
042134,000233: 16,3077 31610 DCA YDELOFF
042135,000234: 16,3100 53675 DXCH YACTTMP
042136,000235: 16,3101 00006 EXTEND
042137,000236: 16,3102 41610 DCS YDELOFF
042138,000237: 16,3103 20001 DDOUBL
042139,000238: # Page 949
042140,000239: 16,3104 20001 DDOUBL
042141,000240: 16,3105 53612 DXCH TTMP1
042142,000241: 16,3106 00006 EXTEND
042143,000242: 16,3107 31604 DCA DELYBAR
042144,000243: 16,3110 20001 DDOUBL
042145,000244: 16,3111 20001 DDOUBL
042146,000245: 16,3112 21612 DAS TTMP1
042147,000246: 16,3113 00006 EXTEND
042148,000247: 16,3114 31612 DCA TTMP1
042149,000248: 16,3115 00006 EXTEND
042150,000249: 16,3116 71445 MP TEMPDAP
042151,000250: 16,3117 21675 DAS YACTTMP
042152,000251:
042153,000252: 16,3120 25651 CORCOPY INCR TVCEXPHS # RESTART-PROTECT THE COPYCYCLE (5)
042154,000253:
042155,000254: 16,3121 00006 EXTEND # TRIM-ESTIMATES, AND
042156,000255: 16,3122 31673 DCA PACTTMP
042157,000256: 16,3123 55423 TS PACTOFF # TRIMS
042158,000257: 16,3124 53606 DXCH PDELOFF
042159,000258:
042160,000259: 16,3125 00006 EXTEND
042161,000260: 16,3126 31675 DCA YACTTMP
042162,000261: 16,3127 55424 TS YACTOFF
042163,000262: 16,3130 53610 DXCH YDELOFF
042164,000263:
042165,000264: 16,3131 25651 INCR TVCEXPHS # ENTRY FROM 1SHOTCHK AT NEXT LOCATION (6)
042166,000265:
042167,000266: 16,3132 31676 CNTRCOPY CAE CNTRTMP # UPDATE CNTR (RESTARTS OK, FOLLOWS CPYCY)
042168,000267: 16,3133 55447 TS CNTR
042169,000268:
042170,000269: 16,3134 35021 TVCEXFIN CAF ZERO # RESET TVCEXPHS
042171,000270: 16,3135 55651 TS TVCEXPHS
042172,000271: 16,3136 15324 TCF TASKOVER # TVCEXECUTIVE FINISHED
042173,000272:
042174,000273: 16,3137 10000 FCORFRAC OCT 10000 # ONE-SHOT CORRECTION FRACTION
042175,000274:
042176,000275: # Page 950 (page is empty)
042177,000276:
End of include-file TVCEXECUTIVE.agc. Parent file is MAIN.agc