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