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