Source Code
These source-code files are part of a reconstructed copy of Luminary 98, a
development version of the Apollo 11 Lunar Module (LM) Apollo Guidance Computer
(AGC) software.
The reconstruction began with source code of Luminary 99 revision 1 previously transcribed from a digitized copy of that program. The code was then updated by undoing changes described in original Luminary memo 85, using asterisks indicating changed lines in the listing as a guide. While no listing of this version is known to exist, nor are the memory-bank checksums available, the reconstruction is believed to be correct because it was an an intermediate step in reconstructing Luminary 97 whose reconstruction 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 099 revision 001 printout, although the added code would likely have changed page numbers for a real Luminary 98 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. |
029492,000002: ## Copyright: Public domain.
029493,000003: ## Filename: R31.agc
029494,000004: ## Purpose: A section of Luminary revision 98.
029495,000005: ## It is part of the reconstructed source code for the a
029496,000006: ## development version of the flight software for the Lunar
029497,000007: ## Module's (LM) Apollo Guidance Computer (AGC) for Apollo 11.
029498,000008: ## The code has been recreated from a copy of Luminary 99
029499,000009: ## revision 001, using asterisks indicating changed lines in
029500,000010: ## the listing and Luminary Memo #85, which lists changes between
029501,000011: ## Luminary 98 and 99.
029502,000012: ## Reference: pp. 703-708
029503,000013: ## Assembler: yaYUL
029504,000014: ## Contact: Ron Burkey <info@sandroid.org>.
029505,000015: ## Website: www.ibiblio.org/apollo/index.html
029506,000016: ## Mod history: 2019-07-28 MAS Created from Luminary 99.
029507,000017:
Page 703 |
029509,000019: 40,3674 BANK 40
029510,000020: 40,2000 SETLOC R31LOC
029511,000021: 40,2000 BANK
029512,000022:
029513,000023: 40,3674 COUNT* $$/R31
029514,000024:
029515,000025: 40,3674 35015 R31CALL CAF PRIO3
029516,000026: 40,3675 05105 TC FINDVAC
029517,000027: 40,3676 E7,1470 EBANK= SUBEXIT
029518,000028: 40,3676 03121 76067 2CADR V83CALL
029519,000029:
029520,000030: 40,3700 05221 DSPDELAY TC FIXDELAY
029521,000031: 40,3701 00144 DEC 100 B-14
029522,000032: 40,3702 31044 CA EXTVBACT
029523,000033: 40,3703 74740 MASK BIT12
029524,000034: 40,3704 00006 EXTEND
029525,000035: 40,3705 13700 BZF DSPDELAY
029526,000036:
029527,000037: 40,3706 35017 CAF PRIO5
029528,000038: 40,3707 05072 TC NOVAC
029529,000039: 40,3710 E7,1611 EBANK= TSTRT
029530,000040: 40,3710 03113 76067 2CADR DISPN5X
029531,000041:
029532,000042: 40,3712 15261 TCF TASKOVER
029533,000043:
029534,000044: 37,3113 BANK 37
029535,000045: 37,2000 SETLOC R31
029536,000046: 37,2000 BANK
029537,000047: 37,3113 COUNT* $$/R31
029538,000048:
029539,000049: 37,3113 33407 DISPN5X CAF V16N54
029540,000050: 37,3114 04616 TC BANKCALL
029541,000051: 37,3115 20334 CADR GOMARKF
029542,000052: 37,3116 05563 TC B5OFF
029543,000053: 37,3117 05563 TC B5OFF
029544,000054: 37,3120 13113 TCF DISPN5X
029545,000055:
029546,000056: 37,3121 40103 V83CALL CS FLAGWRD7 # TEST AVERAGE G FLAG
029547,000057: 37,3122 74747 MASK AVEGFBIT
029548,000058: 37,3123 00006 EXTEND
029549,000059: 37,3124 13377 BZF MUNG? # ON - TEST MUNFLAG
029550,000060:
029551,000061: 37,3125 40104 CS FLAGWRD8
029552,000062: 37,3126 74744 MASK SURFFBIT
029553,000063: 37,3127 00006 EXTEND
029554,000064: 37,3130 13403 BZF ONEBASE # ON SURFACE - BYPASS LEMPREC
029555,000065:
029556,000066: 37,3131 06037 TC INTPRET # EXTRAPOLATE BOTH STATE VECTORS
029557,000067: 37,3132 77634 RTB
Page 704 |
029559,000069: 37,3133 21573 LOADTIME
029560,000070: 37,3134 34041 STCALL TDEC1
029561,000071: 37,3135 27057 LEMPREC # PRECISION BASE VECTOR FOR LM
029562,000072: 37,3136 77775 VLOAD
029563,000073: 37,3137 00017 RATT1
029564,000074: 37,3140 26170 STOVL BASETHP
029565,000075: 37,3141 00025 VATT1
029566,000076: 37,3142 16105 STODL BASETHV
029567,000077: 37,3143 00015 TAT
029568,000078: 37,3144 02114 DOCMBASE STORE BASETIME # PRECISION BASE VECTOR FOR CM
029569,000079: 37,3145 34041 STCALL TDEC1
029570,000080: 37,3146 27043 CSMPREC
029571,000081: 37,3147 77775 VLOAD
029572,000082: 37,3150 00017 RATT1
029573,000083: 37,3151 26140 STOVL BASEOTP
029574,000084: 37,3152 00025 VATT1
029575,000085: 37,3153 02120 STORE BASEOTV
029576,000086: 37,3154 77776 EXIT
029577,000087:
029578,000088: 37,3155 40103 REV83 CS FLAGWRD7
029579,000089: 37,3156 74747 MASK AVEGFBIT
029580,000090: 37,3157 00006 EXTEND
029581,000091: 37,3160 13326 BZF GETRVN # IF AVEGFLAG SET, USE RN,VN
029582,000092:
029583,000093: 37,3161 40104 CS FLAGWRD8
029584,000094: 37,3162 74744 MASK SURFFBIT
029585,000095: 37,3163 00006 EXTEND
029586,000096: 37,3164 13370 BZF R31SURF # IF ON SURFACE, USE LEMAREC
029587,000097:
029588,000098: 37,3165 06037 TC INTPRET # DO CONIC EXTRAPOLATION FOR BOTH VEHICLES
029589,000099: 37,3166 77634 RTB
029590,000100: 37,3167 21573 LOADTIME
029591,000101: 37,3170 34041 STCALL TDEC1
029592,000102: 37,3171 27414 INTSTALL
029593,000103: 37,3172 43175 VLOAD CLEAR
029594,000104: 37,3173 02170 BASETHP
029595,000105: 37,3174 00263 MOONFLAG
029596,000106: 37,3175 25535 STOVL RCV
029597,000107: 37,3176 02105 BASETHV
029598,000108: 37,3177 15543 STODL VCV
029599,000109: 37,3200 02114 BASETIME
029600,000110: 37,3201 43014 BOF SET # GET APPROPRIATE MOONFLAG SETTING
029601,000111: 37,3202 04344 MOONTHIS
029602,000112: 37,3203 77205 +2
029603,000113: 37,3204 00063 MOONFLAG
029604,000114: 37,3205 77614 SET
029605,000115: 37,3206 01473 INTYPFLG # CONIC EXTRAP.
029606,000116: 37,3207 35517 STCALL TET
029607,000117: 37,3210 27107 INTEGRVS # INTEGRATION --- AT LAST ---
029608,000118: 37,3211 77775 OTHCONIC VLOAD
Page 705 |
029610,000120: 37,3212 00001 RATT
029611,000121: 37,3213 26207 STOVL RONE
029612,000122: 37,3214 00007 VATT
029613,000123: 37,3215 36215 STCALL VONE # GET SET FOR CONIC EXTRAP., OTHER.
029614,000124: 37,3216 27414 INTSTALL
029615,000125: 37,3217 71214 SET DLOAD
029616,000126: 37,3220 01473 INTYPFLG
029617,000127: 37,3221 00015 TAT
029618,000128: 37,3222 00041 OTHINT STORE TDEC1
029619,000129: 37,3223 43175 VLOAD CLEAR
029620,000130: 37,3224 02140 BASEOTP
029621,000131: 37,3225 00263 MOONFLAG
029622,000132: 37,3226 25535 STOVL RCV
029623,000133: 37,3227 02120 BASEOTV
029624,000134: 37,3230 15543 STODL VCV
029625,000135: 37,3231 02114 BASETIME
029626,000136: 37,3232 43014 BOF SET
029627,000137: 37,3233 04344 MOONTHIS
029628,000138: 37,3234 77236 +2
029629,000139: 37,3235 00063 MOONFLAG
029630,000140: 37,3236 35517 STCALL TET
029631,000141: 37,3237 27107 INTEGRVS
029632,000142: 37,3240 52375 COMPDISP VLOAD VSU
029633,000143: 37,3241 00001 RATT
029634,000144: 37,3242 02207 RONE
029635,000145: 37,3243 65234 RTB PDDL
029636,000146: 37,3244 21724 NORMUNX1 # UNIT(RANGE) TO PD 0-5
029637,000147: 37,3245 00045 36D
029638,000148: 37,3246 77657 SL* # RESCALE AFTER NORMUNIT
029639,000149: 37,3247 20201 0,1
029640,000150: 37,3250 26201 STOVL RANGE # SCALED 2(29)M
029641,000151: 37,3251 00007 VATT
029642,000152: 37,3252 50251 VSU DOT # (VCM-VLM).UNIT(LOS), PD=0
029643,000153: 37,3253 02215 VONE
029644,000154: 37,3254 77752 SL1 # SCALED 2(7)M/CS
029645,000155: 37,3255 26203 STOVL RRATE
029646,000156: 37,3256 02207 RONE
029647,000157: 37,3257 63256 UNIT PDVL # UNIT(R) TO PD 0-5
029648,000158: 37,3260 06514 UNITZ
029649,000159: 37,3261 77624 CALL
029650,000160: 37,3262 47661 CDU*NBSM
029651,000161: 37,3263 41505 VXM PUSH # UNIT(Z)/4 TO PD 6-11
029652,000162: 37,3264 01734 REFSMMAT
029653,000163: 37,3265 72431 VPROJ VSL2 # UNIT(P)=UNIT(UZ-(UZ)PROJ(UR))
029654,000164: 37,3266 00001 0D
029655,000165: 37,3267 53445 BVSU UNIT
029656,000166: 37,3270 00007 6D
029657,000167: 37,3271 47315 PDVL VXV # UNIT(P) TO PD 12-17
029658,000168: 37,3272 00001 0D # UNIT(RL)
029659,000169: 37,3273 02215 VONE
Page 706 |
029661,000171: 37,3274 50235 VXV DOT # (UR * VL) * UR . U(P)
029662,000172: 37,3275 00001 0D
029663,000173: 37,3276 00015 12D
029664,000174: 37,3277 77715 PDVL # SIGN TO 12-13, LOAD U(P)
029665,000175: 37,3300 75241 DOT SIGN
029666,000176: 37,3301 00007 6D
029667,000177: 37,3302 00015 12D
029668,000178: 37,3303 65512 SL2 ACOS # ARCCOS(UP.UZ(SIGN))
029669,000179: 37,3304 26205 STOVL RTHETA
029670,000180: 37,3305 00001 0D
029671,000181: 37,3306 51041 DOT BPL # IF UR.UZ NEG,
029672,000182: 37,3307 00007 6D # RTHETA = 1 - RTHETA
029673,000183: 37,3310 77315 +5
029674,000184: 37,3311 45345 DLOAD DSU
029675,000185: 37,3312 06530 DPPOSMAX
029676,000186: 37,3313 02205 RTHETA
029677,000187: 37,3314 02205 STORE RTHETA
029678,000188: 37,3315 77776 EXIT
029679,000189:
029680,000190: 37,3316 34747 CA BIT5
029681,000191: 37,3317 71044 MASK EXTVBACT
029682,000192: 37,3320 00006 EXTEND # IF ANSWERED,
029683,000193: 37,3321 15472 BZF ENDEXT # TERMINATE
029684,000194:
029685,000195: 37,3322 41044 CS EXTVBACT
029686,000196: 37,3323 74740 MASK BIT12
029687,000197: 37,3324 27044 ADS EXTVBACT # SET BIT 12
029688,000198: 37,3325 13155 TCF REV83 # AND START AGAIN.
029689,000199:
029690,000200: 37,3326 37710 GETRVN CA PRIO22 # INHIBIT SERVICER
029691,000201: 37,3327 05146 TC PRIOCHNG
029692,000202: 37,3330 06037 TC INTPRET
029693,000203: 37,3331 40375 VLOAD SETPD
029694,000204: 37,3332 01221 RN # LM STATE VECTOR IN RN,VN
029695,000205: 37,3333 00001 0
029696,000206: 37,3334 26207 STOVL RONE
029697,000207: 37,3335 01227 VN
029698,000208: 37,3336 26215 STOVL VONE # LOAD R(CSM),V(CSM) IN CASE MUNFLAG SET
029699,000209: 37,3337 01726 V(CSM) # (TO INSURE TIME COMPATABILITY)
029700,000210: 37,3340 65315 PDVL PDDL
029701,000211: 37,3341 01720 R(CSM)
029702,000212: 37,3342 01235 PIPTIME
029703,000213: 37,3343 77776 EXIT
029704,000214: 37,3344 35015 CA PRIO3
029705,000215: 37,3345 05146 TC PRIOCHNG
029706,000216: 37,3346 06037 TC INTPRET
029707,000217: 37,3347 77214 BOFF VLOAD
029708,000218: 37,3350 03347 MUNFLAG
029709,000219: 37,3351 77363 GETRVN2 # IF MUNFLAG RESET, DO CM DELTA PRECISION
Page 707 |
029711,000221: 37,3352 60505 VXM VSR4 # CHANGE TO REFERENCE SYSTEM AND RESCALE
029712,000222: 37,3353 01734 REFSMMAT
029713,000223: 37,3354 77715 PDVL # R TO PD 0-5
029714,000224: 37,3355 76505 VXM VSL1
029715,000225: 37,3356 01734 REFSMMAT
029716,000226: 37,3357 40206 PUSH SETPD # V TO PD 5-11
029717,000227: 37,3360 00001 0
029718,000228: 37,3361 77650 GOTO
029719,000229: 37,3362 77240 COMPDISP
029720,000230:
029721,000231: 37,3363 77624 GETRVN2 CALL
029722,000232: 37,3364 27414 INTSTALL
029723,000233: 37,3365 52014 CLEAR GOTO
029724,000234: 37,3366 01673 INTYPFLG # PREC EXTRAP FOR OTHER
029725,000235: 37,3367 77222 OTHINT
029726,000236: 37,3370 06037 R31SURF TC INTPRET
029727,000237: 37,3371 77634 RTB # LM IS ON SURFACE, SO PRECISION
029728,000238: 37,3372 21573 LOADTIME # INTEGRATION USES PLANETARY INERTIAL
029729,000239: 37,3373 34041 STCALL TDEC1 # ORIENTATION SUBROUTINE
029730,000240: 37,3374 27057 LEMPREC
029731,000241: 37,3375 77650 GOTO # DO CSM CONIC
029732,000242: 37,3376 77211 OTHCONIC
029733,000243: 37,3377 40102 MUNG? CS FLAGWRD6
029734,000244: 37,3400 74744 MASK MUNFLBIT
029735,000245: 37,3401 00006 EXTEND
029736,000246: 37,3402 13326 BZF GETRVN # IF MUNFLAG SET, CSM BASE NOT NEEDED
029737,000247:
029738,000248: 37,3403 06037 ONEBASE TC INTPRET # GET CSM BASE VECTOR
029739,000249: 37,3404 52034 RTB GOTO
029740,000250: 37,3405 21573 LOADTIME
029741,000251: 37,3406 77144 DOCMBASE
029742,000252:
029743,000253: 37,3407 04066 V16N54 VN 1654
029744,000254:
Page 708
This page is empty. |
029747,000257:
End of include-file R31.agc. Parent file is MAIN.agc