Source Code
These source-code files were transcribed from scans made from Don Eyles's personal
copy of BURST120 (SUNBURST 120). They were scanned at archive.org's Boston
facility, and the scanning was sponsored by Mike Stewart. The code was transcribed
from these scans by a team of volunteers who are referenced in the program
comments. Comments from the original source code are in ALL-CAPS, whereas
comments added later in transcription are in Mixed-Case. In some cases, where
similar code blocks exist in previously-transcribed AGC programs (primarily
Luminary 99, from Apollo 11) those code blocks were used as a starting point and
then corrected to agree with the BURST120 scans. The full scans are available
at the Virtual AGC
project's collection at archive.org, while more-convenient reduced-size (but reduced-quality)
images are available at
the main Virtual AGC website. Report any errors noted by creating an
issue report at the Virtual AGC
project's GitHub repository. Notations on the program listing read, in part:YUL SYSTEM FOR AGC: REVISION 0 OF PROGRAM BURST120 BY NASA 2021106-031 DEC 7, 1967 THIS LISTING IS A COPY OF A VERSION OF THE PROGRAM INTENDED FOR USE IN THE ON-BOARD PRIMARY GUIDANCE COMPUTER IN THE UNMANNED FLIGHT OF APOLLO LUNAR MODULE 1 --- THE AS206 MISSION.Note that the date is the date of the printout, not the date of the program revision. |
025412,000002: ## Copyright: Public domain.
025413,000003: ## Filename: AOSTASK_AND_AOSJOB.agc
025414,000004: ## Purpose: A module for revision 0 of BURST120 (Sunburst). It
025415,000005: ## is part of the source code for the Lunar Module's
025416,000006: ## (LM) Apollo Guidance Computer (AGC) for Apollo 5.
025417,000007: ## Assembler: yaYUL
025418,000008: ## Contact: Ron Burkey <info@sandroid.org>.
025419,000009: ## Website: www.ibiblio.org/apollo/index.html
025420,000010: ## Mod history: 2016-09-30 RSB Created draft version.
025421,000011: ## 2016-10-19 MAS Transcribed.
025422,000012: ## 2016-10-30 RSB Typos.
025423,000013: ## 2016-12-06 RSB Comment-proofing with octopus/ProoferComments,
025424,000014: ## changes made.
025425,000015: ## 2017-06-09 RSB Made corrections identified while transcribing
025426,000016: ## SUNBURST 37.
025427,000017:
Page 605 |
025429,000019: # PROGRAM NAME: AOSTASK MOD. NO. 1 DATE: NOVEMBER 20, 1966
025430,000020:
025431,000021: # AUTHOR: JONATHAN D. ADDELSTON (ADAMS ASSOCIATES)
025432,000022:
025433,000023: # THIS "WAITLIST TASK" IS EXECUTED EVERY 2 SECONDS DURING ASCENT (APS) BURNS. IT ESTIMATES THE ACCELERATION DUE
025434,000024: # TO THE ENGINE OFF-SET. TO USE THESE ESTIMATES, IT ALSO CALCULATES TERMS TO ADD INTO THE LM DAP RATE DERIVATION
025435,000025: # AND WEIGHTING FACTORS FOR THE ESTIMATE OF AOS AND FOR THE RATE DERIVATION. FINALLY, IT ALSO SETS UP "AOSJOB"
025436,000026: # THROUGH THE EXECUTIVE TO CALCULATE FUMCTIONS OF THE AOS.
025437,000027:
025438,000028: # CALLING SEQUENCE:
025439,000029:
025440,000030: # L -1 CAF 2SECSDAP
025441,000031: # L TC WAITLIST
025442,000032: # EBANK= AOSQ
025443,000033: # L +1, +2 2CADR AOSTASK
025444,000034: # L +3 (RETURN)
025445,000035:
025446,000036: # NORMAL EXIT MODE: "TASKOVER" ALARM/ABORT MODE: NONE.
025447,000037:
025448,000038: # INPUT APSGOING/DAPBOOLS
025449,000039: # AOSQ,AOSR
025450,000040: # COEFCTR
025451,000041: # OLDWFORQ,OLDWFORR
025452,000042: # SUMRATEQ,SUMRATER
025453,000043: # OMEGAQ,OMEGAR
025454,000044:
In the following line, the printout appears to say AOSJ rather than AOSU, however I think it is clear from comparison with the printout of SUNBURST 37, and from the fact that AOSJ is not actually a symbol appearing elsewhere in the program, that it is a smudged form of AOSU. — RSB |
025460,000050: # OUTPUT AOSQ,AOSR,AOSU,AOSV
025461,000051: # AOSQTERM,AOSRTERM
025462,000052: # SUMRATEQ,SUMRATER
025463,000053: # KCOEFCTR
025464,000054:
025465,000055: # DEBRIS: A,L,ITEMP1,ITEMP2.
025466,000056:
025467,000057: # THE FOLLOWING LM DAP ERASABLES ARE ZEROED IN THE STARTDAP SECTION OF THE DAPIDLER PROGRAM AND THE COASTASC
025468,000058: # SECTION OF THE AOSTASK. THE ORDER MUST BE PRESERVED FOR THE INDEXING METHODS WHICH ARE EMPLOYED IN THOSE
025469,000059: # SECTIONS AND ELSEWHERE.
025470,000060:
025471,000061: # AOSQ ERASE +3 ASCENT OFFSET ACCELERATION ESTIMATES:
025472,000062: # AOSR EQUALS AOSQ +1 ESTIMATED EVERY 2 SECONDS BY AOSTASK.
025473,000063: # AOSU EQUALS AOSQ +2 U,V-AXES ACCS FORMED BY VECTOR ADDITION.
025474,000064: # AOSV EQUALS AOSQ +3 SCALED AT PI/2 RADIANS/SECOND(2).
025475,000065:
025476,000066: # AOSQTERM ERASE +1 (.1-.05K)AOS
025477,000067: # AOSRTERM EQUALS AOSQTERM +1 SCALED AT PI/4 RADIANS/SECOND.
025478,000068:
025479,000069: # NJ+Q ERASE +7 2 JET OVER-RIDE FLAGS:
025480,000070: # NJ-Q EQUALS NJ+Q +1 WHENEVER THE OFFSET ACCELERATION ABOUT
025481,000071: # NJ+R EQUALS NJ+Q +2 AN AXIS IS SO HIGH THAT 2 JETS COULD NOT
025482,000072: # NJ-R EQUALS NJ+Q +3 CONTROL ATTITUDE SUCCESSFULLY, THEN NJ
025483,000073: # NJ+U EQUALS NJ+Q +4 FOR THAT AXIS (IN THE DIRECTION OPPOSING
Page 606 |
025485,000075: # NJ-U EQUALS NJ+Q +5 AOS) IS SET TO 1. OTHERWISE, THE VALUE
025486,000076: # NJ+V EQUALS NJ+Q +6 IS ZERO. THESE FLAGS PREVENT TWO JETS
025487,000077: # NJ-V EQUALS NJ+Q +7 FROM BEING REQUESTED TO FIGHT THE AOS.
025488,000078:
Page 607 |
025490,000080:
025491,000081: # AOSTASK IS EXECUTED ONLY DURING POWERED ASCENT. IF NO LONGER IN POWERED ASCENT, STOP THE CYCLING OF AOSTASK AND
025492,000082: # SET UP VARIABLES FOR COASTING ASCENT.
025493,000083:
025494,000084: 20,3245 BANK 20
025495,000085: 20,3245 E6,1660 EBANK= AOSQ
025496,000086:
025497,000087: # KEEP TRACK OF LENGTH OF BURN FOR DETERMINATION OF WEIGHTING FACTOR K:
025498,000088:
025499,000089: 20,3245 31650 AOSTASK CAE KCOEFCTR # TEST KCOEFCTR FOR INITIAL PASS
025500,000090: 20,3246 00006 EXTEND
025501,000091: 20,3247 13376 BZF ZEROCOEF # GO TO DISCONTINUITY SECTION FOR COEFFA.
025502,000092:
025503,000093: 20,3250 63427 AD DEC-399 # TEST KCOEFCTR FOR CONSTANT RANGE WHICH
025504,000094: 20,3251 00006 EXTEND # OCCURS WHEN DURATION OF BURN IS EQUAL TO
025505,000095: 20,3252 63254 BZMF +2 # OR GREATER THAN 400 SECONDS. (SINCE
025506,000096: 20,3253 13402 TCF KONENOW # KCOEFCTR IS EVEN, 399 IS THE BREAK PT.)
025507,000097:
025508,000098: # FORM WEIGHTING FACTOR FOR ASCENT OFFSET ACCELERATION FILTER: COEFFA = 0.00125(T) + 0.25
025509,000099:
025510,000100: 20,3254 33416 CAF 0.00125 # COEFFA = 0.00125(T) + 0.25
025511,000101: 20,3255 00006 EXTEND
025512,000102: 20,3256 71650 MP KCOEFCTR # KCOEFCTR = T SCALED AT 2(+14)
025513,000103: 20,3257 37747 CAF BIT13 # (BIT13 = 1/4 = 0.25 SCALED AT 1.)
025514,000104: 20,3260 60001 AD L
025515,000105: 20,3261 54062 COEFFAST TS COEFFA # (VOLATILE STORAGE.)
025516,000106:
025517,000107: # FORM WEIGHTING FACTOR FOR RATE DERIVATION: K = 0.0014(T) + 0.44
025518,000108:
025519,000109: 20,3262 33417 CAF 0.0014 # K = 0.0014(T) + 0.44
025520,000110: 20,3263 00006 EXTEND
025521,000111: 20,3264 71650 MP KCOEFCTR # KCOEFCTR = T SCALED AT 2(+14)
025522,000112: 20,3265 33424 CAF 0.44
025523,000113: 20,3266 60001 AD L
025524,000114: 20,3267 54061 TS K # (VOLATILE STORAGE.)
025525,000115: 20,3270 40000 COM
025526,000116: 20,3271 67743 AD POSMAX # (1 BIT ERROR DOES DOES NOT COMPOUND.)
025527,000117: 20,3272 55642 TS (1-K) # (1-K) SCALED AT 1.
025528,000118:
025529,000119: 20,3273 00006 EXTEND
025530,000120: 20,3274 77750 MP BIT12
025531,000121: 20,3275 55643 TS (1-K)/8 # (1-K)/8 IS (1-K) SCALED AT 8.
025532,000122:
025533,000123: 20,3276 30061 CAE K # WFORP = WFORQR = K/DT = K/.1 = 10K
025534,000124: 20,3277 00006 EXTEND # SCALED AT 16/SECOND.
025535,000125: 20,3300 73425 MP 0.625 # (CHANGES SCALE FACTOR FROM 1 TO 16/SEC.)
025536,000126: 20,3301 55640 TS WFORP # WFORP IS IDENTICAL WFORQR EXCEPT FOR THE
025537,000127: 20,3302 55641 TS WFORQR # INITIALIZATION IN STARTDAP OF DAPIDLER.
025538,000128:
025539,000129: 20,3303 40061 CS K # FORM (.1-.05K) FROM K SCALED AT 1 FOR
025540,000130: 20,3304 00006 EXTEND # THE TORQUE VECTOR RECONSTRUCTION AND
Page 608 |
025542,000132: 20,3305 73421 MP 0.05 # ALSO FORM (.1-.05K) SCALED AT 1/2 FOR
025543,000133: 20,3306 63422 AD 0.1 # THE OFFSET ACCELERATION TERM IN THE RATE
025544,000134: 20,3307 60000 DOUBLE # EBANK6 FOR USE IN T5RUPT WHILE THE
025545,000135: 20,3310 54061 TS .1-.05K # LATTER IS VOLATILE AND USED IN THIS TASK
025546,000136:
025547,000137: # BEGIN ESTIMATE OF OFFSET ACCELERATION FOR Q,R-AXES:
025548,000138:
025549,000139: 20,3311 30062 COEFFA1 CAE COEFFA # FORM COEFFA(AOSQ):
025550,000140: 20,3312 00006 EXTEND
025551,000141: 20,3313 71660 MP AOSQ # FIRST TERM OF NEW AOSQ ESTIMATE:
025552,000142: 20,3314 55660 TS AOSQ # SCALED AT PI/2 RADIANS/SECOND(2).
025553,000143:
025554,000144: 20,3315 30062 CAE COEFFA # FORM COEFFA(AOSR):
025555,000145: 20,3316 00006 EXTEND
025556,000146: 20,3317 71661 MP AOSR # FIRST TERM OF NEW AOSR ESTIMATE:
025557,000147: 20,3320 55661 TS AOSR # SCALED AT PI/2 RADIANS/SECOMD(2).
025558,000148:
025559,000149: 20,3321 40062 CS COEFFA # FORM .5(1-COEFFA) SCALED AT 2 FROM THE
025560,000150: 20,3322 00006 EXTEND # COEFFA SCALED AT 1. COEFFA IS NOW THE
025561,000151: 20,3323 77747 MP BIT13 # SAME AS 2(COEFFA) SCALED AT 2, SO MUST
025562,000152: 20,3324 67747 AD BIT13 # MULTIPLY BY 1/4 TO GET .5(COEFFA). THEN,
025563,000153: 20,3325 54062 TS .5-.5COF # ADD 1/4 AS 1/2 SCALED AT 2 FOR RESULT.
025564,000154:
025565,000155: # FINISH OFFSET ACCELERATION ESTIMATES:
025566,000156:
025567,000157: # AOS = COEFFA (AOS ) + .5(1-COEFFA )(OMEGA -OMEGA -SUMRATE )
025568,000158: # T T T-2 T T T-2 T
025569,000159:
025570,000160: 20,3326 41416 CS OMEGAQ # SAVE PRESENT -OMEGAQ FOR NEXT PASS AND
025571,000161: 20,3327 57626 XCH OLDWFORQ # PICK UP -(LAST OMEGAQ) FROM OLDWFORQ.
025572,000162: 20,3330 00006 EXTEND
025573,000163: 20,3331 61624 SU SUMRATEQ # FORM: W - OLDW - SUMRATE = SUM (Q-AXIS).
025574,000164: 20,3332 61416 AD OMEGAQ # SCALED AT PI/4 RADIANS/SECOND.
025575,000165: 20,3333 00006 EXTEND
025576,000166: 20,3334 70062 MP .5-.5COF # AOSQ = COEFFA(AOSQ)+.5(1-COEFFA)(SUMQ)
025577,000167: 20,3335 27660 ADS AOSQ # SCALED AT PI/2 RADIANS/SECOND(2).
025578,000168:
025579,000169: 20,3336 41420 CS OMEGAR # SAVE PRESENT -OMEGAQ FOR NEXT PASS AND
025580,000170: 20,3337 57627 XCH OLDWFORR # PICK UP -(LAST OMEGAR) FROM OLDWFORR.
025581,000171: 20,3340 00006 EXTEND
025582,000172: 20,3341 61625 SU SUMRATER # FORM: W - OLDW - SUMRATE = SUM (R-AXIS).
025583,000173: 20,3342 61420 AD OMEGAR # SCALED AT PI/4 RADIANS/SECOND.
025584,000174: 20,3343 00006 EXTEND
025585,000175: 20,3344 70062 MP .5-.5COF # AOSR = COEFFA(AOSR)+.5(1-COEFFA)(SUMR)
025586,000176: 20,3345 27661 ADS AOSR # SCALED AT PI/2 RADIANS/SECOND(2).
025587,000177:
025588,000178: # CALCULATE THE OFFSET ACCELERATIONS FOR THE U,V-AXES:
025589,000179:
025590,000180: 20,3346 31660 CAE AOSQ # FIRST, CALCULATE AOSU:
025591,000181: 20,3347 61661 AD AOSR
Page 609 |
025593,000183: 20,3350 00006 EXTEND
025594,000184: 20,3351 73426 MP 0.70711
025595,000185: 20,3352 55662 TS AOSU # SCALED AT PI/2 RADIANS/SECOND(2).
025596,000186:
025597,000187: 20,3353 41660 CS AOSQ # THEN, CALCULATE AOSV:
025598,000188: 20,3354 61661 AD AOSR
025599,000189: 20,3355 00006 EXTEND
025600,000190: 20,3356 73426 MP 0.70711
025601,000191: 20,3357 55663 TS AOSV # SCALED AT PI/2 RADIANS/SECOND(2).
025602,000192:
025603,000193: # FORM TERMS FOR RATE DERIVATION:
025604,000194:
025605,000195: 20,3360 30061 CAE .1-.05K # FORM Q-AXIS RATE DERIVATION TERM:
025606,000196: 20,3361 00006 EXTEND
025607,000197: 20,3362 71660 MP AOSQ # AOSQTERM = (.1-.05K)AOSQ
025608,000198: 20,3363 55664 TS AOSQTERM # SCALED AT PI/4 RADIANS/SECOND.
025609,000199:
025610,000200: 20,3364 30061 CAE .1-.05K # FORM R-AXIS RATE DERIVATION TERM:
025611,000201: 20,3365 00006 EXTEND
025612,000202: 20,3366 71661 MP AOSR # AOSRTERM = (.1-.05K)AOSR
025613,000203: 20,3367 55665 TS AOSRTERM # SCALED AT PI/4 RADIANS/SECOND.
025614,000204:
025615,000205: # SET ERASABLES FOR NEXT 2 SECOND INTERVAL:
025616,000206:
025617,000207: 20,3370 37762 CAF TWO # INCREMENT BURN DURATION TIMER BY 2 SECS.
025618,000208: 20,3371 27650 ADS KCOEFCTR
025619,000209:
025620,000210: 20,3372 00006 EXTEND # SET UP SUMRATES
025621,000211: 20,3373 41623 DCS SAVRATEQ
025622,000212: 20,3374 53625 DXCH SUMRATEQ
025623,000213:
025624,000214: 20,3375 15735 TCF NOQRSM
025625,000215: # SPECIAL DISCONTINUITY SECTION FOR COEFFA ON FIRST PASS:
025626,000216:
025627,000217: 20,3376 37762 ZEROCOEF CAF TWO # INITIALIZE BURN DURATION TIMER TO TWO
025628,000218: 20,3377 55650 TS KCOEFCTR # SECONDS FOR THE DERIVATION OF K.
025629,000219:
025630,000220: 20,3400 37767 CAF ZERO # FOR THE FIRST PASS, SET COEFFA TO ZERO
025631,000221: 20,3401 13261 TCF COEFFAST # SINCE AOS ESTIMATES ARE NOW USELESS.
025632,000222:
025633,000223: # SPECIAL K AND COEFFA SETTINGS FOR BURNS LASTING 400 SECONDS OR MORE:
025634,000224:
025635,000225: 20,3402 00006 KONENOW EXTEND # K=1, SO 1-K AT EITHER SCALING IS ZERO.
025636,000226: 20,3403 33431 DCA DPZEROX # (1-K) SCALED AT 1.
025637,000227: 20,3404 53643 DXCH (1-K) # (1-K)/8 SCALED AT 8.
025638,000228:
025639,000229: 20,3405 33425 CAF 0.625 # WFORP = WFORQR = K/DT = K/.1 = 10K = 10
025640,000230: 20,3406 55640 TS WFORP # SCALED AT 16/SECOND.
025641,000231: 20,3407 55641 TS WFORQR
025642,000232:
Page 610 |
025644,000234: 20,3410 33422 CAF 0.1 # (.1-.05K) = 0.05 SINCE K = 1.
025645,000235: 20,3411 54061 TS .1-.05K # SCALED AT 1/2. (VOLATILE STORAGE.)
025646,000236:
025647,000237: 20,3412 35210 CAF BIT13-14 # COEFFA = 0.75
025648,000238: 20,3413 54062 TS COEFFA # SCALED AT 1. (VOLATILE STORAGE.)
025649,000239:
025650,000240: 20,3414 13311 TCF COEFFA1 # GO BEGIN OFFSET ACCELERATION ESTIMATE.
025651,000241:
025652,000242: # CONSTANTS FOR AOSTASK:
025653,000243:
025654,000244: 20,3415 00000 OCT 0 # TO PRESERVE LOCATION OF 1/ACCS.
025655,000245: 20,3416 00024 0.00125 DEC 0.00125
025656,000246: 20,3417 00027 0.0014 DEC 0.0014
025657,000247: 20,3420 00111 0.00444 DEC 0.00444
025658,000248: 20,3421 01463 0.05 DEC 0.05
025659,000249: 20,3422 03146 0.1 DEC 0.1
025660,000250: 20,3423 12000 0.3125 DEC 0.3125
025661,000251: 20,3424 16051 0.44 DEC 0.44
025662,000252: 20,3425 24000 0.625 DEC 0.625
025663,000253: 20,3426 26501 0.70711 DEC 0.70711
025664,000254: 20,3427 77160 DEC-399 DEC -399 B-14
025665,000255: 20,3430 00000 00000 DPZEROX 2DEC 0 B-28
025666,000256:
025667,000257: 20,3432 00310 2SECSDAP DEC 200 B-14
025668,000258: 20,3433 20000 (1-K)S DEC 0.5
025669,000259: 20,3434 02000 DEC 0.0625
025670,000260:
Page 611 |
025672,000262: # PROGRAM NAME: WCHANGER MOD. NO. 0 DATE: DECEMBER 9, 1966
025673,000263:
025674,000264: # THIS PROGRAM IS A WAITLIST TASK WHICH IS INITIATED FROM THE STARTDAP SECTION OF DAPIDLER. IT IS EXECUTED
025675,000265: # BETWEEN THE FIRST Q,R-AXES T5RUPT AND THE SECOND P-AXIS T5RUPT (I.E. 180 MS AFTER STARTDAP). THE PURPOSE OF
025676,000266: # WCHANGER IS TO RESET THE VARIABLE K (IN ALL ITS FORMS) FOR THE RATE DERIVATION FROM 1 TO 0.5. (IT ALSO SETS THE
025677,000267: # NOMINAL LM DAP DT TO 100 MS.)
025678,000268:
025679,000269: # CALLING SEQUENCE (FROM STARTDAP):
025680,000270:
025681,000271: # L -1 CAF 180MS
025682,000272: # L TC WAITLIST
025683,000273: # EBANK= WFORQR
025684,000274: # L +1 2CADR WCHANGER
025685,000275: # L +2 (BBCON)
025686,000276: # L +3 (RETURN)
025687,000277:
025688,000278: # SUBROUTINES CALLED: WCHANGE. NORMAL EXIT: TASKOVER.
025689,000279:
025690,000280: # INPUT: NONE. ALARM/ABORT EXITS: NONE.
025691,000281:
025692,000282: # OUTPUT: WFORP,WFORQR,(1-K),(1-K)/8.
025693,000283:
025694,000284: 20,3435 05270 WCHANGER TC IBNKCALL # (WAITLIST TASK IS IN T3RUPT.)
025695,000285: 20,3436 40162 FCADR WCHANGE # SUBROUTINE DOES SETTING TO SAVE SPACE.
025696,000286: # WE RETURN FROM WCHANGE WITH RANDOM EBANK, BUT WHO CARES.
025697,000287: 20,3437 15727 TCF TASKOVER # END THIS TASK.
025698,000288:
Page 612 |
025700,000290: # INERPOLY COMPUTES IXX, IYY, IZZ, AND IN DESCENT, L,PVT-CG, ACCDOTQ, ACCDOTR,KQ,KQ2, KRDAP, KR2..
025701,000291: # AFTER THE INERTIAS ARE COMPUTED, THEY ARE USED TO COMPUTE NEW VALUES OF
025702,000292: # 1JACC, 1JACCQ, 1JACCR, 1JACCU, 1JACCV AND 1/2JTSP.
025703,000293: # INERPOLY EXITS BY .... TCF ENDOFJOB
025704,000294:
025705,000295:
025706,000296: 26,2713 BANK 26
025707,000297: 26,2713 E6,1452 EBANK= IXX
025708,000298: 26,2713 37762 1/ACCS CA BIT2
025709,000299: 26,2714 00006 EXTEND
025710,000300: 26,2715 02030 RAND 30
025711,000301: 26,2716 10000 CCS A # CHOOSES ASCENT OR DESCENT COEF
025712,000302: 26,2717 46311 CS THREE
025713,000303: 26,2720 66306 AD SIX
025714,000304: 26,2721 55621 TS INERCTRX
025715,000305:
025716,000306: 26,2722 37762 CAF TWO
025717,000307: 26,2723 55620 STCTR TS INERCTR # J=2,1,0 FOR IZZ,IYY,IXX
025718,000308:
025719,000309: 26,2724 00006 EXTEND
025720,000310: 26,2725 27621 DIM INERCTRX # JX=5,4,3 OR 2,1,0 FOR Z,Y,X COEF
025721,000311:
025722,000312: 26,2726 31320 STCTR1 CA MASS # IN KGS (+15)
025723,000313: 26,2727 00006 EXTEND
025724,000314: 26,2730 51621 INDEX INERCTRX
025725,000315: 26,2731 73136 MP INERCONC
025726,000316: 26,2732 51621 INDEX INERCTRX
025727,000317: 26,2733 63145 AD INERCONB
025728,000318: 26,2734 00006 EXTEND
025729,000319: 26,2735 71320 MP MASS
025730,000320: 26,2736 51621 INDEX INERCTRX
025731,000321: 26,2737 63154 AD INERCONA
025732,000322: 26,2740 51620 INDEX INERCTR
025733,000323: 26,2741 55452 TS IXX # I(J)=(C(JX)MASS+B(JX))MASS+A(JX) (+18)
025734,000324: # I(-1)=L,PVT-CG (+6)
025735,000325:
025736,000326: 26,2742 11620 CCS INERCTR # COUNTER 2,1,0,-1
025737,000327: 26,2743 12723 TCF STCTR
025738,000328: 26,2744 12746 TCF COMMEQS
025739,000329: 26,2745 13014 TCF LRESC
025740,000330:
025741,000331: 26,2746 00006 COMMEQS EXTEND
025742,000332: 26,2747 33163 DCA TORKJET # 500 FT-LBS. (+16) PI
025743,000333: 26,2750 00006 EXTEND
025744,000334: 26,2751 11452 DV IXX
025745,000335: 26,2752 55613 TS 1JACC # SCALED BY PI/4
025746,000336:
025747,000337: 26,2753 00006 EXTEND
025748,000338: 26,2754 33165 DCA TORKJET1 # 550 FT-LBS. (+16) PI
025749,000339:
Page 613 |
025751,000341: 26,2755 00006 EXTEND
025752,000342: 26,2756 11453 DV IYY
025753,000343: 26,2757 55614 TS 1JACCQ # SCALED BY PI/4
025754,000344:
025755,000345: 26,2760 00006 EXTEND
025756,000346: 26,2761 33165 DCA TORKJET1 # 550 FT-LBS. (+16) PI
025757,000347: 26,2762 00006 EXTEND
025758,000348: 26,2763 11454 DV IZZ
025759,000349: 26,2764 55615 TS 1JACCR # SCALED BY PI/4
025760,000350:
025761,000351: 26,2765 61614 AD 1JACCQ
025762,000352: 26,2766 00006 EXTEND
025763,000353: 26,2767 73170 MP 0.35356 # .70711 SCALED BY (+1)
025764,000354: 26,2770 55616 TS 1JACCU
025765,000355: 26,2771 55617 TS 1JACCV # SCALED BY PI/4
025766,000356:
025767,000357: 26,2772 33166 CAF 4JTORK
025768,000358: 26,2773 55451 TS TEMPINER
025769,000359: 26,2774 31452 CAE IXX
025770,000360: 26,2775 22007 ZL
025771,000361: 26,2776 00006 EXTEND
025772,000362: 26,2777 11451 DV TEMPINER
025773,000363: 26,3000 60000 DOUBLE
025774,000364: 26,3001 55440 TS 1/2JTSP # SCALED BY 1/PI (+8)
025775,000365:
025776,000366: 26,3002 37762 CAF BIT2
025777,000367: 26,3003 00006 EXTEND
025778,000368: 26,3004 02030 RAND 30
025779,000369: 26,3005 10000 CCS A # COMPUTE L,PVT-CG IF IN DESCENT
025780,000370: 26,3006 13010 TCF DES
025781,000371: 26,3007 13132 TCF CONT1/AC
025782,000372: 26,3010 47763 DES CS ONE
025783,000373: 26,3011 55620 TS INERCTR
025784,000374: 26,3012 55621 TS INERCTRX
025785,000375: 26,3013 12726 TCF STCTR1
025786,000376:
025787,000377: 26,3014 31451 LRESC CA TEMPINER # SCALED AT (+6)
025788,000378: 26,3015 00006 EXTEND
025789,000379: 26,3016 77760 MP BIT4
025790,000380: 26,3017 23450 LXCH L,PVT-CG # SCALED AT 2(+3)
025791,000381:
025792,000382: 26,3020 33173 CA GFACT
025793,000383: 26,3021 54144 TS MPAC # FOR DIVISION LATER
025794,000384:
025795,000385: # THIS SECTION COMPUTES THE RATE OF CHANGE OF ACCELERATION DUE TO THE ROTATION OF THE GIMBALS. THE EQUATION IMPLE
025796,000386: # MENTED IN BOTH THE Y-X PLANE AND THE Z-X PLANE IS -- D(ALPHA)/DT = TL/I*D(DELTA)/DT , WHERE
025797,000387: # T = ENGINE THRUST FORCE
025798,000388: # L = PIVOT TO CG DISTANCE OF ENGINE
025799,000389: # I = MOMENT OF INERTIA
025800,000390:
Page 614 |
025802,000392: 26,3022 E5,1534 EBANK= ABDELV
025803,000393: 26,3022 35661 CA EBANK5 # CHANGE EBANK TO GET ABDELV
025804,000394: 26,3023 22000 LXCH A # THIS IS NECESSARY TO PRESERVE A WHILE
025805,000395: 26,3024 22003 LXCH EBANK # SWITCHING EBANKS
025806,000396:
025807,000397: 26,3025 31534 CAE ABDELV # SCALED AT 2(13) CM/SEC(2)
025808,000398: 26,3026 22003 LXCH EBANK # RESTORE EBANK LEAVING A UNHARMED
025809,000399:
025810,000400: 26,3027 E6,1452 EBANK= IXX
025811,000401:
025812,000402: 26,3027 00006 EXTEND
025813,000403: 26,3030 71320 MP MASS # SCALED AT 2(15) KG.
025814,000404: 26,3031 00006 EXTEND
025815,000405: 26,3032 10144 DV MPAC # CONTAINS GFACT
025816,000406: # MASS IS DIVIDED BY ACCELERATION OF GRAVITY IN ORDER TO MATCH THE UNITS OF IXX,IYY,IZZ, WHICH ARE SLUG-FT(2).
025817,000407: # THE RATIO OF ACCELERATION FROM PIPAS TO ACCELERATION OF GRAVITY IS THE SAME IN METRIC OR ENGINEERING UNITS, SO
025818,000408: # THAT IS UNCONVERTED. 2.20462 CONVERTS KG. TO LB. NOW T IS IN A SCALED AT 2(14).
025819,000409:
025820,000410: 26,3033 00006 EXTEND
025821,000411: 26,3034 73174 MP DELDOT26 # .2 DEG/SEC AT PI/64 RADIANS/SECOND
025822,000412: 26,3035 00006 EXTEND
025823,000413: 26,3036 71450 MP L,PVT-CG # SCALED AT 8 FEET.
025824,000414: 26,3037 00004 INHINT
025825,000415: 26,3040 52145 DXCH MPAC # SINCE THIS IS A JOB, MPAC IS AVAILABLE
025826,000416: 26,3041 00006 EXTEND
025827,000417: 26,3042 30145 DCA MPAC
025828,000418: 26,3043 00006 EXTEND
025829,000419: 26,3044 11454 DV IZZ # SCALED AT 2(18) SLUG-FT(2)
025830,000420: 26,3045 55534 TS ACCDOTR # SCALED AT PI/2(7)
025831,000421: 26,3046 00006 EXTEND
025832,000422: 26,3047 30145 DCA MPAC
025833,000423: 26,3050 00006 EXTEND
025834,000424: 26,3051 11453 DV IYY # SCALED AT 2(18) SLUG-FT(2)
025835,000425: 26,3052 55532 TS ACCDOTQ # SCALED AT PI/2(7)
025836,000426: 26,3053 00006 EXTEND
025837,000427: 26,3054 73167 MP DGBF # .3ACCDOTQ SCALED AT PI/2(8)
025838,000428: 26,3055 55526 TS KQ
025839,000429: 26,3056 00006 EXTEND
025840,000430: 26,3057 70000 SQUARE
025841,000431: 26,3060 55527 TS KQ2 # KQ(2)
025842,000432:
025843,000433: 26,3061 31534 CAE ACCDOTR # .3ACCDOTR AT PI/2(8)
025844,000434: 26,3062 00006 EXTEND
025845,000435: 26,3063 73167 MP DGBF
025846,000436: 26,3064 55530 TS KRDAP
025847,000437: 26,3065 00006 EXTEND
025848,000438: 26,3066 70000 SQUARE
025849,000439: 26,3067 55531 TS KR2
025850,000440:
025851,000441: 26,3070 00006 EXTEND # NOW COMPUTE QACCDOT, RACCDOT, THE SIGNED
Page 615 |
025853,000443: 26,3071 00012 READ 12 # JERK TERMS. STORE CHANNEL 12, WITH GIM
025854,000444: 26,3072 54145 TS MPAC +1 # BAL DRIVE BITS 9 THROUGH 12. SET LOOP
025855,000445: 26,3073 37762 CAF BIT2 # INDEX TO COMPUTE RACCDOT, THEN QACCDOT.
025856,000446: 26,3074 13076 TCF LOOP3
025857,000447: 26,3075 37767 CAF ZERO # ACCDOTQ AND ACCDOTR ARE NOT NEGATIVE,
025858,000448: 26,3076 54144 LOOP3 TS MPAC # BECAUSE THEY ARE MAGNITUDES
025859,000449: 26,3077 30145 CA MPAC +1
025860,000450: 26,3100 50144 INDEX MPAC # MASK CHANNEL IMAGE FOR ANY GIMBAL MOTION
025861,000451: 26,3101 73125 MASK GIMBLBTS
025862,000452: 26,3102 00006 EXTEND
025863,000453: 26,3103 13117 BZF ZACCDOT # IF NONE, Q(R)ACCDOT IS ZERO.
025864,000454: 26,3104 30145 CA MPAC +1
025865,000455: 26,3105 50144 INDEX MPAC # GIMBAL IS MOVING. IS ROTATION POSITIVE.
025866,000456: 26,3106 73126 MASK GIMBLBTS +1
025867,000457: 26,3107 00006 EXTEND
025868,000458: 26,3110 13114 BZF FRSTZERO # IF NOT POSITIVE, BRANCH
025869,000459: 26,3111 50144 INDEX MPAC # POSITIVE ROTATION, NEGATIVE Q(R)ACCDOT.
025870,000460: 26,3112 41532 CS ACCDOTQ
025871,000461: 26,3113 13120 TCF STACCDOT
025872,000462: 26,3114 50144 FRSTZERO INDEX MPAC # NEGATIVE ROTATION, POSITIVE Q(R)ACCDOT.
025873,000463: 26,3115 31532 CA ACCDOTQ
025874,000464: 26,3116 13120 TCF STACCDOT
025875,000465: 26,3117 37767 ZACCDOT CAF ZERO
025876,000466: 26,3120 50144 STACCDOT INDEX MPAC
025877,000467: 26,3121 55533 TS QACCDOT # STORE Q(R)ACCDOT, COMPLEMENTED.
025878,000468: 26,3122 10144 CCS MPAC
025879,000469: 26,3123 13075 TCF LOOP3 -1 # NOW DO QACCDOT.
025880,000470: 26,3124 13131 TCF +5 # LOOP COMPLETED. RELINT IS SAFE NOW.
025881,000471: 26,3125 01400 GIMBLBTS OCTAL 01400
025882,000472: 26,3126 00400 OCTAL 00400 # BECAUSE OF TRIM GIMBAL POLARITY CHANGE,
025883,000473: 26,3127 06000 OCTAL 06000 # THESE BIT VALUES CAUSE Q(R)ACCDOT TO BE
025884,000474: 26,3130 02000 OCTAL 02000 # GENERATED WITH INVERTED SIGN.
025885,000475:
025886,000476: 26,3131 00003 RELINT
025887,000477:
025888,000478: 26,3132 00006 CONT1/AC EXTEND
025889,000479: 26,3133 33172 DCA CONTCADR
025890,000480: 26,3134 52005 DTCF
025891,000481: 26,3135 37573 DEC 0.99191
025892,000482: 26,3136 77763 INERCONC DEC -.00071
025893,000483: 26,3137 46570 DEC -.78952
025894,000484: 26,3140 46556 DEC -.79009
025895,000485: 26,3141 00051 DEC 0.00249
025896,000486: 26,3142 54334 DEC -.61154
025897,000487: 26,3143 54406 DEC -.60892
025898,000488: 26,3144 46353 DEC -.79812
025899,000489: 26,3145 05463 INERCONB DEC 0.17497
025900,000490: 26,3146 26214 DEC 0.69605
025901,000491: 26,3147 25021 DEC 0.65726
025902,000492: 26,3150 05676 DEC 0.18347
Page 616 |
025904,000494: 26,3151 05006 DEC 0.15660
025905,000495: 26,3152 12613 DEC 0.33662
025906,000496: 26,3153 06364 DEC 0.20239
025907,000497: 26,3154 00012 INERCONA DEC 0.00064
025908,000498: 26,3155 75650 DEC -.06778
025909,000499: 26,3156 76334 DEC -.04904
025910,000500: 26,3157 77740 DEC -.00192
025911,000501: 26,3160 00043 DEC 0.00211
025912,000502: 26,3161 77446 DEC -.01324
025913,000503: 26,3162 00047 31173 TORKJET 2DEC 0.002428512
025914,000504:
025915,000505: 26,3164 00053 30441 TORKJET1 2DEC 0.002671365
025916,000506:
025917,000507: 26,3166 23712 4JTORK DEC .62170
025918,000508: 26,3167 23146 DGBF DEC 0.6 # .3 SCALED AT 1/2
025919,000509: 26,3170 13241 0.35356 DEC 0.35356 # 0.70711 SCALED AT +1
025920,000510:
025921,000511:
025922,000512:
025923,000513: 26,3171 41440 03440 CONTCADR 2FCADR 1/ACCONT
025924,000514:
025925,000515: 26,3173 00674 GFACT OCTAL 00674 # 979.24/2.20462 SCALED AT 2(14)
025926,000516: 26,3174 02215 DELDOT26 DEC .07111 # 0.2 DEG/SEC SCALED AT PI/64 RAD/SEC
025927,000517:
Page 617 |
025929,000519: # PROGRAM NAME: 1/ACCONT MOD. NO. 2 DATE: JANUARY 9, 1967
025930,000520: # PROGRAM DESIGN BY: RICHARD D. GOSS (MIT/IL)
025931,000521:
025932,000522: # IMPLEMENTATION BY: JONATHAN D. ADDELSTON (ADAMS ASSOCIATES)
025933,000523:
025934,000524: # LAST MODIFICATION BY: JONATHAN D. ADDELSTON
025935,000525: # THIS PROGRAM IS PART OF AN EXECUTIVE JOB AND CALCULATES:
025936,000526:
025937,000527: # 1. THE INVERSES OF THE NET ACCELERATIONS ABOUT ALL AXES (Q,R,U,V), IN ALL DIRECTIONS (+/-), AND ALL
025938,000528: # COMBINATIONS OF JETS (2/4 FOR Q,R AND 1/2 FOR U,V).
025939,000529: # 2. THE INVERSES OF THE MINIMUM ACCELERATIONS FOR THE URGENCY AND TJETLAW COMPUTATION, DURING APS BURNS.
025940,000530: # 3. THE INITIAL INVERSE NET ACCELERATIONS USED FOR THE URGENCY COMPUTATION, DURING APS BURNS.
025941,000531: # 4. THE NJ FLAGS TO REQUIRE MANDATORY JET ACCELERATION DURING APS BURNS.
025942,000532:
025943,000533: # SUBROUTINES CALLED: INVACC.
025944,000534:
025945,000535: # CALLING SEQUENCE: CONTROL IS TRANSFERRED HERE FROM 1/ACCS SECTION.
025946,000536:
025947,000537: # NORMAL EXIT: ENDOFJOB. ALARM/ABORT EXITS: NONE.
025948,000538:
025949,000539: # INPUT: AOSQ,AOSR,AOSU,AOSV,1JACCQ,1JACCR,1JACCU,1JACCV,APSGOING/DAPBOOLS.
025950,000540:
025951,000541: # DEBRIS: NONE.
025952,000542:
Page 618 |
025954,000544: 20,3440 BANK 20
025955,000545: 20,3440 E6,1660 EBANK= AOSQ
025956,000546:
025957,000547: # SET UP LOOP FOR FOUR AXES (IN THE ORDER: V,U,R,Q):
025958,000548:
025959,000549: 20,3440 36311 1/ACCONT CAF THREE # JOBAXES IS USED TO PICK UP ONE OF FOUR.
025960,000550: 20,3441 54144 INVLOOP TS JOBAXES # ADJACENT REGISTERS, ALSO TO COUNT LOOP.
025961,000551:
025962,000552: # SET UP "TABPLACE" TO STORE 1/NETACC TABLE:
025963,000553:
025964,000554: 20,3442 00006 EXTEND # TABPLACE = 4(JOBAXES)
025965,000555: 20,3443 77761 MP FOUR # SINCE THERE ARE FOUR ENTRIES PER AXIS.
025966,000556: 20,3444 22146 LXCH TABPLACE
025967,000557:
025968,000558: # 2
025969,000559: # 2(1JACC ) + AOS - 0.02 RADIANS/SECOND GREATER THAN ZERO
025970,000560: # Q,R Q,R
025971,000561: # OR 2
025972,000562: # 1JACC + AOS - 0.02 RADIANS/SECOND GREATER THAN ZERO
025973,000563: # U,V U,V
025974,000564:
025975,000565: 20,3445 50144 INDEX JOBAXES # THE INDEXED PICK-UP OF JET ACCELERATIONS
025976,000566: 20,3446 31614 CAE 1JACCQ # USES THE FOLLOWING HAPPY COINCIDENCE:
025977,000567: 20,3447 54150 TS TEMPACC # 1JACCU AND 1JACCV ARE SCALED AT PI/2 AS
025978,000568: 20,3450 50144 INDEX JOBAXES # ARE AOSU AND AOSV. 1JACCQ AND 1JACCR
025979,000569: 20,3451 61660 AD AOSQ # ARE SCALED AT PI/4 AND THEREFORE ARE
025980,000570: 20,3452 54151 TS TEMPNET # EQUIVALENT TO 2(1JACCQ) AND 2(1JACCR)
025981,000571: 20,3453 63753 AD -.02R/S2 # SCALED AT PI/2, AS ARE AOSQ AND AOSR.
025982,000572: 20,3454 00006 EXTEND
025983,000573: 20,3455 63754 BZMF FIFTY1 # (BRANCH FOR CONSTANT VALUE OF INVERSE.)
025984,000574:
025985,000575: # 1/NET+2 = 1/( 2(1JACC ) + AOS )
025986,000576: # Q,R Q,R Q,R
025987,000577: # OR
025988,000578: # 1/NET+1 = 1/( 1JACC + AOS )
025989,000579: # U,V U,V U,V
025990,000580:
025991,000581: 20,3456 03762 TC INVACC
025992,000582: 20,3457 50146 FIFTY1R INDEX TABPLACE
025993,000583: 20,3460 55676 TS 1/NET+2Q # SCALED AT 2(+8)/PI SECONDS(2)/RADIAN.
025994,000584:
025995,000585: # 2
025996,000586: # 2(1JACC ) - AOS - 0.02 RADIANS/SECOND GREATER THAN ZERO
025997,000587: # Q,R Q,R
025998,000588: # OR 2
025999,000589: # 1JACC - AOS - 0.02 RADIANS/SECOND GREATER THAN ZERO
026000,000590: # U,V U,V
026001,000591:
026002,000592: 20,3461 50144 INDEX JOBAXES # THIS SECTION USES THE INDEXING TRICKS OF
026003,000593: 20,3462 41660 CS AOSQ # THE FIRST PART (ABOVE), BUT USES THE
Page 619 |
026005,000595: 20,3463 54147 TS TEMPAOS # TEMPORARY LOCATIONS AS FOLLOWS:
026006,000596: 20,3464 60150 AD TEMPACC # "TEMPAOS" SAVES -AOS FOR THIS AXIS.
026007,000597: 20,3465 54151 TS TEMPNET # "TEMPACC" HAS THE JET ACCELERATION.
026008,000598: 20,3466 63753 AD -.02R/S2 # C(TEMPNET) ARE (JETACC-AOS) FOR DENOM.
026009,000599: 20,3467 00006 EXTEND
026010,000600: 20,3470 63756 BZMF FIFTY2 # (BRANCH FOR CONSTANT VALUE OF INVERSE.)
026011,000601:
026012,000602: # 1/NET-2 = 1/( 2(1JACC ) - AOS )
026013,000603: # Q,R Q,R Q,R
026014,000604: # OR
026015,000605: # 1/NET-1 = 1/( 1JACC - AOS )
026016,000606: # U,V U,V U,V
026017,000607:
026018,000608: 20,3471 03762 TC INVACC
026019,000609: 20,3472 50146 FIFTY2R INDEX TABPLACE
026020,000610: 20,3473 55700 TS 1/NET-2Q # SCALED AT 2(+8)/PI SECONDS(2)/RADIAN.
026021,000611:
026022,000612: # 1/NET-4 = 1/( 4(1JACC ) - AOS )
026023,000613: # Q,R Q,R Q,R
026024,000614: # OR
026025,000615: # 1/NET-2 = 1/( 2(1JACC ) - AOS )
026026,000616: # U,V U,V U,V
026027,000617:
026028,000618: 20,3474 30150 CAE TEMPACC # FIRST, FROM 2(1JACCQ,R) FORM 4(1JACCQ,R)
026029,000619: 20,3475 60000 DOUBLE # OR FROM 1JACCU,V FORM 2(1JACCU,V) AND
026030,000620: 20,3476 54150 TS TEMPACC # SAVE FOR NEXT INVERSE CALCULATION.
026031,000621: 20,3477 60147 AD TEMPAOS # THEN, COMPUTE EITHER 4(1JACCQ,R)-AOSQ,R
026032,000622: 20,3500 54151 TS TEMPNET # OR 2(1JACCU,V)-AOSU,V SCALED AT PI/2.
026033,000623:
026034,000624: 20,3501 03762 TC INVACC
026035,000625: 20,3502 50146 INDEX TABPLACE
026036,000626: 20,3503 55701 TS 1/NET-4Q # SCALED AT 2(+8)/PI SECONDS(2)/RADIAN.
026037,000627:
026038,000628: # 1/NET+4 = 1/( 4(1JACC ) + AOS )
026039,000629: # Q,R Q,R Q,R
026040,000630: # OR
026041,000631: # 1/NET+2 = 1/( 2(1JACC ) + AOS )
026042,000632: # U,V U,V U,V
026043,000633:
026044,000634: 20,3504 40147 CS TEMPAOS # FIRST, COMPUTE EITHER 4(1JACCQ,R)+AOSQ,R
026045,000635: 20,3505 60150 AD TEMPACC # OR 2(1JACCU,V)+AOSU,V AND SAVE FOR THE
026046,000636: 20,3506 54151 TS TEMPNET # DIVISION (SCALED AT PI/2 RADIANS/SECOND)
026047,000637:
026048,000638: 20,3507 03762 TC INVACC
026049,000639: 20,3510 50146 INDEX TABPLACE
026050,000640: 20,3511 55677 TS 1/NET+4Q # SCALED AT 2(+8)/PI RADIANS(2)/SECOND.
026051,000641:
026052,000642: # TEST FOR END OF LOOP:
026053,000643:
026054,000644: 20,3512 10144 CCS JOBAXES # IF "JOBAXES" PNZ, CONTINUE.
Page 620 |
026056,000646: 20,3513 13441 TCF INVLOOP # IF "JOBAXES" ZERO, STOP.
026057,000647:
026058,000648: # TEST FOR ASCENT PROPULSION SYSTEM BURN:
026059,000649:
026060,000650: 20,3514 37754 CAF APSGOING # IF LM IS IN COAST OR IN A DESCENT BURN,
026061,000651: 20,3515 70077 MASK DAPBOOLS # THEN THE AOSJOB IS TRIVIAL FROM HERE
026062,000652: 20,3516 10000 CCS A # AND THIS TEST REDUCES THE COMPUTATION
026063,000653: 20,3517 13531 TCF ASCJOB # TIME IN THOSE CASES.
026064,000654:
026065,000655: # FILL IN DESCENT BURN OR COAST VALUES QUICKLY:
026066,000656:
026067,000657: 20,3520 31676 CAE 1/NET+2Q # FOR Q-AXIS URGENCY.
026068,000658: 20,3521 55717 TS 1/ACCQ
026069,000659: 20,3522 31702 CAE 1/NET+2R # FOR R-AXIS URGENCY.
026070,000660: 20,3523 55720 TS 1/ACCR
026071,000661:
026072,000662: 20,3524 00004 INHINT
026073,000663: 20,3525 40077 POPNONJ CS DAPBOOLS # SET BIT TO INDICATE DATA GOOD.
026074,000664: 20,3526 77761 MASK DATAGOOD
026075,000665: 20,3527 26077 ADS DAPBOOLS
026076,000666: 20,3530 15567 TCF ENDOFJOB # END THIS ITERATION OF AOSJOB.
026077,000667:
Page 621 |
026079,000669: # IN ASCENT BURN, SO SET UP Q,R-AXES LOOP:
026080,000670:
026081,000671: 20,3531 36311 ASCJOB CAF THREE # SET UP THE TABLE INDICES:
026082,000672: 20,3532 54144 QRJOB TS JOBAXES
026083,000673: 20,3533 60000 DOUBLE # AOS TABLE USES "JOBAXES" (ADJACENT).
026084,000674: 20,3534 54145 TS NJPLACE # NJ TABLE USES "NJPLACE" (ONE APART).
026085,000675: 20,3535 60000 DOUBLE # NET TABLE USES "TABPLACE" (THREE APART).
026086,000676: 20,3536 54146 TS TABPLACE
026087,000677:
026088,000678: # 2
026089,000679: # TEST ABVAL(AOS ) - 0.02 RADIANS/SECOND GREATER THAN ZERO:
026090,000680: # Q,R
026091,000681:
026092,000682: 20,3537 50144 INDEX JOBAXES # FORM ABVAL(AOS ) AND SAVE FOR INVACC.
026093,000683: 20,3540 11660 CCS AOSQ # Q,R
026094,000684: 20,3541 67763 AD ONE
026095,000685: 20,3542 13544 TCF +2
026096,000686: 20,3543 67763 AD ONE
026097,000687: 20,3544 54151 TS TEMPNET
026098,000688: 20,3545 63753 AD -.02R/S2 # -0.02 RADIANS/SECOND(2) AT PI/2
026099,000689: 20,3546 00006 EXTEND
026100,000690: 20,3547 63760 BZMF FIFTY3 # (BRANCH FOR CONSTANT VALUE OF INVERSE.)
026101,000691:
026102,000692: # CALCULATE 1/AMIN = 1/ABVAL(AOS ):
026103,000693: # Q,R Q,R
026104,000694:
026105,000695: 20,3550 03762 TC INVACC # (USE SUBROUTINE FOR INVERSE.)
026106,000696: 20,3551 50144 FIFTY3R INDEX JOBAXES
026107,000697: 20,3552 55721 TS 1/AMINQ # SAVE FOR USE BY URGENCY CALCULATIONS.
026108,000698:
026109,000699: 20,3553 40144 CS JOBAXES # 2 - C(JOBAXES) CAUSES A BRANCH ONLY WHEN
026110,000700: 20,3554 67762 AD TWO # C(JOBAXES) = 3 OR 2, I.E. WHEN DOING
026111,000701: 20,3555 00006 EXTEND # U- OR V-AXIS PASS OF LOOP ONLY SET UP
026112,000702: 20,3556 63703 BZMF UVNEXT # 1/AMINU OR 1/AMINV, RESPECTIVELY.
026113,000703:
026114,000704: # 2
026115,000705: # TEST 2(1JACC ) - ABVAL(AOS ) - 0.06 RADIANS/SECOND GREATER THAN ZERO:
026116,000706: # Q,R Q,R
026117,000707:
026118,000708: 20,3557 40151 CS TEMPNET # "TEMPNET" IS ABVAL(AOSQ,R).
026119,000709: 20,3560 50144 INDEX JOBAXES # SAVE -ABVAL(AOSQ,R) FOR USE IN THE
026120,000710: 20,3561 54152 TS ABVLAOSQ # U,V-AXIS NJ COMPUTATION BELOW.
026121,000711: 20,3562 61655 AD -.06R/S2 # -0.06 RADIANS/SECOND(2) SCALED AT PI/2.
026122,000712: 20,3563 50144 INDEX JOBAXES
026123,000713: 20,3564 61614 AD 1JACCQ # "1JACCQ,R" SCALED AT PI/4 RAD/SEC(2) ARE
026124,000714: 20,3565 00006 EXTEND # 2(1JACCQ,R) SCALED AT PI/2 RAD/SEC(2).
026125,000715: 20,3566 63630 BZMF OVERRIDE
026126,000716:
026127,000717: # SET FLAG NOT TO REQUEST MANDATORY FOUR JET OPERATION FOR +Q,+R ROTATION DURING THIS APS BURN (FOR NOW):
Page 622 |
026129,000719: 20,3567 37767 CAF ZERO # NJ = 0 ALLOWS THE URGENCY FUNCTIONS TO
026130,000720: 20,3570 50145 INDEX NJPLACE # ACTUALLY SELECT 2 JET ROTATION AS THE
026131,000721: 20,3571 55666 TS NJ+Q # OPTIMAL POLICY.
026132,000722:
026133,000723: # TEST SIGN(AOS ):
026134,000724: # Q,R
026135,000725:
026136,000726: 20,3572 50144 INDEX JOBAXES # THE SIGN OF AOSQ,R DETERMINES THE RATIO
026137,000727: 20,3573 31660 CAE AOSQ # TO BE COMPUTED AS THE CORRECTION FACTOR
026138,000728: 20,3574 00006 EXTEND # IN THE URGENCY FUNCTION CALCULATION AND
026139,000729: 20,3575 63613 BZMF URGRAT2 # ALSO SPECIFIES THE CURRECT NJ VALUES.
026140,000730:
026141,000731: # FIRST CASE FOR URGENCY RATIO:
026142,000732:
026143,000733: 20,3576 50146 URGRAT1 INDEX TABPLACE # CHOOSE THE -2 JET NET ACCELERATION
026144,000734: 20,3577 31700 CAE 1/NET-2Q # INVERSE FOR USE IN URGENCY COMPUTATION.
026145,000735: 20,3600 50144 INDEX JOBAXES
026146,000736: 20,3601 55717 TS 1/ACCQ
026147,000737:
026148,000738: 20,3602 22007 ZL # PREVENT OVERFLOW FOR SMALL AOSQS
026149,000739: 20,3603 50146 INDEX TABPLACE
026150,000740: 20,3604 31676 CAE 1/NET+2Q # 1/NET+2Q,R
026151,000741: 20,3605 00006 EXTEND # RATIO = ----------
026152,000742: 20,3606 50146 INDEX TABPLACE # 1/NET-2Q,R
026153,000743: 20,3607 11700 DV 1/NET-2Q
026154,000744: 20,3610 50144 INDEX JOBAXES
026155,000745: 20,3611 55725 TS URGRATQ
026156,000746:
026157,000747: 20,3612 13654 TCF SWITNJS # GO TO SET NJS.
026158,000748:
026159,000749: # SECOND CASE FOR URGENCY RATIO:
026160,000750:
026161,000751: 20,3613 50146 URGRAT2 INDEX TABPLACE # CHOOSE THE +2 JET NET ACCELERATION
026162,000752: 20,3614 31676 CAE 1/NET+2Q # INVERSE FOR USE IN URGENCY COMPUTATION.
026163,000753: 20,3615 22007 ZL # PREVENT OVERFLOW ON ZERO BZMF BRANCH.
026164,000754: 20,3616 50144 INDEX JOBAXES
026165,000755: 20,3617 55717 TS 1/ACCQ
026166,000756:
026167,000757: 20,3620 50146 INDEX TABPLACE
026168,000758: 20,3621 31700 CAE 1/NET-2Q # 1/NET-2Q,R
026169,000759: 20,3622 00006 EXTEND # RATIO = ----------
026170,000760: 20,3623 50146 INDEX TABPLACE # 1/NET+2Q,R
026171,000761: 20,3624 11676 DV 1/NET+2Q
026172,000762: 20,3625 50144 INDEX JOBAXES
026173,000763: 20,3626 55725 TS URGRATQ
026174,000764:
026175,000765: 20,3627 13700 TCF NXTNJZER # GO TO SET NJS.
026176,000766:
026177,000767: # SET FLAG TO INDICATE MANDATORY USE OF FOUR JETS TO FIGHT THE OFFSET ACCELERATION:
Page 623 |
026179,000769: 20,3630 37763 OVERRIDE CAF ONE # (THIS SHOULD BE DONE BEFORE THE INHINT.)
026180,000770:
026181,000771: 20,3631 00004 INHINT # PREVENT POSSIBLY EPHEMERAL MANDATORY NJ
026182,000772: # SETTING FROM AFFECTING JET SELECTION.
026183,000773: 20,3632 50145 INDEX NJPLACE # NJ = 1 FORCES THE URGENCY FUNCTIONS TO
026184,000774: 20,3633 55666 TS NJ+Q # ACTUALLY SELECT 4 JET ROTATION AS THE
026185,000775: # OPTIMAL POLICY (TO FIGHT THE AOS).
026186,000776:
026187,000777: # TEST SIGN(AOS ):
026188,000778: # Q,R
026189,000779:
026190,000780: 20,3634 50144 INDEX JOBAXES # THE SIGN OF AOSQ,R DETERMINES THE RATIO
026191,000781: 20,3635 31660 CAE AOSQ # TO BE COMPUTED AS THE CORRECTION FACTOR
026192,000782: 20,3636 00006 EXTEND # IN THE URGENCY FUNCTION CALCULATION AND
026193,000783: 20,3637 63663 BZMF URGRAT4 # ALSO SPECIFIES THE CORRECT NJ VALUES.
026194,000784:
026195,000785: # THIRD CASE FOR URGENCY RATIO:
026196,000786:
026197,000787: 20,3640 50146 URGRAT3 INDEX TABPLACE # CHOOSE THE -4 JET NET ACCELERATION
026198,000788: 20,3641 31701 CAE 1/NET-4Q # INVERSE FOR USE IN URGENCY COMPUTATION.
026199,000789: 20,3642 50144 INDEX JOBAXES
026200,000790: 20,3643 55717 TS 1/ACCQ
026201,000791:
026202,000792: 20,3644 22007 ZL
026203,000793: 20,3645 50146 INDEX TABPLACE
026204,000794: 20,3646 31676 CAE 1/NET+2Q # 1/NET+2Q,R
026205,000795: 20,3647 00006 EXTEND # RATIO = ----------
026206,000796: 20,3650 50146 INDEX TABPLACE # 1/NET-4Q,R
026207,000797: 20,3651 11701 DV 1/NET-4Q
026208,000798: 20,3652 50144 INDEX JOBAXES
026209,000799: 20,3653 55725 TS URGRATQ
026210,000800:
026211,000801: # RESET VALUES OF NJS FOR Q,R-AXIS:
026212,000802:
026213,000803: 20,3654 37767 SWITNJS CAF ZERO # SET NJ = NJ (FROM ABOVE)
026214,000804: 20,3655 50145 INDEX NJPLACE # -Q,-R +Q,+R
026215,000805: 20,3656 57666 XCH NJ+Q # AND
026216,000806: 20,3657 50145 INDEX NJPLACE # NJ = 0.
026217,000807: 20,3660 55667 TS NJ-Q # +Q,+R
026218,000808:
026219,000809: 20,3661 00003 RELINT # SINCE NJS NOW VALID, ALLOW INTERRUPTS.
026220,000810:
026221,000811: 20,3662 13703 TCF UVNEXT # GO TEST FOR ENTRY TO U,V-AXES LOGIC.
026222,000812:
026223,000813: # FOURTH CASE FOR URGENCY RATIO:
026224,000814:
026225,000815: 20,3663 00003 URGRAT4 RELINT # SINCE ALL NJS ALREADY SET ARE NOW KNOWN
026226,000816: # TO BE VALID, ALLOW INTERRUPTS.
026227,000817:
026228,000818: 20,3664 50146 INDEX TABPLACE # CHOOSE THE +4 JET NET ACCELERATION
Page 624 |
026230,000820: 20,3665 31677 CAE 1/NET+4Q # INVERSE FOR USE IN URGENCY COMPUTATION.
026231,000821: 20,3666 22007 ZL # -------------------------------------
026232,000822: 20,3667 50144 INDEX JOBAXES
026233,000823: 20,3670 55717 TS 1/ACCQ
026234,000824:
026235,000825: 20,3671 50146 INDEX TABPLACE
026236,000826: 20,3672 31700 CAE 1/NET-2Q # 1/NET-2Q,R
026237,000827: 20,3673 00006 EXTEND # RATIO = ----------
026238,000828: 20,3674 50146 INDEX TABPLACE # 1/NET+4Q,R
026239,000829: 20,3675 11677 DV 1/NET+4Q
026240,000830: 20,3676 50144 INDEX JOBAXES
026241,000831: 20,3677 55725 TS URGRATQ
026242,000832:
026243,000833: # SET NJ FOR NEGATIVE ROTATIONS:
026244,000834:
026245,000835: 20,3700 37767 NXTNJZER CAF ZERO # SET NJ = 0 TO LET THE URGENCY
026246,000836: 20,3701 50145 INDEX NJPLACE # -Q,-R FUNCTIONS SELECT 2 JET
026247,000837: 20,3702 55667 TS NJ-Q # -Q,-R ROTATION
026248,000838:
026249,000839: # TEST FOR END OF Q,R-AXES LOOP:
026250,000840:
026251,000841: 20,3703 10144 UVNEXT CCS JOBAXES # JOBAXES = 1 MEANS GO DO Q-AXIS.
026252,000842: 20,3704 13532 TCF QRJOB # JOBAXES = 0 MEANS GO DO U,V-AXES.
026253,000843:
Page 625 |
026255,000845: # AFTER Q,R-AXES COMPLETE, DO U,V-AXES LOGIC:
026256,000846: 20,3705 00004 UVJOB INHINT # PREVENT POSSIBLY EPHEMERAL OPTIONAL NJ
026257,000847: # SETTING FROM AFFECTING JET SELECTION.
026258,000848: 20,3706 55672 TS NJ+U # FIRST, ARBITRARILY SET THE U,V-AXIS NJS
026259,000849: 20,3707 55673 TS NJ-U # TO THE ZERO (OPTIONAL) VALUE UNTIL THE
026260,000850: 20,3710 55674 TS NJ+V # TESTS ON AOS ARE MADE BELOW. (ZERO IS
026261,000851: 20,3711 55675 TS NJ-V # IN A FROM THE PRECEDING "CCS JOBAXES".)
026262,000852:
026263,000853: # 2
026264,000854: # TEST 1JACCQ - ABVAL(AOSQ) - 0.06 RADIANS/SECOND GREATER THAN ZERO:
026265,000855:
026266,000856: 20,3712 31614 CAE 1JACCQ # 1JACCQ SCALED AT PI/4 RADIANS/SECOND(2)
026267,000857: 20,3713 00006 EXTEND # MULTIPLYING BY ONE-HALF CHANGES SCALING
026268,000858: 20,3714 77746 MP BIT14 # TO PI/2 RADIANS/SECOND(2) AS AOSQ.
026269,000859: 20,3715 61655 AD -.06R/S2 # -0.06 RADIANS/SECOND(2) SCALED AT PI/2.
026270,000860: 20,3716 60152 AD ABVLAOSQ # ABVLAOSQ IS -ABVAL(AOSQ) AT PI/2.
026271,000861: 20,3717 00006 EXTEND
026272,000862: 20,3720 63731 BZMF POPNJ1 # (BRANCH TO TEST ON SIGN(AOSQ).)
026273,000863:
026274,000864: # 2
026275,000865: # TEST 1JACCR - ABVAL(AOSR) - 0.06 RADIANS/SECOND GREATER THAN ZERO:
026276,000866:
026277,000867: 20,3721 31615 POPNJ4 CAE 1JACCR # 1JACCR SCALED AT PI/4 RADIANS/SECOND(2).
026278,000868: 20,3722 00006 EXTEND # MULTIPLYING BY ONE-HALF CHANGES SCALING
026279,000869: 20,3723 77746 MP BIT14 # TO PI02 RADIANS/SECOND(2) AS AOSR.
026280,000870: 20,3724 61655 AD -.06R/S2 # -0.06 RADIANS/SECOND(2) AT PI/2.
026281,000871: 20,3725 60153 AD ABVLAOSR # ABVLAOSR IS -BAVAL(AOSR) AT PI/2.
026282,000872: 20,3726 00006 EXTEND
026283,000873: 20,3727 63742 BZMF POPNJ2 # (BRANCH TO TEST ON SIGN(AOSR).)
026284,000874:
026285,000875: 20,3730 13525 TCF POPNONJ # GO SET DATA GOOD BIT.
026286,000876:
026287,000877:
026288,000878:
026289,000879: 20,3731 11660 POPNJ1 CCS AOSQ # SINCE MAGNITUDE OF AOSQ LARGE, NONZERO.
026290,000880: 20,3732 13737 TCF POPNJ3
026291,000881: 20,3733 04736 TC CCSHOLE
026292,000882: 20,3734 55672 TS NJ+U # SET NJS FOR LARGE NEGATIVE AOSQ.
026293,000883: 20,3735 55675 TS NJ-V
026294,000884: 20,3736 13721 TCF POPNJ4 # GO CHECK MAGNITUDE OF AOSR.
026295,000885:
026296,000886: 20,3737 55673 POPNJ3 TS NJ-U # SET NJS FOR LARGE POSITIVE AOSQ.
026297,000887: 20,3740 55674 TS NJ+V
026298,000888: 20,3741 13721 TCF POPNJ4 # GO CHECK MAGNITUDE OF AOSR.
026299,000889:
026300,000890: 20,3742 11661 POPNJ2 CCS AOSR # SINCE MAGNITUDE OF AOSR LARGE, NONZERO.
026301,000891: 20,3743 13750 TCF POPNJ5
026302,000892: 20,3744 11642 ACCFIFTY DEC 0.30679 # .5(50) SEC(2)/RAD SCALED AT 2(+8)/PI.
Page 626 |
026304,000894: 20,3745 55672 TS NJ+U # SET NJS FOR LARGE NEGATIVE AOSR.
026305,000895: 20,3746 55674 TS NJ+V
026306,000896: 20,3747 13525 TCF POPNONJ # END NICELY.
026307,000897:
026308,000898: 20,3750 55673 POPNJ5 TS NJ-U # SET NJS FOR LARGE POSITIVE AOSR.
026309,000899: 20,3751 55675 TS NJ-V
026310,000900: 20,3752 13525 TCF POPNONJ # END NICELY.
026311,000901:
026312,000902: 20,3753 77456 -.02R/S2 DEC -.01273 # -0.02 RADIANS/SECOND(2) AT PI/2
026313,000903:
026314,000904: # THE FOLLOWING BRANCHES SUPPLY CONSTANT VALUES:
026315,000905:
026316,000906: 20,3754 33744 FIFTY1 CAF ACCFIFTY
026317,000907: 20,3755 13457 TCF FIFTY1R
026318,000908:
026319,000909: 20,3756 33744 FIFTY2 CAF ACCFIFTY
026320,000910: 20,3757 13472 TCF FIFTY2R
026321,000911:
026322,000912: 20,3760 33744 FIFTY3 CAF ACCFIFTY
026323,000913: 20,3761 13551 TCF FIFTY3R
026324,000914:
Page 627 |
026326,000916: # SUBROUTINE NAME: INVACC MOD. NO. 0 DATE: DECEMBER 3, 1966
026327,000917:
026328,000918: # AUTHOR: JONATHAN D. ADDELSTON (ADAMS ASSOCIATES)
026329,000919:
026330,000920: # THIS SUBROUTINE IS CALLED BY AOSJOB TO CALCULATE:
026331,000921:
026332,000922: # 0.5 WHERE TEMPNET IS SCALED AT PI/2 RADIANS/SECOND(2)
026333,000923: # C(A) = -------
026334,000924: # TEMPNET AND THE FRACTION IS SCALED AT 2(+8)/PI SEC(2)/RAD.
026335,000925:
026336,000926: # THIS SIMPLE COMPUTATION WAS SUBROUTINIZED DUE TO ITS FREQUENT USE.
026337,000927:
026338,000928: # CALLING SEQUENCE: TC INVACC
026339,000929:
026340,000930: # SUBROUTINES CALLED: NONE. NORMAL EXIT MODE: ONE INSTRUCTION AFTER CALL.
026341,000931:
026342,000932: # ALARM OR ABORT EXIT MODES: NONE.
026343,000933:
026344,000934: # INPUT: TEMPNET SCALED AT PI/2 RADIANS/SECONDS(2).
026345,000935:
026346,000936: # OUTPUT: C(A) SCALED AT 2(+8)/PI SECONDS(2)/RADIAN.
026347,000937:
026348,000938: # DEBRIS: L,Q.
026349,000939:
026350,000940: 20,3762 37755 INVACC CAF BIT7 # BIT7 IS USED AS THE NUMERATOR 0.5 SINCE
026351,000941: 20,3763 22007 ZL
026352,000942: 20,3764 00006 EXTEND # "TEMPNET" IS SCALED AT PI/2 AND THE
026353,000943: 20,3765 10151 DV TEMPNET
026354,000944: 20,3766 00002 TC Q # INVERSE IS SCALED AT 2(+8)/PI.
026355,000945:
Page 628 |
026357,000947: # START CODING FOR MODULE 3 REMAKE, AUGUST 1967***START CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
026358,000948:
026359,000949: # FROM DPSENGON: SET FLAGS FOR CRITICAL GTS ENTRIES.
026360,000950:
026361,000951: 20,3767 55310 SETCNTR TS DVSELECT # SET SWITCH TO GO TO GIMBLMON
026362,000952:
026363,000953: 20,3770 00006 EXTEND
026364,000954: 20,3771 33774 DCA GETADR # SPACE FOR NEW CODING IN BANK 17
026365,000955: 20,3772 52006 DXCH Z
026366,000956:
026367,000957: 20,3773 E6,1744 EBANK= TRIMCNTR
026368,000958: 20,3773 02157 36066 GETADR 2CADR GETCNTR
026369,000959:
026370,000960: # **END CODING FOR MODULE 3 REMAKE, AUGUST 1967*****END CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
End of include-file AOSTASK_AND_AOSJOB.agc. Parent file is MAIN.agc