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