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