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