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