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