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