Source Code
![]() |
These source-code files derive from a printout of Luminary 116 (the Apollo 12
Lunar Module guidance computer program), from the personal library of
original AGC developer Don Eyles, digitally photographed at archive.org,
financially sponsored by Ron Burkey, 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 116 OF AGC PROGRAM LUMINARY BY NASA 2021112-071 19:09 AUG. 11,1969Note that the date is the date of the printout, not the date of the program revision. |
020817,000002: ## Copyright: Public domain.
020818,000003: ## Filename: S-BAND_ANTENNA_FOR_LM.agc
020819,000004: ## Purpose: A section of Luminary revision 116.
020820,000005: ## It is part of the source code for the Lunar Module's (LM)
020821,000006: ## Apollo Guidance Computer (AGC) for Apollo 12.
020822,000007: ## This file is intended to be a faithful transcription, except
020823,000008: ## that the code format has been changed to conform to the
020824,000009: ## requirements of the yaYUL assembler rather than the
020825,000010: ## original YUL assembler.
020826,000011: ## Reference: pp. 488-491
020827,000012: ## Assembler: yaYUL
020828,000013: ## Contact: Ron Burkey <info@sandroid.org>.
020829,000014: ## Website: www.ibiblio.org/apollo/index.html
020830,000015: ## Mod history: 2017-01-22 MAS Created from Luminary 99.
020831,000016: ## 2017-03-09 RSB Transcribed, and then proofed comment-text using
020832,000017: ## 3-way diff vs Luminary 99 and Luminary 131.
020833,000018: ## (Admittedly, the former is more for detecting errors
020834,000019: ## in Luminary 99 than the other way around.)
020835,000020: ## 2017-03-13 HG Remove operand modifier SBANDANT +2 --> SBANDANT
020836,000021:
![]() |
Page 488 |
020838,000023: # SUBROUTINE NAME: R05 - S-BAND ANTENNA FOR LM
020839,000024:
020840,000025: # MOD0 BY T. JAMES
020841,000026: # MOD1 BY P. SHAKIR
020842,000027:
020843,000028: # FUNCTIONAL DESCRIPTION
020844,000029:
020845,000030: # THE S-BAND ANTENNA ROUTINE, R05, COMPUTES AND DISPLAYS THE PITCH AND
020846,000031: # YAW ANTENNA GIMBAL ANGLES REQUIRED TO POINT THE LM STEERABLE ANTENNA
020847,000032: # TOWARD THE CENTER OF THE EARTH. THIS ROUTINE IS SELECTED BY THE ASTRO-
020848,000033: # NAUT VIA DSKY ENTRY DURING COASTING FLIGHT OR WHEN THE LM IS ON THE MOON
020849,000034: # SURFACE. THE EARTH OR MOON REFERENCE COORDINATE SYSTEM IS USED DEPENDING
020850,000035: # ON WHETHER THE LM IS ABOUT TO ENTER OR HAS ALREADY ENTERED THE MOON
020851,000036: # SPHERE OF INFLUENCE, RESPECTIVELY. CAN BE CALLED ANY TIME EXCEPT WHEN
020852,000037: # ANOTHER EXTENDED VERB IS IN USE. DISPLAY IS MEANINGLESS WITH IMU OFF.
020853,000038:
020854,000039: # TO CALL SUBROUTINE, ASTRONAUT KEYS IN V 64 E
020855,000040:
020856,000041: # SUBROUTINES CALLED -
020857,000042:
020858,000043: # INTPRET
020859,000044: # LOADTIME
020860,000045: # LEMCONIC
020861,000046: # LUNPOS
020862,000047: # CDUTRIG
020863,000048: # *SMNB*
020864,000049: # BANKCALL
020865,000050: # B5OFF
020866,000051: # ENDOFJOB
020867,000052: # BLANKET
020868,000053:
020869,000054: # RETURNS WITH
020870,000055:
020871,000056: # PITCH ANGLE IN PITCHANG REV. B0
020872,000057: # YAW ANGLE IN YAWANG REV. B0
020873,000058:
020874,000059: # ERASABLES USED
020875,000060: # PITCHANG
020876,000061: # YAWANG
020877,000062: # RLM
020878,000063: # VAC AREA
020879,000064:
020880,000065: 41,3743 BANK 41
020881,000066: 42,2000 SETLOC SBAND
020882,000067: 42,2000 BANK
020883,000068:
020884,000069: 42,3606 E7,1471 EBANK= WHOCARES
020885,000070: 42,3606 COUNT* $$/R05
020886,000071: 42,3606 06042 SBANDANT TC INTPRET
![]() |
Page 489 |
020888,000073: 42,3607 47001 SETPD RTB
020889,000074: 42,3610 00001 0D
020890,000075: 42,3611 21574 LOADTIME # PICK UP CURRENT TIME
020891,000076: 42,3612 34041 STCALL TDEC1 # ADVANCE INTEGRATION TO TIME IN TDEC1
020892,000077: 42,3613 27101 LEMCONIC # USING CONIC INTEGRATION
020893,000078: 42,3614 46135 SLOAD BHIZ
020894,000079: 42,3615 00050 X2 # X2 =0 EARTH SPHERE, X2 =2 MOON SPHERE
020895,000080: 42,3616 65634 CONV4
020896,000081: 42,3617 77775 VLOAD
020897,000082: 42,3620 00001 RATT
020898,000083: 42,3621 16205 STODL RLM
020899,000084: 42,3622 00015 TAT
020900,000085: 42,3623 77624 CONV3 CALL
020901,000086: 42,3624 33647 LUNPOS # UNIT POSITION VECTOR FROM EARTH TO MOON
020902,000087: 42,3625 74375 VLOAD VXSC
020903,000088: 42,3626 02723 VMOON
020904,000089: 42,3627 24001 REMDIST # MEAN DISTANCE FROM EARTH TO MOON
020905,000090: 42,3630 53372 VSL1 VAD
020906,000091: 42,3631 02205 RLM
020907,000092: 42,3632 77650 GOTO
020908,000093: 42,3633 65636 CONV5
020909,000094: 42,3634 77775 CONV4 VLOAD
020910,000095: 42,3635 00001 RATT # UE = -UNIT(RATT) EARTH SPHERE
020911,000096: 42,3636 53401 CONV5 SETPD UNIT # UE = -UNIT((REM)(UEM) + RL) MOON SPHERE
020912,000097: 42,3637 00001 0D # SET PL POINTER TO 0
020913,000098: 42,3640 45076 VCOMP CALL
020914,000099: 42,3641 47541 CDUTRIG # COMPUTE SINES AND COSINES OF CDU ANGLES
020915,000100: 42,3642 76521 MXV VSL1 # TRANSFORM REF. COORDINATE SYSTEM TO
020916,000101: 42,3643 01734 REFSMMAT # STABLE MEMBER B-1 X B-1 X B+1 = B-1
020917,000102: 42,3644 71206 PUSH DLOAD # 8D
020918,000103: 42,3645 06524 HI6ZEROS
020919,000104: 42,3646 02201 STORE PITCHANG
020920,000105: 42,3647 26203 STOVL YAWANG # ZERO OUT ANGLES
020921,000106: 42,3650 77624 CALL
020922,000107: 42,3651 47673 *SMNB*
020923,000108: 42,3652 16205 STODL RLM # PRE-MULTIPLY RLM BY (NBSA) MATRIX(B0)
020924,000109: 42,3653 02207 RLM +2
020925,000110: 42,3654 45206 PUSH DSU
020926,000111: 42,3655 02205 RLM
020927,000112: 42,3656 77605 DMP
020928,000113: 42,3657 25767 1OVSQRT2
020929,000114: 42,3660 16207 STODL RLM +2
020930,000115: 42,3661 41215 DAD DMP
020931,000116: 42,3662 02205 RLM
020932,000117: 42,3663 25767 1OVSQRT2
020933,000118: 42,3664 26205 STOVL RLM # R B-1
020934,000119: 42,3665 02205 RLM
020935,000120: 42,3666 63256 UNIT PDVL
020936,000121: 42,3667 02205 RLM
020937,000122: 42,3670 72431 VPROJ VSL2 # PROJECTION OF R ONTO LM XZ PLANE
![]() |
Page 490 |
020939,000124: 42,3671 06520 HIUNITY
020940,000125: 42,3672 40045 BVSU BOV # CLEAR OVERFLOW INDICATOR IF ON
020941,000126: 42,3673 02205 RLM
020942,000127: 42,3674 65675 COVCNV
020943,000128: 42,3675 40056 COVCNV UNIT BOV # EXIT ON OVERFLOW
020944,000129: 42,3676 65743 SBANDEX
020945,000130: 42,3677 47206 PUSH VXV # URP VECTOR B-1
020946,000131: 42,3700 06516 HIUNITZ
020947,000132: 42,3701 57572 VSL1 VCOMP # UZ X URP = -(URP X UZ)
020948,000133: 42,3702 02205 STORE RLM # X VEC B-1
020949,000134: 42,3703 63241 DOT PDVL # SGN(X.UY) UNSCALED
020950,000135: 42,3704 06520 HIUNITY
020951,000136: 42,3705 02205 RLM
020952,000137: 42,3706 75246 ABVAL SIGN
020953,000138: 42,3707 77736 ASIN # ASIN((SGN(X.UY))ABV(X)) REV B0
020954,000139: 42,3710 26201 STOVL PITCHANG
020955,000140: 42,3711 00007 URP
020956,000141: 42,3712 51041 DOT BPL
020957,000142: 42,3713 06516 HIUNITZ
020958,000143: 42,3714 65721 NOADJUST # YES, -90 TO +90
020959,000144: 42,3715 45345 DLOAD DSU
020960,000145: 42,3716 06522 HIDPHALF
020961,000146: 42,3717 02201 PITCHANG
020962,000147: 42,3720 02201 STORE PITCHANG
020963,000148: 42,3721 47375 NOADJUST VLOAD VXV
020964,000149: 42,3722 00001 UR # Z = (UR X URP)
020965,000150: 42,3723 00007 URP
020966,000151: 42,3724 77772 VSL1
020967,000152: 42,3725 16205 STODL RLM # Z VEC B-1
020968,000153: 42,3726 02201 PITCHANG
020969,000154: 42,3727 74356 SIN VXSC
020970,000155: 42,3730 06516 HIUNITZ
020971,000156: 42,3731 71525 PDDL COS
020972,000157: 42,3732 02201 PITCHANG
020973,000158: 42,3733 52361 VXSC VSU
020974,000159: 42,3734 06522 HIUNITX # (UX COS ALPHA) - (UZ SIN ALPHA)
020975,000160: 42,3735 63241 DOT PDVL # YAW.Z
020976,000161: 42,3736 02205 RLM
020977,000162: 42,3737 02205 RLM
020978,000163: 42,3740 75246 ABVAL SIGN
020979,000164: 42,3741 77736 ASIN
020980,000165: 42,3742 02203 STORE YAWANG
020981,000166: 42,3743 77776 SBANDEX EXIT
020982,000167: 42,3744 31043 CA EXTVBACT
020983,000168: 42,3745 74747 MASK BIT5 # IS BIT5 STILL ON
020984,000169: 42,3746 00006 EXTEND
020985,000170: 42,3747 15472 BZF ENDEXT # NO
020986,000171: 42,3750 35017 CAF PRIO5
020987,000172: 42,3751 05146 TC PRIOCHNG
020988,000173: 42,3752 33765 CAF V06N51 # DISPLAY ANGLES
![]() |
Page 491 |
020990,000175: 42,3753 04616 TC BANKCALL
020991,000176: 42,3754 20353 CADR GOMARKFR
020992,000177: 42,3755 05563 TC B5OFF # TERMINATE
020993,000178: 42,3756 05563 TC B5OFF # PROCEED
020994,000179: 42,3757 05155 TC ENDOFJOB # RECYCLE
020995,000180: 42,3760 34751 CAF BIT3 # IMMEDIATE RETURN
020996,000181: 42,3761 05464 TC BLANKET # BLANK R3
020997,000182: 42,3762 34740 CAF PRIO4
020998,000183: 42,3763 05146 TC PRIOCHNG
020999,000184: 42,3764 03606 TC SBANDANT # YES, CONTINUE DISPLAYING ANGLES.
021000,000185: 42,3765 01463 V06N51 VN 0651
021001,000186: 42,3766 26501 07463 1OVSQRT2 2DEC .7071067815 # 1/SQRT(2)
021002,000187:
021003,000188: 42,3770 UR EQUALS 0D
021004,000189: 42,3770 URP EQUALS 6D
021005,000190: 42,3770 30,2000 SBANK= LOWSUPER
End of include-file S-BAND_ANTENNA_FOR_LM.agc. Parent file is MAIN.agc