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