Source Code

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