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