Source Code
These source-code files are part of a reconstructed copy of LM131 revision 1,
the final release of the Apollo 13 Lunar Module (LM) Apollo Guidance Computer
(AGC) software.
The source reconstruction began with source code of Luminary 131 previously transcribed from a digitized copy of that program. A dump of the flight spare core rope memory module B5, part number 2010802-171, serial number RAY 411, was obtained. This module is the only module different between Luminary 131 and LM131 revision 1. The dump was disassembled and all changes were incorporated into these source files. Note that page numbers in the reconstructed code match those on the Luminary 131 printout, although the changed code would likely have changed page numbers for a real LM131 revision 1 listing. 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. |
020609,000002: ## Copyright: Public domain.
020610,000003: ## Filename: S-BAND_ANTENNA_FOR_LM.agc
020611,000004: ## Purpose: A section of LM131 revision 1.
020612,000005: ## It is part of the reconstructed source code for the final
020613,000006: ## release of the flight software for the Lunar Module's (LM)
020614,000007: ## Apollo Guidance Computer (AGC) for Apollo 13. The code has
020615,000008: ## been reconstructed from a listing of Luminary 131 and a dump
020616,000009: ## of a core rope memory module B5, part number 2010802-171,
020617,000010: ## which is the only module different between LM131 revision 1
020618,000011: ## and Luminary 131. The executable generated from this source
020619,000012: ## has been verified against the module dump, so while the names,
020620,000013: ## comments, and ordering may not be exactly correct, the
020621,000014: ## resulting binary is.
020622,000015: ## Reference: pp. 490-493
020623,000016: ## Assembler: yaYUL
020624,000017: ## Contact: Ron Burkey <info@sandroid.org>.
020625,000018: ## Website: www.ibiblio.org/apollo/index.html
020626,000019: ## Mod history: 2022-10-28 MAS Created from Luminary 131.
020627,000020:
Page 490 |
020629,000022: # SUBROUTINE NAME: R05 - S-BAND ANTENNA FOR LM
020630,000023:
020631,000024: # MOD0 BY T. JAMES
020632,000025: # MOD1 BY P. SHAKIR
020633,000026:
020634,000027: # FUNCTIONAL DESCRIPTION
020635,000028:
020636,000029: # THE S-BAND ANTENNA ROUTINE, R05, COMPUTES AND DISPLAYS THE PITCH AND
020637,000030: # YAW ANTENNA GIMBAL ANGLES REQUIRED TO POINT THE LM STEERABLE ANTENNA
020638,000031: # TOWARD THE CENTER OF THE EARTH. THIS ROUTINE IS SELECTED BY THE ASTRO-
020639,000032: # NAUT VIA DSKY ENTRY DURING COASTING FLIGHT OR WHEN THE LM IS ON THE MOON
020640,000033: # SURFACE. THE EARTH OR MOON REFERENCE COORDINATE SYSTEM IS USED DEPENDING
020641,000034: # ON WHETHER THE LM IS ABOUT TO ENTER OR HAS ALREADY ENTERED THE MOON
020642,000035: # SPHERE OF INFLUENCE, RESPECTIVELY. CAN BE CALLED ANY TIME EXCEPT WHEN
020643,000036: # ANOTHER EXTENDED VERB IS IN USE. DISPLAY IS MEANINGLESS WITH IMU OFF.
020644,000037:
020645,000038: # TO CALL SUBROUTINE, ASTRONAUT KEYS IN V 64 E
020646,000039:
020647,000040: # SUBROUTINES CALLED -
020648,000041: # INTPRET
020649,000042: # LOADTIME
020650,000043: # LEMCONIC
020651,000044: # LUNPOS
020652,000045: # CDUTRIG
020653,000046: # *SMNB*
020654,000047: # BANKCALL
020655,000048: # B5OFF
020656,000049: # ENDOFJOB
020657,000050: # BLANKET
020658,000051:
020659,000052: # RETURNS WITH
020660,000053: # PITCH ANGLE IN PITCHANG REV. B0
020661,000054: # YAW ANGLE IN YAWANG REV. B0
020662,000055:
020663,000056: # ERASABLES USED
020664,000057: # PITCHANG
020665,000058: # YAWANG
020666,000059: # RLM
020667,000060: # VAC AREA
020668,000061:
020669,000062: 41,3750 BANK 41
020670,000063: 42,2000 SETLOC SBAND
020671,000064: 42,2000 BANK
020672,000065:
020673,000066: 42,3606 E7,1471 EBANK= WHOCARES
020674,000067: 42,3606 COUNT* $$/R05
020675,000068: 42,3606 06042 SBANDANT TC INTPRET
Page 491 |
020677,000070: 42,3607 47001 SETPD RTB
020678,000071: 42,3610 00001 0D
020679,000072: 42,3611 21574 LOADTIME # PICK UP CURRENT TIME
020680,000073: 42,3612 34041 STCALL TDEC1 # ADVANCE INTEGRATION TO TIME IN TDEC1
020681,000074: 42,3613 27077 LEMCONIC # USING CONIC INTEGRATION
020682,000075: 42,3614 46135 SLOAD BHIZ
020683,000076: 42,3615 00050 X2 # X2 =0 EARTH SPHERE, X2 =2 MOON SPHERE
020684,000077: 42,3616 65634 CONV4
020685,000078: 42,3617 77775 VLOAD
020686,000079: 42,3620 00001 RATT
020687,000080: 42,3621 16205 STODL RLM
020688,000081: 42,3622 00015 TAT
020689,000082: 42,3623 77624 CONV3 CALL
020690,000083: 42,3624 33647 LUNPOS # UNIT POSITION VECTOR FROM EARTH TO MOON
020691,000084: 42,3625 74375 VLOAD VXSC
020692,000085: 42,3626 02723 VMOON
020693,000086: 42,3627 24001 REMDIST # MEAN DISTANCE FROM EARTH TO MOON
020694,000087: 42,3630 53372 VSL1 VAD
020695,000088: 42,3631 02205 RLM
020696,000089: 42,3632 77650 GOTO
020697,000090: 42,3633 65636 CONV5
020698,000091: 42,3634 77775 CONV4 VLOAD
020699,000092: 42,3635 00001 RATT # UE = -UNIT(RATT) EARTH SPHERE
020700,000093: 42,3636 53401 CONV5 SETPD UNIT # UE = -UNIT((REM)(UEM) + RL) MOON SPHERE
020701,000094: 42,3637 00001 0D # SET PL POINTER TO 0
020702,000095: 42,3640 45076 VCOMP CALL
020703,000096: 42,3641 47541 CDUTRIG # COMPUTE SINES AND COSINES OF CDU ANGLES
020704,000097: 42,3642 76521 MXV VSL1 # TRANSFORM REF. COORDINATE SYSTEM TO
020705,000098: 42,3643 01734 REFSMMAT # STABLE MEMBER B-1 X B-1 X B+1 = B-1
020706,000099: 42,3644 71206 PUSH DLOAD # 8D
020707,000100: 42,3645 06524 HI6ZEROS
020708,000101: 42,3646 02201 STORE PITCHANG
020709,000102: 42,3647 26203 STOVL YAWANG # ZERO OUT ANGLES
020710,000103: 42,3650 77624 CALL
020711,000104: 42,3651 47673 *SMNB*
020712,000105: 42,3652 16205 STODL RLM # PRE-MULTIPLY RLM BY (NBSA) MATRIX(B0)
020713,000106: 42,3653 02207 RLM +2
020714,000107: 42,3654 45206 PUSH DSU
020715,000108: 42,3655 02205 RLM
020716,000109: 42,3656 77605 DMP
020717,000110: 42,3657 25767 1OVSQRT2
020718,000111: 42,3660 16207 STODL RLM +2
020719,000112: 42,3661 41215 DAD DMP
020720,000113: 42,3662 02205 RLM
020721,000114: 42,3663 25767 1OVSQRT2
020722,000115: 42,3664 26205 STOVL RLM # R B-1
020723,000116: 42,3665 02205 RLM
020724,000117: 42,3666 63256 UNIT PDVL
020725,000118: 42,3667 02205 RLM
020726,000119: 42,3670 72431 VPROJ VSL2 # PROJECTION OF R ONTO LM XZ PLANE
Page 492 |
020728,000121: 42,3671 06520 HIUNITY
020729,000122: 42,3672 40045 BVSU BOV # CLEAR OVERFLOW INDICATOR IF ON
020730,000123: 42,3673 02205 RLM
020731,000124: 42,3674 65675 COVCNV
020732,000125: 42,3675 40056 COVCNV UNIT BOV # EXIT ON OVERFLOW
020733,000126: 42,3676 65743 SBANDEX
020734,000127: 42,3677 47206 PUSH VXV # URP VECTOR B-1
020735,000128: 42,3700 06516 HIUNITZ
020736,000129: 42,3701 57572 VSL1 VCOMP # UZ X URP = -(URP X UZ)
020737,000130: 42,3702 02205 STORE RLM # X VEC B-1
020738,000131: 42,3703 63241 DOT PDVL # SGN(X.UY) UNSCALED
020739,000132: 42,3704 06520 HIUNITY
020740,000133: 42,3705 02205 RLM
020741,000134: 42,3706 75246 ABVAL SIGN
020742,000135: 42,3707 77736 ASIN # ASIN((SGN(X.UY))ABV(X)) REV B0
020743,000136: 42,3710 26201 STOVL PITCHANG
020744,000137: 42,3711 00007 URP
020745,000138: 42,3712 51041 DOT BPL
020746,000139: 42,3713 06516 HIUNITZ
020747,000140: 42,3714 65721 NOADJUST # YES, -90 TO +90
020748,000141: 42,3715 45345 DLOAD DSU
020749,000142: 42,3716 06522 HIDPHALF
020750,000143: 42,3717 02201 PITCHANG
020751,000144: 42,3720 02201 STORE PITCHANG
020752,000145: 42,3721 47375 NOADJUST VLOAD VXV
020753,000146: 42,3722 00001 UR # Z = (UR X URP)
020754,000147: 42,3723 00007 URP
020755,000148: 42,3724 77772 VSL1
020756,000149: 42,3725 16205 STODL RLM # Z VEC B-1
020757,000150: 42,3726 02201 PITCHANG
020758,000151: 42,3727 74356 SIN VXSC
020759,000152: 42,3730 06516 HIUNITZ
020760,000153: 42,3731 71525 PDDL COS
020761,000154: 42,3732 02201 PITCHANG
020762,000155: 42,3733 52361 VXSC VSU
020763,000156: 42,3734 06522 HIUNITX # (UX COS ALPHA) - (UZ SIN ALPHA)
020764,000157: 42,3735 63241 DOT PDVL # YAW.Z
020765,000158: 42,3736 02205 RLM
020766,000159: 42,3737 02205 RLM
020767,000160: 42,3740 75246 ABVAL SIGN
020768,000161: 42,3741 77736 ASIN
020769,000162: 42,3742 02203 STORE YAWANG
020770,000163: 42,3743 77776 SBANDEX EXIT
020771,000164: 42,3744 31043 CA EXTVBACT
020772,000165: 42,3745 74747 MASK BIT5 # IS BIT5 STILL ON
020773,000166: 42,3746 00006 EXTEND
020774,000167: 42,3747 15472 BZF ENDEXT # NO
020775,000168: 42,3750 35017 CAF PRIO5
020776,000169: 42,3751 05146 TC PRIOCHNG
020777,000170: 42,3752 33765 CAF V06N51 # DISPLAY ANGLES
Page 493 |
020779,000172: 42,3753 04616 TC BANKCALL
020780,000173: 42,3754 20353 CADR GOMARKFR
020781,000174: 42,3755 05563 TC B5OFF # TERMINATE
020782,000175: 42,3756 05563 TC B5OFF # PROCEED
020783,000176: 42,3757 05155 TC ENDOFJOB # RECYCLE
020784,000177: 42,3760 34751 CAF BIT3 # IMMEDIATE RETURN
020785,000178: 42,3761 05464 TC BLANKET # BLANK R3
020786,000179: 42,3762 34740 CAF PRIO4
020787,000180: 42,3763 05146 TC PRIOCHNG
020788,000181: 42,3764 03606 TC SBANDANT # YES, CONTINUE DISPLAYING ANGLES.
020789,000182: 42,3765 01463 V06N51 VN 0651
020790,000183: 42,3766 26501 07463 1OVSQRT2 2DEC .7071067815 # 1/SQRT(2)
020791,000184:
020792,000185: 42,3770 UR EQUALS 0D
020793,000186: 42,3770 URP EQUALS 6D
020794,000187: 42,3770 30,2000 SBANK= LOWSUPER
020795,000188:
End of include-file S-BAND_ANTENNA_FOR_LM.agc. Parent file is MAIN.agc