Source Code

034886,000001: # Copyright: Public domain. 034887,000002: # Filename: LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc 034888,000003: # Purpose: Part of the source code for Comanche, build 055. It 034889,000004: # is part of the source code for the Command Module's 034890,000005: # (CM) Apollo Guidance Computer (AGC), Apollo 11. 034891,000006: # Assembler: yaYUL 034892,000007: # Reference: pp. 785-788 034893,000008: # Contact: Ron Burkey <info@sandroid.org> 034894,000009: # Website: http://www.ibiblio.org/apollo. 034895,000010: # Mod history: 2009-05-12 RSB Adapted from Colossus249 file of the same 034896,000011: # name and Comanche 055 page images. 034897,000012: # 2009-07-26 RSB Added annotations related to computation 034898,000013: # of the ephemeral(?) polynomials. 034899,000014: 034900,000015: # The contents of the "Comanche055" files, in general, are transcribed 034901,000016: # from scanned documents. 034902,000017: 034903,000018: # Assemble revision 055 of AGC program Comanche by NASA 034904,000019: # 2021113-051. April 1, 1969. 034905,000020: 034906,000021: # This AGC program shall also be referred to as Colossus 2A 034907,000022: 034908,000023: # Prepared by 034909,000024: # Massachussets Institute of Technology 034910,000025: # 75 Cambridge Parkway 034911,000026: # Cambridge, Massachusetts 034912,000027: 034913,000028: # under NASA contract NAS 9-4065. 034914,000029: 034915,000030: # Refer directly to the online document mentioned above for further 034916,000031: # information. Please report any errors to info@sandroid.org. 034917,000032: 034918,000033: # Page 785 034919,000034: # LUNAR AND SOLAR EPHEMERIDES SUBROUTINES 034920,000035: 034921,000036: # FUNCTIONAL DESCRIPTION 034922,000037: 034923,000038: # THESE SUBROUTINES ARE USED TO DETERMINE THE POSITION AND VELOCITY 034924,000039: # VECTORS OF THE SUN AND THE MOON RELATIVE TO THE EARTH AT THE 034925,000040: # SPECIFIED GROUND ELAPSED TIME INPUT BY THE USER. 034926,000041: 034927,000042: # THE POSITION OF THE MOON IS STORED IN THE COMPUTER IN THE FORM OF 034928,000043: # A NINTH DEGREE POLYNOMIAL APPROXIMATION WHICH IS VALID OVER A 15 034929,000044: # DAY INTERVAL BEGINNING SHORTLY BEFORE LAUNCH. THEREFORE THE TIME 034930,000045: # INPUT BY THE USER SHOULD FALL WITHIN THIS 15 DAY INTERVAL. 034931,000046: # # The 9th-degree polynomial spoken of here is a pad load, meaning 034932,000047: # # that it is not actually hardcoded into the software. Additional 034933,000048: # # information about calculating the polynomial can be found on the 034934,000049: # # <a href="http://nassp.sourceforge.net/wiki/Lunar_Ephemeris_Polynomials"> 034935,000050: # # <b>Orbiter</b> NASSP wiki</a>, as well as information about calculation 034936,000051: # # of the <a href="http://nassp.sourceforge.net/wiki/Solar_Ephemeris"> 034937,000052: # # solar ephemerides</a>. 034938,000053: 034939,000054: # LSPOS COMPUTES THE POSITION VECTORS OF THE SUN AND THE MOON. 034940,000055: 034941,000056: # LUNPOS COMPUTES THE POSITION VECTOR OF THE MOON. 034942,000057: 034943,000058: # LUNVEL COMPUTES THE VELOCITY VECTOR OF THE MOON. 034944,000059: 034945,000060: # SOLPOS COMPUTES THE POSITION VECTOR OF THE SUN. 034946,000061: 034947,000062: # CALLING SEQUENCE 034948,000063: 034949,000064: # DLOAD CALL 034950,000065: # TIME GROUND ELAPSED TIME 034951,000066: # SUBROUTINE LSPOS OR LUNPOS OR LUNVEL OR SOLPOS 034952,000067: 034953,000068: # INPUT 034954,000069: 034955,000070: # 1) SPECIFIED GROUND ELAPSED TIME IN CS x B-28 LOADED IN MPAC. 034956,000071: 034957,000072: # 2) TIMEMO -- TIME AT THE CENTER OF THE RANGE OVER WHICH THE LUNAR 034958,000073: # POSITION POLYNOMIAL IS VALID IN CS x B-42. 034959,000074: 034960,000075: # 3) VECOEM -- VECTOR COEFFICIENTS OF THE LUNAR POSITION POLYNOMIAL 034961,000076: # LOADED IN DESCENDING SEQUENCE IN METERS/CS**N x B-2 034962,000077: 034963,000078: # 4) RESO -- POSITION VECTOR OF THE SUN RELATIVE TO THE EARTH AT 034964,000079: # TIMEMO IN METERS x B-38 034965,000080: 034966,000081: # 5) VESO -- VELOCITY VECTOR OF THE SUN RELATIVE TO THE EARTH AT 034967,000082: # TIMEMO IN METERS/CS x B-9 034968,000083: # 034969,000084: # 6) OMEGAES -- ANGULAR VELOCITY OF THE VECTOR RESO AT TIMEMO IN 034970,000085: # REV/CS x B+26 034971,000086: 034972,000087: # ALL EXCEPT THE FIRST INPUT ARE INCLUDED IN THE PRE-LAUNCH 034973,000088: # ERASABLE DATA LOAD. 034974,000089: 034975,000090: # OUTPUT -- LSPOS 034976,000091: # Page 786 034977,000092: 034978,000093: # 1) 2D OF VAC AREA CONTAINS THE POSITION VECTOR OF THE SUN RELATIVE 034979,000094: # TO THE EARTH AT TIME INPUT BY THE USER IN METERS x B-38. 034980,000095: 034981,000096: # 2) MPAC CONTAINS THE POSITION VECTOR OF THE MOON RELATIVE TO THE 034982,000097: # EARTH AT TIME INPUT BY THE USER IN METERS x B-29 034983,000098: 034984,000099: # OUTPUT -- LUNPOS 034985,000100: 034986,000101: # MPAC CONTAINS THE POSITION VECTOR OF THE MOON RELATIVE TO THE 034987,000102: # EARTH AT THE TIME INPUT BY USER IN METERS x B-29 034988,000103: 034989,000104: # OUTPUT -- LUNVEL 034990,000105: 034991,000106: # MPAC CONTAINS THE VELOCITY VECTOR OF THE MOON RELATIVE TO THE 034992,000107: # EARTH AT THE TIME INPUT BY THE USER IN METERS/CS x B-7 034993,000108: 034994,000109: # OUTPUT -- SOLPOS 034995,000110: 034996,000111: # MPAC CONTAINS THE POSITION VECTOR OF THE SUN RELATIVE TO THE EARTH 034997,000112: # AT TIME INPUT BY THE USER IN METERS x B-38. 034998,000113: 034999,000114: # SUBROUTINES USED 035000,000115: 035001,000116: # NONE 035002,000117: 035003,000118: # REMARKS 035004,000119: 035005,000120: # THE VAC AREA IS USED FOR STORAGE OF INTERMEDIATE AND FINAL RESULTS 035006,000121: # OF COMPUTATIONS. 035007,000122: 035008,000123: # S1, X1, AND X2 ARE USED BY THESE SUBROUTINES. 035009,000124: 035010,000125: # PRELAUNCH ERASABLE DATA LOAD ARE ONLY ERASABLE STORAGE USED BY 035011,000126: # THESE SUBROUTINES. 035012,000127: 035013,000128: # RESTARTS DURING OPERATION OF THESE SUBROUTINES MUST BE HANDLED BY 035014,000129: # THE USER. 035015,000130: 035016,000131: 36,2466 BANK 36 035017,000132: 26,2000 SETLOC EPHEM 035018,000133: 26,2000 BANK 035019,000134: 035020,000135: 26,2110 COUNT* $$/EPHEM 035021,000136: 26,2110 E7,1777 EBANK= END-E7 035022,000137: 26,2110 77774 LSPOS AXT,2 # COMPUTES POSITION VECTORS OF BOTH THE 035023,000138: 26,2111 54161 RESA # SUN AND THE MOON. THE POSITION VECTOR 035024,000139: 26,2112 52170 AXT,1 GOTO # OF THE SUN IS STORED IN 2D OF THE VAC 035025,000140: 26,2113 54143 RES # AREA. THE POSITION VECTOR OF THE MOON 035026,000141: 26,2114 54126 LSTIME # IS STORED IN MPAC. 035027,000142: 26,2115 52170 LUNPOS AXT,1 GOTO # COMPUTES THE POSITION VECTOR OF THE MOON 035028,000143: 26,2116 54162 REM # AND STORES IT IN MPAC. 035029,000144: 26,2117 54126 LSTIME 035030,000145: # Page 787 035031,000146: 26,2120 52170 LUNVEL AXT,1 GOTO # COMPUTES THE VELOCITY VECTOR OF THE MOON 035032,000147: 26,2121 54173 VEM # AND STORES IT IN MPAC. 035033,000148: 26,2122 54126 LSTIME 035034,000149: 26,2123 76020 SOLPOS STQ AXT,1 # COMPUTES THE POSITION VECTOR OF THE SUN 035035,000150: 26,2124 00047 X2 # AND STORES IT IN MPAC. 035036,000151: 26,2125 54143 RES 035037,000152: 26,2126 54201 LSTIME SETPD SR 035038,000153: 26,2127 00001 0D 035039,000154: 26,2130 20617 14D 035040,000155: 26,2131 57571 TAD DCOMP 035041,000156: 26,2132 01707 TEPHEM 035042,000157: 26,2133 57571 TAD DCOMP 035043,000158: 26,2134 02034 TIMEMO 035044,000159: 26,2135 66261 SL SSP 035045,000160: 26,2136 20221 16D 035046,000161: 26,2137 00051 S1 035047,000162: 26,2140 00006 6D 035048,000163: 26,2141 77650 GOTO 035049,000164: 26,2142 00046 X1 035050,000165: 26,2143 41206 RES PUSH DMP # PD- 2 035051,000166: 26,2144 02147 OMEGAES 035052,000167: 26,2145 71406 PUSH COS # PD- 4 035053,000168: 26,2146 65361 VXSC PDDL # PD- 8 035054,000169: 26,2147 02133 RESO 035055,000170: 26,2150 63356 SIN PDVL # PD-10 035056,000171: 26,2151 02133 RESO 035057,000172: 26,2152 53406 PUSH UNIT # PD-16 035058,000173: 26,2153 53435 VXV UNIT 035059,000174: 26,2154 02141 VESO 035060,000175: 26,2155 76435 VXV VSL1 # PD-10 035061,000176: 26,2156 53361 VXSC VAD # PD-02 035062,000177: 26,2157 52172 VSL1 GOTO # RES IN METERS x B-38 IN MPAC. 035063,000178: 26,2160 00047 X2 035064,000179: 26,2161 14003 RESA STODL 2D # RES IN METERS x B-38 IN 2D OF VAC. PD- 0 035065,000180: 26,2162 63370 REM AXT,1 PDVL # PD- 2 035066,000181: 26,2163 00066 54D 035067,000182: 26,2164 02037 VECOEM 035068,000183: 26,2165 52761 REMA VXSC VAD* 035069,000184: 26,2166 00001 0D 035070,000185: 26,2167 02133 VECOEM +60D,1 035071,000186: 26,2170 72500 TIX,1 VSL2 # REM IN METERS x B-29 IN MPAC. 035072,000187: 26,2171 54165 REMA 035073,000188: 26,2172 77616 RVQ 035074,000189: 26,2173 65370 VEM AXT,1 PDDL # PD- 2 035075,000190: 26,2174 00060 48D 035076,000191: 26,2175 14214 NINEB4 035077,000192: 26,2176 74206 PUSH VXSC # PD- 4 035078,000193: 26,2177 02037 VECOEM 035079,000194: 26,2200 77761 VEMA VXSC 035080,000195: 26,2201 00001 0D 035081,000196: # Page 788 035082,000197: 26,2202 14005 STODL 4D # PD- 2 035083,000198: 26,2203 41425 DSU PUSH # PD- 4 035084,000199: 26,2204 14216 ONEB4 035085,000200: 26,2205 53357 VXSC* VAD 035086,000201: 26,2206 02125 VECOEM +54D,1 035087,000202: 26,2207 00005 4D 035088,000203: 26,2210 72500 TIX,1 VSL2 # VEM IN METERS/CS x B-7 IN MPAC. 035089,000204: 26,2211 54200 VEMA 035090,000205: 26,2212 77616 RVQ 035091,000206: 26,2213 22000 00000 NINEB4 2DEC 9.0 B-4 035092,000207: 035093,000208: 26,2215 02000 00000 ONEB4 2DEC 1.0 B-4 035094,000209: 035095,000210: 035096,000211: End of include-file LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc. Parent file is MAIN.agc