Source Code

034887,000001: # Copyright: Public domain. 034888,000002: # Filename: LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc 034889,000003: # Purpose: Part of the source code for Comanche, build 055. It 034890,000004: # is part of the source code for the Command Module's 034891,000005: # (CM) Apollo Guidance Computer (AGC), Apollo 11. 034892,000006: # Assembler: yaYUL 034893,000007: # Reference: pp. 785-788 034894,000008: # Contact: Ron Burkey <info@sandroid.org> 034895,000009: # Website: http://www.ibiblio.org/apollo. 034896,000010: # Mod history: 2009-05-12 RSB Adapted from Colossus249 file of the same 034897,000011: # name and Comanche 055 page images. 034898,000012: # 2009-07-26 RSB Added annotations related to computation 034899,000013: # of the ephemeral(?) polynomials. 034900,000014: 034901,000015: # The contents of the "Comanche055" files, in general, are transcribed 034902,000016: # from scanned documents. 034903,000017: 034904,000018: # Assemble revision 055 of AGC program Comanche by NASA 034905,000019: # 2021113-051. April 1, 1969. 034906,000020: 034907,000021: # This AGC program shall also be referred to as Colossus 2A 034908,000022: 034909,000023: # Prepared by 034910,000024: # Massachussets Institute of Technology 034911,000025: # 75 Cambridge Parkway 034912,000026: # Cambridge, Massachusetts 034913,000027: 034914,000028: # under NASA contract NAS 9-4065. 034915,000029: 034916,000030: # Refer directly to the online document mentioned above for further 034917,000031: # information. Please report any errors to info@sandroid.org. 034918,000032: 034919,000033: # Page 785 034920,000034: # LUNAR AND SOLAR EPHEMERIDES SUBROUTINES 034921,000035: 034922,000036: # FUNCTIONAL DESCRIPTION 034923,000037: 034924,000038: # THESE SUBROUTINES ARE USED TO DETERMINE THE POSITION AND VELOCITY 034925,000039: # VECTORS OF THE SUN AND THE MOON RELATIVE TO THE EARTH AT THE 034926,000040: # SPECIFIED GROUND ELAPSED TIME INPUT BY THE USER. 034927,000041: 034928,000042: # THE POSITION OF THE MOON IS STORED IN THE COMPUTER IN THE FORM OF 034929,000043: # A NINTH DEGREE POLYNOMIAL APPROXIMATION WHICH IS VALID OVER A 15 034930,000044: # DAY INTERVAL BEGINNING SHORTLY BEFORE LAUNCH. THEREFORE THE TIME 034931,000045: # INPUT BY THE USER SHOULD FALL WITHIN THIS 15 DAY INTERVAL.

The 9th-degree polynomial spoken of here is a pad load, meaning that it is not actually hardcoded into the software. Additional information about calculating the polynomial can be found on the Orbiter NASSP wiki, as well as information about calculation of the solar ephemerides.

