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