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