Source Code
These source-code files derive from a printout of Luminary 210 (Apollo 15-17
Lunar Module guidance computer program), from the personal library of
original AGC developer Don Eyles, digitally photographed at archive.org,
financially sponsored by Jim Lawton, and transcribed to source code by a
team of volunteers. This colorized, syntax-highlighted form was created
by assembling that transcribed source code. Note that the full page images
are available on the
Virtual AGC project page at archive.org, while reduced-size images
are presented at the VirtualAGC project website. Report or fix any
transcription errors at
the Virtual AGC project code repository. Notations on the program listing read, in part: GAP: ASSEMBLE REVISION 210 OF AGC PROGRAM LUMINARY BY NASA 2021112-161 17:11 MAR. 19,1971Note that the date is the date of the printout, not the date of the program revision. |
032777,000002: ## Copyright: Public domain.
032778,000003: ## Filename: P40-P47.agc
032779,000004: ## Purpose: A section of Luminary revision 210.
032780,000005: ## It is part of the source code for the Lunar Module's (LM)
032781,000006: ## Apollo Guidance Computer (AGC) for Apollo 15-17.
032782,000007: ## This file is intended to be a faithful transcription, except
032783,000008: ## that the code format has been changed to conform to the
032784,000009: ## requirements of the yaYUL assembler rather than the
032785,000010: ## original YUL assembler.
032786,000011: ## Reference: pp. 747-780
032787,000012: ## Assembler: yaYUL
032788,000013: ## Contact: Ron Burkey <info@sandroid.org>.
032789,000014: ## Website: www.ibiblio.org/apollo/index.html
032790,000015: ## Mod history: 2016-11-17 JL Created from Luminary131 version.
032791,000016: ## 2016-12-01 RSB Completed transcription.
032792,000017: ## 2016-12-02 RSB Fixed a bunch of typos in comments, which I discovered
032793,000018: ## by playing around with ProoferComments.py. By my count,
032794,000019: ## I fixed 31 errors in 34 pages, almost all of them actual
032795,000020: ## textual errors, as opposed to whitespace errors ... i.e.,
032796,000021: ## on average, in this file anyway, there was an average of
032797,000022: ## about one error per page!
032798,000023: ## 2016-12-02 RSB 3 more errors found, after fixes to ProoferComments.py,
032799,000024: ## bringing the average errors-per-page to *exactly* 1. :-)
032800,000025: ## 2015-12-02 RSB 4 more errors found, with additional improvements to
032801,000026: ## ProoferComments.py ... so, 38 errors for 34 lines.
032802,000027: ## 2016-12-07 HG fix P00 -> POO (appears only in a comment)
032803,000028: ## revert above change
032804,000029: ## 2016-12-07 HG Add missing label S40RET
032805,000030: ## 2016-12-11 HG Fix pseudo operation GOTO -> CALL
032806,000031: ## 2016-12-12 hg Fix interpretive operand FRCS2 -> FRCS4
032807,000032: ## operator GOTO -> SET
032808,000033: ## operand PHASCHNG -> 2PHSCHNG
032809,000034: ## 2016-12-25 RSB Comment-text proofed using ProoferComments
032810,000035: ## and corrected errors found.
032811,000036: ## 2017-03-16 RSB Comment-text fixes identified in 5-way
032812,000037: ## side-by-side diff of Luminary 69/99/116/131/210.
032813,000038: ## 2017-08-16 RSB Fixed comment typo identified in AP11ROPE.
032814,000039: ## 2017-08-26 MAS Fixed an incorrect label found while transcribing
032815,000040: ## Zerlina 56 (it was unreferenced so caused no errors).
032816,000041: ## 2021-05-30 ABS TGDCALC -> TGOCALC
032817,000042:
Page 747 |
032819,000044: # PROGRAM DESCRIPTION P40BOTH DECEMBER 22, 1966
032820,000045: # MOD 03 BY PETER ADLER MARCH 3, 1967
032821,000046: # CALLED VIA JOB FROM V37E
032822,000047:
032823,000048: # FUNCTIONAL DESCRIPTION
032824,000049:
032825,000050: # 1) TO COMPUTE A PREFERRED IMU ORIENTATION AND A PREFERRED VEHICLE ATTITUDE FOR A LM DPS
032826,000051: # THRUSTING MANEUVER.
032827,000052:
(There is no item #2 in the original program listing.) |
032829,000054:
032830,000055: # 3) TO DO THE VEHICLE MANEUVER TO THE THRUSTING ATTITUDE.
032831,000056:
032832,000057: # 4) TO CONTROL THE PGNCS DURING COUNTDOWN, IGNITION, THRUSTING, AND THRUST TERMINATION OF A
032833,000058: # PGNCS CONTROLLED DPS MANEUVER.
032834,000059:
032835,000060: # 5) IN POSTBURN--ZERO RENDEZVOUS COUNTER, MAINTAIN VG CALCULATIONS FOR POSSIBLE RCS MANEUVER,
032836,000061: # SET MAXIMUM DEADBAND IN DAP, RESET STEERLAW CSTEER TO ZERO.
032837,000062:
032838,000063: # NOTE: P42, WHICH IS IN THIS LOG SECTION, DOES THE SAME FOR AN APS BURN, AND P41 DOES 1-3 FOR
032839,000064: # RCS PLUS DISPLAYS PARAMETERS FOR MANUAL CONTROL.
032840,000065:
032841,000066: # SUBROUTINES USED
032842,000067:
032843,000068: # R02 IMU STATUS CHECK
032844,000069: # S40.1 COMPUTATION OF THRUST DIRECTION
032845,000070: # S40.13 LENGTH OF BURN
032846,000071: # S40.2,3 PREFERRED IMU ORIENATTION
032847,000072: # S40.8 X PRODUCT STEERING
032848,000073: # S40.9 LAMBERT VTOGAIN
032849,000074: # R60LEM ATTITUDE MANEUVER
032850,000075: # LEMPREC EXTRAPOLATE STATE VECTOR
032851,000076: # PREREAD AVERAGE G, SERVICER
032852,000077: # ALLCOAST DAP COASTING INITIALIZATION
032853,000078: # CLOKTASK ERGO CLOCKJOB--COUNT DOWN
032854,000079: # PHASCHNG, INTPRET, FLAGUP, FLAGDOWN, WAITLIST, LONGCALL, GOFLASH, GOFLASHR, GOPERF1, ALARM,
032855,000080: # PRIOLARM, GOTOPOOH, ENDOFJOB, BANKCALL, SETMAXDB, SETMINDB, CHECKMM, FLATOUT, OUTFLAT,
032856,000081: # KILLTASK, SGNAGREE, TPAGREE, ETC.
032857,000082:
032858,000083: # RESTARTS VIA GROUP 4
032859,000084:
032860,000085: # DISPLAYS
032861,000086:
032862,000087: # V50N25 203 A/P TO PGNCS, AUTO THROTTLE MODE, AUTO ATTITUDE CONTROL
032863,000088: # V06N40 TTI, VG, DELTAVM (DISPLAYED ONCE/SECOND BY CLOKTASK)
032864,000089: # V50N99 PLEASE PERFORM ENGINE ON ENABLE
032865,000090: # V06N40 TG (TIME TO GO TO CUTOFF), VG, DELTAVM--ONCE/SECOND
032866,000091: # V16N40 FINAL VALUES OF TG, VG, DELTAVM
032867,000092: # V16N85 COMP OF VG (BODY AXES) FOR POSS. RCS MANUAL MANEUVER
032868,000093: # V05N09 POSSIBLE ALARMS
032869,000094: # V50N07 PLEASE SELECT P00
032870,000095:
Page 748 |
032872,000097: # VIA R30
032873,000098:
032874,000099: # V06N44 HAPO, PERI, TFF
032875,000100: # V06N35 TIME TO PERIGEE, HMS
032876,000101:
032877,000102: # ALARM OR ABORT EXIT MODES
032878,000103:
032879,000104: # PROGRAM ALARM, FLASHING DISPLAY OF ALARM CODE 1706 IF P40 SELECTED WITH DESCENT UNIT STAGED.
032880,000105: # V34E (TERMINATE) IS THE ONLY RESPONSE ACCEPTED. TC GOTOPOOH.
032881,000106:
032882,000107: # PROGRAM ALARM, FLASH CODE 1703: TIG LESS THAN 45 SECS AWAY. V34E= GOTOPOOH OR V33E= SLIP
032883,000108: # TIG BY 45 SECS.
032884,000109:
032885,000110: # ERASABLE INITIALIZATION
032886,000111:
032887,000112: # DEBRIS
032888,000113:
032889,000114: # OUTPUT
032890,000115:
032891,000116: # SEE SUBROUTINES E.G.: S40.1, S40.2,3, S40.13, S40.8, S40.9, TRIMGIMB
032892,000117: # XDELVFLG = 1 FOR EXT DELV COMPUTATION
032893,000118: # = 0 FOR AIMPT (LAMBERT) COMP
032894,000119:
032895,000120: 27,2246 COUNT* $$/P40
032896,000121: 27,2246 E7,1455 EBANK= WHICH
032897,000122:
032898,000123: 36,3146 BANK 36
032899,000124: 36,2000 SETLOC P40S
032900,000125: 36,2000 BANK
032901,000126:
032902,000127: 36,3146 05355 P40LM TC PHASCHNG
032903,000128: 36,3147 04024 OCT 04024
032904,000129:
032905,000130: 36,3150 33132 CAF P40ADRES # INITIALIZATION FOR BURNBABY.
032906,000131: 36,3151 55455 TS WHICH
032907,000132:
032908,000133: 36,3152 30106 CA FLGWRD10
032909,000134: 36,3153 74730 MASK APSFLBIT
032910,000135: 36,3154 10000 CCS A
032911,000136: 36,3155 13120 TCF P40ALM
032912,000137: 36,3156 04607 TC BANKCALL # GO DO IMU STATUS CHECK ROUTINE.
032913,000138: 36,3157 33757 CADR R02BOTH
032914,000139:
032915,000140: 36,3160 40111 CS DAPBOOLS # INITIALIZE DVMON
032916,000141: 36,3161 74730 MASK CSMDOCKD
032917,000142: 36,3162 10000 CCS A
032918,000143: 36,3163 32022 CAF THRESH1
032919,000144: 36,3164 62023 AD THRESH3
032920,000145: 36,3165 55250 TS DVTHRUSH
032921,000146: 36,3166 34742 CAF FOUR
032922,000147: 36,3167 55515 TS DVCNTR
Page 749 |
032924,000149: 36,3170 06060 TC INTPRET # LOAD CONSTANTS FOR DPS BURN
032925,000150: 36,3171 43175 VLOAD CLEAR # LOAD F, MDOT, TDECAY
032926,000151: 36,3172 34001 FDPS
032927,000152: 36,3173 02663 NOTHROTL
032928,000153: 36,3174 03735 STORE F
032929,000154: 36,3175 77735 SLOAD
032930,000155: 36,3176 26002 DPSVEX
032931,000156: 36,3177 70476 P40IN DCOMP SR1
032932,000157: 36,3200 37743 STCALL VEX # LOAD EXHAUST VELOCITY FOR TGO COMP.
032933,000158: 36,3201 56246 S40.1 # COMPUTES UT AND VGTIG
032934,000159: 36,3202 77624 CALL
032935,000160: 36,3203 56413 S40.2,3 # COMPUTES PREFERRED IMU ORIENTATION
032936,000161: 36,3204 77776 EXIT
032937,000162:
032938,000163: 36,3205 00004 INHINT
032939,000164: 36,3206 04665 TC IBNKCALL
032940,000165: 36,3207 40143 CADR PFLITEDB # ZERO ATTITUDE ERRORS, SET DB TO ONE DEG.
032941,000166:
032942,000167: 36,3210 03212 TC P40SXT4
032943,000168:
032944,000169: # ***********************
032945,000170: 36,3211 12130 TCF BURNBABY
032946,000171: # ***********************
032947,000172:
032948,000173: 36,3212 00006 P40SXT4 EXTEND
032949,000174: 36,3213 23141 QXCH P40/RET
032950,000175: 36,3214 00003 P41MANU RELINT
032951,000176:
032952,000177: 36,3215 05520 TC DOWNFLAG # CLEAR 3AXISFLG -- R60 WILL USE VECPOINT.
032953,000178: 36,3216 00124 ADRES 3AXISFLG
032954,000179:
032955,000180: 36,3217 04607 TC BANKCALL
032956,000181: 36,3220 54125 CADR R60LEM # DO ATTITUDE MANEUVER ROUTINE
032957,000182: 36,3221 01141 TC P40/RET
032958,000183:
032959,000184: 36,3222 E7,1462 EBANK= TRKMKCNT
032960,000185: 36,3222 30005 POSTBURN CA Z
032961,000186: 36,3223 55162 TS DISPDEX
032962,000187: 36,3224 00006 EXTEND
032963,000188: 36,3225 32060 DCA ACADN85
032964,000189: 36,3226 53252 DXCH AVEGEXIT
032965,000190: 36,3227 33752 CAF V16N40
032966,000191: 36,3230 04607 TC BANKCALL
032967,000192: 36,3231 20647 CADR GOFLASHR
032968,000193: 36,3232 03255 TC TERM40
032969,000194: 36,3233 13240 TCF TIGNOW
032970,000195: 36,3234 03222 TC POSTBURN
Page 750 |
032972,000197: 36,3235 05355 P40PHS1 TC PHASCHNG
032973,000198: 36,3236 00014 OCT 00014
032974,000199: 36,3237 15146 TCF ENDOFJOB
032975,000200:
032976,000201: 36,3240 00004 TIGNOW INHINT
032977,000202: 36,3241 04665 TC IBNKCALL
032978,000203: 36,3242 40154 CADR ZATTEROR
032979,000204: 36,3243 04665 TC IBNKCALL
032980,000205: 36,3244 40141 CADR SETMINDB
032981,000206: 36,3245 00003 RELINT
032982,000207: 36,3246 33753 CAF V16N85B
032983,000208: 36,3247 04607 TC BANKCALL
032984,000209: 36,3250 20455 CADR REFLASHR
032985,000210: 36,3251 03255 TC TERM40
032986,000211: 36,3252 13255 TCF TERM40
032987,000212: 36,3253 03246 TC -5
032988,000213:
032989,000214: 36,3254 13235 TCF P40PHS1
032990,000215:
032991,000216: 36,3255 00006 TERM40 EXTEND
032992,000217: 36,3256 32110 DCA SERVCADR
032993,000218: 36,3257 53252 DXCH AVEGEXIT
032994,000219: 36,3260 34746 CAF ZERO
032995,000220: 36,3261 55462 TS TRKMKCNT # ZERO RENDZVS CNTERS
032996,000221: 36,3262 30005 CA Z
032997,000222: 36,3263 55162 TS DISPDEX
032998,000223: 36,3264 00004 INHINT
032999,000224: 36,3265 04665 TC IBNKCALL
033000,000225: 36,3266 40115 CADR RESTORDB
033001,000226: 36,3267 00003 RELINT
033002,000227: 36,3270 06001 TC GOTOPOOH
033003,000228:
033004,000229: 36,3271 E7,1455 EBANK= WHICH
033005,000230: 36,3271 COUNT* $$/P41
033006,000231: 36,3271 33133 P41LM CAF P41ADRES # INITIALIZATION FOR BURNBABY
033007,000232: 36,3272 55455 TS WHICH
033008,000233:
033009,000234: 36,3273 04607 TC BANKCALL
033010,000235: 36,3274 33757 CADR R02BOTH
033011,000236:
033012,000237: 36,3275 34746 CA ZERO # ZERO DVTOTAL FOR NOUN 40 DISPLAY
033013,000238: 36,3276 55507 TS DVTOTAL
033014,000239: 36,3277 55510 TS DVTOTAL +1
033015,000240: 36,3300 35010 CAF PRIO5
033016,000241: 36,3301 55162 TS DISPDEX # FOR SAFETY
033017,000242: 36,3302 05076 TC FINDVAC
033018,000243: 36,3303 E7,1700 EBANK= VGPREV
033019,000244: 36,3303 03366 74067 2CADR DYNMDISP
033020,000245:
033021,000246: 36,3305 05331 TC 2PHSCHNG
033022,000247:
Page 751 |
033024,000249: 36,3306 00116 OCT 00116 # GROUP 6 RESTART AT FKP5RST, PRIO 17
033025,000250: 36,3307 04024 OCT 04024 # GROUP 4 RESTART HERE, PRIO 13
033026,000251:
033027,000252: 36,3310 06060 TC INTPRET # BOTH LM
033028,000253: 36,3311 71214 BON DLOAD # IF NJETSFLAG IS SET, LOAD 2 JET F
033029,000254: 36,3312 00700 NJETSFLG
033030,000255: 36,3313 75317 P41FJET1
033031,000256: 36,3314 34017 FRCS4 # IF NJETSFLAG IS CLEAR, LOAD 4 JET F
033032,000257:
033033,000258: 36,3315 37735 P41FJET STCALL F
033034,000259: 36,3316 75322 P41IN
033035,000260:
033036,000261: 36,3317 77745 P41FJET1 DLOAD
033037,000262: 36,3320 34021 FRCS2
033038,000263: 36,3321 03735 STORE F
033039,000264:
033040,000265: 36,3322 77624 P41IN CALL
033041,000266: 36,3323 56246 S40.1 # BOTH
033042,000267: 36,3324 77624 P41NORM CALL
033043,000268: 36,3325 56413 S40.2,3 # CALCULATE PREFERRED IMU ORIENTATION AND
033044,000269: 36,3326 77776 EXIT # SET PFRATFLG.
033045,000270:
033046,000271: 36,3327 00004 INHINT
033047,000272: 36,3330 04665 TC IBNKCALL
033048,000273: 36,3331 40154 CADR ZATTEROR # ZERO ATTITUDE ERRORS
033049,000274: 36,3332 04665 TC IBNKCALL
033050,000275: 36,3333 40141 CADR SETMINDB # SET 0.3 DEGREE DEADBAND
033051,000276: 36,3334 03212 TC P40SXT4
033052,000277:
033053,000278: 36,3335 06060 TC INTPRET
033054,000279: 36,3336 45175 VLOAD CALL # TRANSFORM VELOCITY-TO-BE-GAINED AT TIG
033055,000280: 36,3337 03701 VGTIG # FROM REFERENCE COORDINATES TO LM BODY-
033056,000281: 36,3340 57271 S41.1 # AXIS COORDINATES FOR V16N85 DISPLAY.
033057,000282: 36,3341 03502 STORE VGBODY # (SCALED AT 2 (+7) METERS/CENTISECOND)
033058,000283: 36,3342 77776 EXIT
033059,000284:
033060,000285: 36,3343 33753 CAF V16N85B
033061,000286: 36,3344 04607 TC BANKCALL
033062,000287: 36,3345 20441 CADR GODSPRET
033063,000288:
033064,000289:
033065,000290: 36,3346 05331 TC 2PHSCHNG
033066,000291: 36,3347 00076 OCT 00076 # GROUP 6 RESTARTS AT REDO6.7
033067,000292: 36,3350 04024 OCT 04024 # GROUP 4 RESTARTS HERE
033068,000293:
033069,000294: # ***********************
033070,000295: 36,3351 12137 TCF B*RNB*B*
033071,000296: # ***********************
033072,000297:
Page 752 |
033074,000299: 36,3352 34770 BLNKWAIT CAF 1SEC
033075,000300: 36,3353 04607 TC BANKCALL
033076,000301: 36,3354 01736 CADR DELAYJOB
033077,000302:
033078,000303: 36,3355 31162 REDO6.7 CA DISPDEX # ON A RESTART, DO NOT PUT UP DISPLAY IF
033079,000304: 36,3356 64743 AD TWO # BLANKING (BETWEEN TIG-35 AND TIG-30)
033080,000305: # ***********************
033081,000306:
033082,000307: 36,3357 00006 EXTEND
033083,000308: 36,3360 13352 BZF BLNKWAIT
033084,000309:
033085,000310: 36,3361 33753 CAF V16N85B
033086,000311: 36,3362 04607 TC BANKCALL
033087,000312: 36,3363 20441 CADR GODSPRET
033088,000313:
033089,000314: 36,3364 35010 FKP5RST CAF PRIO5
033090,000315: 36,3365 05137 TC PRIOCHNG
033091,000316:
033092,000317: 36,3366 31162 DYNMDISP CA DISPDEX # A NON-POSITIVE DISPDEX INDICATES PAST
033093,000318: 36,3367 00006 EXTEND # TIG-35, SO SERVICER WILL BE DOING THE
033094,000319: 36,3370 65146 BZMF ENDOFJOB # UPDATING OF NOUN 85. STOP DYNMDISP.
033095,000320: 36,3371 00006 EXTEND
033096,000321: 36,3372 41442 DCS TIG
033097,000322: 36,3373 53454 DXCH TTOGO # UPDATE TFI DISPLAY (NOUN 40)
033098,000323: 36,3374 00006 EXTEND
033099,000324: 36,3375 30025 DCA TIME2
033100,000325: 36,3376 21454 DAS TTOGO
033101,000326: 36,3377 06060 TC INTPRET
033102,000327: 36,3400 45175 VLOAD CALL
033103,000328: 36,3401 03701 VGPREV
033104,000329: 36,3402 57271 S41.1 # CONVERT VG FROM REF TO BODY
033105,000330: 36,3403 03502 STORE VGBODY
033106,000331: 36,3404 77776 EXIT
033107,000332: 36,3405 34770 CAF 1SEC
033108,000333: 36,3406 04607 TC BANKCALL
033109,000334: 36,3407 01736 CADR DELAYJOB
033110,000335: 36,3410 13366 TCF DYNMDISP # RECYCLE ONCE A SECOND
033111,000336:
033112,000337: 36,3411 COUNT $$/P41
033113,000338: 32,2570 BANK 32
033114,000339: 32,2000 SETLOC P40S4
033115,000340: 32,2000 BANK
033116,000341:
033117,000342: 32,2570 06060 CALCN85 TC INTPRET
033118,000343: 32,2571 77624 CALL
033119,000344: 32,2572 75612 UPDATEVG
033120,000345: 32,2573 45175 VLOAD CALL
033121,000346: 32,2574 03701 VGPREV
Page 753 |
033123,000348: 32,2575 57271 S41.1
033124,000349: 32,2576 03502 STORE VGBODY
033125,000350: 32,2577 77776 EXIT
033126,000351: 32,2600 04626 TC POSTJUMP
033127,000352: 32,2601 65656 CADR SERVEXIT
033128,000353:
033129,000354: 36,3411 BANK 36
033130,000355: 36,2000 SETLOC P40S
033131,000356: 36,2000 BANK
033132,000357:
033133,000358: 36,3411 COUNT* $$/P42
033134,000359: 36,3411 E7,1455 EBANK= WHICH
033135,000360:
033136,000361: 36,3411 05355 P42LM TC PHASCHNG
033137,000362: 36,3412 04024 OCT 04024
033138,000363:
033139,000364: 36,3413 33134 CAF P42ADRES # INITIALIZATION FOR BURNBABY.
033140,000365: 36,3414 55455 TS WHICH
033141,000366:
033142,000367: 36,3415 40106 CS FLGWRD10
033143,000368: 36,3416 74730 MASK APSFLBIT
033144,000369: 36,3417 10000 CCS A
033145,000370: 36,3420 03120 TC P40ALM
033146,000371: 36,3421 04607 P42STAGE TC BANKCALL
033147,000372: 36,3422 33757 CADR R02BOTH
033148,000373: 36,3423 36000 CAF THRESH2 # INITIALIZE DVMON
033149,000374: 36,3424 55250 TS DVTHRUSH
033150,000375: 36,3425 34742 CAF FOUR
033151,000376: 36,3426 55515 TS DVCNTR
033152,000377:
033153,000378: 36,3427 06060 TC INTPRET
033154,000379: 36,3430 77214 SET VLOAD # LOAD FAPS, MDOTAPS, AND ATDECAY INTO
033155,000380: 36,3431 01072 AVFLAG # F, MDOT, AND TDECAY BY VECTOR LOAD.
033156,000381: 36,3432 34007 FAPS
033157,000382: 36,3433 03735 STORE F
033158,000383: 36,3434 52135 SLOAD GOTO
033159,000384: 36,3435 26001 APSVEX
033160,000385: 36,3436 75177 P40IN
033161,000386:
033162,000387: 36,3437 E7,1455 EBANK= WHICH
033163,000388:
033164,000389: 36,3437 COUNT* $$/P47
033165,000390: 36,3437 04607 P47LM TC BANKCALL
033166,000391: 36,3440 33757 CADR R02BOTH
033167,000392: 36,3441 06060 TC INTPRET
033168,000393: 36,3442 77624 CALRB
033169,000394: 36,3443 42760 MIDTOAV2
033170,000395:
033171,000396: 36,3444 30155 CA MPAC +1
033172,000397: 36,3445 05175 TC TWIDDLE
Page 754 |
033174,000399: 36,3446 03450 ADRES STARTP47
033175,000400:
033176,000401: 36,3447 15146 TCF ENDOFJOB
033177,000402:
033178,000403: 36,3450 05355 STARTP47 TC PHASCHNG
033179,000404: 36,3451 05014 OCT 05014
033180,000405: 36,3452 77777 OCT 77777
033181,000406:
033182,000407: 36,3453 00006 EXTEND
033183,000408: 36,3454 33756 DCA ACADN83
033184,000409: 36,3455 53252 DXCH AVEGEXIT
033185,000410: 36,3456 34727 CAF PRIO20
033186,000411: 36,3457 05076 TC FINDVAC
033187,000412: 36,3460 E7,1622 EBANK= DELVIMU
033188,000413: 36,3460 03514 74067 2CADR P47BODY
033189,000414:
033190,000415: 36,3462 12344 TCF REDO4.2 # CHECKS PHASE 5 AND GOES TO PREREAD
033191,000416: # SEE TIG-30 IN BURNBABY.
033192,000417:
033193,000418: 36,3463 06060 CALCN83 TC INTPRET
033194,000419: 36,3464 53375 VLOAD VAD
033195,000420: 36,3465 03502 DELVCTL
033196,000421: 36,3466 03527 DELVREF
033197,000422: 36,3467 03656 STORE DELVSIN # TEMP STORAGE FOR RESTARTS
033198,000423: 36,3470 77624 CALL
033199,000424: 36,3471 57271 S41.1
033200,000425: 36,3472 03623 STORE DELVIMU
033201,000426: 36,3473 77776 EXIT
033202,000427: 36,3474 05355 TC PHASCHNG
033203,000428: 36,3475 10035 OCT 10035 # REREADAC AND HERE
033204,000429:
033205,000430: 36,3476 06060 TC INTPRET
033206,000431: 36,3477 77775 VLOAD
033207,000432: 36,3500 03656 DELVSIN
033208,000433: 36,3501 03502 STORE DELVCTL
033209,000434: 36,3502 77776 EXIT
033210,000435:
033211,000436: 36,3503 04626 TC POSTJUMP
033212,000437: 36,3504 65656 CADR SERVEXIT
033213,000438:
033214,000439: 36,3505 33754 P47BOD CAF V1683
033215,000440: 36,3506 04607 TC BANKCALL
033216,000441: 36,3507 20647 CADR GOFLASHR
033217,000442: 36,3510 06001 TC GOTOPOOH
033218,000443: 36,3511 06001 TC GOTOPOOH
033219,000444:
033220,000445: 36,3512 13514 TCF P47BODY
033221,000446:
033222,000447: 36,3513 13235 TCF P40PHS1
033223,000448:
Page 755 |
033225,000450: 36,3514 06060 P47BODY TC INTPRET
033226,000451: 36,3515 77775 VLOAD
033227,000452: 36,3516 06505 HI6ZEROS
033228,000453: 36,3517 03623 STORE DELVIMU
033229,000454: 36,3520 03502 STORE DELVCTL
033230,000455: 36,3521 77776 EXIT
033231,000456: 36,3522 03505 TC P47BOD
033232,000457:
033233,000458: 36,3523 COUNT* $$/P40
033234,000459: 36,3523 31517 IMPLBURN CA TGO +1
033235,000460: 36,3524 03736 TC GETDT
033236,000461: 36,3525 05175 TC TWIDDLE
033237,000462: 36,3526 03543 ADRES ENGOFTSK
033238,000463: 36,3527 05520 TC DOWNFLAG # TURN OFF IGNFLAG
033239,000464: 36,3530 00153 ADRES IGNFLAG
033240,000465: 36,3531 05520 TC DOWNFLAG # TURN OFF ASTNFLG
033241,000466: 36,3532 00154 ADRES ASTNFLAG
033242,000467: 36,3533 05520 TC DOWNFLAG # TURN OFF IMPULSW
033243,000468: 36,3534 00044 ADRES IMPULSW
033244,000469: 36,3535 05355 TC PHASCHNG # RESTART PROTECT ENGOFTSK (ENGINOFF)
033245,000470: 36,3536 40114 OCT 40114
033246,000471:
033247,000472: 36,3537 05223 TC FIXDELAY # WAIT HALF A SECOND
033248,000473: 36,3540 00062 DEC 50 B-14
033249,000474: 36,3541 02652 TC NOULLAGE # TURN OFF ULLAGE
033250,000475:
033251,000476: 36,3542 05263 TC TASKOVER
033252,000477:
033253,000478: 36,3543 04665 ENGOFTSK TC IBNKCALL # THIS CODING ALLOWS ENGINOFF ET AL TO BE
033254,000479: 36,3544 75546 CADR ENGINOFF # USED BOTH BY WAITLIST AND BY TC IBNKCALL
033255,000480: 36,3545 05263 TC TASKOVER
033256,000481:
033257,000482: 36,3546 34635 ENGINOFF CAF PRIO12 # MUST BE LOWER PRIO THAN CLOCKJOB
033258,000483: 36,3547 05076 TC FINDVAC
033259,000484: 36,3550 E7,1462 EBANK= TRKMKCNT
033260,000485: 36,3550 03222 74067 2CADR POSTBURN
033261,000486:
033262,000487: 36,3552 34744 ENGINOF2 CAF BIT1
033263,000488: 36,3553 05205 TC WAITLIST
033264,000489: 36,3554 E6,1422 EBANK= OMEGAQ
033265,000490: 36,3554 03607 74066 2CADR COASTSET
033266,000491:
033267,000492: 36,3556 40103 ENGINOF1 CS FLAGWRD7 # SET THE IDLE BIT.
033268,000493: 36,3557 74736 MASK IDLEFBIT
033269,000494: 36,3560 26103 ADS FLAGWRD7
033270,000495:
033271,000496: 36,3561 02652 TC NOULLAGE
033272,000497:
Page 756 |
033274,000499: 36,3562 00006 ENGINOF4 EXTEND
033275,000500: 36,3563 30025 DCA TIME2
033276,000501: 36,3564 53342 DXCH TEVENT
033277,000502:
033278,000503: 36,3565 44736 ENGINOF3 CS ENGONBIT # INSURE ENGONFLG IS CLEAR.
033279,000504: 36,3566 70101 MASK FLAGWRD5
033280,000505: 36,3567 54101 TS FLAGWRD5
033281,000506: 36,3570 44346 CS PRIO30 # ENGINOF3 IS USED AS A PRE-ENGINE ARM
033282,000507: 36,3571 00006 EXTEND # SUBROUTINE.
033283,000508: 36,3572 02011 RAND DSALMOUT
033284,000509: 36,3573 64727 AD PRIO20 # TURN OFF THE ENGINE - DPS OR APS
033285,000510: 36,3574 00006 EXTEND
033286,000511: 36,3575 01011 WRITE DSALMOUT
033287,000512:
033288,000513: 36,3576 40111 CS DAPBOOLS # TURN OFF TRIM GIMBAL
033289,000514: 36,3577 74727 MASK USEQRJTS
033290,000515: 36,3600 26111 ADS DAPBOOLS
033291,000516:
033292,000517: 36,3601 44730 CS HIRTHROT # ZERO AUTO-THROTTLE WHENEVER THE ENGINE
033293,000518: 36,3602 54055 TS THRUST # IS TURNED OFF.
033294,000519: 36,3603 34741 CAF BIT4 # THE HARDWARE DOES SO ONLY WHEN THE
033295,000520: 36,3604 00006 EXTEND # ENGINE IS DISARMED.
033296,000521: 36,3605 05014 WOR CHAN14
033297,000522:
033298,000523: 36,3606 04700 TC ISWRETRN
033299,000524: 36,3607 04665 COASTSET TC IBNKCALL # DO DAP COASTING INITIALIZATION
033300,000525: 36,3610 40205 CADR ALLCOAST
033301,000526: 36,3611 05263 TC TASKOVER
033302,000527:
033303,000528: 36,3612 E6,1422 EBANK= OMEGAQ
033304,000529: 36,3612 45020 UPDATEVG STQ CALL
033305,000530: 36,3613 03665 QTEMP1
033306,000531: 36,3614 56447 S40.8 # X-PRODUCT STEERING
033307,000532: 36,3615 43014 S40RET BON BON # WILL RETURN HERE FROM S40.8
033308,000533: 36,3616 01307 XDELVFLG
033309,000534: 36,3617 03665 QTEMP1
033310,000535: 36,3620 03705 NORMSW
033311,000536: 36,3621 75634 180SETUP
033312,000537: 36,3622 45345 DLOAD DSU
033313,000538: 36,3623 01234 PIPTIME
033314,000539: 36,3624 03763 TIGSAVE
033315,000540: 36,3625 50025 DSU BMN
033316,000541: 36,3626 03432 TNEWA
033317,000542: 36,3627 75657 GETRANS
033318,000543: 36,3630 43345 DLOAD DAD
033319,000544: 36,3631 03763 TIGSAVE
033320,000545: 36,3632 03432 TNEWA
033321,000546: 36,3633 03765 STORE TIGSAVEP
033322,000547: 36,3634 77776 180SETUP EXIT
033323,000548: 36,3635 10754 CCS PHASE2
Page 757 |
033325,000550: 36,3636 13664 TCF NO.9
033326,000551: 36,3637 34730 CAF PRIO10
033327,000552: 36,3640 00004 INHINT
033328,000553: 36,3641 05076 TC FINDVAC
033329,000554: 36,3642 E7,1706 EBANK= VG
033330,000555: 36,3642 02711 56067 2CADR S40.9 # LAMBERT VTOGAIN
033331,000556:
033332,000557: 36,3644 05331 TC 2PHSCHNG
033333,000558: 36,3645 00172 OCT 00172 # 2.17SPOT FOR S40.9
033334,000559: 36,3646 10035 OCT 10035 # HERE AND REREADAC AFTER RESTART
033335,000560:
033336,000561: 36,3647 06060 ENDSTEER TC INTPRET
033337,000562: 36,3650 77745 DLOAD
033338,000563: 36,3651 03765 TIGSAVEP
033339,000564: 36,3652 27763 STOVL TIGSAVE
033340,000565: 36,3653 01220 RN
033341,000566: 36,3654 26314 STOVL RINIT
033342,000567: 36,3655 01226 VN
033343,000568: 36,3656 02322 STORE VINIT
033344,000569: 36,3657 45345 GETRANS DLOAD DSU
033345,000570: 36,3660 03631 TPASS4
033346,000571: 36,3661 01234 PIPTIME
033347,000572: 36,3662 37452 STCALL DELLT4
033348,000573: 36,3663 03665 QTEMP1
033349,000574:
033350,000575: 36,3664 06060 NO.9 TC INTPRET
033351,000576: 36,3665 77650 GOTO
033352,000577: 36,3666 03665 QTEMP1
033353,000578: 36,3667 06060 STEERING TC INTPRET
033354,000579:
033355,000580: 36,3670 77624 CALL
033356,000581: 36,3671 75612 UPDATEVG
033357,000582: 36,3672 77776 EXIT
033358,000583:
033359,000584: 36,3673 E7,1515 EBANK= DVCNTR
033360,000585: 36,3673 00004 NSTEER INHINT
033361,000586: 36,3674 35007 CA EBANK7
033362,000587: 36,3675 54003 TS EBANK
033363,000588: 36,3676 40076 CS FLAGWRD2 # CHECK IMPULSE SWITCH. IT IS SET EITHER
033364,000589: 36,3677 74734 MASK IMPULBIT # BY S40.13 IF TBURN<6 SECS OR BY S40.8 IF
033365,000590: 36,3700 10000 CCS A # STEERING IS ALMOST DONE.
033366,000591:
033367,000592: 36,3701 13706 TCF +5 # IMPULSW = 0 EXIT
033368,000593: 36,3702 40103 CS FLAGWRD7 # IMPULSW = 1 WHY? CHECK IDLEFLAG
033369,000594: 36,3703 74736 MASK IDLEFBIT # (IDLEFLAG = 0 --> DVMON ON)
033370,000595: 36,3704 10000 CCS A
033371,000596: 36,3705 13710 TCF +3 # DVMON ON-->THRUSTING-->IMPULSW VIA S40.8
033372,000597: 36,3706 04626 TC POSTJUMP # DVMON OFF-->IMPULSW ON VIA S40.13-->EXIT
033373,000598: 36,3707 65656 CADR SERVEXIT
033374,000599:
Page 758 |
033376,000601: 36,3710 04665 TC IBNKCALL
033377,000602: 36,3711 40166 CADR STOPRATE
033378,000603:
033379,000604: 36,3712 05520 TC DOWNFLAG # TURN OFF IMPULSW
033380,000605: 36,3713 00044 ADRES IMPULSW
033381,000606:
033382,000607: 36,3714 05506 TC UPFLAG
033383,000608: 36,3715 00161 ADRES IDLEFLAG # TURN OFF DVMON
033384,000609:
033385,000610: 36,3716 00004 INHINT
033386,000611: 36,3717 00006 EXTEND
033387,000612: 36,3720 31442 DCA TIG
033388,000613: 36,3721 52155 DXCH MPAC
033389,000614: 36,3722 00006 EXTEND
033390,000615: 36,3723 40025 DCS TIME2
033391,000616: 36,3724 20155 DAS MPAC
033392,000617: 36,3725 07300 TC TPAGREE
033393,000618: 36,3726 30155 CAE MPAC +1
033394,000619: 36,3727 03736 TC GETDT
033395,000620: 36,3730 05175 TC TWIDDLE
033396,000621: 36,3731 03543 ADRES ENGOFTSK
033397,000622: 36,3732 05331 TC 2PHSCHNG
033398,000623: 36,3733 40114 OCT 40114 # ENGOFTSK (ENGINOFF)
033399,000624: 36,3734 00035 OCT 00035 # SERVICER--REREADAC
033400,000625: 36,3735 15146 TCF ENDOFJOB
033401,000626:
033402,000627: 36,3736 10000 GETDT CCS A
033403,000628: 36,3737 13742 TCF +3
033404,000629: 36,3740 13742 TCF +2
033405,000630: 36,3741 34746 CAF ZERO
033406,000631: 36,3742 64744 AD ONE
033407,000632: 36,3743 56001 XCH L
033408,000633: 36,3744 34746 CAF ZERO
033409,000634: 36,3745 53517 DXCH TGO
033410,000635: 36,3746 31517 CA TGO +1
033411,000636: 36,3747 00002 TC Q
033412,000637:
033413,000638: # ************************************************************************
033414,000639:
033415,000640: 36,3750 00000 5SECDP OCT 00000 # DON'T MOVE FROM JUST BEFORE 5SEC
033416,000641: 36,3751 00764 5SEC DEC 500 B-14
033417,000642: 36,3752 04050 V16N40 VN 1640
033418,000643: 36,3753 04125 V16N85B VN 1685
033419,000644: 36,3754 04123 V1683 VN 1683
033420,000645: 36,3755 4770 SEC01 = 1SEC
033421,000646: 36,3755 36,2057 ACADN85 = P41TABLE +2
033422,000647:
033423,000648: 36,3755 E7,1622 EBANK= DELVIMU
Page 759 |
033425,000650: 36,3755 03463 74067 ACADN83 2CADR CALCN83
033426,000651:
033427,000652: # *************************************************
Page 760 |
033429,000654: # PROGRAM DESCRIPTION S40.1 DATE15NOV66
033430,000655: # MOD N02 LOG SECTION P40-P47
033431,000656: # MOD BY ZELDIN AND ADAPTED BY TALAYCO
033432,000657: # FUNCTIONAL DESCRIPTION
033433,000658: # COMPUTE INITIAL THRUST DIRECTION(UT) AND INITIAL VALUE OF VG
033434,000659: # VECTOR(VGTIG).
033435,000660: # CALLING SEQUENCE
033436,000661: # L CALL
033437,000662: # L+1 S40.1
033438,000663: # NORMAL EXIT MODE
033439,000664: # AT L+2 OF CALLING SEQUENCE
033440,000665: # SUBROUTINES CALLED
033441,000666: # LEMPREC
033442,000667: # INITVEL
033443,000668: # ERASABLE INITIALIZATION REQUIRED
033444,000669: # WEIGHT/G ANTICIPATED VEHICLE MASS DP B16 KGM
033445,000670: # XDELVFLG 1=DELTA-V MANEUVER,0=AIMPT STEER
033446,000671: # F THRUST FOR ENGINE USED
033447,000672: # IF DELTA-V MANEUVER
033448,000673: # DELVSIN SPECIFIED DELTA-V REQUIRED IN
033449,000674: # INERTIAL COORDS. OF ACTIVE VEHICLE
033450,000675: # AT TIME OF IGNITION VECTOR B7M/CS
033451,000676: # DELVSAB MAG. OF DELVSIN DP B7M/CS
033452,000677: # RTIG POSITION AT TIME OF IGNITION VECTOR B29M
033453,000678: # VTIG VELOCITY AT TIME OF IGNITION VECTOR B7M/CS
033454,000679: # IF AIMPT STEER
033455,000680: # TIG TIME OF IGNITION DP B28 CS
033456,000681: # RTARG POSITION TARGET TIME VECTOR B29M
033457,000682: # TPASS4 TARGET INTERCEPT TIME DP B28 CS
033458,000683: # OUTPUT
033459,000684: # UT DESIRED THRUST DIRECTION VECT. B2M/(CS.CS)
033460,000685: # VGTIG INITIAL VALUE OF VELOCITY
033461,000686: # TO BE GAINED (INERT. COORD.) VECTOR B7M/CS
033462,000687: # DELVLVC VGTIG IN LOC. VERT. COORDS. B7M/CS
033463,000688: # UNIT/R/ POSITION AT TIG FOR ASTEER VECTOR B1
033464,000689: # RTIG CALC IN S40.1B (AIMPT) FOR S40.2,3 VECTOR B29M
033465,000690: # POSITION AT TIME OF IGNITION
033466,000691: # DEBRIS QTEMP1
033467,000692: # MPAC, QPRET
033468,000693: # PUSHLIST
033469,000694: 14,2455 BANK 14
033470,000695: 27,2000 SETLOC P40S1
033471,000696: 27,2000 BANK
033472,000697:
033473,000698: 27,2246 COUNT* $$/S40.1
033474,000699: 27,2246 71220 S40.1 STQ DLOAD
033475,000700: 27,2247 03632 QTEMP
033476,000701: 27,2250 03442 TIG
033477,000702: 27,2251 03763 STORE TIGSAVE
033478,000703: 27,2252 77614 DELVTEST BOFF
Page 761 |
033480,000705: 27,2253 01347 XDELVFLG
033481,000706: 27,2254 56336 S40.1B
033482,000707: 27,2255 77201 CALCTHET SETPD VLOAD
033483,000708: 27,2256 00001 0
033484,000709: 27,2257 03650 VTIG
033485,000710: 27,2260 02322 STORE VINIT
033486,000711: 27,2261 53435 VXV UNIT
033487,000712: 27,2262 03642 RTIG
033488,000713: 27,2263 27673 STOVL UT # UP IN UT
033489,000714: 27,2264 03642 RTIG
033490,000715: 27,2265 02314 STORE RINIT
033491,000716: 27,2266 65236 VSQ PDDL
033492,000717: 27,2267 00045 36D
033493,000718: 27,2270 56205 DMP DDV
033494,000719: 27,2271 16412 THETACON
033495,000720: 27,2272 41205 DMP DMP
033496,000721: 27,2273 03664 DELVSAB
033497,000722: 27,2274 01244 WEIGHT/G
033498,000723: 27,2275 77671 DDV
033499,000724: 27,2276 03735 F
033500,000725: 27,2277 24017 STOVL 14D
033501,000726: 27,2300 03656 DELVSIN
033502,000727:
033503,000728: 27,2301 74241 DOT VXSC
033504,000729: 27,2302 03673 UT
033505,000730: 27,2303 03673 UT
033506,000731: 27,2304 41552 VSL2 PUSH # (DELTAV.UP)UP SCALED AT 2(+7) P.D.L. 0
033507,000732: 27,2305 65245 BVSU PDDL # DELTA VP SCALED AT 2(+7) P.D.L. 6
033508,000733: 27,2306 03656 DELVSIN
033509,000734: 27,2307 00017 14D
033510,000735: 27,2310 63356 SIN PDVL
033511,000736: 27,2311 00007 6D
033512,000737: 27,2312 53435 VXV UNIT
033513,000738: 27,2313 03673 UT
033514,000739: 27,2314 45561 VXSC STADR
033515,000740: 27,2315 50076 STOVL VGTIG # UNIT(VPXUP)SIN(THETAT/2) IN VGTIG.
033516,000741: 27,2316 65256 UNIT PDDL # UNIT(DELTA VP) IN P.D.L. 6
033517,000742: 27,2317 00017 14D
033518,000743: 27,2320 74346 COS VXSC
033519,000744: 27,2321 74255 VAD VXSC
033520,000745: 27,2322 03701 VGTIG
033521,000746: 27,2323 00045 36D
033522,000747: 27,2324 53352 VSL2 VAD
033523,000748: 27,2325 77626 STADR
033524,000749: 27,2326 74076 STORE VGTIG # VG IGNITION SCALED AT 2(+7)M/CS
033525,000750:
033526,000751: 27,2327 77656 UNIT
033527,000752: 27,2330 27673 STOVL UT # THRUST DIRECTION SCALED AT 2(+1)
033528,000753: 27,2331 03701 VGTIG
033529,000754: 27,2332 45006 PUSH CALL
Page 762 |
033531,000756: 27,2333 42022 GET.LVC # VGTIG IN LV COOR AT 2(+7) M/CS IN DELVLVC
033532,000757: 27,2334 77650 GOTO
033533,000758: 27,2335 03632 QTEMP
033534,000759: 27,2336 77745 S40.1B DLOAD
033535,000760: 27,2337 03442 TIG
033536,000761: 27,2340 00041 STORE TDEC1
033537,000762: 27,2341 77621 BDSU
033538,000763: 27,2342 03631 TPASS4
033539,000764: 27,2343 37452 STCALL DELLT4 # INTERCEPT TIME - TIG.
033540,000765: 27,2344 27115 LEMPREC
033541,000766: 27,2345 40375 VLOAD SETPD # LOAD STATE VECTOR AT TIG FOR INITVEL.
033542,000767: 27,2346 00001 RATT
033543,000768: 27,2347 00001 0
033544,000769: 27,2350 03642 STORE RTIG
033545,000770: 27,2351 02314 STORE RINIT
033546,000771: 27,2352 77656 UNIT
033547,000772: 27,2353 27537 STOVL UNIT/R/
033548,000773: 27,2354 00007 VATT
033549,000774: 27,2355 03650 STORE VTIG
033550,000775: 27,2356 02322 STORE VINIT
033551,000776: 27,2357 65345 DLOAD PDDL # NUMIT = 0
033552,000777: 27,2360 06505 ZEROVECS
033553,000778: 27,2361 16406 EPS1
033554,000779: 27,2362 43214 BOFF DAD
033555,000780: 27,2363 03745 NORMSW
033556,000781: 27,2364 56366 SMALLEPS
033557,000782: 27,2365 16410 EPS2 # EPSILON4 = 10 DEGREES OR 45 DEGREES.
033558,000783: 27,2366 66006 SMALLEPS PUSH SXA,1
033559,000784: 27,2367 02776 RTX1
033560,000785: 27,2370 45134 SXA,2 CALL
033561,000786: 27,2371 02777 RTX2
033562,000787: 27,2372 22000 INITVEL
033563,000788: 27,2373 41575 VLOAD PUSH
033564,000789: 27,2374 02357 DELVEET3 # VGTIG = VR - VN.
033565,000790: 27,2375 03701 STORE VGTIG
033566,000791: 27,2376 77656 UNIT # UT = UNIT (VGTIG)
033567,000792: 27,2377 17673 STODL UT
033568,000793: 27,2400 00045 36D
033569,000794: 27,2401 37664 STCALL VGDISP # CONVERT VGTIG (IN PUSHLIST ) TO LOCAL
033570,000795: 27,2402 42022 GET.LVC # VERTICAL COORDINATES.
033571,000796: 27,2403 77650 GOTO
033572,000797: 27,2404 03632 QTEMP
033573,000798:
033574,000799: 27,2405 00707 03434 EPS1 2DEC* 2.777777778 E-2* # 10 DEGREES AT 1 REVOLUTION.
033575,000800:
033576,000801: 27,2407 03070 34344 EPS2 2DEC* 9.722222222 E-2* # 35 DEGREES AT 1 REVOLUTION.
033577,000802:
033578,000803: 27,2411 00024 13714 THETACON 2DEC .31830989 B-8
033579,000804:
Page 763 |
033581,000806: # SUBROUTINE NAME: S40.2,3 MOD. NO. 3 DATE: APRIL 4, 1967
033582,000807:
033583,000808: # MODIFICATION BY: JONATHAN D. ADDELSTON (ADAMS ASSOCIATES)
033584,000809:
033585,000810: # MOD. NO. 4: JULY 18, 1967: PETER ADLER (MIT/IL)
033586,000811:
033587,000812: # MOD. NO. 5: OCTOBER 18, 1967: PETER ADLER (MIT/IL)
033588,000813:
033589,000814: # ORIGINALLY BY: SAYDEAN ZELDIN (MIT INSTRUMENTATION LAB) AND RICHARD TALAYCO (SYSTEM DEVELOPMENT CORP)
033590,000815:
033591,000816: # S40.2,3 COMPUTES "POINTVSM" WHICH IS THE HALF-UNIT DESIRED THRUST VECTOR IN STABLE-MEMBER COORDINATES FROM "UT"
033592,000817: # WHICH IS THE SAME VECTOR IN REFERENCE COORDINATES. IT DETERMINES THE CORRECT VALUES FOR "SCAXIS" USING THE +X
033593,000818: # AXIS FOR DPS, APS, AND RCS BURNS. THE "WINGS-LEVEL HEADS-UP" LM ORIENTATION IS THEN COMPUTED IN REFERENCE
033594,000819: # COORDINATES. THESE VECTORS ALSO DEFINE THE "PREFERRED IMU ORIENTATION". UPON COMPLETION OF THIS CALCULATION,
033595,000820: # THE "PREFERRED ATTITUDE COMPUTED" FLAG IS SET (PFRATFLG).
033596,000821:
033597,000822:
033598,000823: # CALLING SEQUENCE:
033599,000824: # L CALL INTERPRETIVE CALL.
033600,000825: # L +1 S40.2,3
033601,000826: # L +2 (RETURN) GIMBAL ANGLE VECTOR IN MPAC.
033602,000827:
033603,000828: # SUBROUTINES CALLED: NONE.
033604,000829:
033605,000830: # NORMAL RETURN: L +2 (SEE CALLING SEQUENCE ABOVE).
033606,000831:
033607,000832: # ALARM/ABORT MODES: NONE.
033608,000833:
033609,000834: # INPUT:
033610,000835:
033611,000836: # 1. REFSMMAT MATRIX FROM REFERENCE TO STABLE-MEMBER COORDINATES SCALED AT 2.
033612,000837: # 2. UT HALF-UNIT DESIRED THRUST DIRECTION.
033613,000838: # 3. RTIG POSITION AT TIG IN REFERENCE COORDINATES.
033614,000839:
033615,000840: # OUTPUT:
033616,000841:
033617,000842: # 1. : XSCREF : WINGS-LEVEL HEADS-UP LM ORIENTATION
033618,000843: # : YSCREF : IN REFERENCE COORDINATES
033619,000844: # : ZSCREF : (PREFERRED IMU ORIENTATION).
033620,000845: # 2. POINTVSM DESIRED THRUST DIRECTION IN STABLE-MEMBER COORDINATES.
033621,000846: # 3. SCAXIS HALF-UNIT OF AXIS TO ALIGN IN STABLE-MEMBER COORDINATES.
033622,000847: # 4. PFRATFLG INTERPRETIVE FLAG. ON: PREFERRED ORIENTATION COMPUTED; OFF: NOT COMPUTED.
033623,000848:
033624,000849: # DEBRIS: NONE.
Page 764 |
033626,000851:
033627,000852: 27,2413 COUNT* $$/S40.2
033628,000853: 27,2413 77775 S40.2,3 VLOAD # UT: DESIRED THRUST DIRECTION (HALF-UNIT)
033629,000854: 27,2414 03673 UT # (PUT INTO TOP OF PUSH-DOWN-LIST.)
033630,000855: 27,2415 76521 MXV VSL1 # TRANSFORM THRUST DIRECTION TO STABLE-
033631,000856: 27,2416 01732 REFSMMAT # MEMBER FROM REFERENCE COORDS (RESCALE).
033632,000857: 27,2417 27773 STOVL POINTVSM # SAVE FOR "VECPOINT" ROUTINE (LEMMANU).
033633,000858: 27,2420 06503 UNITX # SCAXIS SET TO +X, FOR P40 AND P42 AND
033634,000859: 27,2421 27765 STOVL SCAXIS # FOR P41 IF RCS NOT -X,+Y,-Y,+Z,-Z.
033635,000860:
033636,000861: 27,2422 03673 UT # ASSUME +X BURN ALWAYS, EVEN FOR RCS.
033637,000862: 27,2423 03607 PLUSX STORE XSCREF # XSCREF = UT (DESIRED THRUST DIRECTION.)
033638,000863: 27,2424 53435 VXV UNIT # RTIG = POSITION AT TIME-OF-IGNITION.
033639,000864: 27,2425 03642 RTIG # YSCREF = UNIT(UT X RTIG)
033640,000865: 27,2426 46125 PDDL BHIZ
033641,000866: 27,2427 00045 36D # TEST MAGNITUDE OF UT X RTIG
033642,000867: 27,2430 56441 FIXY # IF SMALL, USE UT X VTIG AS YSC
033643,000868: 27,2431 45575 STORY VLOAD STADR
033644,000869: 27,2432 74162 STORE YSCREF
033645,000870: 27,2433 76435 VXV VSL1 # COMPUTE (YSCREF X XSCREF),BUT FOR A
033646,000871: 27,2434 03607 XSCREF # RIGHT HANDED SYSTEM, NEED (X CROSS Y).
033647,000872: 27,2435 77676 VCOMP # ZSCREF = - (YSCREF X XSCREF)
033648,000873: 27,2436 03623 STORE ZSCREF # = + (XSCREF X YSCREF)
033649,000874:
033650,000875: 27,2437 43414 SET RVQ
033651,000876: 27,2440 01073 PFRATFLG
033652,000877: 27,2441 47375 FIXY VLOAD VXV # IN THIS CASE,
033653,000878: 27,2442 03607 XSCREF # YSCREF = UNIT(XSCREF X VTIG)
033654,000879: 27,2443 03650 VTIG
033655,000880: 27,2444 41456 UNIT PUSH
033656,000881: 27,2445 77650 GOTO
033657,000882: 27,2446 56431 STORY
Page 765 |
033659,000884: # SUBROUTINE S40.8
033660,000885:
033661,000886: # MODIFIED APRIL 3, 1968 BY PETER ADLER MIT/IL
033662,000887:
033663,000888: # DESCRIPTION
033664,000889:
033665,000890: # S40.8 UPDATES THE VELOCITY-TO-BE-GAINED VECTOR, VG, COMPUTES THE TIME FOR ISSUING THE ENGINE OFF COMMAND,
033666,000891: # TGO, AND CALLS THE ROUTINE "FINDCDUW", WHICH GENERATES THE STEERING COMMANDS FOR THE AUTOPILOT. FOR "ASTEER"
033667,000892: # TYPE MANEUVERS, SUBROUTINE "RASTEER1" IS CALLED EACH PASS TO GENERATE A NEW VELOCITY-TO-BE-GAINED.
033668,000893:
033669,000894: # CALLING SEQUENCE
033670,000895:
033671,000896: # L-1 CALL
033672,000897: # L S40.8
033673,000898: # L+1 INTERPRETIVE RETURN
033674,000899:
033675,000900: # ALARM
033676,000901:
033677,000902: # IF VG . DELVREF IS NEGATIVE (VG AND DELVREF OVER 90 DEGREES APART), BYPASS TGO COMPUTATIONS, BUT DO FINDCDU
033678,000903: # (STEERING) SET ALARM 1407 AND RETURN TO CALLER NORMALLY.
033679,000904:
033680,000905: # INPUT AND INITIALIZATION
033681,000906:
033682,000907: # VGPREV REFERENCE 2(7) M/CS
033683,000908: # DELVREF REFERENCE 2(7) M/CS
033684,000909: # TDECAY TAIL-OFF TIME 2(28) CS
033685,000910: # XDELVFLG 1 = EXTERNAL DELTA-V; 0 = LAMBERT (AIMPOINT)
033686,000911: # STEERSW 1 = DO STEERING AND TGO COMPUTATIONS; 0 = VG UPDATE ONLY
033687,000912:
033688,000913: # NOTE: VGTIG EQUALS VGPREV
033689,000914:
033690,000915: # OUTPUT
033691,000916:
033692,000917: # STEERSW SEE INPUT
033693,000918: # IMPULSW 1 = ENGINE OFF IN TGO CENTISECONDS; 0 = CONTINUE BURN
033694,000919: # TGO TIME TO CUT-OFF 2(28) CS
033695,000920: # SEE FINDCDUW FOR STEERING OUTPUTS.
033696,000921:
033697,000922: # SUBROUTINE CALLED
033698,000923:
033699,000924: # FINDCDUW
033700,000925:
033701,000926: # RASTEER1
033702,000927: # DEBRIS
033703,000928:
033704,000929: # MPACS, PUSHLIST
033705,000930:
033706,000931: 27,2447 COUNT* $$/S40.8
Page 766 |
033708,000933: 27,2447 77614 S40.8 BOF # GENERATE VR IF NOT EXTERNAL DELTA-V BURN
033709,000934: 27,2450 01347 XDELVFLG
033710,000935: 27,2451 56733 RASTEER1
033711,000936: 27,2452 52375 VLOAD VSU
033712,000937: 27,2453 03701 VGPREV
033713,000938: 27,2454 03527 DELVREF
033714,000939: 27,2455 03707 VGAIN* STORE VG # VELOCITY TO BE GAINED SCALED AT (7)M/CS
033715,000940: 27,2456 76521 MXV VSL1
033716,000941: 27,2457 01732 REFSMMAT
033717,000942: 27,2460 03252 STORE UNFC/2
033718,000943: 27,2461 51575 BDTOK VLOAD ABVAL
033719,000944: 27,2462 03707 VG
033720,000945: 27,2463 03664 STORE VGDISP
033721,000946: 27,2464 77776 EXIT
033722,000947: 27,2465 05355 TC PHASCHNG
033723,000948: 27,2466 10035 OCT 10035
033724,000949: 27,2467 06060 TC INTPRET
033725,000950: 27,2470 77201 TGOCALC SETPD VLOAD
033726,000951: 27,2471 00001 0
033727,000952: 27,2472 03707 VG
033728,000953: 27,2473 27701 STOVL VGPREV
033729,000954: 27,2474 03527 DELVREF
033730,000955: 27,2475 57414 BOFF VCOMP
033731,000956: 27,2476 01344 STEERSW
033732,000957: 27,2477 75615 S40RET # LOCATION FOLLOWING CALL TO S40.8
033733,000958: 27,2500 77656 UNIT
033734,000959: 27,2501 41441 DOT PUSH
033735,000960: 27,2502 03707 VG
033736,000961: 27,2503 56244 BPL DDV
033737,000962: 27,2504 51634 ALARMIT # DELV IS MORE THAN 90 DEGREES FROM VG.
033738,000963: 27,2505 03743 VEX
033739,000964: 27,2506 41215 DAD DMP
033740,000965: 27,2507 06503 DPHALF
033741,000966: 27,2510 56261 SR DDV
033742,000967: 27,2511 20613 10D
033743,000968: 27,2512 00045 36D
033744,000969: 27,2513 43205 DMP DAD
033745,000970: 27,2514 16533 -FOURDT
033746,000971: 27,2515 03741 TDECAY
033747,000972: 27,2516 03517 STORE TGO
033748,000973: 27,2517 77615 DAD
033749,000974: 27,2520 01234 PIPTIME
033750,000975: 27,2521 17442 STODL TIG
033751,000976: 27,2522 03517 TGO
033752,000977: 27,2523 51025 DSU BPL
033753,000978: 27,2524 16535 FOURSECS # 400 CS
033754,000979: 27,2525 51640 GOFIND # CALL TO FINDCDUW -2
033755,000980: 27,2526 43014 SET CLRGO
033756,000981: 27,2527 01066 IMPULSW
033757,000982: 27,2530 01224 STEERSW
Page 767 |
033759,000984: 27,2531 75615 S40RET # LOCATION FOLLOWING CALL TO S40.8
033760,000985: 24,3634 BANK 24
033761,000986: 24,2000 SETLOC S40BNK
033762,000987: 24,2000 BANK
033763,000988:
033764,000989: 24,3634 77776 ALARMIT EXIT
033765,000990: 24,3635 05571 TC ALARM
033766,000991: 24,3636 01407 OCT 01407 # SKIP TGO COMPUTATION BUT CALL FINDCDUW.
033767,000992: 24,3637 06060 TC INTPRET
033768,000993: 24,3640 77624 GOFIND CALL
033769,000994: 24,3641 61072 FINDCDUW -2
033770,000995: 24,3642 77650 GOTO
033771,000996: 24,3643 75615 S40RET # LOCATION FOLLOWING CALL TO S40.8
033772,000997:
033773,000998: 27,2532 BANK 27
033774,000999: 27,2000 SETLOC P40S1
033775,001000: 27,2000 BANK
033776,001001:
033777,001002: 27,2532 77715 77777 -FOURDT 2DEC -800 B-18 # -4 (200 CS.) B(-18)
033778,001003:
033779,001004: 27,2534 00000 00620 FOURSECS 2DEC 400 B-28 # 400 CS SCALED AT 2(+28) CS
033780,001005:
033781,001006: 27,2536 E7,1742 2VEXHUST = VEX
033782,001007:
Page 768 |
033784,001009: # NAME S40.13 - TIMEBURN
033785,001010: # FUNCTION (1) DETERMINE WHETHER A GIVEN COMBINATION OF VELOCITY TO
033786,001011: # BE GAINED AND ENGINE CHOICE RESULT IN A BURN TIME
033787,001012: # SUFFICIENT TO ALLOW STEERING AT THE VEHICLE DURING THE
033788,001013: # BURN
033789,001014: # (2) THE MAGNITUDE OF THE RESULTING BURN TIME -- IF IT
033790,001015: # IS SHORT -- AND THE ASSOCIATED TIME OF THE ENGINE OFF
033791,001016: # SIGNAL
033792,001017: # CALLING SEQUENCE VIA FINDVAC AS A NEW JOB
033793,001018: # INPUT VGTIG VELOCITY TO BE GAINED VECTOR (METERS/CS) AT +7
033794,001019: # WEIGHT/G MASS OF VEHICLE IN KGM AT +16
033795,001020: # F ENGINE THRUST (USED ONLY FOR APS CALCULATIONS) IN KG-M/CS/CS AT +7
033796,001021: # FRCS4 4 JET RCS THRUST IN KG-M/CS/CS AT +7
033797,001022: # MDOT RATE OF DECREASE OF VEHICLE MASS DURING ENGINE
033798,001023: # BURN IN KG/CS AT +3
033799,001024: # APSFLAG:
033800,001025: # =0 DPS
033801,001026: # =1 APS
033802,001027: # OUTPUT IMPULSW ZERO FOR STEERING
033803,001028: # ONE FOR ATTITUDE HOLD
033804,001029: # NOTHROTL ZERO FOR THROTTLING
033805,001030: # ONE TO INHIBIT THROTTLING
033806,001031: # TGO TIME TO BURN IN CS
033807,001032:
033808,001033: 27,2536 E7,1516 EBANK= TGO
033809,001034: 27,2536 COUNT* $$/40.13
033810,001035: 27,2536 06060 S40.13 TC INTPRET
033811,001036: 27,2537 43001 SETPD CLEAR
033812,001037: 27,2540 00001 00D
033813,001038: 27,2541 01266 IMPULSW # ASSUME STEERING UNTIL FOUND OTHERWISE
033814,001039: 27,2542 51575 VLOAD ABVAL
033815,001040: 27,2543 03701 VGTIG # VELOCITY TO BE GAINED AT +7
033816,001041: 27,2544 41325 PDDL DMP # 00D = MAG OF VGTIG AT +7
033817,001042: 27,2545 16710 6.5SECS # CORRECT VG FOR 6.5 SECONDS OF ULLAGE
033818,001043: 27,2546 34017 FRCS4 # ASSUME 4 JET ULLAGE
033819,001044: 27,2547 72471 DDV SL1 # SCALE
033820,001045: 27,2550 01244 WEIGHT/G
033821,001046: 27,2551 41421 BDSU PUSH
033822,001047: 27,2552 43014 BOFF SET
033823,001048: 27,2553 05342 APSFLAG
033824,001049: 27,2554 56624 S40.13D # FOR DPS ENGINE
033825,001050: 27,2555 02463 NOTHROTL
033826,001051: 27,2556 56345 DLOAD DDV # 00D = MAG OF VGTIG CORRECTED
033827,001052: 27,2557 16001 K1VAL # KG-M/CS AT +23
033828,001053: 27,2560 01244 WEIGHT/G
033829,001054: 27,2561 50021 BDSU BMN
033830,001055: 27,2562 00001 00D
033831,001056: 27,2563 56606 S40.131 # TGO LESS THAN 100 CS
Page 769 |
033833,001058: 27,2564 41325 PDDL DMP # 02D = TEMP1 AT +7
033834,001059: 27,2565 03737 MDOT
033835,001060:
033836,001061: 27,2566 16700 3.5SEC # 350 CS AT +14
033837,001062: 27,2567 65221 BDSU PDDL
033838,001063: 27,2570 01244 WEIGHT/G
033839,001064: 27,2571 03735 F
033840,001065: 27,2572 60405 DMP SR2 # SCALE
033841,001066: 27,2573 16702 5SECS
033842,001067: 27,2574 41471 DDV PUSH # 04D = TEMP2
033843,001068: 27,2575 51021 BDSU BPL
033844,001069: 27,2576 00003 02D
033845,001070: 27,2577 56624 S40.13D
033846,001071: 27,2600 55345 DLOAD BDDV
033847,001072: 27,2601 43205 DMP DAD
033848,001073: 27,2602 16702 5SECS
033849,001074: 27,2603 16676 1SEC2D # 100 CS AT +14
033850,001075: 27,2604 77650 GOTO
033851,001076: 27,2605 56614 S40.132
033852,001077: 27,2606 41345 S40.131 DLOAD DMP
033853,001078: 27,2607 01244 WEIGHT/G
033854,001079: 27,2610 41542 SR1 PUSH
033855,001080: 27,2611 56215 DAD DDV
033856,001081: 27,2612 16003 K2VAL # KG-M/CS AT +24
033857,001082: 27,2613 16005 K3VAL # KG-M/CS/CS AT +10 (SAME VALUE AS FAPS)
033858,001083: 27,2614 77414 S40.132 SET EXIT
033859,001084: 27,2615 01066 IMPULSW
033860,001085: 27,2616 07300 S40.132* TC TPAGREE
033861,001086: 27,2617 30154 CA MPAC
033862,001087: 27,2620 56001 XCH L
033863,001088: 27,2621 34746 CA ZERO
033864,001089: 27,2622 53517 DXCH TGO
033865,001090: 27,2623 12650 TCF S40.134
033866,001091:
033867,001092: 27,2624 41345 S40.13D DLOAD DMP # FOR DPS ENGINE
033868,001093: 27,2625 00001 00D
033869,001094: 27,2626 01244 WEIGHT/G
033870,001095: 27,2627 43006 PUSH BON
033871,001096: 27,2630 05302 APSFLAG
033872,001097: 27,2631 56671 APSTGO
033873,001098: 27,2632 43071 DDV CLEAR
033874,001099: 27,2633 16007 S40.136
033875,001100: 27,2634 02663 NOTHROTL
033876,001101: 27,2635 41400 BOV PUSH
033877,001102: 27,2636 56653 S40.130V
033878,001103: 27,2637 51025 S40.137 DSU BPL
033879,001104: 27,2640 16704 6SEC # 600.0 CS AT +14
033880,001105: 27,2641 56661 S40.138
033881,001106: 27,2642 43015 DAD SET
033882,001107: 27,2643 16704 6SEC
Page 770 |
033884,001109: 27,2644 02463 NOTHROTL
033885,001110: 27,2645 77650 GOTO
033886,001111: 27,2646 56614 S40.132
033887,001112: 27,2647 77776 S40.133 EXIT
033888,001113: 27,2650 05355 S40.134 TC PHASCHNG
033889,001114: 27,2651 00003 OCT 00003
033890,001115: 27,2652 05146 TC ENDOFJOB
033891,001116: 27,2653 40545 S40.130V DLOAD SR4 # RECOMPUTE TGO IN TIME2 UNITS
033892,001117: 27,2654 77671 DDV
033893,001118: 27,2655 16011 S40.136_ # S40.136 SHIFTED LEFT 10
033894,001119: 27,2656 03517 STORE TGO
033895,001120: 27,2657 77776 EXIT
033896,001121: 27,2660 12650 TCF S40.134 # REJOIN COMMON CODING FOR RESTART PROTECT
033897,001122:
033898,001123: 27,2661 51025 S40.138 DSU BPL
033899,001124: 27,2662 16706 89SECS
033900,001125: 27,2663 56666 STORETGO
033901,001126: 27,2664 77614 SET
033902,001127: 27,2665 02463 NOTHROTL
033903,001128: 27,2666 77745 STORETGO DLOAD # LOAD TGO AT 2(14)
033904,001129: 27,2667 77776 EXIT
033905,001130: 27,2670 12616 TCF S40.132*
033906,001131:
033907,001132: 27,2671 62471 APSTGO DDV SL2
033908,001133: 27,2672 34007 FAPS
033909,001134: 27,2673 77650 GOTO
033910,001135: 27,2674 56667 STORETGO +1
033911,001136: 27,2675 00144 00000 1SEC2D 2DEC 100.0 B-14 # 100.0 CS AT +14
033912,001137:
033913,001138: 27,2677 01274 00000 3.5SEC 2DEC 350.0 B-13 # 350 CS AT +13
033914,001139:
033915,001140: 27,2701 00764 00000 5SECS 2DEC 500.0 B-14 # 500.0 CS AT +14
033916,001141:
033917,001142: 27,2703 01130 00000 6SEC 2DEC 600.0 B-14 # 600.0 CS AT +14
033918,001143:
033919,001144: 27,2705 21304 00000 89SECS 2DEC 8900.0 B-14
033920,001145:
033921,001146: 27,2707 00121 10000 6.5SECS 2DEC 650. B-17 # ASSUME 6.5 SECONDS OF ULLAGE
033922,001147:
Page 771 |
033924,001149: # S40.9 AND RASTEER1
033925,001150:
033926,001151: # S40.9
033927,001152:
033928,001153: # FUNCTION TO UPDATE "A" (THE SEMI-MAJOR AXIS OF THE ELLIPTICAL TRAJECTORY) BY CALLING "HAVEGUES" (INITVEL)
033929,001154: # EVERY "TNEWA" SECONDS.
033930,001155:
033931,001156: # CALLING SEQ VIA FINDVAC (FROM "STEERING", EVERY "TNEWA" SECONDS)
033932,001157:
033933,001158: # INPUT AND SEE INITVEL FOR A COMPLETE DESCRIPTION
033934,001159: # OUTPUT
033935,001160: # RINIT - ACTIVE VEHICLE RADIUS VECTOR METERS +29
033936,001161: # VINIT - ACTIVE VEHICLE VELOCITY VECTOR M/CS + 7
033937,001162: # - BOTH RINIT AND VINIT ARE VALID AT LAST PIPTIME (FROM SERVICER)
033938,001163: # DELLT4 - DESIRED TIME OF FLIGHT FROM RINIT TO RTARG IN CS +28
033939,001164: # - THE PREVIOUS THREE QUANTITIES ARE SET EVERY GUIDANCE CYCLE AT "ENDSTEER"
033940,001165: # RTX1 - -2 EARTH -10D MOON SET IN S40.1
033941,001166: # RTX2 - 0 EARTH 2 MOON SET IN S40.1
033942,001167:
033943,001168: # THE ONLY OUTPUTS FROM INITVEL THAT ARE OF INTEREST HERE ARE:
033944,001169:
033945,001170: # MUASTEER - MU (GRAVITATIONAL CONSTANT) AT +42 EARTH, +36 MOON
033946,001171: # MU/A - RATIO OF MU TO SEMI-MAJOR AXIS AT +14 EARTH, +10 MOON
033947,001172:
033948,001173:
033949,001174: # RASTEER1
033950,001175:
033951,001176: # FUNCTION GENERATES REQUIRED VELOCITY AND VELOCITY-TO-BE-GAINED VECTORS FOR USE DURING AIMPOINT MANEUVERS.
033952,001177: # ALSO ADJUSTS FOR GRAVITATIONAL EFFECTS DUE TO OBLATENESS.
033953,001178:
033954,001179: # CALLING SEQ CALLED EVERY GUIDANCE PASS (DURING AIMPOINT MANEUVERS) FROM S40.8 AS AN INTERPRETIVE SUBROUTINE.
033955,001180:
033956,001181: # INPUT
033957,001182: # FROM S40.1 RTX2 - -2 FOR EARTH, -10D FOR MOON
033958,001183: # FROM SERVICER UNIT/R/ - POSITION VECTOR HALF-UNIT
033959,001184: # RN - POSITION VECTOR METERS AT +29
033960,001185: # VN1 - VELOCITY VECTOR M/CS AT +7 EARTH OR +5 MOON
033961,001186: # UNITGOBL - OBLATENESS TERM OF GRAVITY VECTOR
033962,001187: # PIPTIME - TIME OF RN AND VN1 CS AT +28
033963,001188: # FROM INITVEL RTARG - TARGET VECTOR METERS AT +29
033964,001189: # RTMAG - MAGNITUDE OF RTARG AT +29
033965,001190: # MUASTEER - MU (SEE ABOVE, S40.9)
033966,001191: # MU/A - RATIO OF MU TO SEMI-MAJOR AXIS (SEE S40.9)
033967,001192: # GEOMSGN - 1 IF TRANSFER ANGLE < 180, -1 IF > 180
033968,001193: # FROM TARGETTING
033969,001194: # NORMSW - 1 IF TRANSFER ANGLE CLOSE TO 180, 0 IF NOT
033970,001195: # TPASS4 - DESIRED INTERCEPT TIME CS AT +28
033971,001196: # FROM OTHERS GOBLTIME - NOMINAL (NOT ACTUAL) IGNITION TIME CS AT+28
Page 772 |
033973,001198:
033974,001199: # OUTPUT DELVEET3 - VELOCITY-TO-BE-GAINED M/CS AT +7
033975,001200:
033976,001201:
033977,001202: 27,2711 E7,1700 EBANK= VGPREV
033978,001203: 27,2711 COUNT* $$/S40.9
033979,001204: 27,2711 06060 S40.9 TC INTPRET
033980,001205: 27,2712 77601 SETPD
033981,001206: 27,2713 00001 00D
033982,001207: 27,2714 71214 SET DLOAD
033983,001208: 27,2715 01072 AVFLAG # SET AVFLAG FOR LEM ACTIVE
033984,001209: 27,2716 06505 HI6ZEROS
033985,001210: 27,2717 77725 PDDL
033986,001211: 27,2720 16406 EPS1
033987,001212: 27,2721 43214 BOFF DAD # EPSILON4 = 10 OR 45 DEGREES.
033988,001213: 27,2722 03745 NORMSW
033989,001214: 27,2723 56725 EPSSMALL
033990,001215: 27,2724 16410 EPS2
033991,001216: 27,2725 45006 EPSSMALL PUSH CALL
033992,001217: 27,2726 22002 HAVEGUES
033993,001218: 27,2727 77776 ENDS40.9 EXIT
033994,001219: 27,2730 05355 TC PHASCHNG
033995,001220: 27,2731 00002 OCT 2
033996,001221: 27,2732 15146 TCF ENDOFJOB
033997,001222:
033998,001223:
033999,001224: 27,2733 51575 RASTEER1 VLOAD ABVAL
034000,001225: 27,2734 01220 RN
034001,001226: 27,2735 53744 LXC,2 SL*
034002,001227: 27,2736 02777 RTX2
034003,001228: 27,2737 57576 0,2
034004,001229: 27,2740 27715 STOVL RMAG
034005,001230: 27,2741 03444 RTARG
034006,001231: 27,2742 47051 VSU RTB
034007,001232: 27,2743 01220 RN
034008,001233: 27,2744 21722 NORMUNX1
034009,001234: 27,2745 17656 STODL IC # UNIT(C) C IS CHORD VECTOR
034010,001235: 27,2746 00045 36D # C(36D) = ABVAL(C)
034011,001236: 27,2747 53674 XAD,2 SL*
034012,001237: 27,2750 00046 X1
034013,001238: 27,2751 57576 0,2
034014,001239: 27,2752 00037 STORE 30D
034015,001240: 27,2753 41301 NORM DMP
034016,001241: 27,2754 00050 X2
034017,001242: 27,2755 03715 RMAG
034018,001243: 27,2756 57101 NORM XAD,2
034019,001244: 27,2757 00047 X1
034020,001245: 27,2760 00046 X1
034021,001246: 27,2761 77734 SXA,2
034022,001247: 27,2762 03766 MUSCALE
034023,001248: 27,2763 17725 STODL R1C # 2(+58 -X)
Page 773 |
034025,001250: 27,2764 00037 30D
034026,001251: 27,2765 65342 SR1 PDDL
034027,001252: 27,2766 03715 RMAG
034028,001253: 27,2767 65342 SR1 PDDL
034029,001254: 27,2770 03723 RTMAG
034030,001255: 27,2771 43342 SR1 DAD
034031,001256: 27,2772 45415 DAD STADR
034032,001257: 27,2773 74044 STORE SS # SS = (R1 + R2 + C)/2
034033,001258: 27,2774 41225 DSU DMP
034034,001259: 27,2775 00037 30D
034035,001260: 27,2776 03721 MU/A
034036,001261: 27,2777 77621 BDSU
034037,001262: 27,3000 03717 MUASTEER # (MU - MU(S-C)/2A)
034038,001263: 27,3001 45325 PDDL DSU
034039,001264: 27,3002 03733 SS
034040,001265: 27,3003 03715 RMAG # (S-R)
034041,001266: 27,3004 70501 NORM SR1
034042,001267: 27,3005 00047 X1
034043,001268: 27,3006 41271 DDV DMP # (2(S-R)/RC) (MU - MU(S-C)/2A)
034044,001269: 27,3007 03725 R1C
034045,001270: 27,3010 53664 XSU,2 SL*
034046,001271: 27,3011 00046 X1
034047,001272: 27,3012 57575 1,2
034048,001273: 27,3013 77754 LXA,2
034049,001274: 27,3014 03766 MUSCALE
034050,001275: 27,3015 75366 SQRT SIGN # SQRT((2(S-R)/RC)(MU - MU(S-C)/2A))
034051,001276: 27,3016 02673 GEOMSGN # (GEOMSGN = SGNA IN GSOP)
034052,001277: 27,3017 00041 STORE 32D # + OR - A
034053,001278: 27,3020 41345 DLOAD DMP # A=SGNA(SQRT((2(S-R)/RC)(MU-MU(S-C)/2A)))
034054,001279: 27,3021 03733 SS
034055,001280: 27,3022 03721 MU/A
034056,001281: 27,3023 77621 BDSU
034057,001282: 27,3024 03717 MUASTEER # MU - (MU S / 2A)
034058,001283: 27,3025 45325 PDDL DSU
034059,001284: 27,3026 03733 SS
034060,001285: 27,3027 03723 RTMAG
034061,001286: 27,3030 70501 NORM SR1
034062,001287: 27,3031 00047 X1
034063,001288: 27,3032 41271 DDV DMP # (2(S-R2)/RC) (MU - MU S / 2A) R2=RTARG
034064,001289: 27,3033 03725 R1C
034065,001290: 27,3034 53664 XSU,2 SL*
034066,001291: 27,3035 00046 X1
034067,001292: 27,3036 57575 1,2
034068,001293: 27,3037 65366 SQRT PDDL # -B (NO SIGN)
034069,001294: 27,3040 03733 SS
034070,001295: 27,3041 56225 DSU DDV
034071,001296: 27,3042 00037 30D
034072,001297: 27,3043 03733 SS
034073,001298: 27,3044 41566 SQRT PUSH
034074,001299: 27,3045 67542 SR1 ASIN # ARCSIN(SQRT((S-C)/S))
Page 774 |
034076,001301: 27,3046 65205 DMP PDDL
034077,001302: 27,3047 17220 2PI+3
034078,001303: 27,3050 56325 PDDL DDV
034079,001304: 27,3051 00037 30D
034080,001305: 27,3052 03733 SS
034081,001306: 27,3053 77600 BOV
034082,001307: 27,3054 57055 +1
034083,001308: 27,3055 41366 SQRT DMP # SQRT(C/S) SQRT((S-C)/S)=(1/S)(SQRT(C
034084,001309: 27,3056 44242 SR3 BDSU # (S-C)))
034085,001310: 27,3057 65365 SIGN PDDL # SGNA(ARCSIN((S-C)/S)-(1/S)SQRT(C(S-C)))
034086,001311: 27,3060 02673 GEOMSGN
034087,001312: 27,3061 17220 2PI+3
034088,001313: 27,3062 45302 SR2 DSU # (PI/2) - SGNA(ABOVE MESS)
034089,001314: 27,3063 65205 DMP PDDL
034090,001315: 27,3064 03733 SS
034091,001316: 27,3065 03733 SS
034092,001317: 27,3066 75442 SR3 SQRT
034093,001318: 27,3067 77605 DMP # S SQRT(S) = SQRT(S CUBED)
034094,001319: 27,3070 52525 PDDL SL3
034095,001320: 27,3071 03717 MUASTEER
034096,001321: 27,3072 55366 SQRT BDDV # T MINIMUM ENERGY (TM)
034097,001322: 27,3073 43225 DSU DAD
034098,001323: 27,3074 03631 TPASS4
034099,001324: 27,3075 01234 PIPTIME
034100,001325: 27,3076 14037 STODL 30D # (TM - T2) FOR SIGN OF B
034101,001326: 27,3077 77765 SIGN
034102,001327: 27,3100 00037 30D # B WITH SIGN
034103,001328: 27,3101 00037 STORE 30D
034104,001329: 27,3102 77214 BON VLOAD
034105,001330: 27,3103 03705 NORMSW
034106,001331: 27,3104 57125 180MESS
034107,001332: 27,3105 03656 IC
034108,001333: 27,3106 53451 VSU UNIT
034109,001334: 27,3107 03537 UNIT/R/
034110,001335: 27,3110 63361 VXSC PDVL # UNCM
034111,001336: 27,3111 00037 30D # B UNCM
034112,001337: 27,3112 03656 IC
034113,001338: 27,3113 53455 VAD UNIT
034114,001339: 27,3114 03537 UNIT/R/ # UNCP
034115,001340: 27,3115 53361 GETVRVG1 VXSC VAD # A UNCP
034116,001341: 27,3116 00041 32D
034117,001342: 27,3117 53744 GETVRVG2 LXC,2 VSR*
034118,001343: 27,3120 02777 RTX2
034119,001344: 27,3121 57177 0 -1,2
034120,001345: 27,3122 02330 STORE VIPRIME
034121,001346: 27,3123 77650 GOTO
034122,001347: 27,3124 57170 ASTREND -2
034123,001348: 27,3125 50375 180MESS VLOAD DOT
034124,001349: 27,3126 03656 IC
034125,001350: 27,3127 03537 UNIT/R/
Page 775 |
034127,001352: 27,3130 77240 BMN VLOAD
034128,001353: 27,3131 57150 NEGPROD
034129,001354: 27,3132 03656 IC
034130,001355: 27,3133 63362 VSR1 PDVL
034131,001356: 27,3134 03537 UNIT/R/
034132,001357: 27,3135 53362 VSR1 VAD
034133,001358: 27,3136 77656 UNIT
034134,001359: 27,3137 57406 PUSH VCOMP # FOR A
034135,001360: 27,3140 75235 VXV SIGN
034136,001361: 27,3141 02674 UN
034137,001362: 27,3142 02673 GEOMSGN
034138,001363: 27,3143 74256 UNIT VXSC
034139,001364: 27,3144 00037 30D
034140,001365: 27,3145 77715 PDVL # UNIT(IC-IR) +-B
034141,001366: 27,3146 77650 GOTO
034142,001367: 27,3147 57115 GETVRVG1
034143,001368: 27,3150 74575 NEGPROD VLOAD VSR1
034144,001369: 27,3151 03537 UNIT/R/
034145,001370: 27,3152 74515 PDVL VSR1
034146,001371: 27,3153 03656 IC
034147,001372: 27,3154 53451 VSU UNIT
034148,001373: 27,3155 77606 PUSH
034149,001374: 27,3156 75235 VXV SIGN
034150,001375: 27,3157 02674 UN # FOR B
034151,001376: 27,3160 02673 GEOMSGN
034152,001377: 27,3161 74256 UNIT VXSC
034153,001378: 27,3162 00041 32D
034154,001379: 27,3163 77715 PDVL
034155,001380: 27,3164 53361 VXSC VAD
034156,001381: 27,3165 00037 30D
034157,001382: 27,3166 77650 GOTO
034158,001383: 27,3167 57117 GETVRVG2
034159,001384: 27,3170 77651 VSU
034160,001385: 27,3171 03553 VN1
034161,001386: 27,3172 02357 ASTREND STORE DELVEET3
034162,001387: 27,3173 53135 FIRSTTME SLOAD BZE
034163,001388: 27,3174 03000 RTX2
034164,001389: 27,3175 57201 GETGOBL
034165,001390: 27,3176 52175 VLOAD GOTO # NO OBLATENESS COMP IF IN MOON SPHERE
034166,001391: 27,3177 02357 DELVEET3
034167,001392: 27,3200 57214 NOGOBL
034168,001393: 27,3201 53575 GETGOBL VLOAD UNIT # CALCULATE OBLATENESS TERM.
034169,001394: 27,3202 01220 RN
034170,001395: 27,3203 45345 DLOAD DSU
034171,001396: 27,3204 01234 PIPTIME # 2
034172,001397: 27,3205 03512 GOBLTIME # G = -(MU/R )(UNITGOBL)(T - TIG)
034173,001398: 27,3206 56205 DMP DDV # OBL
034174,001399: 27,3207 16023 EARTHMU
034175,001400: 27,3210 00043 34D # 34D = /RN/ (2) FROM UNIT OPERATION.
034176,001401: 27,3211 53361 VXSC VAD
Page 776 |
034178,001403: 27,3212 03521 UNITGOBL
034179,001404: 27,3213 02357 DELVEET3 # OUTPUT FROM INITVEL VG = VR - VN
034180,001405: 27,3214 02357 NOGOBL STORE DELVEET3 # VG = VR + GOBL - VN
034181,001406: 27,3215 77650 GOTO
034182,001407: 27,3216 56455 VGAIN*
034183,001408:
034184,001409: 27,3217 31103 36652 2PI+3 2DEC 3.141592653 B-2
034185,001410:
Page 777 |
034187,001412: # TRIMGIMB (FORMERLY S40.6)
034188,001413: # MOD 0 24 FEB 67 PETER ADLER
034189,001414: # FUNCTION:
034190,001415: # TRIMS DPS ENGINE TO MINIMIZE THRUST/CG OFFSET. ENGINE IS GIMBALLED TO FULL + PITCH AND + ROLL (TO LOCK)
034191,001416: # FOR REFERENCE AND IS THEN BROUGHT BACK TO TRIM POSITION BY RUNNING FOR THE PROPER TIMES (TO BE
034192,001417: # SPECIFIED BY GAEC) IN - PITCH AND - ROLL.
034193,001418: # CALLING SEQUENCE:
034194,001419: # VIA WAITLIST FROM R03
034195,001420: # INPUT:
034196,001421: # PITTIME TIME TO RUN FROM FULL + PITCH TO TRIM (CS)
034197,001422: # ROLLTIME TIME TO RUN FROM FULL + ROLL TO TRIM (CS)
034198,001423: # SUBROUTINES USED:
034199,001424: # WAITLIST, FIXDELAY, VARDELAY, FLAGUP, FLAGDOWN, NOVAC
034200,001425:
034201,001426: 27,3221 COUNT* $$/S40.6
034202,001427: 27,3221 E6,1401 EBANK= ROLLTIME # OCTAL MASKS: PRIO5=05000 EBANK5=02400
034203,001428:
034204,001429: 27,3221 05520 TRIMGIMB TC DOWNFLAG # GMBDRVSW FLAG IS SET WHEN EITHER ROLL OR
034205,001430: 27,3222 00137 ADRES GMBDRVSW # PITCH IS COMPLETED, WHICHEVER IS FIRST.
034206,001431:
034207,001432: 27,3223 45010 CS PRIO5 # TURN OFF - PITCH, - ROLL, IF ON.
034208,001433: 27,3224 00006 EXTEND
034209,001434: 27,3225 03012 WAND CHAN12
034210,001435: 27,3226 35005 CAF EBANK5 # TURN ON + PITCH, + ROLL.
034211,001436: 27,3227 00006 EXTEND
034212,001437: 27,3230 05012 WOR CHAN12
034213,001438: 27,3231 05223 TC FIXDELAY # WAIT ONE MINUTE TO MAKE SURE ENGINE IS
034214,001439: 27,3232 13560 DEC 6000 B-14 # AT FULL + PITCH AND FULL + ROLL
034215,001440: 27,3233 45005 CS EBANK5 # TURN OFF + PITCH, + ROLL.
034216,001441: 27,3234 00006 EXTEND
034217,001442: 27,3235 03012 WAND CHAN12
034218,001443: 27,3236 35010 CAF PRIO5 # TURN ON - PITCH, - ROLL.
034219,001444: 27,3237 00006 EXTEND
034220,001445: 27,3240 05012 WOR CHAN12
034221,001446: 27,3241 31402 CAE PITTIME # GET TIME TO SHUT OFF - PITCH AND SET UP
034222,001447: 27,3242 05175 TC TWIDDLE # TWIDDLE-TASK TO TURN IT OFF THEN
034223,001448: 27,3243 03262 ADRES PITCHOFF
034224,001449:
034225,001450: 27,3244 31401 CAE ROLLTIME # GET TIME TO SHUT OFF - ROLL AND GO AWAY
034226,001451: 27,3245 05226 TC VARDELAY # UNTIL THEN
034227,001452: 27,3246 44731 CS BIT12
034228,001453: 27,3247 00006 EXTEND
034229,001454: 27,3250 03012 WAND CHAN12 # SHUT OFF ROLL
034230,001455: 27,3251 30102 ROLLOVER CA FLAGWRD6 # IF HERE INLINE (ROLL DONE) IS PITCH DONE
034231,001456: 27,3252 74733 MASK GMBDRBIT # IF HERE FROM PITCHOFF, IS ROLL DONE?
034232,001457: 27,3253 00006 EXTEND
034233,001458: 27,3254 13266 BZF PITCHOFF +4 # NO. SET FLAG, ROLL OR PITCH DONE.
034234,001459: 27,3255 34730 CAF PRIO10 # RETURN TO R03
034235,001460: 27,3256 05063 TC NOVAC
034236,001461: 27,3257 E7,1471 EBANK= WHOCARES
Page 778 |
034238,001463: 27,3257 02330 02067 2CADR TRIMDONE
034239,001464:
034240,001465: 27,3261 05263 TC TASKOVER
034241,001466: 27,3262 44733 PITCHOFF CS BIT10
034242,001467: 27,3263 00006 EXTEND
034243,001468: 27,3264 03012 WAND CHAN12 # SHUT OFF PITCH
034244,001469: 27,3265 13251 TCF ROLLOVER # SEE IF ROLL HAS FINISHED ALSO.
034245,001470: 27,3266 05506 TC UPFLAG # ROLL DONE; OR PITCH DONE; BUT NOT BOTH.
034246,001471: 27,3267 00137 ADRES GMBDRVSW
034247,001472: 27,3270 05263 TC TASKOVER
034248,001473:
Page 779 |
034250,001475: # SUBROUTINE NAME: S41.1 MOD. NO. 0 DATE: FEBRUARY 28, 1967
034251,001476:
034252,001477: # MOD. NO. 1 DATE: JANUARY 23, 1968: BY PETER ADLER (MIT/IL)
034253,001478:
034254,001479: # AUTHOR: JONATHAN D. ADDELSTON (ADAMS ASSOCIATES)
034255,001480:
034256,001481: # S41.1 PERFORMS THE COORDINATE SYSTEM TRANFORMATION FROM THE REFERENCE FRAME TO THE BODY OF THE LM.
034257,001482: # SPECIFICALLY, IT IS USED TO TRANSFORM A VELOCITY (SCALED AT 2(+7) METERS/CENTISECOND) FROM REFERENCE TO LM AXIS
034258,001483: # COORDINATES. FIRST THE VECTOR IS TRANSFORMED TO THE STABLE MEMBER COORDINATES BY THE MATRIX REFSMMAT. THIS
034259,001484: # LEAVES THE VECTOR IN MPAC, SCALED AT 2(+8) METERS/CENTISECOND. THEN
034260,001485: # THE SUBROUTINE CDUTRIG IS CALLED TO SET UP THE DOUBLE-PRECISION CDU VECTOR ALONG WITH ITS SINES AND COSINES.
034261,001486: # THE VECTOR IS THEN TRANSFORMED FROM STABLE MEMBER COORDINATES TO SPACECRAFT (OR LM) COORDINATES BY THE
034262,001487: # SUBROUTINE *SMNB*. FINALLY( THE VECTOR IS RESCALED TO 2(+7) METERS/CENTISECOND, AND CONTROL IS RETURNED TO THE
034263,001488: # CALLER WITH C(MPAC) = VELOCITY(LM).
034264,001489:
034265,001490:
034266,001491: # CALLING SEQUENCE:
034267,001492: # L VLOAD CALL
034268,001493: # L +1 VELOCITY(REF) SCALED AT 2(+7) M/CS IN REFERENCE COORDS.
034269,001494: # L +2 S41.1
034270,001495: # L +3 STORE VELOCITY(LM) SCALED AT 2(+7) M/CS IN LM BODY AXIS SYS.
034271,001496:
034272,001497: # SUBROUTINES CALLED:
034273,001498:
034274,001499: # 1. CDUTRIG,
034275,001500: # WHICH CALLS CDULOGIC.
034276,001501: # 2. *SMNB*
034277,001502:
034278,001503: # NORMAL RETURN: L +3 (SEE CALLING SEQUENCE, ABOVE.)
034279,001504:
034280,001505: # ALARM/ABORT MODES: NONE.
034281,001506:
034282,001507: # RESTART PROTECTION: NONE.
034283,001508:
Page 780 |
034285,001510: # INPUT:
034286,001511:
034287,001512: # 1. REFSMMAT.
034288,001513: # 2. CDUX, CDUY, CDUZ.
034289,001514: # 3. VELOCITY (REF) IN MPAC.
034290,001515:
034291,001516: # OUTPUT:
034292,001517:
034293,001518: # 1. CDUSPOT: DOUBLE PRECISION CDU VECTOR, ORDERED Y,Z,X.
034294,001519: # 2. SINCDU: HALF SINES OF CDUSPOT COMPONENTS.
034295,001520: # 3. COSCDU: HALF COSINES OF CDUSPOT COMPONENTS.
034296,001521: # 4. MPAC: VELOCITY(LM) (SCALED AT 2(+7) METERS/CENTISECOND)
034297,001522:
034298,001523: # DEBRIS: NONE.
034299,001524:
034300,001525: # CHECKOUT STATUS: CODED.
034301,001526:
034302,001527: 27,3271 COUNT* $$/S41.1
034303,001528: 27,3271 76521 S41.1 MXV VSL1 # CONVERT VECTOR IN MPAC FROM REF AT 2(+7)
034304,001529: 27,3272 01732 REFSMMAT # TO SM AND RESCALE DUE TO HALFUNIT MATRIX
034305,001530: 27,3273 77650 GOTO # CONVERT TO BODY AT 2(+7) USING PRESENT
034306,001531: 27,3274 47640 CDU*SMNB # CDU ANGLES. CDU*SMNB WILL RETURN
034307,001532: # VIA RVQ TO THE CALLER OF S41.1
End of include-file P40-P47.agc. Parent file is MAIN.agc