Source Code
![]() |
This is a reconstruction of the AGC program Luminary 99 Rev 0. It was the
second release of the Lunar Module flight software targeted for use in Apollo 11, after Luminary 97.
A bug (which had been around since at least Apollo 10, Luminary 69) was
discovered in Rev 0 shortly before the Apollo 11 flight, resulting in a last minute
revision into Rev 1,
which is what actually flew rather than
the Rev 0 presented here. A hardcopy of Rev 0 is known to
exist — it belonged to AGC developer Allan Klumpp for many years — but
unfortunately the Virtual AGC Project has not had access to that hardcopy. Thus
the code you see here had been reconstructed (we believe accurately) rather than
transcribed. The first step of the reconstruction of the Rev 0 source code was
the transcription of the Rev 1 source code from a hardcopy in the MIT Museum collection.
The process of reverting the active portion of the source code (i.e., other than
program comments) from Rev 1 to Rev 0 was very minor, consisting
only of moving the position of the STARTSB1 label in
FRESH START AND RESTART. Allan had previously given
us the checksums of the memory banks of Rev 0, and we have verified the program presented here has checksums
identical to all banks of Allan's listing of Rev 0. The notations on Allan's Rev 0 program listing read,
in part:GAP: ASSEMBLE REVISION 099 OF AGC PROGRAM LUMINARY BY NASA 2021112-051 A single program comment is known to differ between Rev 0 and Rev 1, but these are harder to reconstruct and verify than changes to the active portion of the code. Thus it is possible that there are additional differences between the program comments in Rev 0 and Rev 1 that are unknown to us, and therefore are not reflected in the code presented here. |
033206,000002: ## Copyright: Public domain.
033207,000003: ## Filename: P40-P47.agc
033208,000004: ## Purpose: Part of the reconstructed source code for LMY99 Rev 0,
033209,000005: ## otherwise known as Luminary Rev 99, the second release
033210,000006: ## of the Apollo Guidance Computer (AGC) software for Apollo 11.
033211,000007: ## It differs from LMY99 Rev 1 (the flown version) only in the
033212,000008: ## placement of a single label. The corrections shown here have
033213,000009: ## been verified to have the same bank checksums as AGC developer
033214,000010: ## Allan Klumpp's copy of Luminary Rev 99, and so are believed
033215,000011: ## to be accurate. This file is intended to be a faithful
033216,000012: ## recreation, except that the code format has been changed to
033217,000013: ## conform to the requirements of the yaYUL assembler rather than
033218,000014: ## the original YUL assembler.
033219,000015: ##
033220,000016: ## Assembler: yaYUL
033221,000017: ## Contact: Ron Burkey <info@sandroid.org>.
033222,000018: ## Website: www.ibiblio.org/apollo.
033223,000019: ## Pages: 752-784
033224,000020: ## Mod history: 2009-05-19 RSB Adapted from the corresponding
033225,000021: ## Luminary131 file, using page
033226,000022: ## images from Luminary 1A.
033227,000023: ## 2011-01-06 JL Fixed interpretive indentation.
033228,000024: ## 2016-12-13 RSB GOTOP00H -> GOTOPOOH
033229,000025: ## 2016-12-15 RSB Proofed text comments with octopus/ProoferComments
033230,000026: ## and corrected the errors found.
033231,000027: ## 2017-03-10 RSB Comment-text fixes noted in proofing Luminary 116.
033232,000028: ## 2017-03-16 RSB Comment-text fixes identified in 5-way
033233,000029: ## side-by-side diff of Luminary 69/99/116/131/210.
033234,000030: ## 2017-08-01 MAS Created from LMY99 Rev 1.
033235,000031: ## 2017-08-16 RSB Fixed comment typo identified in AP11ROPE.
033236,000032: ## 2017-08-26 MAS Fixed an incorrect label found while transcribing
033237,000033: ## Zerlina 56 (it was unreferenced so caused no errors).
033238,000034:
033239,000035: ## This source code has been transcribed or otherwise adapted from
033240,000036: ## digitized images of a hardcopy from the MIT Museum. The digitization
033241,000037: ## was performed by Paul Fjeld, and arranged for by Deborah Douglas of
033242,000038: ## the Museum. Many thanks to both. The images (with suitable reduction
033243,000039: ## in storage size and consequent reduction in image quality as well) are
033244,000040: ## available online at www.ibiblio.org/apollo. If for some reason you
033245,000041: ## find that the images are illegible, contact me at info@sandroid.org
033246,000042: ## about getting access to the (much) higher-quality images which Paul
033247,000043: ## actually created.
033248,000044: ##
033249,000045: ## The code has been modified to match LMY99 Revision 0, otherwise
033250,000046: ## known as Luminary Revision 99, the Apollo 11 software release preceeding
033251,000047: ## the listing from which it was transcribed. It has been verified to
033252,000048: ## contain the same bank checksums as AGC developer Allan Klumpp's listing
033253,000049: ## of Luminary Revision 99 (for which we do not have scans).
033254,000050: ##
033255,000051: ## Notations on Allan Klumpp's listing read, in part:
033256,000052: ##
033257,000053: ## ASSEMBLE REVISION 099 OF AGC PROGRAM LUMINARY BY NASA 2021112-51
033258,000054:
![]() |
Page 752 |
033260,000056: # PROGRAM DESCRIPTION P40BOTH DECEMBER 22, 1966
033261,000057: # MOD 03 BY PETER ADLER MARCH 3, 1967
033262,000058: # CALLED VIA JOB FROM V37E
033263,000059:
033264,000060: # FUNCTIONAL DESCRIPTION
033265,000061:
033266,000062: # 1) TO COMPUTE A PREFERRED IMU ORIENTATION AND A PREFERRED VEHICLE ATTITUDE FOR A LM DPS
033267,000063: # THRUSTING MANEUVER.
![]() |
There is no item #2 in the original program listing — RSB 2009. |
033269,000065: # 3) TO DO THE VEHICLE MANEUVER TO THE THRUSTING ATTITUDE.
033270,000066: # 4) TO CONTROL THE PGNCS DURING COUNTDOWN, IGNITION, THRUSTING, AND THRUST TERMINATION OF A
033271,000067: # PGNCS CONTROLLED DPS MANEUVER.
033272,000068: # 5) IN POSTBURN--ZERO RENDEZVOUS COUNTER, MAINTAIN VG CALCULATIONS FOR POSSIBLE RCS MANEUVER,
033273,000069: # SET MAXIMUM DEADBAND IN DAP, RESET STEERLAW CSTEER TO ZERO.
033274,000070:
033275,000071: # NOTE: P42, WHICH IS IN THIS LOG SECTION, DOES THE SAME FOR AN APS BURN, AND P41 DOES 1-3 FOR
033276,000072: # RCS PLUS DISPLAYS PARAMETERS FOR MANUAL CONTROL.
033277,000073:
033278,000074: # SUBROUTINES USED
033279,000075:
033280,000076: # R02 IMU STATUS CHECK
033281,000077: # S40.1 COMPUTATION OF THRUST DIRECTION
033282,000078: # S40.13 LENGTH OF BURN
033283,000079: # S40.2,3 PREFERRED IMU ORIENATTION
033284,000080: # S40.8 X PRODUCT STEERING
033285,000081: # S40.9 LAMBERT VTOGAIN
033286,000082: # R60LEM ATTITUDE MANEUVER
033287,000083: # LEMPREC EXTRAPOLATE STATE VECTOR
033288,000084: # PREREAD AVERAGE G, SERVICER
033289,000085: # ALLCOAST DAP COASTING INITIALIZATION
033290,000086: # CLOKTASK ERGO CLOCKJOB -- COUNT DOWN
033291,000087: # PHASCHNG, INTPRET, FLAGUP, FLAGDOWN, WAITLIST, LONGCALL, GOFLASH, GOFLASHR, GOPERF1, ALARM,
033292,000088: # PRIOLARM, GOTOPOOH, ENDOFJOB, BANKCALL, SETMAXDB, SETMINDB, CHECKMM, FLATOUT, OUTFLAT,
033293,000089: # KILLTASK, SGNAGREE, TPAGREE, ETC.
033294,000090:
033295,000091: # RESTARTS VIA GROUP 4
033296,000092:
033297,000093: # DISPLAYS
033298,000094:
033299,000095: # V50N25 203 A/P TO PGNCS, AUTOTHROTTLE MODE, AUTO ATTITUDE CONTROL
033300,000096: # V06N40 TTI, VG, DELTAVM (DISPLAYED ONCE/SECOND BY CLOKTASK)
033301,000097: # V50N99 PLEASE PERFORM ENGINE ON ENABLE
033302,000098: # V06N40 TG (TIME TO GO TO CUTOFF), VG, DELTAVM -- ONCE/SECOND
033303,000099: # V16N40 FINAL VALUES OF TG, VG, DELTAVM
033304,000100: # V16N85 COMP OF VG (BODY AXES) FOR POSS. RCS MANUAL MANEUVER
033305,000101: # V05N09 POSSIBLE ALARMS
033306,000102: # V50N07 PLEASE SELECT P00
033307,000103:
![]() |
Page 753 |
033309,000105: # VIA R30
033310,000106:
033311,000107: # V06N44 HAPO, PERI, TFF
033312,000108: # V06N35 TIME TO PERIGEE, HMS
033313,000109:
033314,000110: # ALARM OR ABORT EXIT MODES
033315,000111:
033316,000112: # PROGRAM ALARM, FLASHING DISPLAY OF ALARM CODE 1706 IF P40 SELECTED WITH DESCENT UNIT STAGED.
033317,000113: # V34E (TERMINATE) IS THE ONLY RESPONSE ACCEPTED. TC GOTOPOOH.
033318,000114:
033319,000115: # PROGRAM ALARM, FLASH CODE 1703: TIG LESS THAN 45 SECS AWAY. V34E= GOTOPOOH OR V33E= SLIP
033320,000116: # TIG BY 45 SECS.
033321,000117:
033322,000118: # ERASABLE INITIALIZATION
033323,000119:
033324,000120: # DEBRIS
033325,000121:
033326,000122: # OUTPUT
033327,000123:
033328,000124: # SEE SUBROUTINES E.G.: S40.1, S40.2,3, S40.13, S40.8, S40.9, TRIMGIMB
033329,000125: # XDELVFLG = 1 FOR EXT DELV COMPUTATION
033330,000126: # = 0 FOR AIMPT (LAMBERT) COMP
033331,000127:
033332,000128: 27,2246 COUNT* $$/P40
033333,000129: 27,2246 E7,1455 EBANK= WHICH
033334,000130:
033335,000131: 36,3147 BANK 36
033336,000132: 36,2000 SETLOC P40S
033337,000133: 36,2000 BANK
033338,000134:
033339,000135: 36,3147 05353 P40LM TC PHASCHNG
033340,000136: 36,3150 04024 OCT 04024
033341,000137:
033342,000138: 36,3151 33133 CAF P40ADRES # INITIALIZATION FOR BURNBABY.
033343,000139: 36,3152 55455 TS WHICH
033344,000140:
033345,000141: 36,3153 30106 CA FLGWRD10
033346,000142: 36,3154 74737 MASK APSFLBIT
033347,000143: 36,3155 10000 CCS A
033348,000144: 36,3156 13121 TCF P40ALM
033349,000145: 36,3157 04616 TC BANKCALL # GO DO IMU STATUS CHECK ROUTINE.
033350,000146: 36,3160 11254 CADR R02BOTH
033351,000147:
033352,000148: 36,3161 40111 CS DAPBOOLS # INITIALIZE DVMON
033353,000149: 36,3162 74737 MASK CSMDOCKD
033354,000150: 36,3163 10000 CCS A
033355,000151: 36,3164 32020 CAF THRESH1
033356,000152: 36,3165 62021 AD THRESH3
033357,000153: 36,3166 55251 TS DVTHRUSH
033358,000154: 36,3167 34751 CAF FOUR
033359,000155: 36,3170 55515 TS DVCNTR
![]() |
Page 754 |
033361,000157: 36,3171 06037 TC INTPRET # LOAD CONSTANTS FOR DPS BURN
033362,000158: 36,3172 43175 VLOAD CLEAR # LOAD F, MDOT, TDECAY
033363,000159: 36,3173 34001 FDPS
033364,000160: 36,3174 02663 NOTHROTL
033365,000161: 36,3175 03735 STORE F
033366,000162: 36,3176 77735 SLOAD
033367,000163: 36,3177 26002 DPSVEX
033368,000164: 36,3200 70476 P40IN DCOMP SR1
033369,000165: 36,3201 37743 STCALL VEX # LOAD EXHAUST VELOCITY FOR TGO COMP.
033370,000166: 36,3202 56246 S40.1 # COMPUTES UT AND VGTIG
033371,000167: 36,3203 77624 CALL
033372,000168: 36,3204 56413 S40.2,3 # COMPUTES PREFERRED IMU ORIENTATION
033373,000169: 36,3205 77776 EXIT
033374,000170:
033375,000171: 36,3206 00004 INHINT
033376,000172: 36,3207 04674 TC IBNKCALL
033377,000173: 36,3210 40142 CADR PFLITEDB # ZERO ATTITUDE ERRORS, SET DB TO ONE DEG.
033378,000174:
033379,000175: 36,3211 03213 TC P40SXT4
033380,000176:
033381,000177: # ***********************
033382,000178:
033383,000179: 36,3212 12126 TCF BURNBABY
033384,000180:
033385,000181: # ***********************
033386,000182:
033387,000183: 36,3213 00006 P40SXT4 EXTEND
033388,000184: 36,3214 23142 QXCH P40/RET
033389,000185: 36,3215 00003 P41MANU RELINT
033390,000186:
033391,000187: 36,3216 05516 TC DOWNFLAG # CLEAR 3AXISFLG -- R60 WILL USE VECPOINT.
033392,000188: 36,3217 00124 ADRES 3AXISFLG
033393,000189:
033394,000190: 36,3220 04616 TC BANKCALL
033395,000191: 36,3221 54123 CADR R60LEM # DO ATTITUDE MANEUVER ROUTINE
033396,000192: 36,3222 01142 TC P40/RET
033397,000193:
033398,000194: 36,3223 E7,1462 EBANK= TRKMKCNT
033399,000195: 36,3223 30005 POSTBURN CA Z
033400,000196: 36,3224 55163 TS DISPDEX
033401,000197: 36,3225 00006 EXTEND
033402,000198: 36,3226 32056 DCA ACADN85
033403,000199: 36,3227 53253 DXCH AVEGEXIT
033404,000200: 36,3230 33760 CAF V16N40
033405,000201: 36,3231 04616 TC BANKCALL
033406,000202: 36,3232 20635 CADR GOFLASHR
033407,000203: 36,3233 03256 TC TERM40
033408,000204: 36,3234 13241 TCF TIGNOW
033409,000205: 36,3235 03223 TC POSTBURN
![]() |
Page 755 |
033411,000207: 36,3236 05353 P40PHS1 TC PHASCHNG
033412,000208: 36,3237 00014 OCT 00014
033413,000209: 36,3240 15155 TCF ENDOFJOB
033414,000210:
033415,000211: 36,3241 00004 TIGNOW INHINT
033416,000212: 36,3242 04674 TC IBNKCALL
033417,000213: 36,3243 40153 CADR ZATTEROR
033418,000214: 36,3244 04674 TC IBNKCALL
033419,000215: 36,3245 40140 CADR SETMINDB
033420,000216: 36,3246 00003 RELINT
033421,000217: 36,3247 33761 CAF V16N85B
033422,000218: 36,3250 04616 TC BANKCALL
033423,000219: 36,3251 20462 CADR REFLASHR
033424,000220: 36,3252 03256 TC TERM40
033425,000221: 36,3253 13256 TCF TERM40
033426,000222: 36,3254 03247 TC -5
033427,000223:
033428,000224: 36,3255 13236 TCF P40PHS1
033429,000225:
033430,000226: 36,3256 00006 TERM40 EXTEND
033431,000227: 36,3257 32106 DCA SERVCADR
033432,000228: 36,3260 53253 DXCH AVEGEXIT
033433,000229: 36,3261 34755 CAF ZERO
033434,000230: 36,3262 55462 TS TRKMKCNT # ZERO RENDZVS CNTERS
033435,000231: 36,3263 30005 CA Z
033436,000232: 36,3264 55163 TS DISPDEX
033437,000233: 36,3265 00004 INHINT
033438,000234: 36,3266 04674 TC IBNKCALL
033439,000235: 36,3267 40123 CADR RESTORDB
033440,000236: 36,3270 00003 RELINT
033441,000237: 36,3271 06001 TC GOTOPOOH
033442,000238:
033443,000239: 36,3272 E7,1455 EBANK= WHICH
033444,000240: 36,3272 COUNT* $$/P41
033445,000241: 36,3272 33134 P41LM CAF P41ADRES # INITIALIZATION FOR BURNBABY
033446,000242: 36,3273 55455 TS WHICH
033447,000243:
033448,000244: 36,3274 04616 TC BANKCALL
033449,000245: 36,3275 11254 CADR R02BOTH
033450,000246:
033451,000247: 36,3276 06037 TC INTPRET # BOTH LM
033452,000248: 36,3277 71214 BON DLOAD # IF NJETSFLAG IS SET, LOAD 2 JET F
033453,000249: 36,3300 00700 NJETSFLG
033454,000250: 36,3301 75305 P41FJET1
033455,000251: 36,3302 34015 FRCS4 # IF NJETSFLAG IS CLEAR, LOAD 4 JET F
033456,000252:
033457,000253: 36,3303 37735 P41FJET STCALL F
033458,000254: 36,3304 75310 P41IN
033459,000255: 36,3305 77745 P41FJET1 DLOAD
![]() |
Page 756 |
033461,000257: 36,3306 34017 FRCS2
033462,000258: 36,3307 03735 STORE F
033463,000259:
033464,000260: 36,3310 77624 P41IN CALL
033465,000261: 36,3311 56246 S40.1 # BOTH
033466,000262: 36,3312 77624 P41NORM CALL
033467,000263: 36,3313 56413 S40.2,3 # CALCULATE PREFERRED IMU ORIENTATION AND
033468,000264: 36,3314 77776 EXIT # SET PFRATFLG.
033469,000265:
033470,000266: 36,3315 00004 INHINT
033471,000267: 36,3316 04674 TC IBNKCALL
033472,000268: 36,3317 40153 CADR ZATTEROR # ZERO ATTITUDE ERRORS
033473,000269: 36,3320 04674 TC IBNKCALL
033474,000270: 36,3321 40140 CADR SETMINDB # SET 0.3 DEGREE DEADBAND
033475,000271: 36,3322 03213 TC P40SXT4
033476,000272:
033477,000273: 36,3323 06037 TC INTPRET
033478,000274: 36,3324 45175 VLOAD CALL # TRANSFORM VELOCITY-TO-BE-GAINED AT TIG
033479,000275: 36,3325 03701 VGTIG # FROM REFERENCE COORDINATES TO LM BODY-
033480,000276: 36,3326 57267 S41.1 # AXIS COORDINATES FOR V16N85 DISPLAY.
033481,000277: 36,3327 03502 STORE VGBODY # (SCALED AT 2 (+7) METERS/CENTISECOND)
033482,000278: 36,3330 77776 EXIT
033483,000279:
033484,000280: 36,3331 33761 CAF V16N85B
033485,000281: 36,3332 04616 TC BANKCALL
033486,000282: 36,3333 20446 CADR GODSPRET
033487,000283:
033488,000284: 36,3334 35017 CAF PRIO5
033489,000285: 36,3335 55163 TS DISPDEX # FOR SAFETY ONLY
033490,000286: 36,3336 05105 TC FINDVAC
033491,000287: 36,3337 E7,1700 EBANK= VGPREV
033492,000288: 36,3337 03361 74067 2CADR DYNMDISP
033493,000289:
033494,000290: 36,3341 05327 TC 2PHSCHNG
033495,000291: 36,3342 00076 OCT 00076 # GROUP 6 RESTARTS AT REDO6.7
033496,000292: 36,3343 04024 OCT 04024 # GROUP 4 RESTARTS HERE
033497,000293:
033498,000294: # ***********************
033499,000295:
033500,000296: 36,3344 12135 TCF B*RNB*B*
033501,000297:
033502,000298: # ***********************
033503,000299:
033504,000300: 36,3345 34777 BLNKWAIT CAF 1SEC
033505,000301: 36,3346 04616 TC BANKCALL
033506,000302: 36,3347 01735 CADR DELAYJOB
033507,000303:
033508,000304: 36,3350 31163 REDO6.7 CA DISPDEX # ON A RESTART, DO NOT PUT UP DISPLAY IF
033509,000305: 36,3351 64752 AD TWO # BLANKING (BETWEEN TIG-35 AND TIG-30)
033510,000306:
033511,000307: # ***********************
![]() |
Page 757 |
033513,000309:
033514,000310: 36,3352 00006 EXTEND
033515,000311: 36,3353 13345 BZF BLNKWAIT
033516,000312:
033517,000313: 36,3354 33761 CAF V16N85B
033518,000314: 36,3355 04616 TC BANKCALL
033519,000315: 36,3356 20446 CADR GODSPRET
033520,000316:
033521,000317: 36,3357 35017 CAF PRIO5
033522,000318: 36,3360 05146 TC PRIOCHNG
033523,000319:
033524,000320: 36,3361 31163 DYNMDISP CA DISPDEX # A NON-POSITIVE DISPDEX INDICATES PAST
033525,000321: 36,3362 00006 EXTEND # TIG-35, SO SERVICER WILL BE DOING THE
033526,000322: 36,3363 65155 BZMF ENDOFJOB # UPDATING OF NOUN 85. STOP DYNMDISP.
033527,000323: 36,3364 06037 TC INTPRET
033528,000324: 36,3365 45175 VLOAD CALL
033529,000325: 36,3366 03701 VGPREV
033530,000326: 36,3367 57267 S41.1
033531,000327: 36,3370 03502 STORE VGBODY
033532,000328: 36,3371 77776 EXIT
033533,000329: 36,3372 34777 CAF 1SEC
033534,000330: 36,3373 04616 TC BANKCALL
033535,000331: 36,3374 01735 CADR DELAYJOB
033536,000332: 36,3375 13361 TCF DYNMDISP
033537,000333:
033538,000334: 36,3376 06037 CALCN85 TC INTPRET
033539,000335: 36,3377 77624 CALL
033540,000336: 36,3400 75611 UPDATEVG
033541,000337: 36,3401 45175 VLOAD CALL
033542,000338: 36,3402 03701 VGPREV
033543,000339: 36,3403 57267 S41.1
033544,000340: 36,3404 03502 STORE VGBODY
033545,000341: 36,3405 77776 EXIT
033546,000342: 36,3406 04635 TC POSTJUMP
033547,000343: 36,3407 65770 CADR SERVEXIT
033548,000344:
033549,000345: 36,3410 COUNT* $$/P42
033550,000346: 36,3410 E7,1455 EBANK= WHICH
033551,000347:
033552,000348: 36,3410 05353 P42LM TC PHASCHNG
033553,000349: 36,3411 04024 OCT 04024
033554,000350:
033555,000351: 36,3412 33135 CAF P42ADRES # INITIALIZATION FOR BURNBABY.
033556,000352: 36,3413 55455 TS WHICH
033557,000353:
033558,000354: 36,3414 40106 CS FLGWRD10
033559,000355: 36,3415 74737 MASK APSFLBIT
033560,000356: 36,3416 10000 CCS A
033561,000357: 36,3417 03121 TC P40ALM
033562,000358: 36,3420 04616 P42STAGE TC BANKCALL
![]() |
Page 758 |
033564,000360: 36,3421 11254 CADR R02BOTH
033565,000361: 36,3422 36000 CAF THRESH2 # INITIALIZE DVMON
033566,000362: 36,3423 55251 TS DVTHRUSH
033567,000363: 36,3424 34751 CAF FOUR
033568,000364: 36,3425 55515 TS DVCNTR
033569,000365:
033570,000366: 36,3426 06037 TC INTPRET
033571,000367: 36,3427 77214 SET VLOAD # LOAD FAPS, MDOTAPS, AND ATDECAY INTO
033572,000368: 36,3430 01072 AVFLAG # F, MDOT, AND TDECAY BY VECTOR LOAD.
033573,000369: 36,3431 34007 FAPS
033574,000370: 36,3432 03735 STORE F
033575,000371: 36,3433 52135 SLOAD GOTO
033576,000372: 36,3434 26001 APSVEX
033577,000373: 36,3435 75200 P40IN
033578,000374:
033579,000375: 36,3436 E7,1455 EBANK= WHICH
033580,000376:
033581,000377: 36,3436 COUNT* $$/P47
033582,000378: 36,3436 04616 P47LM TC BANKCALL
033583,000379: 36,3437 11254 CADR R02BOTH
033584,000380: 36,3440 06037 TC INTPRET
033585,000381: 36,3441 77624 CALRB
033586,000382: 36,3442 27553 MIDTOAV2
033587,000383:
033588,000384: 36,3443 30155 CA MPAC +1
033589,000385: 36,3444 05173 TC TWIDDLE
033590,000386: 36,3445 03447 ADRES STARTP47
033591,000387:
033592,000388: 36,3446 15155 TCF ENDOFJOB
033593,000389:
033594,000390: 36,3447 05353 STARTP47 TC PHASCHNG
033595,000391: 36,3450 05014 OCT 05014
033596,000392: 36,3451 77777 OCT 77777
033597,000393:
033598,000394: 36,3452 00006 EXTEND
033599,000395: 36,3453 33764 DCA ACADN83
033600,000396: 36,3454 53253 DXCH AVEGEXIT
033601,000397: 36,3455 34736 CAF PRIO20
033602,000398: 36,3456 05105 TC FINDVAC
033603,000399: 36,3457 E7,1622 EBANK= DELVIMU
033604,000400: 36,3457 03513 74067 2CADR P47BODY
033605,000401:
033606,000402: 36,3461 12342 TCF REDO4.2 # CHECKS PHASE 5 AND GOES TO PREREAD
033607,000403: # SEE TIG-30 IN BURNBABY.
033608,000404:
033609,000405: 36,3462 06037 CALCN83 TC INTPRET
033610,000406: 36,3463 53375 VLOAD VAD
033611,000407: 36,3464 03502 DELVCTL
033612,000408: 36,3465 03527 DELVREF
033613,000409: 36,3466 03656 STORE DELVSIN # TEMP STORAGE FOR RESTARTS
![]() |
Page 759 |
033615,000411: 36,3467 77624 CALL
033616,000412: 36,3470 57267 S41.1
033617,000413: 36,3471 03623 STORE DELVIMU
033618,000414: 36,3472 77776 EXIT
033619,000415: 36,3473 05353 TC PHASCHNG
033620,000416: 36,3474 10035 OCT 10035 # REREADAC AND HERE
033621,000417:
033622,000418: 36,3475 06037 TC INTPRET
033623,000419: 36,3476 77775 VLOAD
033624,000420: 36,3477 03656 DELVSIN
033625,000421: 36,3500 03502 STORE DELVCTL
033626,000422: 36,3501 77776 EXIT
033627,000423:
033628,000424: 36,3502 04635 TC POSTJUMP
033629,000425: 36,3503 65770 CADR SERVEXIT
033630,000426:
033631,000427: 36,3504 33762 P47BOD CAF V1683
033632,000428: 36,3505 04616 TC BANKCALL
033633,000429: 36,3506 20635 CADR GOFLASHR
033634,000430: 36,3507 06001 TC GOTOPOOH
033635,000431: 36,3510 06001 TC GOTOPOOH
033636,000432:
033637,000433: 36,3511 13513 TCF P47BODY
033638,000434:
033639,000435: 36,3512 13236 TCF P40PHS1
033640,000436:
033641,000437: 36,3513 06037 P47BODY TC INTPRET
033642,000438: 36,3514 77775 VLOAD
033643,000439: 36,3515 06522 HI6ZEROS
033644,000440: 36,3516 03623 STORE DELVIMU
033645,000441: 36,3517 03502 STORE DELVCTL
033646,000442: 36,3520 77776 EXIT
033647,000443: 36,3521 03504 TC P47BOD
033648,000444:
033649,000445: 36,3522 COUNT* $$/P40
033650,000446: 36,3522 31517 IMPLBURN CA TGO +1
033651,000447: 36,3523 03735 TC GETDT
033652,000448: 36,3524 05173 TC TWIDDLE
033653,000449: 36,3525 03542 ADRES ENGOFTSK
033654,000450: 36,3526 05516 TC DOWNFLAG # TURN OFF IGNFLAG
033655,000451: 36,3527 00153 ADRES IGNFLAG
033656,000452: 36,3530 05516 TC DOWNFLAG # TURN OFF ASTNFLG
033657,000453: 36,3531 00154 ADRES ASTNFLAG
033658,000454: 36,3532 05516 TC DOWNFLAG # TURN OFF IMPULSW
033659,000455: 36,3533 00044 ADRES IMPULSW
033660,000456: 36,3534 05353 TC PHASCHNG # RESTART PROTECT ENGOFTSK (ENGINOFF)
033661,000457: 36,3535 40114 OCT 40114
033662,000458:
033663,000459: 36,3536 05221 TC FIXDELAY # WAIT HALF A SECOND
033664,000460: 36,3537 00062 DEC 50 B-14
![]() |
Page 760 |
033666,000462: 36,3540 02653 TC NOULLAGE # TURN OFF ULLAGE
033667,000463:
033668,000464: 36,3541 05261 TC TASKOVER
033669,000465:
033670,000466: 36,3542 04674 ENGOFTSK TC IBNKCALL # THIS CODING ALLOWS ENGINOFF ET AL TO BE
033671,000467: 36,3543 75545 CADR ENGINOFF # USED BOTH BY WAITLIST AND BY TC IBNKCALL
033672,000468: 36,3544 05261 TC TASKOVER
033673,000469:
033674,000470: 36,3545 34644 ENGINOFF CAF PRIO12 # MUST BE LOWER PRIO THAN CLOCKJOB
033675,000471: 36,3546 05105 TC FINDVAC
033676,000472: 36,3547 E7,1462 EBANK= TRKMKCNT
033677,000473: 36,3547 03223 74067 2CADR POSTBURN
033678,000474:
033679,000475: 36,3551 34753 ENGINOF2 CAF BIT1
033680,000476: 36,3552 05203 TC WAITLIST
033681,000477: 36,3553 E6,1422 EBANK= OMEGAQ
033682,000478: 36,3553 03606 74066 2CADR COASTSET
033683,000479:
033684,000480: 36,3555 40103 ENGINOF1 CS FLAGWRD7 # SET THE IDLE BIT.
033685,000481: 36,3556 74745 MASK IDLEFBIT
033686,000482: 36,3557 26103 ADS FLAGWRD7
033687,000483:
033688,000484: 36,3560 02653 TC NOULLAGE
033689,000485:
033690,000486: 36,3561 00006 ENGINOF4 EXTEND
033691,000487: 36,3562 30025 DCA TIME2
033692,000488: 36,3563 53345 DXCH TEVENT
033693,000489:
033694,000490: 36,3564 44745 ENGINOF3 CS ENGONBIT # INSURE ENGONFLG IS CLEAR.
033695,000491: 36,3565 70101 MASK FLAGWRD5
033696,000492: 36,3566 54101 TS FLAGWRD5
033697,000493: 36,3567 44355 CS PRIO30 # ENGINOF3 IS USED AS A PRE-ENGINE ARM
033698,000494: 36,3570 00006 EXTEND # SUBROUTINE.
033699,000495: 36,3571 02011 RAND DSALMOUT
033700,000496: 36,3572 64736 AD PRIO20 # TURN OFF THE ENGINE - DPS OR APS
033701,000497: 36,3573 00006 EXTEND
033702,000498: 36,3574 01011 WRITE DSALMOUT
033703,000499:
033704,000500: 36,3575 40111 CS DAPBOOLS # TURN OFF TRIM GIMBAL
033705,000501: 36,3576 74736 MASK USEQRJTS
033706,000502: 36,3577 26111 ADS DAPBOOLS
033707,000503:
033708,000504: 36,3600 44737 CS HIRTHROT # ZERO AUTO-THROTTLE WHENEVER THE ENGINE
033709,000505: 36,3601 54055 TS THRUST # IS TURNED OFF.
033710,000506: 36,3602 34750 CAF BIT4 # THE HARDWARE DOES SO ONLY WHEN THE
033711,000507: 36,3603 00006 EXTEND # ENGINE IS DISARMED.
033712,000508: 36,3604 05014 WOR CHAN14
033713,000509:
033714,000510: 36,3605 04707 TC ISWRETRN
![]() |
Page 761 |
033716,000512: 36,3606 04674 COASTSET TC IBNKCALL # DO DAP COASTING INITIALIZATION
033717,000513: 36,3607 40204 CADR ALLCOAST
033718,000514: 36,3610 05261 TC TASKOVER
033719,000515:
033720,000516: 36,3611 E6,1422 EBANK= OMEGAQ
033721,000517: 36,3611 45020 UPDATEVG STQ CALL
033722,000518: 36,3612 03665 QTEMP1
033723,000519: 36,3613 56447 S40.8 # X-PRODUCT STEERING
033724,000520: 36,3614 43014 BON BON
033725,000521: 36,3615 01307 XDELVFLG
033726,000522: 36,3616 03665 QTEMP1
033727,000523: 36,3617 03705 NORMSW
033728,000524: 36,3620 75633 180SETUP
033729,000525: 36,3621 45345 DLOAD DSU
033730,000526: 36,3622 01235 PIPTIME
033731,000527: 36,3623 03763 TIGSAVE
033732,000528: 36,3624 50025 DSU BMN
033733,000529: 36,3625 03432 TNEWA
033734,000530: 36,3626 75656 GETRANS
033735,000531: 36,3627 43345 DLOAD DAD
033736,000532: 36,3630 03763 TIGSAVE
033737,000533: 36,3631 03432 TNEWA
033738,000534: 36,3632 03765 STORE TIGSAVEP
033739,000535: 36,3633 77776 180SETUP EXIT
033740,000536: 36,3634 10755 CCS PHASE2
033741,000537: 36,3635 13663 TCF NO.9
033742,000538: 36,3636 34737 CAF PRIO10
033743,000539: 36,3637 00004 INHINT
033744,000540: 36,3640 05105 TC FINDVAC
033745,000541: 36,3641 E7,1706 EBANK= VG
033746,000542: 36,3641 02707 56067 2CADR S40.9 # LAMBERT VTOGAIN
033747,000543:
033748,000544: 36,3643 05327 TC 2PHSCHNG
033749,000545: 36,3644 00172 OCT 00172 # 2.17SPOT FOR S40.9
033750,000546: 36,3645 10035 OCT 10035 # HERE AND REREADAC AFTER RESTART
033751,000547:
033752,000548: 36,3646 06037 ENDSTEER TC INTPRET
033753,000549: 36,3647 77745 DLOAD
033754,000550: 36,3650 03765 TIGSAVEP
033755,000551: 36,3651 27763 STOVL TIGSAVE
033756,000552: 36,3652 01221 RN
033757,000553: 36,3653 26323 STOVL RINIT
033758,000554: 36,3654 01227 VN
033759,000555: 36,3655 02331 STORE VINIT
033760,000556: 36,3656 45345 GETRANS DLOAD DSU
033761,000557: 36,3657 03631 TPASS4
033762,000558: 36,3660 01235 PIPTIME
033763,000559: 36,3661 37452 STCALL DELLT4
033764,000560: 36,3662 03665 QTEMP1
033765,000561:
![]() |
Page 762 |
033767,000563: 36,3663 06037 NO.9 TC INTPRET
033768,000564: 36,3664 77650 GOTO
033769,000565: 36,3665 03665 QTEMP1
033770,000566: 36,3666 06037 STEERING TC INTPRET
033771,000567:
033772,000568: 36,3667 77624 CALL
033773,000569: 36,3670 75611 UPDATEVG
033774,000570: 36,3671 77776 EXIT
033775,000571:
033776,000572: 36,3672 E7,1515 EBANK= DVCNTR
033777,000573: 36,3672 00004 NSTEER INHINT
033778,000574: 36,3673 35016 CA EBANK7
033779,000575: 36,3674 54003 TS EBANK
033780,000576: 36,3675 40076 CS FLAGWRD2 # CHECK IMPULSE SWITCH. IT IS SET EITHER
033781,000577: 36,3676 74743 MASK IMPULBIT # BY S40.13 IF TBURN<6 SECS OR BY S40.8 IF
033782,000578: 36,3677 10000 CCS A # STEERING IS ALMOST DONE.
033783,000579:
033784,000580: 36,3700 13705 TCF +5 # IMPULSW = 0 EXIT
033785,000581: 36,3701 40103 CS FLAGWRD7 # IMPULSW = 1 WHY? CHECK IDLEFLAG
033786,000582: 36,3702 74745 MASK IDLEFBIT # (IDLEFLAG = 0 --> DVMON ON)
033787,000583: 36,3703 10000 CCS A
033788,000584: 36,3704 13707 TCF +3 # DVMON ON --> THRUSTING --> IMPULSW VIA S40.8
033789,000585: 36,3705 04635 TC POSTJUMP # DVMON OFF --> IMPULSW ON VIA S40.13 --> EXIT
033790,000586: 36,3706 65770 CADR SERVEXIT
033791,000587:
033792,000588: 36,3707 04674 TC IBNKCALL
033793,000589: 36,3710 40165 CADR STOPRATE
033794,000590:
033795,000591: 36,3711 05516 TC DOWNFLAG # TURN OFF IMPULSW
033796,000592: 36,3712 00044 ADRES IMPULSW
033797,000593:
033798,000594: 36,3713 05504 TC UPFLAG
033799,000595: 36,3714 00161 ADRES IDLEFLAG # TURN OFF DVMON
033800,000596:
033801,000597: 36,3715 00004 INHINT
033802,000598: 36,3716 00006 EXTEND
033803,000599: 36,3717 31442 DCA TIG
033804,000600: 36,3720 52155 DXCH MPAC
033805,000601: 36,3721 00006 EXTEND
033806,000602: 36,3722 40025 DCS TIME2
033807,000603: 36,3723 20155 DAS MPAC
033808,000604: 36,3724 07257 TC TPAGREE
033809,000605: 36,3725 30155 CAE MPAC +1
033810,000606: 36,3726 03735 TC GETDT
033811,000607: 36,3727 05173 TC TWIDDLE
033812,000608: 36,3730 03542 ADRES ENGOFTSK
033813,000609: 36,3731 05327 TC 2PHSCHNG
033814,000610: 36,3732 40114 OCT 40114 # ENGOFTSK (ENGINOFF)
033815,000611: 36,3733 00035 OCT 00035 # SERVICER -- REREADAC
![]() |
Page 763 |
033817,000613: 36,3734 15155 TCF ENDOFJOB
033818,000614:
033819,000615: 36,3735 10000 GETDT CCS A
033820,000616: 36,3736 13741 TCF +3
033821,000617: 36,3737 13741 TCF +2
033822,000618: 36,3740 34755 CAF ZERO
033823,000619: 36,3741 64753 AD ONE
033824,000620: 36,3742 56001 XCH L
033825,000621: 36,3743 34755 CAF ZERO
033826,000622: 36,3744 53517 DXCH TGO
033827,000623: 36,3745 31517 CA TGO +1
033828,000624: 36,3746 00002 TC Q
033829,000625:
033830,000626: # ************************************************************************
033831,000627:
033832,000628: 36,3747 00000 SEC15DP OCT 00000 # DON'T SEPARATE
033833,000629: 36,3750 02734 SEC15 DEC 1500 B-14 # DON'T SEPARATE
033834,000630: 36,3751 00000 05670 SEC30DP 2DEC 3000 B-28
033835,000631:
033836,000632: 36,3753 00000 SEC45DP OCT 00000 # DON'T MOVE FROM JUST BEFORE SEC45
033837,000633: 36,3754 10624 SEC45 DEC 4500 B-14
033838,000634: 36,3755 00000 5SECDP OCT 00000 # DON'T MOVE FROM JUST BEFORE 5SEC
033839,000635: 36,3756 00764 5SEC DEC 500 B-14
033840,000636: 36,3757 05050 26SECS DEC 2600 B-14
033841,000637: 36,3760 04050 V16N40 VN 1640
033842,000638: 36,3761 04125 V16N85B VN 1685
033843,000639: 36,3762 04123 V1683 VN 1683
033844,000640: 36,3763 4777 SEC01 = 1SEC
033845,000641: 36,3763 36,2055 ACADN85 = P41TABLE +2
033846,000642:
033847,000643: 36,3763 E7,1622 EBANK= DELVIMU
033848,000644: 36,3763 03462 74067 ACADN83 2CADR CALCN83
033849,000645:
033850,000646: # *************************************************
![]() |
Page 764 |
033852,000648: # PROGRAM DESCRIPTION S40.1 DATE 15NOV66
033853,000649: # MOD N02 LOG SECTION P40-P47
033854,000650: # MOD BY ZELDIN AND ADAPTED BY TALAYCO
033855,000651:
033856,000652: # FUNCTIONAL DESCRIPTION
033857,000653: # COMPUTE INITIAL THRUST DIRECTION(UT) AND INITIAL VALUE OF VG
033858,000654: # VECTOR(VGTIG).
033859,000655:
033860,000656: # CALLING SEQUENCE
033861,000657: # L CALL
033862,000658: # L+1 S40.1
033863,000659:
033864,000660: # NORMAL EXIT MODE
033865,000661: # AT L+2 OF CALLING SEQUENCE (GOTO L+2) NORMAL RETURN OR
033866,000662: # ERROR RETURN IF NOSOFLAG =1
033867,000663:
033868,000664: # SUBROUTINES CALLED
033869,000665: # LEMPREC
033870,000666: # INITVEL
033871,000667: # CALCGRAV
033872,000668: # MIDGIM
033873,000669:
033874,000670: # ALARM OR ABORT EXIT MODES
033875,000671: # L+2 OF CALLING SEQUENCE, UNSOLVABLE CONIC IF NOSOFLAG=1
033876,000672:
033877,000673: # ERASABLE INITIALIZATION REQUIRED
033878,000674: # WEIGHT/G ANTICIPATED VEHICLE MASS DP B16 KGM
033879,000675: # XDELVFLG 1=DELTA-V MANEUVER, 0=AIMPT STEER
033880,000676: # F THRUST FOR ENGINE USED
033881,000677: # IF DELTA-V MANEUVER
033882,000678: # DELVSIN SPECIFIED DELTA-V REQUIRED IN
033883,000679: # INERTIAL COORDS. OF ACTIVE VEHICLE
033884,000680: # AT TIME OF IGNITION VECTOR B7 M/CS
033885,000681: # DELVSAB MAG. OF DELVSIN DP B7 M/CS
033886,000682: # RTIG POSITION AT TIME OF IGNITION VECTOR B29 M
033887,000683: # VTIG VELOCITY AT TIME OF IGNITION VECTOR B7 M/CS
033888,000684: # IF AIMPT STEER
033889,000685: # TIG TIME OF IGNITION DP B28 CS
033890,000686: # RTARG POSITION TARGET TIME VECTOR B29 M
033891,000687: # CSTEER C FOR STEER LAW DP B2
033892,000688: # DLTARG TARGET TIME-IGNITION TIME DP B28 CS
033893,000689:
033894,000690: # OUTPUT
033895,000691: # UT DESIRED THRUST DIRECTION VECT. B2 M/(CS.CS)
033896,000692: # VGTIG INITIAL VALUE OF VELOCITY
033897,000693: # TO BE GAINED (INERT. COORD.) VECTOR B7 M/CS
033898,000694: # DELVLVC VGTIG IN LOC. VERT. COORDS. B7 M/CS
033899,000695: # BDT V REQUIRED AT TIG -V REQUIRED AT (TIG-2SEC)
033900,000696: # -GDT FOR S40.13 VECT B7 M/CS
033901,000697: # RTIG CALC IN S40.1B (AIMPT) FOR S40.2,3 VECTOR B29M
033902,000698: # POSITION AT TIME OF IGNITION
033903,000699:
033904,000700: # DEBRIS QTEMP1
033905,000701: # MPAC, QPRET
033906,000702: # PUSHLIST
033907,000703:
033908,000704: 14,2347 BANK 14
033909,000705: 27,2000 SETLOC P40S1
033910,000706: 27,2000 BANK
![]() |
Page 765 |
033912,000708: 27,2246 COUNT* $$/S40.1
033913,000709: 27,2246 71220 S40.1 STQ DLOAD
033914,000710: 27,2247 03632 QTEMP
033915,000711: 27,2250 03442 TIG
033916,000712: 27,2251 03763 STORE TIGSAVE
033917,000713: 27,2252 77614 DELVTEST BOFF
033918,000714: 27,2253 01347 XDELVFLG
033919,000715: 27,2254 56336 S40.1B
033920,000716: 27,2255 77201 CALCTHET SETPD VLOAD
033921,000717: 27,2256 00001 0
033922,000718: 27,2257 03650 VTIG
033923,000719: 27,2260 02331 STORE VINIT
033924,000720: 27,2261 53435 VXV UNIT
033925,000721: 27,2262 03642 RTIG
033926,000722: 27,2263 27673 STOVL UT # UP IN UT
033927,000723: 27,2264 03642 RTIG
033928,000724: 27,2265 02323 STORE RINIT
033929,000725: 27,2266 65236 VSQ PDDL
033930,000726: 27,2267 00045 36D
033931,000727: 27,2270 56205 DMP DDV
033932,000728: 27,2271 16412 THETACON
033933,000729: 27,2272 41205 DMP DMP
033934,000730: 27,2273 03664 DELVSAB
033935,000731: 27,2274 01245 WEIGHT/G
033936,000732: 27,2275 77671 DDV
033937,000733: 27,2276 03735 F
033938,000734: 27,2277 24017 STOVL 14D
033939,000735: 27,2300 03656 DELVSIN
033940,000736:
033941,000737: 27,2301 74241 DOT VXSC
033942,000738: 27,2302 03673 UT
033943,000739: 27,2303 03673 UT
033944,000740: 27,2304 41552 VSL2 PUSH # (DELTAV.UP)UP SCALED AT 2(+7) P.D.L. 0
033945,000741: 27,2305 65245 BVSU PDDL # DELTA VP SCALED AT 2(+7) P.D.L. 6
033946,000742: 27,2306 03656 DELVSIN
033947,000743: 27,2307 00017 14D
033948,000744: 27,2310 63356 SIN PDVL
033949,000745: 27,2311 00007 6D
033950,000746: 27,2312 53435 VXV UNIT
033951,000747: 27,2313 03673 UT
033952,000748: 27,2314 45561 VXSC STADR
033953,000749: 27,2315 50076 STOVL VGTIG # UNIT(VP X UP)SIN(THETAT/2) IN VGTIG.
033954,000750: 27,2316 65256 UNIT PDDL # UNIT(DELTA VP) IN P.D.L. 6
033955,000751: 27,2317 00017 14D
033956,000752: 27,2320 74346 COS VXSC
033957,000753: 27,2321 74255 VAD VXSC
033958,000754: 27,2322 03701 VGTIG
033959,000755: 27,2323 00045 36D
033960,000756: 27,2324 53352 VSL2 VAD
033961,000757: 27,2325 77626 STADR
![]() |
Page 766 |
033963,000759: 27,2326 74076 STORE VGTIG # VG IGNITION SCALED AT 2(+7) M/CS
033964,000760:
033965,000761: 27,2327 77656 UNIT
033966,000762: 27,2330 27673 STOVL UT # THRUST DIRECTION SCALED AT 2(+1)
033967,000763: 27,2331 03701 VGTIG
033968,000764: 27,2332 45006 PUSH CALL
033969,000765: 27,2333 15733 GET.LVC # VGTIG IN LV COOR AT 2(+7) M/CS IN DELVLVC
033970,000766: 27,2334 77650 GOTO
033971,000767: 27,2335 03632 QTEMP
033972,000768: 27,2336 77745 S40.1B DLOAD
033973,000769: 27,2337 03442 TIG
033974,000770: 27,2340 00041 STORE TDEC1
033975,000771: 27,2341 77621 BDSU
033976,000772: 27,2342 03631 TPASS4
033977,000773: 27,2343 37452 STCALL DELLT4 # INTERCEPT TIME - TIG.
033978,000774: 27,2344 27057 LEMPREC
033979,000775: 27,2345 40375 VLOAD SETPD # LOAD STATE VECTOR AT TIG FOR INITVEL.
033980,000776: 27,2346 00001 RATT
033981,000777: 27,2347 00001 0
033982,000778: 27,2350 03642 STORE RTIG
033983,000779: 27,2351 02323 STORE RINIT
033984,000780: 27,2352 77656 UNIT
033985,000781: 27,2353 27537 STOVL UNIT/R/
033986,000782: 27,2354 00007 VATT
033987,000783: 27,2355 03650 STORE VTIG
033988,000784: 27,2356 02331 STORE VINIT
033989,000785: 27,2357 65345 DLOAD PDDL # NUMIT = 0
033990,000786: 27,2360 06522 ZEROVECS
033991,000787: 27,2361 16406 EPS1
033992,000788: 27,2362 43214 BOFF DAD
033993,000789: 27,2363 03745 NORMSW
033994,000790: 27,2364 56366 SMALLEPS
033995,000791: 27,2365 16410 EPS2 # EPSILON4 = 10 DEGREES OR 45 DEGREES.
033996,000792: 27,2366 66006 SMALLEPS PUSH SXA,1
033997,000793: 27,2367 02776 RTX1
033998,000794: 27,2370 45134 SXA,2 CALL
033999,000795: 27,2371 02777 RTX2
034000,000796: 27,2372 22000 INITVEL
034001,000797: 27,2373 41575 VLOAD PUSH
034002,000798: 27,2374 02366 DELVEET3 # VGTIG = VR - VN.
034003,000799: 27,2375 03701 STORE VGTIG
034004,000800: 27,2376 77656 UNIT # UT = UNIT (VGTIG)
034005,000801: 27,2377 17673 STODL UT
034006,000802: 27,2400 00045 36D
034007,000803: 27,2401 37664 STCALL VGDISP # CONVERT VGTIG (IN PUSHLIST) TO LOCAL
034008,000804: 27,2402 15733 GET.LVC # VERTICAL COORDINATES.
034009,000805: 27,2403 77650 GOTO
034010,000806: 27,2404 03632 QTEMP
034011,000807:
034012,000808: 27,2405 00707 03434 EPS1 2DEC* 2.777777778 E-2* # 10 DEGREES AT 1 REVOLUTION.
034013,000809:
![]() |
Page 767 |
034015,000811: 27,2407 03070 34344 EPS2 2DEC* 9.722222222 E-2* # 35 DEGREES AT 1 REVOLUTION.
034016,000812:
034017,000813: 27,2411 00024 13714 THETACON 2DEC .31830989 B-8
034018,000814:
![]() |
Page 768 |
034020,000816: # SUBROUTINE NAME: S40.2,3 MOD. NO. 3 DATE: APRIL 4, 1967
034021,000817: # MODIFICATION BY: JONATHAN D. ADDELSTON (ADAMS ASSOCIATES)
034022,000818: # MOD. NO. 4: JULY 18, 1967: PETER ADLER (MIT/IL)
034023,000819: # MOD. NO. 5: OCTOBER 18, 1967: PETER ADLER (MIT/IL)
034024,000820: # ORIGINALLY BY: SAYDEAN ZELDIN (MIT INSTRUMENTATION LAB) AND RICHARD TALAYCO (SYSTEM DEVELOPMENT CORP)
034025,000821:
034026,000822: # S40.2,3 COMPUTES "POINTVSM" WHICH IS THE HALF-UNIT DESIRED THRUST VECTOR IN STABLE-MEMBER COORDINATES FROM "UT"
034027,000823: # WHICH IS THE SAME VECTOR IN REFERENCE COORDINATES. IT DETERMINES THE CORRECT VALUES FOR "SCAXIS" USING THE +X
034028,000824: # AXIS FOR DPS, APS, AND RCS BURNS. THE "WINGS-LEVEL HEADS-UP" LM ORIENTATION IS THEN COMPUTED IN REFERENCE
034029,000825: # COORDINATES. THESE VECTORS ALSO DEFINE THE "PREFERRED IMU ORIENTATION". UPON COMPLETION OF THIS CALCULATION,
034030,000826: # THE "PREFERRED ATTITUDE COMPUTED" FLAG IS SET (PFRATFLG).
034031,000827:
034032,000828: # CALLING SEQUENCE:
034033,000829: # L CALL INTERPRETIVE CALL.
034034,000830: # L +1 S40.2,3
034035,000831: # L +2 (RETURN) GIMBAL ANGLE VECTOR IN MPAC.
034036,000832:
034037,000833: # SUBROUTINES CALLED: NONE.
034038,000834:
034039,000835: # NORMAL RETURN: L +2 (SEE CALLING SEQUENCE ABOVE).
034040,000836:
034041,000837: # ALARM/ABORT MODES: NONE.
034042,000838:
034043,000839: # INPUT:
034044,000840: # 1. REFSMMAT MATRIX FROM REFERENCE TO STABLE-MEMBER COORDINATES SCALED AT 2.
034045,000841: # 2. UT HALF-UNIT DESIRED THRUST DIRECTION.
034046,000842: # 3. RTIG POSITION AT TIG IN REFERENCE COORDINATES.
034047,000843:
034048,000844: # OUTPUT:
034049,000845: # 1. :XSCREF: WINGS-LEVEL HEADS-UP LM ORIENTATION
034050,000846: # :YSCREF: IN REFERENCE COORDINATES
034051,000847: # :ZSCREF: (PREFERRED IMU ORIENTATION).
034052,000848: # 2. POINTVSM DESIRED THRUST DIRECTION IN STABLE-MEMBER COORDINATES.
034053,000849: # 3. SCAXIS HALF-UNIT OF AXIS TO ALIGN IN STABLE-MEMBER COORDINATES.
034054,000850: # 4. PFRATFLG INTERPRETIVE FLAG. ON: PREFERRED ORIENTATION COMPUTED; OFF: NOT COMPUTED.
034055,000851:
034056,000852: # DEBRIS: NONE.
![]() |
Page 769 |
034058,000854:
034059,000855: 27,2413 COUNT* $$/S40.2
034060,000856: 27,2413 77775 S40.2,3 VLOAD # UT: DESIRED THRUST DIRECTION (HALF-UNIT)
034061,000857: 27,2414 03673 UT # (PUT INTO TOP OF PUSH-DOWN-LIST.)
034062,000858: 27,2415 76521 MXV VSL1 # TRANSFORM THRUST DIRECTION TO STABLE-
034063,000859: 27,2416 01734 REFSMMAT # MEMBER FROM REFERENCE COORDS (RESCALE).
034064,000860: 27,2417 27773 STOVL POINTVSM # SAVE FOR "VECPOINT" ROUTINE (LEMMANU).
034065,000861: 27,2420 06520 UNITX # SCAXIS SET TO +X, FOR P40 AND P42 AND
034066,000862: 27,2421 27765 STOVL SCAXIS # FOR P41 IF RCS NOT -X,+Y,-Y,+Z,-Z.
034067,000863:
034068,000864: 27,2422 03673 UT # ASSUME +X BURN ALWAYS, EVEN FOR RCS.
034069,000865: 27,2423 03607 PLUSX STORE XSCREF # XSCREF = UT (DESIRED THRUST DIRECTION.)
034070,000866: 27,2424 53435 VXV UNIT # RTIG = POSITION AT TIME-OF-IGNITION.
034071,000867: 27,2425 03642 RTIG # YSCREF = UNIT(UT X RTIG)
034072,000868: 27,2426 46125 PDDL BHIZ
034073,000869: 27,2427 00045 36D # TEST MAGNITUDE OF UT X RTIG
034074,000870: 27,2430 56441 FIXY # IF SMALL, USE UT X VTIG AS YSC
034075,000871: 27,2431 45575 STORY VLOAD STADR
034076,000872: 27,2432 74162 STORE YSCREF
034077,000873: 27,2433 76435 VXV VSL1 # COMPUTE (YSCREF X XSCREF), BUT FOR A
034078,000874: 27,2434 03607 XSCREF # RIGHT HANDED SYSTEM, NEED (X CROSS Y).
034079,000875: 27,2435 77676 VCOMP # ZSCREF = - (YSCREF X XSCREF)
034080,000876: 27,2436 03623 STORE ZSCREF # = + (XSCREF X YSCREF)
034081,000877:
034082,000878: 27,2437 43414 SET RVQ
034083,000879: 27,2440 01073 PFRATFLG
034084,000880: 27,2441 47375 FIXY VLOAD VXV # IN THIS CASE,
034085,000881: 27,2442 03607 XSCREF # YSCREF = UNIT(XSCREF X VTIG)
034086,000882: 27,2443 03650 VTIG
034087,000883: 27,2444 41456 UNIT PUSH
034088,000884: 27,2445 77650 GOTO
034089,000885: 27,2446 56431 STORY
![]() |
Page 770 |
034091,000887: # SUBROUTINE S40.8
034092,000888: # MODIFIED APRIL 3, 1968 BY PETER ADLER MIT/IL
034093,000889:
034094,000890: # DESCRIPTION
034095,000891: # S40.8 UPDATES THE VELOCITY-TO-BE-GAINED VECTOR, VG, (AND FOR LAMBERT TARGETTED BURNS ALSO EXTRAPOLATES VG
034096,000892: # USING THE BDT VECTOR) COMPUTES THE TIME FOR ISSUING THE ENGINE OFF COMMAND, TGO, AND CALLS THE ROUTINE
034097,000893: # "FINDCDUW", WHICH GENERATES STEERING COMMANDS FOR THE DAP.
034098,000894:
034099,000895: # CALLING SEQUENCE
034100,000896: # L-1 CALL
034101,000897: # L S40.8
034102,000898: # L+1 INTERPRETIVE RETURN
034103,000899:
034104,000900: # ALARM
034105,000901: # IF VG . DELVREF IS NEGATIVE (VG AND DELVREF OVER 90 DEGREES APART), BYPASS TGO AND STEERING COMPUTATIONS
034106,000902: # AND SET ALARM 1407. RETURN TO CALLER NORMALLY.
034107,000903:
034108,000904: # INPUT AND INITIALIZATION
034109,000905: # VGPREV REFERENCE 2(7) M/CS
034110,000906: # DELVREF REFERENCE 2(7) M/CS
034111,000907: # BDT REFERENCE 2(7) M/CS
034112,000908: # TDECAY TAIL-OFF TIME 2(28) CS
034113,000909: # XDELVFLG 1 = EXTERNAL DELTA-V; 0 = LAMBERT (AIMPOINT)
034114,000910: # STEERSW 1 = DO STEERING AND TGO COMPUTATIONS; 0 = VG UPDATE ONLY
034115,000911: # FIRSTFLG 1 = GONE TO LAMBERT AT LEAST ONCE; 0 = HAVEN'T GONE TO LAMBERT YET
034116,000912:
034117,000913: # NOTE: VGTIG EQUALS VGPREV
034118,000914:
034119,000915: # OUTPUT
034120,000916: # STEERSW SEE INPUT
034121,000917: # IMPULSW 1 = ENGINE OFF IN TGO CENTISECONDS; 0 = CONTINUE BURN
034122,000918: # TGO TIME TO CUT-OFF 2(28) CS
034123,000919: # SEE FINDCDUW FOR STEERING OUTPUTS.
034124,000920:
034125,000921: # SUBROUTINE CALLED
034126,000922: # FINDCDUW
034127,000923:
034128,000924: # DEBRIS
034129,000925: # MPACS, PUSHLIST
034130,000926:
034131,000927: 27,2447 COUNT* $$/S40.8
![]() |
Page 771 |
034133,000929: 27,2447 77614 S40.8 BOF # GENERATE VR IF NOT EXTERNAL DELTA-V BURN
034134,000930: 27,2450 01347 XDELVFLG
034135,000931: 27,2451 56731 RASTEER1
034136,000932: 27,2452 52375 VLOAD VSU
034137,000933: 27,2453 03701 VGPREV
034138,000934: 27,2454 03527 DELVREF
034139,000935: 27,2455 03707 VGAIN* STORE VG # VELOCITY TO BE GAINED SCALED AT (7) M/CS
034140,000936: 27,2456 76521 MXV VSL1
034141,000937: 27,2457 01734 REFSMMAT
034142,000938: 27,2460 03254 STORE UNFC/2
034143,000939: 27,2461 51575 BDTOK VLOAD ABVAL
034144,000940: 27,2462 03707 VG
034145,000941: 27,2463 03664 STORE VGDISP
034146,000942: 27,2464 77201 TGDCALC SETPD VLOAD
034147,000943: 27,2465 00001 0
034148,000944: 27,2466 03707 VG
034149,000945: 27,2467 27701 STOVL VGPREV
034150,000946: 27,2470 03527 DELVREF
034151,000947: 27,2471 57414 BOFF VCOMP
034152,000948: 27,2472 01344 STEERSW
034153,000949: 27,2473 00052 QPRET
034154,000950: 27,2474 77656 UNIT
034155,000951: 27,2475 41441 DOT PUSH
034156,000952: 27,2476 03707 VG
034157,000953: 27,2477 56244 BPL DDV
034158,000954: 27,2500 56526 ALARMIT # DELV IS MORE THAN 90 DEGREES FROM VG.
034159,000955: 27,2501 03743 VEX
034160,000956: 27,2502 41215 DAD DMP
034161,000957: 27,2503 06520 DPHALF
034162,000958: 27,2504 56261 SR DDV
034163,000959: 27,2505 20613 10D
034164,000960: 27,2506 00045 36D
034165,000961: 27,2507 43205 DMP DAD
034166,000962: 27,2510 16535 -FOURDT
034167,000963: 27,2511 03741 TDECAY
034168,000964: 27,2512 03517 STORE TGO
034169,000965: 27,2513 77615 DAD
034170,000966: 27,2514 01235 PIPTIME
034171,000967: 27,2515 17442 STODL TIG
034172,000968: 27,2516 03517 TGO
034173,000969: 27,2517 51025 DSU BPL
034174,000970: 27,2520 16537 FOURSECS # 400 CS
034175,000971: 27,2521 61111 FINDCDUW -2
034176,000972: 27,2522 43014 SET CLRGO
034177,000973: 27,2523 01066 IMPULSW
034178,000974: 27,2524 01224 STEERSW
034179,000975: 27,2525 00052 QPRET
034180,000976:
034181,000977: 27,2526 77776 ALARMIT EXIT
034182,000978:
![]() |
Page 772 |
034184,000980: 27,2527 05567 TC ALARM
034185,000981: 27,2530 01407 OCT 01407
034186,000982: 27,2531 06037 TC INTPRET
034187,000983: 27,2532 77650 GOTO # SKIP TGO COMPUTATION BUT CALL FINDCDUW.
034188,000984: 27,2533 61111 FINDCDUW -2 # FINDCDUW WILL EXIT TO UPDATEVG +3.
034189,000985:
034190,000986: 27,2534 77715 77777 -FOURDT 2DEC -800 B-18 # -4 (200 CS.) B(-18)
034191,000987: 27,2536 00000 00620 FOURSECS 2DEC 400 B-28 # 400 CS SCALED AT 2(+28) CS
034192,000988: 27,2540 E7,1742 2VEXHUST = VEX
034193,000989:
![]() |
Page 773 |
034195,000991: # NAME S40.13 - TIMEBURN
034196,000992:
034197,000993: # FUNCTION (1) DETERMINE WHETHER A GIVEN COMBINATION OF VELOCITY TO
034198,000994: # BE GAINED AND ENGINE CHOICE RESULT IN A BURN TIME
034199,000995: # SUFFICIENT TO ALLOW STEERING AT THE VEHICLE DURING THE
034200,000996: # BURN
034201,000997: # (2) THE MAGNITUDE OF THE RESULTING BURN TIME -- IF IT
034202,000998: # IS SHORT -- AND THE ASSOCIATED TIME OF THE ENGINE OFF
034203,000999: # SIGNAL
034204,001000:
034205,001001: # CALLING SEQUENCE VIA FINDVAC AS A NEW JOB
034206,001002:
034207,001003: # INPUT VGTIG VELOCITY TO BE GAINED VECTOR (METERS/CS) AT +7
034208,001004: # WEIGHT/G MASS OF VEHICLE IN KGM AT +16
034209,001005: # F APS ENGINE THRUST IN M.NEWTONS AT +7
034210,001006: # AND ALSO FOR RCS ENGINE
034211,001007: # MDOT RATE OF DECREASE OF VEHICLE MASS DURING ENGINE
034212,001008: # BURN IN KILOGRAMS/CS AT +3. THIS SCALING MAY
034213,001009: # REQUIRE MODIFICATION FOR SATURN BURNS.
034214,001010: # ENG1FLAG SWITCH TO DECIDE WHETHER APS OR DPS ENGINE IS USED
034215,001011: # =0 DPS
034216,001012: # =1 APS
034217,001013:
034218,001014: # OUTPUT IMPULSW ZERO FOR STEERING
034219,001015: # ONE FOR ATTITUDE HOLD
034220,001016: # NOTHROTL ZERO FOR THROTTLING
034221,001017: # ONE TO INHIBIT THROTTLING
034222,001018: # TGO TIME TO BURN IN CS
034223,001019:
034224,001020: # THE QUANTITY M.NEWTON = 10000 NEWTONS WILL BE USED TO EXPRESS
034225,001021: # FORCE
034226,001022:
034227,001023: 27,2540 E7,1516 EBANK= TGO
034228,001024: 27,2540 COUNT* $$/40.13
034229,001025: 27,2540 06037 S40.13 TC INTPRET
034230,001026: 27,2541 43001 SETPD CLEAR
034231,001027: 27,2542 00001 00D
034232,001028: 27,2543 01266 IMPULSW # ASSUME NO STEERING UNTIL FOUND OTHERWISE
034233,001029: 27,2544 51575 VLOAD ABVAL
034234,001030: 27,2545 03701 VGTIG # VELOCITY TO BE GAINED AT +7
034235,001031: 27,2546 41325 PDDL DMP # 00D = MAG OF VGTIG AT +7
034236,001032: 27,2547 21021 4SEC(17) # CORRECT VG FOR 4 SECS OF 2 JET ULLAGE
034237,001033: 27,2550 34017 FRCS2
034238,001034: 27,2551 72471 DDV SL1 # SCALE
034239,001035: 27,2552 01245 WEIGHT/G
034240,001036: 27,2553 41421 BDSU PUSH
034241,001037: 27,2554 43014 BOFF SET
034242,001038: 27,2555 05342 APSFLAG
034243,001039: 27,2556 56626 S40.13D # FOR DPS ENGINE
034244,001040: 27,2557 02463 NOTHROTL
034245,001041: 27,2560 56345 DLOAD DDV # 00D = MAG OF VGTIG CORRECTED
034246,001042: 27,2561 16001 K1VAL # M.NEWTONS-CS AT +24
034247,001043: 27,2562 01245 WEIGHT/G
034248,001044: 27,2563 50021 BDSU BMN
![]() |
Page 774 |
034250,001046: 27,2564 00001 00D
034251,001047: 27,2565 56610 S40.131 # TGO LESS THAN 100 CS
034252,001048: 27,2566 41325 PDDL DMP # 02D = TEMP1 AT +7
034253,001049: 27,2567 03737 MDOT
034254,001050:
034255,001051: # MDOT REPRESENTS THE RATE OF DECREASE OF VEHICLE MASS DURING ENGINE
034256,001052: # BURN IN KILOGRAMS/CS. WHEN SATURN IS USED, THE SCALING MAY
034257,001053: # REQUIRE ADJUSTMENT
034258,001054:
034259,001055: 27,2570 16700 3.5SEC # 350 CS AT +14
034260,001056: 27,2571 65221 BDSU PDDL
034261,001057: 27,2572 01245 WEIGHT/G
034262,001058: 27,2573 03735 F
034263,001059: 27,2574 60405 DMP SR2 # SCALE
034264,001060: 27,2575 16702 5SECS
034265,001061: 27,2576 41471 DDV PUSH # 04D = TEMP2
034266,001062: 27,2577 51021 BDSU BPL
034267,001063: 27,2600 00003 02D
034268,001064: 27,2601 56626 S40.13D
034269,001065: 27,2602 55345 DLOAD BDDV
034270,001066: 27,2603 43205 DMP DAD
034271,001067: 27,2604 16702 5SECS
034272,001068: 27,2605 16676 1SEC2D # 100 CS AT +14
034273,001069: 27,2606 77650 GOTO
034274,001070: 27,2607 56616 S40.132
034275,001071: 27,2610 41345 S40.131 DLOAD DMP
034276,001072: 27,2611 01245 WEIGHT/G
034277,001073: 27,2612 41542 SR1 PUSH
034278,001074: 27,2613 56215 DAD DDV
034279,001075: 27,2614 16003 K2VAL # M.NEWTON CS AT +24
034280,001076: 27,2615 16005 K3VAL # M.NEWTON CS AT +10
034281,001077: 27,2616 77414 S40.132 SET EXIT
034282,001078: 27,2617 01066 IMPULSW
034283,001079: 27,2620 07257 S40.132* TC TPAGREE
034284,001080: 27,2621 30154 CA MPAC
034285,001081: 27,2622 56001 XCH L
034286,001082: 27,2623 34755 CA ZERO
034287,001083: 27,2624 53517 DXCH TGO
034288,001084: 27,2625 12650 TCF S40.134
034289,001085:
034290,001086: 27,2626 41345 S40.13D DLOAD DMP # FOR DPS ENGINE
034291,001087: 27,2627 00001 00D
034292,001088: 27,2630 01245 WEIGHT/G
034293,001089: 27,2631 43006 PUSH BON
034294,001090: 27,2632 05302 APSFLAG
034295,001091: 27,2633 56671 APSTGO
034296,001092: 27,2634 43071 DDV CLEAR
034297,001093: 27,2635 16007 S40.136
034298,001094: 27,2636 02663 NOTHROTL
034299,001095: 27,2637 41400 BOV PUSH
![]() |
Page 775 |
034301,001097: 27,2640 56653 S40.130V
034302,001098: 27,2641 51025 S40.137 DSU BPL
034303,001099: 27,2642 16704 6SEC # 600.0 CS AT +14
034304,001100: 27,2643 56661 S40.138
034305,001101: 27,2644 52015 DAD GOTO
034306,001102: 27,2645 16704 6SEC
034307,001103: 27,2646 56616 S40.132
034308,001104: 27,2647 77776 S40.133 EXIT
034309,001105: 27,2650 05353 S40.134 TC PHASCHNG
034310,001106: 27,2651 00003 OCT 00003
034311,001107: 27,2652 05155 TC ENDOFJOB
034312,001108: 27,2653 40545 S40.130V DLOAD SR4 # RECOMPUTE TGO IN TIME2 UNITS
034313,001109: 27,2654 77671 DDV
034314,001110: 27,2655 16011 S40.136_ # S40.136 SHIFTED LEFT 10
034315,001111: 27,2656 03517 STORE TGO
034316,001112: 27,2657 77776 EXIT
034317,001113: 27,2660 12650 TCF S40.134 # REJOIN COMMON CODING FOR RESTART PROTECT
034318,001114:
034319,001115: 27,2661 51025 S40.138 DSU BPL
034320,001116: 27,2662 16706 89SECS
034321,001117: 27,2663 56666 STORETGO
034322,001118: 27,2664 77614 SET
034323,001119: 27,2665 02463 NOTHROTL
034324,001120: 27,2666 77745 STORETGO DLOAD # LOAD TGO AT 2(14)
034325,001121: 27,2667 77776 EXIT
034326,001122: 27,2670 12620 TCF S40.132*
034327,001123:
034328,001124: 27,2671 62471 APSTGO DDV SL2
034329,001125: 27,2672 34007 FAPS
034330,001126: 27,2673 77650 GOTO
034331,001127: 27,2674 56667 STORETGO +1
034332,001128: 27,2675 00144 00000 1SEC2D 2DEC 100.0 B-14 # 100.0 CS AT +14
034333,001129:
034334,001130: 27,2677 01274 00000 3.5SEC 2DEC 350.0 B-13 # 350 CS AT +13
034335,001131:
034336,001132: 27,2701 00764 00000 5SECS 2DEC 500.0 B-14 # 500.0 CS AT +14
034337,001133:
034338,001134: 27,2703 01130 00000 6SEC 2DEC 600.0 B-14 # 600.0 CS AT +14
034339,001135:
034340,001136: 27,2705 21304 00000 89SECS 2DEC 8900.0 B-14
034341,001137:
034342,001138: # FUNCTION (1) GENERATES REQUIRED VELOCITY AND VELOCITY-TO-BE-GAINED
034343,001139: # VECTORS FOR USE DURING AIMPOINT MANEUVERS EVERY TWO
034344,001140: # COMPUTATION CYCLES (4 SECONDS).
034345,001141: # (2) UPDATES THE B VECTOR WHICH IS USED IN THE FINAL
034346,001142: # CALCULATION OF EXTRAPOLATING THE VELOCITY-TO-BE-GAINED
034347,001143: # THROUGH ONE 2-SECOND INTERVAL INTO THE FUTURE.
034348,001144:
034349,001145: # CALLING SEQ VIA FINDVAC AS NEW JOB.
034350,001146:
034351,001147: # INPUT RN - ACTIVE VEHICLE RADIUS VECTOR IN METERS AT +29.
034352,001148: # VN - ACTIVE VEHICLE VELOCITY VECTOR IN METERS/CS AT +7
![]() |
Page 776 |
034354,001150: # VRPREV - LAST COMPUTED VELOCITY REQUIRED VECTOR IN
034355,001151: # METERS/CS AT +7.
034356,001152: # TIG - TIME OF IGNITION IN CS AT +28.
034357,001153: # DLTARG - COMPUTATION CYCLE INTERVAL = 200 CS AT +28.
034358,001154: # PIPTIME - TIME OF RN AND VN IN CS AT +28.
034359,001155: # GDT/2 - HALF OF VELOCITY GAINED IN DELTA T TIME DUE TO
034360,001156: # ACCERERATION OF GRAVITY IN METERS/CS AT +7.
034361,001157: # DELVREF - CHANGE IN VELOCITY DURING LAST 2 SEC IN
034362,001158: # METERS/CS AT +7.
034363,001159:
034364,001160: # OUTPUT VGPREV - VELOCITY TO BE GAINED VECTOR IN METERS/CS AT +7.
034365,001161: # VGDISP - MAG OF VGPREV FOR DISPLAY PURPOSES.
034366,001162: # VRPREV - VELOCITY REQUIRED VECTOR IN METERS/CS AT +7.
034367,001163: # BDT - B VECTOR IN METERS/CS AT +7.
034368,001164:
034369,001165: # SUBROUTINES USED - INITVEL
034370,001166:
034371,001167: 27,2707 E7,1700 EBANK= VGPREV
034372,001168: 27,2707 COUNT* $$/S40.9
034373,001169: 27,2707 06037 S40.9 TC INTPRET
034374,001170: 27,2710 77601 SETPD
034375,001171: 27,2711 00001 00D
034376,001172: 27,2712 71214 SET DLOAD
034377,001173: 27,2713 01072 AVFLAG # SET AVFLAG FOR LEM ACTIVE
034378,001174: 27,2714 06522 HI6ZEROS
034379,001175: 27,2715 77725 PDDL
034380,001176: 27,2716 16406 EPS1
034381,001177: 27,2717 43214 BOFF DAD # EPSILON4 = 10 OR 45 DEGREES.
034382,001178: 27,2720 03745 NORMSW
034383,001179: 27,2721 56723 EPSSMALL
034384,001180: 27,2722 16410 EPS2
034385,001181: 27,2723 45006 EPSSMALL PUSH CALL
034386,001182: 27,2724 22002 HAVEGUES
034387,001183: 27,2725 77776 ENDS40.9 EXIT
034388,001184: 27,2726 05353 TC PHASCHNG
034389,001185: 27,2727 00002 OCT 2
034390,001186: 27,2730 15155 TCF ENDOFJOB
034391,001187:
034392,001188: 27,2731 51575 RASTEER1 VLOAD ABVAL
034393,001189: 27,2732 01221 RN
034394,001190: 27,2733 53744 LXC,2 SL*
034395,001191: 27,2734 02777 RTX2
034396,001192: 27,2735 57576 0,2
034397,001193: 27,2736 27715 STOVL RMAG
034398,001194: 27,2737 03444 RTARG
034399,001195: 27,2740 47051 VSU RTB
034400,001196: 27,2741 01221 RN
034401,001197: 27,2742 21724 NORMUNX1
034402,001198: 27,2743 17656 STODL IC
034403,001199: 27,2744 00045 36D # C(36D) = ABVAL(C)
034404,001200: 27,2745 53674 XAD,2 SL*
034405,001201: 27,2746 00046 X1
![]() |
Page 777 |
034407,001203: 27,2747 57576 0,2
034408,001204: 27,2750 00037 STORE 30D
034409,001205: 27,2751 41301 NORM DMP
034410,001206: 27,2752 00050 X2
034411,001207: 27,2753 03715 RMAG
034412,001208: 27,2754 57101 NORM XAD,2
034413,001209: 27,2755 00047 X1
034414,001210: 27,2756 00046 X1
034415,001211: 27,2757 77734 SXA,2
034416,001212: 27,2760 03766 MUSCALE
034417,001213: 27,2761 17725 STODL R1C # 2(+58 -X)
034418,001214: 27,2762 00037 30D
034419,001215: 27,2763 65342 SR1 PDDL
034420,001216: 27,2764 03715 RMAG
034421,001217: 27,2765 65342 SR1 PDDL
034422,001218: 27,2766 03723 RTMAG
034423,001219: 27,2767 43342 SR1 DAD
034424,001220: 27,2770 45415 DAD STADR
034425,001221: 27,2771 74044 STORE SS # SS = (R1 + R2 + C)/2
034426,001222: 27,2772 41225 DSU DMP
034427,001223: 27,2773 00037 30D
034428,001224: 27,2774 03721 MU/A
034429,001225: 27,2775 77621 BDSU
034430,001226: 27,2776 03717 MUASTEER
034431,001227: 27,2777 45325 PDDL DSU
034432,001228: 27,3000 03733 SS
034433,001229: 27,3001 03715 RMAG
034434,001230: 27,3002 70501 NORM SR1
034435,001231: 27,3003 00047 X1
034436,001232: 27,3004 41271 DDV DMP
034437,001233: 27,3005 03725 R1C
034438,001234: 27,3006 53664 XSU,2 SL*
034439,001235: 27,3007 00046 X1
034440,001236: 27,3010 57575 1,2
034441,001237: 27,3011 77754 LXA,2
034442,001238: 27,3012 03766 MUSCALE
034443,001239: 27,3013 75366 SQRT SIGN
034444,001240: 27,3014 02673 GEOMSGN
034445,001241: 27,3015 00041 STORE 32D # + OR - A
034446,001242: 27,3016 41345 DLOAD DMP
034447,001243: 27,3017 03733 SS
034448,001244: 27,3020 03721 MU/A
034449,001245: 27,3021 77621 BDSU
034450,001246: 27,3022 03717 MUASTEER
034451,001247: 27,3023 45325 PDDL DSU
034452,001248: 27,3024 03733 SS
034453,001249: 27,3025 03723 RTMAG
034454,001250: 27,3026 70501 NORM SR1
034455,001251: 27,3027 00047 X1
034456,001252: 27,3030 41271 DDV DMP
034457,001253:
![]() |
Page 778 |
034459,001255: 27,3031 03725 R1C
034460,001256: 27,3032 53664 XSU,2 SL*
034461,001257: 27,3033 00046 X1
034462,001258: 27,3034 57575 1,2
034463,001259: 27,3035 65366 SQRT PDDL # -B (NO SIGN)
034464,001260: 27,3036 03733 SS
034465,001261: 27,3037 56225 DSU DDV
034466,001262: 27,3040 00037 30D
034467,001263: 27,3041 03733 SS
034468,001264: 27,3042 41566 SQRT PUSH
034469,001265: 27,3043 67542 SR1 ASIN
034470,001266: 27,3044 65205 DMP PDDL
034471,001267: 27,3045 17216 2PI+3
034472,001268: 27,3046 56325 PDDL DDV
034473,001269: 27,3047 00037 30D
034474,001270: 27,3050 03733 SS
034475,001271: 27,3051 77600 BOV
034476,001272: 27,3052 57053 +1
034477,001273: 27,3053 41366 SQRT DMP
034478,001274: 27,3054 44242 SR3 BDSU
034479,001275: 27,3055 65365 SIGN PDDL
034480,001276: 27,3056 02673 GEOMSGN
034481,001277: 27,3057 17216 2PI+3
034482,001278: 27,3060 45302 SR2 DSU
034483,001279: 27,3061 65205 DMP PDDL
034484,001280: 27,3062 03733 SS
034485,001281: 27,3063 03733 SS
034486,001282: 27,3064 75442 SR3 SQRT
034487,001283: 27,3065 77605 DMP
034488,001284: 27,3066 52525 PDDL SL3
034489,001285: 27,3067 03717 MUASTEER
034490,001286: 27,3070 55366 SQRT BDDV
034491,001287: 27,3071 43225 DSU DAD
034492,001288: 27,3072 03631 TPASS4
034493,001289: 27,3073 01235 PIPTIME
034494,001290: 27,3074 14037 STODL 30D
034495,001291: 27,3075 77765 SIGN
034496,001292: 27,3076 00037 30D # B WITH SIGN
034497,001293: 27,3077 00037 STORE 30D
034498,001294: 27,3100 77214 BON VLOAD
034499,001295: 27,3101 03705 NORMSW
034500,001296: 27,3102 57123 180MESS
034501,001297: 27,3103 03656 IC
034502,001298: 27,3104 53451 VSU UNIT
034503,001299: 27,3105 03537 UNIT/R/
034504,001300: 27,3106 63361 VXSC PDVL
034505,001301: 27,3107 00037 30D
034506,001302: 27,3110 03656 IC
034507,001303: 27,3111 53455 VAD UNIT
034508,001304: 27,3112 03537 UNIT/R/
![]() |
Page 779 |
034510,001306: 27,3113 53361 GETVRVG1 VXSC VAD
034511,001307: 27,3114 00041 32D
034512,001308: 27,3115 53744 GETVRVG2 LXC,2 VSR*
034513,001309: 27,3116 02777 RTX2
034514,001310: 27,3117 57177 0 -1,2
034515,001311: 27,3120 02337 STORE VIPRIME
034516,001312: 27,3121 77650 GOTO
034517,001313: 27,3122 57166 ASTREND -2
034518,001314: 27,3123 50375 180MESS VLOAD DOT
034519,001315: 27,3124 03656 IC
034520,001316: 27,3125 03537 UNIT/R/
034521,001317: 27,3126 77240 BMN VLOAD
034522,001318: 27,3127 57146 NEGPROD
034523,001319: 27,3130 03656 IC
034524,001320: 27,3131 63362 VSR1 PDVL
034525,001321: 27,3132 03537 UNIT/R/
034526,001322: 27,3133 53362 VSR1 VAD
034527,001323: 27,3134 77656 UNIT
034528,001324: 27,3135 57406 PUSH VCOMP # FOR A
034529,001325: 27,3136 75235 VXV SIGN
034530,001326: 27,3137 02674 UN
034531,001327: 27,3140 02673 GEOMSGN
034532,001328: 27,3141 74256 UNIT VXSC
034533,001329: 27,3142 00037 30D
034534,001330: 27,3143 77715 PDVL # UNIT(IC-IR) +-B
034535,001331: 27,3144 77650 GOTO
034536,001332: 27,3145 57113 GETVRVG1
034537,001333: 27,3146 74575 NEGPROD VLOAD VSR1
034538,001334: 27,3147 03537 UNIT/R/
034539,001335: 27,3150 74515 PDVL VSR1
034540,001336: 27,3151 03656 IC
034541,001337: 27,3152 53451 VSU UNIT
034542,001338: 27,3153 77606 PUSH
034543,001339: 27,3154 75235 VXV SIGN
034544,001340: 27,3155 02674 UN # FOR B
034545,001341: 27,3156 02673 GEOMSGN
034546,001342: 27,3157 74256 UNIT VXSC
034547,001343: 27,3160 00041 32D
034548,001344: 27,3161 77715 PDVL
034549,001345: 27,3162 53361 VXSC VAD
034550,001346: 27,3163 00037 30D
034551,001347: 27,3164 77650 GOTO
034552,001348: 27,3165 57115 GETVRVG2
034553,001349: 27,3166 77651 VSU
034554,001350: 27,3167 03553 VN1
034555,001351: 27,3170 02366 ASTREND STORE DELVEET3
034556,001352: 27,3171 53135 FIRSTTME SLOAD BZE
034557,001353: 27,3172 03000 RTX2
034558,001354: 27,3173 57177 GETGOBL
034559,001355: 27,3174 52175 VLOAD GOTO # NO OBLATENESS COMP IF IN MOON SPHERE
![]() |
Page 780 |
034561,001357: 27,3175 02366 DELVEET3
034562,001358: 27,3176 57212 NOGOBL
034563,001359: 27,3177 53575 GETGOBL VLOAD UNIT # CALCULATE OBLATENESS TERM.
034564,001360: 27,3200 01221 RN
034565,001361: 27,3201 45345 DLOAD DSU
034566,001362: 27,3202 01235 PIPTIME # 2
034567,001363: 27,3203 03512 GOBLTIME # G = -(MU/R )(UNITGOBL)(T-TIG)
034568,001364: 27,3204 56205 DMP DDV # OBL
034569,001365: 27,3205 16023 EARTHMU
034570,001366: 27,3206 00043 34D # 34D = /RN/ (2) FROM UNIT OPERATION.
034571,001367: 27,3207 53361 VXSC VAD
034572,001368: 27,3210 03521 UNITGOBL
034573,001369: 27,3211 02366 DELVEET3 # OUTPUT FROM INITVEL VG = VR - VN
034574,001370: 27,3212 02366 NOGOBL STORE DELVEET3 # VG = VR + GOBL - VN
034575,001371: 27,3213 77650 GOTO
034576,001372: 27,3214 56455 VGAIN*
034577,001373:
034578,001374: 27,3215 31103 36652 2PI+3 2DEC 3.141592653 B-2
034579,001375:
![]() |
Page 781 |
034581,001377: # TRIMGIMB (FORMERLY S40.6)
034582,001378: # MOD 0 24 FEB 67 PETER ADLER
034583,001379:
034584,001380: # FUNCTION:
034585,001381: # TRIMS DPS ENGINE TO MINIMIZE THRUST/CG OFFSET. ENGINE IS GIMBALLED TO FULL + PITCH AND + ROLL (TO LOCK)
034586,001382: # FOR REFERENCE AND IS THEN BROUGHT BACK TO TRIM POSITION BY RUNNING FOR THE PROPER TIMES (TO BE
034587,001383: # SPECIFIED BY GAEC) IN - PITCH AND - ROLL.
034588,001384:
034589,001385: # CALLING SEQUENCE:
034590,001386: # VIA WAITLIST FROM R03
034591,001387:
034592,001388: # INPUT:
034593,001389: # PITTIME TIME TO RUN FROM FULL + PITCH TO TRIM (CS)
034594,001390: # ROLLTIME TIME TO RUN FROM FULL + ROLL TO TRIM (CS)
034595,001391:
034596,001392: # SUBROUTINES USED:
034597,001393: # WAITLIST, FIXDELAY, VARDELAY, FLAGUP, FLAGDOWN, NOVAC
034598,001394:
034599,001395: 27,3217 COUNT* $$/S40.6
034600,001396: 27,3217 E6,1401 EBANK= ROLLTIME # OCTAL MASKS: PRIO5=05000 EBANK5=02400
034601,001397:
034602,001398: 27,3217 05516 TRIMGIMB TC DOWNFLAG # GMBDRVSW FLAG IS SET WHEN EITHER ROLL OR
034603,001399: 27,3220 00137 ADRES GMBDRVSW # PITCH IS COMPLETED, WHICHEVER IS FIRST.
034604,001400:
034605,001401: 27,3221 45017 CS PRIO5 # TURN OFF - PITCH, - ROLL, IF ON.
034606,001402: 27,3222 00006 EXTEND
034607,001403: 27,3223 03012 WAND CHAN12
034608,001404: 27,3224 35014 CAF EBANK5 # TURN ON + PITCH, + ROLL.
034609,001405: 27,3225 00006 EXTEND
034610,001406: 27,3226 05012 WOR CHAN12
034611,001407: 27,3227 05221 TC FIXDELAY # WAIT ONE MINUTE TO MAKE SURE ENGINE IS
034612,001408: 27,3230 13560 DEC 6000 B-14 # AT FULL + PITCH AND FULL + ROLL
034613,001409: 27,3231 45014 CS EBANK5 # TURN OFF + PITCH, + ROLL.
034614,001410: 27,3232 00006 EXTEND
034615,001411: 27,3233 03012 WAND CHAN12
034616,001412: 27,3234 35017 CAF PRIO5 # TURN ON - PITCH, - ROLL.
034617,001413: 27,3235 00006 EXTEND
034618,001414: 27,3236 05012 WOR CHAN12
034619,001415: 27,3237 31402 CAE PITTIME # GET TIME TO SHUT OFF - PITCH AND SET UP
034620,001416: 27,3240 05173 TC TWIDDLE # TWIDDLE-TASK TO TURN IT OFF THEN
034621,001417: 27,3241 03260 ADRES PITCHOFF
034622,001418:
034623,001419: 27,3242 31401 CAE ROLLTIME # GET TIME TO SHUT OFF - ROLL AND GO AWAY
034624,001420: 27,3243 05224 TC VARDELAY # UNTIL THEN
034625,001421: 27,3244 44740 CS BIT12
034626,001422: 27,3245 00006 EXTEND
034627,001423: 27,3246 03012 WAND CHAN12 # SHUT OFF ROLL
034628,001424: 27,3247 30102 ROLLOVER CA FLAGWRD6 # IF HERE INLINE (ROLL DONE) IS PITCH DONE
034629,001425: 27,3250 74742 MASK GMBDRBIT # IF HERE FROM PITCHOFF, IS ROLL DONE?
034630,001426: 27,3251 00006 EXTEND
034631,001427: 27,3252 13264 BZF PITCHOFF +4 # NO. SET FLAG, ROLL OR PITCH DONE.
034632,001428: 27,3253 34737 CAF PRIO10 # RETURN TO R03
034633,001429: 27,3254 05072 TC NOVAC
034634,001430: 27,3255 E7,1471 EBANK= WHOCARES
![]() |
Page 782 |
034636,001432: 27,3255 02323 02067 2CADR TRIMDONE
034637,001433:
034638,001434: 27,3257 05261 TC TASKOVER
034639,001435: 27,3260 44742 PITCHOFF CS BIT10
034640,001436: 27,3261 00006 EXTEND
034641,001437: 27,3262 03012 WAND CHAN12 # SHUT OFF PITCH
034642,001438: 27,3263 13247 TCF ROLLOVER # SEE IF ROLL HAS FINISHED ALSO.
034643,001439: 27,3264 05504 TC UPFLAG # ROLL DONE; OR PITCH DONE; BUT NOT BOTH.
034644,001440: 27,3265 00137 ADRES GMBDRVSW
034645,001441: 27,3266 05261 TC TASKOVER
034646,001442:
![]() |
Page 783 |
034648,001444: # SUBROUTINE NAME: S41.1 MOD. NO. 0 DATE: FEBRUARY 28, 1967
034649,001445: # MOD. NO. 1 DATE: JANUARY 23, 1968: BY PETER ADLER (MIT/IL)
034650,001446:
034651,001447: # AUTHOR: JONATHAN D. ADDELSTON (ADAMS ASSOCIATES)
034652,001448:
034653,001449: # S41.1 PERFORMS THE COORDINATE SYSTEM TRANFORMATION FROM THE REFERENCE FRAME TO THE BODY OF THE LM.
034654,001450: # SPECIFICALLY, IT IS USED TO TRANSFORM A VELOCITY (SCALED AT 2(+7) METERS/CENTISECOND) FROM REFERENCE TO LM AXIS
034655,001451: # COORDINATES. FIRST THE VECTOR IS TRANSFORMED TO THE STABLE MEMBER COORDINATES BY THE MATRIX REFSMMAT. THIS
034656,001452: # LEAVES THE VECTOR IN MPAC, SCALED AT 2(+8) METERS/CENTISECOND. THEN
034657,001453: # THE SUBROUTINE CDUTRIG IS CALLED TO SET UP THE DOUBLE-PRECISION CDU VECTOR ALONG WITH ITS SINES AND COSINES.
034658,001454: # THE VECTOR IS THEN TRANSFORMED FROM STABLE MEMBER COORDINATES TO SPACECRAFT (OR LM) COORDINATES BY THE
034659,001455: # SUBROUTINE *SMNB*. FINALLY( THE VECTOR IS RESCALED TO 2(+7) METERS/CENTISECOND, AND CONTROL IS RETURNED TO THE
034660,001456: # CALLER WITH C(MPAC) = VELOCITY(LM).
034661,001457:
034662,001458: # CALLING SEQUENCE:
034663,001459: # L VLOAD CALL
034664,001460: # L +1 VELOCITY(REF) SCALED AT 2(+7) M/CS IN REFERENCE COORDS.
034665,001461: # L +2 S41.1
034666,001462: # L +3 STORE VELOCITY(LM) SCALED AT 2(+7) M/CS IN LM BODY AXIS SYS.
034667,001463:
034668,001464: # SUBROUTINES CALLED:
034669,001465: # 1. CDUTRIG,
034670,001466: # WHICH CALLS CDULOGIC.
034671,001467: # 2. *SMNB*
034672,001468:
034673,001469: # NORMAL RETURN: L +3 (SEE CALLING SEQUENCE, ABOVE.)
034674,001470:
034675,001471: # ALARM/ABORT MODES: NONE.
034676,001472:
034677,001473: # RESTART PROTECTION: NONE.
034678,001474:
![]() |
Page 784 |
034680,001476: # INPUT:
034681,001477: # 1. REFSMMAT.
034682,001478: # 2. CDUX, CDUY, CDUZ.
034683,001479: # 3. VELOCITY (REF) IN MPAC.
034684,001480:
034685,001481: # OUTPUT:
034686,001482: # 1. CDUSPOT: DOUBLE PRECISION CDU VECTOR, ORDERED Y,Z,X.
034687,001483: # 2. SINCDU: HALF SINES OF CDUSPOT COMPONENTS.
034688,001484: # 3. COSCDU: HALF COSINES OF CDUSPOT COMPONENTS.
034689,001485: # 4. MPAC: VELOCITY(LM) (SCALED AT 2(+7) METERS/CENTISECOND)
034690,001486:
034691,001487: # DEBRIS: NONE.
034692,001488:
034693,001489: # CHECKOUT STATUS: CODED.
034694,001490:
034695,001491: 27,3267 COUNT* $$/S41.1
034696,001492: 27,3267 76521 S41.1 MXV VSL1 # CONVERT VECTOR IN MPAC FROM REF AT 2(+7)
034697,001493: 27,3270 01734 REFSMMAT # TO SM AND RESCALE DUE TO HALFUNIT MATRIX
034698,001494: 27,3271 77650 GOTO # CONVERT TO BODY AT 2(+7) USING PRESENT
034699,001495: 27,3272 47646 CDU*SMNB # CDU ANGLES. CDU*SMNB WILL RETURN
034700,001496: # VIA RVQ TO THE CALLER OF S41.1
End of include-file P40-P47.agc. Parent file is MAIN.agc