Source Code
|
These source-code files are part of a reconstructed copy of LUM69 Revision 2, the
flown Apollo 10 Lunar Module (LM) Apollo Guidance Computer (AGC) software.
The reconstruction began with source code of Luminary 69 revision 0 previously transcribed from a digitized copy of that program. The code was then updated by back-porting the R-2 lunar potential model from previously-transcribed source code of Luminary 99. These required changes were described in the original Luminary memos 75 and 78. The reconstructed code was verified by matching memory-bank checksums to those listed in drawing 2021152G. Note that page numbers in the reconstructed code match those on the Luminary 069 printout, although the added code would likely have changed page numbers for a real LUM69 Revision 2 listing. Comments from the original source code are prefixed with a single '#' symbol, whereas comments added later are prefixed by "##" or "###". Report any errors noted by creating an issue report at the Virtual AGC project's GitHub repository. |
030760,000002: ## Copyright: Public domain.
030761,000003: ## Filename: R31.agc
030762,000004: ## Purpose: A section of LUM69 revision 2.
030763,000005: ## It is part of the reconstructed source code for the flown
030764,000006: ## version of the flight software for the Lunar Module's (LM)
030765,000007: ## Apollo Guidance Computer (AGC) for Apollo 10. The code has
030766,000008: ## been recreated from a copy of Luminary revsion 069, using
030767,000009: ## changes present in Luminary 099 which were described in
030768,000010: ## Luminary memos 75 and 78. The code has been adapted such
030769,000011: ## that the resulting bugger words exactly match those specified
030770,000012: ## for LUM69 revision 2 in NASA drawing 2021152B, which gives
030771,000013: ## relatively high confidence that the reconstruction is correct.
030772,000014: ## Reference: pp. 712-716
030773,000015: ## Assembler: yaYUL
030774,000016: ## Contact: Ron Burkey <info@sandroid.org>.
030775,000017: ## Website: www.ibiblio.org/apollo/index.html
030776,000018: ## Mod history: 2019-07-27 MAS Created from Luminary 69.
030777,000019:
|
Page 712 |
030779,000021: 34,3271 BANK 34
030780,000022: 37,2000 SETLOC R31
030781,000023: 37,2000 BANK
030782,000024:
030783,000025: 37,3113 COUNT* $$/R31
030784,000026:
030785,000027: 37,3113 35015 R31CALL CAF PRIO3
030786,000028: 37,3114 05105 TC FINDVAC
030787,000029: 37,3115 E7,1466 EBANK= SUBEXIT
030788,000030: 37,3115 03145 76067 2CADR V83CALL
030789,000031:
030790,000032: 37,3117 05221 DSPDELAY TC FIXDELAY
030791,000033: 37,3120 00144 DEC 100 B-14
030792,000034: 37,3121 31044 CA EXTVBACT
030793,000035: 37,3122 74740 MASK BIT12
030794,000036: 37,3123 00006 EXTEND
030795,000037: 37,3124 13117 BZF DSPDELAY
030796,000038:
030797,000039: 37,3125 35017 CAF PRIO5
030798,000040: 37,3126 05072 TC NOVAC
030799,000041: 37,3127 E7,1607 EBANK= TSTRT
030800,000042: 37,3127 03132 76067 2CADR DISPN5X
030801,000043:
030802,000044: 37,3131 15261 TCF TASKOVER
030803,000045:
030804,000046: 37,3132 33240 DISPN5X CAF V16N54
030805,000047: 37,3133 04616 TC BANKCALL
030806,000048: 37,3134 20212 CADR GOMARKF
030807,000049: 37,3135 05563 TC B5OFF
030808,000050: 37,3136 05563 TC B5OFF
030809,000051: 37,3137 13132 TCF DISPN5X
030810,000052:
030811,000053: 37,3140 06036 V83 TC INTPRET
030812,000054: 37,3141 77624 CALL
030813,000055: 37,3142 77371 REDOEXTP
030814,000056: 37,3143 77650 GOTO
030815,000057: 37,3144 77150 COMPDISP
030816,000058: 37,3145 06036 V83CALL TC INTPRET
030817,000059: 37,3146 77624 CALL
030818,000060: 37,3147 77241 STATEXTP # EXTRAPOLATE STATE VECTORS
030819,000061: 37,3150 52375 COMPDISP VLOAD VSU
030820,000062: 37,3151 00001 RATT
030821,000063: 37,3152 02213 RONE
030822,000064: 37,3153 51406 PUSH ABVAL # RATT-RONE TO 0D PD = 6
030823,000065: 37,3154 02205 STORE RANGE # METERS B-29
030824,000066: 37,3155 77301 NORM VLOAD
030825,000067: 37,3156 00047 X1 # RATT-RONE PD = 0
030826,000068: 37,3157 53457 VSL* UNIT
030827,000069: 37,3160 20201 0,1
|
Page 713 |
030829,000071: 37,3161 52315 PDVL VSU # UNIT(LOS) TO 0D PD = 6
030830,000072: 37,3162 00007 VATT
030831,000073: 37,3163 02221 VONE
030832,000074: 37,3164 77641 DOT # (VATT-VONE).UNIT(LOS) PD = 0
030833,000075: 37,3165 77752 SL1
030834,000076: 37,3166 26207 STOVL RRATE # RANGE RATE M/CS B-7
030835,000077: 37,3167 02213 RONE
030836,000078: 37,3170 63256 UNIT PDVL # UR TO 0D PD = 6
030837,000079: 37,3171 06416 THISAXIS # UNITX FOR CM, UNTIZ FOR LM
030838,000080: 37,3172 77624 CALL
030839,000081: 37,3173 47565 CDU*NBSM
030840,000082: 37,3174 41505 VXM PUSH # UXORZ TO 6D PD=12D
030841,000083: 37,3175 01734 REFSMMAT
030842,000084: 37,3176 72431 VPROJ VSL2
030843,000085: 37,3177 00001 0D
030844,000086: 37,3200 53445 BVSU UNIT
030845,000087: 37,3201 00007 6D
030846,000088: 37,3202 47315 PDVL VXV # UP/2 TO 12D PD=18D
030847,000089: 37,3203 02213 RONE
030848,000090: 37,3204 02221 VONE
030849,000091: 37,3205 47256 UNIT VXV
030850,000092: 37,3206 02213 RONE
030851,000093: 37,3207 63241 DOT PDVL # SIGN TO 12D, UP/2 TO MPAC PD=18D
030852,000094: 37,3210 00015 12D
030853,000095: 37,3211 50372 VSL1 DOT # UP.UXORZ
030854,000096: 37,3212 00007 6D
030855,000097: 37,3213 72565 SIGN SL1
030856,000098: 37,3214 00015 12D
030857,000099: 37,3215 77726 ACOS
030858,000100: 37,3216 26211 STOVL RTHETA
030859,000101: 37,3217 02213 RONE
030860,000102: 37,3220 51041 DOT BPL
030861,000103: 37,3221 00007 6D
030862,000104: 37,3222 77227 +5
030863,000105: 37,3223 44345 DLOAD BDSU # IF UXORZ.R NEG, RTHETA = 1 - RTHETA
030864,000106: 37,3224 02211 RTHETA
030865,000107: 37,3225 06432 DPPOSMAX
030866,000108: 37,3226 02211 STORE RTHETA # RTHETA BETWEEN 0 AND 1 REV.
030867,000109: 37,3227 77776 EXIT
030868,000110: 37,3230 34747 CAF BIT5 # HAVE WE BEEN ANSWERED
030869,000111: 37,3231 71044 MASK EXTVBACT
030870,000112: 37,3232 00006 EXTEND
030871,000113: 37,3233 15472 BZF ENDEXT # YES, DIE
030872,000114:
030873,000115: 37,3234 41044 CS EXTVBACT
030874,000116: 37,3235 74740 MASK BIT12
030875,000117: 37,3236 27044 ADS EXTVBACT
030876,000118:
030877,000119: 37,3237 13140 TCF V83
030878,000120: 37,3240 04066 V16N54 VN 1654
030879,000121:
|
Page 714 |
030881,000123: # THE STATEXTP SUBROUTINE DOES A PRECISION EXTRAPOLATION OF BOTH VEHICLES
030882,000124: # STATE VECTORS TO PRESENT TIME AND SAVES THEM AS BASE VECTORS.
030883,000125: # IF SERVICER IS OFF ---
030884,000126: # THIS VEHICLES BASE VECTOR IS CONIC EXTRAPOLATED TO
030885,000127: # PRESENT TIME AND SAVED AS RONE, VONE.
030886,000128: # THE OTHER VEHICLES BASE VECTOR IS CONIC EXTRAPOLATED
030887,000129: # TO THE SAME TIME, THE OUTPUT BEING LEFT IN RATT, VATT.
030888,000130: # IF SERVICER IS ON ---
030889,000131: # RONE, VONE ARE SET EQUAL TO RN, VN AND THE OTHER
030890,000132: # VEHICLES STATE VECTOR IS PREC. EXTRAPOLATED TO PIPTIME.
030891,000133:
030892,000134: 37,3241 47020 STATEXTP STQ RTB
030893,000135: 37,3242 02116 STATEXIT
030894,000136: 37,3243 21462 LOADTIME
030895,000137: 37,3244 34041 STCALL TDEC1
030896,000138: 37,3245 27043 OTHPREC # GET BASE VECTORS
030897,000139: 37,3246 77775 VLOAD
030898,000140: 37,3247 00017 RATT1
030899,000141: 37,3250 26140 STOVL BASEOTP # OTHER POS.
030900,000142: 37,3251 00025 VATT1
030901,000143: 37,3252 16120 STODL BASEOTV # OTHER VEL.
030902,000144: 37,3253 00015 TAT
030903,000145: 37,3254 02114 STORE BASETIME
030904,000146: 37,3255 34041 STCALL TDEC1
030905,000147: 37,3256 27057 THISPREC
030906,000148: 37,3257 77775 VLOAD
030907,000149: 37,3260 00017 RATT1
030908,000150: 37,3261 26170 STOVL BASETHP # THIS POS.
030909,000151: 37,3262 00025 VATT1
030910,000152: 37,3263 02105 STORE BASETHV # THIS VEL
030911,000153: 37,3264 47014 HAVEBASE BON RTB
030912,000154: 37,3265 03712 AVEGFLAG
030913,000155: 37,3266 77346 GETRVN # IF AVG ON ,GET RN ETC.
030914,000156: 37,3267 21462 LOADTIME
030915,000157: 37,3270 52014 BON GOTO # TEST FOR LM ON SURFACE.
030916,000158: 37,3271 04307 SURFFLAG
030917,000159: 37,3272 77365 R31SURF
030918,000160: 37,3273 77274 +1
030919,000161: 37,3274 34041 STCALL TDEC1 # BEGIN SET UP FOR CONIC EXTRAP. FOR THIS.
030920,000162: 37,3275 27412 INTSTALL
030921,000163: 37,3276 43175 VLOAD CLEAR
030922,000164: 37,3277 02170 BASETHP
030923,000165: 37,3300 00263 MOONFLAG
030924,000166: 37,3301 25535 STOVL RCV
030925,000167: 37,3302 02105 BASETHV
030926,000168: 37,3303 15543 STODL VCV
030927,000169: 37,3304 02114 BASETIME
030928,000170: 37,3305 43014 BOF SET # GET APPROPRIATE MOONFLAG SETTING
030929,000171: 37,3306 04344 MOONTHIS
030930,000172: 37,3307 77311 +2
030931,000173: 37,3310 00063 MOONFLAG
|
Page 715 |
030933,000175: 37,3311 77614 SET
030934,000176: 37,3312 01473 INTYPFLG # CONIC EXTRAP.
030935,000177: 37,3313 35517 STCALL TET
030936,000178: 37,3314 27107 INTEGRVS # INTEGRATION --- AT LAST---
030937,000179: 37,3315 77775 OTHCONIC VLOAD
030938,000180: 37,3316 00001 RATT
030939,000181: 37,3317 26213 STOVL RONE
030940,000182: 37,3320 00007 VATT
030941,000183: 37,3321 36221 STCALL VONE # GET SET FOR CONIC EXTRAP.,OTHER.
030942,000184: 37,3322 27412 INTSTALL
030943,000185: 37,3323 71214 SET DLOAD
030944,000186: 37,3324 01473 INTYPFLG
030945,000187: 37,3325 00015 TAT
030946,000188: 37,3326 00041 OTHINT STORE TDEC1
030947,000189: 37,3327 43175 VLOAD CLEAR
030948,000190: 37,3330 02140 BASEOTP
030949,000191: 37,3331 00263 MOONFLAG
030950,000192: 37,3332 25535 STOVL RCV
030951,000193: 37,3333 02120 BASEOTV
030952,000194: 37,3334 15543 STODL VCV
030953,000195: 37,3335 02114 BASETIME
030954,000196: 37,3336 43014 BOF SET
030955,000197: 37,3337 04344 MOONTHIS
030956,000198: 37,3340 77342 +2
030957,000199: 37,3341 00063 MOONFLAG
030958,000200: 37,3342 35517 STCALL TET
030959,000201: 37,3343 27107 INTEGRVS
030960,000202: 37,3344 77650 GOTO
030961,000203: 37,3345 02116 STATEXIT # THIS VEHICLES POS.,VEL. IN PUSHLIST.
030962,000204: 37,3346 52175 GETRVN VLOAD GOTO
030963,000205: 37,3347 01221 RN
030964,000206: 37,3350 77351 +1
030965,000207: 37,3351 36213 STCALL RONE
030966,000208: 37,3352 77353 +1
030967,000209: 37,3353 52175 VLOAD GOTO
030968,000210: 37,3354 01227 VN
030969,000211: 37,3355 77356 +1
030970,000212: 37,3356 16221 STODL VONE
030971,000213: 37,3357 01235 PIPTIME
030972,000214: 37,3360 77624 GETRVN2 CALL
030973,000215: 37,3361 27412 INTSTALL
030974,000216: 37,3362 52014 CLEAR GOTO
030975,000217: 37,3363 01673 INTYPFLG # PREC EXTRAP FOR OTHER
030976,000218: 37,3364 77326 OTHINT
030977,000219: 37,3365 34041 R31SURF STCALL TDEC1 # LM ON SURFACE.
030978,000220: 37,3366 27057 LEMPREC
030979,000221: 37,3367 77650 GOTO # DO CSM CONIC
030980,000222: 37,3370 77315 OTHCONIC
|
Page 716 |
030982,000224: 37,3371 52020 REDOEXTP STQ GOTO
030983,000225: 37,3372 02116 STATEXIT
030984,000226: 37,3373 77264 HAVEBASE
030985,000227:
End of include-file R31.agc. Parent file is MAIN.agc