Source Code
![]() |
This source code is very close to the Apollo Guidance Computer software for the
Apollo 13 Lunar module. This revision of the Luminary 131 program is from December
of 1969, whereas there was a later revision in January of 1970, and still another
revision in February, which is the code that flew on the mission.
As far as this transcription is concerned, it was originally from a copy made in 1991 of
a printout from the collection of AGC developer Don Eyles for collector David Craig.
It was subsequently scanned by Gary Neff, reprocessed for online
presentation at the now-discontinued History of Recent Science and Technology (HRST) website
of MIT's Dibner Institute (the full-quality scans being discarded in the process),
and finally transcribed by Ron Burkey for the Virtual AGC Project. Although a
high-quality replacement scan for a completely illegible page was later provided by Gary
Neff, the reduced legibility of the reprocessed HRST posting nevertheless caused many
errors to be introduced into the transcription. Accordingly, a second scan of the same physical
printout was made in 2017 for the Virtual AGC Project's collection at the Internet Archive,
and used to correct the transcription errors. All of the scanned materials mentioned,
as well as other Luminary 131 related material, are available online.
Don Eyles apprently made additional hand-written notes in printout between 1991 and 2017,
so the two scans are not identical in that respect. The page-headings in the printout read, in part:GAP: ASSEMBLE REVISION 131 OF AGC PROGRAM LUMINARY BY NASA 2021112-091 17:53 DEC. 19, 1969Note that the date is the date the printout was made, not the date on which the program revision was released, although these happen to be very close together. |
031655,000002: ## Copyright: Public domain.
031656,000003: ## Filename: P40-P47.agc
031657,000004: ## Purpose: A section of Luminary 1C, revision 131.
031658,000005: ## It is part of the source code for the Lunar Module's (LM)
031659,000006: ## Apollo Guidance Computer (AGC) for Apollo 13.
031660,000007: ## This file is intended to be a faithful transcription, except
031661,000008: ## that the code format has been changed to conform to the
031662,000009: ## requirements of the yaYUL assembler rather than the
031663,000010: ## original YUL assembler.
031664,000011: ## Reference: pp. 747-779
031665,000012: ## Contact: Ron Burkey <info@sandroid.org>.
031666,000013: ## Website: www.ibiblio.org/apollo
031667,000014: ## Mod history: 05/24/03 RSB. Began transcribing.
031668,000015: ## 2010-01-05 JL Fixed indentation of STADR instruction.
031669,000016: ## 2016-12-01 RSB There were a number of "modern" comments about hand-written
031670,000017: ## notations, which I had added back in 2003, but whiche never
031671,000018: ## got converted to ##-style. However, after having changed them
031672,000019: ## to ##-style, they no longer worked properly after being rendered
031673,000020: ## to html, so they had to be considerably reworked to fix that.
031674,000021: ## 2017-01-06 RSB Page numbers now agree with those on the
031675,000022: ## original harcopy, as opposed to the PDF page
031676,000023: ## numbers in 1701.pdf.
031677,000024: ## 2017-02-25 RSB Proofed comment text using octopus/ProoferComments.
031678,000025: ## 2017-02-28 RSB Fixed lingering typos.
031679,000026: ## 2017-03-10 RSB Comment-text fixes noted in proofing Luminary 116.
031680,000027: ## 2017-03-16 RSB Comment-text fixes identified in 5-way
031681,000028: ## side-by-side diff of Luminary 69/99/116/131/210.
031682,000029:
![]() |
Page 747 |
031684,000031: # PROGRAM DESCRIPTION P40BOTH DECEMBER 22, 1966
031685,000032: # MOD 03 BY PETER ADLER MARCH 3, 1967
031686,000033: # CALLED VIA JOB FROM V37E
031687,000034:
031688,000035: # FUNCTIONAL DESCRIPTION
031689,000036: # 1) TO COMPUTE A PREFERRED IMU ORIENTATION AND A PREFERRED VEHICLE ATTITUDE FOR A LM DPS
031690,000037: # THRUSTING MANEUVER.
![]() |
There is no item #2 in the original program listing — RSB 2003. |
031692,000039: # 3) TO DO THE VEHICLE MANEUVER TO THE THRUSTING ATTITUDE.
031693,000040: # 4) TO CONTROL THE PGNCS DURING COUNTDOWN, IGNITION, THRUSTING, AND THRUST TERMINATION OF A
031694,000041: # PGNCS CONTROLLED DPS MANEUVER.
031695,000042: # 5) IN POSTBURN -- ZERO RENDEZVOUS COUNTER, MAINTAIN VG CALCULATIONS FOR POSSIBLE RCS MANEUVER,
031696,000043: # SET MAXIMUM DEADBAND IN DAP, RESET STEERLAW CSTEER TO ZERO.
031697,000044: # NOTE: P42, WHICH IS IN THIS LOG SECTION, DOES THE SAME FOR AN APS BURN, AND P41 DOES 1-3 FOR
031698,000045: # RCS PLUS DISPLAYS PARAMETERS FOR MANUAL CONTROL.
031699,000046:
031700,000047: # SUBROUTINES USED
031701,000048: # R02 IMU STATUS CHECK
031702,000049: # S40.1 COMPUTATION OF THRUST DIRECTION
031703,000050: # S40.13 LENGTH OF BURN
031704,000051: # S40.2,3 PREFERRED IMU ORIENATTION
031705,000052: # S40.8 X PRODUCT STEERING
031706,000053: # S40.9 LAMBERT VTOGAIN
031707,000054: # R60LEM ATTITUDE MANEUVER
031708,000055: # LEMPREC EXTRAPOLATE STATE VECTOR
031709,000056: # PREREAD AVERAGE G, SERVICER
031710,000057: # ALLCOAST DAP COASTING INITIALIZATION
031711,000058: # CLOKTASK ERGO CLOCKJOB -- COUNT DOWN
031712,000059: # PHASCHNG, INTPRET, FLAGUP, FLAGDOWN, WAITLIST, LONGCALL, GOFLASH, GOFLASHR, GOPERF1, ALARM,
031713,000060: # PRIOLARM, GOTOPOOH, ENDOFJOB, BANKCALL, SETMAXDB, SETMINDB, CHECKMM, FLATOUT, OUTFLAT,
031714,000061: # KILLTASK, SGNAGREE, TPAGREE, ETC.
031715,000062:
031716,000063: # RESTARTS VIA GROUP 4
031717,000064:
031718,000065: # DISPLAYS
031719,000066: # V50N25 203 A/P TO PGNCS, AUTO THROTTLE MODE, AUTO ATTITUDE CONTROL
031720,000067: # V06N40 TTI, VG, DELTAVM (DISPLAYED ONCE/SECOND BY CLOKTASK)
031721,000068: # V50N99 PLEASE PERFORM ENGINE ON ENABLE
031722,000069: # V06N40 TG (TIME TO GO TO CUTOFF), VG, DELTAVM -- ONCE/SECOND
031723,000070: # V16N40 FINAL VALUES OF TG, VG, DELTAVM
031724,000071: # V16N85 COMP OF VG (BODY AXES) FOR POSS. RCS MANUAL MANEUVER
031725,000072: # V05N09 POSSIBLE ALARMS
031726,000073: # V50N07 PLEASE SELECT P00
031727,000074:
![]() |
Page 748 |
031729,000076: # VIA R30
031730,000077:
031731,000078: # V06N44 HAPO, PERI, TFF
031732,000079: # V06N35 TIME TO PERIGEE, HMS
031733,000080:
031734,000081: # ALARM OR ABORT EXIT MODES
031735,000082: # PROGRAM ALARM, FLASHING DISPLAY OF ALARM CODE 1706 IF P40 SELECTED WITH DESCENT UNIT STAGED.
031736,000083: # V34E (TERMINATE) IS THE ONLY RESPONSE ACCEPTED. TC GOTOPOOH.
031737,000084:
031738,000085: # PROGRAM ALARM, FLASH CODE 1703: TIG LESS THAN 45 SECS AWAY. V34E= GOTOPOOH OR V33E= SLIP
031739,000086: # TIG BY 45 SECS.
031740,000087:
031741,000088: # ERASABLE INITIALIZATION
031742,000089:
031743,000090: # DEBRIS
031744,000091:
031745,000092: # OUTPUT
031746,000093: # SEE SUBROUTINES E.G.: S40.1, S40.2,3, S40.13, S40.8, S40.9, TRIMGIMB
031747,000094: # XDELVFLG = 1 FOR EXT DELV COMPUTATION
031748,000095: # = 0 FOR AIMPT (LAMBERT) COMP
031749,000096:
031750,000097: 27,2246 COUNT* $$/P40
031751,000098: 27,2246 E7,1455 EBANK= WHICH
031752,000099:
031753,000100: 36,3153 BANK 36
031754,000101: 36,2000 SETLOC P40S
031755,000102: 36,2000 BANK
031756,000103:
031757,000104: 36,3153 05353 P40LM TC PHASCHNG
031758,000105: 36,3154 04024 OCT 04024
031759,000106:
031760,000107: 36,3155 33137 CAF P40ADRES # INITIALIZATION FOR BURNBABY.
031761,000108: 36,3156 55455 TS WHICH
031762,000109:
031763,000110: 36,3157 30106 CA FLGWRD10
031764,000111: 36,3160 74737 MASK APSFLBIT
031765,000112: 36,3161 10000 CCS A
031766,000113: 36,3162 13125 TCF P40ALM
031767,000114: 36,3163 04616 TC BANKCALL # GO DO IMU STATUS CHECK ROUTINE.
031768,000115: 36,3164 11233 CADR R02BOTH
031769,000116:
031770,000117: 36,3165 40111 CS DAPBOOLS # INITIALIZE DVMON
031771,000118: 36,3166 74737 MASK CSMDOCKD
031772,000119: 36,3167 10000 CCS A
031773,000120: 36,3170 32022 CAF THRESH1
031774,000121: 36,3171 62023 AD THRESH3
031775,000122: 36,3172 55250 TS DVTHRUSH
031776,000123: 36,3173 34751 CAF FOUR
031777,000124: 36,3174 55515 TS DVCNTR
![]() |
Page 749 |
031779,000126: 36,3175 06042 TC INTPRET # LOAD CONSTANTS FOR DPS BURN
031780,000127: 36,3176 43175 VLOAD CLEAR # LOAD F, MDOT, TDECAY
031781,000128: 36,3177 34001 FDPS
031782,000129: 36,3200 02663 NOTHROTL
031783,000130: 36,3201 03735 STORE F
031784,000131: 36,3202 77735 SLOAD
031785,000132: 36,3203 26002 DPSVEX
031786,000133: 36,3204 70476 P40IN DCOMP SR1
031787,000134: 36,3205 37743 STCALL VEX # LOAD EXHAUST VELOCITY FOR TGO COMP.
031788,000135: 36,3206 56246 S40.1 # COMPUTES UT AND VGTIG
031789,000136: 36,3207 77624 CALL
031790,000137: 36,3210 56413 S40.2,3 # COMPUTES PREFERRED IMU ORIENTATION
031791,000138: 36,3211 77776 EXIT
031792,000139:
031793,000140: 36,3212 00004 INHINT
031794,000141: 36,3213 04674 TC IBNKCALL
031795,000142: 36,3214 40143 CADR PFLITEDB # ZERO ATTITUDE ERRORS, SET DB TO ONE DEG.
031796,000143:
031797,000144: 36,3215 03217 TC P40SXT4
031798,000145:
031799,000146: # ***********************
031800,000147:
031801,000148: 36,3216 12130 TCF BURNBABY
031802,000149:
031803,000150: # ***********************
031804,000151:
031805,000152: 36,3217 00006 P40SXT4 EXTEND
031806,000153: 36,3220 23141 QXCH P40/RET
031807,000154: 36,3221 00003 P41MANU RELINT
031808,000155:
031809,000156: 36,3222 05516 TC DOWNFLAG # CLEAR 3AXISFLG -- R60 WILL USE VECPOINT.
031810,000157: 36,3223 00124 ADRES 3AXISFLG
031811,000158:
031812,000159: 36,3224 04616 TC BANKCALL
031813,000160: 36,3225 54123 CADR R60LEM # DO ATTITUDE MANEUVER ROUTINE
031814,000161: 36,3226 01141 TC P40/RET
031815,000162:
031816,000163: 36,3227 E7,1462 EBANK= TRKMKCNT
031817,000164: 36,3227 30005 POSTBURN CA Z
031818,000165: 36,3230 55162 TS DISPDEX
031819,000166: 36,3231 00006 EXTEND
031820,000167: 36,3232 32060 DCA ACADN85
031821,000168: 36,3233 53252 DXCH AVEGEXIT
031822,000169: 36,3234 33764 CAF V16N40
031823,000170: 36,3235 04616 TC BANKCALL
031824,000171: 36,3236 20636 CADR GOFLASHR
031825,000172: 36,3237 03262 TC TERM40
031826,000173: 36,3240 13245 TCF TIGNOW
031827,000174: 36,3241 03227 TC POSTBURN
![]() |
Page 750 |
031829,000176: 36,3242 05353 P40PHS1 TC PHASCHNG
031830,000177: 36,3243 00014 OCT 00014
031831,000178: 36,3244 15155 TCF ENDOFJOB
031832,000179:
031833,000180: 36,3245 00004 TIGNOW INHINT
031834,000181: 36,3246 04674 TC IBNKCALL
031835,000182: 36,3247 40154 CADR ZATTEROR
031836,000183: 36,3250 04674 TC IBNKCALL
031837,000184: 36,3251 40141 CADR SETMINDB
031838,000185: 36,3252 00003 RELINT
031839,000186: 36,3253 33765 CAF V16N85B
031840,000187: 36,3254 04616 TC BANKCALL
031841,000188: 36,3255 20463 CADR REFLASHR
031842,000189: 36,3256 03262 TC TERM40
031843,000190: 36,3257 13262 TCF TERM40
031844,000191: 36,3260 03253 TC -5
031845,000192:
031846,000193: 36,3261 13242 TCF P40PHS1
031847,000194:
031848,000195: 36,3262 00006 TERM40 EXTEND
031849,000196: 36,3263 32110 DCA SERVCADR
031850,000197: 36,3264 53252 DXCH AVEGEXIT
031851,000198: 36,3265 34755 CAF ZERO
031852,000199: 36,3266 55462 TS TRKMKCNT # ZERO RENDZVS CNTERS
031853,000200: 36,3267 30005 CA Z
031854,000201: 36,3270 55162 TS DISPDEX
031855,000202: 36,3271 00004 INHINT
031856,000203: 36,3272 04674 TC IBNKCALL
031857,000204: 36,3273 40115 CADR RESTORDB
031858,000205: 36,3274 00003 RELINT
031859,000206: 36,3275 06001 TC GOTOPOOH
031860,000207:
031861,000208: 36,3276 E7,1455 EBANK= WHICH
031862,000209: 36,3276 COUNT* $$/P41
031863,000210: 36,3276 33140 P41LM CAF P41ADRES # INITIALIZATION FOR BURNBABY
031864,000211: 36,3277 55455 TS WHICH
031865,000212:
031866,000213: 36,3300 04616 TC BANKCALL
031867,000214: 36,3301 11233 CADR R02BOTH
031868,000215:
031869,000216: 36,3302 06042 TC INTPRET # BOTH LM
![]() |
In the original program listing, the following line has a hand-written notation in the label field which may read "PPPIN".—RSB 2017. |
031872,000219: 36,3303 71214 BON DLOAD # IF NJETSFLAG IS SET, LOAD Z JET F
031873,000220: 36,3304 00700 NJETSFLG
031874,000221: 36,3305 75311 P41FJET1
031875,000222: 36,3306 34017 FRCS4 # IF NJETSFLAG IS CLEAR, LOAD 4 JET F
031876,000223:
031877,000224: 36,3307 37735 P41FJET STCALL F
031878,000225: 36,3310 75314 P41IN
031879,000226: 36,3311 77745 P41FJET1 DLOAD
![]() |
Page 751 |
031881,000228: 36,3312 34021 FRCS2
031882,000229: 36,3313 03735 STORE F
031883,000230:
031884,000231: 36,3314 77624 P41IN CALL
031885,000232: 36,3315 56246 S40.1 # BOTH
031886,000233: 36,3316 77624 P41NORM CALL
031887,000234: 36,3317 56413 S40.2,3 # CALCULATE PREFERRED IMU ORIENTATION AND
031888,000235: 36,3320 77776 EXIT # SET PFRATFLG.
031889,000236:
031890,000237: 36,3321 00004 INHINT
031891,000238: 36,3322 04674 TC IBNKCALL
031892,000239: 36,3323 40154 CADR ZATTEROR # ZERO ATTITUDE ERRORS
031893,000240: 36,3324 04674 TC IBNKCALL
031894,000241: 36,3325 40141 CADR SETMINDB # SET 0.3 DEGREE DEADBAND
031895,000242: 36,3326 03217 TC P40SXT4
031896,000243:
031897,000244: 36,3327 06042 TC INTPRET
031898,000245: 36,3330 45175 VLOAD CALL # TRANSFORM VELOCITY-TO-BE-GAINED AT TIG
031899,000246: 36,3331 03701 VGTIG # FROM REFERENCE COORDINATES TO LM BODY-
031900,000247: 36,3332 57267 S41.1 # AXIS COORDINATES FOR V16N85 DISPLAY.
031901,000248: 36,3333 03502 STORE VGBODY # (SCALED AT 2 (+7) METERS/CENTISECOND)
031902,000249: 36,3334 77776 EXIT
031903,000250:
031904,000251: 36,3335 33765 CAF V16N85B
031905,000252: 36,3336 04616 TC BANKCALL
031906,000253: 36,3337 20447 CADR GODSPRET
031907,000254:
031908,000255: 36,3340 35017 CAF PRIO5
031909,000256: 36,3341 55162 TS DISPDEX # FOR SAFETY ONLY
031910,000257: 36,3342 05105 TC FINDVAC
031911,000258: 36,3343 E7,1700 EBANK= VGPREV
031912,000259: 36,3343 03365 74067 2CADR DYNMDISP
031913,000260:
031914,000261: 36,3345 05327 TC 2PHSCHNG
031915,000262: 36,3346 00076 OCT 00076 # GROUP 6 RESTARTS AT REDO6.7
031916,000263: 36,3347 04024 OCT 04024 # GROUP 4 RESTARTS HERE
031917,000264:
031918,000265: # ***********************
031919,000266:
031920,000267: 36,3350 12137 TCF B*RNB*B*
031921,000268:
031922,000269: # ***********************
031923,000270:
031924,000271: 36,3351 34777 BLNKWAIT CAF 1SEC
031925,000272: 36,3352 04616 TC BANKCALL
031926,000273: 36,3353 01736 CADR DELAYJOB
031927,000274:
031928,000275: 36,3354 31162 REDO6.7 CA DISPDEX # ON A RESTART, DO NOT PUT UP DISPLAY IF
031929,000276: 36,3355 64752 AD TWO # BLANKING (BETWEEN TIG-35 AND TIG-30)
031930,000277:
031931,000278: # ***********************
![]() |
Page 752 |
031933,000280:
031934,000281: 36,3356 00006 EXTEND
031935,000282: 36,3357 13351 BZF BLNKWAIT
031936,000283:
031937,000284: 36,3360 33765 CAF V16N85B
031938,000285: 36,3361 04616 TC BANKCALL
031939,000286: 36,3362 20447 CADR GODSPRET
031940,000287:
031941,000288: 36,3363 35017 CAF PRIO5
031942,000289: 36,3364 05146 TC PRIOCHNG
031943,000290:
031944,000291: 36,3365 31162 DYNMDISP CA DISPDEX # A NON-POSITIVE DISPDEX INDICATES PAST
031945,000292: 36,3366 00006 EXTEND # TIG-35, SO SERVICER WILL BE DOING THE
031946,000293: 36,3367 65155 BZMF ENDOFJOB # UPDATING OF NOUN 85. STOP DYNMDISP.
031947,000294: 36,3370 06042 TC INTPRET
031948,000295: 36,3371 45175 VLOAD CALL
031949,000296: 36,3372 03701 VGPREV
031950,000297: 36,3373 57267 S41.1
031951,000298: 36,3374 03502 STORE VGBODY
031952,000299: 36,3375 77776 EXIT
031953,000300: 36,3376 34777 CAF 1SEC
031954,000301: 36,3377 04616 TC BANKCALL
031955,000302: 36,3400 01736 CADR DELAYJOB
031956,000303: 36,3401 13365 TCF DYNMDISP
031957,000304:
031958,000305: 36,3402 06042 CALCN85 TC INTPRET
031959,000306: 36,3403 77624 CALL
031960,000307: 36,3404 75615 UPDATEVG
031961,000308: 36,3405 45175 VLOAD CALL
031962,000309: 36,3406 03701 VGPREV
031963,000310: 36,3407 57267 S41.1
031964,000311: 36,3410 03502 STORE VGBODY
031965,000312: 36,3411 77776 EXIT
031966,000313: 36,3412 04635 TC POSTJUMP
031967,000314: 36,3413 65746 CADR SERVEXIT
031968,000315:
031969,000316: 36,3414 COUNT* $$/P42
031970,000317: 36,3414 E7,1455 EBANK= WHICH
031971,000318:
031972,000319: 36,3414 05353 P42LM TC PHASCHNG
031973,000320: 36,3415 04024 OCT 04024
031974,000321:
031975,000322: 36,3416 33141 CAF P42ADRES # INITIALIZATION FOR BURNBABY.
031976,000323: 36,3417 55455 TS WHICH
031977,000324:
031978,000325: 36,3420 40106 CS FLGWRD10
031979,000326: 36,3421 74737 MASK APSFLBIT
031980,000327: 36,3422 10000 CCS A
031981,000328: 36,3423 03125 TC P40ALM
031982,000329: 36,3424 04616 P42STAGE TC BANKCALL
![]() |
Page 753 |
031984,000331: 36,3425 11233 CADR R02BOTH
031985,000332: 36,3426 36000 CAF THRESH2 # INITIALIZE DVMON
031986,000333: 36,3427 55250 TS DVTHRUSH
031987,000334: 36,3430 34751 CAF FOUR
031988,000335: 36,3431 55515 TS DVCNTR
031989,000336:
031990,000337: 36,3432 06042 TC INTPRET
031991,000338: 36,3433 77214 SET VLOAD # LOAD FAPS, MDOTAPS, AND ATDECAY INTO
031992,000339: 36,3434 01072 AVFLAG # F, MDOT, AND TDECAY BY VECTOR LOAD.
031993,000340: 36,3435 34007 FAPS
031994,000341: 36,3436 03735 STORE F
031995,000342: 36,3437 52135 SLOAD GOTO
031996,000343: 36,3440 26001 APSVEX
031997,000344: 36,3441 75204 P40IN
031998,000345:
031999,000346: 36,3442 E7,1455 EBANK= WHICH
032000,000347:
032001,000348: 36,3442 COUNT* $$/P47
032002,000349: 36,3442 04616 P47LM TC BANKCALL
032003,000350: 36,3443 11233 CADR R02BOTH
032004,000351: 36,3444 06042 TC INTPRET
032005,000352: 36,3445 77624 CALRB
032006,000353: 36,3446 27547 MIDTOAV2
032007,000354:
032008,000355: 36,3447 30155 CA MPAC +1
032009,000356: 36,3450 05173 TC TWIDDLE
032010,000357: 36,3451 03453 ADRES STARTP47
032011,000358:
032012,000359: 36,3452 15155 TCF ENDOFJOB
032013,000360:
032014,000361: 36,3453 05353 STARTP47 TC PHASCHNG
032015,000362: 36,3454 05014 OCT 05014
032016,000363: 36,3455 77777 OCT 77777
032017,000364:
032018,000365: 36,3456 00006 EXTEND
032019,000366: 36,3457 33770 DCA ACADN83
032020,000367: 36,3460 53252 DXCH AVEGEXIT
032021,000368: 36,3461 34736 CAF PRIO20
032022,000369: 36,3462 05105 TC FINDVAC
032023,000370: 36,3463 E7,1622 EBANK= DELVIMU
032024,000371: 36,3463 03517 74067 2CADR P47BODY
032025,000372:
032026,000373: 36,3465 12344 TCF REDO4.2 # CHECKS PHASE 5 AND GOES TO PREREAD
032027,000374: # SEE TIG-30 IN BURNBABY.
032028,000375:
032029,000376: 36,3466 06042 CALCN83 TC INTPRET
032030,000377: 36,3467 53375 VLOAD VAD
032031,000378: 36,3470 03502 DELVCTL
032032,000379: 36,3471 03527 DELVREF
032033,000380: 36,3472 03656 STORE DELVSIN # TEMP STORAGE FOR RESTARTS
![]() |
Page 754 |
032035,000382: 36,3473 77624 CALL
032036,000383: 36,3474 57267 S41.1
032037,000384: 36,3475 03623 STORE DELVIMU
032038,000385: 36,3476 77776 EXIT
032039,000386: 36,3477 05353 TC PHASCHNG
032040,000387: 36,3500 10035 OCT 10035 # REREADAC AND HERE
032041,000388:
032042,000389: 36,3501 06042 TC INTPRET
032043,000390: 36,3502 77775 VLOAD
032044,000391: 36,3503 03656 DELVSIN
032045,000392: 36,3504 03502 STORE DELVCTL
032046,000393: 36,3505 77776 EXIT
032047,000394:
032048,000395: 36,3506 04635 TC POSTJUMP
032049,000396: 36,3507 65746 CADR SERVEXIT
032050,000397:
032051,000398: 36,3510 33766 P47BOD CAF V1683
032052,000399: 36,3511 04616 TC BANKCALL
032053,000400: 36,3512 20636 CADR GOFLASHR
032054,000401: 36,3513 06001 TC GOTOPOOH
032055,000402: 36,3514 06001 TC GOTOPOOH
032056,000403:
032057,000404: 36,3515 13517 TCF P47BODY
032058,000405:
032059,000406: 36,3516 13242 TCF P40PHS1
032060,000407:
032061,000408: 36,3517 06042 P47BODY TC INTPRET
032062,000409: 36,3520 77775 VLOAD
032063,000410: 36,3521 06524 HI6ZEROS
032064,000411: 36,3522 03623 STORE DELVIMU
032065,000412: 36,3523 03502 STORE DELVCTL
032066,000413: 36,3524 77776 EXIT
032067,000414: 36,3525 03510 TC P47BOD
032068,000415:
032069,000416: 36,3526 COUNT* $$/P40
032070,000417: 36,3526 31517 IMPLBURN CA TGO +1
032071,000418: 36,3527 03741 TC GETDT
032072,000419: 36,3530 05173 TC TWIDDLE
032073,000420: 36,3531 03546 ADRES ENGOFTSK
032074,000421: 36,3532 05516 TC DOWNFLAG # TURN OFF IGNFLAG
032075,000422: 36,3533 00153 ADRES IGNFLAG
032076,000423: 36,3534 05516 TC DOWNFLAG # TURN OFF ASTNFLG
032077,000424: 36,3535 00154 ADRES ASTNFLAG
032078,000425: 36,3536 05516 TC DOWNFLAG # TURN OFF IMPULSW
032079,000426: 36,3537 00044 ADRES IMPULSW
032080,000427: 36,3540 05353 TC PHASCHNG # RESTART PROTECT ENGOFTSK (ENGINOFF)
032081,000428: 36,3541 40114 OCT 40114
032082,000429:
032083,000430: 36,3542 05221 TC FIXDELAY # WAIT HALF A SECOND
032084,000431: 36,3543 00062 DEC 50 B-14
![]() |
Page 755 |
032086,000433: 36,3544 02657 TC NOULLAGE # TURN OFF ULLAGE
032087,000434:
032088,000435: 36,3545 05261 TC TASKOVER
032089,000436:
032090,000437: 36,3546 04674 ENGOFTSK TC IBNKCALL # THIS CODING ALLOWS ENGINOFF ET AL TO BE
032091,000438: 36,3547 75551 CADR ENGINOFF # USED BOTH BY WAITLIST AND BY TC IBNKCALL
032092,000439: 36,3550 05261 TC TASKOVER
032093,000440:
032094,000441: 36,3551 34644 ENGINOFF CAF PRIO12 # MUST BE LOWER PRIO THAN CLOCKJOB
032095,000442: 36,3552 05105 TC FINDVAC
032096,000443: 36,3553 E7,1462 EBANK= TRKMKCNT
032097,000444: 36,3553 03227 74067 2CADR POSTBURN
032098,000445:
032099,000446: 36,3555 34753 ENGINOF2 CAF BIT1
032100,000447: 36,3556 05203 TC WAITLIST
032101,000448: 36,3557 E6,1422 EBANK= OMEGAQ
032102,000449: 36,3557 03612 74066 2CADR COASTSET
032103,000450:
032104,000451: 36,3561 40103 ENGINOF1 CS FLAGWRD7 # SET THE IDLE BIT.
032105,000452: 36,3562 74745 MASK IDLEFBIT
032106,000453: 36,3563 26103 ADS FLAGWRD7
032107,000454:
032108,000455: 36,3564 02657 TC NOULLAGE
032109,000456:
032110,000457: 36,3565 00006 ENGINOF4 EXTEND
032111,000458: 36,3566 30025 DCA TIME2
032112,000459: 36,3567 53342 DXCH TEVENT
032113,000460:
032114,000461: 36,3570 44745 ENGINOF3 CS ENGONBIT # INSURE ENGONFLG IS CLEAR.
032115,000462: 36,3571 70101 MASK FLAGWRD5
032116,000463: 36,3572 54101 TS FLAGWRD5
032117,000464: 36,3573 44355 CS PRIO30 # ENGINOF3 IS USED AS A PRE-ENGINE ARM
032118,000465: 36,3574 00006 EXTEND # SUBROUTINE.
032119,000466: 36,3575 02011 RAND DSALMOUT
032120,000467: 36,3576 64736 AD PRIO20 # TURN OFF THE ENGINE - DPS OR APS
032121,000468: 36,3577 00006 EXTEND
032122,000469: 36,3600 01011 WRITE DSALMOUT
032123,000470:
032124,000471: 36,3601 40111 CS DAPBOOLS # TURN OFF TRIM GIMBAL
032125,000472: 36,3602 74736 MASK USEQRJTS
032126,000473: 36,3603 26111 ADS DAPBOOLS
032127,000474:
032128,000475: 36,3604 44737 CS HIRTHROT # ZERO AUTO-THROTTLE WHENEVER THE ENGINE
032129,000476: 36,3605 54055 TS THRUST # IS TURNED OFF.
032130,000477: 36,3606 34750 CAF BIT4 # THE HARDWARE DOES SO ONLY WHEN THE
032131,000478: 36,3607 00006 EXTEND # ENGINE IS DISARMED.
032132,000479: 36,3610 05014 WOR CHAN14
032133,000480:
032134,000481: 36,3611 04707 TC ISWRETRN
![]() |
Page 756 |
032136,000483: 36,3612 04674 COASTSET TC IBNKCALL # DO DAP COASTING INITIALIZATION
032137,000484: 36,3613 40205 CADR ALLCOAST
032138,000485: 36,3614 05261 TC TASKOVER
032139,000486:
032140,000487: 36,3615 E6,1422 EBANK= OMEGAQ
032141,000488: 36,3615 45020 UPDATEVG STQ CALL
032142,000489: 36,3616 03665 QTEMP1
032143,000490: 36,3617 56447 S40.8 # X-PRODUCT STEERING
032144,000491: 36,3620 43014 BON BON
032145,000492: 36,3621 01307 XDELVFLG
032146,000493: 36,3622 03665 QTEMP1
032147,000494: 36,3623 03705 NORMSW
032148,000495: 36,3624 75637 180SETUP
032149,000496: 36,3625 45345 DLOAD DSU
032150,000497: 36,3626 01234 PIPTIME
032151,000498: 36,3627 03763 TIGSAVE
032152,000499: 36,3630 50025 DSU BMN
032153,000500: 36,3631 03432 TNEWA
032154,000501: 36,3632 75662 GETRANS
032155,000502: 36,3633 43345 DLOAD DAD
032156,000503: 36,3634 03763 TIGSAVE
032157,000504: 36,3635 03432 TNEWA
032158,000505: 36,3636 03765 STORE TIGSAVEP
032159,000506: 36,3637 77776 180SETUP EXIT
032160,000507: 36,3640 10754 CCS PHASE2
032161,000508: 36,3641 13667 TCF NO.9
032162,000509: 36,3642 34737 CAF PRIO10
032163,000510: 36,3643 00004 INHINT
032164,000511: 36,3644 05105 TC FINDVAC
032165,000512: 36,3645 E7,1706 EBANK= VG
032166,000513: 36,3645 02707 56067 2CADR S40.9 # LAMBERT VTOGAIN
032167,000514:
032168,000515: 36,3647 05327 TC 2PHSCHNG
032169,000516: 36,3650 00172 OCT 00172 # 2.17SPOT FOR S40.9
032170,000517: 36,3651 10035 OCT 10035 # HERE AND REREADAC AFTER RESTART
032171,000518:
032172,000519: 36,3652 06042 ENDSTEER TC INTPRET
032173,000520: 36,3653 77745 DLOAD
032174,000521: 36,3654 03765 TIGSAVEP
032175,000522: 36,3655 27763 STOVL TIGSAVE
032176,000523: 36,3656 01220 RN
032177,000524: 36,3657 26323 STOVL RINIT
032178,000525: 36,3660 01226 VN
032179,000526: 36,3661 02331 STORE VINIT
032180,000527: 36,3662 45345 GETRANS DLOAD DSU
032181,000528: 36,3663 03631 TPASS4
032182,000529: 36,3664 01234 PIPTIME
032183,000530: 36,3665 37452 STCALL DELLT4
032184,000531: 36,3666 03665 QTEMP1
032185,000532:
![]() |
Page 757 |
032187,000534: 36,3667 06042 NO.9 TC INTPRET
032188,000535: 36,3670 77650 GOTO
032189,000536: 36,3671 03665 QTEMP1
032190,000537: 36,3672 06042 STEERING TC INTPRET
032191,000538:
032192,000539: 36,3673 77624 CALL
032193,000540: 36,3674 75615 UPDATEVG
032194,000541: 36,3675 77776 EXIT
032195,000542:
032196,000543: 36,3676 E7,1515 EBANK= DVCNTR
032197,000544: 36,3676 00004 NSTEER INHINT
032198,000545: 36,3677 35016 CA EBANK7
032199,000546: 36,3700 54003 TS EBANK
032200,000547: 36,3701 40076 CS FLAGWRD2 # CHECK IMPULSE SWITCH. IT IS SET EITHER
032201,000548: 36,3702 74743 MASK IMPULBIT # BY S40.13 IF TBURN<6 SECS OR BY S40.8 IF
032202,000549: 36,3703 10000 CCS A # STEERING IS ALMOST DONE.
032203,000550:
032204,000551: 36,3704 13711 TCF +5 # IMPULSW = 0 EXIT
032205,000552: 36,3705 40103 CS FLAGWRD7 # IMPULSW = 1 WHY? CHECK IDLEFLAG
032206,000553: 36,3706 74745 MASK IDLEFBIT # (IDLEFLAG = 0 --> DVMON ON)
032207,000554: 36,3707 10000 CCS A
032208,000555: 36,3710 13713 TCF +3 # DVMON ON --> THRUSTING --> IMPULSW VIA S40.8
032209,000556: 36,3711 04635 TC POSTJUMP # DVMON OFF --> IMPULSW ON VIA S40.13 --> EXIT
032210,000557: 36,3712 65746 CADR SERVEXIT
032211,000558:
032212,000559: 36,3713 04674 TC IBNKCALL
032213,000560: 36,3714 40166 CADR STOPRATE
032214,000561:
032215,000562: 36,3715 05516 TC DOWNFLAG # TURN OFF IMPULSW
032216,000563: 36,3716 00044 ADRES IMPULSW
032217,000564:
032218,000565: 36,3717 05504 TC UPFLAG
032219,000566: 36,3720 00161 ADRES IDLEFLAG # TURN OFF DVMON
032220,000567:
032221,000568: 36,3721 00004 INHINT
032222,000569: 36,3722 00006 EXTEND
032223,000570: 36,3723 31442 DCA TIG
032224,000571: 36,3724 52155 DXCH MPAC
032225,000572: 36,3725 00006 EXTEND
032226,000573: 36,3726 40025 DCS TIME2
032227,000574: 36,3727 20155 DAS MPAC
032228,000575: 36,3730 07262 TC TPAGREE
032229,000576: 36,3731 30155 CAE MPAC +1
032230,000577: 36,3732 03741 TC GETDT
032231,000578: 36,3733 05173 TC TWIDDLE
032232,000579: 36,3734 03546 ADRES ENGOFTSK
032233,000580: 36,3735 05327 TC 2PHSCHNG
032234,000581: 36,3736 40114 OCT 40114 # ENGOFTSK (ENGINOFF)
032235,000582: 36,3737 00035 OCT 00035 # SERVICER -- REREADAC
![]() |
Page 758 |
032237,000584: 36,3740 15155 TCF ENDOFJOB
032238,000585:
032239,000586: 36,3741 10000 GETDT CCS A
032240,000587: 36,3742 13745 TCF +3
032241,000588: 36,3743 13745 TCF +2
032242,000589: 36,3744 34755 CAF ZERO
032243,000590: 36,3745 64753 AD ONE
032244,000591: 36,3746 56001 XCH L
032245,000592: 36,3747 34755 CAF ZERO
032246,000593: 36,3750 53517 DXCH TGO
032247,000594: 36,3751 31517 CA TGO +1
032248,000595: 36,3752 00002 TC Q
032249,000596:
032250,000597: # ************************************************************************
032251,000598:
032252,000599: 36,3753 00000 SEC15DP OCT 00000 # DON'T SEPARATE
032253,000600: 36,3754 02734 SEC15 DEC 1500 B-14 # DON'T SEPARATE
032254,000601: 36,3755 00000 05670 SEC30DP 2DEC 3000 B-28
032255,000602: 36,3757 00000 SEC45DP OCT 00000 # DON'T MOVE FROM JUST BEFORE SEC45
032256,000603: 36,3760 10624 SEC45 DEC 4500 B-14
032257,000604: 36,3761 00000 5SECDP OCT 00000 # DON'T MOVE FROM JUST BEFORE 5SEC
032258,000605: 36,3762 00764 5SEC DEC 500 B-14
032259,000606: 36,3763 05050 26SECS DEC 2600 B-14
032260,000607: 36,3764 04050 V16N40 VN 1640
032261,000608: 36,3765 04125 V16N85B VN 1685
032262,000609: 36,3766 04123 V1683 VN 1683
032263,000610: 36,3767 4777 SEC01 = 1SEC
032264,000611: 36,3767 36,2057 ACADN85 = P41TABLE +2
032265,000612:
032266,000613: 36,3767 E7,1622 EBANK= DELVIMU
032267,000614: 36,3767 03466 74067 ACADN83 2CADR CALCN83
032268,000615:
032269,000616: # *************************************************
![]() |
Page 759 |
032271,000618: # PROGRAM DESCRIPTION S40.1 DATE15NOV66
032272,000619: # MOD N02 LOG SECTION P40-P47
032273,000620: # MOD BY ZELDIN AND ADAPTED BY TALAYCO
032274,000621:
032275,000622: # FUNCTIONAL DESCRIPTION
032276,000623: # COMPUTE INITIAL THRUST DIRECTION(UT) AND INITIAL VALUE OF VG
032277,000624: # VECTOR(VGTIG).
032278,000625:
032279,000626: # CALLING SEQUENCE
032280,000627: # L CALL
032281,000628: # L+1 S40.1
032282,000629:
032283,000630: # NORMAL EXIT MODE
032284,000631: # AT L+2 OF CALLING SEQUENCE (GOTO L+2) NORMAL RETURN OR
032285,000632: # ERROR RETURN IF NOSOFLAG =1
032286,000633:
032287,000634: # SUBROUTINES CALLED
032288,000635: # LEMPREC
032289,000636: # INITVEL
032290,000637: # CALCGRAV
032291,000638: # MIDGIM
032292,000639:
032293,000640: # ALARM OR ABORT EXIT MODES
032294,000641: # L+2 OF CALLING SEQUENCE, UNSOLVABLE CONIC IF NOSOFLAG=1
032295,000642:
032296,000643: # ERASABLE INITIALIZATION REQUIRED
032297,000644: # WEIGHT/G ANTICIPATED VEHICLE MASS DP B16 KGM
032298,000645: # XDELVFLG 1=DELTA-V MANEUVER, 0=AIMPT STEER
032299,000646: # F THRUST FOR ENGINE USED
032300,000647: # IF DELTA-V MANEUVER
032301,000648: # DELVSIN SPECIFIED DELTA-V REQUIRED IN
032302,000649: # INERTIAL COORDS. OF ACTIVE VEHICLE
032303,000650: # AT TIME OF IGNITION VECTOR B7 M/CS
032304,000651: # DELVSAB MAG. OF DELVSIN DP B7 M/CS
032305,000652: # RTIG POSITION AT TIME OF IGNITION VECTOR B29 M
032306,000653: # VTIG VELOCITY AT TIME OF IGNITION VECTOR B7 M/CS
032307,000654: # IF AIMPT STEER
032308,000655: # TIG TIME OF IGNITION DP B28 CS
032309,000656: # RTARG POSITION TARGET TIME VECTOR B29 M
032310,000657: # CSTEER C FOR STEER LAW DP B2
032311,000658: # DLTARG TARGET TIME-IGNITION TIME DP B28 CS
032312,000659:
032313,000660: # OUTPUT
032314,000661: # UT DESIRED THRUST DIRECTION VECT. B2 M/(CS.CS)
032315,000662: # VGTIG INITIAL VALUE OF VELOCITY
032316,000663: # TO BE GAINED (INERT. COORD.) VECTOR B7 M/CS
032317,000664: # DELVLVC VGTIG IN LOC. VERT. COORDS. B7 M/CS
032318,000665: # BDT V REQUIRED AT TIG -V REQUIRED AT (TIG-2SEC)
032319,000666: # -GDT FOR S40.13 VECT B7 M/CS
032320,000667: # RTIG CALC IN S40.1B (AIMPT) FOR S40.2,3 VECTOR B29M
032321,000668: # POSITION AT TIME OF IGNITION
032322,000669:
032323,000670: # DEBRIS QTEMP1
032324,000671: # MPAC, QPRET
032325,000672: # PUSHLIST
032326,000673:
032327,000674: 14,2347 BANK 14
032328,000675: 27,2000 SETLOC P40S1
032329,000676: 27,2000 BANK
![]() |
Page 760 |
032331,000678: 27,2246 COUNT* $$/S40.1
032332,000679: 27,2246 71220 S40.1 STQ DLOAD
032333,000680: 27,2247 03632 QTEMP
032334,000681: 27,2250 03442 TIG
032335,000682: 27,2251 03763 STORE TIGSAVE
032336,000683: 27,2252 77614 DELVTEST BOFF
032337,000684: 27,2253 01347 XDELVFLG
032338,000685: 27,2254 56336 S40.1B
032339,000686: 27,2255 77201 CALCTHET SETPD VLOAD
032340,000687: 27,2256 00001 0
032341,000688: 27,2257 03650 VTIG
032342,000689: 27,2260 02331 STORE VINIT
032343,000690: 27,2261 53435 VXV UNIT
032344,000691: 27,2262 03642 RTIG
032345,000692: 27,2263 27673 STOVL UT # UP IN UT
032346,000693: 27,2264 03642 RTIG
032347,000694: 27,2265 02323 STORE RINIT
032348,000695: 27,2266 65236 VSQ PDDL
032349,000696: 27,2267 00045 36D
032350,000697: 27,2270 56205 DMP DDV
032351,000698: 27,2271 16412 THETACON
032352,000699: 27,2272 41205 DMP DMP
032353,000700: 27,2273 03664 DELVSAB
032354,000701: 27,2274 01244 WEIGHT/G
032355,000702: 27,2275 77671 DDV
032356,000703: 27,2276 03735 F
032357,000704: 27,2277 24017 STOVL 14D
032358,000705: 27,2300 03656 DELVSIN
032359,000706:
032360,000707: 27,2301 74241 DOT VXSC
032361,000708: 27,2302 03673 UT
032362,000709: 27,2303 03673 UT
032363,000710: 27,2304 41552 VSL2 PUSH # (DELTAV.UP)UP SCALED AT 2(+7) P.D.L. 0
032364,000711: 27,2305 65245 BVSU PDDL # DELTA VP SCALED AT 2(+7) P.D.L. 6
032365,000712: 27,2306 03656 DELVSIN
032366,000713: 27,2307 00017 14D
032367,000714: 27,2310 63356 SIN PDVL
032368,000715: 27,2311 00007 6D
032369,000716: 27,2312 53435 VXV UNIT
032370,000717: 27,2313 03673 UT
032371,000718: 27,2314 45561 VXSC STADR
032372,000719: 27,2315 50076 STOVL VGTIG # UNIT(VP X UP)SIN(THETAT/2) IN VGTIG.
032373,000720: 27,2316 65256 UNIT PDDL # UNIT(DELTA VP) IN P.D.L. 6
032374,000721: 27,2317 00017 14D
032375,000722: 27,2320 74346 COS VXSC
032376,000723: 27,2321 74255 VAD VXSC
032377,000724: 27,2322 03701 VGTIG
032378,000725: 27,2323 00045 36D
032379,000726: 27,2324 53352 VSL2 VAD
032380,000727: 27,2325 77626 STADR
![]() |
Page 761 |
032382,000729: 27,2326 74076 STORE VGTIG # VG IGNITION SCALED AT 2(+7) M/CS
032383,000730:
032384,000731: 27,2327 77656 UNIT
032385,000732: 27,2330 27673 STOVL UT # THRUST DIRECTION SCALED AT 2(+1)
032386,000733: 27,2331 03701 VGTIG
032387,000734: 27,2332 45006 PUSH CALL
032388,000735: 27,2333 15741 GET.LVC # VGTIG IN LV COOR AT 2(+7) M/CS IN DELVLVC
032389,000736: 27,2334 77650 GOTO
032390,000737: 27,2335 03632 QTEMP
032391,000738: 27,2336 77745 S40.1B DLOAD
032392,000739: 27,2337 03442 TIG
032393,000740: 27,2340 00041 STORE TDEC1
032394,000741: 27,2341 77621 BDSU
032395,000742: 27,2342 03631 TPASS4
032396,000743: 27,2343 37452 STCALL DELLT4 # INTERCEPT TIME - TIG.
032397,000744: 27,2344 27056 LEMPREC
032398,000745: 27,2345 40375 VLOAD SETPD # LOAD STATE VECTOR AT TIG FOR INITVEL.
032399,000746: 27,2346 00001 RATT
032400,000747: 27,2347 00001 0
032401,000748: 27,2350 03642 STORE RTIG
032402,000749: 27,2351 02323 STORE RINIT
032403,000750: 27,2352 77656 UNIT
032404,000751: 27,2353 27537 STOVL UNIT/R/
032405,000752: 27,2354 00007 VATT
032406,000753: 27,2355 03650 STORE VTIG
032407,000754: 27,2356 02331 STORE VINIT
032408,000755: 27,2357 65345 DLOAD PDDL # NUMIT = 0
032409,000756: 27,2360 06524 ZEROVECS
032410,000757: 27,2361 16406 EPS1
032411,000758: 27,2362 43214 BOFF DAD
032412,000759: 27,2363 03745 NORMSW
032413,000760: 27,2364 56366 SMALLEPS
032414,000761: 27,2365 16410 EPS2 # EPSILON4 = 10 DEGREES OR 45 DEGREES.
032415,000762: 27,2366 66006 SMALLEPS PUSH SXA,1
032416,000763: 27,2367 02776 RTX1
032417,000764: 27,2370 45134 SXA,2 CALL
032418,000765: 27,2371 02777 RTX2
032419,000766: 27,2372 22000 INITVEL
032420,000767: 27,2373 41575 VLOAD PUSH
032421,000768: 27,2374 02366 DELVEET3 # VGTIG = VR-VN.
032422,000769: 27,2375 03701 STORE VGTIG
032423,000770: 27,2376 77656 UNIT # UT = UNIT (VGTIG)
032424,000771: 27,2377 17673 STODL UT
032425,000772: 27,2400 00045 36D
032426,000773: 27,2401 37664 STCALL VGDISP # CONVERT VGTIG (IN PUSHLIST) TO LOCAL
032427,000774: 27,2402 15741 GET.LVC # VERTICAL COORDINATES.
032428,000775: 27,2403 77650 GOTO
032429,000776: 27,2404 03632 QTEMP
032430,000777:
032431,000778: 27,2405 00707 03434 EPS1 2DEC* 2.777777778 E-2* # 10 DEGREES AT 1 REVOLUTION.
![]() |
Page 762 |
032433,000780: 27,2407 03070 34344 EPS2 2DEC* 9.722222222 E-2* # 35 DEGREES AT 1 REVOLUTION.
032434,000781: 27,2411 00024 13714 THETACON 2DEC .31830989 B-8
032435,000782:
![]() |
Page 763 |
032437,000784: # SUBROUTINE NAME: S40.2,3 MOD. NO. 3 DATE: APRIL 4, 1967
032438,000785: # MODIFICATION BY: JONATHAN D. ADDELSTON (ADAMS ASSOCIATES)
032439,000786: # MOD. NO. 4: JULY 18, 1967: PETER ADLER (MIT/IL)
032440,000787: # MOD. NO. 5: OCTOBER 18, 1967: PETER ADLER (MIT/IL)
032441,000788: # ORIGINALLY BY: SAYDEAN ZELDIN (MIT INSTRUMENTATION LAB) AND RICHARD TALAYCO (SYSTEM DEVELOPMENT CORP)
032442,000789:
032443,000790: # S40.2,3 COMPUTES "POINTVSM" WHICH IS THE HALF-UNIT DESIRED THRUST VECTOR IN STABLE-MEMBER COORDINATES FROM "UT"
032444,000791: # WHICH IS THE SAME VECTOR IN REFERENCE COORDINATES. IT DETERMINES THE CORRECT VALUES FOR "SCAXIS" USING THE +X
032445,000792: # AXIS FOR DPS, APS, AND RCS BURNS. THE "WINGS-LEVEL HEADS-UP" LM ORIENTATION IS THEN COMPUTED IN REFERENCE
032446,000793: # COORDINATES. THESE VECTORS ALSO DEFINE THE "PREFERRED IMU ORIENTATION". UPON COMPLETION OF THIS CALCULATION,
032447,000794: # THE "PREFERRED ATTITUDE COMPUTED" FLAG IS SET (PFRATFLG).
032448,000795:
032449,000796: # CALLING SEQUENCE:
032450,000797: # L CALL INTERPRETIVE CALL.
032451,000798: # L +1 S40.2,3
032452,000799: # L +2 (RETURN) GIMBAL ANGLE VECTOR IN MPAC.
032453,000800:
032454,000801: # SUBROUTINES CALLED: NONE.
032455,000802:
032456,000803: # NORMAL RETURN: L +2 (SEE CALLING SEQUENCE ABOVE).
032457,000804:
032458,000805: # ALARM/ABORT MODES: NONE.
032459,000806:
032460,000807: # INPUT:
032461,000808: # 1. REFSMMAT MATRIX FROM REFERENCE TO STABLE-MEMBER COORDINATES SCALED AT 2.
032462,000809: # 2. UT HALF-UNIT DESIRED THRUST DIRECTION.
032463,000810: # 3. RTIG POSITION AT TIG IN REFERENCE COORDINATES.
032464,000811:
032465,000812: # OUTPUT:
032466,000813: # 1. :XSCREF: WINGS-LEVEL HEADS-UP LM ORIENTATION
032467,000814: # :YSCREF: IN REFERENCE COORDINATES
032468,000815: # :ZSCREF: (PREFERRED IMU ORIENTATION).
032469,000816: # 2. POINTVSM DESIRED THRUST DIRECTION IN STABLE-MEMBER COORDINATES.
032470,000817: # 3. SCAXIS HALF-UNIT OF AXIS TO ALIGN IN STABLE-MEMBER COORDINATES.
032471,000818: # 4. PFRATFLG INTERPRETIVE FLAG. ON: PREFERRED ORIENTATION COMPUTED; OFF: NOT COMPUTED.
032472,000819:
032473,000820: # DEBRIS: NONE.
![]() |
Page 764 |
032475,000822:
032476,000823: 27,2413 COUNT* $$/S40.2
032477,000824: 27,2413 77775 S40.2,3 VLOAD # UT: DESIRED THRUST DIRECTION (HALF-UNIT)
032478,000825: 27,2414 03673 UT # (PUT INTO TOP OF PUSH-DOWN-LIST.)
032479,000826: 27,2415 76521 MXV VSL1 # TRANSFORM THRUST DIRECTION TO STABLE-
032480,000827: 27,2416 01734 REFSMMAT # MEMBER FROM REFERENCE COORDS (RESCALE).
032481,000828: 27,2417 27773 STOVL POINTVSM # SAVE FOR "VECPOINT" ROUTINE (LEMMANU).
032482,000829: 27,2420 06522 UNITX # SCAXIS SET TO +X, FOR P40 AND P42 AND
032483,000830: 27,2421 27765 STOVL SCAXIS # FOR P41 IF RCS NOT -X,+Y,-Y,+Z,-Z.
032484,000831:
032485,000832: 27,2422 03673 UT # ASSUME +X BURN ALWAYS, EVEN FOR RCS.
032486,000833: 27,2423 03607 PLUSX STORE XSCREF # XSCREF = UT (DESIRED THRUST DIRECTION.)
032487,000834: 27,2424 53435 VXV UNIT # RTIG = POSITION AT TIME-OF-IGNITION.
032488,000835: 27,2425 03642 RTIG # YSCREF = UNIT(UT X RTIG)
032489,000836: 27,2426 46125 PDDL BHIZ
032490,000837: 27,2427 00045 36D # TEST MAGNITUDE OF UT X RTIG
032491,000838: 27,2430 56441 FIXY # IF SMALL, USE UT X VTIG AS YSC
032492,000839: 27,2431 45575 STORY VLOAD STADR
032493,000840: 27,2432 74162 STORE YSCREF
032494,000841: 27,2433 76435 VXV VSL1 # COMPUTE (YSCREF X XSCREF),BUT FOR A
032495,000842: 27,2434 03607 XSCREF # RIGHT HANDED SYSTEM, NEED (X CROSS Y).
032496,000843: 27,2435 77676 VCOMP # ZSCREF = - (YSCREF X XSCREF)
032497,000844: 27,2436 03623 STORE ZSCREF # = + (XSCREF X YSCREF)
032498,000845:
032499,000846: 27,2437 43414 SET RVQ
032500,000847: 27,2440 01073 PFRATFLG
032501,000848: 27,2441 47375 FIXY VLOAD VXV # IN THIS CASE,
032502,000849: 27,2442 03607 XSCREF # YSCREF = UNIT(XSCREF X VTIG)
032503,000850: 27,2443 03650 VTIG
032504,000851: 27,2444 41456 UNIT PUSH
032505,000852: 27,2445 77650 GOTO
032506,000853: 27,2446 56431 STORY
![]() |
Page 765 |
032508,000855: # SUBROUTINE S40.8
032509,000856: # MODIFIED APRIL 3, 1968 BY PETER ADLER MIT/IL
032510,000857:
032511,000858: # DESCRIPTION
032512,000859: # S40.8 UPDATES THE VELOCITY-TO-BE-GAINED VECTOR, VG, (AND FOR LAMBERT TARGETTED BURNS ALSO EXTRAPOLATES VG
032513,000860: # USING THE BDT VECTOR) COMPUTES THE TIME FOR ISSUING THE ENGINE OFF COMMAND, TGO, AND CALLS THE ROUTINE
032514,000861: # "FINDCDUW", WHICH GENERATES STEERING COMMANDS FOR THE DAP.
032515,000862:
032516,000863: # CALLING SEQUENCE
032517,000864: # L-1 CALL
032518,000865: # L S40.8
032519,000866: # L+1 INTERPRETIVE RETURN
032520,000867:
032521,000868: # ALARM
032522,000869: # IF VG.DELVREF IS NEGATIVE (VG AND DELVREF OVER 90 DEGREES APART), BYPASS TGO AND STEERING COMPUTATIONS
032523,000870: # AND SET ALARM 1407. RETURN TO CALLER NORMALLY.
032524,000871:
032525,000872: # INPUT AND INITIALIZATION
032526,000873: # VGPREV REFERENCE 2(7) M/CS
032527,000874: # DELVREF REFERENCE 2(7) M/CS
032528,000875: # BDT REFERENCE 2(7) M/CS
032529,000876: # TDECAY TAIL-OFF TIME 2(28) CS
032530,000877: # XDELVFLG 1 = EXTERNAL DELTA-V; 0 = LAMBERT (AIMPOINT)
032531,000878: # STEERSW 1 = DO STEERING AND TGO COMPUTATIONS; 0 = VG UPDATE ONLY
032532,000879: # FIRSTFLG 1 = GONE TO LAMBERT AT LEAST ONCE; 0 = HAVEN'T GONE TO LAMBERT YET
032533,000880:
032534,000881: # NOTE: VGTIG EQUALS VGPREV
032535,000882:
032536,000883: # OUTPUT
032537,000884: # STEERSW SEE INPUT
032538,000885: # IMPULSW 1 = ENGINE OFF IN TGO CENTISECONDS; 0 = CONTINUE BURN
032539,000886: # TGO TIME TO CUT-OFF 2(28) CS
032540,000887: # SEE FINDCDUW FOR STEERING OUTPUTS.
032541,000888:
032542,000889: # SUBROUTINE CALLED
032543,000890: # FINDCDUW
032544,000891:
032545,000892: # DEBRIS
032546,000893: # MPACS, PUSHLIST
032547,000894:
032548,000895: 27,2447 COUNT* $$/S40.8
![]() |
Page 766 |
032550,000897: 27,2447 77614 S40.8 BOF # GENERATE VR IF NOT EXTERNAL DELTA-V BURN
032551,000898: 27,2450 01347 XDELVFLG
032552,000899: 27,2451 56731 RASTEER1
032553,000900: 27,2452 52375 VLOAD VSU
032554,000901: 27,2453 03701 VGPREV
032555,000902: 27,2454 03527 DELVREF
032556,000903: 27,2455 03707 VGAIN* STORE VG # VELOCITY TO BE GAINED SCALED AT (7) M/CS
032557,000904: 27,2456 76521 MXV VSL1
032558,000905: 27,2457 01734 REFSMMAT
032559,000906: 27,2460 03253 STORE UNFC/2
032560,000907: 27,2461 51575 BDTOK VLOAD ABVAL
032561,000908: 27,2462 03707 VG
032562,000909: 27,2463 03664 STORE VGDISP
032563,000910: 27,2464 77201 TGDCALC SETPD VLOAD
032564,000911: 27,2465 00001 0
032565,000912: 27,2466 03707 VG
032566,000913: 27,2467 27701 STOVL VGPREV
032567,000914: 27,2470 03527 DELVREF
032568,000915: 27,2471 57414 BOFF VCOMP
032569,000916: 27,2472 01344 STEERSW
032570,000917: 27,2473 00052 QPRET
032571,000918: 27,2474 77656 UNIT
032572,000919: 27,2475 41441 DOT PUSH
032573,000920: 27,2476 03707 VG
032574,000921: 27,2477 56244 BPL DDV
032575,000922: 27,2500 56526 ALARMIT # DELV IS MORE THAN 90 DEGREES FROM VG.
032576,000923: 27,2501 03743 VEX
032577,000924: 27,2502 41215 DAD DMP
032578,000925: 27,2503 06522 DPHALF
032579,000926: 27,2504 56261 SR DDV
032580,000927: 27,2505 20613 10D
032581,000928: 27,2506 00045 36D
032582,000929: 27,2507 43205 DMP DAD
032583,000930: 27,2510 16535 -FOURDT
032584,000931: 27,2511 03741 TDECAY
032585,000932: 27,2512 03517 STORE TGO
032586,000933: 27,2513 77615 DAD
032587,000934: 27,2514 01234 PIPTIME
032588,000935: 27,2515 17442 STODL TIG
032589,000936: 27,2516 03517 TGO
032590,000937: 27,2517 51025 DSU BPL
032591,000938: 27,2520 16537 FOURSECS # 400 CS
032592,000939: 27,2521 61100 FINDCDUW -2
032593,000940: 27,2522 43014 SET CLRGO
032594,000941: 27,2523 01066 IMPULSW
032595,000942: 27,2524 01224 STEERSW
032596,000943: 27,2525 00052 QPRET
032597,000944:
032598,000945: 27,2526 77776 ALARMIT EXIT
032599,000946:
![]() |
Page 767 |
032601,000948: 27,2527 05567 TC ALARM
032602,000949: 27,2530 01407 OCT 01407
032603,000950: 27,2531 06042 TC INTPRET
032604,000951: 27,2532 77650 GOTO # SKIP TGO COMPUTATION BUT CALL FINDCDUW.
032605,000952: 27,2533 61100 FINDCDUW -2 # FINDCDUW WILL EXIT TO UPDATEVG +3.
032606,000953:
032607,000954: 27,2534 77715 77777 -FOURDT 2DEC -800 B-18 # -4 (200 CS.) B(-18)
032608,000955: 27,2536 00000 00620 FOURSECS 2DEC 400 B-28 # 400 CS SCALED AT 2(+28) CS
032609,000956: 27,2540 E7,1742 2VEXHUST = VEX
032610,000957:
![]() |
Page 768 |
032612,000959: # NAME S40.13 - TIMEBURN
032613,000960:
032614,000961: # FUNCTION (1) DETERMINE WHETHER A GIVEN COMBINATION OF VELOCITY TO
032615,000962: # BE GAINED AND ENGINE CHOICE RESULT IN A BURN TIME
032616,000963: # SUFFICIENT TO ALLOW STEERING AT THE VEHICLE DURING THE
032617,000964: # BURN
032618,000965: # (2) THE MAGNITUDE OF THE RESULTING BURN TIME -- IF IT
032619,000966: # IS SHORT -- AND THE ASSOCIATED TIME OF THE ENGINE OFF
032620,000967: # SIGNAL
032621,000968:
032622,000969: # CALLING SEQUENCE VIA FINDVAC AS A NEW JOB
032623,000970:
032624,000971: # INPUT VGTIG VELOCITY TO BE GAINED VECTOR (METERS/CS) AT +7
032625,000972: # WEIGHT/G MASS OF VEHICLE IN KGM AT +16
032626,000973: # F APS ENGINE THRUST IN M.NEWTONS AT +7
032627,000974: # AND ALSO FOR RCS ENGINE
032628,000975: # MDOT RATE OF DECREASE OF VEHICLE MASS DURING ENGINE
032629,000976: # BURN IN KILOGRAMS/CS AT +3. THIS SCALING MAY
032630,000977: # REQUIRE MODIFICATION FOR SATURN BURNS.
032631,000978: # ENG1FLAG SWITCH TO DECIDE WHETHER APS OR DPS ENGINE IS USED
032632,000979: # =0 DPS
032633,000980: # =1 APS
032634,000981:
032635,000982: # OUTPUT IMPULSW ZERO FOR STEERING
032636,000983: # ONE FOR ATTITUDE HOLD
032637,000984: # NOTHROTL ZERO FOR THROTTLING
032638,000985: # ONE TO INHIBIT THROTTLING
032639,000986: # TGO TIME TO BURN IN CS
032640,000987: # THE QUANTITY M.NEWTON = 10000 NEWTONS WILL BE USED TO EXPRESS
032641,000988: # FORCE
032642,000989:
032643,000990: 27,2540 E7,1516 EBANK= TGO
032644,000991: 27,2540 COUNT* $$/40.13
032645,000992: 27,2540 06042 S40.13 TC INTPRET
032646,000993: 27,2541 43001 SETPD CLEAR
032647,000994: 27,2542 00001 00D
032648,000995: 27,2543 01266 IMPULSW # ASSUME NO STEERING UNTIL FOUND OTHERWISE
032649,000996: 27,2544 51575 VLOAD ABVAL
032650,000997: 27,2545 03701 VGTIG # VELOCITY TO BE GAINED AT +7
032651,000998: 27,2546 41325 PDDL DMP # 00D = MAG OF VGTIG AT +7
032652,000999: 27,2547 21006 4SEC(17) # CORRECT VG FOR 4 SECS OF 2 JET ULLAGE
032653,001000: 27,2550 34021 FRCS2
032654,001001: 27,2551 72471 DDV SL1 # SCALE
032655,001002: 27,2552 01244 WEIGHT/G
032656,001003: 27,2553 41421 BDSU PUSH
032657,001004: 27,2554 43014 BOFF SET
032658,001005: 27,2555 05342 APSFLAG
032659,001006: 27,2556 56626 S40.13D # FOR DPS ENGINE
032660,001007: 27,2557 02463 NOTHROTL
032661,001008: 27,2560 56345 DLOAD DDV # 00D = MAG OF VGTIG CORRECTED
![]() |
In the following line in the original program listing, +24 is crossed out and +23 written in by hand.—RSB 2003 |
032664,001011: 27,2561 16001 K1VAL # M.NEWTONS-CS AT +24
032665,001012: 27,2562 01244 WEIGHT/G
032666,001013: 27,2563 50021 BDSU BMN
![]() |
Page 769 |
032668,001015: 27,2564 00001 00D
032669,001016: 27,2565 56610 S40.131 # TGO LESS THAN 100 CS
032670,001017: 27,2566 41325 PDDL DMP # 02D = TEMP1 AT +7
032671,001018: 27,2567 03737 MDOT
032672,001019:
032673,001020: # MDOT REPRESENTS THE RATE OF DECREASE OF VEHICLE MASS DURING ENGINE
032674,001021: # BURN IN KILOGRAMS/CS. WHEN SATURN IS USED, THE SCALING MAY
032675,001022: # REQUIRE ADJUSTMENT
032676,001023:
032677,001024: 27,2570 16700 3.5SEC # 350 CS AT +14
032678,001025: 27,2571 65221 BDSU PDDL
032679,001026: 27,2572 01244 WEIGHT/G
032680,001027: 27,2573 03735 F
032681,001028: 27,2574 60405 DMP SR2 # SCALE
032682,001029: 27,2575 16702 5SECS
032683,001030: 27,2576 41471 DDV PUSH # 04D = TEMP2
032684,001031: 27,2577 51021 BDSU BPL
032685,001032: 27,2600 00003 02D
032686,001033: 27,2601 56626 S40.13D
032687,001034: 27,2602 55345 DLOAD BDDV
032688,001035: 27,2603 43205 DMP DAD
032689,001036: 27,2604 16702 5SECS
032690,001037: 27,2605 16676 1SEC2D # 100 CS AT +14
032691,001038: 27,2606 77650 GOTO
032692,001039: 27,2607 56616 S40.132
032693,001040: 27,2610 41345 S40.131 DLOAD DMP
032694,001041: 27,2611 01244 WEIGHT/G
![]() |
In the following line in the original program listing, PUSH is hand-circled.—RSB 2003 |
032697,001044: 27,2612 41542 SR1 PUSH
032698,001045: 27,2613 56215 DAD DDV
032699,001046: 27,2614 16003 K2VAL # M.NEWTON CS AT +24
![]() |
In the original printout, "CS" is scribbled out in the following line. In Luminary 210, the comment has been corrected to "KG-M/CS/CS AT +10 (SAME VALUE AS FAPS)", which is consistent with the correction.—RSB 2017 |
032704,001051: 27,2615 16005 K3VAL # M.NEWTON CS AT +10
032705,001052: 27,2616 77414 S40.132 SET EXIT
032706,001053: 27,2617 01066 IMPULSW
032707,001054: 27,2620 07262 S40.132* TC TPAGREE
032708,001055: 27,2621 30154 CA MPAC
![]() |
In the following line in the original program listing, TS TGO +1 is hand-written in the comment area.—RSB 2003 |
032711,001058: 27,2622 56001 XCH L
032712,001059: 27,2623 34755 CA ZERO
![]() |
In the original program listing, TS TGO is hand-written, seemingly between CA ZERO and DXCH TGO.—RSB 2003. |
032715,001062: 27,2624 53517 DXCH TGO
032716,001063: 27,2625 12650 TCF S40.134
032717,001064:
032718,001065: 27,2626 41345 S40.13D DLOAD DMP # FOR DPS ENGINE
032719,001066: 27,2627 00001 00D
032720,001067: 27,2630 01244 WEIGHT/G
032721,001068: 27,2631 43006 PUSH BON
032722,001069: 27,2632 05302 APSFLAG
032723,001070: 27,2633 56671 APSTGO
032724,001071: 27,2634 43071 DDV CLEAR
032725,001072: 27,2635 16007 S40.136
032726,001073: 27,2636 02663 NOTHROTL
032727,001074: 27,2637 41400 BOV PUSH
![]() |
Page 770 |
032729,001076: 27,2640 56653 S40.130V
032730,001077: 27,2641 51025 S40.127 DSU BPL
032731,001078: 27,2642 16704 6SEC # 600.0 CS AT +14
032732,001079: 27,2643 56661 S40.138
032733,001080: 27,2644 52015 DAD GOTO
032734,001081: 27,2645 16704 6SEC
032735,001082: 27,2646 56616 S40.132
032736,001083: 27,2647 77776 S40.133 EXIT
032737,001084: 27,2650 05353 S40.134 TC PHASCHNG
032738,001085: 27,2651 00003 OCT 00003
032739,001086: 27,2652 05155 TC ENDOFJOB
032740,001087: 27,2653 40545 S40.130V DLOAD SR4 # RECOMPUTE TGO IN TIME2 UNITS
032741,001088: 27,2654 77671 DDV
032742,001089: 27,2655 16011 S40.136_ # S40.136 SHIFTED LEFT 10
032743,001090: 27,2656 03517 STORE TGO
032744,001091: 27,2657 77776 EXIT
032745,001092: 27,2660 12650 TCF S40.134 # REJOIN COMMON CODING FOR RESTART PROTECT
032746,001093:
032747,001094: 27,2661 51025 S40.138 DSU BPL
032748,001095: 27,2662 16706 89SECS
032749,001096: 27,2663 56666 STORETGO
032750,001097: 27,2664 77614 SET
032751,001098: 27,2665 02463 NOTHROTL
032752,001099: 27,2666 77745 STORETGO DLOAD # LOAD TGO AT 2(14)
032753,001100: 27,2667 77776 EXIT
032754,001101: 27,2670 12620 TCF S40.132*
032755,001102:
032756,001103: 27,2671 62471 APSTGO DDV SL2
032757,001104: 27,2672 34007 FAPS
032758,001105: 27,2673 77650 GOTO
032759,001106: 27,2674 56667 STORETGO +1
032760,001107: 27,2675 00144 00000 1SEC2D 2DEC 100.0 B-14 # 100.0 CS AT +14
032761,001108: 27,2677 01274 00000 3.5SEC 2DEC 350.0 B-13 # 350 CS AT +13
032762,001109: 27,2701 00764 00000 5SECS 2DEC 500.0 B-14 # 500.0 CS AT +14
032763,001110: 27,2703 01130 00000 6SEC 2DEC 600.0 B-14 # 600.0 CS AT +14
032764,001111: 27,2705 21304 00000 89SECS 2DEC 8900.0 B-14
032765,001112:
032766,001113: # FUNCTION (1) GENERATES REQUIRED VELOCITY AND VELOCITY-TO-BE-GAINED
032767,001114: # VECTORS FOR USE DURING AIMPOINT MANEUVERS EVERY TWO
032768,001115: # COMPUTATION CYCLES (4 SECONDS).
032769,001116: # (2) UPDATES THE B VECTOR WHICH IS USED IN THE FINAL
032770,001117: # CALCULATION OF EXTRAPOLATING THE VELOCITY-TO-BE-GAINED
032771,001118: # THROUGH ONE 2-SECOND INTERVAL INTO THE FUTURE.
032772,001119:
032773,001120: # CALLING SEQ VIA FINDVAC AS NEW JOB.
032774,001121:
032775,001122: # INPUT RN - ACTIVE VEHICLE RADIUS VECTOR IN METERS AT +29.
032776,001123: # VN - ACTIVE VEHICLE VELOCITY VECTOR IN METERS/CS AT +7
![]() |
Page 771 |
032778,001125: # VRPREV - LAST COMPUTED VELOCITY REQUIRED VECTOR IN
032779,001126: # METERS/CS AT +7.
032780,001127: # TIG - TIME OF IGNITION IN CS AT +28.
032781,001128: # DLTARG - COMPUTATION CYCLE INTERVAL = 200 CS AT +28.
032782,001129: # PIPTIME - TIME OF RN AND VN IN CS AT +28.
032783,001130: # GDT/2 - HALF OF VELOCITY GAINED IN DELTA T TIME DUE TO
032784,001131: # ACCERERATION OF GRAVITY IN METERS/CS AT +7.
032785,001132: # DELVREF - CHANGE IN VELOCITY DURING LAST 2 SEC IN
032786,001133: # METERS/CS AT +7.
032787,001134:
032788,001135: # OUTPUT VGPREV - VELOCITY TO BE GAINED VECTOR IN METERS/CS AT +7.
032789,001136: # VGDISP - MAG OF VGPREV FOR DISPLAY PURPOSES.
032790,001137: # VRPREV - VELOCITY REQUIRED VECTOR IN METERS/CS AT +7.
032791,001138: # BDT - B VECTOR IN METERS/CS AT +7.
032792,001139:
032793,001140: # SUBROUTINES USED - INITVEL
032794,001141:
032795,001142: 27,2707 E7,1700 EBANK= VGPREV
032796,001143: 27,2707 COUNT* $$/S40.9
032797,001144: 27,2707 06042 S40.9 TC INTPRET
032798,001145: 27,2710 77601 SETPD
032799,001146: 27,2711 00001 00D
032800,001147: 27,2712 71214 SET DLOAD
032801,001148: 27,2713 01072 AVFLAG # SET AVFLAG FOR LEM ACTIVE
032802,001149: 27,2714 06524 HI6ZEROS
032803,001150: 27,2715 77725 PDDL
032804,001151: 27,2716 16406 EPS1
032805,001152: 27,2717 43214 BOFF DAD # EPSILON4 = 10 OR 45 DEGREES.
032806,001153: 27,2720 03745 NORMSW
032807,001154: 27,2721 56723 EPSSMALL
032808,001155: 27,2722 16410 EPS2
032809,001156: 27,2723 45006 EPSSMALL PUSH CALL
032810,001157: 27,2724 22002 HAVEGUES
032811,001158: 27,2725 77776 ENDS40.9 EXIT
032812,001159: 27,2726 05353 TC PHASCHNG
032813,001160: 27,2727 00002 OCT 2
032814,001161: 27,2730 15155 TCF ENDOFJOB
032815,001162:
032816,001163: 27,2731 51575 RASTEER1 VLOAD ABVAL
032817,001164: 27,2732 01220 RN
032818,001165: 27,2733 53744 LXC,2 SL*
032819,001166: 27,2734 02777 RTX2
032820,001167: 27,2735 57576 0,2
032821,001168: 27,2736 27715 STOVL RMAG
032822,001169: 27,2737 03444 RTARG
032823,001170: 27,2740 47051 VSU RTB
032824,001171: 27,2741 01220 RN
032825,001172: 27,2742 21725 NORMUNX1
032826,001173: 27,2743 17656 STODL IC
032827,001174: 27,2744 00045 36D # C(36D) = ABVAL(C)
032828,001175: 27,2745 53674 XAD,2 SL*
032829,001176: 27,2746 00046 X1
![]() |
Page 772 |
032831,001178: 27,2747 57576 0,2
032832,001179: 27,2750 00037 STORE 30D
032833,001180: 27,2751 41301 NORM DMP
032834,001181: 27,2752 00050 X2
032835,001182: 27,2753 03715 RMAG
032836,001183: 27,2754 57101 NORM XAD,2
032837,001184: 27,2755 00047 X1
032838,001185: 27,2756 00046 X1
032839,001186: 27,2757 77734 SXA,2
032840,001187: 27,2760 03766 MUSCALE
032841,001188: 27,2761 17725 STODL R1C # 2(+58 -X)
032842,001189: 27,2762 00037 30D
032843,001190: 27,2763 65342 SR1 PDDL
032844,001191: 27,2764 03715 RMAG
032845,001192: 27,2765 65342 SR1 PDDL
032846,001193: 27,2766 03723 RTMAG
032847,001194: 27,2767 43342 SR1 DAD
032848,001195: 27,2770 45415 DAD STADR
032849,001196: 27,2771 74044 STORE SS # SS = (R1 + R2 + C)/2
032850,001197: 27,2772 41225 DSU DMP
032851,001198: 27,2773 00037 30D
032852,001199: 27,2774 03721 MU/A
032853,001200: 27,2775 77621 BDSU
032854,001201: 27,2776 03717 MUASTEER
![]() |
In the original program listing, the following line has a hand-written
comment as follows
(S - C) μ ( μ - --------- ) 2 aOther similar handwritten comments are included below without further apology.—RSB 2003. (RSB 2016.) If you refer to the equivalent log section for Luminary 210, you'll see that the code code has remained the same but that actual program comments similar to these hand-written comments have appeared. |
032866,001213: 27,2777 45325 PDDL DSU
032867,001214: 27,3000 03733 SS
![]() |
(S-R) is written in by hand. |
032869,001216: 27,3001 03715 RMAG
032870,001217: 27,3002 70501 NORM SR1
032871,001218: 27,3003 00047 X1
![]() |
(S - R) μ (S - C) 2 ------- ( μ - --------- ) R C 2 a |
032877,001224: 27,3004 41271 DDV DMP
032878,001225: 27,3005 03725 R1C
032879,001226: 27,3006 53664 XSU,2 SL*
032880,001227: 27,3007 00046 X1
032881,001228: 27,3010 57575 1,2
032882,001229: 27,3011 77754 LXA,2
032883,001230: 27,3012 03766 MUSCALE
![]() |
2 (S - R) μ (S - C) SQRT ( --------- (μ - --------- ) ) R C 2 a |
032889,001236: 27,3013 75366 SQRT SIGN
![]() |
(GEOMSGN = SGNA) or perhaps (GEOMSGN = SGN1) |
032891,001238: 27,3014 02673 GEOMSGN
032892,001239: 27,3015 00041 STORE 32D # + OR - A
![]() |
2 (S - R) μ (S - C) A = SGNA (SQRT ( --------- (μ - ---------) ) ) R C 2 a |
032898,001245: 27,3016 41345 DLOAD DMP
032899,001246: 27,3017 03733 SS
032900,001247: 27,3020 03721 MU/A
![]() |
μ S μ - ___ 2 a |
032906,001253: 27,3021 77621 BDSU
032907,001254: 27,3022 03717 MUASTEER
032908,001255: 27,3023 45325 PDDL DSU
032909,001256: 27,3024 03733 SS
032910,001257: 27,3025 03723 RTMAG
032911,001258: 27,3026 70501 NORM SR1
032912,001259: 27,3027 00047 X1
![]() |
2 (S - R T) μ S ----------- ( μ - --- ) R C 2 a |
032918,001265: 27,3030 41271 DDV DMP
032919,001266:
![]() |
Page 773 |
032921,001268: 27,3031 03725 R1C
032922,001269: 27,3032 53664 XSU,2 SL*
032923,001270: 27,3033 00046 X1
032924,001271: 27,3034 57575 1,2
032925,001272: 27,3035 65366 SQRT PDDL # -B (NO SIGN)
032926,001273: 27,3036 03733 SS
032927,001274: 27,3037 56225 DSU DDV
032928,001275: 27,3040 00037 30D
032929,001276: 27,3041 03733 SS
032930,001277: 27,3042 41566 SQRT PUSH
![]() |
ASIN ( SQRT (S-C)/S ) ) |
032932,001279: 27,3043 67542 SR1 ASIN
032933,001280: 27,3044 65205 DMP PDDL
032934,001281: 27,3045 17216 2PI+3
032935,001282: 27,3046 56325 PDDL DDV
032936,001283: 27,3047 00037 30D
032937,001284: 27,3050 03733 SS
![]() |
SQRT (C/S) SQRT ( (S-C)/S ) = |
032939,001286: 27,3051 77600 BOV
032940,001287: 27,3052 57053 +1
![]() |
SQRT(C/S) SQRT((S-C)/S) = (1/S) SQRT(C(S-C)) |
032942,001289: 27,3053 41366 SQRT DMP
032943,001290: 27,3054 44242 SR3 BDSU
![]() |
SGNA( ARCSIN( SQRT((S-C)/S) ) - (1/S) SQRT(C(S-C)) ) |
032945,001292: 27,3055 65365 SIGN PDDL
032946,001293: 27,3056 02673 GEOMSGN
032947,001294: 27,3057 17216 2PI+3
![]() |
(C/S) (PI/2 - SGNA( empty, aligned with the contents of SGNA above ) ) |
032949,001296: 27,3060 45302 SR2 DSU
032950,001297: 27,3061 65205 DMP PDDL
032951,001298: 27,3062 03733 SS
032952,001299: 27,3063 03733 SS
![]() |
S SQRT(S) = SQRT(S3) |
032954,001301: 27,3064 75442 SR3 SQRT
032955,001302: 27,3065 77605 DMP
032956,001303: 27,3066 52525 PDDL SL3
032957,001304: 27,3067 03717 MUASTEER
![]() |
3 S SQRT(---) 2 μTMIN ENERGY |
032965,001312: 27,3070 55366 SQRT BDDV
032966,001313: 27,3071 43225 DSU DAD
032967,001314: 27,3072 03631 TPASS4
032968,001315: 27,3073 01234 PIPTIME
![]() |
(tM - t2 ) |
032970,001317: 27,3074 14037 STODL 30D
032971,001318: 27,3075 77765 SIGN
032972,001319: 27,3076 00037 30D # B WITH SIGN
032973,001320: 27,3077 00037 STORE 30D
032974,001321: 27,3100 77214 BON VLOAD
032975,001322: 27,3101 03705 NORMSW
032976,001323: 27,3102 57123 180MESS
032977,001324: 27,3103 03656 IC
032978,001325: 27,3104 53451 VSU UNIT
032979,001326: 27,3105 03537 UNIT/R/
![]() |
UNCM |
032981,001328: 27,3106 63361 VXSC PDVL
![]() |
B UNCM |
032983,001330: 27,3107 00037 30D
032984,001331: 27,3110 03656 IC
032985,001332: 27,3111 53455 VAD UNIT
![]() |
VNCP |
032987,001334: 27,3112 03537 UNIT/R/
![]() |
Page 774 |
032989,001336:
![]() |
A UNCP |
032991,001338: 27,3113 53361 GETVRVG1 VXSC VAD
032992,001339: 27,3114 00041 32D
032993,001340: 27,3115 53744 GETVRVG2 LXC,2 VSR*
032994,001341: 27,3116 02777 RTX2
032995,001342: 27,3117 57177 0 -1,2
032996,001343: 27,3120 02337 STORE VIPRIME
032997,001344: 27,3121 77650 GOTO
032998,001345: 27,3122 57166 ASTREND -2
032999,001346: 27,3123 50375 180MESS VLOAD DOT
033000,001347: 27,3124 03656 IC
033001,001348: 27,3125 03537 UNIT/R/
033002,001349: 27,3126 77240 BMN VLOAD
033003,001350: 27,3127 57146 NEGPROD
033004,001351: 27,3130 03656 IC
033005,001352: 27,3131 63362 VSR1 PDVL
033006,001353: 27,3132 03537 UNIT/R/
033007,001354: 27,3133 53362 VSR1 VAD
033008,001355: 27,3134 77656 UNIT
033009,001356: 27,3135 57406 PUSH VCOMP # FOR A
033010,001357: 27,3136 75235 VXV SIGN
033011,001358: 27,3137 02674 UN
033012,001359: 27,3140 02673 GEOMSGN
033013,001360: 27,3141 74256 UNIT VXSC
033014,001361: 27,3142 00037 30D
033015,001362: 27,3143 77715 PDVL # UNIT(IC-IR) +-B
033016,001363: 27,3144 77650 GOTO
033017,001364: 27,3145 57113 GETVRVG1
033018,001365: 27,3146 74575 NEGPROD VLOAD VSR1
033019,001366: 27,3147 03537 UNIT/R/
033020,001367: 27,3150 74515 PDVL VSR1
033021,001368: 27,3151 03656 IC
033022,001369: 27,3152 53451 VSU UNIT
033023,001370: 27,3153 77606 PUSH
033024,001371: 27,3154 75235 VXV SIGN
033025,001372: 27,3155 02674 UN # FOR B
033026,001373: 27,3156 02673 GEOMSGN
033027,001374: 27,3157 74256 UNIT VXSC
033028,001375: 27,3160 00041 32D
033029,001376: 27,3161 77715 PDVL
033030,001377: 27,3162 53361 VXSC VAD
033031,001378: 27,3163 00037 30D
033032,001379: 27,3164 77650 GOTO
033033,001380: 27,3165 57115 GETVRVG2
033034,001381: 27,3166 77651 VSU
033035,001382: 27,3167 03553 VN1
033036,001383: 27,3170 02366 ASTREND STORE DELVEET3
033037,001384: 27,3171 53135 FIRSTTME SLOAD BZE
033038,001385: 27,3172 03000 RTX2
033039,001386: 27,3173 57177 GETGOBL
033040,001387: 27,3174 52175 VLOAD GOTO # NO OBLATENESS COMP IF IN MOON SPHERE
![]() |
Page 775 |
033042,001389: 27,3175 02366 DELVEET3
033043,001390: 27,3176 57212 NOGOBL
![]() |
In the original program listing, VLOAD UNIT RN below is circled, and connected to the comment after 34D ("34D = /RN/ etc.") with an arrow.—RSB 2003. |
033046,001393: 27,3177 53575 GETGOBL VLOAD UNIT # CALCULATE OBLATENESS TERM.
033047,001394: 27,3200 01220 RN
033048,001395: 27,3201 45345 DLOAD DSU
033049,001396: 27,3202 01234 PIPTIME # 2
033050,001397: 27,3203 03512 GOBLTIME # G = -(MU/R )(UNITGOBL)(T-TIG)
033051,001398: 27,3204 56205 DMP DDV # OBL
033052,001399: 27,3205 16023 EARTHMU
033053,001400: 27,3206 00043 34D # 34D = /RN/ (2) FROM UNIT OPERATION.
033054,001401: 27,3207 53361 VXSC VAD
033055,001402: 27,3210 03521 UNITGOBL
033056,001403: 27,3211 02366 DELVEET3 # OUTPUT FROM INITVEL VG = VR - VN
033057,001404: 27,3212 02366 NOGOBL STORE DELVEET3 # VG = VR + GOBL - VN
033058,001405: 27,3213 77650 GOTO
033059,001406: 27,3214 56455 VGAIN*
033060,001407:
033061,001408: 27,3215 31103 36652 2PI+3 2DEC 3.141592653 B-2
033062,001409:
![]() |
Page 776 |
033064,001411: # TRIMGIMB (FORMERLY S40.6)
033065,001412: # MOD 0 24 FEB 67 PETER ADLER
033066,001413:
033067,001414: # FUNCTION:
033068,001415: # TRIMS DPS ENGINE TO MINIMIZE THRUST/CG OFFSET. ENGINE IS GIMBALLED TO FULL + PITCH AND + ROLL (TO LOCK)
033069,001416: # FOR REFERENCE AND IS THEN BROUGHT BACK TO TRIM POSITION BY RUNNING FOR THE PROPER TIMES (TO BE
033070,001417: # SPECIFIED BY GAEC) IN - PITCH AND - ROLL.
033071,001418:
033072,001419: # CALLING SEQUENCE:
033073,001420: # VIA WAITLIST FROM R03
033074,001421:
033075,001422: # INPUT:
033076,001423: # PITTIME TIME TO RUN FROM FULL + PITCH TO TRIM (CS)
033077,001424: # ROLLTIME TIME TO RUN FROM FULL + ROLL TO TRIM (CS)
033078,001425:
033079,001426: # SUBROUTINES USED:
033080,001427: # WAITLIST, FIXDELAY, VARDELAY, FLAGUP, FLAGDOWN, NOVAC
033081,001428:
033082,001429: 27,3217 COUNT* $$/S40.6
033083,001430: 27,3217 E6,1401 EBANK= ROLLTIME # OCTAL MASKS: PRIO5=05000 EBANK5=02400
033084,001431:
033085,001432: 27,3217 05516 TRIMGIMB TC DOWNFLAG # GMBDRVSW FLAG IS SET WHEN EITHER ROLL OR
033086,001433: 27,3220 00137 ADRES GMBDRVSW # PITCH IS COMPLETED, WHICHEVER IS FIRST.
033087,001434:
033088,001435: 27,3221 45017 CS PRIO5 # TURN OFF - PITCH, - ROLL, IF ON.
033089,001436: 27,3222 00006 EXTEND
033090,001437: 27,3223 03012 WAND CHAN12
033091,001438: 27,3224 35014 CAF EBANK5 # TURN ON + PITCH, + ROLL.
033092,001439: 27,3225 00006 EXTEND
033093,001440: 27,3226 05012 WOR CHAN12
033094,001441: 27,3227 05221 TC FIXDELAY # WAIT ONE MINUTE TO MAKE SURE ENGINE IS
033095,001442: 27,3230 13560 DEC 6000 B-14 # AT FULL + PITCH AND FULL + ROLL
033096,001443: 27,3231 45014 CS EBANK5 # TURN OFF + PITCH, + ROLL.
033097,001444: 27,3232 00006 EXTEND
033098,001445: 27,3233 03012 WAND CHAN12
033099,001446: 27,3234 35017 CAF PRIO5 # TURN ON - PITCH, - ROLL.
033100,001447: 27,3235 00006 EXTEND
033101,001448: 27,3236 05012 WOR CHAN12
033102,001449: 27,3237 31402 CAE PITTIME # GET TIME TO SHUT OFF - PITCH AND SET UP
033103,001450: 27,3240 05173 TC TWIDDLE # TWIDDLE-TASK TO TURN IT OFF THEN
033104,001451: 27,3241 03260 ADRES PITCHOFF
033105,001452:
033106,001453: 27,3242 31401 CAE ROLLTIME # GET TIME TO SHUT OFF - ROLL AND GO AWAY
033107,001454: 27,3243 05224 TC VARDELAY # UNTIL THEN
033108,001455: 27,3244 44740 CS BIT12
033109,001456: 27,3245 00006 EXTEND
033110,001457: 27,3246 03012 WAND CHAN12 # SHUT OFF ROLL
033111,001458: 27,3247 30102 ROLLOVER CA FLAGWRD6 # IF HERE INLINE (ROLL DONE) IS PITCH DONE
033112,001459: 27,3250 74742 MASK GMBDRBIT # IF HERE FROM PITCHOFF, IS ROLL DONE?
033113,001460: 27,3251 00006 EXTEND
033114,001461: 27,3252 13264 BZF PITCHOFF +4 # NO. SET FLAG, ROLL OR PITCH DONE.
033115,001462: 27,3253 34737 CAF PRIO10 # RETURN TO R03
033116,001463: 27,3254 05072 TC NOVAC
033117,001464: 27,3255 E7,1471 EBANK= WHOCARES
![]() |
Page 777 |
033119,001466: 27,3255 02325 02067 2CADR TRIMDONE
033120,001467:
033121,001468: 27,3257 05261 TC TASKOVER
033122,001469: 27,3260 44742 PITCHOFF CS BIT10
033123,001470: 27,3261 00006 EXTEND
033124,001471: 27,3262 03012 WAND CHAN12 # SHUT OFF PITCH
033125,001472: 27,3263 13247 TCF ROLLOVER # SEE IF ROLL HAS FINISHED ALSO.
033126,001473: 27,3264 05504 TC UPFLAG # ROLL DONE; OR PITCH DONE; BUT NOT BOTH.
033127,001474: 27,3265 00137 ADRES GMBDRVSW
033128,001475: 27,3266 05261 TC TASKOVER
033129,001476:
![]() |
Page 778 |
033131,001478: # SUBROUTINE NAME: S41.1 MOD. NO. 0 DATE: FEBRUARY 28, 1967
033132,001479: # MOD. NO. 1 DATE: JANUARY 23, 1968: BY PETER ADLER (MIT/IL)
033133,001480:
033134,001481: # AUTHOR: JONATHAN D. ADDELSTON (ADAMS ASSOCIATES)
033135,001482:
033136,001483: # S41.1 PERFORMS THE COORDINATE SYSTEM TRANFORMATION FROM THE REFERENCE FRAME TO THE BODY OF THE LM.
033137,001484: # SPECIFICALLY, IT IS USED TO TRANSFORM A VELOCITY (SCALED AT 2(+7) METERS/CENTISECOND) FROM REFERENCE TO LM AXIS
033138,001485: # COORDINATES. FIRST THE VECTOR IS TRANSFORMED TO THE STABLE MEMBER COORDINATES BY THE MATRIX REFSMMAT. THIS
033139,001486: # LEAVES THE VECTOR IN MPAC, SCALED AT 2(+8) METERS/CENTISECOND. THEN
033140,001487: # THE SUBROUTINE CDUTRIG IS CALLED TO SET UP THE DOUBLE-PRECISION CDU VECTOR ALONG WITH ITS SINES AND COSINES.
033141,001488: # THE VECTOR IS THEN TRANSFORMED FROM STABLE MEMBER COORDINATES TO SPACECRAFT (OR LM) COORDINATES BY THE
033142,001489: # SUBROUTINE *SMNB*. FINALLY( THE VECTOR IS RESCALED TO 2(+7) METERS/CENTISECOND, AND CONTROL IS RETURNED TO THE
033143,001490: # CALLER WITH C(MPAC) = VELOCITY(LM).
033144,001491:
033145,001492: # CALLING SEQUENCE:
033146,001493: # L VLOAD CALL
033147,001494: # L +1 VELOCITY(REF) SCALED AT 2(+7) M/CS IN REFERENCE COORDS.
033148,001495: # L +2 S41.1
033149,001496: # L +3 STORE VELOCITY(LM) SCALED AT 2(+7) M/CS IN LM BODY AXIS SYS.
033150,001497:
033151,001498: # SUBROUTINES CALLED:
033152,001499: # 1. CDUTRIG,
033153,001500: # WHICH CALLS CDULOGIC.
033154,001501: # 2. *SMNB*
033155,001502:
033156,001503: # NORMAL RETURN: L +3 (SEE CALLING SEQUENCE, ABOVE.)
033157,001504:
033158,001505: # ALARM/ABORT MODES: NONE.
033159,001506:
033160,001507: # RESTART PROTECTION: NONE.
033161,001508:
![]() |
Page 779 |
033163,001510: # INPUT:
033164,001511: # 1. REFSMMAT.
033165,001512: # 2. CDUX, CDUY, CDUZ.
033166,001513: # 3. VELOCITY (REF) IN MPAC.
033167,001514:
033168,001515: # OUTPUT:
033169,001516: # 1. CDUSPOT: DOUBLE PRECISION CDU VECTOR, ORDERED Y,Z,X.
033170,001517: # 2. SINCDU: HALF SINES OF CDUSPOT COMPONENTS.
033171,001518: # 3. COSCDU: HALF COSINES OF CDUSPOT COMPONENTS.
033172,001519: # 4. MPAC: VELOCITY(LM) (SCALED AT 2(+7) METERS/CENTISECOND)
033173,001520:
033174,001521: # DEBRIS: NONE.
033175,001522:
033176,001523: # CHECKOUT STATUS: CODED.
033177,001524:
033178,001525: 27,3267 COUNT* $$/S41.1
033179,001526: 27,3267 76521 S41.1 MXV VSL1 # CONVERT VECTOR IN MPAC FROM REF AT 2(+7)
033180,001527: 27,3270 01734 REFSMMAT # TO SM AND RESCALE DUE TO HALFUNIT MATRIX
033181,001528: 27,3271 77650 GOTO # CONVERT TO BODY AT 2(+7) USING PRESENT
033182,001529: 27,3272 47650 CDU*SMNB # CDU ANGLES. CDU*SMNB WILL RETURN
033183,001530: # VIA RVQ TO THE CALLER OF S41.1
End of include-file P40-P47.agc. Parent file is MAIN.agc