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