Source Code
These source-code files are part of a reconstructed copy of Luminary 163, the
first (unflown) release of the Apollo 14 Lunar Module (LM) Apollo Guidance
Computer (AGC) software.
The reconstruction began with reconstructed source code for Luminary 173. Changes between revision 163 and 173 were backed out, as described by Luminary memos 157 and 158. The reconstruction was verified by matching memory-bank checksums to those listed in drawing 2021152N. Note that page numbers in the reconstructed code match those for the baseline log section mentioned in each file's changelog; the page numbers for a real Luminary 163 listing would be different. Comments from the original source code are prefixed with a single '#' symbol, whereas comments added later are prefixed by "##" or "###". Report any errors noted by creating an issue report at the Virtual AGC project's GitHub repository. |
016136,000002: ## Copyright: Public domain.
016137,000003: ## Filename: IMU_PERFORMANCE_TESTS_2.agc
016138,000004: ## Purpose: A section of Luminary revision 163.
016139,000005: ## It is part of the reconstructed source code for the first
016140,000006: ## (unflown) release of the flight software for the Lunar
016141,000007: ## Module's (LM) Apollo Guidance Computer (AGC) for Apollo 14.
016142,000008: ## The code has been recreated from a reconstructed copy of
016143,000009: ## Luminary 173, as well as Luminary memos 157 amd 158.
016144,000010: ## It has been adapted such that the resulting bugger words
016145,000011: ## exactly match those specified for Luminary 163 in NASA
016146,000012: ## drawing 2021152N, which gives relatively high confidence
016147,000013: ## that the reconstruction is correct.
016148,000014: ## Reference: pp. 378-386
016149,000015: ## Assembler: yaYUL
016150,000016: ## Contact: Ron Burkey <info@sandroid.org>.
016151,000017: ## Website: www.ibiblio.org/apollo/index.html
016152,000018: ## Mod history: 2019-08-21 MAS Created from Luminary 173.
016153,000019:
Page 378 |
016155,000021: # NAME- IMU PERFORMANCE TESTS 2
016156,000022:
016157,000023: # DATE- MARCH 20,1967
016158,000024:
016159,000025: # BY- SYSTEM TEST GROUP 864-6900 EXT. 1274
016160,000026:
016161,000027: # MODNO.- ZERO
016162,000028:
016163,000029: # FUNCTIONAL DESCRIPTION
016164,000030:
016165,000031: # POSITIONING ROUTINES FOR THE IMU PERFORMANCE TESTS AS WELL AS SOME OF
016166,000032: # THE TESTS THEMSELVES. FOR A DESCRIPTION OF THESE SUBROUTINES AND THE
016167,000033: # OPERATING PROCEDURES (TYPICALLY) SEE STG MEMO 685.THEORETICAL REF.E-1973
016168,000034:
016169,000035: 33,2117 BANK 33
016170,000036: 37,2000 SETLOC IMU2
016171,000037: 37,2000 BANK
016172,000038: 37,2002 E5,1416 EBANK= POSITON
016173,000039: 37,2002 COUNT* $$/P07
016174,000040:
016175,000041: 37,2002 05322 REDO TC NEWMODEX
016176,000042: 37,2003 00007 MM 07 B-14
016177,000043:
016178,000044: 37,2004 02325 GEOIMUTT TC IMUZERR
016179,000045: 37,2005 34755 IMUBACK CA ZERO
016180,000046: 37,2006 55414 TS NDXCTR
016181,000047: 37,2007 55440 TS TORQNDX
016182,000048: 37,2010 55441 TS TORQNDX +1
016183,000049: 37,2011 55576 TS OVFLOWCK
016184,000050: 37,2012 34361 NBPOSPL CA DEC17
016185,000051: 37,2013 55571 TS ZERONDX
016186,000052: 37,2014 32476 CA XNBADR
016187,000053: 37,2015 02367 TC ZEROING
016188,000054: 37,2016 34736 CA HALF
016189,000055: 37,2017 55664 TS XNB
016190,000056: 37,2020 06042 GUESS TC INTPRET
016191,000057: 37,2021 62545 LATAZCHK DLOAD SL2
016192,000058: 37,2022 02403 LATITUDE
016193,000059: 37,2023 15046 STODL DSPTEM1 +1
016194,000060: 37,2024 02401 AZIMUTH
016195,000061: 37,2025 77434 RTB EXIT
016196,000062: 37,2026 21615 1STO2S
016197,000063: 37,2027 56154 XCH MPAC
016198,000064: 37,2030 55044 TS DSPTEM1
016199,000065: 37,2031 32473 CAF VN0641
016200,000066: 37,2032 04616 TC BANKCALL
016201,000067: 37,2033 20477 CADR GOFLASH
016202,000068: 37,2034 02270 TC ENDTEST1
016203,000069: 37,2035 02037 TC +2
016204,000070: 37,2036 02031 TC -5
016205,000071:
Page 379 |
016207,000073: 37,2037 06042 TC INTPRET
016208,000074: 37,2040 47135 SLOAD RTB
016209,000075: 37,2041 01045 DSPTEM1
016210,000076: 37,2042 21577 CDULOGIC
016211,000077: 37,2043 02401 STORE AZIMUTH
016212,000078: 37,2044 60535 SLOAD SR2
016213,000079: 37,2045 01046 DSPTEM1 +1
016214,000080: 37,2046 02403 STORE LATITUDE
016215,000081: 37,2047 57546 COS DCOMP
016216,000082: 37,2050 77752 SL1
016217,000083: 37,2051 16437 STODL WANGI
016218,000084: 37,2052 02403 LATITUDE
016219,000085: 37,2053 72556 SIN SL1
016220,000086: 37,2054 16435 STODL WANGO
016221,000087: 37,2055 02401 AZIMUTH
016222,000088: 37,2056 73406 PUSH SIN
016223,000089: 37,2057 02675 STORE YNB +2
016224,000090: 37,2060 16705 STODL ZNB +4
016225,000091: 37,2061 77746 COS
016226,000092: 37,2062 02677 STORE YNB +4
016227,000093: 37,2063 77676 DCOMP
016228,000094: 37,2064 36703 POSGMBL STCALL ZNB +2
016229,000095: 37,2065 47351 CALCGA
016230,000096: 37,2066 77776 EXIT
016231,000097: 37,2067 04616 TC BANKCALL
016232,000098: 37,2070 16764 CADR IMUCOARS
016233,000099: 37,2071 34736 CAF BIT14 # IF BIT14 SET, GIMBAL LOCK
016234,000100: 37,2072 70077 MASK FLAGWRD3
016235,000101: 37,2073 00006 EXTEND
016236,000102: 37,2074 12076 BZF +2
016237,000103: 37,2075 25414 INCR NDXCTR # +1 IF IN GIMBAL LOCK,OTHERWISE 0
016238,000104: 37,2076 05527 TC DOWNFLAG
016239,000105: 37,2077 00056 ADRES GLOKFAIL # RESET GIMBAL LOCK FLAG
016240,000106: 37,2100 02315 TC IMUSLLLG
016241,000107: 37,2101 11414 CCS NDXCTR # IF ONE GO AND DO A PIPA TEST ONLY
016242,000108: 37,2102 02126 TC PIPACHK # ALIGN AND MEASURE VERTICAL PIPA RATE
016243,000109: 37,2103 02320 TC FINIMUDD
016244,000110: 37,2104 00006 EXTEND
016245,000111: 37,2105 31575 DCA PERFDLAY
016246,000112: 37,2106 05310 TC LONGCALL # DELAY WHILE SUSPENSION STABILIZES
016247,000113: 37,2107 E5,1416 EBANK= POSITON
016248,000114: 37,2107 02113 76065 2CADR GOESTIMS
016249,000115:
016250,000116: 37,2111 32116 CA ESTICADR
016251,000117: 37,2112 05133 TC JOBSLEEP
016252,000118: 37,2113 32116 GOESTIMS CA ESTICADR
016253,000119: 37,2114 05137 TC JOBWAKE
016254,000120: 37,2115 05272 TC TASKOVER
016255,000121: 37,2116 76500 ESTICADR CADR ESTIMS
016256,000122: 37,2117 34755 TORQUE CA ZERO
016257,000123:
Page 380 |
016259,000125: 37,2120 55047 TS DSPTEM2
016260,000126: 37,2121 31504 CA DRIFTI
016261,000127: 37,2122 55050 TS DSPTEM2 +1
016262,000128: 37,2123 51416 INDEX POSITON
016263,000129: 37,2124 55420 TS SOUTHDR -1
016264,000130: 37,2125 02457 TC SHOW
016265,000131:
016266,000132: 37,2126 51414 PIPACHK INDEX NDXCTR # PIPA TEST
016267,000133: 37,2127 02130 TC +1
016268,000134: 37,2130 02447 TC EARTHR*
016269,000135: 37,2131 34361 CA DEC17 # ALLOW PIP COUNTER TO OVERFLOW 17 TIMES
016270,000136: 37,2132 55476 TS DATAPL +4 # IN THE ALLOTED TIME INTERVAL
016271,000137: 37,2133 32474 CA DEC58
016272,000138: 37,2134 55412 TS LENGTHOT
016273,000139: 37,2135 34753 CA ONE
016274,000140: 37,2136 55537 TS RESULTCT
016275,000141: 37,2137 34755 CA ZERO
016276,000142: 37,2140 51415 INDEX PIPINDEX
016277,000143: 37,2141 54037 TS PIPAX
016278,000144: 37,2142 55472 TS DATAPL
016279,000145: 37,2143 02332 TC CHECKG
016280,000146: 37,2144 00004 INHINT
016281,000147: 37,2145 34752 CAF TWO
016282,000148: 37,2146 05204 TC TWIDDLE
016283,000149: 37,2147 E5,1642 EBANK= XSM
016284,000150: 37,2147 02151 ADRES PIPATASK
016285,000151: 37,2150 05155 TC ENDOFJOB
016286,000152:
016287,000153:
016288,000154: 37,2151 00006 PIPATASK EXTEND
016289,000155: 37,2152 27412 DIM LENGTHOT
016290,000156: 37,2153 31412 CA LENGTHOT
016291,000157: 37,2154 00006 EXTEND
016292,000158: 37,2155 62161 BZMF STARTPIP
016293,000159: 37,2156 34742 CAF BIT10
016294,000160: 37,2157 05204 TC TWIDDLE
016295,000161: 37,2160 E5,1642 EBANK= XSM
016296,000162: 37,2160 02151 ADRES PIPATASK
016297,000163: 37,2161 34736 STARTPIP CAF PRIO20
016298,000164: 37,2162 05105 TC FINDVAC
016299,000165: 37,2163 E5,1642 EBANK= XSM
016300,000166: 37,2163 02166 76065 2CADR PIPJOBB
016301,000167:
016302,000168: 37,2165 05272 TC TASKOVER
016303,000169:
016304,000170: 37,2166 51414 PIPJOBB INDEX NDXCTR
016305,000171: 37,2167 02170 TC +1
016306,000172: 37,2170 02447 TC EARTHR*
016307,000173: 37,2171 31412 CA LENGTHOT
Page 381 |
016309,000175: 37,2172 00006 EXTEND
016310,000176: 37,2173 62175 BZMF +2
016311,000177: 37,2174 05155 TC ENDOFJOB
016312,000178:
016313,000179: 37,2175 34756 CA FIVE
016314,000180: 37,2176 55537 TS RESULTCT
016315,000181: 37,2177 02332 TC CHECKG
016316,000182: 37,2200 11473 CCS DATAPL +1
016317,000183: 37,2201 02205 TC +4
016318,000184: 37,2202 05706 TC CCSHOLE
016319,000185: 37,2203 41476 CS DATAPL +4
016320,000186: 37,2204 55476 TS DATAPL +4
016321,000187: 37,2205 00006 EXTEND
016322,000188: 37,2206 41473 DCS DATAPL
016323,000189: 37,2207 21477 DAS DATAPL +4
016324,000190:
016325,000191: 37,2210 06042 TC INTPRET
016326,000192: 37,2211 45345 DLOAD DSU
016327,000193: 37,2212 02501 DATAPL +6
016328,000194: 37,2213 02475 DATAPL +2
016329,000195: 37,2214 45044 BPL CALL
016330,000196: 37,2215 76217 AINGOTN
016331,000197: 37,2216 76275 OVERFFIX
016332,000198: 37,2217 56325 AINGOTN PDDL DDV
016333,000199: 37,2220 02477 DATAPL +4
016334,000200: 37,2221 47075 DMPR RTB
016335,000201: 37,2222 37056 DEC585 # DEC585 HAS BEEN REDEFINED FOR LEM
016336,000202: 37,2223 21613 SGNAGREE
016337,000203: 37,2224 01050 STORE DSPTEM2
016338,000204: 37,2225 77776 EXIT
016339,000205: 37,2226 11414 CCS NDXCTR
016340,000206: 37,2227 02301 TC COAALIGN # TAKE PLATFORM OUT OF GIMBAL LOCK
016341,000207: 37,2230 02457 TC SHOW
016342,000208: 37,2231 32471 VERTDRFT CA 3990DEC # ABOUT 1 HOUR VERTICAL DRIFT TEST
016343,000209: 37,2232 55412 TS LENGTHOT
016344,000210: 37,2233 51416 INDEX POSITON
016345,000211: 37,2234 41417 CS SOUTHDR -2
016346,000212: 37,2235 55442 TS DRIFTT
016347,000213: 37,2236 11415 CCS PIPINDEX # OFFSET PLATFORM TO MISS PIP DEAD-ZONES
016348,000214: 37,2237 12245 TCF PON4 # Z UP IN POS 4
016349,000215: 37,2240 44747 PON2 CS BIT5 # X UP
016350,000216: 37,2241 27565 ADS ERCOMP +2
016351,000217: 37,2242 34747 CA BIT5
016352,000218: 37,2243 27567 ADS ERCOMP +4
016353,000219: 37,2244 12251 TCF PON
016354,000220: 37,2245 44747 PON4 CS BIT5
016355,000221: 37,2246 27565 ADS ERCOMP +2
016356,000222: 37,2247 34747 CA BIT5
016357,000223: 37,2250 27563 ADS ERCOMP
016358,000224: 37,2251 02447 PON TC EARTHR*
016359,000225:
Page 382 |
016361,000227: 37,2252 34755 CA ZERO # ALLOW ONLY SOUTH GYRO EARTH RATE COMPENS
016362,000228: 37,2253 55404 TS ERVECTOR
016363,000229: 37,2254 55405 TS ERVECTOR +1
016364,000230: 37,2255 34733 GUESS1 CAF POSMAX
016365,000231: 37,2256 55440 TS TORQNDX
016366,000232: 37,2257 55441 TS TORQNDX +1
016367,000233: 37,2260 30032 CA CDUX
016368,000234: 37,2261 55413 TS LOSVEC
016369,000235: 37,2262 02500 TC ESTIMS
016370,000236: 37,2263 31502 VALMIS CA DRIFTO
016371,000237: 37,2264 55050 TS DSPTEM2 +1
016372,000238: 37,2265 34755 CA ZERO
016373,000239: 37,2266 55047 TS DSPTEM2
016374,000240: 37,2267 02457 TC SHOW
016375,000241:
016376,000242: 37,2270 05527 ENDTEST1 TC DOWNFLAG
016377,000243: 37,2271 00007 ADRES IMUSE
016378,000244: 37,2272 44755 CS ZERO
016379,000245: 37,2273 05325 TC NEWMODEA
016380,000246: 37,2274 05503 TC ENDEXT
016381,000247:
Page 383 |
016383,000249: 37,2275 43215 OVERFFIX DAD DAD
016384,000250: 37,2276 06526 DPPOSMAX
016385,000251: 37,2277 37064 ONEDPP
016386,000252: 37,2300 77616 RVQ
016387,000253:
016388,000254: 37,2301 00006 COAALIGN EXTEND # COARSE ALIGN SUBROUTINE
016389,000255: 37,2302 23571 QXCH ZERONDX
016390,000256: 37,2303 34755 CA ZERO
016391,000257: 37,2304 54321 TS THETAD
016392,000258: 37,2305 54322 TS THETAD +1
016393,000259: 37,2306 54323 TS THETAD +2
016394,000260: 37,2307 04616 TC BANKCALL
016395,000261: 37,2310 16764 CADR IMUCOARS
016396,000262: 37,2311 04616 ALIGNCOA TC BANKCALL
016397,000263: 37,2312 17722 CADR IMUSTALL
016398,000264: 37,2313 03047 TC SOMERR2
016399,000265: 37,2314 01571 TC ZERONDX
016400,000266:
016401,000267:
016402,000268: 37,2315 00006 IMUSLLLG EXTEND
016403,000269: 37,2316 23571 QXCH ZERONDX
016404,000270: 37,2317 02311 TC ALIGNCOA
016405,000271:
016406,000272: 37,2320 00006 FINIMUDD EXTEND
016407,000273: 37,2321 23571 QXCH ZERONDX
016408,000274: 37,2322 04616 TC BANKCALL
016409,000275: 37,2323 17174 CADR IMUFINE
016410,000276: 37,2324 02311 TC ALIGNCOA
016411,000277:
016412,000278: 37,2325 00006 IMUZERR EXTEND
016413,000279: 37,2326 23571 QXCH ZERONDX
016414,000280: 37,2327 04616 TC BANKCALL
016415,000281: 37,2330 16700 CADR IMUZERO
016416,000282: 37,2331 02311 TC ALIGNCOA
016417,000283:
016418,000284:
016419,000285: 37,2332 00006 CHECKG EXTEND # PIP PULSE CATCHING ROUTINE
016420,000286: 37,2333 23417 QXCH QPLACE
016421,000287: 37,2334 02342 TC +6
016422,000288: 37,2335 00003 CHECKG1 RELINT
016423,000289: 37,2336 30067 CA NEWJOB
016424,000290: 37,2337 00006 EXTEND
016425,000291: 37,2340 62346 BZMF +6
016426,000292: 37,2341 05122 TC CHANG1
016427,000293: 37,2342 00004 INHINT
016428,000294: 37,2343 51415 INDEX PIPINDEX
016429,000295: 37,2344 40037 CS PIPAX
016430,000296: 37,2345 55571 TS ZERONDX
016431,000297: 37,2346 00004 INHINT
016432,000298:
Page 384 |
016434,000300: 37,2347 51415 INDEX PIPINDEX
016435,000301: 37,2350 30037 CA PIPAX
016436,000302: 37,2351 61571 AD ZERONDX
016437,000303: 37,2352 00006 EXTEND
016438,000304: 37,2353 12335 BZF CHECKG1
016439,000305: 37,2354 51415 INDEX PIPINDEX
016440,000306: 37,2355 30037 CA PIPAX
016441,000307: 37,2356 51537 INDEX RESULTCT
016442,000308: 37,2357 55472 TS DATAPL
016443,000309: 37,2360 04102 TC FINETIME
016444,000310: 37,2361 51537 INDEX RESULTCT
016445,000311: 37,2362 55473 TS DATAPL +1
016446,000312: 37,2363 51537 INDEX RESULTCT
016447,000313: 37,2364 23474 LXCH DATAPL +2
016448,000314: 37,2365 00003 RELINT
016449,000315: 37,2366 01417 ENDCHKG TC QPLACE
016450,000316:
016451,000317:
016452,000318: 37,2367 54001 ZEROING TS L
016453,000319: 37,2370 12372 TCF +2
016454,000320: 37,2371 55571 ZEROING1 TS ZERONDX
016455,000321: 37,2372 34755 CAF ZERO
016456,000322: 37,2373 50001 INDEX L
016457,000323: 37,2374 54000 TS 0
016458,000324: 37,2375 24001 INCR L
016459,000325: 37,2376 11571 CCS ZERONDX
016460,000326: 37,2377 12371 TCF ZEROING1
016461,000327: 37,2400 00002 TC Q
016462,000328:
Page 385 |
016464,000330: 37,2401 65345 ERTHRVSE DLOAD PDDL
016465,000331: 37,2402 37057 SCHZEROS # PD24 = (SIN -COS 0)(OMEG/MS)
016466,000332: 37,2403 02403 LATITUDE
016467,000333: 37,2404 57546 COS DCOMP
016468,000334: 37,2405 73525 PDDL SIN
016469,000335: 37,2406 02403 LATITUDE
016470,000336: 37,2407 74266 VDEF VXSC
016471,000337: 37,2410 36001 OMEG/MS
016472,000338: 37,2411 02405 STORE ERVECTOR
016473,000339: 37,2412 77634 RTB
016474,000340: 37,2413 21574 LOADTIME
016475,000341: 37,2414 26433 STOVL TMARK
016476,000342: 37,2415 37057 SCHZEROS
016477,000343: 37,2416 02564 STORE ERCOMP
016478,000344: 37,2417 77616 RVQ
016479,000345:
016480,000346: 37,2420 47020 EARTHR ITA RTB
016481,000347: 37,2421 00051 S2
016482,000348: 37,2422 21574 LOADTIME
016483,000349: 37,2423 02431 STORE TEMPTIME
016484,000350: 37,2424 51025 DSU BPL
016485,000351: 37,2425 02433 TMARK
016486,000352: 37,2426 76431 ERTHR
016487,000353: 37,2427 77624 CALL
016488,000354: 37,2430 76275 OVERFFIX
016489,000355: 37,2431 74261 ERTHR SL VXSC
016490,000356: 37,2432 20212 9D
016491,000357: 37,2433 02405 ERVECTOR
016492,000358: 37,2434 53321 MXV VAD
016493,000359: 37,2435 02643 XSM
016494,000360: 37,2436 02564 ERCOMP
016495,000361: 37,2437 16564 STODL ERCOMP
016496,000362: 37,2440 02431 TEMPTIME
016497,000363: 37,2441 02433 STORE TMARK
016498,000364: 37,2442 47170 AXT,1 RTB
016499,000365: 37,2443 02563 ECADR ERCOMP
016500,000366: 37,2444 21706 PULSEIMU
016501,000367: 37,2445 77650 GOTO
016502,000368: 37,2446 00051 S2
016503,000369:
016504,000370: 37,2447 00006 EARTHR* EXTEND
016505,000371: 37,2450 23420 QXCH QPLACES
016506,000372: 37,2451 06042 TC INTPRET
016507,000373: 37,2452 77624 CALL
016508,000374: 37,2453 76420 EARTHR
016509,000375: 37,2454 77776 EXIT
016510,000376: 37,2455 02315 TC IMUSLLLG
016511,000377: 37,2456 01420 TC QPLACES
016512,000378:
016513,000379: 37,2457 00006 SHOW EXTEND
016514,000380:
Page 386 |
016516,000382: 37,2460 23417 QXCH QPLACE
016517,000383: 37,2461 31416 SHOW1 CA POSITON
016518,000384: 37,2462 55051 TS DSPTEM2 +2
016519,000385: 37,2463 32472 CA VB06N98
016520,000386: 37,2464 04616 TC BANKCALL
016521,000387: 37,2465 20477 CADR GOFLASH
016522,000388: 37,2466 02270 TC ENDTEST1 # V 34
016523,000389: 37,2467 01417 TC QPLACE # V33
016524,000390: 37,2470 12461 TCF SHOW1
016525,000391:
016526,000392: 37,2471 07626 3990DEC DEC 3990 B-14
016527,000393: 37,2472 01542 VB06N98 VN 0698
016528,000394: 37,2473 01451 VN0641 VN 0641
016529,000395: 37,2474 4361 DEC17 = ND1
016530,000396: 37,2474 00072 DEC58 DEC 58 B-14
016531,000397: 37,2475 02737 OGCPL ECADR OGC
016532,000398: 37,2476 4777 1SECX = 1SEC
016533,000399: 37,2476 01664 XNBADR GENADR XNB
016534,000400: 37,2477 01642 XSMADR GENADR XSM
016535,000401: 4102 BLOCK 2
016536,000402: 4102 COUNT* $$/P07
016537,000403: 4102 00004 FINETIME INHINT # RETURNS WITH INTERRUPT INHIBITED
016538,000404: 4103 00006 EXTEND
016539,000405: 4104 00004 READ LOSCALAR
016540,000406: 4105 54001 TS L
016541,000407: 4106 00006 EXTEND
016542,000408: 4107 06004 RXOR LOSCALAR
016543,000409: 4110 00006 EXTEND
016544,000410: 4111 14115 BZF +4
016545,000411: 4112 00006 EXTEND
016546,000412: 4113 00004 READ LOSCALAR
016547,000413: 4114 54001 TS L
016548,000414: 4115 44733 +4 CS POSMAX
016549,000415: 4116 60001 AD L
016550,000416: 4117 00006 EXTEND
016551,000417: 4120 14103 BZF FINETIME +1
016552,000418: 4121 00006 EXTEND
016553,000419: 4122 00003 READ HISCALAR
016554,000420: 4123 00002 TC Q
016555,000421:
End of include-file IMU_PERFORMANCE_TESTS_2.agc. Parent file is MAIN.agc