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