Source Code
![]() |
These source-code files were transcribed from a printout in Don Eyles's personal
collection, scanned by archive.org, and financially sponsored by Peter McDermott.
A team of volunteers performed the transcription and proof-reading. The scanned
page images are available at
the Virtual AGC Project website, as well as higher-quality (but much larger)
images at
the Virtual AGC Project's collection in the Internet Archive. Report any problems by creating
"issues" at
the Virtual AGC Project's GitHub Repository. Notations on the program listing read, in part: YUL SYSTEM FOR AGC: NEW PROGRAM SHEPATIN BY EYLES DEC 13, 1966 THIS PROGRAM WAS ASSEMBLED AS A VERSION OF REVISION 37 OF PROGRAM SUNBURST BY LEM GROUPNote that the date is the date of the printout, not the date of the program revision. |
025341,000002: ## Copyright: Public domain.
025342,000003: ## Filename: AOSTASK_AND_AOSJOB.agc
025343,000004: ## Purpose: A section of Sunburst revision 37, or Shepatin revision 0.
025344,000005: ## It is part of an early development version of the software
025345,000006: ## for Apollo Guidance Computer (AGC) on the unmanned Lunar
025346,000007: ## Module (LM) flight Apollo 5. Sunburst 37 was the program
025347,000008: ## upon which Don Eyles's offline development program Shepatin
025348,000009: ## was based; the listing herein transcribed was actually for
025349,000010: ## the equivalent revision 0 of Shepatin.
025350,000011: ## This file is intended to be a faithful transcription, except
025351,000012: ## that the code format has been changed to conform to the
025352,000013: ## requirements of the yaYUL assembler rather than the
025353,000014: ## original YUL assembler.
025354,000015: ## Reference: pp. 569-590
025355,000016: ## Assembler: yaYUL
025356,000017: ## Contact: Ron Burkey <info@sandroid.org>.
025357,000018: ## Website: www.ibiblio.org/apollo/index.html
025358,000019: ## Mod history: 2017-05-24 MAS Created from Sunburst 120.
025359,000020: ## 2017-06-09 RSB Transcribed.
025360,000021: ## 2017-06-14 HG Add missing label STCTR1
025361,000022: ## 2017-06-22 RSB Proofed comment text with
025362,000023: ## octopus/ProoferComments.
025363,000024:
![]() |
Page 569 |
025365,000026: # PROGRAM NAME: AOSTASK MOD. NO. 1 DATE: NOVEMBER 20, 1966
025366,000027:
025367,000028: # AUTHOR: JONATHAN D. ADDELSTON (ADAMS ASSOCIATES)
025368,000029:
025369,000030: # THIS "WAITLIST TASK" IS EXECUTED EVERY 2 SECONDS DURING ASCENT (APS) BURNS. IT ESTIMATES THE ACCELERATION DUE
025370,000031: # TO THE ENGINE OFF-SET. TO USE THESE ESTIMATES, IT ALSO CALCULATES TERMS TO ADD INTO THE LM DAP RATE DERIVATION
025371,000032: # AND WEIGHTING FACTORS FOR THE ESTIMATE OF AOS AND FOR THE RATE DERIVATION. FINALLY, IT ALSO SETS UP "AOSJOB"
025372,000033: # THROUGH THE EXECUTIVE TO CALCULATE FUMCTIONS OF THE AOS.
025373,000034:
025374,000035: # CALLING SEQUENCE:
025375,000036:
025376,000037: # L -1 CAF 2SECSDAP
025377,000038: # L TC WAITLIST
025378,000039: # EBANK= AOSQ
025379,000040: # L +1, +2 2CADR AOSTASK
025380,000041: # L +3 (RETURN)
025381,000042:
025382,000043: # NORMAL EXIT MODE: "TASKOVER" ALARM/ABORT MODE: NONE.
025383,000044:
025384,000045: # INPUT APSGOING/DAPBOOLS
025385,000046: # AOSQ,AOSR
025386,000047: # COEFCTR
025387,000048: # OLDWFORQ,OLDWFORR
025388,000049: # SUMRATEQ,SUMRATER
025389,000050: # OMEGAQ,OMEGAR
025390,000051:
025391,000052: # OUTPUT AOSQ,AOSR,AOSU,AOSV
025392,000053: # AOSQTERM,AOSRTERM
025393,000054: # SUMRATEQ,SUMRATER
025394,000055: # KCOEFCTR
025395,000056:
025396,000057: # DEBRIS: A,L,ITEMP1,ITEMP2.
025397,000058:
025398,000059: # THE FOLLOWING LM DAP ERASABLES ARE ZEROED IN THE STARTDAP SECTION OF THE DAPIDLER PROGRAM AND THE COASTASC
025399,000060: # SECTION OF THE AOSTASK. THE ORDER MUST BE PRESERVED FOR THE INDEXING METHODS WHICH ARE EMPLOYED IN THOSE
025400,000061: # SECTIONS AND ELSEWHERE.
025401,000062:
025402,000063: # AOSQ ERASE +3 ASCENT OFFSET ACCELERATION ESTIMATES:
025403,000064: # AOSR EQUALS AOSQ +1 ESTIMATED EVERY 2 SECONDS BY AOSTASK.
025404,000065: # AOSU EQUALS AOSQ +2 U,V-AXES ACCS FORMED BY VECTOR ADDITION.
025405,000066: # AOSV EQUALS AOSQ +3 SCALED AT PI/2 RADIANS/SECOND(2).
025406,000067:
025407,000068: # AOSQTERM ERASE +1 (.1-.05K)AOS
025408,000069: # AOSRTERM EQUALS AOSQTERM +1 SCALED AT PI/4 RADIANS/SECOND.
025409,000070:
025410,000071: # NJ+Q ERASE +7 2 JET OVER-RIDE FLAGS:
025411,000072: # NJ-Q EQUALS NJ+Q +1 WHENEVER THE OFFSET ACCELERATION ABOUT
025412,000073: # NJ+R EQUALS NJ+Q +2 AN AXIS IS SO HIGH THAT 2 JETS COULD NOT
025413,000074: # NJ-R EQUALS NJ+Q +3 CONTROL ATTITUDE SUCCESSFULLY, THEN NJ
025414,000075: # NJ+U EQUALS NJ+Q +4 FOR THAT AXIS (IN THE DIRECTION OPPOSING
![]() |
Page 570 |
025416,000077: # NJ-U EQUALS NJ+Q +5 AOS) IS SET TO 1. OTHERWISE, THE VALUE
025417,000078: # NJ+V EQUALS NJ+Q +6 IS ZERO. THESE FLAGS PREVENT TWO JETS
025418,000079: # NJ-V EQUALS NJ+Q +7 FROM BEING REQUESTED TO FIGHT THE AOS.
025419,000080:
![]() |
Page 571 |
025421,000082:
025422,000083: # AOSTASK IS EXECUTED ONLY DURING POWERED ASCENT. IF NO LONGER IN POWERED ASCENT, STOP THE CYCLING OF AOSTASK AND
025423,000084: # SET UP VARIABLES FOR COASTING ASCENT.
025424,000085:
025425,000086: 20,3112 BANK 20
025426,000087: 20,3112 E6,1652 EBANK= AOSQ
025427,000088:
025428,000089: 20,3112 37746 AOSTASK CAF APSGOING # TEST POWERED ASCENT FLAG:
025429,000090: 20,3113 70077 MASK DAPBOOLS # 0: NOT POWERED ASCENT (ASCENT COAST)
025430,000091: 20,3114 00006 EXTEND # 1: POWERED ASCENT
025431,000092: 20,3115 13275 BZF COASTASC # (END CYCLE OF TASKS DURING ASCENT COAST)
025432,000093:
025433,000094: # KEEP TRACK OF LENGTH OF BURN FOR DETERMINATION OF WEIGHTING FACTOR K:
025434,000095:
025435,000096: 20,3116 31644 CAE KCOEFCTR # TEST KCOEFCTR FOR INITIAL PASS.
025436,000097: 20,3117 00006 EXTEND
025437,000098: 20,3120 13255 BZF ZEROCOEF # GO TO DISCONTINUITY SECTION FOR COEFFA.
025438,000099:
025439,000100: 20,3121 63313 AD DEC-399 # TEST KCOEFCTR FOR CONSTANT RANGE WHICH
025440,000101: 20,3122 00006 EXTEND # OCCURS WHEN DURATION OF BURN IS EQUAL TO
025441,000102:
025442,000103: 20,3123 63125 BZMF +2 # OR GREATER THAN 400 SECONDS. (SINCE
025443,000104: 20,3124 13261 TCF KONENOW # KCOEFCTR IS EVEN, 399 IS THE BREAK PT.)
025444,000105:
025445,000106: # FORM WEIGHTING FACTOR FOR ASCENT OFFSET ACCELERATION FILTER: COEFFA = 0.00125(T) + 0.25
025446,000107:
025447,000108: 20,3125 33302 CAF 0.00125 # COEFFA = 0.00125(T) + 0.25
025448,000109: 20,3126 00006 EXTEND
025449,000110: 20,3127 71644 MP KCOEFCTR # KCOEFCTR = T SCALED AT 2(+14)
025450,000111: 20,3130 37741 CAF BIT13 # (BIT13 = 1/4 = 0.25 SCALED AT 1.)
025451,000112: 20,3131 60001 AD L
025452,000113: 20,3132 54062 COEFFAST TS COEFFA # (VOLATILE STORAGE.)
025453,000114:
025454,000115: # FORM WEIGHTING FACTOR FOR RATE DERIVATION: K = 0.0014(T) + 0.44
025455,000116:
025456,000117: 20,3133 33303 CAF 0.0014 # K = 0.0014(T) + 0.44
025457,000118: 20,3134 00006 EXTEND
025458,000119: 20,3135 71644 MP KCOEFCTR # KCOEFCTR = T SCALED AT 2(+14)
025459,000120: 20,3136 33310 CAF 0.44
025460,000121: 20,3137 60001 AD L
025461,000122: 20,3140 54061 TS K # (VOLATILE STORAGE.)
025462,000123: 20,3141 40000 COM
025463,000124: 20,3142 67735 AD POSMAX # (1 BIT ERROR DOES DOES NOT COMPOUND.)
025464,000125: 20,3143 55636 TS (1-K) # (1-K) SCALED AT 1.
025465,000126:
025466,000127: 20,3144 00006 EXTEND
025467,000128: 20,3145 77742 MP BIT12
025468,000129: 20,3146 55637 TS (1-K)/8 # (1-K)/8 IS (1-K) SCALED AT 8.
025469,000130:
025470,000131: 20,3147 30061 CAE K # WFORP = WFORQR = K/DT = K/.1 = 10K
025471,000132: 20,3150 00006 EXTEND # SCALED AT 16/SECOND.
025472,000133: 20,3151 73311 MP 0.625 # (CHANGES SCALE FACTOR FROM 1 TO 16/SEC.)
![]() |
Page 572 |
025474,000135: 20,3152 55634 TS WFORP # WFORP IS IDENTICAL WFORQR EXCEPT FOR THE
025475,000136: 20,3153 55635 TS WFORQR # INITIALIZATION IN STARTDAP OF DAPIDLER.
025476,000137:
025477,000138: 20,3154 40061 CS K # FORM (.1-.05K) FROM K SCALED AT 1 FOR
025478,000139: 20,3155 00006 EXTEND # THE TORQUE VECTOR RECONSTRUCTION AND
025479,000140: 20,3156 73305 MP 0.05 # ALSO FORM (.1-.05K) SCALED AT 1/2 FOR
025480,000141: 20,3157 63306 AD 0.1 # THE OFFSET ACCELERATION TERM IN THE RATE
025481,000142: 20,3160 60000 DOUBLE # EBANK6 FOR USE IN T5RUPT WHILE THE
025482,000143: 20,3161 54061 TS .1-.05K # LATTER IS VOLATILE AND USED IN THIS TASK
025483,000144:
025484,000145: # BEGIN ESTIMATE OF OFFSET ACCELERATION FOR Q,R-AXES:
025485,000146:
025486,000147: 20,3162 30062 COEFFA1 CAE COEFFA # FORM COEFFA(AOSQ):
025487,000148: 20,3163 00006 EXTEND
025488,000149: 20,3164 71652 MP AOSQ # FIRST TERM OF NEW AOSQ ESTIMATE:
025489,000150: 20,3165 55652 TS AOSQ # SCALED AT PI/2 RADIANS/SECOND(2).
025490,000151:
025491,000152: 20,3166 30062 CAE COEFFA # FORM COEFFA(AOSR):
025492,000153: 20,3167 00006 EXTEND
025493,000154: 20,3170 71653 MP AOSR # FIRST TERM OF NEW AOSR ESTIMATE:
025494,000155: 20,3171 55653 TS AOSR # SCALED AT PI/2 RADIANS/SECOMD(2).
025495,000156:
025496,000157: 20,3172 40062 CS COEFFA # FORM .5(1-COEFFA) SCALED AT 2 FROM THE
025497,000158: 20,3173 00006 EXTEND # COEFFA SCALED AT 1. COEFFA IS NOW THE
025498,000159: 20,3174 77741 MP BIT13 # SAME AS 2(COEFFA) SCALED AT 2, SO MUST
025499,000160: 20,3175 67741 AD BIT13 # MULTIPLY BY 1/4 TO GET .5(COEFFA). THEN,
025500,000161:
025501,000162: 20,3176 54062 TS .5-.5COF # ADD 1/4 AS 1/2 SCALED AT 2 FOR RESULT.
025502,000163:
025503,000164: # FINISH OFFSET ACCELERATION ESTIMATES:
025504,000165:
025505,000166: # AOS = COEFFA (AOS ) + .5(1-COEFFA )(OMEGA -OMEGA -SUMRATE )
025506,000167: # T T T-2 T T T-2 T
025507,000168:
025508,000169: 20,3177 41417 CS OMEGAQ # SAVE PRESENT -OMEGAQ FOR NEXT PASS AND
025509,000170: 20,3200 57623 XCH OLDWFORQ # PICK UP -(LAST OMEGAQ) FROM OLDWFORQ.
025510,000171: 20,3201 00006 EXTEND
025511,000172: 20,3202 61621 SU SUMRATEQ # FORM: W - OLDW - SUMRATE = SUM (Q-AXIS).
025512,000173: 20,3203 61417 AD OMEGAQ # SCALED AT PI/4 RADIANS/SECOND.
025513,000174: 20,3204 00006 EXTEND
025514,000175: 20,3205 70062 MP .5-.5COF # AOSQ = COEFFA(AOSQ)+.5(1-COEFFA)(SUMQ)
025515,000176: 20,3206 27652 ADS AOSQ # SCALED AT PI/2 RADIANS/SECOND(2).
025516,000177:
025517,000178: 20,3207 41421 CS OMEGAR # SAVE PRESENT -OMEGAQ FOR NEXT PASS AND
025518,000179: 20,3210 57624 XCH OLDWFORR # PICK UP -(LAST OMEGAR) FROM OLDWFORR.
025519,000180: 20,3211 00006 EXTEND
025520,000181: 20,3212 61622 SU SUMRATER # FORM: W - OLDW - SUMRATE = SUM (R-AXIS).
025521,000182: 20,3213 61421 AD OMEGAR # SCALED AT PI/4 RADIANS/SECOND.
025522,000183: 20,3214 00006 EXTEND
025523,000184: 20,3215 70062 MP .5-.5COF # AOSR = COEFFA(AOSR)+.5(1-COEFFA)(SUMR)
025524,000185:
025525,000186: 20,3216 27653 ADS AOSR # SCALED AT PI/2 RADIANS/SECOND(2).
025526,000187:
![]() |
Page 573 |
025528,000189: # CALCULATE THE OFFSET ACCELERATIONS FOR THE U,V-AXES:
025529,000190:
025530,000191: 20,3217 31652 CAE AOSQ # FIRST, CALCULATE AOSU:
025531,000192: 20,3220 61653 AD AOSR
025532,000193: 20,3221 00006 EXTEND
025533,000194: 20,3222 73312 MP 0.70711
025534,000195: 20,3223 55654 TS AOSU # SCALED AT PI/2 RADIANS/SECOND(2).
025535,000196:
025536,000197: 20,3224 41652 CS AOSQ # THEN, CALCULATE AOSV:
025537,000198: 20,3225 61653 AD AOSR
025538,000199: 20,3226 00006 EXTEND
025539,000200: 20,3227 73312 MP 0.70711
025540,000201: 20,3230 55655 TS AOSV # SCALED AT PI/2 RADIANS/SECOND(2).
025541,000202:
025542,000203: # FORM TERMS FOR RATE DERIVATION:
025543,000204:
025544,000205: 20,3231 30061 CAE .1-.05K # FORM Q-AXIS RATE DERIVATION TERM:
025545,000206: 20,3232 00006 EXTEND
025546,000207: 20,3233 71652 MP AOSQ # AOSQTERM = (.1-.05K)AOSQ
025547,000208: 20,3234 55656 TS AOSQTERM # SCALED AT PI/4 RADIANS/SECOND.
025548,000209:
025549,000210: 20,3235 30061 CAE .1-.05K # FORM R-AXIS RATE DERIVATION TERM:
025550,000211: 20,3236 00006 EXTEND
025551,000212: 20,3237 71653 MP AOSR # AOSRTERM = (.1-.05K)AOSR
025552,000213: 20,3240 55657 TS AOSRTERM # SCALED AT PI/4 RADIANS/SECOND.
025553,000214:
025554,000215: # SET UP AOS JOB FOR THE NEWEST OFFSET ACCELERATION ESTIMATES:
025555,000216:
025556,000217: 20,3241 34260 CAF PRIO24 # *** VERIFY PRIORITY. ***
025557,000218: 20,3242 05523 TC NOVAC # SET UP AOSJOB.
025558,000219: 20,3243 E6,1652 EBANK= AOSQ
025559,000220: 20,3243 03327 40006 2CADR AOSJOB
025560,000221:
025561,000222: # SET ERASABLES FOR NEXT 2 SECOND INTERVAL:
025562,000223:
025563,000224: 20,3245 37754 CAF TWO # INCREMENT BURN DURATION TIMER BY 2 SECS.
025564,000225: 20,3246 27644 ADS KCOEFCTR
025565,000226:
025566,000227: 20,3247 37761 CAF ZERO # INITIALIZE SUMS OF JETRATES.
025567,000228: 20,3250 55621 TS SUMRATEQ
025568,000229: 20,3251 55622 TS SUMRATER
025569,000230:
025570,000231: # SET UP NEXT WAITLIST AOSTASK FOR 2 SECONDS FROM NOW:
025571,000232:
025572,000233: 20,3252 33316 CAF 2SECSDAP
025573,000234: 20,3253 05722 TC VARDELAY # (STORAGE-SAVING WAITLIST CALL.)
025574,000235: 20,3254 13112 TCF AOSTASK # RETURNS HERE IN TWO SECONDS.
025575,000236:
![]() |
Page 574 |
025577,000238: # SPECIAL DISCONTINUITY SECTION FOR COEFFA ON FIRST PASS:
025578,000239:
025579,000240: 20,3255 37754 ZEROCOEF CAF TWO # INITIALIZE BURN DURATION TIMER TO TWO
025580,000241: 20,3256 55644 TS KCOEFCTR # SECONDS FOR THE DERIVATION OF K.
025581,000242:
025582,000243: 20,3257 37761 CAF ZERO # FOR THE FIRST PASS, SET COEFFA TO ZERO
025583,000244: 20,3260 13132 TCF COEFFAST # SINCE AOS ESTIMATES ARE NOW USELESS.
025584,000245:
025585,000246: # SPECIAL K AND COEFFA SETTINGS FOR BURNS LASTING 400 SECONDS OR MORE:
025586,000247:
025587,000248: 20,3261 00006 KONENOW EXTEND # K=1, SO 1-K AT EITHER SCALING IS ZERO.
025588,000249: 20,3262 33315 DCA DPZEROX # (1-K) SCALED AT 1.
025589,000250: 20,3263 53637 DXCH (1-K) # (1-K)/8 SCALED AT 8.
025590,000251:
025591,000252: 20,3264 33311 CAF 0.625 # WFORP = WFORQR = K/DT = K/.1 = 10K = 10
025592,000253: 20,3265 55634 TS WFORP # SCALED AT 16/SECOND.
025593,000254: 20,3266 55635 TS WFORQR
025594,000255:
025595,000256: 20,3267 33305 CAF 0.05 # (.1-.05K) = 0.05
025596,000257: 20,3270 60000 DOUBLE # (DOUBLING SAVES CONSTANT STORAGE.)
025597,000258: 20,3271 54061 TS .1-.05K # SCALED AT 1/2. (VOLATILE STORAGE.)
025598,000259:
025599,000260: 20,3272 35226 CAF BIT13-14 # COEFFA = 0.75
025600,000261: 20,3273 54062 TS COEFFA # SCALED AT 1. (VOLATILE STORAGE.)
025601,000262:
025602,000263: 20,3274 13162 TCF COEFFA1 # GO BEGIN OFFSET ACCELERATION ESTIMATE.
025603,000264:
025604,000265: # SHUT-DOWN PROCEDURE AFTER ASCENT COAST DETECTION:
025605,000266:
025606,000267: 20,3275 34260 COASTASC CAF PRIO24 # *** VERIFY PRIORITY. ***
025607,000268: 20,3276 05523 TC NOVAC # SET UP FINAL AOSJOB FOR THIS APS BURN.
025608,000269: 20,3277 E6,1652 EBANK= AOSQ
025609,000270: 20,3277 03327 40006 2CADR AOSJOB
025610,000271:
025611,000272: 20,3301 15745 TCF TASKOVER # END AOSTASK CYCLING FOR THIS APS BURN.
025612,000273:
![]() |
Page 575 |
025614,000275: # CONSTANTS FOR AOSTASK:
025615,000276:
025616,000277: 20,3302 00024 0.00125 DEC 0.00125
025617,000278: 20,3303 00027 0.0014 DEC 0.0014
025618,000279: 20,3304 00111 0.00444 DEC 0.00444
025619,000280: 20,3305 01463 0.05 DEC 0.05
025620,000281: 20,3306 03146 0.1 DEC 0.1
025621,000282: 20,3307 12000 0.3125 DEC 0.3125
025622,000283: 20,3310 16051 0.44 DEC 0.44
025623,000284: 20,3311 24000 0.625 DEC 0.625
025624,000285: 20,3312 26501 0.70711 DEC 0.70711
025625,000286: 20,3313 77160 DEC-399 DEC -399 B-14
025626,000287: 20,3314 00000 00000 DPZEROX 2DEC 0 B-28
025627,000288:
025628,000289: 20,3316 00310 2SECSDAP DEC 200 B-14
025629,000290: 20,3317 20000 (1-K)S DEC 0.5
025630,000291: 20,3320 02000 DEC 0.0625
025631,000292:
![]() |
Page 576 |
025633,000294: # PROGRAM NAME: WCHANGER MOD. NO. 0 DATE: DECEMBER 9, 1966
025634,000295:
025635,000296: 20,3321 15745 TCF TASKOVER
025636,000297:
025637,000298: # THIS PROGRAM IS A WAITLIST TASK WHICH IS INITIATED FROM THE STARTDAP SECTION OF DAPIDLER. IT IS EXECUTED
025638,000299: # BETWEEN THE FIRST Q,R-AXES T5RUPT AND THE SECOND P-AXIS T5RUPT (I.E. 180 MS AFTER STARTDAP). THE PURPOSE OF
025639,000300: # WCHANGER IS TO RESET THE VARIABLE K (IN ALL ITS FORMS) FOR THE RATE DERIVATION FROM 1 TO 0.5. (IT ALSO SETS THE
025640,000301: # NOMINAL LM DAP DT TO 100 MS.)
025641,000302:
025642,000303: # CALLING SEQUENCE (FROM STARTDAP):
025643,000304:
025644,000305: # L -1 CAF 180MS
025645,000306: # L TC WAITLIST
025646,000307: # EBANK= WFORQR
025647,000308: # L +1 2CADR WCHANGER
025648,000309: # L +2 (BBCON)
025649,000310: # L +3 (RETURN)
025650,000311:
025651,000312: # SUBROUTINES CALLED: WCHANGE. NORMAL EXIT: TASKOVER.
025652,000313:
025653,000314: # INPUT: NONE. ALARM/ABORT EXITS: NONE.
025654,000315:
025655,000316: # OUTPUT: WFORP,WFORQR,(1-K),(1-K)/8.
025656,000317:
025657,000318: 20,3322 05307 WCHANGER TC IBNKCALL # (WAITLIST TASK IS IN T3RUPT.)
025658,000319: 20,3323 40106 FCADR WCHANGE # SUBROUTINE DOES SETTING TO SAVE SPACE.
025659,000320:
025660,000321: 20,3324 15745 TCF TASKOVER # END THIS TASK.
025661,000322:
![]() |
Page 577 |
025663,000324: # INERPOLY COMPUTES IXX, IYY, IZZ, AND, IN DESCENT, L,PVT-CG.
025664,000325: # AFTER THE INERTIAS ARE COMPUTED, THEY ARE USED TO COMPUTE NEW VALUES OF
025665,000326: # 1JACC, 1JACCQ, 1JACCR, 1JACCU, 1JACCV AND 1/2JTSP.
025666,000327: # INERPOLY EXITS BY .... TCF ENDOFJOB
025667,000328:
025668,000329:
025669,000330: 26,2611 BANK 26
025670,000331:
025671,000332: 26,2611 E6,1452 EBANK= IXX
025672,000333: 26,2611 37754 INERPOLY CA BIT2
025673,000334: 26,2612 00006 EXTEND
025674,000335: 26,2613 02030 RAND 30
025675,000336: 26,2614 10000 CCS A # CHOOSES ASCENT OR DESCENT COEF
025676,000337: 26,2615 46301 CS THREE
025677,000338: 26,2616 66276 AD SIX
025678,000339: 26,2617 55620 TS INERCTRX
025679,000340:
025680,000341: 26,2620 37754 CAF TWO
025681,000342: 26,2621 55617 STCTR TS INERCTR # J=2,1,0 FOR IZZ,IYY,IXX
025682,000343:
025683,000344: 26,2622 00006 EXTEND
025684,000345: 26,2623 27620 DIM INERCTRX # JX=5,4,3 OR 2,1,0 FOR Z,Y,X COEF
025685,000346:
025686,000347: 26,2624 31332 STCTR1 CA MASS # IN KGS (+15)
025687,000348: 26,2625 00006 EXTEND
025688,000349: 26,2626 51620 INDEX INERCTRX
025689,000350: 26,2627 72720 MP INERCONC
025690,000351: 26,2630 51620 INDEX INERCTRX
025691,000352: 26,2631 62727 AD INERCONB
025692,000353: 26,2632 00006 EXTEND
025693,000354: 26,2633 71332 MP MASS
025694,000355:
025695,000356: 26,2634 51620 INDEX INERCTRX
025696,000357: 26,2635 62736 AD INERCONA
025697,000358: 26,2636 51617 INDEX INERCTR
025698,000359: 26,2637 55452 TS IXX # I(J)=(C(JX)MASS+B(JX))MASS+A(JX) (+18)
025699,000360: # I(-1)=L,PVT-CG (+6)
025700,000361:
025701,000362: 26,2640 11617 CCS INERCTR # COUNTER 2,1,0,-1
025702,000363: 26,2641 12621 TCF STCTR
025703,000364: 26,2642 12644 TCF COMMEQS
025704,000365: 26,2643 12711 TCF LRESC
025705,000366:
025706,000367: 26,2644 00006 COMMEQS EXTEND
025707,000368: 26,2645 32745 DCA TORKJET # 500 FT-LBS. (+16) PI
025708,000369: 26,2646 00006 EXTEND
025709,000370: 26,2647 11452 DV IXX
025710,000371: 26,2650 55612 TS 1JACC # SCALED BY PI/4
025711,000372:
025712,000373: 26,2651 00006 EXTEND
025713,000374: 26,2652 32747 DCA TORKJET1 # 550 FT-LBS. (+16) PI
025714,000375:
![]() |
Page 578 |
025716,000377: 26,2653 00006 EXTEND
025717,000378: 26,2654 11453 DV IYY
025718,000379: 26,2655 55613 TS 1JACCQ # SCALED BY PI/4
025719,000380:
025720,000381: 26,2656 00006 EXTEND
025721,000382: 26,2657 32747 DCA TORKJET1 # 550 FT-LBS. (+16) PI
025722,000383: 26,2660 00006 EXTEND
025723,000384: 26,2661 11454 DV IZZ
025724,000385: 26,2662 55614 TS 1JACCR # SCALED BY PI/4
025725,000386:
025726,000387: 26,2663 61613 AD 1JACCQ
025727,000388: 26,2664 00006 EXTEND
025728,000389: 26,2665 72610 MP 0.35356 # .70711 SCALED BY (+1)
025729,000390: 26,2666 55615 TS 1JACCU
025730,000391:
025731,000392: 26,2667 55616 TS 1JACCV # SCALED BY PI/4
025732,000393:
025733,000394: 26,2670 32750 CAF 4JTORK
025734,000395: 26,2671 55441 TS 1/2JTSP
025735,000396: 26,2672 31452 CAE IXX
025736,000397: 26,2673 00006 EXTEND
025737,000398: 26,2674 11441 DV 1/2JTSP
025738,000399: 26,2675 60000 DOUBLE
025739,000400: 26,2676 55441 TS 1/2JTSP # SCALED BY 1/PI (+8)
025740,000401:
025741,000402: 26,2677 37754 CAF BIT2
025742,000403: 26,2700 00006 EXTEND
025743,000404: 26,2701 02030 RAND 30
025744,000405: 26,2702 10000 CCS A # COMPUTE L,PVT-CG IF IN DESCENT
025745,000406: 26,2703 12705 TCF DES
025746,000407: 26,2704 15605 TCF ENDOFJOB
025747,000408:
025748,000409: 26,2705 47755 DES CS ONE
025749,000410: 26,2706 55617 TS INERCTR
025750,000411: 26,2707 55620 TS INERCTRX
025751,000412: 26,2710 12624 TCF STCTR1
025752,000413:
025753,000414: 26,2711 31451 LRESC CA L,PVT-CG # SCALED BY (+6)
025754,000415:
025755,000416: 26,2712 60000 DOUBLE
025756,000417: 26,2713 60000 DOUBLE
025757,000418: 26,2714 60000 DOUBLE
025758,000419: 26,2715 55451 TS L,PVT-CG # SCALED BY (+3)
025759,000420: 26,2716 15605 TCF ENDOFJOB
025760,000421:
025761,000422:
025762,000423: 26,2717 30126 DEC 0.75524 # L
025763,000424: 26,2720 00353 INERCONC DEC 0.01432 # XD
025764,000425: 26,2721 52653 DEC -0.66136 # YD
025765,000426: 26,2722 52136 DEC -0.68173 # ZD
025766,000427: 26,2723 01502 DEC 0.05092 # XA
![]() |
Page 579 |
025768,000429: 26,2724 53060 DEC -0.65325 # YA
025769,000430: 26,2725 54667 DEC -0.59815 # ZA
025770,000431: 26,2726 52265 DEC -0.67640 # L
025771,000432: 26,2727 05346 INERCONB DEC 0.17030 # XD
025772,000433: 26,2730 25066 DEC 0.65955 # YD
025773,000434: 26,2731 24131 DEC 0.63041 # ZD
025774,000435: 26,2732 05613 DEC 0.18033 # XA
025775,000436: 26,2733 06433 DEC 0.20478 # YA
025776,000437: 26,2734 13626 DEC 0.36855 # ZA
025777,000438: 26,2735 06324 DEC 0.20044 # L
025778,000439: 26,2736 00157 INERCONA DEC 0.00676 # XD
025779,000440: 26,2737 76031 DEC -0.06090 # YD
025780,000441: 26,2740 76456 DEC -0.04403 # ZD
025781,000442: 26,2741 77670 DEC -0.00435 # XA
025782,000443: 26,2742 77743 DEC -0.00170 # YA
025783,000444: 26,2743 77242 DEC -0.02132 # ZA
025784,000445:
025785,000446: 26,2744 00047 31173 TORKJET 2DEC 0.002428512
025786,000447:
025787,000448: 26,2746 00053 30441 TORKJET1 2DEC 0.002671365
025788,000449:
025789,000450: 26,2750 23712 4JTORK DEC .62170
025790,000451:
![]() |
Page 580 |
025792,000453: # PROGRAM NAME: AOSJOB MOD. NO. 0 DATE: DECEMBER 2, 1966
025793,000454: # PROGRAM DESIGN BY: RICHARD D. GOSS (MIT/IL)
025794,000455:
025795,000456: # IMPLEMENTATION BY: JONATHAN D. ADDELSTON (ADAMS ASSOCIATES)
025796,000457:
025797,000458: # THE PROGRAM IS AN EXECUTIVE JOB WHICH CALCULATES THE FOLLOWING QUANTITIES FOR THE LM DAP T5RUPT PROGRAMS:
025798,000459: # 1. THE INVERSES OF THE NET ACCELERATIONS ABOUT ALL AXES (Q,R,U,V), IN ALL DIRECTIONS (+/-), AND ALL
025799,000460: # COMBINATIONS OF JETS (2/4 FOR Q,R AND 1/2 FOR U,V).
025800,000461: # 2. THE INVERSES OF THE MINIMUM ACCELERATIONS FOR THE URGENCY AND TJETLAW COMPUTATION, DURING APS BURNS.
025801,000462: # 3. THE INITIAL INVERSE NET ACCELERATIONS USED FOR THE URGENCY COMPUTATION, DURING APS BURNS.
025802,000463: # 4. THE NJ FLAGS TO REQUIRE MANDATORY JET ACCELERATION DURING APS BURNS.
025803,000464:
025804,000465: # CALLING SEQUENCE: SUBROUTINES CALLED: INVACC.
025805,000466:
025806,000467: # L -1 CAF PRIO24
025807,000468: # L TC NOVAC
025808,000469: # EBANK= AOSQ
025809,000470: # L +1 2CADR AOSJOB
025810,000471: # L +2 (BBCON)
025811,000472: # L +3 (RETURN)
025812,000473:
025813,000474: # NORMAL EXIT: ENDOFJOB. ALARM/ABORT EXITS: NONE.
025814,000475:
025815,000476: # INPUT: AOSQ,AOSR,AOSU,AOSV,1JACCQ,1JACCR,1JACCU,1JACCV,APSGOING/DAPBOOLS.
025816,000477:
025817,000478: # DEBRIS: NONE.
025818,000479:
![]() |
Page 581 |
025820,000481: 20,3325 BANK 20
025821,000482: 20,3325 E6,1652 EBANK= AOSQ
025822,000483:
025823,000484: 20,3325 73731 -.02R/S2 DEC -.12732 # -.02 RADIANS/SECOND(2) SCALED AT PI/2
025824,000485: 20,3326 11642 ACCFIFTY DEC 0.30679 # .5(50) SEC(2)/RAD SCALED AT 2(+8)/PI.
025825,000486:
025826,000487: # SET UP LOOP FOR FOUR AXES (IN THE ORDER: V,U,R,Q):
025827,000488:
025828,000489: 20,3327 37753 AOSJOB CAF FOUR # "JOBAXES" IS USED TO PICK UP ONE OF FOUR
025829,000490: 20,3330 54144 INVLOOP TS JOBAXES # ADJACENT REGISTERS, ALSO TO COUNT LOOP.
025830,000491:
025831,000492: # SET UP "TABPLACE" TO STORE 1/NETACC TABLE:
025832,000493:
025833,000494: 20,3331 00006 EXTEND # TABPLACE = 4(JOBAXES)
025834,000495: 20,3332 77753 MP FOUR # SINCE THERE ARE FOUR ENTRIES PER AXIS.
025835,000496: 20,3333 22146 LXCH TABPLACE
025836,000497:
025837,000498: # 2
025838,000499: # 2(1JACC ) + AOS - 0.02 RADIANS/SECOND GREATER THAN ZERO
025839,000500: # Q,R Q,R
025840,000501: # OR 2
025841,000502: # 1JACC + AOS - 0.02 RADIANS/SECOND GREATER THAN ZERO
025842,000503: # U,V U,V
025843,000504:
025844,000505: 20,3334 50144 INDEX JOBAXES # THE INDEXED PICK-UP OF JET ACCELERATIONS
025845,000506: 20,3335 31613 CAE 1JACCQ # USES THE FOLLOWING HAPPY COINCIDENCE:
025846,000507: 20,3336 54150 TS TEMPACC # 1JACCU AND 1JACCV ARE SCALED AT PI/2 AS
025847,000508: 20,3337 50144 INDEX JOBAXES # ARE AOSU AND AOSV. 1JACCQ AND 1JACCR
025848,000509: 20,3340 61652 AD AOSQ # ARE SCALED AT PI/4 AND THEREFORE ARE
025849,000510: 20,3341 54151 TS TEMPNET # EQUIVALENT TO 2(1JACCQ) AND 2(1JACCR)
025850,000511: 20,3342 63325 AD -.02R/S2 # SCALED AT PI/2 AS ARE AOSQ AND AOSR.
025851,000512: 20,3343 00006 EXTEND # -.02R/S2 IS -0.02 RADIANS/SECOND(2),PI/2
025852,000513:
025853,000514: 20,3344 63634 BZMF FIFTY1 # (BRANCH FOR CONSTANT VALUE OF INVERSE.)
025854,000515:
025855,000516: # 1/NET+2 = 1/( 2(1JACC ) + AOS )
025856,000517: # Q,R Q,R Q,R
025857,000518: # OR
025858,000519: # 1/NET+1 = 1/( 1JACC + AOS )
025859,000520: # U,V U,V U,V
025860,000521:
025861,000522: 20,3345 03644 TC INVACC
025862,000523: 20,3346 50146 FIFTY1R INDEX TABPLACE
025863,000524: 20,3347 55670 TS 1/NET+2Q # SCALED AT 2(+8)/PI SECONDS(2)/RADIAN.
025864,000525:
025865,000526: # 2
025866,000527: # 2(1JACC ) - AOS - 0.02 RADIANS/SECOND GREATER THAN ZERO
025867,000528: # Q,R Q,R
025868,000529: # OR 2
025869,000530: # 1JACC - AOS - 0.02 RADIANS/SECOND GREATER THAN ZERO
025870,000531: # U,V U,V
025871,000532:
![]() |
Page 582 |
025873,000534: 20,3350 50144 INDEX JOBAXES # THIS SECTION USES THE INDEXING TRICKS OF
025874,000535: 20,3351 41652 CS AOSQ # THE FIRST PART (ABOVE), BUT USES THE
025875,000536: 20,3352 54147 TS TEMPAOS # TEMPORARY LOCATIONS AS FOLLOWS:
025876,000537: 20,3353 60150 AD TEMPACC # "TEMPAOS" SAVES -AOS FOR THIS AXIS.
025877,000538: 20,3354 54151 TS TEMPNET # "TEMPACC" HAS THE JET ACCELERATION.
025878,000539: 20,3355 63325 AD -.02R/S2 # "TEMPNET" SAVES (JETACC-AOS) FOR DENOM.
025879,000540: 20,3356 00006 EXTEND # -.02R/S2 IS -0.02 RADIANS/SECOND(2),PI/2
025880,000541: 20,3357 63636 BZMF FIFTY2 # (BRANCH FOR CONSTANT VALUE OF INVERSE.)
025881,000542:
025882,000543: # 1/NET-2 = 1/( 2(1JACC ) - AOS )
025883,000544: # Q,R Q,R Q,R
025884,000545: # OR
025885,000546: # 1/NET-1 = 1/( 1JACC - AOS )
025886,000547: # U,V U,V U,V
025887,000548:
025888,000549: 20,3360 03644 TC INVACC
025889,000550: 20,3361 50146 FIFTY2R INDEX TABPLACE
025890,000551: 20,3362 55672 TS 1/NET-2Q # SCALED AT 2(+8)/PI SECONDS(2)/RADIAN.
025891,000552:
025892,000553: # 1/NET-4 = 1/( 4(1ACC - AOS )
025893,000554: # Q,R Q,R Q,R
025894,000555: # OR
025895,000556: # 1/NET-2 = 1/( 2(1JACC ) - AOS )
025896,000557: # U,V U,V U,V
025897,000558:
025898,000559: 20,3363 30150 CAE TEMPACC # FIRST, FROM 2(1JACCQ,R) FORM 4(1JACCQ,R)
025899,000560: 20,3364 60000 DOUBLE # OR FROM 1JACCU,V FORM 2(1JACCU,V) AND
025900,000561: 20,3365 54150 TS TEMPACC # SAVE FOR NEXT INVERSE CALCULATION.
025901,000562: 20,3366 60147 AD TEMPAOS # THEN, COMPUTE EITHER 4(1JACCQ,R)-AOSQ,R
025902,000563: 20,3367 54151 TS TEMPNET # OR 2(1JACCU,V)-AOSU,V SCALED AT PI/2.
025903,000564:
025904,000565: 20,3370 03644 TC INVACC
025905,000566: 20,3371 50146 INDEX TABPLACE
025906,000567: 20,3372 55673 TS 1/NET-4Q # SCALED AT 2(+8)/PI SECONDS(2)/RADIAN.
025907,000568:
![]() |
Page 583 |
025909,000570: # 1/NET+4 = 1/( 4(1ACC + AOS )
025910,000571: # Q,R Q,R Q,R
025911,000572: # OR
025912,000573: # 1/NET+2 = 1/( 2(1JACC ) + AOS )
025913,000574: # U,V U,V U,V
025914,000575:
025915,000576: 20,3373 40147 CS TEMPAOS # FIRST, COMPUTE EITHER 4(1JACCQ,R)+AOSQ,R
025916,000577: 20,3374 60150 AD TEMPACC # OR 2(1JACCU,V)+AOSU,V AND SAVE FOR THE
025917,000578: 20,3375 54151 TS TEMPNET # DIVISION (SCALED AT PI/2 RADIANS/SECOND)
025918,000579:
025919,000580: 20,3376 03644 TC INVACC
025920,000581: 20,3377 50146 INDEX TABPLACE
025921,000582: 20,3400 55671 TS 1/NET+4Q # SCALED AT 2(+8)/PI RADIANS(2)/SECOND.
025922,000583:
025923,000584: # TEST FOR END OF LOOP:
025924,000585:
025925,000586: 20,3401 10144 CCS JOBAXES # IF "JOBAXES" PNZ, CONTINUE.
025926,000587: 20,3402 13330 TCF INVLOOP # IF "JOBAXES" ZERO, STOP.
025927,000588:
025928,000589: # TEST FOR ASCENT PROPULSION SYSTEM BURN:
025929,000590:
025930,000591: 20,3403 37746 CAF APSGOING # IF LM IS IN COAST OR IN A DESCENT BURN,
025931,000592: 20,3404 70077 MASK DAPBOOLS # THEN THE AOSJOB IS TRIVIAL FROM HERE
025932,000593: 20,3405 10000 CCS A # AND THIS TEST REDUCES THE COMPUTATION
025933,000594: 20,3406 13414 TCF ASCJOB # TIME IN THOSE CASES.
025934,000595:
025935,000596: # FILL IN DESCENT BURN OR COAST VALUES QUICKLY:
025936,000597:
025937,000598: 20,3407 31670 CAE 1/NET+2Q # FOR Q-AXIS URGENCY.
025938,000599: 20,3410 55711 TS 1/ACCQ
025939,000600: 20,3411 31674 CAE 1/NET+2R # FOR R-AXIS URGENCY.
025940,000601: 20,3412 55712 TS 1/ACCR
025941,000602:
025942,000603: 20,3413 15605 TCF ENDOFJOB # END THIS ITERATION OF AOSJOB.
025943,000604:
![]() |
Page 584 |
025945,000606: # IN ASCENT BURN, SO SET UP Q,R-AXES LOOP:
025946,000607:
025947,000608: 20,3414 37755 ASCJOB CAF ONE # SET UP THE TABLE INDICES:
025948,000609: 20,3415 54144 QRJOB TS JOBAXES
025949,000610: 20,3416 60000 DOUBLE # AOS TABLE USES "JOBAXES" (ADJACENT).
025950,000611: 20,3417 54145 TS NJPLACE # NJ TABLE USES "NJPLACE" (ONE APART).
025951,000612: 20,3420 60000 DOUBLE # NET TABLE USES "TABPLACE" (THREE APART).
025952,000613: 20,3421 54146 TS TABPLACE
025953,000614:
025954,000615: # TEST ABVAL(AOS ) - 0.02 RADIANS/SECOND(2) GREATER THAN ZERO:
025955,000616: # Q,R
025956,000617:
025957,000618: 20,3422 50144 INDEX JOBAXES # FORM ABVAL(AOS ) AND SAVE FOR INVACC.
025958,000619: 20,3423 11652 CCS AOSQ # Q,R
025959,000620: 20,3424 67755 AD ONE
025960,000621: 20,3425 13427 TCF +2
025961,000622: 20,3426 67755 AD ONE
025962,000623: 20,3427 54151 TS TEMPNET
025963,000624: 20,3430 63325 AD -.02R/S2 # -0.02 RADIANS/SECOND(2) AT PI/2.
025964,000625: 20,3431 00006 EXTEND
025965,000626: 20,3432 63640 BZMF FIFTY3 # (BRANCH FOR CONSTANT VALUE OF INVERSE.)
025966,000627:
025967,000628: # CALCULATE 1/AMIN = 1/ABVAL(AOS ):
025968,000629: # Q,R Q,R
025969,000630:
025970,000631: 20,3433 03644 TC INVACC # (USE SUBROUTINE FOR INVERSE.)
025971,000632:
025972,000633: 20,3434 50144 FIFTY3R INDEX JOBAXES
025973,000634: 20,3435 55713 TS 1/AMINQ # SAVE FOR USE BY URGENCY CALCULATIONS.
025974,000635:
025975,000636: # TEST 2(1JACC ) - ABVAL(AOS ) - 0.02 RADIANS/SECOND(2) GREATER THAN ZERO:
025976,000637: # Q,R Q,R
025977,000638:
025978,000639: 20,3436 40151 CS TEMPNET # "TEMPNET" IS ABVAL(AOSQ,R).
025979,000640: 20,3437 63325 AD -.02R/S2 # -0.02 RADIANS/SECOND(2).
025980,000641: 20,3440 50144 INDEX JOBAXES
025981,000642: 20,3441 61613 AD 1JACCQ # "1JACCQ,R" SCALED AT PI/4 RAD/SEC(2) ARE
025982,000643: 20,3442 00006 EXTEND # 2(1JACCQ,R) SCALED AT PI/2 RAD/SEC(2).
025983,000644: 20,3443 63503 BZMF OVERRIDE
025984,000645:
025985,000646: # SET FLAG NOT TO REQUEST MANDATORY FOUR JET OPERATION FOR +Q,+R ROTATION DURING THIS APS BURN (FOR NOW):
025986,000647:
025987,000648: 20,3444 37761 CAF ZERO # NJ = 0 ALLOWS THE URGENCY FUNCTIONS TO
025988,000649: 20,3445 50145 INDEX NJPLACE # ACTUALLY SELECT 2 JET ROTATION AS THE
025989,000650: 20,3446 55660 TS NJ+Q # OPTIMAL POLICY.
025990,000651:
025991,000652: # TEST SIGN(AOS ):
025992,000653: # Q,R
025993,000654:
025994,000655: 20,3447 50144 INDEX JOBAXES # THE SIGN OF AOSQ,R DETERMINES THE RATIO
025995,000656:
025996,000657: 20,3450 31652 CAE AOSQ # TO BE COMPUTED AS THE CORRECTION FACTOR
![]() |
Page 585 |
025998,000659: 20,3451 00006 EXTEND # IN THE URGENCY FUNCTION CALCULATION AND
025999,000660: 20,3452 63467 BZMF URGRAT2 # ALSO SPECIFIES THE CURRECT NJ VALUES.
026000,000661:
026001,000662: # FIRST CASE FOR URGENCY RATIO:
026002,000663:
026003,000664: 20,3453 50146 URGRAT1 INDEX TABPLACE # CHOOSE THE -2 JET NET ACCELERATION
026004,000665: 20,3454 31672 CAE 1/NET-2Q # INVERSE FOR USE IN URGENCY COMPUTATION.
026005,000666: 20,3455 50144 INDEX JOBAXES
026006,000667:
026007,000668: 20,3456 55711 TS 1/ACCQ
026008,000669:
026009,000670: 20,3457 50146 INDEX TABPLACE
026010,000671: 20,3460 31670 CAE 1/NET+2Q # 1/NET+2Q,R
026011,000672: 20,3461 00006 EXTEND # RATIO = ----------
026012,000673: 20,3462 50146 INDEX TABPLACE # 1/NET-2Q,R
026013,000674: 20,3463 11672 DV 1/NET-2Q
026014,000675: 20,3464 50144 INDEX JOBAXES
026015,000676: 20,3465 55717 TS URGRATQ
026016,000677:
026017,000678: 20,3466 13526 TCF SWITNJS # GO TO SET NJS.
026018,000679:
026019,000680: # SECOND CASE FOR URGENCY RATIO:
026020,000681:
026021,000682: 20,3467 50146 URGRAT2 INDEX TABPLACE # CHOOSE THE +2 JET NET ACCELERATION
026022,000683: 20,3470 31670 CAE 1/NET+2Q # INVERSE FOR USE IN URGENCY COMPUTATION.
026023,000684: 20,3471 50144 INDEX JOBAXES
026024,000685: 20,3472 55711 TS 1/ACCQ
026025,000686:
026026,000687: 20,3473 50146 INDEX TABPLACE
026027,000688: 20,3474 31672 CAE 1/NET-2Q # 1/NET-2Q,R
026028,000689: 20,3475 00006 EXTEND # RATIO = ----------
026029,000690: 20,3476 50146 INDEX TABPLACE # 1/NET+2Q,R
026030,000691:
026031,000692: 20,3477 11670 DV 1/NET+2Q
026032,000693: 20,3500 50144 INDEX JOBAXES
026033,000694: 20,3501 55717 TS URGRATQ
026034,000695:
026035,000696: 20,3502 13551 TCF NXTNJZER # GO TO SET NJS.
026036,000697:
026037,000698: # SET FLAG TO INDICATE MANDATORY USE OF FOUR JETS TO FIGHT THE OFFSET ACCELERATION:
026038,000699:
026039,000700: 20,3503 00004 OVERRIDE INHINT # PREVENT POSSIBLY EPHEMERAL MANDATORY NJ
026040,000701: # SETTING FROM AFFECTING JET SELECTION.
026041,000702:
026042,000703: 20,3504 37755 CAF ONE # NJ = 1 FORCES THE URGENCY FUNCTIONS TO
026043,000704: 20,3505 50145 INDEX NJPLACE # ACTUALLY SELECT 4 JET ROTATION AS THE
026044,000705: 20,3506 55660 TS NJ+Q # OPTIMAL POLICY (TO FIGHT HIS AOS).
026045,000706:
026046,000707: # TEST SIGN(AOS ):
026047,000708: # Q,R
026048,000709:
026049,000710: 20,3507 50144 INDEX JOBAXES # THE SIGN OF AOSQ,R DETERMINES THE RATIO
![]() |
Page 586 |
026051,000712: 20,3510 31652 CAE AOSQ # TO BE COMPUTED AS THE CORRECTION FACTOR
026052,000713: 20,3511 00006 EXTEND # IN THE URGENCY FUNCTION CALCULATION AND
026053,000714: 20,3512 63535 BZMF URGRAT4 # ALSO SPECIFIES THE CORRECT NJ VALUES.
026054,000715:
026055,000716: # THIRD CASE FOR URGENCY RATIO:
026056,000717:
026057,000718: 20,3513 50146 URGRAT3 INDEX TABPLACE # CHOOSE THE -4 JET NET ACCELERATION
026058,000719: 20,3514 31673 CAE 1/NET-4Q # INVERSE FOR USE IN URGENCY COMPUTATION.
026059,000720: 20,3515 50144 INDEX JOBAXES
026060,000721: 20,3516 55711 TS 1/ACCQ
026061,000722:
026062,000723: 20,3517 50146 INDEX TABPLACE
026063,000724: 20,3520 31670 CAE 1/NET+2Q # 1/NET+2Q,R
026064,000725: 20,3521 00006 EXTEND # RATIO = ----------
026065,000726:
026066,000727: 20,3522 50146 INDEX TABPLACE # 1/NET-4Q,R
026067,000728: 20,3523 11673 DV 1/NET-4Q
026068,000729: 20,3524 50144 INDEX JOBAXES
026069,000730: 20,3525 55717 TS URGRATQ
026070,000731:
026071,000732: # RESET VALUES OF NJS FOR Q,R-AXIS:
026072,000733:
026073,000734: 20,3526 37761 SWITNJS CAF ZERO # SET NJ = NJ (FROM ABOVE)
026074,000735: 20,3527 50145 INDEX NJPLACE # -Q,-R +Q,+R
026075,000736: 20,3530 57660 XCH NJ+Q # AND
026076,000737: 20,3531 50145 INDEX NJPLACE # NJ = 0.
026077,000738: 20,3532 55661 TS NJ-Q # +Q,+R
026078,000739:
026079,000740: 20,3533 00003 RELINT # SINCE NJS NOW VALID, ALLOW INTERRUPTS.
026080,000741:
026081,000742: 20,3534 13556 TCF UVJOB # GO PROCESS U- AND V-AXIS.
026082,000743:
026083,000744: # FOURTH CASE FOR URGENCY RATIO:
026084,000745:
026085,000746: 20,3535 00003 URGRAT4 RELINT # SINCE ALL NJS ALREADY SET ARE NOW KNOWN
026086,000747: # TO BE VALID, ALLOW INTERRUPTS.
026087,000748:
026088,000749: 20,3536 50146 INDEX TABPLACE # CHOOSE THE +4 JET NET ACCELERATION
026089,000750:
026090,000751: 20,3537 31671 CAE 1/NET+4Q # INVERSE FOR USE IN URGENCY COMPUTATION.
026091,000752: 20,3540 50144 INDEX JOBAXES
026092,000753: 20,3541 55711 TS 1/ACCQ
026093,000754:
026094,000755: 20,3542 50146 INDEX TABPLACE
026095,000756: 20,3543 31672 CAE 1/NET-2Q # 1/NET-2Q,R
026096,000757: 20,3544 00006 EXTEND # RATIO = ----------
026097,000758: 20,3545 50146 INDEX TABPLACE # 1/NET+4Q,R
026098,000759: 20,3546 11671 DV 1/NET+4Q
026099,000760: 20,3547 50144 INDEX JOBAXES
026100,000761: 20,3550 55717 TS URGRATQ
026101,000762:
026102,000763: # SET NJ FOR NEGATIVE ROTATIONS:
026103,000764:
![]() |
Page 587 |
026105,000766: 20,3551 37761 NXTNJZER CAF ZERO # SET NJ = 0 TO LET THE URGENCY
026106,000767: 20,3552 50145 INDEX NJPLACE # -Q,-R FUNCTIONS SELECT 2 JET
026107,000768: 20,3553 55661 TS NJ-Q # -Q,-R ROTATION
026108,000769:
026109,000770: # TEST FOR END OF Q,R-AXES LOOP:
026110,000771:
026111,000772: 20,3554 10144 CCS JOBAXES # JOBAXES = 1 MEANS GO DO Q-AXIS.
026112,000773: 20,3555 13415 TCF QRJOB # JOBAXES = 0 MEANS GO DO U,V-AXES.
026113,000774:
![]() |
Page 588 |
026115,000776: # AFTER Q,R-AXES COMPLETE, DO U,V-AXES LOOP:
026116,000777:
026117,000778: 20,3556 37755 UVJOB CAF ONE # SET UP THE TABLE INDICES:
026118,000779: 20,3557 54144 UJOB TS JOBAXES
026119,000780: 20,3560 60000 DOUBLE # AOS TABLE USES "JOBAXES" (ADJACENT).
026120,000781: 20,3561 54145 TS NJPLACE # NJ TABLE USES "NJPLACE" (ONE APART).
026121,000782:
026122,000783: # TEST ON ABVAL(AOS ) - 0.02 RADIANS/SECOND(2) GREATER THAN ZERO:
026123,000784: # U,V
026124,000785:
026125,000786: # U,V U,V
026126,000787:
026127,000788: 20,3562 50144 INDEX JOBAXES # CALCULATE ABVAL(AOS ) SCALED AT PI/2.
026128,000789: 20,3563 11654 CCS AOSU # U,V
026129,000790: 20,3564 67755 AD ONE
026130,000791: 20,3565 13567 TCF +2
026131,000792: 20,3566 67755 AD ONE
026132,000793: 20,3567 54151 TS TEMPNET # SVAE ABVAL(AOSU,V) FOR USE BY INVACC.
026133,000794: 20,3570 63325 AD -.02R/S2 # -0.02 RADIANS/SECOND(2) SCALED AT PI/2
026134,000795: 20,3571 00006 EXTEND
026135,000796: 20,3572 63642 BZMF FIFTY4 # (BRANCH FOR CONSTANT VALUE OF INVERSE.)
026136,000797:
026137,000798: 20,3573 03644 TC INVACC
026138,000799: 20,3574 50144 FIFTY4R INDEX JOBAXES
026139,000800: 20,3575 55715 TS 1/AMINU # SCALED AT 2(+8)/PI SECONDS(2)/RADIAN.
026140,000801:
026141,000802: # TEST ON IJACC - ABVAL(AOS ) - 0.02 RADIANS/SECOND(2) GREATER THAN ZERO:
026142,000803: # U,V U,V
026143,000804:
026144,000805: 20,3576 40151 CS TEMPNET # -ABVAL(AOSU,V) SCALED AT PI/2 RAD/SEC(2)
026145,000806: 20,3577 63325 AD -.02R/S2 # -0.02 RADIANS/SECOND(2) SCALED AT PI/2.
026146,000807: 20,3600 50144 INDEX JOBAXES
026147,000808: 20,3601 61615 AD 1JACCU # 1 JET U,V-AXIS ACCELERATION AT PI/2.
026148,000809: 20,3602 00006 EXTEND
026149,000810: 20,3603 63606 BZMF RIDEOVER
026150,000811:
026151,000812: # SET NJ = 0.
026152,000813: # +U,+V
026153,000814:
026154,000815: 20,3604 37761 CAF ZERO # ALLOW URGENCY FUNCTIONS TO ACTUALLY
026155,000816: 20,3605 13610 TCF +3 # SELECT 2 JET OPTIONAL ROTATION.
026156,000817:
026157,000818: # SET NJ = 1.
026158,000819: # +U,+V
026159,000820:
026160,000821: 20,3606 00004 RIDEOVER INHINT # PREVENT POSSIBLE EPHEMERAL MANDATORY NJ
026161,000822: # SETTING FROM AFFECTING JET SELECTION.
026162,000823:
026163,000824: 20,3607 37755 CAF ONE # NJ = 1 FORCES THE URGENCY FUNCTIONS TO
026164,000825: 20,3610 50145 INDEX NJPLACE # ACTUALLY SELECT 2 JET MANDATORY ROTATION
![]() |
Page 589 |
026166,000827: 20,3611 55664 TS NJ+U # AS OPTIMAL POLICY (TO FIGHT HIGH AOS).
026167,000828:
026168,000829: # TEST SIGN(AOS ):
026169,000830: # U,V
026170,000831:
026171,000832: 20,3612 50144 INDEX JOBAXES # IF GREATER THAN ZERO, SWITCH NJS.
026172,000833: 20,3613 31654 CAE AOSU
026173,000834: 20,3614 00006 EXTEND # IF LESS THAN ZERO, SET NJ = 0.
026174,000835:
026175,000836: 20,3615 63625 BZMF ZERNJNXT # -U,-V
026176,000837:
026177,000838: 20,3616 37761 CAF ZERO # SET NJ = NJ (FROM ABOVE)
026178,000839: 20,3617 50145 INDEX NJPLACE # -U,-V +U,+V
026179,000840: 20,3620 57664 XCH NJ+U # AND
026180,000841: 20,3621 50145 INDEX NJPLACE # NJ = 0.
026181,000842: 20,3622 55665 TS NJ-U # +U,+V
026182,000843:
026183,000844: 20,3623 00003 RELINT # ALLOW INTERRUPTS AS SOON AS NJS STABLE.
026184,000845:
026185,000846: 20,3624 13631 TCF VJOBTEST # GO TO TEST FOR END OF LOOP.
026186,000847:
026187,000848: 20,3625 00003 ZERNJNXT RELINT # ALLOW INTERRUPTS SINCE SETTINGS VALID.
026188,000849:
026189,000850: 20,3626 37761 CAF ZERO # SET NJ = 0.
026190,000851: 20,3627 50145 INDEX NJPLACE # -U,-V
026191,000852: 20,3630 55665 TS NJ-U
026192,000853:
026193,000854: # TEST FOR END OF UV-AXES LOOP:
026194,000855:
026195,000856: 20,3631 10144 VJOBTEST CCS JOBAXES # JOBAXES = 1 MEANS GO DO U-AXIS.
026196,000857: 20,3632 13557 TCF UJOB # JOBAXES = 0 MEANS QUIT
026197,000858: 20,3633 15605 TCF ENDOFJOB
026198,000859:
026199,000860:
026200,000861: # THE FOLLOWING BRANCHES SUPPLY CONSTANT VALUES:
026201,000862:
026202,000863: 20,3634 33326 FIFTY1 CAF ACCFIFTY
026203,000864: 20,3635 13346 TCF FIFTY1R
026204,000865:
026205,000866: 20,3636 33326 FIFTY2 CAF ACCFIFTY
026206,000867: 20,3637 13361 TCF FIFTY2R
026207,000868:
026208,000869: 20,3640 33326 FIFTY3 CAF ACCFIFTY
026209,000870: 20,3641 13434 TCF FIFTY3R
026210,000871:
026211,000872: 20,3642 33326 FIFTY4 CAF ACCFIFTY
026212,000873: 20,3643 13574 TCF FIFTY4R
![]() |
Page 590 |
026214,000875: # SUBROUTINE NAME: INVACC MOD. NO. 0 DATE: DECEMBER 3, 1966
026215,000876:
026216,000877: # AUTHOR: JONATHAN D. ADDELSTON (ADAMS ASSOCIATES)
026217,000878:
026218,000879: # THIS SUBROUTINE IS CALLED BY AOSJOB TO CALCULATE:
026219,000880:
026220,000881: # 0.5 WHERE TEMPNET IS SCALED AT PI/2 RADIANS/SECOND(2)
026221,000882: # C(A) = -------
026222,000883: # AND THE FRACTION IS SCALED AT 2(+8)/PI SEC(2)/RAD.S(2)/RADIAN.
026223,000884:
026224,000885: # THIS SIMPLE COMPUTATION WAS SUBROUTINIZED DUE TO ITS FREQUENT USE.
026225,000886:
026226,000887: # CALLING SEQUENCE: TC INVACC
026227,000888:
026228,000889: # SUBROUTINES CALLED: NONE. NORMAL EXIT MODE: ONE INSTRUCTION AFTER CALL.
026229,000890:
026230,000891: # ALARM OR ABORT EXIT MODES: NONE.
026231,000892:
026232,000893: # INPUT: TEMPNET SCALED AT PI/2 RADIANS/SECONDS(2).
026233,000894:
026234,000895: # OUTPUT: C(A) SCALED AT 2(+8)/PI SECONDS(2)/RADIAN.
026235,000896:
026236,000897: # DEBRIS: L,Q.
026237,000898:
026238,000899: 20,3644 37747 INVACC CAF BIT7 # BIT7 IS USED AS THE NUMERATOR 0.5 SINCE
026239,000900: 20,3645 22007 ZL
026240,000901: 20,3646 00006 EXTEND # "TEMPNET" IS SCALED AT PI/2 AND THE
026241,000902: 20,3647 10151 DV TEMPNET
026242,000903: 20,3650 00002 TC Q # INVERSE IS SCALED AT 2(+8)/PI.
End of include-file AOSTASK_AND_AOSJOB.agc. Parent file is MAIN.agc