Source Code

021817,000001: # Copyright: Public domain. 021818,000002: # Filename: R31.agc 021819,000003: # Purpose: Part of the source code for Comanche, build 055. It 021820,000004: # is part of the source code for the Command Module's 021821,000005: # (CM) Apollo Guidance Computer (AGC), Apollo 11. 021822,000006: # Assembler: yaYUL 021823,000007: # Reference: pp. 505-510 021824,000008: # Contact: Onno Hommes <ohommes@cmu.edu> 021825,000009: # Website: http://www.ibiblio.org/apollo. 021826,000010: # Mod history: 2009-05-11 OH Batch 2 Assignment Comanche Transcription 021827,000011: # 2009-05-20 RSB Corrected INSTALL -> INTSTALL 021828,000012: 021829,000013: # The contents of the "Comanche055" files, in general, are transcribed 021830,000014: # from scanned documents. 021831,000015: 021832,000016: # Assemble revision 055 of AGC program Comanche by NASA 021833,000017: # 2021113-051. April 1, 1969. 021834,000018: 021835,000019: # This AGC program shall also be referred to as Colossus 2A 021836,000020: 021837,000021: # Prepared by 021838,000022: # Massachusetts Institute of Technology 021839,000023: # 75 Cambridge Parkway 021840,000024: # Cambridge, Massachusetts 021841,000025: 021842,000026: # under NASA contract NAS 9-4065. 021843,000027: 021844,000028: # Refer directly to the online document mentioned above for further 021845,000029: # information. Please report any errors to info@sandroid.org. 021846,000030: 021847,000031: 021848,000032: # Page 505 021849,000033: 34,2002 BANK 34 021850,000034: 31,2000 SETLOC R31 021851,000035: 31,2000 BANK 021852,000036: 021853,000037: 31,2000 COUNT* $$/R31 021854,000038: 021855,000039: 31,2000 35057 R31CALL CAF PRIO3 021856,000040: 31,2001 05147 TC FINDVAC 021857,000041: 31,2002 E4,1770 EBANK= SUBEXIT 021858,000042: 31,2002 02032 62064 2CADR V83CALL 021859,000043: 021860,000044: 31,2004 35041 DSPDELAY CAF 1SEC 021861,000045: 31,2005 04662 TC BANKCALL 021862,000046: 31,2006 01732 CADR DELAYJOB 021863,000047: 31,2007 31044 CA EXTVBACT 021864,000048: 31,2010 75004 MASK BIT12 021865,000049: 31,2011 00006 EXTEND 021866,000050: 31,2012 12004 BZF DSPDELAY 021867,000051: 021868,000052: 31,2013 30105 DISPN5X CA FLAGWRD9 # TEST R31FLAG (IN SUNDANCE R31FLAG WILL 021869,000053: 31,2014 75014 MASK BIT4 # ALWAYS BE SET AS R34 DOES NOT EXIST. 021870,000054: 31,2015 00006 EXTEND 021871,000055: 31,2016 12021 BZF +3 021872,000056: 31,2017 32136 CAF V16N54 # R31 USE NOUN 54 021873,000057: 31,2020 02022 TC +2 021874,000058: 31,2021 32137 CAF V16N53 # R34 USE NOUN 53 021875,000059: 31,2022 04662 TC BANKCALL 021876,000060: 31,2023 20561 CADR GOMARKF 021877,000061: 31,2024 05625 TC B5OFF 021878,000062: 31,2025 05625 TC B5OFF 021879,000063: 31,2026 12013 TCF DISPN5X 021880,000064: 021881,000065: 31,2027 06006 V83 TC INTPRET 021882,000066: 31,2030 77650 GOTO 021883,000067: 31,2031 62171 HAVEBASE # INTEG STATE VECTORS 021884,000068: 31,2032 06006 V83CALL TC INTPRET 021885,000069: 31,2033 77650 GOTO 021886,000070: 31,2034 62140 STATEXTP # EXTRAPOLATE STATE VECTORS 021887,000071: 31,2035 52375 COMPDISP VLOAD VSU 021888,000072: 31,2036 00001 RATT 021889,000073: 31,2037 02327 RONE 021890,000074: 31,2040 51406 PUSH ABVAL # RATT-RONE TO 0D PD= 6 021891,000075: 31,2041 02321 STORE RANGE # METERS B-29 021892,000076: 31,2042 77301 NORM VLOAD 021893,000077: 31,2043 00047 X1 # RATT-RONE PD= 0 021894,000078: 31,2044 77762 VSR1 021895,000079: 31,2045 53457 VSL* UNIT 021896,000080: 31,2046 20201 0,1 021897,000081: 31,2047 52315 PDVL VSU # UNIT(LOS) TO 0D PD= 6 021898,000082: # Page 506 021899,000083: 31,2050 00007 VATT 021900,000084: 31,2051 02335 VONE 021901,000085: 31,2052 77641 DOT # (VATT-VONE).UNIT(LOS) PD= 0 021902,000086: 31,2053 77752 SL1 021903,000087: 31,2054 36323 STCALL RRATE # RANGE RATE M/CS B-7 021904,000088: 31,2055 47477 CDUTRIG # TO INITIALIZE FOR *NBSM* 021905,000089: 31,2056 77624 CALL 021906,000090: 31,2057 62311 R34LOS # NOTE. PDL MUST = 0. 021907,000091: 31,2060 53575 R34ANG VLOAD UNIT 021908,000092: 31,2061 02327 RONE 021909,000093: 31,2062 77715 PDVL # UR TO 0D PD= 6 021910,000094: 31,2063 15333 THISAXIS # UNITX FOR CM, UNITZ FOR LM 021911,000095: 31,2064 77214 BON VLOAD # CHK R31FLAG. ON=R31 THETA, OFF=R34 PHI 021912,000096: 31,2065 04713 R31FLAG 021913,000097: 31,2066 62070 +2 # R31-THETA 021914,000098: 31,2067 00015 12D 021915,000099: 31,2070 77624 CALL 021916,000100: 31,2071 47646 *NBSM* 021917,000101: 31,2072 41505 VXM PUSH # UXORZ TO 6D PD=12D 021918,000102: 31,2073 01736 REFSMMAT 021919,000103: 31,2074 72431 VPROJ VSL2 021920,000104: 31,2075 00001 0D 021921,000105: 31,2076 53445 BVSU UNIT 021922,000106: 31,2077 00007 6D 021923,000107: 31,2100 47315 PDVL VXV # UP/2 TO 12D PD=18D 021924,000108: 31,2101 02327 RONE 021925,000109: 31,2102 02335 VONE 021926,000110: 31,2103 47256 UNIT VXV 021927,000111: 31,2104 02327 RONE 021928,000112: 31,2105 63241 DOT PDVL # SIGN TO 12D, UP/2 TO MPAC PD=18D 021929,000113: 31,2106 00015 12D 021930,000114: 31,2107 50372 VSL1 DOT # UP.UXORZ 021931,000115: 31,2110 00007 6D 021932,000116: 31,2111 72565 SIGN SL1 021933,000117: 31,2112 00015 12D 021934,000118: 31,2113 77726 ACOS 021935,000119: 31,2114 26325 STOVL RTHETA 021936,000120: 31,2115 02327 RONE 021937,000121: 31,2116 51041 DOT BPL 021938,000122: 31,2117 00007 6D 021939,000123: 31,2120 62125 +5 021940,000124: 31,2121 44345 DLOAD BDSU # IF UXORZ.R NEG, RTHETA = 1 - RTHETA 021941,000125: 31,2122 02325 RTHETA 021942,000126: 31,2123 15343 DPPOSMAX 021943,000127: 31,2124 02325 STORE RTHETA # RTHETA BETWEEN 0 AND 1 REV. 021944,000128: 31,2125 77776 EXIT 021945,000129: 31,2126 35013 CAF BIT5 # HAVE WE BEEN ANSWERED 021946,000130: 31,2127 71044 MASK EXTVBACT 021947,000131: 31,2130 00006 EXTEND 021948,000132: 31,2131 15534 BZF ENDEXT # YES, DIE 021949,000133: # Page 507 021950,000134: 31,2132 41044 CS EXTVBACT 021951,000135: 31,2133 75004 MASK BIT12 021952,000136: 31,2134 27044 ADS EXTVBACT 021953,000137: 021954,000138: 31,2135 12027 TCF V83 021955,000139: 31,2136 04066 V16N54 VN 1654 021956,000140: 31,2137 04065 V16N53 VN 1653 021957,000141: 021958,000142: # Page 508 021959,000143: # STATEXTP DOES AN INITIAL PRECISION EXTRAPOLATION OF THE 021960,000144: # LEM STATE VECTOR TO PRESENT TIME OR TO PIPTIME IF AV G. 021961,000145: # IS ON AND SAVES AS BASE VECTOR. IF AV G IS ON RN + VN 021962,000146: # ARE USED AS THE CM STATE VECTOR AND THE INITIAL R RDOT 021963,000147: # RTHETA ARE COMPUTED WITH NO FURTHER INTEGRATION. IF AV 021964,000148: # G IS OFF A PRECISION EXTRAPOLATION IS MADE OF THE CM 021965,000149: # STATE VECTOR TO PRESENT TIME AND..... 021966,000150: 021967,000151: # THE CM + LM STATE VECTORS ARE INTEGRATED TO PRES TIME 021968,000152: # USING PRECISION OR CONIC AS SURFFLAG IS SET OR CLEAR. 021969,000153: 021970,000154: # IF AV G IS ON THEN 021971,000155: # SUBSEQUENT PASSES WILL PROVIDE 021972,000156: # USE OF RN + VN AS CM STATE VECTOR AND THE LM STATE 021973,000157: # VECTOR WILL BE PRECISION INTEGRATED USING LEMPREC 021974,000158: 021975,000159: # IF SURFFLAG IS SET. 021976,000160: # CM STATE VECTOR RONE VONE + LM STATE VECTOR RATT 021977,000161: # VATT ARE USED IN COMPUTING R RDOT RTHETA. 021978,000162: 021979,000163: 021980,000164: 31,2140 43034 STATEXTP RTB BOF # INITIAL INTEGRATION 021981,000165: 31,2141 45510 LOADTIME 021982,000166: 31,2142 03751 V37FLAG 021983,000167: 31,2143 62146 +3 # AV G OFF, USE PRES TIME 021984,000168: 31,2144 77624 CALL 021985,000169: 31,2145 62273 GETRVN # ON, USE RN VN PIPTIME 021986,000170: 31,2146 02343 STORE BASETIME # PRES TIME OR PIPTIME 021987,000171: 31,2147 34041 STCALL TDEC1 021988,000172: 31,2150 27105 LEMPREC 021989,000173: 31,2151 77775 VLOAD # BASE VECTOR, LM 021990,000174: 31,2152 00017 RATT1 021991,000175: 31,2153 26225 STOVL BASEOTP # POS. 021992,000176: 31,2154 00025 VATT1 021993,000177: 31,2155 02241 STORE BASEOTV # VEL. 021994,000178: 31,2156 71214 BON DLOAD 021995,000179: 31,2157 03711 V37FLAG 021996,000180: 31,2160 62035 COMPDISP # COMPUTE R RDOT RTHETA FROM 021997,000181: # RONE(RN) VONE(VN) RATT+VATT(LEMPREC) 021998,000182: 31,2161 00015 TAT 021999,000183: 31,2162 34041 STCALL TDEC1 022000,000184: 31,2163 27071 CSMPREC 022001,000185: 31,2164 77775 VLOAD # BASE VECTOR, CM 022002,000186: 31,2165 00017 RATT1 022003,000187: 31,2166 26255 STOVL BASETHP # POS. 022004,000188: 31,2167 00025 VATT1 022005,000189: 31,2170 02263 STORE BASETHV # VEL. 022006,000190: 31,2171 47014 HAVEBASE BON RTB # SUBSEQUENT INTEGRATIONS 022007,000191: 31,2172 03711 V37FLAG 022008,000192: 31,2173 62256 GETRVN5 022009,000193: 31,2174 45510 LOADTIME 022010,000194: 31,2175 34041 STCALL TDEC1 # AV G OFF, SET INTEG, OF CM 022011,000195: 31,2176 27442 INTSTALL 022012,000196: 31,2177 43175 VLOAD CLEAR 022013,000197: 31,2200 02255 BASETHP 022014,000198: # Page 509 022015,000199: 31,2201 00263 MOONFLAG 022016,000200: 31,2202 25535 STOVL RCV 022017,000201: 31,2203 02263 BASETHV 022018,000202: 31,2204 15543 STODL VCV 022019,000203: 31,2205 02343 BASETIME 022020,000204: 31,2206 43014 BOF SET # GET APPROPRIATE MOONFLAG SETTING 022021,000205: 31,2207 04343 MOONTHIS 022022,000206: 31,2210 62212 +2 022023,000207: 31,2211 00063 MOONFLAG 022024,000208: 31,2212 77614 CLEAR 022025,000209: 31,2213 01673 INTYPFLG 022026,000210: 31,2214 43014 BON SET 022027,000211: 31,2215 04307 SURFFLAG 022028,000212: 31,2216 62220 +2 # PREC. IF LM DOWN 022029,000213: 31,2217 01473 INTYPFLG # CONIC IF LM NOT DOWN 022030,000214: 31,2220 35517 STCALL TET 022031,000215: 31,2221 27135 INTEGRVS # INTEGRATION --- AT LAST --- 022032,000216: 31,2222 77775 VLOAD 022033,000217: 31,2223 00001 RATT 022034,000218: 31,2224 26327 STOVL RONE 022035,000219: 31,2225 00007 VATT 022036,000220: 31,2226 16335 STODL VONE # GET SET FOR CONIC EXTRAP., OTHER. 022037,000221: 31,2227 00015 TAT 022038,000222: 31,2230 45014 BON CALL 022039,000223: 31,2231 04307 SURFFLAG 022040,000224: 31,2232 62267 GETRVN6 # LEMPREC IF LM DOWN 022041,000225: 31,2233 27442 INTSTALL # ..CONIC IF NOT DOWN 022042,000226: 31,2234 77614 SET 022043,000227: 31,2235 01473 INTYPFLG 022044,000228: 31,2236 00041 OTHINT STORE TDEC1 # ENTERED IF AV G ON TO INTEG LM 022045,000229: 31,2237 43175 VLOAD CLEAR 022046,000230: 31,2240 02225 BASEOTP 022047,000231: 31,2241 00263 MOONFLAG 022048,000232: 31,2242 25535 STOVL RCV 022049,000233: 31,2243 02241 BASEOTV 022050,000234: 31,2244 15543 STODL VCV 022051,000235: 31,2245 02343 BASETIME 022052,000236: 31,2246 43014 BOF SET 022053,000237: 31,2247 04343 MOONTHIS 022054,000238: 31,2250 62252 +2 022055,000239: 31,2251 00063 MOONFLAG 022056,000240: 31,2252 35517 STCALL TET 022057,000241: 31,2253 27135 INTEGRVS 022058,000242: 31,2254 77650 GOTO 022059,000243: 31,2255 62035 COMPDISP # COMPUTE R RDOT RTHETA 022060,000244: 31,2256 77624 GETRVN5 CALL # AV G ON 022061,000245: 31,2257 62273 GETRVN 022062,000246: 31,2260 45014 BON CALL 022063,000247: 31,2261 04307 SURFFLAG 022064,000248: 31,2262 62267 GETRVN6 # LM DOWN, LMPREC 022065,000249: # Page 510 022066,000250: 31,2263 27442 INTSTALL 022067,000251: 31,2264 52014 CLEAR GOTO 022068,000252: 31,2265 01673 INTYPFLG 022069,000253: 31,2266 62236 OTHINT 022070,000254: 31,2267 34041 GETRVN6 STCALL TDEC1 022071,000255: 31,2270 27105 LEMPREC 022072,000256: 31,2271 77650 GOTO 022073,000257: 31,2272 62035 COMPDISP # COMPUTE R RDOT RTHETA 022074,000258: 31,2273 77620 GETRVN STQ 022075,000259: 31,2274 00000 0D 022076,000260: 31,2275 52175 VLOAD GOTO # AV G ON, RONE = RN VONE = VN 022077,000261: 31,2276 01171 RN # AND USE PIPTIME 022078,000262: 31,2277 62300 +1 022079,000263: 31,2300 36327 STCALL RONE 022080,000264: 31,2301 62302 +1 022081,000265: 31,2302 52175 VLOAD GOTO 022082,000266: 31,2303 01177 VN 022083,000267: 31,2304 62305 +1 022084,000268: 31,2305 16335 STODL VONE 022085,000269: 31,2306 01205 PIPTIME 022086,000270: 31,2307 77650 GOTO 022087,000271: 31,2310 00000 0D 022088,000272: 31,2000 SETLOC R34 022089,000273: 31,2000 BANK 022090,000274: 31,2311 77776 R34LOS EXIT 022091,000275: 31,2312 30036 CA CDUS 022092,000276: 31,2313 50120 INDEX FIXLOC 022093,000277: 31,2314 54011 TS 9D 022094,000278: 31,2315 30035 CA CDUT 022095,000279: 31,2316 50120 INDEX FIXLOC 022096,000280: 31,2317 54013 TS 11D 022097,000281: 31,2320 30120 CA FIXLOC 022098,000282: 31,2321 66211 AD SIX 022099,000283: 31,2322 40000 COM 022100,000284: 31,2323 50120 INDEX FIXLOC 022101,000285: 31,2324 54046 TS X1 022102,000286: 31,2325 06006 TC INTPRET 022103,000287: 31,2326 77624 CALL 022104,000288: 31,2327 46000 SXTNB 022105,000289: 31,2330 34015 STCALL 12D 022106,000290: 31,2331 62060 R34ANG End of include-file R31.agc. Parent file is MAIN.agc