Source Code
|
These source-code files are part of a reconstructed copy of Luminary 178, the
final release of the Apollo 14 Lunar Module (LM) Apollo Guidance Computer
(AGC) software.
The reconstruction began with source code of Zerlina 56, Luminary 210, and Luminary 131, previously transcribed from digitized copies of those programs. The code was created by combining the three, using Zerlina 56 as a base, since it was based off of Luminary 183. The differences between the three were carefully merged using the Luminary memos as a guide, with all changes made after Luminary 178 being backed out. The reconstruction was verified by matching memory-bank checksums to those listed in drawing 2021152N. Note that page numbers in the reconstructed code match those for the baseline log section mentioned in each file's changelog; the page numbers for a real Luminary 178 listing would be different. Comments from the original source code are prefixed with a single '#' symbol, whereas comments added later are prefixed by "##" or "###". Report any errors noted by creating an issue report at the Virtual AGC project's GitHub repository. |
021459,000002: ## Copyright: Public domain.
021460,000003: ## Filename: S-BAND_ANTENNA_FOR_LM.agc
021461,000004: ## Purpose: A section of Luminary revision 178.
021462,000005: ## It is part of the reconstructed source code for the final
021463,000006: ## release of the flight software for the Lunar Module's
021464,000007: ## (LM) Apollo Guidance Computer (AGC) for Apollo 14. The
021465,000008: ## code has been recreated from copies of Zerlina 56, Luminary
021466,000009: ## 210, and Luminary 131, as well as many Luminary memos.
021467,000010: ## It has been adapted such that the resulting bugger words
021468,000011: ## exactly match those specified for Luminary 178 in NASA
021469,000012: ## drawing 2021152N, which gives relatively high confidence
021470,000013: ## that the reconstruction is correct.
021471,000014: ## Reference: pp. 494-497
021472,000015: ## Assembler: yaYUL
021473,000016: ## Contact: Ron Burkey <info@sandroid.org>.
021474,000017: ## Website: www.ibiblio.org/apollo/index.html
021475,000018: ## Mod history: 2019-08-14 MAS Created from Zerlina 56.
021476,000019:
|
Page 494 |
021478,000021: # SUBROUTINE NAME: R05 - S-BAND ANTENNA FOR LM
021479,000022:
021480,000023: # MOD0 BY T. JAMES
021481,000024: # MOD1 BY P. SHAKIR
021482,000025:
021483,000026: # FUNCTIONAL DESCRIPTION
021484,000027:
021485,000028: # THE S-BAND ANTENNA ROUTINE, R05, COMPUTES AND DISPLAYS THE PITCH AND
021486,000029: # YAW ANTENNA GIMBAL ANGLES REQUIRED TO POINT THE LM STEERABLE ANTENNA
021487,000030: # TOWARD THE CENTER OF THE EARTH. THIS ROUTINE IS SELECTED BY THE ASTRO-
021488,000031: # NAUT VIA DSKY ENTRY DURING COASTING FLIGHT OR WHEN THE LM IS ON THE MOON
021489,000032: # SURFACE. THE EARTH OR MOON REFERENCE COORDINATE SYSTEM IS USED DEPENDING
021490,000033: # ON WHETHER THE LM IS ABOUT TO ENTER OR HAS ALREADY ENTERED THE MOON
021491,000034: # SPHERE OF INFLUENCE, RESPECTIVELY. CAN BE CALLED ANY TIME EXCEPT WHEN
021492,000035: # ANOTHER EXTENDED VERB IS IN USE. DISPLAY IS MEANINGLESS WITH IMU OFF.
021493,000036:
021494,000037: # TO CALL SUBROUTINE, ASTRONAUT KEYS IN V 64 E
021495,000038:
021496,000039: # SUBROUTINES CALLED-
021497,000040:
021498,000041: # INTPRET
021499,000042: # LOADTIME
021500,000043: # LEMCONIC
021501,000044: # LUNPOS
021502,000045: # CDUTRIG
021503,000046: # *SMNB*
021504,000047: # BANKCALL
021505,000048: # B5OFF
021506,000049: # ENDOFJOB
021507,000050: # BLANKET
021508,000051:
021509,000052: # RETURNS WITH
021510,000053:
021511,000054: # PITCH ANGLE IN PITCHANG REV. B0
021512,000055: # YAW ANGLE IN YAWANG REV. B0
021513,000056:
021514,000057: # ERASABLES USED
021515,000058:
021516,000059: # PITCHANG
021517,000060: # YAWANG
021518,000061: # RLM
021519,000062: # VAC AREA
021520,000063:
021521,000064: 41,3755 BANK 41
021522,000065: 42,2000 SETLOC SBAND
021523,000066: 42,2000 BANK
021524,000067:
021525,000068: 42,3612 E7,1471 EBANK= WHOCARES
021526,000069: 42,3612 COUNT* $$/R05
021527,000070: 42,3612 06042 SBANDANT TC INTPRET
|
Page 495 |
021529,000072: 42,3613 47001 SETPD RTB
021530,000073: 42,3614 00001 0D
021531,000074: 42,3615 21574 LOADTIME # PICK UP CURRENT TIME
021532,000075: 42,3616 34041 STCALL TDEC1 # ADVANCE INTEGRATION TO TIME IN TDEC1
021533,000076: 42,3617 27077 LEMCONIC # USING CONIC INTEGRATION
021534,000077: 42,3620 46135 SLOAD BHIZ
021535,000078: 42,3621 00050 X2 # X2 =0 EARTH SPHERE, X2 =2 MOON SPHERE
021536,000079: 42,3622 65640 CONV4
021537,000080: 42,3623 77775 VLOAD
021538,000081: 42,3624 00001 RATT
021539,000082: 42,3625 16205 STODL RLM
021540,000083: 42,3626 00015 TAT
021541,000084: 42,3627 77624 CONV3 CALL
021542,000085: 42,3630 33660 LUNPOS # UNIT POSITION VECTOR FROM EARTH TO MOON
021543,000086: 42,3631 74375 VLOAD VXSC
021544,000087: 42,3632 02723 VMOON
021545,000088: 42,3633 24001 REMDIST # MEAN DISTANCE FROM EARTH TO MOON
021546,000089: 42,3634 53372 VSL1 VAD
021547,000090: 42,3635 02205 RLM
021548,000091: 42,3636 77650 GOTO
021549,000092: 42,3637 65642 CONV5
021550,000093: 42,3640 77775 CONV4 VLOAD
021551,000094: 42,3641 00001 RATT # UE = -UNIT(RATT) EARTH SPHERE
021552,000095: 42,3642 53401 CONV5 SETPD UNIT # UE = -UNIT((REM)(UEM) + RL) MOON SPHERE
021553,000096: 42,3643 00001 0D # SET PL POINTER TO 0
021554,000097: 42,3644 45076 VCOMP CALL
021555,000098: 42,3645 47505 CDUTRIG # COMPUTE SINES AND COSINES OF CDU ANGLES
021556,000099: 42,3646 76521 MXV VSL1 # TRANSFORM REF. COORDINATE SYSTEM TO
021557,000100: 42,3647 01732 REFSMMAT # STABLE MEMBER B-1 X B-1 X B+1 = B-1
021558,000101: 42,3650 71206 PUSH DLOAD # 8D
021559,000102: 42,3651 06470 HI6ZEROS
021560,000103: 42,3652 02201 STORE PITCHANG
021561,000104: 42,3653 26203 STOVL YAWANG # ZERO OUT ANGLES
021562,000105: 42,3654 77624 CALL
021563,000106: 42,3655 47646 *SMNB*
021564,000107: 42,3656 16205 STODL RLM # PRE-MULTIPLY RLM BY (NBSA) MATRIX(B0)
021565,000108: 42,3657 02207 RLM +2
021566,000109: 42,3660 45206 PUSH DSU
021567,000110: 42,3661 02205 RLM
021568,000111: 42,3662 77605 DMP
021569,000112: 42,3663 25773 1OVSQRT2
021570,000113: 42,3664 16207 STODL RLM +2
021571,000114: 42,3665 41215 DAD DMP
021572,000115: 42,3666 02205 RLM
021573,000116: 42,3667 25773 1OVSQRT2
021574,000117: 42,3670 26205 STOVL RLM # R B-1
021575,000118: 42,3671 02205 RLM
021576,000119: 42,3672 63256 UNIT PDVL
021577,000120: 42,3673 02205 RLM
021578,000121: 42,3674 72431 VPROJ VSL2 # PROJECTION OF R ONTO LM XZ PLANE
|
Page 496 |
021580,000123: 42,3675 06464 HIUNITY
021581,000124: 42,3676 40045 BVSU BOV # CLEAR OVERFLOW INDICATOR IF ON
021582,000125: 42,3677 02205 RLM
021583,000126: 42,3700 65701 COVCNV
021584,000127: 42,3701 40056 COVCNV UNIT BOV # EXIT ON OVERFLOW
021585,000128: 42,3702 65747 SBANDEX
021586,000129: 42,3703 47206 PUSH VXV # URP VECTOR B-1
021587,000130: 42,3704 06462 HIUNITZ
021588,000131: 42,3705 57572 VSL1 VCOMP # UZ X URP = -(URP X UZ)
021589,000132: 42,3706 02205 STORE RLM # X VEC B-1
021590,000133: 42,3707 63241 DOT PDVL # SGN(X.UY) UNSCALED
021591,000134: 42,3710 06464 HIUNITY
021592,000135: 42,3711 02205 RLM
021593,000136: 42,3712 75246 ABVAL SIGN
021594,000137: 42,3713 77736 ASIN # ASIN((SGN(X.UY))ABV(X)) REV B0
021595,000138: 42,3714 26201 STOVL PITCHANG
021596,000139: 42,3715 00007 URP
021597,000140: 42,3716 51041 DOT BPL
021598,000141: 42,3717 06462 HIUNITZ
021599,000142: 42,3720 65725 NOADJUST # YES, -90 TO +90
021600,000143: 42,3721 45345 DLOAD DSU
021601,000144: 42,3722 06466 HIDPHALF
021602,000145: 42,3723 02201 PITCHANG
021603,000146: 42,3724 02201 STORE PITCHANG
021604,000147: 42,3725 47375 NOADJUST VLOAD VXV
021605,000148: 42,3726 00001 UR # Z = (UR X URP)
021606,000149: 42,3727 00007 URP
021607,000150: 42,3730 77772 VSL1
021608,000151: 42,3731 16205 STODL RLM # Z VEC B-1
021609,000152: 42,3732 02201 PITCHANG
021610,000153: 42,3733 74356 SIN VXSC
021611,000154: 42,3734 06462 HIUNITZ
021612,000155: 42,3735 71525 PDDL COS
021613,000156: 42,3736 02201 PITCHANG
021614,000157: 42,3737 52361 VXSC VSU
021615,000158: 42,3740 06466 HIUNITX # (UX COS ALPHA) - (UZ SIN ALPHA)
021616,000159: 42,3741 63241 DOT PDVL # YAW.Z
021617,000160: 42,3742 02205 RLM
021618,000161: 42,3743 02205 RLM
021619,000162: 42,3744 75246 ABVAL SIGN
021620,000163: 42,3745 77736 ASIN
021621,000164: 42,3746 02203 STORE YAWANG
021622,000165: 42,3747 77776 SBANDEX EXIT
021623,000166: 42,3750 31043 CA EXTVBACT
021624,000167: 42,3751 74747 MASK BIT5 # IS BIT5 STILL ON
021625,000168: 42,3752 00006 EXTEND
021626,000169: 42,3753 15503 BZF ENDEXT # NO
021627,000170: 42,3754 35017 CAF PRIO5
021628,000171: 42,3755 05146 TC PRIOCHNG
021629,000172: 42,3756 33771 CAF V06N51 # DISPLAY ANGLES
021630,000173:
|
Page 497 |
021632,000175: 42,3757 04616 TC BANKCALL
021633,000176: 42,3760 20353 CADR GOMARKFR
021634,000177: 42,3761 05574 TC B5OFF # TERMINATE
021635,000178: 42,3762 05574 TC B5OFF # PROCEED
021636,000179: 42,3763 05155 TC ENDOFJOB # RECYCLE
021637,000180: 42,3764 34751 CAF BIT3 # IMMEDIATE RETURN
021638,000181: 42,3765 05475 TC BLANKET # BLANK R3
021639,000182: 42,3766 34740 CAF PRIO4
021640,000183: 42,3767 05146 TC PRIOCHNG
021641,000184: 42,3770 03612 TC SBANDANT # YES, CONTINUE DISPLAYING ANGLES.
021642,000185: 42,3771 01463 V06N51 VN 0651
021643,000186: 42,3772 26501 07463 1OVSQRT2 2DEC .7071067815 # 1/SQRT(2)
021644,000187:
021645,000188: 42,3774 UR EQUALS 0D
021646,000189: 42,3774 URP EQUALS 6D
021647,000190: 42,3774 30,2000 SBANK= LOWSUPER
End of include-file S-BAND_ANTENNA_FOR_LM.agc. Parent file is MAIN.agc