Source Code

039625,000001: # Copyright: Public domain. 039626,000002: # Filename: TVCINITIALIZE.agc 039627,000003: # Purpose: Part of the source code for Colossus, build 249. 039628,000004: # It is part of the source code for the Command Module's (CM) 039629,000005: # Apollo Guidance Computer (AGC), possibly for Apollo 8 and 9. 039630,000006: # Assembler: yaYUL 039631,000007: # Reference: pp. 903-906 of 1701.pdf. 039632,000008: # Contact: Ron Burkey <info@sandroid.org>. 039633,000009: # Website: www.ibiblio.org/apollo/index.html 039634,000010: # Mod history: 08/22/04 RSB. Transcribed. 039635,000011: # 05/14/05 RSB Corrected website reference above. 039636,000012: # 2010-10-24 JL Indentation fixes. 039637,000013: 039638,000014: # The contents of the "Colossus249" files, in general, are transcribed 039639,000015: # from a scanned document obtained from MIT's website, 039640,000016: # http://hrst.mit.edu/hrs/apollo/public/archive/1701.pdf. Notations on this 039641,000017: # document read, in part: 039642,000018: 039643,000019: # Assemble revision 249 of AGC program Colossus by NASA 039644,000020: # 2021111-041. October 28, 1968. 039645,000021: 039646,000022: # This AGC program shall also be referred to as 039647,000023: # Colossus 1A 039648,000024: 039649,000025: # Prepared by 039650,000026: # Massachusetts Institute of Technology 039651,000027: # 75 Cambridge Parkway 039652,000028: # Cambridge, Massachusetts 039653,000029: # under NASA contract NAS 9-4065. 039654,000030: 039655,000031: # Refer directly to the online document mentioned above for further information. 039656,000032: # Please report any errors (relative to 1701.pdf) to info@sandroid.org. 039657,000033: 039658,000034: # In some cases, where the source code for Luminary 131 overlaps that of 039659,000035: # Colossus 249, this code is instead copied from the corresponding Luminary 131 039660,000036: # source file, and then is proofed to incorporate any changes. 039661,000037: 039662,000038: # Page 903 039663,000039: # NAME TVCDAPON (TVC DAP INITIALIZATION AND STARTUP CALL) 039664,000040: # MOD NO 3 DATE 6 JUNE, 1967 039665,000041: # MOD BY ENGEL LOG SECTION P40-P47 039666,000042: 039667,000043: # FUNCTIONAL DESCRIPTION 039668,000044: # PERFORMS TVCDAP INITIALIZATION (GAINS, TIMING PARAMETERS, FILTER VARIABLES, ETC.) 039669,000045: # COMPUTES STEERING (S40.8) GAIN KPRIMEDT, AND ZEROES PASTDELV,+1 VARIABLE 039670,000046: # MAKES INITIALIZATION CALL TO "NEEDLER" FOR TVC DAP NEEDLES-SETUP 039671,000047: # PERFORMS INITIALIZATION FOR ROLL DAP 039672,000048: # CALLS TVCEXECUTIVE AT TVCEXEC, VIA WAITLIST 039673,000049: # CALLS TVCDAP CDU-RATE INITIALIZATION PKG AT DAPINIT VIA T5 039674,000050: # MRCLEAN AND TVCINIT4 ARE POSSIBLE TVC-RESTART ENTRIES 039675,000051: 039676,000052: # CALLING SEQUENCE: T5LOC=2CADR(TVCDAPON,EBANK=BZERO), T5=.6SECT5 039677,000053: # IN PARTICULAR, CALLED BY "IGNOVER" 039678,000054: 039679,000055: # NORMAL EXIT MODE 039680,000056: # TCF RESUME 039681,000057: 039682,000058: # SUBROUTINES CALLED 039683,000059: # NEEDLER, MASSPROP 039684,000060: 039685,000061: # ALARM OR ABORT EXIT MODES 039686,000062: # NONE 039687,000063: 039688,000064: # ERASABLE INITIALIZATION REQUIRED 039689,000065: # CSMMASS, LEMMASS, DAPDATR1 (FOR MASSPROP SUBROUTINE) 039690,000066: # TVC PAD LOADS (SEE LEVEL III DAP AND/OR P40 TESTS) 039691,000067: # PACTOFF, YACTOFF, CDUX 039692,000068: # TVCPHASE, T5BITS OF FLAGWRD6, FOR RESTART PROTECTION (SEE IGNOVER) 039693,000069: 039694,000070: # OUTPUT 039695,000071: # ALL TVC AND ROLL DAP ERASABLES, FLAGWRD6 (BITS 13,14), T5, WAITLIST 039696,000072: 039697,000073: # DEBRIS 039698,000074: # NONE 039699,000075: 039700,000076: 31,3766 COUNT* $$/INIT 039701,000077: 17,2030 BANK 17 039702,000078: 17,2000 SETLOC DAPS7 039703,000079: 17,2000 BANK 039704,000080: 039705,000081: 17,2030 E6,1742 EBANK= BZERO 039706,000082: 039707,000083: 17,2030 22016 TVCDAPON LXCH BANKRUPT # T5 RUPT ARRIVAL (CALL BY DOTVCON - P40) 039708,000084: 17,2031 00006 EXTEND # SAVE Q REQUIRED IN RESTART (MRCLEAN AND 039709,000085: 17,2032 22012 QXCH QRUPT # TVCINIT4 ARE ENTRIES) 039710,000086: 17,2033 32205 MRCLEAN CAF NZERO # NUMBER TO ZERO, LESS ONE (MUST BE ODD) 039711,000087: # TVC RESTARTS ENTER HERE (NEW BANK) 039712,000088: 17,2034 10000 +1 CCS A 039713,000089: 17,2035 55447 TS CNTR 039714,000090: 17,2036 34714 CAF ZERO 039715,000091: 17,2037 54001 TS L 039716,000092: 17,2040 51447 INDEX CNTR 039717,000093: 17,2041 53530 DXCH OMEGAYC # FIRST (LAST) TWO LOCATIONS 039718,000094: 17,2042 11447 CCS CNTR 039719,000095: 17,2043 12034 TCF MRCLEAN +1 039720,000096: # Page 904 039721,000097: 17,2044 00006 EXTEND # SET UP ANOTHER T5 RUPT TO CONTINUE 039722,000098: 17,2045 32212 DCA INITLOC2 # INITIALIZATION AT TVCINIT1 039723,000099: 17,2046 53313 DXCH T5LOC # THE PHSCHK2 ENTRY (REDOTVC) AT TVCDAPON 039724,000100: 17,2047 34672 CAF POSMAX # +3 IS IN ANOTHER BANK. MUST RESET 039725,000101: 17,2050 54030 TS TIME5 # BBCON TOO (FULL 2CADR), FOR THAT 039726,000102: 17,2051 15222 ENDMRC TCF RESUME # ENTRY. 039727,000103: 039728,000104: 17,2052 22016 TVCINIT1 LXCH BANKRUPT 039729,000105: 17,2053 00006 EXTEND 039730,000106: 17,2054 22012 QXCH QRUPT 039731,000107: 039732,000108: 17,2055 04633 TC IBNKCALL # UPDATE IXX, IAVG/TLX FOR DAP GAINS (R03 039733,000109: 17,2056 13207 CADR MASSPROP # OR NOUNS 46 AND 47 MUST BE CORRECT) 039734,000110: 039735,000111: 17,2057 30110 CAE EMDOT # SPS FLOW RATE, SC.AT B+3 KG/CS 039736,000112: 17,2060 00006 EXTEND 039737,000113: 17,2061 72206 MP ONETHOU 039738,000114: 17,2062 55647 TS TENMDOT # 10-SEC MASS LOSS B+16 KG 039739,000115: 17,2063 40000 COM 039740,000116: 17,2064 61474 AD CSMMASS 039741,000117: 17,2065 55662 TS MASSTMP # DECREMENT FOR FIRST 10 SEC OF BURN 039742,000118: 039743,000119: 17,2066 31466 CAE DAPDATR1 # CHECK LEM-ON/OFF 039744,000120: 17,2067 74675 MASK BIT14 039745,000121: 17,2070 10000 CCS A 039746,000122: 17,2071 34712 CAF BIT1 # LEM-ON (BIT1) 039747,000123: 17,2072 55447 TS CNTR # LEM-OFF (ZERO) 039748,000124: 039749,000125: 17,2073 51447 INDEX CNTR # PICK UP LM-OFF,-ON KTLX/I 039750,000126: 17,2074 31416 CAE EKTLX/I 039751,000127: 17,2075 55646 TS KTLX/I 039752,000128: 039753,000129: 17,2076 04633 TC IBNKCALL # COMPUTE 1/CONACC, VARK 039754,000130: 17,2077 35145 CADR S40.15 039755,000131: 039756,000132: 17,2100 31420 TVCINIT2 CAE ETVCDT/2 # LEM-ON VALUE (PAD-LOAD, CS / 2) 039757,000133: 17,2101 54001 TS L 039758,000134: 17,2102 34711 CAF BIT2 # LEM-OFF VALUE (4CS / 2) 039759,000135: 17,2103 51447 INDEX CNTR 039760,000136: 17,2104 30000 CAE A 039761,000137: 17,2105 55644 TS KPRIMEDT # (TEMP STORE) 039762,000138: 039763,000139: 17,2106 40000 COM # PREPARE T5TVCDT 039764,000140: 17,2107 64672 AD POSMAX 039765,000141: 17,2110 64712 AD BIT1 039766,000142: 17,2111 55635 TS T5TVCDT 039767,000143: 039768,000144: 17,2112 44674 CS BIT15 # RESET SWTOVER FLAG 039769,000145: 17,2113 70105 MASK FLAGWRD9 039770,000146: 17,2114 54105 TS FLAGWRD9 039771,000147: # Page 905 039772,000148: 17,2115 51447 INDEX CNTR # PICK UP LEM-OFF,-ON KPRIME 039773,000149: 17,2116 31413 CAE EKPRIME 039774,000150: 17,2117 00006 EXTEND 039775,000151: 17,2120 71644 MP KPRIMEDT # (TVCDT/2, BC.AT B+14 CS) 039776,000152: 17,2121 22000 LXCH A # SC.AT PI/8 (DIMENSIONLESS) 039777,000153: 17,2122 53645 DXCH KPRIMEDT 039778,000154: 039779,000155: 17,2123 51447 INDEX CNTR # PICK UP LEM-OFF,-ON REPFRAC 039780,000156: 17,2124 31423 CAE EREPFRAC 039781,000157: 17,2125 55652 TS REPFRAC 039782,000158: 039783,000159: 17,2126 37716 CAF NEGONE # PREVEN STOKE TEST UNTIL CALLED 039784,000160: 17,2127 55664 TS STRKTIME 039785,000161: 039786,000162: 17,2130 34374 CAF NINETEEN # SET VCNTR FOR VARIABLE-GAIN UPDATES IN 039787,000163: 17,2131 55653 TS VCNTR # 10 SECONDS (TVCEXEC 1/2 SEC RATE) 039788,000164: 17,2132 55444 TS V97VCNTR # FOR ENGFAIL (R41) LOGIC 039789,000165: 039790,000166: 17,2133 31421 CAE ETSWITCH # PREPARE SWITCHOVER COUNTER 039791,000167: 17,2134 54001 TS L 039792,000168: 17,2135 60000 DOUBLE # (COUNTER DECREMENTS EVERY 1/2 SEC) 039793,000169: 17,2136 22000 LXCH A # LEM-OFF IN A, LEM-ON IN L 039794,000170: 17,2137 51447 INDEX CNTR 039795,000171: 17,2140 30000 CAE A 039796,000172: 17,2141 67716 AD NEGONE 039797,000173: 17,2142 55447 TS CNTR # CNTR = 2(SWITCHOVER TIME, SEC) -1 039798,000174: 17,2143 31425 TVCINIT3 CAE PACTOFF # TRIM VALUES TO TRIM-TRACKERS, OUTPUT 039799,000175: 17,2144 55625 TS PDELOFF # TRACKERS, OFFSET-UPDATES, AND 039800,000176: 17,2145 55631 TS PCMD # OFFSET-TRACKER FILTERS 039801,000177: 17,2146 55621 TS DELPBAR # NOTE, LO-ORDER DELOFF, DELBAR ZEROED 039802,000178: 039803,000179: 17,2147 31426 CAE YACTOFF 039804,000180: 17,2150 55627 TS YDELOFF 039805,000181: 17,2151 55632 TS YCMD 039806,000182: 17,2152 55623 TS DELYBAR 039807,000183: 039808,000184: 17,2153 41501 NEEDLEIN CS RCSFLAGS # SET BIT 3 FOR INITIALIZATION PASS AND GO 039809,000185: 17,2154 74710 MASK BIT3 # TO NEEDLER. WILL CLEAR FOR TVC DAP 039810,000186: 17,2155 27501 ADS RCSFLAGS # (RETURNS AFTER CADR) 039811,000187: 17,2156 04633 TC IBNKCALL 039812,000188: 17,2157 42404 CADR NEEDLER 039813,000189: 039814,000190: 17,2160 34714 TVCINIT4 CAF ZERO # SET TVCPHASE TO INDICATE TVCDAPON-THRU- 039815,000191: 17,2161 55654 TS TVCPHASE # NEEDLEIN INITIALIZATION FINISHED. 039816,000192: # (POSSIBLE TVC-RESTART ENTRY) 039817,000193: 039818,000194: 17,2162 30032 CAE CDUX # PREPARE ROLL DAP LADDERS 039819,000195: 17,2163 55672 TS OGANOW 039820,000196: # Page 906 039821,000197: # ROLL DAPS RE-START UPON A RESTART, BUT 039822,000198: # RETAIN ORIGINAL OGAD (IGNOVER CDUX) 039823,000199: 039824,000200: 17,2164 34676 CAF BIT13 # IF ENGINE IS ALREADY OFF, ENGINOFF HAS 039825,000201: 17,2165 00006 EXTEND # ALREADY ESTABLISHED THE POST-BURN 039826,000202: 17,2166 02011 RAND DSALMOUT # CSMMASS (MASSBACK DOES IT). DON'T 039827,000203: 17,2167 00006 EXTEND # TOUCH CSMMASS. IF ENGINE IS ON, 039828,000204: 17,2170 12173 BZF +3 # THEN IT'S OK TO DO THE COPYCYCLE 039829,000205: # EVEN BURNS LESS THAN 0.4 SEC ARE AOK 039830,000206: 039831,000207: 17,2171 31662 CAE MASSTMP # COPYCYCLE 039832,000208: 17,2172 55474 TS CSMMASS 039833,000209: 039834,000210: 17,2173 34731 +3 CAF .5SEC # CALL TVCEXECUTIVE (ROLLDAP CALL, ETC) 039835,000211: 17,2174 05140 TC WAITLIST 039836,000212: 17,2175 E6,1742 EBANK= BZERO 039837,000213: 17,2175 02660 34066 2CADR TVCEXEC 039838,000214: 039839,000215: 17,2177 00006 EXTEND # CALL FOR DAPINIT 039840,000216: 17,2200 32210 DCA DAPINIT5 039841,000217: 17,2201 53313 DXCH T5LOC 039842,000218: 17,2202 31635 CAE T5TVCDT # (ALLOW TIME FOR RESTART COMPUTATIONS) 039843,000219: 17,2203 54030 TS TIME5 039844,000220: 039845,000221: 17,2204 15222 ENDTVCIN TCF RESUME 039846,000222: 17,2205 00101 NZERO DEC 65 B-14 # MUST BE ODD FOR MRCLEAN 039847,000223: 039848,000224: 17,2206 4374 NINETEEN = VD1 039849,000225: 039850,000226: 17,2206 03720 ONETHOU DEC 1000 B-13 # KG/CS B3 TO KG/10SEC B16 CONVERSION 039851,000227: 039852,000228: 17,2207 E6,1742 EBANK= BZERO 039853,000229: 17,2207 03111 40066 DAPINIT5 2CADR DAPINIT 039854,000230: 039855,000231: 17,2211 E6,1742 EBANK= BZERO 039856,000232: 17,2211 02052 36066 INITLOC2 2CADR TVCINIT1 039857,000233: End of include-file TVCINITIALIZE.agc. Parent file is MAIN.agc