Source Code
029998,000001: # Copyright: Public domain.
029999,000002: # Filename: R31.agc
030000,000003: # Purpose: Part of the source code for Luminary 1A build 099.
030001,000004: # It is part of the source code for the Lunar Module's (LM)
030002,000005: # Apollo Guidance Computer (AGC), for Apollo 11.
030003,000006: # Assembler: yaYUL
030004,000007: # Contact: Ron Burkey <info@sandroid.org>.
030005,000008: # Website: www.ibiblio.org/apollo.
030006,000009: # Pages: 703-708
030007,000010: # Mod history: 2009-05-19 RSB Adapted from the corresponding
030008,000011: # Luminary131 file, using page
030009,000012: # images from Luminary 1A.
030010,000013:
030011,000014: # This source code has been transcribed or otherwise adapted from
030012,000015: # digitized images of a hardcopy from the MIT Museum. The digitization
030013,000016: # was performed by Paul Fjeld, and arranged for by Deborah Douglas of
030014,000017: # the Museum. Many thanks to both. The images (with suitable reduction
030015,000018: # in storage size and consequent reduction in image quality as well) are
030016,000019: # available online at www.ibiblio.org/apollo. If for some reason you
030017,000020: # find that the images are illegible, contact me at info@sandroid.org
030018,000021: # about getting access to the (much) higher-quality images which Paul
030019,000022: # actually created.
030020,000023:
030021,000024: # Notations on the hardcopy document read, in part:
030022,000025:
030023,000026: # Assemble revision 001 of AGC program LMY99 by NASA 2021112-61
030024,000027: # 16:27 JULY 14, 1969
030025,000028:
030026,000029: # Page 703
030027,000030: 40,3674 BANK 40
030028,000031: 40,2000 SETLOC R31LOC
030029,000032: 40,2000 BANK
030030,000033:
030031,000034: 40,3674 COUNT* $$/R31
030032,000035:
030033,000036: 40,3674 35015 R31CALL CAF PRIO3
030034,000037: 40,3675 05105 TC FINDVAC
030035,000038: 40,3676 E7,1470 EBANK= SUBEXIT
030036,000039: 40,3676 03121 76067 2CADR V83CALL
030037,000040:
030038,000041: 40,3700 05221 DSPDELAY TC FIXDELAY
030039,000042: 40,3701 00144 DEC 100 B-14
030040,000043: 40,3702 31044 CA EXTVBACT
030041,000044: 40,3703 74740 MASK BIT12
030042,000045: 40,3704 00006 EXTEND
030043,000046: 40,3705 13700 BZF DSPDELAY
030044,000047:
030045,000048: 40,3706 35017 CAF PRIO5
030046,000049: 40,3707 05072 TC NOVAC
030047,000050: 40,3710 E7,1611 EBANK= TSTRT
030048,000051: 40,3710 03113 76067 2CADR DISPN5X
030049,000052:
030050,000053: 40,3712 15261 TCF TASKOVER
030051,000054:
030052,000055: 37,3113 BANK 37
030053,000056: 37,2000 SETLOC R31
030054,000057: 37,2000 BANK
030055,000058: 37,3113 COUNT* $$/R31
030056,000059:
030057,000060: 37,3113 33407 DISPN5X CAF V16N54
030058,000061: 37,3114 04616 TC BANKCALL
030059,000062: 37,3115 20334 CADR GOMARKF
030060,000063: 37,3116 05563 TC B5OFF
030061,000064: 37,3117 05563 TC B5OFF
030062,000065: 37,3120 13113 TCF DISPN5X
030063,000066:
030064,000067: 37,3121 40103 V83CALL CS FLAGWRD7 # TEST AVERAGE G FLAG
030065,000068: 37,3122 74747 MASK AVEGFBIT
030066,000069: 37,3123 00006 EXTEND
030067,000070: 37,3124 13377 BZF MUNG? # ON. TEST MUNFLAG
030068,000071:
030069,000072: 37,3125 40104 CS FLAGWRD8
030070,000073: 37,3126 74744 MASK SURFFBIT
030071,000074: 37,3127 00006 EXTEND
030072,000075: 37,3130 13403 BZF ONEBASE # ON SURFACE -- BYPASS LEMPREC
030073,000076:
030074,000077: 37,3131 06037 TC INTPRET # EXTRAPOLATE BOTH STATE VECTORS
030075,000078: 37,3132 77634 RTB
030076,000079: # Page 704
030077,000080: 37,3133 21573 LOADTIME
030078,000081: 37,3134 34041 STCALL TDEC1
030079,000082: 37,3135 27057 LEMPREC # PRECISION BASE VECTOR FOR LM
030080,000083: 37,3136 77775 VLOAD
030081,000084: 37,3137 00017 RATT1
030082,000085: 37,3140 26170 STOVL BASETHP
030083,000086: 37,3141 00025 VATT1
030084,000087: 37,3142 16105 STODL BASETHV
030085,000088: 37,3143 00015 TAT
030086,000089: 37,3144 02114 DOCMBASE STORE BASETIME # PRECISION BASE VECTOR FOR CM
030087,000090: 37,3145 34041 STCALL TDEC1
030088,000091: 37,3146 27043 CSMPREC
030089,000092: 37,3147 77775 VLOAD
030090,000093: 37,3150 00017 RATT1
030091,000094: 37,3151 26140 STOVL BASEOTP
030092,000095: 37,3152 00025 VATT1
030093,000096: 37,3153 02120 STORE BASEOTV
030094,000097: 37,3154 77776 EXIT
030095,000098:
030096,000099: 37,3155 40103 REV83 CS FLAGWRD7
030097,000100: 37,3156 74747 MASK AVEGFBIT
030098,000101: 37,3157 00006 EXTEND
030099,000102: 37,3160 13326 BZF GETRVN # IF AVEGFLAG SET, USE RN,VN
030100,000103:
030101,000104: 37,3161 40104 CS FLAGWRD8
030102,000105: 37,3162 74744 MASK SURFFBIT
030103,000106: 37,3163 00006 EXTEND
030104,000107: 37,3164 13370 BZF R31SURF # IF ON SURFACE, USE LEMAREC
030105,000108:
030106,000109: 37,3165 06037 TC INTPRET # DO CONIC EXTRAPOLATION FOR BOTH VEHICLES
030107,000110: 37,3166 77634 RTB
030108,000111: 37,3167 21573 LOADTIME
030109,000112: 37,3170 34041 STCALL TDEC1
030110,000113: 37,3171 27414 INTSTALL
030111,000114: 37,3172 43175 VLOAD CLEAR
030112,000115: 37,3173 02170 BASETHP
030113,000116: 37,3174 00263 MOONFLAG
030114,000117: 37,3175 25535 STOVL RCV
030115,000118: 37,3176 02105 BASETHV
030116,000119: 37,3177 15543 STODL VCV
030117,000120: 37,3200 02114 BASETIME
030118,000121: 37,3201 43014 BOF SET # GET APPROPRIATE MOONFLAG SETTING
030119,000122: 37,3202 04344 MOONTHIS
030120,000123: 37,3203 77205 +2
030121,000124: 37,3204 00063 MOONFLAG
030122,000125: 37,3205 77614 SET
030123,000126: 37,3206 01473 INTYPFLG # CONIC EXTRAP.
030124,000127: 37,3207 35517 STCALL TET
030125,000128: 37,3210 27107 INTEGRVS # INTEGRATION --- AT LAST ---
030126,000129: 37,3211 77775 OTHCONIC VLOAD
030127,000130: # Page 705
030128,000131: 37,3212 00001 RATT
030129,000132: 37,3213 26207 STOVL RONE
030130,000133: 37,3214 00007 VATT
030131,000134: 37,3215 36215 STCALL VONE # GET SET FOR CONIC EXTRAP., OTHER.
030132,000135: 37,3216 27414 INTSTALL
030133,000136: 37,3217 71214 SET DLOAD
030134,000137: 37,3220 01473 INTYPFLG
030135,000138: 37,3221 00015 TAT
030136,000139: 37,3222 00041 OTHINT STORE TDEC1
030137,000140: 37,3223 43175 VLOAD CLEAR
030138,000141: 37,3224 02140 BASEOTP
030139,000142: 37,3225 00263 MOONFLAG
030140,000143: 37,3226 25535 STOVL RCV
030141,000144: 37,3227 02120 BASEOTV
030142,000145: 37,3230 15543 STODL VCV
030143,000146: 37,3231 02114 BASETIME
030144,000147: 37,3232 43014 BOF SET
030145,000148: 37,3233 04344 MOONTHIS
030146,000149: 37,3234 77236 +2
030147,000150: 37,3235 00063 MOONFLAG
030148,000151: 37,3236 35517 STCALL TET
030149,000152: 37,3237 27107 INTEGRVS
030150,000153: 37,3240 52375 COMPDISP VLOAD VSU
030151,000154: 37,3241 00001 RATT
030152,000155: 37,3242 02207 RONE
030153,000156: 37,3243 65234 RTB PDDL
030154,000157: 37,3244 21724 NORMUNX1 # UNIT(RANGE) TO PD 0-5
030155,000158: 37,3245 00045 36D
030156,000159: 37,3246 77657 SL* # RESCALE AFTER NORMUNIT
030157,000160: 37,3247 20201 0,1
030158,000161: 37,3250 26201 STOVL RANGE # SCALED 2(29)M
030159,000162: 37,3251 00007 VATT
030160,000163: 37,3252 50251 VSU DOT # (VCM-VLM).UNIT(LOS), PD=0
030161,000164: 37,3253 02215 VONE
030162,000165: 37,3254 77752 SL1 # SCALED 2(7)M/CS
030163,000166: 37,3255 26203 STOVL RRATE
030164,000167: 37,3256 02207 RONE
030165,000168: 37,3257 63256 UNIT PDVL # UNIT(R) TO PD 0-5
030166,000169: 37,3260 06514 UNITZ
030167,000170: 37,3261 77624 CALL
030168,000171: 37,3262 47661 CDU*NBSM
030169,000172: 37,3263 41505 VXM PUSH # UNIT(Z)/4 TO PD 6-11
030170,000173: 37,3264 01734 REFSMMAT
030171,000174: 37,3265 72431 VPROJ VSL2 # UNIT(P)=UNIT(UZ-(UZ)PROJ(UR))
030172,000175: 37,3266 00001 0D
030173,000176: 37,3267 53445 BVSU UNIT
030174,000177: 37,3270 00007 6D
030175,000178: 37,3271 47315 PDVL VXV # UNIT(P) TO PD 12-17
030176,000179: 37,3272 00001 0D # UNIT(RL)
030177,000180: 37,3273 02215 VONE
030178,000181: # Page 706
030179,000182: 37,3274 50235 VXV DOT # (UR * VL) * UR . U(P)
030180,000183: 37,3275 00001 0D
030181,000184: 37,3276 00015 12D
030182,000185: 37,3277 77715 PDVL # SIGN TO 12-13, LOAD U(P)
030183,000186: 37,3300 75241 DOT SIGN
030184,000187: 37,3301 00007 6D
030185,000188: 37,3302 00015 12D
030186,000189: 37,3303 65512 SL2 ACOS # ARCCOS(UP.UZ(SIGN))
030187,000190: 37,3304 26205 STOVL RTHETA
030188,000191: 37,3305 00001 0D
030189,000192: 37,3306 51041 DOT BPL # IF UR.UZ NEG,
030190,000193: 37,3307 00007 6D # RTHETA = 1 - RTHETA
030191,000194: 37,3310 77315 +5
030192,000195: 37,3311 45345 DLOAD DSU
030193,000196: 37,3312 06530 DPPOSMAX
030194,000197: 37,3313 02205 RTHETA
030195,000198: 37,3314 02205 STORE RTHETA
030196,000199: 37,3315 77776 EXIT
030197,000200:
030198,000201: 37,3316 34747 CA BIT5
030199,000202: 37,3317 71044 MASK EXTVBACT
030200,000203: 37,3320 00006 EXTEND # IF ANSWERED,
030201,000204: 37,3321 15472 BZF ENDEXT # TERMINATE
030202,000205:
030203,000206: 37,3322 41044 CS EXTVBACT
030204,000207: 37,3323 74740 MASK BIT12
030205,000208: 37,3324 27044 ADS EXTVBACT # SET BIT 12
030206,000209: 37,3325 13155 TCF REV83 # AND START AGAIN.
030207,000210:
030208,000211: 37,3326 37710 GETRVN CA PRIO22 # INHIBIT SERVICER
030209,000212: 37,3327 05146 TC PRIOCHNG
030210,000213: 37,3330 06037 TC INTPRET
030211,000214: 37,3331 40375 VLOAD SETPD
030212,000215: 37,3332 01221 RN # LM STATE VECTOR IN RN,VN.
030213,000216: 37,3333 00001 0
030214,000217: 37,3334 26207 STOVL RONE
030215,000218: 37,3335 01227 VN
030216,000219: 37,3336 26215 STOVL VONE # LOAD R(CSM),V(CSM) IN CASE MUNFLAG SET
030217,000220: 37,3337 01726 V(CSM) # (TO INSURE TIME COMPATIBILITY)
030218,000221: 37,3340 65315 PDVL PDDL
030219,000222: 37,3341 01720 R(CSM)
030220,000223: 37,3342 01235 PIPTIME
030221,000224: 37,3343 77776 EXIT
030222,000225: 37,3344 35015 CA PRIO3
030223,000226: 37,3345 05146 TC PRIOCHNG
030224,000227: 37,3346 06037 TC INTPRET
030225,000228: 37,3347 77214 BOFF VLOAD
030226,000229: 37,3350 03347 MUNFLAG
030227,000230: 37,3351 77363 GETRVN2 # IF MUNFLAG RESET, DO CM DELTA PRECISION
030228,000231: # Page 707
030229,000232: 37,3352 60505 VXM VSR4 # CHANGE TO REFERENCE SYSTEM AND RESCALE
030230,000233: 37,3353 01734 REFSMMAT
030231,000234: 37,3354 77715 PDVL # R TO PD 0-5
030232,000235: 37,3355 76505 VXM VSL1
030233,000236: 37,3356 01734 REFSMMAT
030234,000237: 37,3357 40206 PUSH SETPD # V TO PD 5-11
030235,000238: 37,3360 00001 0
030236,000239: 37,3361 77650 GOTO
030237,000240: 37,3362 77240 COMPDISP
030238,000241:
030239,000242: 37,3363 77624 GETRVN2 CALL
030240,000243: 37,3364 27414 INTSTALL
030241,000244: 37,3365 52014 CLEAR GOTO
030242,000245: 37,3366 01673 INTYPFLG # PREC EXTRAP FOR OTHER
030243,000246: 37,3367 77222 OTHINT
030244,000247: 37,3370 06037 R31SURF TC INTPRET
030245,000248: 37,3371 77634 RTB # LM IS ON SURFACE, SO PRECISION
030246,000249: 37,3372 21573 LOADTIME # INTEGRATION USED PLANETARY INERTIAL
030247,000250: 37,3373 34041 STCALL TDEC1 # ORIENTATION SUBROUTINE
030248,000251: 37,3374 27057 LEMPREC
030249,000252: 37,3375 77650 GOTO # DO CSM CONIC
030250,000253: 37,3376 77211 OTHCONIC
030251,000254: 37,3377 40102 MUNG? CS FLAGWRD6
030252,000255: 37,3400 74744 MASK MUNFLBIT
030253,000256: 37,3401 00006 EXTEND
030254,000257: 37,3402 13326 BZF GETRVN # IF MUNFLAG SET, CSM BASE NOT NEEDED
030255,000258:
030256,000259: 37,3403 06037 ONEBASE TC INTPRET # GET CSM BASE VECTOR
030257,000260: 37,3404 52034 RTB GOTO
030258,000261: 37,3405 21573 LOADTIME
030259,000262: 37,3406 77144 DOCMBASE
030260,000263:
030261,000264: 37,3407 04066 V16N54 VN 1654
030262,000265:
030263,000266: # Page 708 (empty page)
030264,000267:
End of include-file R31.agc. Parent file is MAIN.agc