Source Code

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