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. |
017206,000002: ## Copyright: Public domain.
017207,000003: ## Filename: IMU_PERFORMANCE_TESTS_4.agc
017208,000004: ## Purpose: A section of Luminary revision 210.
017209,000005: ## It is part of the source code for the Lunar Module's (LM)
017210,000006: ## Apollo Guidance Computer (AGC) for Apollo 15-17.
017211,000007: ## This file is intended to be a faithful transcription, except
017212,000008: ## that the code format has been changed to conform to the
017213,000009: ## requirements of the yaYUL assembler rather than the
017214,000010: ## original YUL assembler.
017215,000011: ## Reference: pp. 394-401
017216,000012: ## Assembler: yaYUL
017217,000013: ## Contact: Ron Burkey <info@sandroid.org>.
017218,000014: ## Website: www.ibiblio.org/apollo/index.html
017219,000015: ## Mod history: 2016-11-17 JL Created from Luminary131 version.
017220,000016: ## 2016-11-26 HG Transcribed
017221,000017: ## 2016-12-23 RSB Proofed comment text with octopus/ProoferComments
017222,000018: ## and fixed all errors found.
017223,000019: ## 2017-03-07 RSB Comment-text error-fixes noted in proofing Luminary 116.
017224,000020:
![]() |
Page 394 |
017226,000022: # PROGRAM- IMU PERFORMANCE TESTS 4
017227,000023: # DATE- NOV 15, 1966
017228,000024: # BY- GEORGE SCHMIDT IL7-146 EXT 1126
017229,000025: # MOD NO-ZERO
017230,000026:
017231,000027:
017232,000028: # FUNCTIONAL DESCRIPTION
017233,000029:
017234,000030: # THIS SECTION CONSISTS OF THE FILTER FOR THE GYRO DRIFT TESTS. NO COMPASS
017235,000031: # IS DONE IN LEM. FOR A DESCRIPTION OF THE FILTER SEE E-1973. THIS
017236,000032: # SECTION IS ENTERED FROM IMU 2. IT RETURNS THERE AT END OF TEST.
017237,000033:
017238,000034: # EARTHR,OGC ZERO,ERTHRVSE
017239,000035:
017240,000036: # NORMAL EXIT
017241,000037:
017242,000038: # LENGTHOT GOES TO ZERO-RETURN TO IMU PERF TESTS 2 CONTROL
017243,000039:
017244,000040: # ALARMS
017245,000041:
017246,000042: # 1600 OVERFLOW IN DRIFT TEST
017247,000043: # 1601 BAD IMU MODING IN ANY ROUTINE THAT USES IMUSTALL
017248,000044: # OUTPUT
017249,000045:
017250,000046: # FLASHING DISPLAY OF RESULTS-CONTROLLED IN IMU PERF TESTS 2
017251,000047:
017252,000048: # DEBRIS
017253,000049:
017254,000050: # ALL CENTRALS-ALL OF EBANK XSM
017255,000051:
![]() |
Page 395 |
017257,000053: 33,2113 BANK 33
017258,000054: 37,2000 SETLOC IMU4
017259,000055: 37,2000 BANK
017260,000056: 37,2500 COUNT* $$/P07
017261,000057:
017262,000058: 37,2500 E5,1642 EBANK= XSM
017263,000059:
017264,000060:
017265,000061: 37,2500 00004 ESTIMS INHINT
017266,000062: 37,2501 31572 CAE 1SECXT
017267,000063: 37,2502 05175 TC TWIDDLE
017268,000064: 37,2503 E5,1642 EBANK= XSM
017269,000065: 37,2503 02536 ADRES ALLOOP
017270,000066: 37,2504 34746 CAF ZERO # ZERO THE PIPAS
017271,000067: 37,2505 54037 TS PIPAX
017272,000068: 37,2506 54040 TS PIPAY
017273,000069: 37,2507 54041 TS PIPAZ
017274,000070: 37,2510 00003 RELINT
017275,000071: 37,2511 33075 CA 77DECML
017276,000072: 37,2512 55571 TS ZERONDX
017277,000073: 37,2513 33076 CA ALXXXZ
017278,000074: 37,2514 02367 TC ZEROING
017279,000075: 37,2515 06060 TC INTPRET
017280,000076: 37,2516 77735 SLOAD
017281,000077: 37,2517 37057 SCHZEROS
017282,000078: 37,2520 25477 STOVL GCOMPSW -1
017283,000079: 37,2521 37070 INTVAL +2
017284,000080: 37,2522 26445 STOVL ALX1S
017285,000081: 37,2523 37057 SCHZEROS
017286,000082: 37,2524 00325 STORE DELVX
017287,000083: 37,2525 01472 STORE GCOMP
017288,000084: 37,2526 77735 SLOAD
017289,000085: 37,2527 02441 TORQNDX
017290,000086: 37,2530 50076 DCOMP BMN
017291,000087: 37,2531 76534 VERTSKIP
017292,000088: 37,2532 77624 CALL
017293,000089: 37,2533 76401 ERTHRVSE
017294,000090: 37,2534 77776 VERTSKIP EXIT
017295,000091: 37,2535 03035 TC SLEEPIE +1
017296,000092:
![]() |
Page 396 |
017298,000094: 37,2536 31576 ALLOOP CA OVFLOWCK
017299,000095: 37,2537 00006 EXTEND
017300,000096: 37,2540 12542 BZF +2
017301,000097: 37,2541 05263 TC TASKOVER
017302,000098: 37,2542 11530 CCS ALTIM
017303,000099: 37,2543 30000 CA A # SHOULD NEVER HIT THIS LOCATION
017304,000100: 37,2544 55531 TS ALTIMS
017305,000101: 37,2545 40000 CS A
017306,000102: 37,2546 55530 TS ALTIM
017307,000103: 37,2547 44744 CS ONE
017308,000104: 37,2550 61562 AD GEOCOMPS
017309,000105: 37,2551 00006 EXTEND
017310,000106: 37,2552 12556 BZF +4
017311,000107: 37,2553 31412 CA LENGTHOT
017312,000108: 37,2554 00006 EXTEND
017313,000109: 37,2555 62562 BZMF +5
017314,000110: 37,2556 31572 CAE 1SECXT
017315,000111: 37,2557 05175 TC TWIDDLE
017316,000112: 37,2560 E5,1642 EBANK= XSM
017317,000113: 37,2560 02536 ADRES ALLOOP
017318,000114: 37,2561 34746 CAF ZERO
017319,000115: 37,2562 56037 XCH PIPAX
017320,000116: 37,2563 54324 TS DELVX
017321,000117: 37,2564 34746 CAF ZERO
017322,000118: 37,2565 56040 XCH PIPAY
017323,000119: 37,2566 54326 TS DELVY
017324,000120: 37,2567 34746 CAF ZERO
017325,000121: 37,2570 56041 XCH PIPAZ
017326,000122: 37,2571 54330 TS DELVZ
017327,000123: 37,2572 34727 SPECSTS CAF PRIO20
017328,000124: 37,2573 05076 TC FINDVAC
017329,000125: 37,2574 E5,1642 EBANK= XSM
017330,000126: 37,2574 02577 76065 2CADR ALFLT # START THE JOB
017331,000127: 37,2576 05263 TC TASKOVER
017332,000128:
![]() |
Page 397 |
017334,000130: 37,2577 11562 ALFLT CCS GEOCOMPS
017335,000131: 37,2600 02602 TC +2
017336,000132: 37,2601 02604 TC NORMLOP
017337,000133: 37,2602 04607 TC BANKCALL
017338,000134: 37,2603 15333 CADR 1/PIPA
017339,000135: 37,2604 06060 NORMLOP TC INTPRET
017340,000136: 37,2605 77745 DLOAD
017341,000137: 37,2606 37066 INTVAL
017342,000138: 37,2607 24051 STOVL S1
017343,000139: 37,2610 00325 DELVX
017344,000140: 37,2611 76505 VXM VSL1
017345,000141: 37,2612 02643 XSM
017346,000142: 37,2613 57545 DLOAD DCOMP
017347,000143: 37,2614 00160 MPAC +3
017348,000144: 37,2615 16523 STODL DPIPAY
017349,000145: 37,2616 00162 MPAC +5
017350,000146: 37,2617 02527 STORE DPIPAZ
017351,000147:
017352,000148: 37,2620 76001 SETPD AXT,1
017353,000149: 37,2621 00001 0
017354,000150: 37,2622 00010 8D
017355,000151: 37,2623 57535 SLOAD DCOMP
017356,000152: 37,2624 02563 GEOCOMPS
017357,000153: 37,2625 77640 BMN
017358,000154: 37,2626 76772 PERFERAS
017359,000155: 37,2627 50135 ALCGKK SLOAD BMN
017360,000156: 37,2630 02532 ALTIMS
017361,000157: 37,2631 76644 ALFLT3
017362,000158: 37,2632 72174 ALKCG AXT,2 LXA,1 # LOADS SLOPES AND TIME CONSTANTS AT RQST
017363,000159: 37,2633 00014 12D
017364,000160: 37,2634 02444 ALX1S
017365,000161: 37,2635 62143 ALKCG2 DLOAD* INCR,1
017366,000162: 37,2636 02243 ALFDK +144D,1
017367,000163: 37,2637 77775 DEC -2 B-14
017368,000164: 37,2640 12545 STORE ALDK +10D,2
017369,000165: 37,2641 66104 TIX,2 SXA,1
017370,000166: 37,2642 76635 ALKCG2
017371,000167: 37,2643 02444 ALX1S
017372,000168:
017373,000169: 37,2644 77770 ALFLT3 AXT,1
017374,000170: 37,2645 00010 8D
017375,000171: 37,2646 41343 DELMLP DLOAD* DMP
017376,000172: 37,2647 02533 DPIPAY +8D,1
017377,000173: 37,2650 37100 PIPASC
017378,000174: 37,2651 43661 SLR BDSU*
017379,000175: 37,2652 21212 9D
017380,000176: 37,2653 02501 INTY +8D,1
017381,000177: 37,2654 06501 STORE INTY +8D,1
017382,000178: 37,2655 40725 PDDL DMP*
017383,000179: 37,2656 37102 VELSC
017384,000180:
![]() |
Page 398 |
017386,000182: 37,2657 02521 VLAUN +8D,1
017387,000183: 37,2660 77732 SL2R
017388,000184: 37,2661 45425 DSU STADR
017389,000185: 37,2662 71216 STORE DELM +8D,1
017390,000186: 37,2663 06563 STORE DELM +10D,1
017391,000187: 37,2664 77100 TIX,1 AXT,2
017392,000188: 37,2665 76646 DELMLP
017393,000189: 37,2666 00004 4
017394,000190: 37,2667 56743 ALILP DLOAD* DMPR*
017395,000191: 37,2670 75324 ALK +4,2
017396,000192: 37,2671 75240 ALDK +4,2
017397,000193: 37,2672 12453 STORE ALK +4,2
017398,000194: 37,2673 77104 TIX,2 AXT,2
017399,000195: 37,2674 76667 ALILP
017400,000196: 37,2675 00010 8D
017401,000197: 37,2676 66140 ALKLP LXC,1 SXA,1
017402,000198: 37,2677 02445 CMPX1
017403,000199: 37,2700 02445 CMPX1
017404,000200: 37,2701 56743 DLOAD* DMPR*
017405,000201: 37,2702 02450 ALK +1,1
017406,000202: 37,2703 75216 DELM +8D,2
017407,000203: 37,2704 77613 DAD*
017408,000204: 37,2705 75276 INTY +8D,2
017409,000205: 37,2706 12501 STORE INTY +8D,2
017410,000206: 37,2707 42743 DLOAD* DAD*
017411,000207: 37,2710 75314 ALK +12D,2
017412,000208: 37,2711 75230 ALDK +12D,2
017413,000209: 37,2712 12463 STORE ALK +12D,2
017414,000210: 37,2713 42673 DMPR* DAD*
017415,000211: 37,2714 75216 DELM +8D,2
017416,000212: 37,2715 75266 INTY +16D,2
017417,000213: 37,2716 12511 STORE INTY +16D,2
017418,000214: 37,2717 40743 DLOAD* DMP*
017419,000215: 37,2720 37105 ALSK +1,1
017420,000216: 37,2721 75216 DELM +8D,2
017421,000217: 37,2722 42772 SL1R DAD*
017422,000218: 37,2723 75256 VLAUN +8D,2
017423,000219: 37,2724 12521 STORE VLAUN +8D,2
017424,000220: 37,2725 76104 TIX,2 AXT,1
017425,000221: 37,2726 76676 ALKLP
017426,000222: 37,2727 00010 8D
017427,000223:
017428,000224:
017429,000225: 37,2730 64743 LOOSE DLOAD* PDDL*
017430,000226: 37,2731 02523 ACCWD +8D,1
017431,000227: 37,2732 02521 VLAUN +8D,1
017432,000228: 37,2733 55523 PDDL* VDEF
017433,000229: 37,2734 02531 POSNV +8D,1
017434,000230: 37,2735 76521 MXV VSL1
017435,000231: 37,2736 02001 TRANSM1
![]() |
Page 399 |
017437,000233: 37,2737 77745 DLOAD
017438,000234: 37,2740 00155 MPAC
017439,000235: 37,2741 06531 STORE POSNV +8D,1
017440,000236: 37,2742 77745 DLOAD
017441,000237: 37,2743 00160 MPAC +3
017442,000238: 37,2744 06521 STORE VLAUN +8D,1
017443,000239: 37,2745 77745 DLOAD
017444,000240: 37,2746 00162 MPAC +5
017445,000241: 37,2747 06523 STORE ACCWD +8D,1
017446,000242: 37,2750 77700 TIX,1
017447,000243: 37,2751 76730 LOOSE
017448,000244:
017449,000245:
017450,000246: 37,2752 76174 AXT,2 AXT,1 # EVALUATE SINES AND COSINES
017451,000247: 37,2753 00006 6
017452,000248: 37,2754 00002 2
017453,000249: 37,2755 57343 BOOP DLOAD* DMPR
017454,000250: 37,2756 02503 ANGX +2,1
017455,000251: 37,2757 37110 GEORGEJ
017456,000252: 37,2760 77722 SR2R
017457,000253: 37,2761 73406 PUSH SIN
017458,000254: 37,2762 56072 SL3R XAD,1
017459,000255: 37,2763 00046 X1
017460,000256: 37,2764 10021 STORE 16D,2
017461,000257: 37,2765 77745 DLOAD
017462,000258: 37,2766 77746 COS
017463,000259: 37,2767 10027 STORE 22D,2 # COSINES
017464,000260: 37,2770 77704 TIX,2
017465,000261: 37,2771 76755 BOOP
017466,000262:
017467,000263: 37,2772 77776 PERFERAS EXIT
017468,000264: 37,2773 35007 CA EBANK7
017469,000265: 37,2774 54003 TS EBANK
017470,000266: 37,2775 E7,1400 EBANK= ATIGINC
017471,000267: 37,2775 01400 TC ATIGINC # GOTO ERASABLE TO CALCULATE ONLY TO RETN
017472,000268:
017473,000269: # CAUTION
017474,000270:
017475,000271: # THE ERASABLE PROGRAM THAT DOES THE CALCULATIONS MUST BE LOADED
017476,000272: # BEFORE ANY ATTEMPT IS MADE TO RUN THE IMU PERFORMANCE TEST
017477,000273:
017478,000274: 37,2776 E5,1400 EBANK= AZIMUTH
017479,000275: 37,2776 11412 CCS LENGTHOT
017480,000276: 37,2777 03034 TC SLEEPIE
017481,000277: 37,3000 11440 CCS TORQNDX
017482,000278: 37,3001 13003 TCF +2
017483,000279: 37,3002 03005 TC SETUPER1
017484,000280: 37,3003 30032 CA CDUX
017485,000281: 37,3004 55414 TS LOSVEC +1 # FOR TROUBLESHOOTING VD POSNS 2$4
017486,000282:
![]() |
Page 400 |
017488,000284: 37,3005 06060 SETUPER1 TC INTPRET
017489,000285: 37,3006 65345 DLOAD PDDL # ANGLES FROM DRIFT TEST ONLY
017490,000286: 37,3007 02473 ANGZ
017491,000287: 37,3010 02477 ANGY
017492,000288: 37,3011 55525 PDDL VDEF
017493,000289: 37,3012 02501 ANGX
017494,000290: 37,3013 74276 VCOMP VXSC
017495,000291: 37,3014 37110 GEORGEJ
017496,000292: 37,3015 74521 MXV VSR1
017497,000293: 37,3016 02643 XSM
017498,000294: 37,3017 02740 STORE OGC
017499,000295: 37,3020 77776 EXIT
017500,000296:
017501,000297:
017502,000298: 37,3021 32475 CA OGCPL
017503,000299: 37,3022 04607 TC BANKCALL
017504,000300: 37,3023 17310 CADR IMUPULSE
017505,000301: 37,3024 02315 TC IMUSLLLG
017506,000302: 37,3025 11440 GEOSTRT4 CCS TORQNDX # ONLY POSITIVE IF IN VERTICAL DRIFT TEST
017507,000303: 37,3026 02263 TC VALMIS
017508,000304: 37,3027 06060 TC INTPRET
017509,000305: 37,3030 77624 CALL
017510,000306: 37,3031 76401 ERTHRVSE
017511,000307: 37,3032 77776 EXIT
017512,000308: 37,3033 02117 TC TORQUE
017513,000309:
017514,000310:
017515,000311: 37,3034 55412 SLEEPIE TS LENGTHOT # TEST NOT OVER-DECREMENT LENGTHOT
017516,000312: 37,3035 11440 CCS TORQNDX # ARE WE DOING VERTDRIFT
017517,000313: 37,3036 02447 TC EARTHR*
017518,000314: 37,3037 05146 TC ENDOFJOB
017519,000315:
017520,000316:
017521,000317: 37,3040 35005 SOMEERRR CA EBANK5
017522,000318: 37,3041 54003 TS EBANK
017523,000319: 37,3042 34744 CA ONE
017524,000320: 37,3043 55576 TS OVFLOWCK # STOP ALLOOP FROM CALLING ITSELF
017525,000321: 37,3044 05571 TC ALARM
017526,000322: 37,3045 01600 OCT 1600
017527,000323: 37,3046 02270 TC ENDTEST1
017528,000324: 37,3047 33054 SOMERR2 CAF OCT1601
017529,000325: 37,3050 05740 TC VARALARM
017530,000326: 37,3051 05520 TC DOWNFLAG
017531,000327: 37,3052 00007 ADRES IMUSE
017532,000328: 37,3053 05146 TC ENDOFJOB
017533,000329:
017534,000330: 37,3054 01601 OCT1601 OCT 01601
017535,000331: 37,3055 06200 DEC585 OCT 06200 # 3200 B+14 ORDER IS IMPORTANT
017536,000332: 37,3056 00000 00000 SCHZEROS 2DEC .00000000
017537,000333:
![]() |
Page 401 |
017539,000335: 37,3060 00000 00000 2DEC .00000000
017540,000336: 37,3062 00000 OCT 00000
017541,000337: 37,3063 00000 ONEDPP OCT 00000 # ORDER IS IMPORTANT
017542,000338: 37,3064 00001 OCT 00001
017543,000339:
017544,000340: 37,3065 00004 INTVAL OCT 4
017545,000341: 37,3066 00002 OCT 2
017546,000342: 37,3067 00220 DEC 144 B-14
017547,000343: 37,3070 77776 DEC -1 B-14
017548,000344: 37,3071 35730 00035 SOUPLY 2DEC .93505870 # INITIAL GAINS FOR PIP OUTPUTS
017549,000345: 37,3073 10317 17550 2DEC .26266423 # INITIAL GAINS/4 FOR ERECTION ANGLES
017550,000346:
017551,000347: 37,3075 00115 77DECML DEC 77 B-14
017552,000348: 37,3076 01443 ALXXXZ GENADR ALX1S -1
017553,000349: 37,3077 04133 02265 PIPASC 2DEC .13055869
017554,000350: 37,3101 57223 66451 VELSC 2DEC -.52223476 # 512/980.402
017555,000351: 37,3103 05427 12577 ALSK 2DEC .17329931 # SSWAY VEL GAIN X 980.402/4096
017556,000352: 37,3105 77567 44202 2DEC -.00835370 # SSWAY ACCEL GAIN X 980.402/4096
017557,000353:
017558,000354:
017559,000355: 37,3107 24276 14066 GEORGEJ 2DEC .63661977
017560,000356: 37,3111 23073 11773 GEORGEK 2DEC .59737013
End of include-file IMU_PERFORMANCE_TESTS_4.agc. Parent file is MAIN.agc