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