Source Code
029436,000001: # Copyright: Public domain.
029437,000002: # Filename: R31.agc
029438,000003: # Purpose: A section of Luminary 1C, revision 131.
029439,000004: # It is part of the source code for the Lunar Module's (LM)
029440,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14.
029441,000006: # This file is intended to be a faithful transcription, except
029442,000007: # that the code format has been changed to conform to the
029443,000008: # requirements of the yaYUL assembler rather than the
029444,000009: # original YUL assembler.
029445,000010: # Reference: pp. 710-715 of 1729.pdf.
029446,000011: # Contact: Ron Burkey <info@sandroid.org>.
029447,000012: # Website: www.ibiblio.org/apollo/index.html
029448,000013: # Mod history: 05/24/03 RSB. Began transcribing.
029449,000014: # 05/14/05 RSB Corrected website reference above.
029450,000015:
029451,000016: # Page 710
029452,000017: 40,3737 BANK 40
029453,000018: 40,2000 SETLOC R31LOC
029454,000019: 40,2000 BANK
029455,000020:
029456,000021: 40,3737 COUNT* $$/R31
029457,000022:
029458,000023: 40,3737 35015 R31CALL CAF PRIO3
029459,000024: 40,3740 05105 TC FINDVAC
029460,000025: 40,3741 E7,1470 EBANK= SUBEXIT
029461,000026: 40,3741 03121 76067 2CADR V83CALL
029462,000027:
029463,000028: 40,3743 05221 DSPDELAY TC FIXDELAY
029464,000029: 40,3744 00144 DEC 100 B-14
029465,000030: 40,3745 31043 CA EXTVBACT
029466,000031: 40,3746 74740 MASK BIT12
029467,000032: 40,3747 00006 EXTEND
029468,000033: 40,3750 13743 BZF DSPDELAY
029469,000034:
029470,000035: 40,3751 35017 CAF PRIO5
029471,000036: 40,3752 05072 TC NOVAC
029472,000037: 40,3753 E7,1611 EBANK= TSTRT
029473,000038: 40,3753 03113 76067 2CADR DISPN5X
029474,000039:
029475,000040: 40,3755 15261 TCF TASKOVER
029476,000041:
029477,000042: 37,3113 BANK 37
029478,000043: 37,2000 SETLOC R31
029479,000044: 37,2000 BANK
029480,000045: 37,3113 COUNT* $$/R31
029481,000046:
029482,000047: 37,3113 33407 DISPN5X CAF V16N54
029483,000048: 37,3114 04616 TC BANKCALL
029484,000049: 37,3115 20334 CADR GOMARKF
029485,000050: 37,3116 05563 TC B5OFF
029486,000051: 37,3117 05563 TC B5OFF
029487,000052: 37,3120 13113 TCF DISPN5X
029488,000053:
029489,000054: 37,3121 40103 V83CALL CS FLAGWRD7 # TEST AVERAGE G FLAG
029490,000055: 37,3122 74747 MASK AVEGFBIT
029491,000056: 37,3123 00006 EXTEND
029492,000057: 37,3124 13377 BZF MUNG? # ON. TEST MUNFLAG
029493,000058:
029494,000059: 37,3125 40104 CS FLAGWRD8
029495,000060: 37,3126 74744 MASK SURFFBIT
029496,000061: 37,3127 00006 EXTEND
029497,000062: 37,3130 13403 BZF ONEBASE # ON SURFACE -- BYPASS LEMPREC
029498,000063:
029499,000064: 37,3131 06042 TC INTPRET # EXTRAPOLATE BOTH STATE VECTORS
029500,000065: 37,3132 77634 RTB
029501,000066: # Page 711
029502,000067: 37,3133 21574 LOADTIME
029503,000068: 37,3134 34041 STCALL TDEC1
029504,000069: 37,3135 27056 LEMPREC # PRECISION BASE VECTOR FOR LM
029505,000070: 37,3136 77775 VLOAD
029506,000071: 37,3137 00017 RATT1
029507,000072: 37,3140 26170 STOVL BASETHP
029508,000073: 37,3141 00025 VATT1
029509,000074: 37,3142 16105 STODL BASETHV
029510,000075: 37,3143 00015 TAT
029511,000076: 37,3144 02114 DOCMBASE STORE BASETIME # PRECISION BASE VECTOR FOR CM
029512,000077: 37,3145 34041 STCALL TDEC1
029513,000078: 37,3146 27042 CSMPREC
029514,000079: 37,3147 77775 VLOAD
029515,000080: 37,3150 00017 RATT1
029516,000081: 37,3151 26140 STOVL BASEOTP
029517,000082: 37,3152 00025 VATT1
029518,000083: 37,3153 02120 STORE BASEOTV
029519,000084: 37,3154 77776 EXIT
029520,000085:
029521,000086: 37,3155 40103 REV83 CS FLAGWRD7
029522,000087: 37,3156 74747 MASK AVEGFBIT
029523,000088: 37,3157 00006 EXTEND
029524,000089: 37,3160 13326 BZF GETRVN # TF AVEGFLAG SET, USE RN,VN
029525,000090:
029526,000091: 37,3161 40104 CS FLAGWRD8
029527,000092: 37,3162 74744 MASK SURFFBIT
029528,000093: 37,3163 00006 EXTEND
029529,000094: 37,3164 13370 BZF R31SURF # IF ON SURFACE, USE LEMAREC
029530,000095:
029531,000096: 37,3165 06042 TC INTPRET # DO CONIC EXTRAPOLATION FOR BOTH VEHICLES
029532,000097: 37,3166 77634 RTB
029533,000098: 37,3167 21574 LOADTIME
029534,000099: 37,3170 34041 STCALL TDEC1
029535,000100: 37,3171 27410 INTSTALL
029536,000101: 37,3172 43175 VLOAD CLEAR
029537,000102: 37,3173 02170 BASETHP
029538,000103: 37,3174 00263 MOONFLAG
029539,000104: 37,3175 25535 STOVL RCV
029540,000105: 37,3176 02105 BASETHV
029541,000106: 37,3177 15543 STODL VCV
029542,000107: 37,3200 02114 BASETIME
029543,000108: 37,3201 43014 BOF SET # GET APPROPRIATE MOONFLAG SETTING
029544,000109: 37,3202 04344 MOONTHIS
029545,000110: 37,3203 77205 +2
029546,000111: 37,3204 00063 MOONFLAG
029547,000112: 37,3205 77614 SET
029548,000113: 37,3206 01473 INTYPFLG # CONIC EXTRAP.
029549,000114: 37,3207 35517 STCALL TET
029550,000115: 37,3210 27106 INTEGRVS # INTEGRATION --- AT LAST ---
029551,000116: 37,3211 77775 OTHCONIC VLOAD
029552,000117: # Page 712
029553,000118: 37,3212 00001 RATT
029554,000119: 37,3213 26207 STOVL RONE
029555,000120: 37,3214 00007 VATT
029556,000121: 37,3215 36215 STCALL VONE # GET SET FOR CONIC EXTRAP., OTHER.
029557,000122: 37,3216 27410 INTSTALL
029558,000123: 37,3217 71214 SET DLOAD
029559,000124: 37,3220 01473 INTYPFLG
029560,000125: 37,3221 00015 TAT
029561,000126: 37,3222 00041 OTHINT STORE TDEC1
029562,000127: 37,3223 43175 VLOAD CLEAR
029563,000128: 37,3224 02140 BASEOTP
029564,000129: 37,3225 00263 MOONFLAG
029565,000130: 37,3226 25535 STOVL RCV
029566,000131: 37,3227 02120 BASEOTV
029567,000132: 37,3230 15543 STODL VCV
029568,000133: 37,3231 02114 BASETIME
029569,000134: 37,3232 43014 BOF SET
029570,000135: 37,3233 04344 MOONTHIS
029571,000136: 37,3234 77236 +2
029572,000137: 37,3235 00063 MOONFLAG
029573,000138: 37,3236 35517 STCALL TET
029574,000139: 37,3237 27106 INTEGRVS
029575,000140: 37,3240 52375 COMPDISP VLOAD VSU
029576,000141: 37,3241 00001 RATT
029577,000142: 37,3242 02207 RONE
029578,000143: 37,3243 65234 RTB PDDL
029579,000144: 37,3244 21725 NORMUNX1 # UNIT(RANGE) TO PD 0-5
029580,000145: 37,3245 00045 36D
029581,000146: 37,3246 77657 SL* # RESCALE AFTER NORMUNIT
029582,000147: 37,3247 20201 0,1
029583,000148: 37,3250 26201 STOVL RANGE # SCALED 2(29)M
029584,000149: 37,3251 00007 VATT
029585,000150: 37,3252 50251 VSU DOT # (VCM-VLM).UNIT(LOS), PD=0
029586,000151: 37,3253 02215 VONE
029587,000152: 37,3254 77752 SL1 # SCALED 2(7)M/CS
029588,000153: 37,3255 26203 STOVL RRATE
029589,000154: 37,3256 02207 RONE
029590,000155: 37,3257 63256 UNIT PDVL # UNIT(R) TO PD 0-5
029591,000156: 37,3260 06516 UNITZ
029592,000157: 37,3261 77624 CALL
029593,000158: 37,3262 47663 CDU*NBSM
029594,000159: 37,3263 41505 VXM PUSH # UNIT(Z)/4 TO PD 6-1
029595,000160: 37,3264 01734 REFSMMAT
029596,000161: 37,3265 72431 VPROJ VSL2 # UNIT(P)=UNIT(UZ-(UZ)PROJ(UR))
029597,000162: 37,3266 00001 0D
029598,000163: 37,3267 53445 BVSU UNIT
029599,000164: 37,3270 00007 6D
029600,000165: 37,3271 47315 PDVL VXV # UNIT(P) TO PD 12-17
029601,000166: 37,3272 00001 0D # UNIT(RL)
029602,000167: 37,3273 02215 VONE
029603,000168: # Page 713
029604,000169: 37,3274 50235 VXV DOT # (UR * VL) * UR . U(P)
029605,000170: 37,3275 00001 0D
029606,000171: 37,3276 00015 12D
029607,000172: 37,3277 77715 PDVL # SIGN TO 12-13, LOAD U(P)
029608,000173: 37,3300 75241 DOT SIGN
029609,000174: 37,3301 00007 6D
029610,000175: 37,3302 00015 12D
029611,000176: 37,3303 65512 SL2 ACOS # ARCCOS(UP.UZ(SIGN))
029612,000177: 37,3304 26205 STOVL RTHETA
029613,000178: 37,3305 00001 0D
029614,000179: 37,3306 51041 DOT BPL # IF UR.UZ NEG,
029615,000180: 37,3307 00007 6D # RTHETA = 1 - RTHETA
029616,000181: 37,3310 77315 +5
029617,000182: 37,3311 45345 DLOAD DSU
029618,000183: 37,3312 06532 DPPOSMAX
029619,000184: 37,3313 02205 RTHETA
029620,000185: 37,3314 02205 STORE RTHETA
029621,000186: 37,3315 77776 EXIT
029622,000187:
029623,000188: 37,3316 34747 CA BIT5
029624,000189: 37,3317 71043 MASK EXTVBACT
029625,000190: 37,3320 00006 EXTEND # IF ANSWERED,
029626,000191: 37,3321 15472 BZF ENDEXT # TERMINATE
029627,000192:
029628,000193: 37,3322 41043 CS EXTVBACT
029629,000194: 37,3323 74740 MASK BIT12
029630,000195: 37,3324 27043 ADS EXTVBACT # SET BIT 12
029631,000196: 37,3325 13155 TCF REV83 # AND START AGAIN.
029632,000197:
029633,000198: 37,3326 37713 GETRVN CA PRIO22 # INHIBIT SERVICER
029634,000199: 37,3327 05146 TC PRIOCHNG
029635,000200: 37,3330 06042 TC INTPRET
029636,000201: 37,3331 40375 VLOAD SETPD
029637,000202: 37,3332 01220 RN # LM STATE VECTOR IN RN,VN.
029638,000203: 37,3333 00001 0
029639,000204: 37,3334 26207 STOVL RONE
029640,000205: 37,3335 01226 VN
029641,000206: 37,3336 26215 STOVL VONE # LOAD R(CSM),V(CSM) IN CASE MUNFLAG SET
029642,000207: 37,3337 01726 V(CSM) # (TO INSURE TIME COMPATIBILITY)
029643,000208: 37,3340 65315 PDVL PDDL
029644,000209: 37,3341 01720 R(CSM)
029645,000210: 37,3342 01234 PIPTIME
029646,000211: 37,3343 77776 EXIT
029647,000212: 37,3344 35015 CA PRIO3
029648,000213: 37,3345 05146 TC PRIOCHNG
029649,000214: 37,3346 06042 TC INTPRET
029650,000215: 37,3347 77214 BOFF VLOAD
029651,000216: 37,3350 03347 MUNFLAG
029652,000217: 37,3351 77363 GETRVN2 # IF MUNFLAG RESET, DO CM DELTA PRECISION
029653,000218: # Page 714
029654,000219: 37,3352 60505 VXM VSR4 # CHANGE TO REFERENCE SYSTEM AND RESCALE
029655,000220: 37,3353 01734 REFSMMAT
029656,000221: 37,3354 77715 PDVL # R TO PD 0-5
029657,000222: 37,3355 76505 VXM VSL1
029658,000223: 37,3356 01734 REFSMMAT
029659,000224: 37,3357 40206 PUSH SETPD # V TO PD 5-11
029660,000225: 37,3360 00001 0
029661,000226: 37,3361 77650 GOTO
029662,000227: 37,3362 77240 COMPDISP
029663,000228:
029664,000229: 37,3363 77624 GETRVN2 CALL
029665,000230: 37,3364 27410 INTSTALL
029666,000231: 37,3365 52014 CLEAR GOTO
029667,000232: 37,3366 01673 INTYPFLG # PREC EXTRAP FOR OTHER
029668,000233: 37,3367 77222 OTHINT
029669,000234: 37,3370 06042 R31SURF TC INTPRET
029670,000235: 37,3371 77634 RTB # LM IS ON SURFACE, SO PRECISION
029671,000236: 37,3372 21574 LOADTIME # INTEGRATION USED PLANETARY INERTIAL
029672,000237: 37,3373 34041 STCALL TDEC1 # ORIENTATION SUBROUTINE
029673,000238: 37,3374 27056 LEMPREC
029674,000239: 37,3375 77650 GOTO # DO CSM CONIC
029675,000240: 37,3376 77211 OTHCONIC
029676,000241: 37,3377 40102 MUNG? CS FLAGWRD6
029677,000242: 37,3400 74744 MASK MUNFLBIT
029678,000243: 37,3401 00006 EXTEND
029679,000244: 37,3402 13326 BZF GETRVN # IF MUNFLAG SET, CSM BASE NOT NEEDED
029680,000245:
029681,000246: 37,3403 06042 ONEBASE TC INTPRET # GET CSM BASE VECTOR
029682,000247: 37,3404 52034 RTB GOTO
029683,000248: 37,3405 21574 LOADTIME
029684,000249: 37,3406 77144 DOCMBASE
029685,000250:
029686,000251: 37,3407 04066 V16N54 VN 1654
029687,000252:
029688,000253: # Page 715
029689,000254: # (The original program listing had no source lines on this page.)
029690,000255:
End of include-file R31.agc. Parent file is MAIN.agc