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