Source Code

042552,000001: # Copyright: Public domain. 042553,000002: # Filename: LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc 042554,000003: # Purpose: Part of the source code for Luminary 1A build 099. 042555,000004: # It is part of the source code for the Lunar Module's (LM) 042556,000005: # Apollo Guidance Computer (AGC), for Apollo 11. 042557,000006: # Assembler: yaYUL 042558,000007: # Contact: Hartmuth Gutsche <hgutsche@xplornet.com>. 042559,000008: # Website: www.ibiblio.org/apollo. 042560,000009: # Pages: 984-987 042561,000010: # Mod history: 2009-05-24 HG Transcribed from page images. 042562,000011: 042563,000012: # This source code has been transcribed or otherwise adapted from 042564,000013: # digitized images of a hardcopy from the MIT Museum. The digitization 042565,000014: # was performed by Paul Fjeld, and arranged for by Deborah Douglas of 042566,000015: # the Museum. Many thanks to both. The images (with suitable reduction 042567,000016: # in storage size and consequent reduction in image quality as well) are 042568,000017: # available online at www.ibiblio.org/apollo. If for some reason you 042569,000018: # find that the images are illegible, contact me at info@sandroid.org 042570,000019: # about getting access to the (much) higher-quality images which Paul 042571,000020: # actually created. 042572,000021: 042573,000022: # Notations on the hardcopy document read, in part: 042574,000023: 042575,000024: # Assemble revision 001 of AGC program LMY99 by NASA 2021112-61 042576,000025: # 16:27 JULY 14, 1969 042577,000026: 042578,000027: # Page 984 042579,000028: # NAME -- LSPOS -- LOCATE SUN AND MOON DATE -- 25 OCT 67 042580,000029: # MOD NO. 1 042581,000030: # MOD BY NEVILLE ASSEMBLY SUNDANCE 042582,000031: 042583,000032: # FUNCTIONAL DESCRIPTION 042584,000033: 042585,000034: # COMPUTES UNIT POSITION VECTOR OF THE SUN AND MOON IN THE BASIC REFERENCE SYSTEM. THE SUN VECTOR S IS 042586,000035: # LOCATED VIA TWO ANGLES. THE FIRST ANGLE (OBLIQUITY) IS THE ANGLE BETWEEN THE EARTH EQUATOR AND THE ECLIPTIC. THE 042587,000036: # POSITION VECTOR OF THE SUN IS 042588,000037: # _ 042589,000038: # S = (COS(LOS), COS(OBL)*SIN(LOS), SIN(OBL)*SIN(LOS)), WHERE 042590,000039: 042591,000040: # LOS = LOS +LOS *T-(C *SIN(2PI*T)/365.24 +C *COS(2PI*T)/365.24) 042592,000041: # 0 R 0 1 042593,000042: # LOS (RAD) IS THE LONGITUDE OF THE SUN FOR MIGNIGHT JUNE 30TH OF THE PARTICULAR YEAR. 042594,000043: # 0 042595,000044: # LOS (RAD/DAY) IS THE MEAN RATE FOR THE PARTICULAR YEAR. 042596,000045: # R 042597,000046: 042598,000047: # LOS AND LOS ARE STORED AS LOSC AND LOSR IN RATESP. 042599,000048: # 0 R 042600,000049: # COS(OBL) AND SIN(OBL) ARE STORED IN THE MATRIX KONMAT. 042601,000050: 042602,000051: # T, TIME MEASURED IN DAYS (24 HOURS) IS STORED IN TIMEP. 042603,000052: 042604,000053: # C AND C ARE FUDGE FACTORS TO MINIMIZE THE DEVIATION. THEY ARE STORED AS ONE CONSTANT (CMOD), SINCE 042605,000054: # 0 1 2 2 1/2 042606,000055: # C *SIN(X)+C *COS(X) CAN BE WRITTEN AS (C +C ) *SIN(X+PHI), WHERE PHI=ARCTAN(C /C ). 042607,000056: # 0 1 1 0 042608,000057: 042609,000058: # THE MOON IS LOCATED VIA FOUR ANGLES, THE FIRST IS THE OBLIQUITY. THE SECOND IS THE MEAN LONGITUDE OF THE MOON, 042610,000059: # MEASURED IN THE ECLIPTIC FROM THE MEAN EQUINOX TO THE MEAN ASCENDING NODE OF THE LUNAR ORBIT, AND THEN ALONG THE 042611,000060: # ORBIT. THE THIRD ANGLE IS THE ANGLE BETWEEN THE ECLIPTIC AND THE LUNAR ORBIT. THE FOURTH ANGLE IS THE LONGITUDE 042612,000061: # OF THE NODE OF THE MOON, MEASURED IN THE LUNAR ORBIT. LET THESE ANGLES BE OBL,LOM,IM, AND LON RESPECTIVELY. 042613,000062: 042614,000063: # THE SIMPLIFIED POSITION VECTOR OF THE MOON IS 042615,000064: # _ 042616,000065: # 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)) 042617,000066: 042618,000067: # WHERE 042619,000068: # 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 042620,000069: # 0 R 0 1 0 1 042621,000070: # LON=LON +LON 042622,000071: # 0 R 042623,000072: # A , A , B AND B ARE STORE AS AMOD AND BMOD (SEE DESCRIPTION OF CMOD, ABOVE). COS(OBL), SIN(OBL)*SIN(IM), 042624,000073: # 0 1 0 1 042625,000074: # SIN(OBL), AND COS(OBL)*SIN(IM) ARE STORED IN KONMAT AS K1, K2, K3, AND K4, RESPECTIVELY. LOM , LOM , LON , LON 042626,000075: # 0 R 0 R 042627,000076: # ARE STORED AS LOM0, LOMR, LON0, AND LONR IN RATESP. 042628,000077: 042629,000078: # THE THREE PHIS ARE STORED AS AARG, BARG, AND CARG(SUN). ALL CONSTANTS ARE UPDATED BY YEAR. 042630,000079: 042631,000080: # CALLING SEQUENCE 042632,000081: # Page 985 042633,000082: # CALL LSPOS. RETURN IS VIA CPRET. 042634,000083: 042635,000084: # ALARMS OR ABORTS 042636,000085: # NONE 042637,000086: 042638,000087: # ERASABLE INITIALIZATION REQUIRED 042639,000088: # TEPHEM -- TIME FROM MIGNIGHT 1 JULY PRECEDING THE LAUNCH TO THE TIME OF THE LAUNCH (WHEN THE AGC CLOCK WENT 042640,000089: # TO ZERO). TEPHEM IS TP WITH UNITS OF CENTI-SECONDS. 042641,000090: 042642,000091: # TIME2 AND TIME1 ARE IN MPAC AND MPAC +1 WHEN PROGRAM IS CALLED. 042643,000092: 042644,000093: # OUTPUT 042645,000094: # UNIT POSITIONAL VECTOR OF SUN IN VSUN. (SCALED B-1) 042646,000095: # UNIT POSITIONAL VECTOR OF MOON IN VMOON. (SCALED B-1) 042647,000096: 042648,000097: # SUBROUTINES USED 042649,000098: # NONE 042650,000099: 042651,000100: # DEBRIS 042652,000101: # CURRENT CORE SET, WORK AREA AND FREEFLAG 042653,000102: 042654,000103: 04,3027 BANK 04 042655,000104: 15,2000 SETLOC EPHEM 042656,000105: 15,2000 BANK 042657,000106: 042658,000107: 15,3664 E5,1714 EBANK= VSUN 042659,000108: 15,3664 COUNT* $$/EPHEM 042660,000109: 15,3664 15,3664 LUNPOS EQUALS LSPOS 042661,000110: 042662,000111: 15,3664 54201 LSPOS SETPD SR 042663,000112: 15,3665 00001 0 042664,000113: 15,3666 20617 14D # TP 042665,000114: 15,3667 56371 TAD DDV 042666,000115: # HG comments in [...] are hand written comments in original listing 042667,000116: 15,3670 01707 TEPHEM # TIME OF LAUNCH [IN CENTISEC B 42] 042668,000117: 15,3671 12024 CSTODAY # 24 HOURS -- 8640000 CENTI-SECS/DAY B-33 042669,000118: 15,3672 00031 STORE TIMEP # T IN DAYS [@ B 9 = 512 DAYS] 042670,000119: 15,3673 77170 AXT,1 AXT,2 # [GRANULRITY = 0.164 SEC] 042671,000120: 15,3674 00000 0 042672,000121: 15,3675 00000 0 042673,000122: 15,3676 77614 CLEAR 042674,000123: 15,3677 00274 FREEFLAG # SWITCH BIT 042675,000124: 15,3700 77745 POSITA DLOAD 042676,000125: 15,3701 12004 KONMAT +2 # ZEROS 042677,000126: 15,3702 00027 STORE GTMP 042678,000127: 15,3703 40745 POSITB DLOAD DMP* 042679,000128: 15,3704 00031 TIMEP # T 042680,000129: 15,3705 12050 VAL67 +4,1 # 1/27 OR 1/32 OR 1/365 042681,000130: # Page 986 042682,000131: 15,3706 42661 SL DAD* 042683,000132: 15,3707 20211 8D 042684,000133: 15,3710 12046 VAL67 +2,1 # AARG 042685,000134: 15,3711 40756 SIN DMP* # SIN(T/27+PHI) OR T/32 OR T/365 042686,000135: 15,3712 12044 VAL67,1 # (A0**2+A1**2)**1/2 SIN(X+PHIA) 042687,000136: 15,3713 62015 DAD INCR,1 # PLUS 042688,000137: 15,3714 00027 GTMP # (B0**2+B1**2)**1/2 SIN(X+PHIB) 042689,000138: 15,3715 77771 DEC -6 B-14 042690,000139: 15,3716 00027 STORE GTMP # OR (C0**2+C1**2)**1/2 SIN(X+PHIC) 042691,000140: 15,3717 77614 BOFSET 042692,000141: 15,3720 00054 FREEFLAG 042693,000142: 15,3721 33703 POSITB 042694,000143: 15,3722 40745 POSITD DLOAD DMP* 042695,000144: 15,3723 00031 TIMEP # T 042696,000145: 15,3724 65747 RATESP,2 # LOMR,LOSR,LONR 042697,000146: 15,3725 42661 SL DAD* 042698,000147: 15,3726 20206 5D 042699,000148: 15,3727 65741 RATESP +6,2 # LOM0,LOS0,LON0 042700,000149: 15,3730 77625 DSU 042701,000150: 15,3731 00027 GTMP 042702,000151: 15,3732 10021 STORE STMP,2 # LOM,LOS,LON 042703,000152: 15,3733 63135 SLOAD INCR,2 042704,000153: 15,3734 00050 X2 042705,000154: 15,3735 77775 DEC -2 B-14 042706,000155: 15,3736 53015 DAD BZE 042707,000156: 15,3737 12026 RCB-13 # PLUS 2 042708,000157: 15,3740 33770 POSITE # 2ND 042709,000158: 15,3741 77644 BPL 042710,000159: 15,3742 33700 POSITA # 1ST 042711,000160: 15,3743 45345 POSITF DLOAD DSU # 3RD 042712,000161: 15,3744 00021 STMP # LOM 042713,000162: 15,3745 00025 STMP +4 # LON 042714,000163: 15,3746 65356 SIN PDDL # SIN(LOM-LON) 042715,000164: 15,3747 00021 STMP 042716,000165: 15,3750 65356 SIN PDDL # SIN LOM 042717,000166: 15,3751 00021 STMP 042718,000167: 15,3752 55546 COS VDEF # COS LOM 042719,000168: 15,3753 53521 MXV UNIT 042720,000169: 15,3754 12002 KONMAT # K1,K2,K3,K4, 042721,000170: 15,3755 02723 STORE VMOON 042722,000171: 15,3756 65345 DLOAD PDDL 042723,000172: 15,3757 12004 KONMAT +2 # ZERO 042724,000173: 15,3760 00023 STMP +2 042725,000174: 15,3761 65356 SIN PDDL # SIN LOS 042726,000175: 15,3762 00023 STMP +2 042727,000176: 15,3763 55546 COS VDEF # COS LOS 042728,000177: 15,3764 53521 MXV UNIT 042729,000178: 15,3765 12002 KONMAT 042730,000179: 15,3766 02715 STORE VSUN 042731,000180: 15,3767 77616 RVQ 042732,000181: # Page 987 042733,000182: 15,3770 77745 POSITE DLOAD 042734,000183: 15,3771 12004 KONMAT +2 # ZEROS 042735,000184: 15,3772 00027 STORE GTMP 042736,000185: 15,3773 77650 GOTO 042737,000186: 15,3774 33722 POSITD 042738,000187: 15,3775 77616 LUNVEL RVQ 042739,000188: 05,2000 SETLOC EPHEM1 042740,000189: 05,2000 BANK 042741,000190: 042742,000191: 05,3506 COUNT* $$/EPHEM 042743,000192: 05,3506 STMP EQUALS 16D 042744,000193: 05,3506 GTMP EQUALS 22D 042745,000194: 05,3506 TIMEP EQUALS 24D 042746,000195: 042747,000196: # *** END OF LEMP50S .115 *** End of include-file LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc. Parent file is MAIN.agc