034939,000053: 
034940,000054:                                                                                                 #         LSPOS COMPUTES THE POSITION VECTORS OF THE SUN AND THE MOON.
034941,000055: 
034942,000056:                                                                                                 #         LUNPOS COMPUTES THE POSITION VECTOR OF THE MOON.
034943,000057: 
034944,000058:                                                                                                 #         LUNVEL COMPUTES THE VELOCITY VECTOR OF THE MOON.
034945,000059: 
034946,000060:                                                                                                 #         SOLPOS COMPUTES THE POSITION VECTOR OF THE SUN.
034947,000061: 
034948,000062:                                                                                                 #  CALLING SEQUENCE
034949,000063: 
034950,000064:                                                                                                 #         DLOAD   CALL
034951,000065:                                                                                                 #                 TIME            GROUND ELAPSED TIME
034952,000066:                                                                                                 #                 SUBROUTINE      LSPOS OR LUNPOS OR LUNVEL OR SOLPOS
034953,000067: 
034954,000068:                                                                                                 #  INPUT
034955,000069: 
034956,000070:                                                                                                 #         1) SPECIFIED GROUND ELAPSED TIME IN CS x B-28 LOADED IN MPAC.
034957,000071: 
034958,000072:                                                                                                 #         2) TIMEMO -- TIME AT THE CENTER OF THE RANGE OVER WHICH THE LUNAR
034959,000073:                                                                                                 #         POSITION POLYNOMIAL IS VALID IN CS x B-42.
034960,000074: 
034961,000075:                                                                                                 #         3) VECOEM -- VECTOR COEFFICIENTS OF THE LUNAR POSITION POLYNOMIAL
034962,000076:                                                                                                 #         LOADED IN DESCENDING SEQUENCE IN METERS/CS**N x B-2
034963,000077: 
034964,000078:                                                                                                 #         4) RESO -- POSITION VECTOR OF THE SUN RELATIVE TO THE EARTH AT
034965,000079:                                                                                                 #         TIMEMO IN METERS x B-38
034966,000080: 
034967,000081:                                                                                                 #         5) VESO -- VELOCITY VECTOR OF THE SUN RELATIVE TO THE EARTH AT
034968,000082:                                                                                                 #         TIMEMO IN METERS/CS x B-9
034969,000083:                                                                                                 #  
034970,000084:                                                                                                 #         6) OMEGAES -- ANGULAR VELOCITY OF THE VECTOR RESO AT TIMEMO IN
034971,000085:                                                                                                 #         REV/CS x B+26
034972,000086: 
034973,000087:                                                                                                 #         ALL EXCEPT THE FIRST INPUT ARE INCLUDED IN THE PRE-LAUNCH
034974,000088:                                                                                                 #         ERASABLE DATA LOAD.
034975,000089: 
034976,000090:                                                                                                 #  OUTPUT -- LSPOS
034977,000091:                                                                                                 #  Page 786
034978,000092: 
034979,000093:                                                                                                 #         1) 2D OF VAC AREA CONTAINS THE POSITION VECTOR OF THE SUN RELATIVE
034980,000094:                                                                                                 #         TO THE EARTH AT TIME INPUT BY THE USER IN METERS x B-38.
034981,000095: 
034982,000096:                                                                                                 #         2) MPAC CONTAINS THE POSITION VECTOR OF THE MOON RELATIVE TO THE
034983,000097:                                                                                                 #         EARTH AT TIME INPUT BY THE USER IN METERS x B-29
034984,000098: 
034985,000099:                                                                                                 #  OUTPUT -- LUNPOS
034986,000100: 
034987,000101:                                                                                                 #         MPAC CONTAINS THE POSITION VECTOR OF THE MOON RELATIVE TO THE
034988,000102:                                                                                                 #         EARTH AT THE TIME INPUT BY USER IN METERS x B-29
034989,000103: 
034990,000104:                                                                                                 #  OUTPUT -- LUNVEL
034991,000105: 
034992,000106:                                                                                                 #         MPAC CONTAINS THE VELOCITY VECTOR OF THE MOON RELATIVE TO THE
034993,000107:                                                                                                 #         EARTH AT THE TIME INPUT BY THE USER IN METERS/CS x B-7
034994,000108: 
034995,000109:                                                                                                 #  OUTPUT -- SOLPOS
034996,000110: 
034997,000111:                                                                                                 #         MPAC CONTAINS THE POSITION VECTOR OF THE SUN RELATIVE TO THE EARTH
034998,000112:                                                                                                 #         AT TIME INPUT BY THE USER IN METERS x B-38.
034999,000113: 
035000,000114:                                                                                                 #  SUBROUTINES USED
035001,000115: 
035002,000116:                                                                                                 #         NONE
035003,000117: 
035004,000118:                                                                                                 #  REMARKS
035005,000119: 
035006,000120:                                                                                                 #         THE VAC AREA IS USED FOR STORAGE OF INTERMEDIATE AND FINAL RESULTS
035007,000121:                                                                                                 #         OF COMPUTATIONS.
035008,000122: 
035009,000123:                                                                                                 #         S1, X1, AND X2 ARE USED BY THESE SUBROUTINES.
035010,000124: 
035011,000125:                                                                                                 #         PRELAUNCH ERASABLE DATA LOAD ARE ONLY ERASABLE STORAGE USED BY
035012,000126:                                                                                                 #         THESE SUBROUTINES.
035013,000127: 
035014,000128:                                                                                                 #         RESTARTS DURING OPERATION OF THESE SUBROUTINES MUST BE HANDLED BY
035015,000129:                                                                                                 #         THE USER.
035016,000130: 
035017,000131: 36,2466                                          BANK     36                                    
035018,000132: 26,2000                                          SETLOC   EPHEM                                 
035019,000133: 26,2000                                          BANK                                           
035020,000134: 
035021,000135: 26,2110                                          COUNT*   $$/EPHEM                              
035022,000136: 26,2110  E7,1777                                 EBANK=   END-E7                                
035023,000137: 26,2110           77774        LSPOS             AXT,2                                          #  COMPUTES POSITION VECTORS OF BOTH THE
035024,000138: 26,2111           54161                                   RESA                                  #  SUN AND THE MOON.  THE POSITION VECTOR
035025,000139: 26,2112           52170                          AXT,1    GOTO                                  #  OF THE SUN IS STORED IN 2D OF THE VAC
035026,000140: 26,2113           54143                                   RES                                   #  AREA.  THE POSITION VECTOR OF THE MOON
035027,000141: 26,2114           54126                                   LSTIME                                #  IS STORED IN MPAC.
035028,000142: 26,2115           52170        LUNPOS            AXT,1    GOTO                                  #  COMPUTES THE POSITION VECTOR OF THE MOON
035029,000143: 26,2116           54162                                   REM                                   #  AND STORES IT IN MPAC.
035030,000144: 26,2117           54126                                   LSTIME                                
035031,000145:                                                                                                 #  Page 787
035032,000146: 26,2120           52170        LUNVEL            AXT,1    GOTO                                  #  COMPUTES THE VELOCITY VECTOR OF THE MOON
035033,000147: 26,2121           54173                                   VEM                                   #  AND STORES IT IN MPAC.
035034,000148: 26,2122           54126                                   LSTIME                                
035035,000149: 26,2123           76020        SOLPOS            STQ      AXT,1                                 #  COMPUTES THE POSITION VECTOR OF THE SUN
035036,000150: 26,2124           00047                                   X2                                    #  AND STORES IT IN MPAC.
035037,000151: 26,2125           54143                                   RES                                   
035038,000152: 26,2126           54201        LSTIME            SETPD    SR                                    
035039,000153: 26,2127           00001                                   0D                                    
035040,000154: 26,2130           20617                                   14D                                   
035041,000155: 26,2131           57571                          TAD      DCOMP                                 
035042,000156: 26,2132           01707                                   TEPHEM                                
035043,000157: 26,2133           57571                          TAD      DCOMP                                 
035044,000158: 26,2134           02034                                   TIMEMO                                
035045,000159: 26,2135           66261                          SL       SSP                                   
035046,000160: 26,2136           20221                                   16D                                   
035047,000161: 26,2137           00051                                   S1                                    
035048,000162: 26,2140           00006                                   6D                                    
035049,000163: 26,2141           77650                          GOTO                                           
035050,000164: 26,2142           00046                                   X1                                    
035051,000165: 26,2143           41206        RES               PUSH     DMP                                   #                                         PD- 2
035052,000166: 26,2144           02147                                   OMEGAES                               
035053,000167: 26,2145           71406                          PUSH     COS                                   #                                         PD- 4
035054,000168: 26,2146           65361                          VXSC     PDDL                                  #                                         PD- 8
035055,000169: 26,2147           02133                                   RESO                                  
035056,000170: 26,2150           63356                          SIN      PDVL                                  #                                         PD-10
035057,000171: 26,2151           02133                                   RESO                                  
035058,000172: 26,2152           53406                          PUSH     UNIT                                  #                                         PD-16
035059,000173: 26,2153           53435                          VXV      UNIT                                  
035060,000174: 26,2154           02141                                   VESO                                  
035061,000175: 26,2155           76435                          VXV      VSL1                                  #                                         PD-10
035062,000176: 26,2156           53361                          VXSC     VAD                                   #                                         PD-02
035063,000177: 26,2157           52172                          VSL1     GOTO                                  #  RES IN METERS x B-38 IN MPAC.
035064,000178: 26,2160           00047                                   X2                                    
035065,000179: 26,2161           14003        RESA              STODL    2D                                    #  RES IN METERS x B-38 IN 2D OF VAC.     PD- 0
035066,000180: 26,2162           63370        REM               AXT,1    PDVL                                  #                                         PD- 2
035067,000181: 26,2163           00066                                   54D                                   
035068,000182: 26,2164           02037                                   VECOEM                                
035069,000183: 26,2165           52761        REMA              VXSC     VAD*                                  
035070,000184: 26,2166           00001                                   0D                                    
035071,000185: 26,2167           02133                                   VECOEM     +60D,1                     
035072,000186: 26,2170           72500                          TIX,1    VSL2                                  #  REM IN METERS x B-29 IN MPAC.
035073,000187: 26,2171           54165                                   REMA                                  
035074,000188: 26,2172           77616                          RVQ                                            
035075,000189: 26,2173           65370        VEM               AXT,1    PDDL                                  #                                         PD- 2
035076,000190: 26,2174           00060                                   48D                                   
035077,000191: 26,2175           14214                                   NINEB4                                
035078,000192: 26,2176           74206                          PUSH     VXSC                                  #                                         PD- 4
035079,000193: 26,2177           02037                                   VECOEM                                
035080,000194: 26,2200           77761        VEMA              VXSC                                           
035081,000195: 26,2201           00001                                   0D                                    
035082,000196:                                                                                                 #  Page 788
035083,000197: 26,2202           14005                          STODL    4D                                    #                                         PD- 2
035084,000198: 26,2203           41425                          DSU      PUSH                                  #                                         PD- 4
035085,000199: 26,2204           14216                                   ONEB4                                 
035086,000200: 26,2205           53357                          VXSC*    VAD                                   
035087,000201: 26,2206           02125                                   VECOEM     +54D,1                     
035088,000202: 26,2207           00005                                   4D                                    
035089,000203: 26,2210           72500                          TIX,1    VSL2                                  #  VEM IN METERS/CS x B-7 IN MPAC.
035090,000204: 26,2211           54200                                   VEMA                                  
035091,000205: 26,2212           77616                          RVQ                                            
035092,000206: 26,2213           22000 00000  NINEB4            2DEC     9.0        B-4                        
035093,000207: 
035094,000208: 26,2215           02000 00000  ONEB4             2DEC     1.0        B-4                        
035095,000209: 
035096,000210: 
035097,000211: 

End of include-file LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc.  Parent file is MAIN.agc