Source Code

032703,000001: # Copyright: Public domain. 032704,000002: # Filename: LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc 032705,000003: # Purpose: Part of the source code for Colossus, build 249. 032706,000004: # It is part of the source code for the Command Module's (CM) 032707,000005: # Apollo Guidance Computer (AGC), possibly for Apollo 8 and 9. 032708,000006: # Assembler: yaYUL 032709,000007: # Reference: pp. 743-746 of 1701.pdf. 032710,000008: # Contact: Ron Burkey <info@sandroid.org>. 032711,000009: # Website: www.ibiblio.org/apollo. 032712,000010: # Mod history: 08/22/04 RSB. Split off from P51-P53.agc. 032713,000011: 032714,000012: # The contents of the "Colossus249" files, in general, are transcribed 032715,000013: # from a scanned document obtained from MIT's website, 032716,000014: # http://hrst.mit.edu/hrs/apollo/public/archive/1701.pdf. Notations on this 032717,000015: # document read, in part: 032718,000016: 032719,000017: # Assemble revision 249 of AGC program Colossus by NASA 032720,000018: # 2021111-041. October 28, 1968. 032721,000019: 032722,000020: # This AGC program shall also be referred to as 032723,000021: # Colossus 1A 032724,000022: 032725,000023: # Prepared by 032726,000024: # Massachussets Institute of Technology 032727,000025: # 75 Cambridge Parkway 032728,000026: # Cambridge, Massachusetts 032729,000027: # under NASA contract NAS 9-4065. 032730,000028: 032731,000029: # Refer directly to the online document mentioned above for further information. 032732,000030: # Please report any errors (relative to 1701.pdf) to info@sandroid.org. 032733,000031: 032734,000032: # In some cases, where the source code for Luminary 131 overlaps that of 032735,000033: # Colossus 249, this code is instead copied from the corresponding Luminary 131 032736,000034: # source file, and then is proofed to incorporate any changes. 032737,000035: 032738,000036: # Page 743 032739,000037: # LUNAR AND SOLAR EPHEMERIDES SUBROUTINES 032740,000038: 032741,000039: # FUNCTIONAL DESCRIPTION 032742,000040: 032743,000041: # THESE SUBROUTINES ARE USED TO DETERMINE THE POSITION AND VELOCITY 032744,000042: # VECTORS OF THE SUN AND THE MOON RELATIVE TO THE EARTH AT THE 032745,000043: # SPECIFIED GROUND ELAPSED TIME INPUT BY THE USER. 032746,000044: 032747,000045: # THE POSITION OF THE MOON IS STORED IN THE COMPUTER IN THE FORM OF 032748,000046: # A NINTH DEGREE POLYNOMIAL APPROXIMATION WHICH IS VALID OVER A 15 032749,000047: # DAY INTERVAL BEGINNING SHORTLY BEFORE LAUNCH. THEREFORE THE TIME 032750,000048: # INPUT BY THE USER SHOULD FALL WITHIN THIS 15 DAY INTERVAL. 032751,000049: 032752,000050: # LSPOS COMPUTES THE POSITION VECTORS OF THE SUN AND THE MOON. 032753,000051: 032754,000052: # LUNPOS COMPUTES THE POSITION VECTOR OF THE MOON. 032755,000053: 032756,000054: # LUNVEL COMPUTES THE VELOCITY VECTOR OF THE MOON. 032757,000055: 032758,000056: # SOLPOS COMPUTES THE POSITION VECTOR OF THE SUN. 032759,000057: 032760,000058: # CALLING SEQUENCE 032761,000059: 032762,000060: # DLOAD CALL 032763,000061: # TIME GROUND ELAPSED TIME 032764,000062: # SUBROUTINE LSPOS OR LUNPOS OR LUNVEL OR SOLPOS 032765,000063: 032766,000064: # INPUT 032767,000065: 032768,000066: # 1) SPECIFIED GROUND ELAPSED TIME IN CS x B-28 LOADED IN MPAC. 032769,000067: 032770,000068: # 2) TIMEMO -- TIME AT THE CENTER OF THE RANGE OVER WHICH THE LUNAR 032771,000069: # POSITION POLYNOMIAL IS VALID IN CS x B-42. 032772,000070: 032773,000071: # 3) VECOEM -- VECTOR COEFFICIENTS OF THE LUNAR POSITION POLYNOMIAL 032774,000072: # LOADED IN DESCENDING SEQUENCE IN METERS/CS**N x B-2 032775,000073: 032776,000074: # 4) RESO -- POSITION VECTOR OF THE SUN RELATIVE TO THE EARTH AT 032777,000075: # TIMEMO IN METERS x B-38 032778,000076: 032779,000077: # 5) VESO -- VELOCITY VECTOR OF THE SUN RELATIVE TO THE EARTH AT 032780,000078: # TIMEMO IN METERS/CS x B-9 032781,000079: # 032782,000080: # 6) OMEGAES -- ANGULAR VELOCITY OF THE VECTOR RESO AT TIMEMO IN 032783,000081: # REV/CS x B+26 032784,000082: 032785,000083: # ALL EXCEPT THE FIRST INPUT ARE INCLUDED IN THE PRE-LAUNCH 032786,000084: # ERASABLE DATA LOAD. 032787,000085: 032788,000086: # OUTPUT -- LSPOS 032789,000087: # Page 744 032790,000088: 032791,000089: # 1) 2D(?) OF VAC AREA CONTAINS THE POSITION VECTOR OF THE SUN RELATIVE 032792,000090: # TO THE EARTH AT TIME INPUT BY THE USER IN METERS x B-38. 032793,000091: 032794,000092: # 2) MPAC CONTAINS THE POSITION VECTOR OF THE MOON RELATIVE TO THE 032795,000093: # EARTH AT TIME INPUT BY THE USER IN METERS x B-29 032796,000094: 032797,000095: # OUTPUT -- LUNPOS 032798,000096: 032799,000097: # MPAC CONTAINS THE POSITION VECTOR OF THE MOON RELATIVE TO THE 032800,000098: # EARTH AT THE TIME INPUT BY USER IN METERS x B-32(?) 032801,000099: 032802,000100: # OUTPUT -- LUNVEL 032803,000101: 032804,000102: # MPAC CONTAINS THE VELOCITY VECTOR OF THE MOON RELATIVE TO THE 032805,000103: # EARTH AT THE TIME INPUT BY THE USER IN METERS/CS x B-7 032806,000104: 032807,000105: # OUTPUT -- SOLPOS 032808,000106: 032809,000107: # MPAC CONTAINS THE POSITION VECTOR OF THE SUN RELATIVE TO THE EARTH 032810,000108: # AT TIME INPUT BY THE USER IN METERS x B-38. 032811,000109: 032812,000110: # SUBROUTINES USED 032813,000111: 032814,000112: # NONE 032815,000113: 032816,000114: # REMARKS 032817,000115: 032818,000116: # THE VAC AREA IS USED FOR STORAGE OF INTERMEDIATE AND FINAL RESULTS 032819,000117: # OF COMPUTATIONS. 032820,000118: 032821,000119: # S1, X1, AND X2 ARE USED BY THESE SUBROUTINES. 032822,000120: 032823,000121: # PRELAUNCH ERASABLE DATA LOAD ARE ONLY ERASABLE STORAGE USED BY 032824,000122: # THESE SUBROUTINES. 032825,000123: 032826,000124: # RESTARTS DURING OPERATION OF THESE SUBROUTINES MUST BE HANDLED BY 032827,000125: # THE USER. 032828,000126: 032829,000127: 36,2502 BANK 36 032830,000128: 26,2000 SETLOC EPHEM 032831,000129: 26,2000 BANK 032832,000130: 032833,000131: 26,2110 COUNT* $$/EPHEM 032834,000132: 26,2110 E7,1777 EBANK= END-E7 032835,000133: 032836,000134: 26,2110 77774 LSPOS AXT,2 # COMPUTES POSITION VECTORS OF BOTH THE 032837,000135: 26,2111 54161 RESA # SUN AND THE MOON. THE POSITION VECTOR 032838,000136: 26,2112 52170 AXT,1 GOTO # OF THE SUN IS STORED IN 2D OF THE VAC 032839,000137: 26,2113 54143 RES # AREA. THE POSITION VECTOR OF THE MOON 032840,000138: 26,2114 54126 LSTIME # IS STORED IN MPAC. 032841,000139: 26,2115 52170 LUNPOS AXT,1 GOTO # COMPUTES THE POSITION VECTOR OF THE MOON 032842,000140: 26,2116 54162 REM # AND STORES IT IN MPAC. 032843,000141: 26,2117 54126 LSTIME 032844,000142: # Page 745 032845,000143: 26,2120 52170 LUNVEL AXT,1 GOTO # COMPUTES THE VELOCITY VECTOR OF THE MOON 032846,000144: 26,2121 54173 VEM # AND STORES IT IN MPAC. 032847,000145: 26,2122 54126 LSTIME 032848,000146: 26,2123 76020 SOLPOS STQ AXT,1 # COMPUTES THE POSITION VECTOR OF THE SUN 032849,000147: 26,2124 00047 X2 # AND STORES IT IN MPAC. 032850,000148: 26,2125 54143 RES 032851,000149: 26,2126 54201 LSTIME SETPD SR 032852,000150: 26,2127 00001 0D 032853,000151: 26,2130 20617 14D 032854,000152: 26,2131 57571 TAD DCOMP 032855,000153: 26,2132 01707 TEPHEM 032856,000154: 26,2133 57571 TAD DCOMP 032857,000155: 26,2134 02034 TIMEMO 032858,000156: 26,2135 66261 SL SSP 032859,000157: 26,2136 20221 16D 032860,000158: 26,2137 00051 S1 032861,000159: 26,2140 00006 6D 032862,000160: 26,2141 77650 GOTO 032863,000161: 26,2142 00046 X1 032864,000162: 26,2143 41206 RES PUSH DMP # PD -2 032865,000163: 26,2144 02147 OMEGAES 032866,000164: 26,2145 71406 PUSH COS # PD -4 032867,000165: 26,2146 65361 VXSC PDDL # PD -8 032868,000166: 26,2147 02133 RESO 032869,000167: 26,2150 63356 SIN PDVL # PD-10 032870,000168: 26,2151 02133 RESO 032871,000169: 26,2152 53406 PUSH UNIT # PD-16 032872,000170: 26,2153 53435 VXV UNIT 032873,000171: 26,2154 02141 VESO 032874,000172: 26,2155 76435 VXV VSL1 # PD-10 032875,000173: 26,2156 53361 VXSC VAD # PD-02 032876,000174: 26,2157 52172 VSL1 GOTO # RES IN METERS x B-38 IN MPAC. 032877,000175: 26,2160 00047 X2 032878,000176: 26,2161 14003 RESA STODL 2D # RES IN METERS x B-38 IN 2D OF VAC. PD -0 032879,000177: 26,2162 63370 REM AXT,1 PDVL # PD -2 032880,000178: 26,2163 00066 54D 032881,000179: 26,2164 02037 VECOEM 032882,000180: 26,2165 52761 REMA VXSC VAD* 032883,000181: 26,2166 00001 0D 032884,000182: 26,2167 02133 VECOEM +60D,1 032885,000183: 26,2170 72500 TIX,1 VSL2 # REM IN METERS x B-29 IN MPAC. 032886,000184: 26,2171 54165 REMA 032887,000185: 26,2172 77616 RVQ 032888,000186: 26,2173 65370 VEM AXT,1 PDDL # PD -2 032889,000187: 26,2174 00060 48D 032890,000188: 26,2175 14214 NINEB4 032891,000189: 26,2176 74206 PUSH VXSC # PD -4 032892,000190: 26,2177 02037 VECOEM 032893,000191: 26,2200 77761 VEMA VXSC 032894,000192: 26,2201 00001 0D 032895,000193: # Page 746 032896,000194: 26,2202 14005 STODL 4D # PD -2 032897,000195: 26,2203 41425 DSU PUSH # PD -4 032898,000196: 26,2204 14216 ONEB4 032899,000197: 26,2205 53357 VXSC* VAD 032900,000198: 26,2206 02125 VECOEM +54D,1 032901,000199: 26,2207 00005 4D 032902,000200: 26,2210 72500 TIX,1 VSL2 # VEM IN METERS/CS x B-7 IN MPAC. 032903,000201: 26,2211 54200 VEMA 032904,000202: 26,2212 77616 RVQ 032905,000203: 26,2213 22000 00000 NINEB4 2DEC 9.0 B-4 032906,000204: 26,2215 02000 00000 ONEB4 2DEC 1.0 B-4 032907,000205: 032908,000206: 032909,000207: End of include-file LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc. Parent file is MAIN.agc