Source Code

041335,000001: # Copyright: Public domain. 041336,000002: # Filename: LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc 041337,000003: # Purpose: A section of Luminary 1C, revision 131. 041338,000004: # It is part of the source code for the Lunar Module's (LM) 041339,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14. 041340,000006: # This file is intended to be a faithful transcription, except 041341,000007: # that the code format has been changed to conform to the 041342,000008: # requirements of the yaYUL assembler rather than the 041343,000009: # original YUL assembler. 041344,000010: # Reference: pp. 983-986 of 1729.pdf. 041345,000011: # Contact: Ron Burkey <info@sandroid.org>. 041346,000012: # Website: www.ibiblio.org/apollo/index.html 041347,000013: # Mod history: 05/29/03 RSB. Began transcribing. 041348,000014: # 05/14/05 RSB Corrected website reference above. 041349,000015: 041350,000016: # Page 983 041351,000017: # NAME -- LSPOS -- LOCATE SUN AND MOON DATE -- 25 OCT 67 041352,000018: # MOD NO. 1 041353,000019: # MOD BY NEVILLE ASSEMBLY SUNDANCE 041354,000020: 041355,000021: # FUNCTIONAL DESCRIPTION 041356,000022: 041357,000023: # COMPUTES UNIT POSITION VECTOR OF THE SUN AND MOON IN THE BASIC REFERENCE SYSTEM. THE SUN VECTOR S IS 041358,000024: # LOCATED VIA TWO ANLES. THE FIRST ANGLE (OBLIQUITY) IS THE ANGLE BETWEEN THE EARTH EQUATOR AND THE ECLIPTIC. THE 041359,000025: # POSITION VECTOR OF THE SUN IS 041360,000026: # _ 041361,000027: # S = (COS(LOS), COS(OBL)*SIN(LOS), SIN(OBL)*SIN(LOS)), WHERE 041362,000028: 041363,000029: # LOS = LOS +LOS *T-(C *SIN(2PI*T)/365.24 +C *COS(2PI*T)/365.24) 041364,000030: # 0 R 0 1 041365,000031: # LOS (RAD) IS THE LONGITUDE OF THE SUN FOR MIGNIGHT JUNE 30TH OF THE PARTICULAR YEAR. 041366,000032: # 0 041367,000033: # LOS (RAD/DAY) IS THE MEAN RATE FOR THE PARTICULAR YEAR. 041368,000034: # R 041369,000035: 041370,000036: # LOS AND LOS ARE STORED AS LOSC AND LOSR IN RATESP. 041371,000037: # 0 R 041372,000038: # COS(OBL) AND SIN(OBL) ARE STORED IN THE MATRIX KONMAT. 041373,000039: 041374,000040: # T, TIME MEASURED IN DAYS (24 HOURS) IS STORED IN TIMEP. 041375,000041: 041376,000042: # C AND C ARE FUDGE FACTORS TO MINIMIZE THE DEVIATION. THEY ARE STORED AS ONE CONSTANT (CMOD), SINCE 041377,000043: # 0 1 2 2 1/2 041378,000044: # C *SIN(X)+C *COS(X) CAN BE WRITTEN AS (C +C ) *SIN(X+PHI), WHERE PHI=ARCTAN(C /C ). 041379,000045: # 0 1 1 0 041380,000046: 041381,000047: # THE MOON IS LOCATED VIA FOUR ANGLES, THE FIRST IS THE OBLIQUITY. THE SECOND IS THE MEAN LONGITUDE OF THE MOON, 041382,000048: # MEASURED IN THE ECLIPTIC FROM THE MEAN EQUINOX TO THE MEAN ASCENDING NODE OF THE LUNAR ORBIT, AND THEN ALONG THE 041383,000049: # ORBIT. THE THIRD ANGLE IS THE ANGLE BETWEEN THE ECLIPTIC AND THE LUNAR ORBIT. THE FOURTH ANGLE IS THE LONGITUDE 041384,000050: # OF THE NODE OF THE MOON, MEASURED IN THE LUNAR ORBIT. LET THESE ANGLES BE OBL,LOM,IM, AND LON RESPECTIVELY. 041385,000051: 041386,000052: # THE SIMPLIFIED POSITION VECTOR OF THE MOON IS 041387,000053: # _ 041388,000054: # M=(COS(LOM), COS(OBL)*SIN(LOM)-SIN(OBL)*SIN(IM)*SIN(LOM-LON), SIN(OBL)*SIN(LOM)+COS(OBL)*SIN(IM)*SIN(LOM-LON)) 041389,000055: 041390,000056: # WHERE 041391,000057: # LOM=LOM +LOM *T-(A *SIN(2PI*T/27.5545)+A *COS(2PI*T/27.5545)+B *SIN(2PI*T/32)+B *COS(2PI*T/32)), AND 041392,000058: # 0 R 0 1 0 1 041393,000059: # LON=LON +LON 041394,000060: # 0 R 041395,000061: # A , A , B AND B ARE STORE AS AMOD AND BMOD (SEE DESCRIPTION OF CMOD, ABOVE). COS(OBL), SIN(OBL)*SIN(IM), 041396,000062: # 0 1 0 1 041397,000063: # SIN(OBL), AND COS(OBL)*SIN(IM) ARE STORED IN KONMAT AS K1, K2, K3, AND K4, RESPECTIVELY. LOM , LOM , LON , LON 041398,000064: # 0 R 0 R 041399,000065: # ARE STORED AS LOM0, LOMR, LON0, AND LONR IN RATESP. 041400,000066: 041401,000067: # THE THREE PHIS ARE STORED AS AARG, BARG, AND CARG(SUN). ALL CONSTANTS ARE UPDATED BY YEAR. 041402,000068: 041403,000069: # CALLING SEQUENCE 041404,000070: # Page 984 041405,000071: # CALL LSPOS. RETURN IS VIA CPRET. 041406,000072: 041407,000073: # ALARMS OR ABORTS 041408,000074: # NONE 041409,000075: 041410,000076: # ERASABLE INITIALIZATION REQUIRED 041411,000077: # TEPHEM -- TIME FROM MIGNIGHT 1 JULY PRECEDING THE LAUNCH TO THE TIME OF THE LAUNCH (WHEN THE AGC CLOCK WENT 041412,000078: # TO ZERO). TEPHEM IS TP WITH UNITS OF CENTI-SECONDS. 041413,000079: 041414,000080: # TIME2 AND TIME1 ARE IN MPAC AND MPAC +1 WHEN PROGRAM IS CALLED. 041415,000081: 041416,000082: # OUTPUT 041417,000083: # UNIT POSITIONAL VECTOR OF SUN IN VSUN. (SCALED B-1) 041418,000084: # UNIT POSITIONAL VECTOR OF MOON IN VMOON. (SCALED B-1) 041419,000085: 041420,000086: # SUBROUTINES USED 041421,000087: # NONE 041422,000088: 041423,000089: # DEBRIS 041424,000090: # CURRENT CORE SET, WORK AREA AND FREEFLAG 041425,000091: 041426,000092: 04,2773 BANK 04 041427,000093: 15,2000 SETLOC EPHEM 041428,000094: 15,2000 BANK 041429,000095: 041430,000096: 15,3647 E5,1714 EBANK= VSUN 041431,000097: 15,3647 COUNT* $$/EPHEM 041432,000098: 15,3647 15,3647 LUNPOS EQUALS LSPOS 041433,000099: 041434,000100: 15,3647 54201 LSPOS SETPD SR 041435,000101: 15,3650 00001 0 041436,000102: 15,3651 20617 14D # TP 041437,000103: 15,3652 56371 TAD DDV 041438,000104: 15,3653 01707 TEPHEM # TIME OF LAUNCH 041439,000105: 15,3654 12024 CSTODAY # 24 HOURS -- 8640000 CENTI-SECS/DAY B-33 041440,000106: 15,3655 00031 STORE TIMEP # T IN DAYS 041441,000107: 15,3656 77170 AXT,1 AXT,2 041442,000108: 15,3657 00000 0 041443,000109: 15,3660 00000 0 041444,000110: 15,3661 77614 CLEAR 041445,000111: 15,3662 00274 FREEFLAG # SWITCH BIT 041446,000112: 15,3663 77745 POSITA DLOAD 041447,000113: 15,3664 12004 KONMAT +2 # ZEROS 041448,000114: 15,3665 00027 STORE GTMP 041449,000115: 15,3666 40745 POSITB DLOAD DMP* 041450,000116: 15,3667 00031 TIMEP # T 041451,000117: 15,3670 12050 VAL67 +4,1 # 1/27 OR 1/32 OR 1/365 041452,000118: # Page 985 041453,000119: 15,3671 42661 SL DAD* 041454,000120: 15,3672 20211 8D 041455,000121: 15,3673 12046 VAL67 +2,1 # AARG 041456,000122: 15,3674 40756 SIN DMP* # SIN(T/27+PHI) OR T/32 OR T/365 041457,000123: 15,3675 12044 VAL67,1 # (A0**2+A1**2)**1/2 SIN(X+PHIA) 041458,000124: 15,3676 62015 DAD INCR,1 # PLUS 041459,000125: 15,3677 00027 GTMP # (B0**2+B1**2)**1/2 SIN(X+PHIB) 041460,000126: 15,3700 77771 DEC -6 B-14 041461,000127: 15,3701 00027 STORE GTMP # OR (C0**2+C1**2)**1/2 SIN(X+PHIC) 041462,000128: 15,3702 77614 BOFSET 041463,000129: 15,3703 00054 FREEFLAG 041464,000130: 15,3704 33666 POSITB 041465,000131: 15,3705 40745 POSITD DLOAD DMP* 041466,000132: 15,3706 00031 TIMEP # T 041467,000133: 15,3707 65747 RATESP,2 # LOMR,LOSR,LONR 041468,000134: 15,3710 42661 SL DAD* 041469,000135: 15,3711 20206 5D 041470,000136: 15,3712 65741 RATESP +6,2 # LOM0,LOS0,LON0 041471,000137: 15,3713 77625 DSU 041472,000138: 15,3714 00027 GTMP 041473,000139: 15,3715 10021 STORE STMP,2 # LOM,LOS,LON 041474,000140: 15,3716 63135 SLOAD INCR,2 041475,000141: 15,3717 00050 X2 041476,000142: 15,3720 77775 DEC -2 B-14 041477,000143: 15,3721 53015 DAD BZE 041478,000144: 15,3722 12026 RCB-13 # PLUS 2 041479,000145: 15,3723 33753 POSITE # 2ND 041480,000146: 15,3724 77644 BPL 041481,000147: 15,3725 33663 POSITA # 1ST 041482,000148: 15,3726 45345 POSITF DLOAD DSU # 3RD 041483,000149: 15,3727 00021 STMP # LOM 041484,000150: 15,3730 00025 STMP +4 # LON 041485,000151: 15,3731 65356 SIN PDDL # SIN(LOM-LON) 041486,000152: 15,3732 00021 STMP 041487,000153: 15,3733 65356 SIN PDDL # SIN LOM 041488,000154: 15,3734 00021 STMP 041489,000155: 15,3735 55546 COS VDEF # COS LOM 041490,000156: 15,3736 53521 MXV UNIT 041491,000157: 15,3737 12002 KONMAT # K1,K2,K3,K4 041492,000158: 15,3740 02723 STORE VMOON 041493,000159: 15,3741 65345 DLOAD PDDL 041494,000160: 15,3742 12004 KONMAT +2 # ZERO 041495,000161: 15,3743 00023 STMP +2 041496,000162: 15,3744 65356 SIN PDDL # SIN LOS 041497,000163: 15,3745 00023 STMP +2 041498,000164: 15,3746 55546 COS VDEF # COS LOS 041499,000165: 15,3747 53521 MXV UNIT 041500,000166: 15,3750 12002 KONMAT 041501,000167: 15,3751 02715 STORE VSUN 041502,000168: 15,3752 77616 RVQ 041503,000169: # Page 986 041504,000170: 15,3753 77745 POSITE DLOAD 041505,000171: 15,3754 12004 KONMAT +2 # ZEROS 041506,000172: 15,3755 00027 STORE GTMP 041507,000173: 15,3756 77650 GOTO 041508,000174: 15,3757 33705 POSITD 041509,000175: 05,2000 SETLOC EPHEM1 041510,000176: 05,2000 BANK 041511,000177: 041512,000178: 05,3505 COUNT* $$/EPHEM 041513,000179: 05,3505 STMP EQUALS 16D 041514,000180: 05,3505 GTMP EQUALS 22D 041515,000181: 05,3505 TIMEP EQUALS 24D 041516,000182: 041517,000183: # *** END OF LEMP50S .119 *** End of include-file LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc. Parent file is MAIN.agc