Source Code
032790,000001: # Copyright: Public domain.
032791,000002: # Filename: THE_LUNAR_LANDING.agc
032792,000003: # Purpose: A section of Luminary 1C, revision 131.
032793,000004: # It is part of the source code for the Lunar Module's (LM)
032794,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14.
032795,000006: # This file is intended to be a faithful transcription, except
032796,000007: # that the code format has been changed to conform to the
032797,000008: # requirements of the yaYUL assembler rather than the
032798,000009: # original YUL assembler.
032799,000010: # Reference: pp. 785-792 of 1729.pdf.
032800,000011: # Contact: Ron Burkey <info@sandroid.org>.
032801,000012: # Website: www.ibiblio.org/apollo/index.html
032802,000013: # Mod history: 05/25/03 RSB. Began transcribing.
032803,000014: # 05/14/05 RSB Corrected website reference above.
032804,000015:
032805,000016: # Page 785
032806,000017: 32,3000 BANK 32
032807,000018: 32,2000 SETLOC F2DPS*32
032808,000019: 32,2000 BANK
032809,000020:
032810,000021: 32,3000 E7,1621 EBANK= E2DPS
032811,000022:
032812,000023: # *************************************
032813,000024: # P63: THE LUNAR LANDING, BRAKING PHASE
032814,000025: # *************************************
032815,000026:
032816,000027: 32,3000 COUNT* $$/P63
032817,000028:
032818,000029: 32,3000 05353 P63LM TC PHASCHNG
032819,000030: 32,3001 04024 OCT 04024
032820,000031:
032821,000032: 32,3002 04616 TC BANKCALL # DO IMU STATUS CHECK ROUTINE R02
032822,000033: 32,3003 11233 CADR R02BOTH
032823,000034:
032824,000035: 32,3004 33255 CAF P63ADRES # INITIALIZE WHICH FOR BURNBABY
032825,000036: 32,3005 55455 TS WHICH
032826,000037:
032827,000038: 32,3006 32000 CAF DPSTHRSH # INITIALIZE DVMON
032828,000039: 32,3007 55250 TS DVTHRUSH
032829,000040: 32,3010 34751 CAF FOUR
032830,000041: 32,3011 55515 TS DVCNTR
032831,000042:
032832,000043: 32,3012 44753 CS ONE # INITIALIZE WCHPHASE AND FLPASS0
032833,000044: 32,3013 55346 TS WCHPHASE
032834,000045:
032835,000046: 32,3014 34755 CA ZERO
032836,000047: 32,3015 55623 TS FLPASS0
032837,000048:
032838,000049: 32,3016 44736 CS BIT14
032839,000050: 32,3017 00006 EXTEND
032840,000051: 32,3020 03012 WAND CHAN12 # REMOVE TRACK-ENABLE DISCRETE.
032841,000052:
032842,000053: 32,3021 06042 FLAGORGY TC INTPRET # DIONYSIAN FLAG WAVING
032843,000054: 32,3022 43014 CLEAR CLEAR
032844,000055: 32,3023 02663 NOTHROTL
032845,000056: 32,3024 03271 REDFLAG
032846,000057: 32,3025 43014 CLEAR SET
032847,000058: 32,3026 05660 LRBYPASS
032848,000059: 32,3027 03067 MUNFLAG
032849,000060: 32,3030 43014 CLEAR CLEAR
032850,000061: 32,3031 00266 P25FLAG # TERMINATE P25 IF IT IS RUNNING.
032851,000062: 32,3032 00270 RNDVZFLG # TERMINATE P20 IF IT IS RUNNING.
032852,000063:
032853,000064: # ********************************
032854,000065:
032855,000066: 32,3033 77201 IGNALG SETPD VLOAD # FIRST SET UP INPUTS FOR RP-TO-R:
032856,000067: # Page 786
032857,000068: 32,3034 00001 0 # AT 0D LANDING SITE IN MOON FIXED FRAME
032858,000069: 32,3035 02023 RLS # AT 6D ESTIMATED TIME OF LANDING
032859,000070: 32,3036 41525 PDDL PUSH # MPAC NON-ZERO TO INDICATE LUNAR CASE
032860,000071: 32,3037 02401 TLAND
032861,000072: 32,3040 37625 STCALL TPIP # ALSO SET TPIP FOR FIRST GUIDANCE PASS
032862,000073: 32,3041 55716 RP-TO-R
032863,000074: 32,3042 64312 VSL4 MXV
032864,000075: 32,3043 01734 REFSMMAT
032865,000076: 32,3044 37635 STCALL LAND
032866,000077: 32,3045 71343 GUIDINIT # GUIDINIT INITIALIZES WM AND /LAND/
032867,000078: 32,3046 45345 DLOAD DSU
032868,000079: 32,3047 02401 TLAND
032869,000080: 32,3050 25262 GUIDDURN
032870,000081: 32,3051 34041 STCALL TDEC1 # INTEGRATE STATE FORWARD TO THAT TIME
032871,000082: 32,3052 27056 LEMPREC
032872,000083: 32,3053 77331 SSP VLOAD
032873,000084: 32,3054 03647 NIGNLOOP
032874,000085: 32,3055 00050 40D
032875,000086: 32,3056 06522 UNITX
032876,000087: 32,3057 26575 STOVL CG
032877,000088: 32,3060 06520 UNITY
032878,000089: 32,3061 26603 STOVL CG +6
032879,000090: 32,3062 06516 UNITZ
032880,000091: 32,3063 16611 STODL CG +14
032881,000092: 32,3064 25260 99999CON
032882,000093: 32,3065 27665 STOVL DELTAH # INITIALIZE DELTAH FOR V16N68 DISPLAY
032883,000094: 32,3066 06524 ZEROVECS
032884,000095: 32,3067 17253 STODL UNFC/2 # INITIALIZE TRIM VELOCITY CORRECTION TERM
032885,000096: 32,3070 06524 HI6ZEROS
032886,000097: 32,3071 03643 STORE TTF/8
032887,000098:
032888,000099: 32,3072 77745 IGNALOOP DLOAD
032889,000100: 32,3073 00015 TAT
032890,000101: 32,3074 27561 STOVL PIPTIME1
032891,000102: 32,3075 00017 RATT1
032892,000103: 32,3076 64312 VSL4 MXV
032893,000104: 32,3077 01734 REFSMMAT
032894,000105: 32,3100 37521 STCALL R
032895,000106: 32,3101 67067 MUNGRAV
032896,000107: 32,3102 35236 STCALL GDT/2
032897,000108: 32,3103 62415 ?GUIDSUB # WHICH DELIVERS N PASSES OF GUIDANCE
032898,000109:
032899,000110: # DDUMCALC IS PROGRAMMED AS FOLLOWS:
032900,000111: # 2 ___
032901,000112: # (RIGNZ - RGU )/16 + 16(RGU )KIGNY/B8 + (RGU - RIGNX)KIGNX/B4 + (ABVAL(VGU) - VIGN)KIGNV/B4
032902,000113: # 2 1 0
032903,000114: # DDUM = -------------------------------------------------------------------------------------------
032904,000115: # 10
032905,000116: # 2 (VGU - 16 VGU KIGNX/B4)
032906,000117: # 2 0
032907,000118: # Page 787
032908,000119: # THE NUMERATOR IS SCALED IN METERS AT 2(28). THE DENOMINATOR IS A VELOCITY IN UNITS OF 2(10) M/CS.
032909,000120: # THE QUOTIENT IS THUS A TIME IN UNITS OF 2(18) CENTISECONDS. THE FINAL SHIFT RESCALES TO UNITS OF 2(28) CS.
032910,000121: # THERE IS NO DAMPING FACTOR. THE CONSTANTS KIGNX/B4, KIGNY/88 AND KIGNV/B4 ARE ALL NEGATIVE IN SIGN.
032911,000122:
032912,000123: 32,3104 55646 DDUMCALC TS NIGNLOOP
032913,000124: 32,3105 06042 TC INTPRET
032914,000125: 32,3106 57345 DLOAD DMPR # FORM DENOMINATOR FIRST
032915,000126: 32,3107 03627 VGU
032916,000127: 32,3110 02501 KIGNX/B4
032917,000128: 32,3111 44232 SL4R BDSU
032918,000129: 32,3112 03633 VGU +4
032919,000130: 32,3113 45325 PDDL DSU
032920,000131: 32,3114 02477 RIGNZ
032921,000132: 32,3115 02633 RGU +4
032922,000133: 32,3116 65222 SR4R PDDL
032923,000134: 32,3117 02631 RGU +2
032924,000135: 32,3120 57316 DSQ DMPR
032925,000136: 32,3121 02503 KIGNY/B8
032926,000137: 32,3122 65232 SL4R PDDL
032927,000138: 32,3123 02627 RGU
032928,000139: 32,3124 57225 DSU DMPR
032929,000140: 32,3125 02475 RIGNX
032930,000141: 32,3126 02501 KIGNX/B4
032931,000142: 32,3127 51515 PDVL ABVAL
032932,000143: 32,3130 03627 VGU
032933,000144: 32,3131 57225 DSU DMPR
032934,000145: 32,3132 02473 VIGN
032935,000146: 32,3133 02505 KIGNV/B4
032936,000147: 32,3134 43215 DAD DAD
032937,000148: 32,3135 56215 DAD DDV
032938,000149: 32,3136 77661 SRR
032939,000150: 32,3137 21613 10D
032940,000151:
032941,000152: 32,3140 43206 PUSH DAD
032942,000153: 32,3141 03561 PIPTIME1
032943,000154: 32,3142 14041 STODL TDEC1 # STORE NEW GUESS FOR NEXT INTEGRATION
032944,000155: 32,3143 45246 ABS DSU
032945,000156: 32,3144 25264 DDUMCRIT
032946,000157: 32,3145 45040 BMN CALL
032947,000158: 32,3146 65165 DDUMGOOD
032948,000159: 32,3147 27410 INTSTALL
032949,000160: 32,3150 43014 SET SET
032950,000161: 32,3151 01473 INTYPFLG
032951,000162: 32,3152 00063 MOONFLAG
032952,000163: 32,3153 77745 DLOAD
032953,000164: 32,3154 03561 PIPTIME1
032954,000165: 32,3155 25517 STOVL TET # HOPEFULLY ?GUIDSUB DID NOT
032955,000166: 32,3156 00017 RATT1 # CLOBBER RATT1 AND VATT1
032956,000167: # Page 788
032957,000168: 32,3157 25535 STOVL RCV
032958,000169: 32,3160 00025 VATT1
032959,000170: 32,3161 35543 STCALL VCV
032960,000171: 32,3162 27106 INTEGRVS
032961,000172: 32,3163 77650 GOTO
032962,000173: 32,3164 65072 IGNALOOP
032963,000174:
032964,000175: 32,3165 54335 DDUMGOOD SLOAD SR
032965,000176: 32,3166 03423 ZOOMTIME
032966,000177: 32,3167 20617 14D
032967,000178: 32,3170 77621 BDSU
032968,000179: 32,3171 00041 TDEC1
032969,000180: 32,3172 27442 STOVL TIG # COMPUTE DISTANCE LANDING SITE WILL BE
032970,000181: 32,3173 03527 V # OUT OF LM'S ORBITAL PLANE AT IGNITION:
032971,000182: 32,3174 53435 VXV UNIT # SIGN IS + IF LANDING SITE IS TO THE
032972,000183: 32,3175 03521 R # RIGHT, NORTH; IF TO THE LEFT, SOUTH.
032973,000184: 32,3176 72441 DOT SL1
032974,000185: 32,3177 03635 LAND
032975,000186: 32,3200 26617 R60INIT STOVL OUTOFPLN # INITIALIZATION FOR CALCMANU
032976,000187: 32,3201 03253 UNFC/2
032977,000188: 32,3202 02621 STORE R60VSAVE # STORE UNFC/2 TEMPORARILY IN R60SAVE
032978,000189: 32,3203 77776 EXIT
032979,000190: # *******************************************
032980,000191:
032981,000192: 32,3204 05353 IGNALGRT TC PHASCHNG # PREVENT REPEATING IGNALG
032982,000193: 32,3205 04024 OCT 04024
032983,000194:
032984,000195: 32,3206 44362 ASTNCLOK CS ASTNDEX
032985,000196: 32,3207 04616 TC BANKCALL
032986,000197: 32,3210 74670 CADR STCLOK2
032987,000198: 32,3211 15155 TCF ENDOFJOB # RETURN IN NEW JOB AND IN EBANK FIVE
032988,000199:
032989,000200: 32,3212 06042 ASTNRET TC INTPRET
032990,000201: 32,3213 47131 SSP RTB # GO PICK UP DISPLAY AT END OF R51:
032991,000202: 32,3214 02747 QMAJ # "PROCEED" WILL DO A FINE ALIGNMENT
032992,000203: 32,3215 65217 FCADR P63SPOT2 # "ENTER" WILL RETURN TO P63SPOT2
032993,000204: 32,3216 31127 R51P63
032994,000205: 32,3217 53575 P63SPOT2 VLOAD UNIT # INITIALIZE KALCMANU FOR BURN ATTITUDE
032995,000206: 32,3220 02621 R60VSAVE
032996,000207: 32,3221 27773 STOVL POINTVSM
032997,000208: 32,3222 06522 UNITX
032998,000209: 32,3223 03765 STORE SCAXIS
032999,000210: 32,3224 77776 EXIT
033000,000211:
033001,000212: 32,3225 35016 CAF EBANK7
033002,000213: 32,3226 54003 TS EBANK
033003,000214:
033004,000215: 32,3227 00004 INHINT
033005,000216: 32,3230 04674 TC IBNKCALL
033006,000217: 32,3231 40143 CADR PFLITEDB
033007,000218: # Page 789
033008,000219: 32,3232 00003 RELINT
033009,000220:
033010,000221: 32,3233 04616 TC BANKCALL
033011,000222: 32,3234 54123 CADR R60LEM
033012,000223:
033013,000224: 32,3235 05353 TC PHASCHNG # PREVENT RECALLINE R60
033014,000225: 32,3236 04024 OCT 04024
033015,000226:
033016,000227: 32,3237 34746 P63SPOT3 CA BIT6 # IS THE LR ANTENNA IN POSITION 1 YET
033017,000228: 32,3240 00006 EXTEND
033018,000229: 32,3241 02033 RAND CHAN33
033019,000230: 32,3242 00006 EXTEND
033020,000231: 32,3243 13251 BZF P63SPOT4 # BRANCH IF ANTENNA ALREADY IN POSITION 1
033021,000232:
033022,000233: 32,3244 33256 CAF CODE500 # ASTRONAUT: PLEASE CRANK THE
033023,000234: 32,3245 04616 TC BANKCALL # SILLY THING AROUND
033024,000235: 32,3246 20624 CADR GOPERF1
033025,000236: 32,3247 16001 TCF GOTOP00H # TERMINATE
033026,000237: 32,3250 13237 TCF P63SPOT3 # PROCEED SEE IF HE'S LYING
033027,000238:
033028,000239: 32,3251 04616 P63SPOT4 TC BANKCALL # ENTER INITIALIZE LANDING RADAR
033029,000240: 32,3252 67701 CADR SETPOS1
033030,000241:
033031,000242: 32,3253 04635 TC POSTJUMP # OFF TO SEE THE WIZARD ...
033032,000243: 32,3254 74130 CADR BURNBABY
033033,000244:
033034,000245: # ---------------------------------
033035,000246:
033036,000247: # CONSTANTS FOR P63LM AND IGNALG
033037,000248:
033038,000249: 32,3255 02100 P63ADRES GENADR P63TABLE
033039,000250:
033040,000251: 32,3256 4362 ASTNDEX = MD1 # OCT 25: INDEX FOR CLOKTASK
033041,000252:
033042,000253: 32,3256 00500 CODE500 OCT 00500
033043,000254:
033044,000255: 32,3257 00035 30373 99999CON 2DEC 30479.7 B-24
033045,000256:
033046,000257: 32,3261 00004 01610 GUIDDURN 2DEC +66440 B-28 # GUIDDURN +6.64400314 E+2
033047,000258: 32,3263 00000 00010 DDUMCRIT 2DEC +8 B-28 # CRITERION FOR IGNALG CONVERGENCE
033048,000259:
033049,000260: # Page 790
033050,000261: # --------------------------------
033051,000262:
033052,000263: # Page 791
033053,000264: # *************************
033054,000265: # P68: LANDING CONFIRMATION
033055,000266: # *************************
033056,000267:
033057,000268: 34,3271 BANK 34
033058,000269: 34,2000 SETLOC F2DPS*34
033059,000270: 34,2000 BANK
033060,000271:
033061,000272: 34,3271 COUNT* $$/P6567
033062,000273:
033063,000274: 34,3271 05353 LANDJUNK TC PHASCHNG
033064,000275: 34,3272 04024 OCT 04024
033065,000276:
033066,000277: 34,3273 00004 INHINT
033067,000278: 34,3274 04616 TC BANKCALL # ZERO ATTITUDE ERROR
033068,000279: 34,3275 40154 CADR ZATTEROR
033069,000280:
033070,000281: 34,3276 06042 TC INTPRET # TO INTERPRETATIVE AS TIME IS NOT CRITICAL
033071,000282: 34,3277 77614 SET # PREVENT RCS JET FIRINGS IF MOD CONT IS
033072,000283: 34,3300 06460 PULSEFLG # IN ATT HOLD
033073,000284: 34,3301 43014 SET CLEAR
033074,000285: 34,3302 04067 SURFFLAG
033075,000286: 34,3303 04666 LETABORT
033076,000287: 34,3304 77214 SET VLOAD
033077,000288: 34,3305 05062 APSFLAG
033078,000289: 34,3306 01220 RN
033079,000290: 34,3307 16032 STODL ALPHAV
033080,000291: 34,3310 01234 PIPTIME
033081,000292: 34,3311 45014 SET CALL
033082,000293: 34,3312 01463 LUNAFLAG
033083,000294: 34,3313 26347 LAT-LONG
033084,000295: 34,3314 77201 SETPD VLOAD # COMPUTE RLS AND STORE IT AWAY
033085,000296: 34,3315 00001 0
033086,000297: 34,3316 01220 RN
033087,000298: 34,3317 65352 VSL2 PDDL
033088,000299: 34,3320 01234 PIPTIME
033089,000300: 34,3321 45006 PUSH CALL
033090,000301: 34,3322 51700 R-TO-RP
033091,000302: 34,3323 02023 STORE RLS
033092,000303: 34,3324 77776 EXIT
033093,000304: 34,3325 33342 CAF V06N43* # ASTRONAUT: NOW LOOK WHERE TO ENDED UP
033094,000305: 34,3326 04616 TC BANKCALL
033095,000306: 34,3327 20477 CADR GOFLASH
033096,000307: 34,3330 16001 TCF GOTOP00H # TERMINATE
033097,000308: 34,3331 13333 TCF +2 # PROCEED
033098,000309: 34,3332 13325 TCF -5 # RECYCLE
033099,000310:
033100,000311: 34,3333 06042 TC INTPRET
033101,000312: 34,3334 77775 VLOAD # INITIALIZE GSAV AND (USING REFMF)
033102,000313: # Page 792
033103,000314: 34,3335 06522 UNITX # YNBSAV, ZNBSAV AND ATTFLAG FOR P57
033104,000315: 34,3336 36231 STCALL GSAV
033105,000316: 34,3337 33471 REFMF
033106,000317: 34,3340 77776 EXIT
033107,000318:
033108,000319: 34,3341 16001 TCF GOTOP00H # ASTRONAUT: PLEASE SELECT P57
033109,000320:
033110,000321: 34,3342 01453 V06N43* VN 0643
033111,000322:
End of include-file THE_LUNAR_LANDING.agc. Parent file is MAIN.agc