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