Source Code
![]() |
This is an attempt to recreate Luminary 99 Rev 2, otherwise known as LUM99R2, from Luminary 99 Rev 1 and ephemeris data from Luminary 116. The differences are confined to the last 10-12 lines of the CONTROLLED CONSTANTS. Luminary 99 Rev 1 source-code was transcribed from a printout in the MIT Museum, while Luminary 116 source code was transcribed from a printout belonging to Don Eyles. AGC developer James Kernan, the "rope mother" for the Apollo 11 Lunar Module's AGC, explains as follows: "At the last minute, Dan Lickly, our chief engineer, appeared with ephemerides updates and it took two tries to get it right. The result was that we created Lum99 Revision 1 and Lum99 Revision 2." It is suspected that the former is what's in the MIT Museum, and the latter is what we are trying to recreate here. As for which revision actually flew in Apollo 11, all of the other available surviving evidence points to Rev 1 rather than to Rev 2, so we're just not sure! |
020474,000002: ## Copyright: Public domain.
020475,000003: ## Filename: S-BAND_ANTENNA_FOR_LM.agc
020476,000004: ## Purpose: Part of the source code for Luminary 1A build 099.
020477,000005: ## It is part of the source code for the Lunar Module's (LM)
020478,000006: ## Apollo Guidance Computer (AGC), for Apollo 11.
020479,000007: ## Assembler: yaYUL
020480,000008: ## Contact: Ron Burkey <info@sandroid.org>.
020481,000009: ## Website: www.ibiblio.org/apollo.
020482,000010: ## Pages: 486-489
020483,000011: ## Mod history: 2009-05-17 RSB Adapted from the corresponding
020484,000012: ## Luminary131 file, using page
020485,000013: ## images from Luminary 1A.
020486,000014: ## 2009-06-07 RSB Corrected a misprint.
020487,000015: ## 2016-12-14 RSB Proofed text comments with octopus/ProoferComments
020488,000016: ## and corrected the errors found.
020489,000017: ## 2017-03-03 RSB Snapshot of Luminary 99 Rev 1.
020490,000018:
![]() |
Page 486 |
020492,000020: # SUBROUTINE NAME: R05 - S-BAND ANTENNA FOR LM
020493,000021:
020494,000022: # MOD0 BY T. JAMES
020495,000023: # MOD1 BY P. SHAKIR
020496,000024:
020497,000025: # FUNCTIONAL DESCRIPTION
020498,000026:
020499,000027: # THE S-BAND ANTENNA ROUTINE, R05, COMPUTES AND DISPLAYS THE PITCH AND
020500,000028: # YAW ANTENNA GIMBAL ANGLES REQUIRED TO POINT THE LM STEERABLE ANTENNA
020501,000029: # TOWARD THE CENTER OF THE EARTH. THIS ROUTINE IS SELECTED BY THE ASTRO-
020502,000030: # NAUT VIA DSKY ENTRY DURING COASTING FLIGHT OR WHEN THE LM IS ON THE MOON
020503,000031: # SURFACE. THE EARTH OR MOON REFERENCE COORDINATE SYSTEM IS USED DEPENDING
020504,000032: # ON WHETHER THE LM IS ABOUT TO ENTER OR HAS ALREADY ENTERED THE MOON
020505,000033: # SPHERE OF INFLUENCE, RESPECTIVELY
020506,000034:
020507,000035: # TO CALL SUBROUTINE, ASTRONAUT KEYS IN V 64 E
020508,000036:
020509,000037: # SUBROUTINES CALLED -
020510,000038: # R02BOTH
020511,000039: # INTPRET
020512,000040: # LOADTIME
020513,000041: # LEMCONIC
020514,000042: # LUNPOS
020515,000043: # CDUTRIG
020516,000044: # *SMNB*
020517,000045: # BANKCALL
020518,000046: # B5OFF
020519,000047: # ENDOFJOB
020520,000048: # BLANKET
020521,000049:
020522,000050: # RETURNS WITH
020523,000051: # PITCH ANGLE IN PITCHANG REV. B0
020524,000052: # YAW ANGLE IN YAWANG REV. B0
020525,000053:
020526,000054: # ERASABLES USED
020527,000055: # PITCHANG
020528,000056: # YAWANG
020529,000057: # RLM
020530,000058: # VAC AREA
020531,000059:
020532,000060: 41,3731 BANK 41
020533,000061: 42,2000 SETLOC SBAND
020534,000062: 42,2000 BANK
020535,000063:
020536,000064: 42,3606 E7,1471 EBANK= WHOCARES
020537,000065: 42,3606 COUNT* $$/R05
020538,000066: 42,3606 04616 SBANDANT TC BANKCALL
![]() |
Page 487 |
020540,000068: 42,3607 11254 CADR R02BOTH # CHECK IF IMU IS ON AND ALIGNED
020541,000069: 42,3610 06037 TC INTPRET
020542,000070: 42,3611 47001 SETPD RTB
020543,000071: 42,3612 00001 0D
020544,000072: 42,3613 21573 LOADTIME # PICK UP CURRENT TIME
020545,000073: 42,3614 34041 STCALL TDEC1 # ADVANCE INTEGRATION TO TIME IN TDEC1
020546,000074: 42,3615 27100 LEMCONIC # USING CONIC INTEGRATION
020547,000075: 42,3616 46135 SLOAD BHIZ
020548,000076: 42,3617 00050 X2 # X2 =0 EARTH SPHERE, X2 =2 MOON SPHERE
020549,000077: 42,3620 65636 CONV4
020550,000078: 42,3621 77775 VLOAD
020551,000079: 42,3622 00001 RATT
020552,000080: 42,3623 16205 STODL RLM
020553,000081: 42,3624 00015 TAT
020554,000082: 42,3625 77624 CONV3 CALL
020555,000083: 42,3626 33664 LUNPOS # UNIT POSITION VECTOR FROM EARTH TO MOON
020556,000084: 42,3627 74375 VLOAD VXSC
020557,000085: 42,3630 02723 VMOON
020558,000086: 42,3631 24001 REMDIST # MEAN DISTANCE FROM EARTH TO MOON
020559,000087: 42,3632 53372 VSL1 VAD
020560,000088: 42,3633 02205 RLM
020561,000089: 42,3634 77650 GOTO
020562,000090: 42,3635 65640 CONV5
020563,000091: 42,3636 77775 CONV4 VLOAD
020564,000092: 42,3637 00001 RATT # UE = -UNIT(RATT) EARTH SPHERE
020565,000093: 42,3640 53401 CONV5 SETPD UNIT # UE = -UNIT((REM)(UEM) + RL) MOON SPHERE
020566,000094: 42,3641 00001 0D # SET PL POINTER TO 0
020567,000095: 42,3642 45076 VCOMP CALL
020568,000096: 42,3643 47537 CDUTRIG # COMPUTE SINES AND COSINES OF CDU ANGLES
020569,000097: 42,3644 76521 MXV VSL1 # TRANSFORM REF. COORDINATE SYSTEM TO
020570,000098: 42,3645 01734 REFSMMAT # STABLE MEMBER B-1 X B-1 X B+1 = B-1
020571,000099: 42,3646 71206 PUSH DLOAD # 8D
020572,000100: 42,3647 06522 HI6ZEROS
020573,000101: 42,3650 02201 STORE PITCHANG
020574,000102: 42,3651 26203 STOVL YAWANG # ZERO OUT ANGLES
020575,000103: 42,3652 77624 CALL
020576,000104: 42,3653 47671 *SMNB*
020577,000105: 42,3654 16205 STODL RLM # PRE-MULTIPLY RLM BY (NBSA) MATRIX(B0)
020578,000106: 42,3655 02207 RLM +2
020579,000107: 42,3656 45206 PUSH DSU
020580,000108: 42,3657 02205 RLM
020581,000109: 42,3660 77605 DMP
020582,000110: 42,3661 25771 1OVSQRT2
020583,000111: 42,3662 16207 STODL RLM +2
020584,000112: 42,3663 41215 DAD DMP
020585,000113: 42,3664 02205 RLM
020586,000114: 42,3665 25771 1OVSQRT2
020587,000115: 42,3666 26205 STOVL RLM # R B-1
020588,000116: 42,3667 02205 RLM
020589,000117: 42,3670 63256 UNIT PDVL
![]() |
Page 488 |
020591,000119: 42,3671 02205 RLM
020592,000120: 42,3672 72431 VPROJ VSL2 # PROJECTION OF R ONTO LM XZ PLANE
020593,000121: 42,3673 06516 HIUNITY
020594,000122: 42,3674 40045 BVSU BOV # CLEAR OVERFLOW INDICATOR IF ON
020595,000123: 42,3675 02205 RLM
020596,000124: 42,3676 65677 COVCNV
020597,000125: 42,3677 40056 COVCNV UNIT BOV # EXIT ON OVERFLOW
020598,000126: 42,3700 65745 SBANDEX
020599,000127: 42,3701 47206 PUSH VXV # URP VECTOR B-1
020600,000128: 42,3702 06514 HIUNITZ
020601,000129: 42,3703 57572 VSL1 VCOMP # UZ X URP = -(URP X UZ)
020602,000130: 42,3704 02205 STORE RLM # X VEC B-1
020603,000131: 42,3705 63241 DOT PDVL # SGN(X.UY) UNSCALED
020604,000132: 42,3706 06516 HIUNITY
020605,000133: 42,3707 02205 RLM
020606,000134: 42,3710 75246 ABVAL SIGN
020607,000135: 42,3711 77736 ASIN # ASIN((SGN(X.UY))ABV(X)) REV B0
020608,000136: 42,3712 26201 STOVL PITCHANG
020609,000137: 42,3713 00007 URP
020610,000138: 42,3714 51041 DOT BPL
020611,000139: 42,3715 06514 HIUNITZ
020612,000140: 42,3716 65723 NOADJUST # YES, -90 TO +90
020613,000141: 42,3717 45345 DLOAD DSU
020614,000142: 42,3720 06520 HIDPHALF
020615,000143: 42,3721 02201 PITCHANG
020616,000144: 42,3722 02201 STORE PITCHANG
020617,000145: 42,3723 47375 NOADJUST VLOAD VXV
020618,000146: 42,3724 00001 UR # Z = (UR X URP)
020619,000147: 42,3725 00007 URP
020620,000148: 42,3726 77772 VSL1
020621,000149: 42,3727 16205 STODL RLM # Z VEC B-1
020622,000150: 42,3730 02201 PITCHANG
020623,000151: 42,3731 74356 SIN VXSC
020624,000152: 42,3732 06514 HIUNITZ
020625,000153: 42,3733 71525 PDDL COS
020626,000154: 42,3734 02201 PITCHANG
020627,000155: 42,3735 52361 VXSC VSU
020628,000156: 42,3736 06520 HIUNITX # (UX COS ALPHA) - (UZ SIN ALPHA)
020629,000157: 42,3737 63241 DOT PDVL # YAW.Z
020630,000158: 42,3740 02205 RLM
020631,000159: 42,3741 02205 RLM
020632,000160: 42,3742 75246 ABVAL SIGN
020633,000161: 42,3743 77736 ASIN
020634,000162: 42,3744 02203 STORE YAWANG
020635,000163: 42,3745 77776 SBANDEX EXIT
020636,000164: 42,3746 31044 CA EXTVBACT
020637,000165: 42,3747 74747 MASK BIT5 # IS BIT5 STILL ON
020638,000166: 42,3750 00006 EXTEND
020639,000167: 42,3751 15472 BZF ENDEXT # NO
020640,000168: 42,3752 35017 CAF PRIO5
![]() |
Page 489 |
020642,000170: 42,3753 05146 TC PRIOCHNG
020643,000171: 42,3754 33767 CAF V06N51 # DISPLAY ANGLES
020644,000172: 42,3755 04616 TC BANKCALL
020645,000173: 42,3756 20353 CADR GOMARKFR
020646,000174: 42,3757 05563 TC B5OFF # TERMINATE
020647,000175: 42,3760 05563 TC B5OFF # PROCEED
020648,000176: 42,3761 05155 TC ENDOFJOB # RECYCLE
020649,000177: 42,3762 34751 CAF BIT3 # IMMEDIATE RETURN
020650,000178: 42,3763 05464 TC BLANKET # BLANK R3
020651,000179: 42,3764 34740 CAF PRIO4
020652,000180: 42,3765 05146 TC PRIOCHNG
020653,000181: 42,3766 03610 TC SBANDANT +2 # YES, CONTINUE DISPLAYING ANGLES
020654,000182: 42,3767 01463 V06N51 VN 0651
020655,000183: 42,3770 26501 07463 1OVSQRT2 2DEC .7071067815 # 1/SQRT(2)
020656,000184:
020657,000185: 42,3772 UR EQUALS 0D
020658,000186: 42,3772 URP EQUALS 6D
020659,000187: 42,3772 30,2000 SBANK= LOWSUPER
020660,000188:
End of include-file S-BAND_ANTENNA_FOR_LM.agc. Parent file is MAIN.agc