Source Code
![]() |
These source-code files were obtained by digitally photographing
an Artemis 72 program listing from a private collection and then
modifying pre-existing Comanche 55 (Apollo 11) source files to
incorporate changes. Note that the page images
presented online are of reduced quality, and that additional images
may be available. Report any conversion errors or legibility
problems in page images to info@sandroid.org.
Notations on the program listing read, in part:GAP: ASSEMBLE REVISION 072 OF AGC PROGRAM ARTEMIS BY NASA 2021114-011 11:40 FEB. 26, 1971 THIS AGC PROGRAM SHALL ALSO BE REFERRED TO AS COLOSSUS 3 THIS PROGRAM IS INTENDED FOR USE IN THE CM AS SPECIFIED IN REPORT R-577. THIS PROGRAM WAS PREPARED UNDER OSR PROJECT 55-23890, SPONSORED BY THE MANNED SPACECRAFT CENTER OF THE NATIONAL AERONAUTICS AND SPACE ADMINISTRATION THROUGH CONTRACT NAS 9-4065 WITH THE CHARLES STARK DRAPER LABORATORY, MASSACHUSETTS INSTITUTE OF TECHNOLOGY, CAMBRIDGE, MASS. |
022156,000002: # Copyright: Public domain.
022157,000003: # Filename: R31.agc
022158,000004: # Purpose: Part of the source code for Artemis (i.e., Colossus 3),
022159,000005: # build 072. This is for the Command Module's (CM)
022160,000006: # Apollo Guidance Computer (AGC), we believe for
022161,000007: # Apollo 15-17.
022162,000008: # Assembler: yaYUL
022163,000009: # Contact: Hartmuth Gutsche <hgutsche@xplornet.com>
022164,000010: # Website: www.ibiblio.org/apollo/index.html
022165,000011: # Page scans: www.ibiblio.org/apollo/ScansForConversion/Artemis072/
022166,000012: # Mod history: 2009-09-20 HG Adapted from corresponding Comanche 055 file.
022167,000013: # 2009-09-21 JL Fixed minor typos.
022168,000014: # 2010-01-26 JL Updated header comments.
022169,000015: # 2010-01-31 JL Fixed page number.
022170,000016: # 2010-02-20 RSB Un-##'d this header.
022171,000017:
022172,000018: # # Page 507
022173,000019: 31,2000 SETLOC R31
022174,000020: 31,2000 BANK
022175,000021:
022176,000022: 31,2000 COUNT* $$/R3134
022177,000023: 31,2000 35045 R31CALL CAF PRIO3
022178,000024: 31,2001 05135 TC FINDVAC
022179,000025: 31,2002 E4,1760 EBANK= SUBEXIT
022180,000026: 31,2002 02031 62064 2CADR V83CALL
022181,000027:
022182,000028: 31,2004 04636 DSPDELAY TC BANKCALL
022183,000029: 31,2005 01730 CADR 1SECDELY
022184,000030: 31,2006 31247 CA EXTVBACT
022185,000031: 31,2007 74755 MASK BIT12
022186,000032: 31,2010 00006 EXTEND
022187,000033: 31,2011 12004 BZF DSPDELAY
022188,000034:
022189,000035: 31,2012 30105 DISPN5X CA FLAGWRD9 # TEST R31FLAG (IN SUNDANCE R31FLAG WILL
022190,000036: 31,2013 74765 MASK R31FLBIT # ALWAYS BE SET AS R34 DOES NOT EXIST
022191,000037: 31,2014 00006 EXTEND
022192,000038: 31,2015 12020 BZF +3
022193,000039: 31,2016 32135 CAF V16N54 # R31 USE NOUN 54
022194,000040: 31,2017 02021 TC +2
022195,000041: 31,2020 32136 CAF V16N53 # R34 USE NOUN 53
022196,000042: 31,2021 04636 TC BANKCALL
022197,000043: 31,2022 20576 CADR GOMARKF
022198,000044: 31,2023 05626 TC B5OFF
022199,000045: 31,2024 05626 TC B5OFF
022200,000046: 31,2025 12012 TCF DISPN5X
022201,000047:
022202,000048: 31,2026 06006 V83 TC INTPRET
022203,000049: 31,2027 77650 GOTO
022204,000050: 31,2030 62177 HAVEBASE # INTEG STATE VECTORS
022205,000051: 31,2031 06006 V83CALL TC INTPRET
022206,000052: 31,2032 77650 GOTO
022207,000053: 31,2033 62146 STATEXTP # EXTRAPOLATE STATE VECTORS
022208,000054: 31,2034 52375 COMPDISP VLOAD VSU
022209,000055: 31,2035 00001 RATT
022210,000056: 31,2036 02320 RONE
022211,000057: 31,2037 51406 PUSH ABVAL # RATT-RONE TO 0D PD= 6
022212,000058: 31,2040 02312 STORE RANGE # METERS B-29
022213,000059: 31,2041 77301 NORM VLOAD
022214,000060: 31,2042 00047 X1 # RATT-RONE PD= 0
022215,000061: 31,2043 77762 VSR1
022216,000062: 31,2044 53457 VSL* UNIT
022217,000063: 31,2045 20201 0,1
022218,000064: 31,2046 52315 PDVL VSU # UNIT(LOS) TO 0D PD= 6
022219,000065: 31,2047 00007 VATT
022220,000066: 31,2050 02326 VONE
022221,000067: 31,2051 77641 DOT # (VATT-VONE).UNIT(LOS) PD= 0
022222,000068: # # Page 508
022223,000069: 31,2052 77752 SL1
022224,000070: 31,2053 36314 STCALL RRATE # RANGE RATE M/CS B-7
022225,000071: 31,2054 47530 CDUTRIG # TO INITIALIZE FOR *NBSM*
022226,000072: 31,2055 77624 CALL
022227,000073: 31,2056 62317 R34LOS # NOTE. PDL MUST = 0.
022228,000074: 31,2057 53575 R34ANG VLOAD UNIT
022229,000075: 31,2060 02320 RONE
022230,000076: 31,2061 77715 PDVL # UR TO 0D PD= 6
022231,000077: 31,2062 15334 THISAXIS # UNITX FOR CM, UNITZ FOR LM
022232,000078: 31,2063 77214 BON VLOAD # CHK R31FLAG. ON=R31 THETA, OFF=R34 PHI
022233,000079: 31,2064 04713 R31FLAG
022234,000080: 31,2065 62067 +2 # R31-THETA
022235,000081: 31,2066 00015 12D
022236,000082: 31,2067 77624 CALL
022237,000083: 31,2070 47647 *NBSM*
022238,000084: 31,2071 41505 VXM PUSH # UXORZ TO 6D PD=12D
022239,000085: 31,2072 01734 REFSMMAT
022240,000086: 31,2073 72431 VPROJ VSL2
022241,000087: 31,2074 00001 0D
022242,000088: 31,2075 53445 BVSU UNIT
022243,000089: 31,2076 00007 6D
022244,000090: 31,2077 47315 PDVL VXV # UP/2 TO 12D PD=18D
022245,000091: 31,2100 02320 RONE
022246,000092: 31,2101 02326 VONE
022247,000093: 31,2102 47256 UNIT VXV
022248,000094: 31,2103 02320 RONE
022249,000095: 31,2104 63241 DOT PDVL # SIGN TO 12D, UP/2 TO MPAC PD=18D
022250,000096: 31,2105 00015 12D
022251,000097: 31,2106 50372 VSL1 DOT # UP.UXORZ
022252,000098: 31,2107 00007 6D
022253,000099: 31,2110 72565 SIGN SL1
022254,000100: 31,2111 00015 12D
022255,000101: 31,2112 77726 ACOS
022256,000102: 31,2113 26316 STOVL RTHETA
022257,000103: 31,2114 02320 RONE
022258,000104: 31,2115 51041 DOT BPL
022259,000105: 31,2116 00007 6D
022260,000106: 31,2117 62124 +5
022261,000107: 31,2120 44345 DLOAD BDSU # IF UXORZ.R NEG, RTHETA = 1 - RTHETA
022262,000108: 31,2121 02316 RTHETA
022263,000109: 31,2122 15344 DPPOSMAX
022264,000110: 31,2123 02316 STORE RTHETA # RTHETA BETWEEN 0 AND 1 REV.
022265,000111: 31,2124 77776 +5 EXIT
022266,000112: 31,2125 34764 CAF BIT5 # HAVE WE BEEN ANSWERED
022267,000113: 31,2126 71247 MASK EXTVBACT
022268,000114: 31,2127 00006 EXTEND
022269,000115: 31,2130 12137 BZF ISITP79
022270,000116:
022271,000117: 31,2131 41247 CS EXTVBACT
022272,000118: 31,2132 74755 MASK BIT12
022273,000119: # # Page 509
022274,000120: 31,2133 27247 ADS EXTVBACT
022275,000121:
022276,000122: 31,2134 12026 TCF V83
022277,000123: 31,2135 04066 V16N54 VN 1654
022278,000124: 31,2136 04065 V16N53 VN 1653
022279,000125: 31,2137 05354 ISITP79 TC CHECKMM
022280,000126: 31,2140 00117 MM 79 B-14
022281,000127: 31,2141 15524 TCF ENDEXT # NO, DIE
022282,000128:
022283,000129: 31,2142 05527 TC CLEARMRK
022284,000130: 31,2143 05561 TC DOWNFLAG
022285,000131: 31,2144 00226 ADRES PCMANFLG
022286,000132: 31,2145 14103 TCF GOTOPOOH
022287,000133:
022288,000134: # # Page 510
022289,000135: # STATEXTP DOES AN INITIAL PRECISION EXTRAPOLATION OF THE
022290,000136: # LEM STATE VECTOR TO PRESENT TIME OR TO PIPTIME IF AV G
022291,000137: # IS ON AND SAVES AS BASE VECTOR. IF AV G IS ON RN + VN
022292,000138: # ARE USED AS THE CM STATE VECTOR AND THE INITIAL R RDOT
022293,000139: # RTHETA ARE COMPUTED WITH NO FURTHER INTEGRATION. IF AV
022294,000140: # G IS OFF A PRECISION EXTRAPOLATION IS MADE OF THE CM
022295,000141: # STATE VECTOR TO PRESENT TIME AND.....
022296,000142: # THE CM + LM STATE VECTORS ARE INTEGRATED TO PRES TIME
022297,000143: # USING PRECISION OR CONIC AS SURFFLAG IS SET OR CLEAR.
022298,000144: # IF AV G IS ON THEN SUBSEQUENT PASSES WILL PROVIDE
022299,000145: # USE OF RN + VN AS CM STATE VECTOR AND THE LM STATE
022300,000146: # VECTOR WILL BE PRECISION INTEGRATED USING LEMPREC
022301,000147: # IF SURFFLAG IS SET.
022302,000148: # CM STATE VECTOR RONE VONE + LM STATE VECTOR RATT
022303,000149: # VATT ARE USED IN COMPUTING R RDOT RTHETA.
022304,000150:
022305,000151: 31,2146 43034 STATEXTP RTB BOF # INITIAL INTEGRATION
022306,000152: 31,2147 51751 LOADTIME
022307,000153: 31,2150 03751 V37FLAG
022308,000154: 31,2151 62154 BOTHGO # AV G OFF, USE PRESENT TIME
022309,000155: 31,2152 77624 CALL
022310,000156: 31,2153 62301 GETRVN # ON, USE RN, VN, PIPTIME
022311,000157: 31,2154 02334 BOTHGO STORE BASETIME
022312,000158: 31,2155 34041 STCALL TDEC1
022313,000159: 31,2156 27161 LEMPREC
022314,000160: 31,2157 77775 VLOAD # BASE VECTOR, LM
022315,000161: 31,2160 00017 RATT1
022316,000162: 31,2161 26224 STOVL BASEOTP # POS.
022317,000163: 31,2162 00025 VATT1
022318,000164: 31,2163 02240 STORE BASEOTV # VEL.
022319,000165: 31,2164 71214 BON DLOAD
022320,000166: 31,2165 03711 V37FLAG
022321,000167: 31,2166 62034 COMPDISP # COMPUTE R RDOT RTHETA FROM
022322,000168: # RONE(RN) VONE(VN) RATT+VATT(LEMPREC)
022323,000169: 31,2167 00015 TAT
022324,000170: 31,2170 34041 STCALL TDEC1
022325,000171: 31,2171 27145 CSMPREC
022326,000172: 31,2172 77775 VLOAD # BASE VECTOR, CM
022327,000173: 31,2173 00017 RATT1
022328,000174: 31,2174 26254 STOVL BASETHP # POS.
022329,000175: 31,2175 00025 VATT1
022330,000176: 31,2176 02262 STORE BASETHV # VEL.
022331,000177: 31,2177 47014 HAVEBASE BON RTB # SUBSEQUENT INTEGRATIONS
022332,000178: 31,2200 03711 V37FLAG
022333,000179: 31,2201 62264 GETRVN5
022334,000180: 31,2202 51751 LOADTIME
022335,000181: 31,2203 34041 STCALL TDEC1 # AV G OFF, SET INTEG. OF CM
022336,000182: 31,2204 27516 INTSTALL
022337,000183: 31,2205 43175 VLOAD CLEAR
022338,000184: 31,2206 02254 BASETHP
022339,000185: # # Page 511
022340,000186: 31,2207 00263 MOONFLAG
022341,000187: 31,2210 25535 STOVL RCV
022342,000188: 31,2211 02262 BASETHV
022343,000189: 31,2212 15543 STODL VCV
022344,000190: 31,2213 02334 BASETIME
022345,000191: 31,2214 43014 BOF SET # GET APPROPRIATE MOONFLAG SETTING
022346,000192: 31,2215 04343 MOONTHIS
022347,000193: 31,2216 62220 +2
022348,000194: 31,2217 00063 MOONFLAG
022349,000195: 31,2220 77614 CLEAR
022350,000196: 31,2221 01673 INTYPFLG
022351,000197: 31,2222 43014 BON SET
022352,000198: 31,2223 04307 SURFFLAG
022353,000199: 31,2224 62226 +2 # PREC. IF LM DOWN
022354,000200: 31,2225 01473 INTYPFLG # CONIC IF LM NOT DOWN
022355,000201: 31,2226 35517 STCALL TET
022356,000202: 31,2227 27211 INTEGRVS # INTEGRATION --- AT LAST---
022357,000203: 31,2230 77775 VLOAD
022358,000204: 31,2231 00001 RATT
022359,000205: 31,2232 26320 STOVL RONE
022360,000206: 31,2233 00007 VATT
022361,000207: 31,2234 16326 STODL VONE # GET SET FOR CONIC EXTRAP.,OTHER.
022362,000208: 31,2235 00015 TAT
022363,000209: 31,2236 45014 BON CALL
022364,000210: 31,2237 04307 SURFFLAG
022365,000211: 31,2240 62275 GETRVN6 # LEMPREC IF LM DOWN
022366,000212: 31,2241 27516 INTSTALL # LEMCONIC IF NOT DOWN
022367,000213: 31,2242 77614 SET
022368,000214: 31,2243 01473 INTYPFLG
022369,000215: 31,2244 00041 OTHINT STORE TDEC1 # ENTERED IF AV G ON TO INTEG LM
022370,000216: 31,2245 43175 VLOAD CLEAR
022371,000217: 31,2246 02224 BASEOTP
022372,000218: 31,2247 00263 MOONFLAG
022373,000219: 31,2250 25535 STOVL RCV
022374,000220: 31,2251 02240 BASEOTV
022375,000221: 31,2252 15543 STODL VCV
022376,000222: 31,2253 02334 BASETIME
022377,000223: 31,2254 43014 BOF SET
022378,000224: 31,2255 04343 MOONTHIS
022379,000225: 31,2256 62260 +2
022380,000226: 31,2257 00063 MOONFLAG
022381,000227: 31,2260 35517 STCALL TET
022382,000228: 31,2261 27211 INTEGRVS
022383,000229: 31,2262 77650 GOTO
022384,000230: 31,2263 62034 COMPDISP # COMPUTE R RDOT RTHETA
022385,000231: 31,2264 77624 GETRVN5 CALL # AV G ON
022386,000232: 31,2265 62301 GETRVN
022387,000233: 31,2266 45014 BON CALL
022388,000234: 31,2267 04307 SURFFLAG
022389,000235: 31,2270 62275 GETRVN6 # LM DOWN, LMPREC
022390,000236: # # Page 512
022391,000237: 31,2271 27516 INTSTALL
022392,000238: 31,2272 52014 CLEAR GOTO # INTEGRVS (PREC) IF LM NOT DOWN
022393,000239: 31,2273 01673 INTYPFLG
022394,000240: 31,2274 62244 OTHINT
022395,000241: 31,2275 34041 GETRVN6 STCALL TDEC1
022396,000242: 31,2276 27161 LEMPREC
022397,000243: 31,2277 77650 GOTO
022398,000244: 31,2300 62034 COMPDISP # COMPUTE R RDOT RTHETA
022399,000245: 31,2301 77620 GETRVN STQ
022400,000246: 31,2302 00000 0D
022401,000247: 31,2303 52175 VLOAD GOTO # AV G ON, RONE = RN VONE = VN
022402,000248: 31,2304 01030 RN # AND USE PIPTIME
022403,000249: 31,2305 62306 +1
022404,000250: 31,2306 36320 STCALL RONE
022405,000251: 31,2307 62310 +1
022406,000252: 31,2310 52175 VLOAD GOTO
022407,000253: 31,2311 01036 VN
022408,000254: 31,2312 62313 +1
022409,000255: 31,2313 16326 STODL VONE
022410,000256: 31,2314 01044 PIPTIME
022411,000257: 31,2315 77650 GOTO
022412,000258: 31,2316 00000 0D
022413,000259: 31,2000 SETLOC R34
022414,000260: 31,2000 BANK
022415,000261: 31,2317 COUNT* $$/R3134
022416,000262: 31,2317 77776 R34LOS EXIT
022417,000263: 31,2320 30036 CA CDUS
022418,000264: 31,2321 50120 INDEX FIXLOC
022419,000265: 31,2322 54011 TS 9D
022420,000266: 31,2323 30035 CA CDUT
022421,000267: 31,2324 50120 INDEX FIXLOC
022422,000268: 31,2325 54013 TS 11D
022423,000269: 31,2326 30120 CA FIXLOC
022424,000270: 31,2327 66211 AD SIX
022425,000271: 31,2330 40000 COM
022426,000272: 31,2331 50120 INDEX FIXLOC
022427,000273: 31,2332 54046 TS X1
022428,000274: 31,2333 06006 TC INTPRET
022429,000275: 31,2334 77624 CALL
022430,000276: 31,2335 46000 SXTNB
022431,000277: 31,2336 34015 STCALL 12D
022432,000278: 31,2337 62057 R34ANG
End of include-file R31.agc. Parent file is MAIN.agc