Source Code
These source-code files derive from a printout of Luminary 210 (Apollo 15-17
Lunar Module guidance computer program), from the personal library of
original AGC developer Don Eyles, digitally photographed at archive.org,
financially sponsored by Jim Lawton, and transcribed to source code by a
team of volunteers. This colorized, syntax-highlighted form was created
by assembling that transcribed source code. Note that the full page images
are available on the
Virtual AGC project page at archive.org, while reduced-size images
are presented at the VirtualAGC project website. Report or fix any
transcription errors at
the Virtual AGC project code repository. Notations on the program listing read, in part: GAP: ASSEMBLE REVISION 210 OF AGC PROGRAM LUMINARY BY NASA 2021112-161 17:11 MAR. 19,1971Note that the date is the date of the printout, not the date of the program revision. |
016795,000002: ## Copyright: Public domain.
016796,000003: ## Filename: IMU_PERFORMANCE_TESTS_2.agc
016797,000004: ## Purpose: A section of Luminary revision 210.
016798,000005: ## It is part of the source code for the Lunar Module's (LM)
016799,000006: ## Apollo Guidance Computer (AGC) for Apollo 15-17.
016800,000007: ## This file is intended to be a faithful transcription, except
016801,000008: ## that the code format has been changed to conform to the
016802,000009: ## requirements of the yaYUL assembler rather than the
016803,000010: ## original YUL assembler.
016804,000011: ## Reference: pp. 385-393
016805,000012: ## Assembler: yaYUL
016806,000013: ## Contact: Ron Burkey <info@sandroid.org>.
016807,000014: ## Website: www.ibiblio.org/apollo/index.html
016808,000015: ## Mod history: 2016-11-17 JL Created from Luminary131 version.
016809,000016: ## 2016-11-26 HG Transcribed
016810,000017: ## 2016-12-23 RSB Proofed comment text with octopus/ProoferComments
016811,000018: ## and fixed all errors found.
016812,000019:
Page 385 |
016814,000021: # NAME- IMU PERFORMANCE TESTS 2
016815,000022:
016816,000023: # DATE- MARCH 20, 1967
016817,000024:
016818,000025: # BY- SYSTEM TEST GROUP 864-6900 EXT. 1274
016819,000026:
016820,000027: # MODNO.- ZERO
016821,000028:
016822,000029: # FUNCTIONAL DESCRIPTION
016823,000030:
016824,000031: # POSITIONING ROUTINES FOR THE IMU PERFORMANCE TESTS AS WELL AS SOME OF
016825,000032: # THE TESTS THEMSELVES. FOR A DESCRIPTION OF THESE SUBROUTINES AND THE
016826,000033: # OPERATING PROCEDURES (TYPICALLY) SEE STG MEMO 685. THEORETICAL REF.E-1973
016827,000034:
016828,000035: 33,2113 BANK 33
016829,000036: 37,2000 SETLOC IMU2
016830,000037: 37,2000 BANK
016831,000038: 37,2002 E5,1416 EBANK= POSITON
016832,000039: 37,2002 COUNT* $$/P07
016833,000040:
016834,000041: 37,2002 05313 REDO TC NEWMODEX
016835,000042: 37,2003 00007 MM 07 B-14
016836,000043:
016837,000044: 37,2004 02325 GEOIMUTT TC IMUZERR
016838,000045: 37,2005 34746 IMUBACK CA ZERO
016839,000046: 37,2006 55414 TS NDXCTR
016840,000047: 37,2007 55440 TS TORQNDX
016841,000048: 37,2010 55441 TS TORQNDX +1
016842,000049: 37,2011 55576 TS OVFLOWCK
016843,000050: 37,2012 34352 NBPOSPL CA DEC17
016844,000051: 37,2013 55571 TS ZERONDX
016845,000052: 37,2014 32476 CA XNBADR
016846,000053: 37,2015 02367 TC ZEROING
016847,000054: 37,2016 34727 CA HALF
016848,000055: 37,2017 55664 TS XNB
016849,000056: 37,2020 06060 GUESS TC INTPRET
016850,000057: 37,2021 62545 LATAZCHK DLOAD SL2
016851,000058: 37,2022 02403 LATITUDE
016852,000059: 37,2023 15046 STODL DSPTEM1 +1
016853,000060: 37,2024 02401 AZIMUTH
016854,000061: 37,2025 77434 RTB EXIT
016855,000062: 37,2026 21624 1STO2S
016856,000063: 37,2027 56154 XCH MPAC
016857,000064: 37,2030 55044 TS DSPTEM1
016858,000065: 37,2031 32473 CAF VN0641
016859,000066: 37,2032 04607 TC BANKCALL
016860,000067: 37,2033 20471 CADR GOFLASH
016861,000068: 37,2034 02270 TC ENDTEST1
016862,000069: 37,2035 02037 TC +2
016863,000070: 37,2036 02031 TC -5
016864,000071:
Page 386 |
016866,000073: 37,2037 06060 TC INTPRET
016867,000074: 37,2040 47135 SLOAD RTB
016868,000075: 37,2041 01045 DSPTEM1
016869,000076: 37,2042 21606 CDULOGIC
016870,000077: 37,2043 02401 STORE AZIMUTH
016871,000078: 37,2044 60535 SLOAD SR2
016872,000079: 37,2045 01046 DSPTEM1 +1
016873,000080: 37,2046 02403 STORE LATITUDE
016874,000081: 37,2047 57546 COS DCOMP
016875,000082: 37,2050 77752 SL1
016876,000083: 37,2051 16437 STODL WANGI
016877,000084: 37,2052 02403 LATITUDE
016878,000085: 37,2053 72556 SIN SL1
016879,000086: 37,2054 16435 STODL WANGO
016880,000087: 37,2055 02401 AZIMUTH
016881,000088: 37,2056 73406 PUSH SIN
016882,000089: 37,2057 02675 STORE YNB +2
016883,000090: 37,2060 16705 STODL ZNB +4
016884,000091: 37,2061 77746 COS
016885,000092: 37,2062 02677 STORE YNB +4
016886,000093: 37,2063 77676 DCOMP
016887,000094: 37,2064 36703 POSGMBL STCALL ZNB +2
016888,000095: 37,2065 47336 CALCGA
016889,000096: 37,2066 77776 EXIT
016890,000097: 37,2067 04607 TC BANKCALL
016891,000098: 37,2070 16765 CADR IMUCOARS
016892,000099: 37,2071 34727 CAF BIT14 # IF BIT14 SET, GIMBAL LOCK
016893,000100: 37,2072 70077 MASK FLAGWRD3
016894,000101: 37,2073 00006 EXTEND
016895,000102: 37,2074 12076 BZF +2
016896,000103: 37,2075 25414 INCR NDXCTR # +1 IF IN GIMBAL LOCK,OTHERWISE 0
016897,000104: 37,2076 05520 TC DOWNFLAG
016898,000105: 37,2077 00056 ADRES GLOKFAIL # RESET GIMBAL LOCK FLAG
016899,000106: 37,2100 02315 TC IMUSLLLG
016900,000107: 37,2101 11414 CCS NDXCTR # IF ONE GO AND DO A PIPA TEST ONLY
016901,000108: 37,2102 02126 TC PIPACHK # ALIGN AND MEASURE VERTICAL PIPA RATE
016902,000109: 37,2103 02320 TC FINIMUDD
016903,000110: 37,2104 00006 EXTEND
016904,000111: 37,2105 31575 DCA PERFDLAY
016905,000112: 37,2106 05301 TC LONGCALL # DELAY WHILE SUSPENSION STABILIZES
016906,000113: 37,2107 E5,1416 EBANK= POSITON
016907,000114: 37,2107 02113 76065 2CADR GOESTIMS
016908,000115:
016909,000116: 37,2111 32116 CA ESTICADR
016910,000117: 37,2112 05124 TC JOBSLEEP
016911,000118: 37,2113 32116 GOESTIMS CA ESTICADR
016912,000119: 37,2114 05130 TC JOBWAKE
016913,000120: 37,2115 05263 TC TASKOVER
016914,000121: 37,2116 76500 ESTICADR CADR ESTIMS
016915,000122: 37,2117 34746 TORQUE CA ZERO
016916,000123:
Page 387 |
016918,000125: 37,2120 55047 TS DSPTEM2
016919,000126: 37,2121 31504 CA DRIFTI
016920,000127: 37,2122 55050 TS DSPTEM2 +1
016921,000128: 37,2123 51416 INDEX POSITON
016922,000129: 37,2124 55420 TS SOUTHDR -1
016923,000130: 37,2125 02457 TC SHOW
016924,000131:
016925,000132: 37,2126 51414 PIPACHK INDEX NDXCTR # PIPA TEST
016926,000133: 37,2127 02130 TC +1
016927,000134: 37,2130 02447 TC EARTHR*
016928,000135: 37,2131 34352 CA DEC17 # ALLOW PIP COUNTER TO OVERFLOW 17 TIMES
016929,000136: 37,2132 55476 TS DATAPL +4 # IN THE ALLOTED TIME INTERVAL
016930,000137: 37,2133 32474 CA DEC58
016931,000138: 37,2134 55412 TS LENGTHOT
016932,000139: 37,2135 34744 CA ONE
016933,000140: 37,2136 55537 TS RESULTCT
016934,000141: 37,2137 34746 CA ZERO
016935,000142: 37,2140 51415 INDEX PIPINDEX
016936,000143: 37,2141 54037 TS PIPAX
016937,000144: 37,2142 55472 TS DATAPL
016938,000145: 37,2143 02332 TC CHECKG
016939,000146: 37,2144 00004 INHINT
016940,000147: 37,2145 34743 CAF TWO
016941,000148: 37,2146 05175 TC TWIDDLE
016942,000149: 37,2147 E5,1642 EBANK= XSM
016943,000150: 37,2147 02151 ADRES PIPATASK
016944,000151: 37,2150 05146 TC ENDOFJOB
016945,000152:
016946,000153:
016947,000154: 37,2151 00006 PIPATASK EXTEND
016948,000155: 37,2152 27412 DIM LENGTHOT
016949,000156: 37,2153 31412 CA LENGTHOT
016950,000157: 37,2154 00006 EXTEND
016951,000158: 37,2155 62161 BZMF STARTPIP
016952,000159: 37,2156 34733 CAF BIT10
016953,000160: 37,2157 05175 TC TWIDDLE
016954,000161: 37,2160 E5,1642 EBANK= XSM
016955,000162: 37,2160 02151 ADRES PIPATASK
016956,000163: 37,2161 34727 STARTPIP CAF PRIO20
016957,000164: 37,2162 05076 TC FINDVAC
016958,000165: 37,2163 E5,1642 EBANK= XSM
016959,000166: 37,2163 02166 76065 2CADR PIPJOBB
016960,000167: 37,2165 05263 TC TASKOVER
016961,000168:
016962,000169: 37,2166 51414 PIPJOBB INDEX NDXCTR
016963,000170: 37,2167 02170 TC +1
016964,000171: 37,2170 02447 TC EARTHR*
016965,000172: 37,2171 31412 CA LENGTHOT
Page 388 |
016967,000174: 37,2172 00006 EXTEND
016968,000175: 37,2173 62175 BZMF +2
016969,000176: 37,2174 05146 TC ENDOFJOB
016970,000177:
016971,000178: 37,2175 34747 CA FIVE
016972,000179: 37,2176 55537 TS RESULTCT
016973,000180: 37,2177 02332 TC CHECKG
016974,000181: 37,2200 11473 CCS DATAPL +1
016975,000182: 37,2201 02205 TC +4
016976,000183: 37,2202 05701 TC CCSHOLE
016977,000184: 37,2203 41476 CS DATAPL +4
016978,000185: 37,2204 55476 TS DATAPL +4
016979,000186: 37,2205 00006 EXTEND
016980,000187: 37,2206 41473 DCS DATAPL
016981,000188: 37,2207 21477 DAS DATAPL +4
016982,000189:
016983,000190: 37,2210 06060 TC INTPRET
016984,000191: 37,2211 45345 DLOAD DSU
016985,000192: 37,2212 02501 DATAPL +6
016986,000193: 37,2213 02475 DATAPL +2
016987,000194: 37,2214 45044 BPL CALL
016988,000195: 37,2215 76217 AINGOTN
016989,000196: 37,2216 76275 OVERFFIX
016990,000197: 37,2217 56325 AINGOTN PDDL DDV
016991,000198: 37,2220 02477 DATAPL +4
016992,000199: 37,2221 47075 DMPR RTB
016993,000200: 37,2222 37056 DEC585 # DEC585 HAS BEEN REDEFINED FOR LEM
016994,000201: 37,2223 21622 SGNAGREE
016995,000202: 37,2224 01050 STORE DSPTEM2
016996,000203: 37,2225 77776 EXIT
016997,000204: 37,2226 11414 CCS NDXCTR
016998,000205: 37,2227 02301 TC COAALIGN # TAKE PLATFORM OUT OF GIMBAL LOCK
016999,000206: 37,2230 02457 TC SHOW
017000,000207: 37,2231 32471 VERTDRFT CA 3990DEC # ABOUT 1 HOUR VERTICAL DRIFT TEST
017001,000208: 37,2232 55412 TS LENGTHOT
017002,000209: 37,2233 51416 INDEX POSITON
017003,000210: 37,2234 41417 CS SOUTHDR -2
017004,000211: 37,2235 55442 TS DRIFTT
017005,000212: 37,2236 11415 CCS PIPINDEX # OFFSET PLATFORM TO MISS PIP DEAD-ZONES
017006,000213: 37,2237 12245 TCF PON4 # Z UP IN POS 4
017007,000214: 37,2240 44740 PON2 CS BIT5 # X UP
017008,000215: 37,2241 27565 ADS ERCOMP +2
017009,000216: 37,2242 34740 CA BIT5
017010,000217: 37,2243 27567 ADS ERCOMP +4
017011,000218: 37,2244 12251 TCF PON
017012,000219: 37,2245 44740 PON4 CS BIT5
017013,000220: 37,2246 27565 ADS ERCOMP +2
017014,000221: 37,2247 34740 CA BIT5
017015,000222: 37,2250 27563 ADS ERCOMP
017016,000223: 37,2251 02447 PON TC EARTHR*
017017,000224:
Page 389 |
017019,000226: 37,2252 34746 CA ZERO # ALLOW ONLY SOUTH GYRO EARTH RATE COMPENS
017020,000227: 37,2253 55404 TS ERVECTOR
017021,000228: 37,2254 55405 TS ERVECTOR +1
017022,000229: 37,2255 34724 GUESS1 CAF POSMAX
017023,000230: 37,2256 55440 TS TORQNDX
017024,000231: 37,2257 55441 TS TORQNDX +1
017025,000232: 37,2260 30032 CA CDUX
017026,000233: 37,2261 55413 TS LOSVEC
017027,000234: 37,2262 02500 TC ESTIMS
017028,000235: 37,2263 31502 VALMIS CA DRIFTO
017029,000236: 37,2264 55050 TS DSPTEM2 +1
017030,000237: 37,2265 34746 CA ZERO
017031,000238: 37,2266 55047 TS DSPTEM2
017032,000239: 37,2267 02457 TC SHOW
017033,000240:
017034,000241: 37,2270 05520 ENDTEST1 TC DOWNFLAG
017035,000242: 37,2271 00007 ADRES IMUSE
017036,000243: 37,2272 44746 CS ZERO
017037,000244: 37,2273 05316 TC NEWMODEA
017038,000245: 37,2274 05474 TC ENDEXT
017039,000246:
Page 390 |
017041,000248: 37,2275 43215 OVERFFIX DAD DAD
017042,000249: 37,2276 06513 DPPOSMAX
017043,000250: 37,2277 37064 ONEDPP
017044,000251: 37,2300 77616 RVQ
017045,000252:
017046,000253: 37,2301 00006 COAALIGN EXTEND # COARSE ALIGN SUBROUTINE
017047,000254: 37,2302 23571 QXCH ZERONDX
017048,000255: 37,2303 34746 CA ZERO
017049,000256: 37,2304 54321 TS THETAD
017050,000257: 37,2305 54322 TS THETAD +1
017051,000258: 37,2306 54323 TS THETAD +2
017052,000259: 37,2307 04607 TC BANKCALL
017053,000260: 37,2310 16765 CADR IMUCOARS
017054,000261: 37,2311 04607 ALIGNCOA TC BANKCALL
017055,000262: 37,2312 17735 CADR IMUSTALL
017056,000263: 37,2313 03047 TC SOMERR2
017057,000264: 37,2314 01571 TC ZERONDX
017058,000265:
017059,000266:
017060,000267: 37,2315 00006 IMUSLLLG EXTEND
017061,000268: 37,2316 23571 QXCH ZERONDX
017062,000269: 37,2317 02311 TC ALIGNCOA
017063,000270:
017064,000271: 37,2320 00006 FINIMUDD EXTEND
017065,000272: 37,2321 23571 QXCH ZERONDX
017066,000273: 37,2322 04607 TC BANKCALL
017067,000274: 37,2323 17175 CADR IMUFINE
017068,000275: 37,2324 02311 TC ALIGNCOA
017069,000276:
017070,000277: 37,2325 00006 IMUZERR EXTEND
017071,000278: 37,2326 23571 QXCH ZERONDX
017072,000279: 37,2327 04607 TC BANKCALL
017073,000280: 37,2330 16701 CADR IMUZERO
017074,000281: 37,2331 02311 TC ALIGNCOA
017075,000282:
017076,000283:
017077,000284: 37,2332 00006 CHECKG EXTEND # PIP PULSE CATCHING ROUTINE
017078,000285: 37,2333 23417 QXCH QPLACE
017079,000286: 37,2334 02342 TC +6
017080,000287: 37,2335 00003 CHECKG1 RELINT
017081,000288: 37,2336 30067 CA NEWJOB
017082,000289: 37,2337 00006 EXTEND
017083,000290: 37,2340 62346 BZMF +6
017084,000291: 37,2341 05113 TC CHANG1
017085,000292: 37,2342 00004 INHINT
017086,000293: 37,2343 51415 INDEX PIPINDEX
017087,000294: 37,2344 40037 CS PIPAX
017088,000295: 37,2345 55571 TS ZERONDX
017089,000296: 37,2346 00004 INHINT
017090,000297:
Page 391 |
017092,000299: 37,2347 51415 INDEX PIPINDEX
017093,000300: 37,2350 30037 CA PIPAX
017094,000301: 37,2351 61571 AD ZERONDX
017095,000302: 37,2352 00006 EXTEND
017096,000303: 37,2353 12335 BZF CHECKG1
017097,000304: 37,2354 51415 INDEX PIPINDEX
017098,000305: 37,2355 30037 CA PIPAX
017099,000306: 37,2356 51537 INDEX RESULTCT
017100,000307: 37,2357 55472 TS DATAPL
017101,000308: 37,2360 04102 TC FINETIME
017102,000309: 37,2361 51537 INDEX RESULTCT
017103,000310: 37,2362 55473 TS DATAPL +1
017104,000311: 37,2363 51537 INDEX RESULTCT
017105,000312: 37,2364 23474 LXCH DATAPL +2
017106,000313: 37,2365 00003 RELINT
017107,000314: 37,2366 01417 ENDCHKG TC QPLACE
017108,000315:
017109,000316:
017110,000317: 37,2367 54001 ZEROING TS L
017111,000318: 37,2370 12372 TCF +2
017112,000319: 37,2371 55571 ZEROING1 TS ZERONDX
017113,000320: 37,2372 34746 CAF ZERO
017114,000321: 37,2373 50001 INDEX L
017115,000322: 37,2374 54000 TS 0
017116,000323: 37,2375 24001 INCR L
017117,000324: 37,2376 11571 CCS ZERONDX
017118,000325: 37,2377 12371 TCF ZEROING1
017119,000326: 37,2400 00002 TC Q
017120,000327:
Page 392 |
017122,000329: 37,2401 65345 ERTHRVSE DLOAD PDDL
017123,000330: 37,2402 37057 SCHZEROS # PD24 = (SIN -COS 0)(OMEG/MS)
017124,000331: 37,2403 02403 LATITUDE
017125,000332: 37,2404 57546 COS DCOMP
017126,000333: 37,2405 73525 PDDL SIN
017127,000334: 37,2406 02403 LATITUDE
017128,000335: 37,2407 74266 VDEF VXSC
017129,000336: 37,2410 36001 OMEG/MS
017130,000337: 37,2411 02405 STORE ERVECTOR
017131,000338: 37,2412 77634 RTB
017132,000339: 37,2413 21603 LOADTIME
017133,000340: 37,2414 26433 STOVL TMARK
017134,000341: 37,2415 37057 SCHZEROS
017135,000342: 37,2416 02564 STORE ERCOMP
017136,000343: 37,2417 77616 RVQ
017137,000344:
017138,000345: 37,2420 47020 EARTHR ITA RTB
017139,000346: 37,2421 00051 S2
017140,000347: 37,2422 21603 LOADTIME
017141,000348: 37,2423 02431 STORE TEMPTIME
017142,000349: 37,2424 51025 DSU BPL
017143,000350: 37,2425 02433 TMARK
017144,000351: 37,2426 76431 ERTHR
017145,000352: 37,2427 77624 CALL
017146,000353: 37,2430 76275 OVERFFIX
017147,000354: 37,2431 74261 ERTHR SL VXSC
017148,000355: 37,2432 20212 9D
017149,000356: 37,2433 02405 ERVECTOR
017150,000357: 37,2434 53321 MXV VAD
017151,000358: 37,2435 02643 XSM
017152,000359: 37,2436 02564 ERCOMP
017153,000360: 37,2437 16564 STODL ERCOMP
017154,000361: 37,2440 02431 TEMPTIME
017155,000362: 37,2441 02433 STORE TMARK
017156,000363: 37,2442 47170 AXT,1 RTB
017157,000364: 37,2443 02563 ECADR ERCOMP
017158,000365: 37,2444 21715 PULSEIMU
017159,000366: 37,2445 77650 GOTO
017160,000367: 37,2446 00051 S2
017161,000368:
017162,000369: 37,2447 00006 EARTHR* EXTEND
017163,000370: 37,2450 23420 QXCH QPLACES
017164,000371: 37,2451 06060 TC INTPRET
017165,000372: 37,2452 77624 CALL
017166,000373: 37,2453 76420 EARTHR
017167,000374: 37,2454 77776 EXIT
017168,000375: 37,2455 02315 TC IMUSLLLG
017169,000376: 37,2456 01420 TC QPLACES
017170,000377:
017171,000378: 37,2457 00006 SHOW EXTEND
017172,000379:
Page 393 |
017174,000381: 37,2460 23417 QXCH QPLACE
017175,000382: 37,2461 31416 SHOW1 CA POSITON
017176,000383: 37,2462 55051 TS DSPTEM2 +2
017177,000384: 37,2463 32472 CA VB06N98
017178,000385: 37,2464 04607 TC BANKCALL
017179,000386: 37,2465 20471 CADR GOFLASH
017180,000387: 37,2466 02270 TC ENDTEST1 # V 34
017181,000388: 37,2467 01417 TC QPLACE # V33
017182,000389: 37,2470 12461 TCF SHOW1
017183,000390:
017184,000391: 37,2471 07626 3990DEC DEC 3990 B-14
017185,000392: 37,2472 01542 VB06N98 VN 0698
017186,000393: 37,2473 01451 VN0641 VN 0641
017187,000394: 37,2474 4352 DEC17 = ND1
017188,000395: 37,2474 00072 DEC58 DEC 58 B-14
017189,000396: 37,2475 02737 OGCPL ECADR OGC
017190,000397: 37,2476 4770 1SECX = 1SEC
017191,000398: 37,2476 01664 XNBADR GENADR XNB
017192,000399: 37,2477 01642 XSMADR GENADR XSM
017193,000400: 4102 BLOCK 2
017194,000401: 4102 COUNT* $$/P07
017195,000402: 4102 00004 FINETIME INHINT # RETURNS WITH INTERRUPT INHIBITED
017196,000403: 4103 00006 EXTEND
017197,000404: 4104 00004 READ LOSCALAR
017198,000405: 4105 54001 TS L
017199,000406: 4106 00006 EXTEND
017200,000407: 4107 06004 RXOR LOSCALAR
017201,000408: 4110 00006 EXTEND
017202,000409: 4111 14115 BZF +4
017203,000410: 4112 00006 EXTEND
017204,000411: 4113 00004 READ LOSCALAR
017205,000412: 4114 54001 TS L
017206,000413: 4115 44724 +4 CS POSMAX
017207,000414: 4116 60001 AD L
017208,000415: 4117 00006 EXTEND
017209,000416: 4120 14103 BZF FINETIME +1
017210,000417: 4121 00006 EXTEND
017211,000418: 4122 00003 READ HISCALAR
017212,000419: 4123 00002 TC Q
017213,000420:
End of include-file IMU_PERFORMANCE_TESTS_2.agc. Parent file is MAIN.agc