Source Code
These source code files are an attempted reconstruction of Sundance revision 306, the Apollo 9
LM (Lunar Module) AGC (Apollo Guidance Computer) flight software, created from binary dumps of
original core rope program modules, as follows:
|
059001,000002: ## Copyright: Public domain.
059002,000003: ## Filename: AOSTASK_AND_AOSJOB.agc
059003,000004: ## Purpose: A section of an attempt to reconstruct Sundance revision 306
059004,000005: ## as closely as possible with available information. Sundance
059005,000006: ## 306 is the source code for the Lunar Module's (LM) Apollo
059006,000007: ## Guidance Computer (AGC) for Apollo 9. This program was created
059007,000008: ## using the mixed-revision SundanceXXX as a starting point, and
059008,000009: ## pulling back features from Luminary 69 believed to have been
059009,000010: ## added based on memos, checklists, observed address changes,
059010,000011: ## or the Sundance GSOPs.
059011,000012: ## Assembler: yaYUL
059012,000013: ## Contact: Ron Burkey <info@sandroid.org>.
059013,000014: ## Website: www.ibiblio.org/apollo/index.html
059014,000015: ## Mod history: 2020-07-24 MAS Created from SundanceXXX.
059015,000016:
059016,000017:
059017,000018:
059018,000019: # PROGRAM NAME: 1/ACCS
059019,000020: # PROGRAM WRITTEN BY: BOB COVELLI AND MIKE HOUSTON
059020,000021: # LAST MODIFICATION: FEB. 21, 1968
059021,000022:
059022,000023: # PROGRAM DESCRIPTION:
059023,000024:
059024,000025: # 1/ACCS PROVIDES THE INTERFACE BETWEEN THE GUIDANCE PROGRAMS AND THE DIGITAL AUTOPILOT. WHENEVER THERE IS A
059025,000026: # CHANGE IN THE MASS OF THE VEHICLE, IN THE DEADBAND SELECTED, IN THE VEHICLE CONFIGURATION (ASCENT-DESCENT-
059026,000027: # DOCKED), AND DURING A FRESH START OR A RESTART, 1/ACCS IS CALLED TO COMMUNICATE THE DATA CHANGES TO THE DAP.
059027,000028:
059028,000029: # THE INPUTS TO 1/ACCS ARE MASS, ACCELERATION (ABDELV), DEADBAND (DB), OFFSET ACCELERATIONS (AOSQ AND AOSR),
059029,000030: # STAGE VERIFY BIT (CHAN30,BIT2), DOCKED BIT (DAPBOOLS,BIT13), DRIFT BIT (DAPBOOLS,BIT8), USEQRJTS (DAPBOOLS,
059030,000031: # BIT14), AND SURFACE FLAG (FLAGWRD8,BIT8), AND CH5MASK.
059031,000032:
059032,000033: # 1/ACCS COMPUTES THE JET ACCELERATIONS (1JACC, 1JACCQ, 1JACCR) AS FUNCTIONS OF MASS. 1JACCU AND 1JACCV ARE
059033,000034: # FORMED BY RESOLVING 1JACCQ NAD 1JACCR. IN THE DESCENT CASE, THE DESCENT ENGINE MOMENT ARM (L, PVT-CG) IS ALSO
059034,000035: # COMPUTED AS A FUNCTION OF MASS. THE RATE OF CHANGE OF ACCELERATION DUE TO ROTATION OF THE GIMBAL (ACCDOTQ,
059035,000036: # ACCDOTR) IS ALSO COMPUTED IN THE DESCENT CASE.
059036,000037:
059037,000038: # AFTER THE ABOVE COMPUTATIONS, THE PROGRAM 1/ACCONT COMPUTES THE RECIPROCAL NET ACCELERATIONS ABOUT THE P, U,
059038,000039: # AND V AXES (2 JETS FOR P AXIS, BOTH 1 AND 2 JETS FOR U AND V AXES), AND THE RECIPROCAL COAST ACCELERATIONS ABOUT
059039,000040: # THE P, U, AND V AXES. THE ACCELERATION FUNCTIONS (ACCFCTZ1 AND ACCFCTZ5) ARE ALSO COMPUTED FOR THESE AXES. THE
059040,000041: # FIRE AND COAST DEADBANDS AND AXISDIST ARE COMPUTED FOR EACH AXIS. FLAT AND ZONE3LIM, THE WIDTH AND HEIGHT OF THE
059041,000042: # MINIMUM IMPULSE ZONE, ARE COMPUTED. 1/ACCONT ALSO SETS ACCSWU AND ACCSWV, WHICH INDICATE WHEN 1 JET ACCELERATION
059042,000043: # IS NOT SUFFICIENT TO PRODUCE MINIMUM ACCELERATION. AT THE COMPLETION OF 1/ACCS, THE ACCSOKAY BIT IS SET.
059043,000044:
059044,000045: # SUBBOUTINES CALLED:
059045,000046: # TIMEGMBL
059046,000047: # MAKECADR
059047,000048: # ROT45DEG
059048,000049:
059049,000050: # CALLING SEQUENCE:
059050,000051: # TC BANKCALL (1/ACCS MUST BE CALL BY BANKCALL
059051,000052: # CADR 1/ACCS
059052,000053:
059053,000054: # NORMAL EXIT: VIA BANKJUMP ALARM AND ABORT EXIT MODES: NONE.
059054,000055:
059055,000056: # INPUT/OUTPUT: SEE PROGRAM DESCRIPTION
059056,000057:
059057,000058: # DEBRIS:
059058,000059:
059059,000060: # ALL OF THE EXECUTIVE TEMPORARY REGISTERS, EXCEPT FIXLOC AND OVFIND, AND THE CORE SET AREA FROM MPAC TO BANKSET.
059060,000061:
059061,000062: # RESTRICTIONS:
059062,000063: # 1/ACCS MUST BE CALLED BY BANKCALL
059063,000064: # EBANK IS SET TO 6, BUT NOT RESTORED.
059064,000065:
059065,000066: 20,2305 BANK 20
059066,000067: 20,2000 SETLOC DAPS3
059067,000068: 20,2000 BANK
059068,000069:
059069,000070: 20,2305 COUNT* $$/DAPAO
059070,000071:
059071,000072: 20,2305 E6,1532 EBANK= AOSQ
059072,000073:
059073,000074: # ENTRY IS THROUGH 1/ACCJOB OR 1/ACCSET WHEN 1/ACCS IS TO BE DONE AS A SEPARATE NOVAC JOB.
059074,000075:
059075,000076: # IT IS POSSIBLE FOR MORE THAN ONE OF THESE JOBS TO BE SET UP CONCURRENTLY. HOWEVER, SINCE THERE IS NO CHECK OF
059076,000077: # NEWJOB, A SECOND MANIFESTATION CANNOT BE STARTED UNTIL THE FIRST IS COMPLETED.
059077,000078:
059078,000079: 20,2305 35030 1/ACCSET CAF ZERO # ENTRY FROM FRESH START/RESTART CODING.
059079,000080: 20,2306 55532 TS AOSQ # NULL THE OFFSET ESTIMATES FOR 1/ACCS.
059080,000081: 20,2307 55534 TS AOSR
059081,000082: 20,2310 55422 TS ALPHAQ # NULL THE OFFSET ESTIMATES FOR DOWNLIST
059082,000083: 20,2311 55423 TS ALPHAR
059083,000084:
059084,000085: 20,2312 04655 1/ACCJOB TC BANKCALL # 1/ACCS ASSUMES ENTRY VIA BANKCALL.
059085,000086: 20,2313 40317 CADR 1/ACCS +2 # SKIP EBANK SETTING.
059086,000087:
059087,000088: 20,2314 05225 TC ENDOFJOB
059088,000089:
059089,000090: 20,2315 35065 1/ACCS CA EBANK6 # ***** EBANK SET BUT NOT RESTORED *****
059090,000091: 20,2316 54003 TS EBANK
059091,000092:
059092,000093: 20,2317 04704 TC MAKECADR # SAVE RETURN SO THAT BUF2 MAY BE USED
059093,000094: 20,2320 54117 TS ACCRETRN
059094,000095:
059095,000096: # DETERMINE MASS OF THE LEM.
059096,000097: 20,2321 31102 CA DAPBOOLS # IS CSM DOCKED
059097,000098: 20,2322 75012 MASK CSMDOCKD
059098,000099: 20,2323 54157 TS DOCKTEMP # STORE RECORD OF STATE IN TEMP (MPAC +3).
059099,000100: 20,2324 10000 CCS A
059100,000101: 20,2325 41336 CS CSMMASS # DOCKED: LEMMASS = MASS - CSMMASS
059101,000102: 20,2326 61243 AD MASS # LEM ALONE: LEMMASS = MASS
059102,000103: 20,2327 55335 TS LEMMASS
059103,000104:
059104,000105: # ON THE BASIS OF APSFLAG:
059105,000106: # SET THE P-AXIS RATE COMMAND LIMIT FOR 2-JET/4-JET CONTROL
059106,000107: # SET MPAC, WHICH INDICATES THE PROPER SET OF COEFFICIENTS FOR THE LEM-ALONE F(MASS) CALCULATIONS
059107,000108: # ENSURE THAT THE LEM MASS VALUE IS WITHIN THE ACCEPTABLE RANGE
059108,000109:
059109,000110: 20,2330 35025 CAF BIT2 # DETERMINE WHETHER STAGED.
059110,000111: 20,2331 00006 EXTEND
059111,000112: 20,2332 02030 RAND CHAN30
059112,000113: 20,2333 00004 INHINT
059113,000114: 20,2334 10000 CCS A
059114,000115: 20,2335 12342 TCF APS/SURF
059115,000116:
059116,000117: 20,2336 30104 CA FLAGWRD8 # DETERMINE IF ON SURFACE.
059117,000118: 20,2337 75017 MASK SURFFBIT
059118,000119: 20,2340 00006 EXTEND
059119,000120: 20,2341 12370 BZF DPSFLITE
059120,000121:
059121,000122: 20,2342 40075 APS/SURF CS FLAGWRD1 # ASCENT (OR ON LUNAR SURFACE)
059122,000123: 20,2343 75013 MASK APSFLBIT # SET APSFLAG.
059123,000124: 20,2344 26075 ADS FLAGWRD1
059124,000125:
059125,000126: 20,2345 35010 CAF NEGMAX
059126,000127: 20,2346 55463 TS -2JETLIM # ALWAYS 2 JETS FOR P-AXIS RATE COMMAND
059127,000128: 20,2347 35746 CAF OCT14 # INITIALIZE INDEX AT 12.
059128,000129: 20,2350 54154 TS MPAC
059129,000130: 20,2351 41335 CS LEMMASS # CHECK IF MASS TOO HIGH. CATCH STAGING.
059130,000131: 20,2352 61400 AD HIASCENT
059131,000132: 20,2353 00006 EXTEND
059132,000133: 20,2354 62361 BZMF MASSFIX
059133,000134: 20,2355 41335 CS LEMMASS # CHECK IF MASS TOO LOW. THIS LIMITS THE
059134,000135: 20,2356 62664 AD LOASCENT # DECREMENTING BY MASSMON.
059135,000136: 20,2357 00006 EXTEND
059136,000137: 20,2360 62411 BZMF F(MASS)
059137,000138:
059138,000139: 20,2361 27335 MASSFIX ADS LEMMASS # STORE THE VIOLATED LIMIT AS LEMMASS.
059139,000140: 20,2362 22007 ZL # ALSO CORRECT TOTAL MASS, ZEROING THE
059140,000141: 20,2363 10157 CCS DOCKTEMP # LOW-ORDER WORD.
059141,000142: 20,2364 31336 CAE CSMMASS # DOCKED: MASS = LEMMASS + CSMMASS
059142,000143: 20,2365 61335 AD LEMMASS # LEM ALONE: MASS = LEMMASS
059143,000144: 20,2366 53244 DXCH MASS
059144,000145: 20,2367 12411 TCF F(MASS)
059145,000146:
059146,000147: 20,2370 45013 DPSFLITE CS APSFLBIT
059147,000148: 20,2371 70075 MASK FLAGWRD1
059148,000149: 20,2372 54075 TS FLAGWRD1
059149,000150: 20,2373 32676 CAF -1.4D/S # FOUR JETS FOR P-AXIS RATE COMMAND ERRORS
059150,000151: 20,2374 55463 TS -2JETLIM # EXCEEDING 1.4 DEG/SEC (SCALED AT 45)
059151,000152: 20,2375 36216 CAF SIX # INITIALIZE INDEX AT 6.
059152,000153: 20,2376 54154 TS MPAC
059153,000154: 20,2377 41335 CS LEMMASS # CHECK IF MASS TOO HIGH. SHOULD NEVER
059154,000155: 20,2400 62665 AD HIDESCNT # OCCUR EXCEPT PERHAPS BEFORE THE PAD
059155,000156: 20,2401 00006 EXTEND # LOAD IS DONE.
059156,000157: 20,2402 62361 BZMF MASSFIX
059157,000158: 20,2403 41335 CS LEMMASS # CHECK IF MASS TOO LOW. THIS LIMITS THE
059158,000159: 20,2404 62666 AD LODESCNT # DECREMENTING BY MASSMON.
059159,000160: 20,2405 61400 AD HIASCENT
059160,000161: 20,2406 00006 EXTEND
059161,000162: 20,2407 62411 BZMF F(MASS)
059162,000163: 20,2410 12361 TCF MASSFIX
059163,000164:
059164,000165: # COMPUTATION OF FUNCTIONS OF MASS
059165,000166: 20,2411 00003 F(MASS) RELINT
059166,000167: 20,2412 10157 CCS DOCKTEMP
059167,000168: 20,2413 12677 TCF DOCKED # DOCKED: USE SEPERATE COMPUTATION.
059168,000169: 20,2414 35025 CA TWO
059169,000170: 20,2415 54155 STCTR TS MPAC +1 # J=2,1,0 FOR 1JACCR,1JACCQ,1JACC
059170,000171:
059171,000172: 20,2416 45025 CS TWO
059172,000173: 20,2417 26154 ADS MPAC # JX=10,8,6 OR 4,2,0 TO INDEX COEFS.
059173,000174:
059174,000175: 20,2420 31243 STCTR1 CAE MASS
059175,000176: 20,2421 55335 TS LEMMASS
059176,000177: 20,2422 50154 INDEX MPAC
059177,000178: 20,2423 62651 AD INERCONC
059178,000179: 20,2424 54156 TS MPAC +2 # MASS + C
059179,000180: 20,2425 00006 EXTEND
059180,000181: 20,2426 50154 INDEX MPAC
059181,000182: 20,2427 32633 DCA INERCONA
059182,000183: 20,2430 00006 EXTEND
059183,000184: 20,2431 10156 DV MPAC +2
059184,000185: 20,2432 50154 INDEX MPAC
059185,000186: 20,2433 62650 AD INERCONB
059186,000187: 20,2434 50155 INDEX MPAC +1 # 1JACC(J)=A(JX)/(MASS+C(JX) + B(JX)
059187,000188: 20,2435 55522 TS 1JACC # 1JACC(-1)=L,PVT-CG SCALED AT 8 FEET
059188,000189:
059189,000190: 20,2436 10155 CCS MPAC +1
059190,000191: 20,2437 12415 TCF STCTR
059191,000192: 20,2440 12442 TCF COMMEQS
059192,000193: 20,2441 12466 TCF LRESC
059193,000194:
059194,000195: 20,2442 31524 COMMEQS CA 1JACCR # SCALED AT PI/4
059195,000196: 20,2443 61523 AD 1JACCQ
059196,000197: 20,2444 00006 EXTEND
059197,000198: 20,2445 72674 MP 0.35356 # .70711 SCALED BY (+1)
059198,000199: 20,2446 55525 TS 1JACCU
059199,000200: 20,2447 55526 TS 1JACCV # SCALED AT PI/2 RAD/SEC**2
059200,000201:
059201,000202: 20,2450 35017 CAF BIT8
059202,000203: 20,2451 22007 ZL
059203,000204: 20,2452 00006 EXTEND
059204,000205: 20,2453 11522 DV 1JACC
059205,000206: 20,2454 55447 TS 1/2JTSP
059206,000207:
059207,000208: 20,2455 10154 CCS MPAC # COMPUTE L,PVT-CG IF IN DESCENT
059208,000209: 20,2456 13004 TCF 1/ACCONT
059209,000210: 20,2457 15726 TCF CCSHOLE
059210,000211: 20,2460 15726 TCF CCSHOLE
059211,000212:
059212,000213: 20,2461 45025 CS TWO
059213,000214: 20,2462 54154 TS MPAC
059214,000215: 20,2463 45026 CS ONE
059215,000216: 20,2464 54155 TS MPAC +1
059216,000217: 20,2465 12420 TCF STCTR1
059217,000218: # THIS SECTION COMPUTES THE RATE OF CHANGE OF ACCELERATION DUE TO THE ROTATION OF THE GIMBALS. THE EQUATION IMPLE
059218,000219: # MENTED IN BOTH THE Y-X PLANE AND THE Z-X PLANE IS -- D(ALPHA)/DT = TL/I*D(DELTA)/DT, WHERE
059219,000220: # T = ENGINE THRUST FORCE
059220,000221: # L = PIVOT TO CG DISTANCE OF ENGINE
059221,000222: # I = MOMENT OF INERTIA
059222,000223:
059223,000224: 20,2466 31245 LRESC CAE ABDELV # SCALED AT 2(13) CM/SEC(2)
059224,000225: 20,2467 00006 EXTEND
059225,000226: 20,2470 71243 MP MASS # SCALED AT B+16 KGS
059226,000227: 20,2471 02567 TC DVOVSUB # GET QUOTIENT WITH OVERFLOW PROTECTION
059227,000228: 20,2472 02675 ADRES GFACTM
059228,000229:
059229,000230: # MASS IS DIVIDED BY ACCELERATION OF GRAVITY IN ORDER TO MATCH THE UNITS OF IXX,IYY,IZZ, WHICH ARE SLUG-FT(2).
059230,000231: # THE RATIO OF ACCELERATION FROM PIPAS TO ACCELERATION OF GRAVITY IS THE SAME IN METRIC OR ENGINEERING UNITS, SO
059231,000232: # THAT IS UNCONVERTED. 2.20462 CONVERTS KG. TO LB. NOW T IS IN A SCALED AT 2(14).
059232,000233:
059233,000234: 20,2473 00006 EXTEND
059234,000235: 20,2474 71521 MP L,PVT-CG # SCALED AT 8 FEET.
059235,000236: 20,2475 00004 INHINT
059236,000237: 20,2476 54154 TS MPAC
059237,000238: 20,2477 00006 EXTEND
059238,000239: 20,2500 71524 MP 1JACCR
059239,000240: 20,2501 02567 TC DVOVSUB # GET QUOTIENT WITH OVERFLOW PROTECTION
059240,000241: 20,2502 03003 ADRES TORKJET1
059241,000242:
059242,000243: 20,2503 55511 TS ACCDOTR # SCALED AT PI/2(7)
059243,000244: 20,2504 30154 CA MPAC
059244,000245: 20,2505 00006 EXTEND
059245,000246: 20,2506 71523 MP 1JACCQ
059246,000247: 20,2507 02567 TC DVOVSUB # GET QUOTIENT WITH OVERFLOW PROTECTION
059247,000248: 20,2510 03003 ADRES TORKJET1
059248,000249:
059249,000250: 20,2511 55507 SPSCONT TS ACCDOTQ # SCALED AT PI/2(7)
059250,000251: 20,2512 00006 EXTEND
059251,000252: 20,2513 72673 MP DGBF # .3ACCDOTQ SCALED AT PI/2(8)
059252,000253: 20,2514 55503 TS KQ
059253,000254: 20,2515 00006 EXTEND
059254,000255: 20,2516 70000 SQUARE
059255,000256: 20,2517 55504 TS KQ2 # KQ(2)
059256,000257:
059257,000258: 20,2520 31511 CAE ACCDOTR # .3ACCDOTR AT PI/2(8)
059258,000259: 20,2521 00006 EXTEND
059259,000260: 20,2522 72673 MP DGBF
059260,000261: 20,2523 55505 TS KRDAP
059261,000262: 20,2524 00006 EXTEND
059262,000263: 20,2525 70000 SQUARE
059263,000264: 20,2526 55506 TS KR2
059264,000265:
059265,000266: 20,2527 00006 EXTEND # NOW COMPUTE QACCDOT, RACCDOT, THE SIGNED
059266,000267: 20,2530 00012 READ CHAN12 # JERK TERMS. STORE CHANNEL 12. WITH GIM
059267,000268: 20,2531 54155 TS MPAC +1 # BAL DRIVE BITS 9 THROUGH 12. SET LOOP
059268,000269: 20,2532 35025 CAF BIT2 # INDEX TO COMPUTE RACCDOT, THEN QACCDOT.
059269,000270: 20,2533 12535 TCF LOOP3
059270,000271: 20,2534 35030 CAF ZERO # ACCDOTQ AND ACCDOTR ARE NOT NEGATIVE,
059271,000272: 20,2535 54154 LOOP3 TS MPAC # BECAUSE THEY ARE MAGNITUDES
059272,000273: 20,2536 30155 CA MPAC +1
059273,000274: 20,2537 50154 INDEX MPAC # MASK CHANNEL IMAGE FOR ANY GIMBAL MOTION
059274,000275: 20,2540 72667 MASK GIMBLBTS
059275,000276: 20,2541 00006 EXTEND
059276,000277: 20,2542 12556 BZF ZACCDOT # IF NONE, Q(R)ACCDOT IS ZERO.
059277,000278: 20,2543 30155 CA MPAC +1
059278,000279: 20,2544 50154 INDEX MPAC # GIMBAL IS MOVING. IS ROTATION POSITIVE.
059279,000280: 20,2545 72670 MASK GIMBLBTS +1
059280,000281: 20,2546 00006 EXTEND
059281,000282: 20,2547 12553 BZF FRSTZERO # IF NOT POSITIVE, BRANCH
059282,000283: 20,2550 50154 INDEX MPAC # POSITIVE ROTATION, NEGATIVE Q(R)ACCDOT.
059283,000284: 20,2551 41507 CS ACCDOTQ
059284,000285: 20,2552 12557 TCF STACCDOT
059285,000286: 20,2553 50154 FRSTZERO INDEX MPAC # NEGATIVE ROTATION, POSITIVE Q(R)ACCDOT.
059286,000287: 20,2554 31507 CA ACCDOTQ
059287,000288: 20,2555 12557 TCF STACCDOT
059288,000289: 20,2556 35030 ZACCDOT CAF ZERO
059289,000290: 20,2557 50154 STACCDOT INDEX MPAC
059290,000291: 20,2560 55510 TS QACCDOT # STORE Q(R)ACCDOT.
059291,000292: 20,2561 10154 CCS MPAC
059292,000293: 20,2562 12534 TCF LOOP3 -1 # NOW DO QACCDOT.
059293,000294:
059294,000295: 20,2563 00003 RELINT
059295,000296: 20,2564 10157 DOCKTEST CCS DOCKTEMP # BYPASS 1/ACCONT WHEN DOCKED.
059296,000297: 20,2565 13437 TCF 1/ACCRET
059297,000298: 20,2566 13004 TCF 1/ACCONT
059298,000299:
059299,000300: # SUBROUTINE: DVOVSUB
059300,000301: # AUTHOR: C. WORK, MOD 0 12 JUNE 68
059301,000302: # PURPOSE: THIS SUBROUTINE PROVIDES A SINGLE-PRECISION MACHINE LANGUAGE DIVISION OPERATION WHICH RETURNS
059302,000303: # (1) THE QUOTIENT, IF THE DIVISION WAS NORMAL.
059303,000304: # (2) NEGMAX, IF THE QUOTIENT WAS IMPROPER AND NEGATIVE.
059304,000305: # (3) POSMAX, IF THE QUOTIENT WAS IMPROPER AND POSITIVE OR IF THERE WAS A ZERO DIVISOR.
059305,000306: # THE CALLING PROGRAM IS PRESUMED TO BE A JOB IN THE F BANK WHICH CONTAINS DVOVSUB. E BANK MUST BE 6.
059306,000307: # THE DIVISOR FOR THIS ROUTINE MAY BE IN EITHER FIXED OR ERASABLE STORAGE. SIGN AGREEMENT IS
059307,000308: # ASSUMED BETWEEN THE TWO HALVES OF THE DIVIDEND. (THIS IS CERTAIN IF THE A AND L REGISTERS ARE THE RE-
059308,000309: # SULT OF A MULTIPLICATION OPERATION.)
059309,000310: # CALL SEQUENCE:
059310,000311: # L TC DVOVSUB
059311,000312: # L +1 ADRES (DIVISOR)
059312,000313: # L +2 RETURN HERE, WITH RESULT IN A,L
059313,000314: # INPUT: DIVIDEND IN A,L (SIGN AGREEMENT ASSUMED), DIVISOR IN LOCATION DESIGNATED BY "ADRES".
059314,000315: # DIVISOR MAY BE IN THE DVOVSUB FBANK,FIXED-FIXED FBANK,EBANK 6, OR UNSWITCHED ERASABLE.
059315,000316: # OUTPUT: QUOTIENT AND REMAINDER, OR POSMAX (NEGMAX), WHICHEVER IS APPROPRIATE.
059316,000317: # DEBRIS: SCRATCHX,SCRATCHY,SCRATCHZ,A,L (NOTE: SCRATCHX,Y,Z ARE EQUATED TO MPAC +4,+5, AND +6.)
059317,000318: # ABORTS OR ALARMS: NONE
059318,000319: # EXITS: TO THE CALL POINT +2.
059319,000320: # SUBROUTINES CALLED: NONE.
059320,000321:
059321,000322: 20,2567 55476 DVOVSUB TS SCRATCHY # SAVE UPPER HALF OF DIVIDEND
059322,000323: 20,2570 55475 TS SCRATCHX
059323,000324: 20,2571 50002 INDEX Q # OBTAIN ADDRESS OF DIVISOR.
059324,000325: 20,2572 30000 CA 0
059325,000326: 20,2573 24002 INCR Q # STEP Q FOR PROPER RETURN SEQUENCE.
059326,000327: 20,2574 50000 INDEX A
059327,000328: 20,2575 30000 CA 0 # PICK UP THE DIVISOR.
059328,000329: 20,2576 00006 EXTEND # RETURN POSMAX FOR A ZERO DIVISOR.
059329,000330: 20,2577 12626 BZF MAXPLUS
059330,000331:
059331,000332: 20,2600 55477 TS SCRATCHZ # STORE DIVISOR.
059332,000333:
059333,000334: 20,2601 10000 CCS A # GET ABS(DIVISOR) IN THE A REGISTER.
059334,000335: 20,2602 65026 AD BIT1
059335,000336: 20,2603 12605 TCF ZEROPLUS
059336,000337: 20,2604 65026 AD BIT1
059337,000338:
059338,000339: 20,2605 57476 ZEROPLUS XCH SCRATCHY # STORE ABS(DIVISOR). PICK UP TOP HALF OF
059339,000340: 20,2606 00006 EXTEND # DIVIDEND.
059340,000341: 20,2607 62611 BZMF GOODNEG # GET -ABS(DIVIDEND)
059341,000342: 20,2610 40000 CS A
059342,000343:
059343,000344: 20,2611 61476 GOODNEG AD SCRATCHY # ABS(DIVISOR) - ABS(DIVIDEND)
059344,000345: 20,2612 00006 EXTEND
059345,000346: 20,2613 62620 BZMF MAKEMAX # BRANCH IF DIVISION IS NOT PROPER.
059346,000347:
059347,000348: 20,2614 31475 CA SCRATCHX # RE-ESTABLISH THE DIVIDEND.
059348,000349: 20,2615 00006 EXTEND
059349,000350: 20,2616 11477 DV SCRATCHZ # QUOTIENT IN THE A, REMAINDER IN L.
059350,000351: 20,2617 00002 TC Q # RETURN TO CALLER.
059351,000352:
059352,000353: 20,2620 11475 MAKEMAX CCS SCRATCHX # DETERMINE THE SIGN OF THE QUOTIENT.
059353,000354: 20,2621 11477 CCS SCRATCHZ # SCRATCHX AND SCRATCHZ ARE NON-ZERO.
059354,000355: 20,2622 12626 TCF MAXPLUS
059355,000356: 20,2623 11477 CCS SCRATCHZ
059356,000357: 20,2624 35010 CAF NEGMAX # +,- OR -,+
059357,000358: 20,2625 00002 TC Q
059358,000359: 20,2626 35006 MAXPLUS CAF POSMAX # -,- OR +,+
059359,000360: 20,2627 00002 TC Q
059360,000361:
059361,000362: # COEFFICIENTS FOR THE JET ACCELERATION CURVE FITS
059362,000363: # THE CURVE FITS ARE OF THE FORM -
059363,000364:
059364,000365: # 1JACC = A/(MASS + C) + B
059365,000366:
059366,000367: # A IS SCALED AT PI/4 RAD/SEC**2 B+16KG, B IS SCALED AT PI/4 RAD/SEC**2, AND C IS SCALED AT B +16 KG.
059367,000368:
059368,000369: # THE CURVE FIT FOR L,PVT-CG IS OF THE SAME FORM, EXCEPT THAT A IS SCALED AT 8 FT B+16 KG, B IS SCALED AT 8 FT,
059369,000370: # AND C IS SCALED AT B+16 KG.
059370,000371:
059371,000372: 20,2630 01240 22513 2DEC +.0410511917 # L A DESCENT
059372,000373:
059373,000374: 20,2632 00141 07416 INERCONA 2DEC +.0059347674 # 1JACCP A DESCENT
059374,000375:
059375,000376: 20,2634 00030 21261 2DEC +.0014979264 # 1JACCQ A DESCENT
059376,000377:
059377,000378: 20,2636 00021 03766 2DEC +.0010451889 # 1JACCR A DESCENT
059378,000379:
059379,000380: 20,2640 00153 07111 2DEC +.0065443852 # 1JACCP A ASCENT
059380,000381:
059381,000382: 20,2642 00072 24103 2DEC +.0035784354 # 1JACCQ A ASCENT
059382,000383:
059383,000384: 20,2644 00135 11511 2DEC +.0056946631 # 1JACCR A ASCENT
059384,000385:
059385,000386: 20,2646 04754 DEC +.155044 # L B DESCENT
059386,000387: 20,2647 77142 DEC -.025233 # L C DESCENT
059387,000388: 20,2650 00061 INERCONB DEC +.002989 # 1JACCP B DESCENT
059388,000389: 20,2651 00217 INERCONC DEC +.008721 # 1JACCP C DESCENT
059389,000390: 20,2652 00464 DEC +.018791 # 1JACCQ B DESCENT
059390,000391: 20,2653 75642 DEC -.068163 # 1JACCQ C DESCENT
059391,000392: 20,2654 00536 DEC +.021345 # 1JACCR B DESCENT
059392,000393: 20,2655 75705 DEC -.066027 # 1JACCR C DESCENT
059393,000394:
059394,000395: 20,2656 00001 DEC +.000032 # 1JACCP B ASCENT
059395,000396: 20,2657 77616 DEC -.006923 # 1JACCP C ASCENT
059396,000397: 20,2660 05154 DEC +.162862 # 1JACCQ B ASCENT
059397,000398: 20,2661 00052 DEC +.002588 # 1JACCQ C ASCENT
059398,000399: 20,2662 00231 DEC +.009312 # 1JACCR B ASCENT
059399,000400: 20,2663 77174 DEC -.023608 # 1JACCR C ASCENT
059400,000401:
059401,000402: 20,2664 01046 LOASCENT DEC 2200 B-16 # MIN ASCENT LEM MASS -- 2(16) KG.
059402,000403: 20,2665 07361 HIDESCNT DEC 15300 B-16 # MAX DESCENT LEM MASS -- 2(16) KG.
059403,000404: 20,2666 00666 LODESCNT DEC 1750 B-16 # MIN DESCENT STAGE (ALONE) -- 2(16) KG.
059404,000405:
059405,000406: 20,2667 01400 GIMBLBTS OCTAL 01400
059406,000407: 20,2670 01000 OCTAL 01000
059407,000408: 20,2671 06000 OCTAL 06000
059408,000409: 20,2672 04000 OCTAL 04000
059409,000410: 20,2673 23146 DGBF DEC 0.6 # .3 SCALED AT 1/2
059410,000411: 20,2674 13241 0.35356 DEC 0.35356 # .70711 SCALED AT 2
059411,000412: 20,2675 00337 GFACTM OCT 337 # 979.24/2.20462 AT B+15
059412,000413: 20,2676 77001 -1.4D/S OCT 77001 # -1.4 DEG/SEC
059413,000414:
059414,000415: # CSM-DOCKED INERTIA COMPUTATIONS
059415,000416:
059416,000417: 20,2677 35026 DOCKED CA ONE # COEFTR = 1 FOR INERTIA COEFFICIENTS
059417,000418: 20,2700 54160 SPSLOOP1 TS COEFCTR # = 7 FOR CG COEFFICIENTS
059418,000419: 20,2701 35026 CA ONE # MASSCTR = 1 FOR CSM
059419,000420: 20,2702 54161 TS MASSCTR # = 0 FOR LEM
059420,000421:
059421,000422: 20,2703 50160 INDEX COEFCTR
059422,000423: 20,2704 32766 CA COEFF -1 # COEFF -1 = C
059423,000424: 20,2705 00006 EXTEND
059424,000425: 20,2706 71335 MP LEMMASS
059425,000426: 20,2707 00006 EXTEND
059426,000427: 20,2710 71336 MP CSMMASS # LET X = CSMMASS AND Y = LEMMASS
059427,000428:
059428,000429: 20,2711 50160 INDEX COEFCTR
059429,000430: 20,2712 62767 AD COEFF # COEFF = F
059430,000431: 20,2713 54154 TS MPAC # MPAC = C X Y + F
059431,000432: 20,2714 12720 TCF +4
059432,000433:
059433,000434: 20,2715 54161 SPSLOOP2 TS MASSCTR # LOOP TWICE THROUGH HERE TO OBTAIN
059434,000435: 20,2716 00006 EXTEND # MPAC = MPAC + (A X +D)X + (B Y +E)Y
059435,000436: 20,2717 26160 DIM COEFCTR # LOOP #1 LOOP #2
059436,000437: 20,2720 50160 INDEX COEFCTR
059437,000438: 20,2721 32771 CA COEFF +2 # COEFF +2 = A OR B
059438,000439: 20,2722 00006 EXTEND
059439,000440: 20,2723 50161 INDEX MASSCTR
059440,000441: 20,2724 71335 MP LEMMASS
059441,000442: 20,2725 50160 INDEX COEFCTR
059442,000443: 20,2726 62773 AD COEFF +4 # COEFF +4 = E OR D
059443,000444: 20,2727 00006 EXTEND
059444,000445: 20,2730 50161 INDEX MASSCTR
059445,000446: 20,2731 71335 MP LEMMASS
059446,000447: 20,2732 26154 ADS MPAC
059447,000448:
059448,000449: 20,2733 10161 CCS MASSCTR
059449,000450: 20,2734 12715 TCF SPSLOOP2
059450,000451: 20,2735 10160 CCS COEFCTR # IF COEFCTR IS POS, EXIT FROM LOOP WITH
059451,000452: 20,2736 12745 TCF +7 # CG X DELDOT = MPAC X 4 PI RAD-CM/SEC
059452,000453: 20,2737 00000 20354 TORQCONS 2DEC 0.51443 B-14 # CORRESPONDS TO 500 LB-FT
059453,000454:
059454,000455: 20,2741 30154 CA MPAC
059455,000456: 20,2742 54155 TS MPAC +1 # INERTIA = (MPAC +1) X 2(38) KG-CM(2)
059456,000457: 20,2743 35032 CA SEVEN
059457,000458: 20,2744 12700 TCF SPSLOOP1
059458,000459:
059459,000460: 20,2745 35015 CA BIT10 # CORRESPONDS TO 1. 4 DEG/SEC(2)
059460,000461: 20,2746 55522 TS 1JACC # SCALED AT PI/4
059461,000462:
059462,000463: 20,2747 00006 EXTEND
059463,000464: 20,2750 32740 DCA TORQCONS
059464,000465: 20,2751 00006 EXTEND
059465,000466: 20,2752 10155 DV MPAC +1
059466,000467: 20,2753 00004 INHINT
059467,000468: 20,2754 55523 TS 1JACCQ # SCALED AT PI/4
059468,000469: 20,2755 55524 TS 1JACCR
059469,000470:
059470,000471: 20,2756 31243 CA MASS # SCALED AT 2(16) KG
059471,000472: 20,2757 00006 EXTEND
059472,000473: 20,2760 70154 MP MPAC # SCALED AT 4 PI RAD-CM/SEC
059473,000474: 20,2761 00006 EXTEND
059474,000475: 20,2762 71245 MP ABDELV # SCALED AT 2(13) CM/SEC(2)
059475,000476: 20,2763 02567 TC DVOVSUB
059476,000477: 20,2764 00155 ADRES MPAC +1 # GET QUOTIENT
059477,000478:
059478,000479: 20,2765 55511 TS ACCDOTR
059479,000480: 20,2766 12511 TCF SPSCONT # CONTINUE K, KSQ CALCULATIONS
059480,000481:
059481,000482: # 2 2
059482,000483: # COEFFICIENTS FOR CURVE FIT OF THE FORM Z = A X +B Y +C X Y +D X +E Y +F
059483,000484:
059484,000485: 20,2767 06176 COEFF DEC .19518 # C COEFFICIENT OF INERTIA
059485,000486: 20,2770 77650 DEC -.00529 # F ''
059486,000487: 20,2771 72260 DEC -.17670 # B ''
059487,000488: 20,2772 76637 DEC -.03709 # A ''
059488,000489: 20,2773 02167 DEC .06974 # E ''
059489,000490: 20,2774 00645 DEC .02569 # D ''
059490,000491:
059491,000492: 20,2775 06335 DEC .20096 # C COEFFICIENT OF CG
059492,000493: 20,2776 04256 DEC .13564 # F ''
059493,000494: 20,2777 30163 DEC .75704 # B ''
059494,000495: 20,3000 64072 DEC -.37142 # A ''
059495,000496: 20,3001 53632 DEC -.63117 # E ''
059496,000497: 20,3002 15133 DEC .41179 # D ''
059497,000498:
059498,000499: 20,3003 01150 TORKJET1 DEC .03757 # 550 / .2 SCALED AT (+16) 64 / 180
059499,000500:
059500,000501: # ASSIGNMENT OF TEMPORARIES FOR 1/ACCS (EXCLUDING 1/ACCONT)
059501,000502: # MPAC, MPAC +1, MPAC +2 USED EXPLICITLY
059502,000503: 20,3004 0160 COEFCTR EQUALS MPAC +4
059503,000504: 20,3004 0161 MASSCTR EQUALS MPAC +5
059504,000505:
059505,000506: 20,3004 0157 DOCKTEMP EQUALS MPAC +3 # RECORD OF CSMDOCKED BIT OF DAPBOOLS
059506,000507:
059507,000508: 20,3004 BANK 20
059508,000509: 20,2000 SETLOC DAPS3
059509,000510: 20,2000 BANK
059510,000511:
059511,000512: 20,3004 E6,1532 EBANK= AOSQ
059512,000513:
059513,000514: 20,3004 COUNT* $$/DAPAO
059514,000515:
059515,000516: 20,3004 31356 1/ACCONT CA DB # INITIALIZE DBVAL1,2,3
059516,000517: 20,3005 00006 EXTEND
059517,000518: 20,3006 75012 MP BIT13
059518,000519: 20,3007 54001 TS L # 0.25 DB
059519,000520: 20,3010 60000 AD A
059520,000521: 20,3011 54115 TS DBVAL3 # 0.50 DB
059521,000522: 20,3012 41356 CS DBVAL1
059522,000523: 20,3013 60001 AD L
059523,000524: 20,3014 54114 TS DBVAL2 # -.75 DB
059524,000525:
059525,000526: 20,3015 00004 INHINT
059526,000527: 20,3016 41102 CS DAPBOOLS # IS GIMBAL USABLE?
059527,000528: 20,3017 75011 MASK USEQRJTS
059528,000529: 20,3020 00006 EXTEND
059529,000530: 20,3021 13454 BZF DOWNGTS # NO. BE SURE THE GIMBAL SWITCHES ARE DOWN
059530,000531: 20,3022 41276 CS T5ADR # YES. IS THE DAP RUNNING?
059531,000532: 20,3023 63533 AD PAXISADR
059532,000533: 20,3024 00006 EXTEND
059533,000534: 20,3025 13027 BZF +2
059534,000535: 20,3026 13454 TCF DOWNGTS # NO. BE SURE THE GIMBAL SWITCHES ARE DOWN
059535,000536: 20,3027 11627 CCS INGTS # YES. IS GTS IN CONTROL?
059536,000537: 20,3030 13033 TCF GETAOSUV # YES. PROCEED WITH 1/ACCS.
059537,000538: 20,3031 04737 TC IBNKCALL # NO. NULL OFFSET AND FIND ALLOWGTS
059538,000539: 20,3032 43304 CADR TIMEGMBL
059539,000540:
059540,000541:
059541,000542: 20,3033 31534 GETAOSUV CAE AOSR # COMPUTE AOSU AND AOSV BY ROTATING
059542,000543: 20,3034 54001 TS L # AOSQ AND AOSR.
059543,000544: 20,3035 31532 CAE AOSQ
059544,000545: 20,3036 04737 TC IBNKCALL
059545,000546: 20,3037 36726 CADR ROT45DEG
059546,000547: 20,3040 53537 DXCH AOSU
059547,000548:
059548,000549: 20,3041 00003 RELINT
059549,000550: 20,3042 31102 CA DAPBOOLS
059550,000551: 20,3043 75017 MASK DRIFTBIT # ZERO DURING ULLAGE AND POWERED FLIGHT.
059551,000552: 20,3044 10000 CCS A # IF DRIFTING FLIGHT,
059552,000553: 20,3045 35026 CA ONE # SET DRIFTER TO 1
059553,000554: 20,3046 54116 TS DRIFTER # SAVE TO TEST FOR DRIFTING FLIGHT LATER
059554,000555: 20,3047 61624 AD ALLOWGTS # NON-ZERO IF DRIFT OR GTS NEAR
059555,000556: 20,3050 10000 CCS A
059556,000557: 20,3051 33531 CA FLATVAL # DRIFTING FLIGHT, STORE .8 IN FLAT
059557,000558: 20,3052 54151 TS FLATEMP # IN POWERED FLIGHT, STORE ZERO IN FLAT
059558,000559: 20,3053 00006 EXTEND
059559,000560: 20,3054 13060 BZF DOPAXIS # IF POWERED AND NO GTS, START P AXIS,
059560,000561: 20,3055 10116 CCS DRIFTER # OTHERWISE SET ZONE3LIM
059561,000562: 20,3056 33530 CA ZONE3MAX # 17.5 MS, SCALED AT 4 SECONDS.
059562,000563: 20,3057 54152 TS Z3TEM
059563,000564:
059564,000565: 20,3060 31522 DOPAXIS CA 1JACC # 1JACC AT PI/4 = 2JACC AT PI/2 =
059565,000566: # ANET AT PI/2 = ANET/ACOAST AT 2(6).
059566,000567: 20,3061 65016 AD BIT9 # 1 + ANET/ACOAST AT 2(6)
059567,000568: 20,3062 54157 TS FUNTEM
059568,000569:
059569,000570: 20,3063 31522 CA 1JACC
059570,000571: 20,3064 03446 TC INVERT
059571,000572: 20,3065 00004 INHINT # P AXIS DATA MUST BE CONSISTENT
059572,000573: 20,3066 55546 TS 1/ANETP # SCALED AT 2(7)/PI.
059573,000574: 20,3067 55547 TS 1/ANETP +1
059574,000575:
059575,000576: 20,3070 45016 CS BIT9 # -1 AT 2(6)
059576,000577: 20,3071 00006 EXTEND
059577,000578: 20,3072 71546 MP 1/ANETP # -1/ANET AT 2(13)/PI
059578,000579: 20,3073 00006 EXTEND
059579,000580: 20,3074 10157 DV FUNTEM # -1/(ANET + ANET**2/ACOAST) AT 2(7)/PI
059580,000581: 20,3075 55554 TS PACCFUN
059581,000582: 20,3076 55555 TS PACCFUN +1
059582,000583:
059583,000584: 20,3077 35006 CA 1/.03 # NO AOS FOR P AXIS, ACOAST = AMIN
059584,000585: 20,3100 55550 TS 1/ACOSTP
059585,000586: 20,3101 55551 TS 1/ACOSTP +1
059586,000587: 20,3102 00003 RELINT
059587,000588:
059588,000589: 20,3103 22007 ZL
059589,000590: 20,3104 10116 CCS DRIFTER
059590,000591: 20,3105 53537 DXCH AOSU # ZERO AOSU,V IF IN DRIFT, JUST TO BE SURE
059591,000592:
059592,000593: 20,3106 35030 UAXIS CA ZERO # DO U AXIS COMPUTATIONS
059593,000594: 20,3107 54154 TS UV # ZERO FOR U AXIS, ONE FOR V AXIS.
059594,000595:
059595,000596: 20,3110 54163 BOTHAXES TS SIGNAOS # CODING COMMON TO U,V AXES
059596,000597: 20,3111 50154 INDEX UV
059597,000598: 20,3112 11536 CCS AOSU # PICK UP ABS(AOSU OR AOSV)
059598,000599: 20,3113 65026 AD ONE # RESTORE TO PROPER VALUE
059599,000600: 20,3114 13117 TCF +3 # AND LEAVE SIGNAOS AT ZERO
059600,000601: 20,3115 65026 AD ONE # NEGATIVE, RESTORE TO PROPER VALUE
059601,000602: 20,3116 24163 INCR SIGNAOS # AND SET SIGNAOS TO ONE TO SHOW AOS NEG
059602,000603: 20,3117 54162 TS ABSAOS # SAVE ABS(AOS)
059603,000604: 20,3120 40163 CS SIGNAOS
059604,000605: 20,3121 54164 TS -SIGNAOS # USED AS AN INDEX
059605,000606:
059606,000607: 20,3122 31356 CA DBVAL1 # SET DB1, DB2 TO DBVAL1 (= DB)
059607,000608: 20,3123 54143 TS DBB1
059608,000609: 20,3124 54144 TS DBB2
059609,000610:
059610,000611: 20,3125 30162 CA ABSAOS # TEST MAGNITUDE OF ABS(AOS)
059611,000612: 20,3126 63532 AD -.03R/S2
059612,000613: 20,3127 00006 EXTEND
059613,000614: 20,3130 63200 BZMF NOTMUCH # ABS(AOS) LESS THAN AMIN
059614,000615: 20,3131 10151 BIGAOS CCS FLATEMP # AGS(AOS) GREATER THAN AMIN
059615,000616: 20,3132 13143 TCF SKIPDB1 # I DRIFT OR GTS, DO NOT COMPUTE DB
059616,000617:
059617,000618: 20,3133 31356 CA DBVAL1
059618,000619: 20,3134 50164 INDEX -SIGNAOS
059619,000620: 20,3135 26144 ADS DBB2 # DB2(1) = 2 DB
059620,000621: 20,3136 50163 INDEX SIGNAOS
059621,000622: 20,3137 54145 TS DBB4 # DB4(3) = 1 DB
059622,000623: 20,3140 30114 CA DBVAL2
059623,000624: 20,3141 50164 INDEX -SIGNAOS
059624,000625: 20,3142 54146 TS DBB3 # DB3(4) = -.75 DB
059625,000626:
059626,000627: 20,3143 30162 SKIPDB1 CA ABSAOS # ABS(AOS) GREATER THAN AMIN, SO IT IS
059627,000628: 20,3144 03446 TC INVERT # ALL RIGHT TO DIVIDE
059628,000629: 20,3145 50164 INDEX -SIGNAOS
059629,000630: 20,3146 54130 TS 1/ACOSTT +1 # 1/ACOASTPOS(NEG) = 1/ABS(AOS)
059630,000631: 20,3147 35006 CA 1/.03
059631,000632: 20,3150 50163 INDEX SIGNAOS
059632,000633: 20,3151 54127 TS 1/ACOSTT # 1/ACOASTNEG(POS) = 1/AMIN
059633,000634:
059634,000635: 20,3152 30162 CA ABSAOS
059635,000636: 20,3153 61525 AD 1JACCU
059636,000637: 20,3154 61525 AD 1JACCU # 2 JACC + ABS(AOS)
059637,000638: 20,3155 65016 AD BIT9 # MAXIMUM VALUE IN COMPUTATIONS
059638,000639: 20,3156 54000 TS A # TEST FOR OVERFLOW
059639,000640: 20,3157 13224 TCF SKIPDB2 # NO OVERFLOW, DO NORMAL COMPUTATION
059640,000641:
059641,000642: 20,3160 30162 CA ABSAOS # RESCALE TO PI TO PREVENT OVERFLOW
059642,000643: 20,3161 00006 EXTEND
059643,000644: 20,3162 75011 MP BIT14
059644,000645: 20,3163 61525 AD 1JACCU # 1 JACC AT PI/2 = 2JACC AT PI
059645,000646: 20,3164 54157 TS ANET # ANETPOS(NEG) MAX SCALED AT PI =
059646,000647: # ANETPOS(NEG) MAX/ACOASTNEG(POS) AT 2(7)
059647,000648: 20,3165 65017 AD BIT8 # 1 + ANETPOS/ACOASTNEG AT 2(7)
059648,000649: 20,3166 56157 XCH ANET # SAVE IN ANET, WHILE PICKING UP ANET
059649,000650: 20,3167 03446 TC INVERT
059650,000651: 20,3170 00006 EXTEND
059651,000652: 20,3171 75011 MP BIT14 # SCALE 1/ANET AT 2(7)/PI
059652,000653: 20,3172 54160 TS 1/ANET
059653,000654:
059654,000655: 20,3173 33177 CA ACCHERE # SET UP RETURN FROM COMPUTATION ROUTINE
059655,000656: 20,3174 54161 TS ARET
059656,000657: 20,3175 45017 CS BIT8 # -1 AT 2(7)
059657,000658: 20,3176 13501 TCF DOACCFUN # FINISH ACCFUN COMPUTATION
059658,000659:
059659,000660: 20,3177 13231 ACCHERE TCF ACCTHERE
059660,000661:
059661,000662:
059662,000663: 20,3200 54001 NOTMUCH TS L # ABS(AOS) LESS THAN AMIN, SAVE IN L
059663,000664: 20,3201 35006 CA 1/.03 # ACOASTPOS,NEG = AMIN
059664,000665: 20,3202 54127 TS 1/ACOSTT
059665,000666: 20,3203 54130 TS 1/ACOSTT +1
059666,000667:
059667,000668: 20,3204 10151 CCS FLATEMP
059668,000669: 20,3205 13224 TCF SKIPDB2 # DO NOT COMPUTE DB IF DRIFT OR GTS
059669,000670:
059670,000671: 20,3206 35017 CA .0125RS # AMIN/2
059671,000672: 20,3207 60001 AD L # L HAS ABS(AOS) - AMIN
059672,000673: 20,3210 00006 EXTEND # RESULT IS ABS(AOS)- AMIN/2
059673,000674: 20,3211 63221 BZMF NOAOS # ABS(AOS) LESS THAN AMIN/2
059674,000675:
059675,000676: 20,3212 30115 SOMEAOS CA DBVAL3 # AMIN/2 LT ABS(AOS) LT AMIN
059676,000677: 20,3213 50164 INDEX -SIGNAOS
059677,000678: 20,3214 54146 TS DBB3 # DB3(4) = DB/2
059678,000679: 20,3215 60000 AD A
059679,000680: 20,3216 50163 INDEX SIGNAOS
059680,000681: 20,3217 54145 TS DBB4 # DB4(3) = DB
059681,000682: 20,3220 13224 TCF SKIPDB2
059682,000683:
059683,000684: 20,3221 31356 NOAOS CA DBVAL1
059684,000685: 20,3222 54146 TS DBB3 # DB3,4 = DB
059685,000686: 20,3223 54145 TS DBB4
059686,000687:
059687,000688: 20,3224 30162 SKIPDB2 CA ABSAOS # ANETPOS(NEG) MAX = 2 JACC + ABS(AOS)
059688,000689: 20,3225 61525 AD 1JACCU
059689,000690: 20,3226 61525 AD 1JACCU
059690,000691: 20,3227 54157 TS ANET # CONNOT OVERFLOW HERE
059691,000692: 20,3230 03472 CL1/NET+ TC DO1/NET+ # COMPUTE 1/ANET, ACCFUN
059692,000693:
059693,000694: 20,3231 50164 ACCTHERE INDEX -SIGNAOS
059694,000695: 20,3232 54134 TS Z5TEM +2 # STORE ACCFUN IN TEMPORARY BUFFER
059695,000696: 20,3233 30160 CA 1/ANET
059696,000697: 20,3234 50164 INDEX -SIGNAOS
059697,000698: 20,3235 54126 TS 1/ATEM2 +2 # STORE 1/ANET IN TEMPORARY BUFFER
059698,000699:
059699,000700: 20,3236 30162 CA ABSAOS # SEE IF OVERFLOW IN MIN CASE
059700,000701: 20,3237 61525 AD 1JACCU
059701,000702: 20,3240 65016 AD BIT9 # MAXIMUM POSSIBLE VALUE
059702,000703: 20,3241 54000 TS A # OVERFLOW POSSIBLE BUT REMOTE
059703,000704: 20,3242 13244 TCF +2
059704,000705: 20,3243 35006 CA POSMAX # IF OVERFLOW, TRUNCATE TO PI/2
059705,000706: 20,3244 63532 AD -.03R/S2 # RESTORE TO CORRECT VALUE
059706,000707: 20,3245 54157 TS ANET
059707,000708: 20,3246 03472 TC DO1/NET+ # COMPUTE 1/ANET, ACCFUN
059708,000709:
059709,000710: 20,3247 50164 INDEX -SIGNAOS # STORE MIN VALUES JUST AS MAX VALUES
059710,000711: 20,3250 54132 TS Z5TEM
059711,000712: 20,3251 30160 CA 1/ANET
059712,000713: 20,3252 50164 INDEX -SIGNAOS
059713,000714: 20,3253 54124 TS 1/ATEM2
059714,000715:
059715,000716: 20,3254 40162 CS ABSAOS # NOW DO NEG(POS) CASES
059716,000717: 20,3255 61525 AD 1JACCU
059717,000718: 20,3256 61525 AD 1JACCU # ANETNEG(POS) MAX
059718,000719: 20,3257 03460 TC 1/ANET- # COMPUTE 1/ANET, ACCFUN, AND ACCSW
059719,000720: 20,3260 50163 INDEX SIGNAOS # STORE NEG(POS) VALUES JUST AS POS(NEG)
059720,000721: 20,3261 54133 TS Z1TEM +2
059721,000722: 20,3262 54001 TS L # SAVE IN L FOR POSSIBLE FUTURE USE
059722,000723: 20,3263 30160 CA 1/ANET
059723,000724: 20,3264 50163 INDEX SIGNAOS
059724,000725: 20,3265 54125 TS 1/ATEM1 +2
059725,000726: 20,3266 40162 CS ABSAOS
059726,000727: 20,3267 61525 AD 1JACCU # 1/ANETNEG(POS) MIN
059727,000728: 20,3270 54157 TS ANET
059728,000729: 20,3271 63532 AD -.03R/S2 # TEST FOR AMIN
059729,000730: 20,3272 00006 EXTEND # IF ANET LESS THAN AMIN, STORE MAX JET
059730,000731: 20,3273 63511 BZMF FIXMIN # VALUES FOR MIN JETS AND SET ACCSW
059731,000732:
059732,000733: 20,3274 03466 TC 1/NETMIN # OTHERWISE DO MIN JET COMPUTATIONS
059733,000734: 20,3275 50163 STMIN- INDEX SIGNAOS # STORE VALUES
059734,000735: 20,3276 54131 TS Z1TEM
059735,000736: 20,3277 30160 CA 1/ANET
059736,000737: 20,3300 50163 INDEX SIGNAOS
059737,000738: 20,3301 54123 TS 1/ATEM1
059738,000739:
059739,000740: 20,3302 50154 INDEX UV
059740,000741: 20,3303 33536 CA +UMASK
059741,000742: 20,3304 71264 MASK CH5MASK # TEST FOR +U (+V) JET FAILURES
059742,000743: 20,3305 00006 EXTEND
059743,000744: 20,3306 13313 BZF FAIL-
059744,000745: 20,3307 30124 CA 1/ATEM2 # REPLACE FUNCTION VALUES DEPENDING ON THE
059745,000746: 20,3310 54126 TS 1/ATEM2 +2 # FAILED JET PAIR WITH CORRESPONDING ONE-
059746,000747: 20,3311 30132 CA Z5TEM # JET (OR AMIN) FUNCTION VALUES
059747,000748: 20,3312 54134 TS Z5TEM +2
059748,000749: 20,3313 50154 FAIL- INDEX UV
059749,000750: 20,3314 33534 CA -UMASK
059750,000751: 20,3315 71264 MASK CH5MASK # TEST FOR -U (-V) JET FAILURES
059751,000752: 20,3316 00006 EXTEND
059752,000753: 20,3317 13324 BZF DBFUN
059753,000754: 20,3320 30123 CA 1/ATEM1 # REPLACE FUNCTION VALUES DEPENDING ON THE
059754,000755: 20,3321 54125 TS 1/ATEM1 +2 # FAILED JET PAIR WITH CORRESPONDING ONE-
059755,000756: 20,3322 30131 CA Z1TEM # JET (OR AMIN) FUNCTION VALUES
059756,000757: 20,3323 54133 TS Z1TEM +2
059757,000758:
059758,000759: 20,3324 40146 DBFUN CS DBB3 # COMPUTE AXISDIST
059759,000760: 20,3325 60143 AD DBB1
059760,000761: 20,3326 60151 AD FLATEMP
059761,000762: 20,3327 54147 TS AXDSTEM
059762,000763: 20,3330 40145 CS DBB4
059763,000764: 20,3331 60144 AD DBB2
059764,000765: 20,3332 60151 AD FLATEMP
059765,000766: 20,3333 54150 TS AXDSTEM +1
059766,000767:
059767,000768: 20,3334 00004 INHINT
059768,000769: 20,3335 10154 CCS UV # TEST FOR U OR V AXIS
059769,000770: 20,3336 13360 TCF STORV # V AXIS STORE V VALUES
059770,000771:
059771,000772: 20,3337 30122 CA ACCSW # U AXIS STORE U VALUES
059772,000773: 20,3340 55544 TS ACCSWU
059773,000774:
059774,000775: 20,3341 34332 CA NINE # TRANSFER 10 WORDS VIA GENTRAN
059775,000776: 20,3342 05627 TC GENTRAN +1
059776,000777: 20,3343 00123 ADRES 1/ATEM1 # TEMPORARY BUFFER
059777,000778: 20,3344 01564 ADRES 1/ANET1 # THE REAL PLACE
059778,000779:
059779,000780: 20,3345 00003 RELINT
059780,000781: 20,3346 52144 DXCH DBB1 # SAVE U DBS FOR LATER STORING
059781,000782: 20,3347 52136 DXCH UDB1
059782,000783: 20,3350 52146 DXCH DBB4
059783,000784: 20,3351 52140 DXCH UDB4
059784,000785:
059785,000786: 20,3352 52150 DXCH AXDSTEM
059786,000787: 20,3353 52142 DXCH UAXDIST
059787,000788:
059788,000789: 20,3354 35026 CA ONE # NOW DO V AXIS
059789,000790: 20,3355 54154 TS UV
059790,000791: 20,3356 35030 CA ZERO
059791,000792: 20,3357 13110 TCF BOTHAXES # AND DO IT AGAIN
059792,000793:
059793,000794: 20,3360 30122 STORV CA ACCSW # STORE V AXIS VALUES
059794,000795: 20,3361 55545 TS ACCSWV
059795,000796: 20,3362 34332 CA NINE
059796,000797: 20,3363 05627 TC GENTRAN +1
059797,000798: 20,3364 00123 ADRES 1/ATEM1 # TEMPORARY BUFFER
059798,000799: 20,3365 01604 ADRES 1/ANET1 +16D # THE REAL PLACE
059799,000800:
059800,000801: # NOW STORE DEADBANDS FOR ALL AXES
059801,000802: 20,3366 52152 DXCH FLATEMP # FLAT AND ZONE3LIM
059802,000803: 20,3367 53553 DXCH FLAT
059803,000804:
059804,000805: 20,3370 31356 CA DBVAL1 # COMPUTE P AXIS DEADBANDS
059805,000806: 20,3371 55556 TS PDB1
059806,000807: 20,3372 55557 TS PDB2
059807,000808: 20,3373 61552 AD FLAT
059808,000809: 20,3374 55561 TS PDB3
059809,000810: 20,3375 55560 TS PDB4
059810,000811: 20,3376 35030 CA ZERO
059811,000812: 20,3377 55562 TS PAXDIST
059812,000813: 20,3400 55563 TS PAXDIST +1
059813,000814:
059814,000815: 20,3401 11552 CCS FLAT
059815,000816: 20,3402 13420 TCF DRFDB # DRIFT OR GTS - COMPUTE DBS
059816,000817:
059817,000818: 20,3403 52136 DXCH UDB1 # STORE U DEADBANDS
059818,000819: 20,3404 53577 DXCH FIREDB # CANNOT USE GENTRAN BECAUSE OF RELINT
059819,000820: 20,3405 52140 DXCH UDB4
059820,000821: 20,3406 53601 DXCH COASTDB
059821,000822: 20,3407 52142 DXCH UAXDIST
059822,000823: 20,3410 53603 DXCH AXISDIST
059823,000824: 20,3411 52144 DXCH DBB1 # STORE V AXIS DEADBANDS
059824,000825: 20,3412 53617 DXCH FIREDB +16D # COULD USE GENTRAN IF DESIRED
059825,000826: 20,3413 52146 DXCH DBB4
059826,000827: 20,3414 53621 DXCH COASTDB +16D
059827,000828: 20,3415 52150 DXCH AXDSTEM
059828,000829: 20,3416 53623 DXCH AXISDIST +16D
059829,000830:
059830,000831: 20,3417 13440 TCF 1/ACCRET +1 # ALL DONE
059831,000832: 20,3420 31356 DRFDB CA DBVAL1 # DRIFT DEADBANDS
059832,000833: 20,3421 55576 TS FIREDB
059833,000834: 20,3422 55577 TS FIREDB +1
059834,000835: 20,3423 55616 TS FIREDB +16D
059835,000836: 20,3424 55617 TS FIREDB +17D
059836,000837: 20,3425 61552 AD FLAT
059837,000838: 20,3426 55600 TS COASTDB
059838,000839: 20,3427 55601 TS COASTDB +1
059839,000840: 20,3430 55620 TS COASTDB +16D
059840,000841: 20,3431 55621 TS COASTDB +17D
059841,000842: 20,3432 35030 CA ZERO
059842,000843: 20,3433 55602 TS AXISDIST
059843,000844: 20,3434 55603 TS AXISDIST +1
059844,000845: 20,3435 55622 TS AXISDIST +16D
059845,000846: 20,3436 55623 TS AXISDIST +17D
059846,000847:
059847,000848: 20,3437 00004 1/ACCRET INHINT
059848,000849: 20,3440 41102 CS DAPBOOLS # SET BIT TO INDICATE DATA GOOD.
059849,000850: 20,3441 75024 MASK ACCSOKAY
059850,000851: 20,3442 27102 ADS DAPBOOLS
059851,000852: 20,3443 00003 RELINT
059852,000853: 20,3444 30117 CA ACCRETRN
059853,000854: 20,3445 04677 TC BANKJUMP # RETURN TO CALLER
059854,000855:
059855,000856: 20,3446 54165 INVERT TS HOLD # ROUTINE TO INVERT -INPUT AT PI/2
059856,000857: 20,3447 35016 CA BIT9 # 1 AT 2(6)
059857,000858: 20,3450 22007 ZL # ZERO L FOR ACCURACY AND TO PREVENT OVFLO
059858,000859: 20,3451 00006 EXTEND
059859,000860: 20,3452 10165 DV HOLD
059860,000861: 20,3453 00002 TC Q # RESULT AT 2(7)/PI
059861,000862:
059862,000863: 20,3454 35030 DOWNGTS CAF ZERO # ZERO SWITCHES WHEN USEQRJTS BIT IS UP
059863,000864: 20,3455 55624 TS ALLOWGTS # OR DAP IS OFF.
059864,000865: 20,3456 55627 TS INGTS
059865,000866: 20,3457 13033 TCF GETAOSUV
059866,000867:
059867,000868: 20,3460 22007 1/ANET- ZL
059868,000869: 20,3461 22122 LXCH ACCSW # ZERO ACCSW
059869,000870: 20,3462 54157 TS ANET # SAVE ANET
059870,000871: 20,3463 63532 AD -.03R/S2 # TEST FOR MIN VALUE
059871,000872: 20,3464 00006 EXTEND
059872,000873: 20,3465 63506 BZMF NETNEG # ANET LESS THAN AMIN, SO FAKE IT
059873,000874: 20,3466 30157 1/NETMIN CA ANET
059874,000875: 20,3467 00006 EXTEND
059875,000876: 20,3470 50164 INDEX -SIGNAOS
059876,000877: 20,3471 70130 MP 1/ACOSTT +1 # ANETNEG(POS)/ACOASTPOS(NEG) AT 2(6)
059877,000878:
059878,000879: # THE FOLLOWING CODING IS VALID FOR BOTH POS OR NEG
059879,000880: # VALUES OF AOS
059880,000881:
059881,000882: 20,3472 65016 DO1/NET+ AD BIT9 # 1 + ANET/ACOAST AT 2(6)
059882,000883: 20,3473 56157 XCH ANET # SAVE AND PICK UP ANET
059883,000884: 20,3474 00006 EXTEND
059884,000885: 20,3475 22161 QXCH ARET # SAVE RETURN
059885,000886: 20,3476 03446 TC INVERT
059886,000887: 20,3477 54160 TS 1/ANET # 1/ANET AT 2(7)/PI
059887,000888: 20,3500 45016 CS BIT9 # -1 AT 2(6)
059888,000889: 20,3501 00006 DOACCFUN EXTEND
059889,000890: 20,3502 70160 MP 1/ANET # -1/ANET AT 2(13)/PI
059890,000891: 20,3503 00006 EXTEND
059891,000892: 20,3504 10157 DV ANET # ACCFUN AT 2(7)/PI
059892,000893: 20,3505 00161 TC ARET # RETURN
059893,000894:
059894,000895: 20,3506 43532 NETNEG CS -.03R/S2 # ANET LESS THAN AMIN - SET EQUAL TO AMIN
059895,000896: 20,3507 54157 TS ANET
059896,000897: 20,3510 13467 TCF 1/NETMIN +1 # CONTINUE AS IF NOTHING HAPPENED
059897,000898:
059898,000899: 20,3511 10163 FIXMIN CCS SIGNAOS
059899,000900: 20,3512 35025 CA TWO # IF AOS NEG, ACCSW = +1
059900,000901: 20,3513 67721 AD NEGONE # IF AOS POS, ACCSW = -1
059901,000902: 20,3514 54122 TS ACCSW
059902,000903: 20,3515 60154 AD UV # IF ACCSW = +1, TEST FOR +U (+V) JET FAIL
059903,000904: 20,3516 50000 INDEX A # IF ACCSW = -1, TEST FOR -U (-V) JET FAIL
059904,000905: 20,3517 33535 CA -UMASK +1
059905,000906: 20,3520 71264 MASK CH5MASK
059906,000907: 20,3521 00006 EXTEND
059907,000908: 20,3522 13526 BZF +4
059908,000909: 20,3523 43532 CS -.03R/S2 # JET FAILURE - CANNOT USE 2-JET VALUES
059909,000910: 20,3524 54157 TS ANET # ANET = AMIN
059910,000911: 20,3525 13274 TCF STMIN- -1 # CALCULATE FUNCTIONS USING AMIN
059911,000912: 20,3526 30001 CA L # L HAS ACCFUN
059912,000913: 20,3527 13275 TCF STMIN- # STORE MAX VALUES FOR MIN JETS
059913,000914:
059914,000915: # ERASABLE ASSIGNMENTS FOR 1/ACCONT
059915,000916: 20,3530 E6,1546 1/ANETP EQUALS BLOCKTOP +2
059916,000917: 20,3530 E6,1550 1/ACOSTP EQUALS BLOCKTOP +4
059917,000918: 20,3530 E6,1554 PACCFUN EQUALS BLOCKTOP +8D
059918,000919: 20,3530 E6,1556 PDB1 EQUALS BLOCKTOP +10D
059919,000920: 20,3530 E6,1557 PDB2 EQUALS BLOCKTOP +11D
059920,000921: 20,3530 E6,1560 PDB4 EQUALS BLOCKTOP +12D
059921,000922: 20,3530 E6,1561 PDB3 EQUALS BLOCKTOP +13D
059922,000923: 20,3530 E6,1562 PAXDIST EQUALS BLOCKTOP +14D
059923,000924:
059924,000925: 20,3530 0122 ACCSW EQUALS VBUF # EXECUTIVE TEMPORARIES
059925,000926: # CANNOT DO CCS NEWJOB DURING 1/ACCS
059926,000927: 20,3530 0123 1/ATEM1 EQUALS ACCSW +1 # TEMP BUFFER FOR U AND V AXES
059927,000928: 20,3530 0124 1/ATEM2 EQUALS 1/ATEM1 +1
059928,000929: 20,3530 0127 1/ACOSTT EQUALS 1/ATEM1 +4
059929,000930: 20,3530 0131 Z1TEM EQUALS 1/ATEM1 +6
059930,000931: 20,3530 0132 Z5TEM EQUALS 1/ATEM1 +7
059931,000932:
059932,000933: 20,3530 0135 UDB1 EQUALS 1/ATEM1 +10D # UAXIS DEADBAND BUFFER
059933,000934: 20,3530 0136 UDB2 EQUALS 1/ATEM1 +11D
059934,000935: 20,3530 0137 UDB4 EQUALS 1/ATEM1 +12D
059935,000936: 20,3530 0140 UDB3 EQUALS 1/ATEM1 +13D
059936,000937: 20,3530 0141 UAXDIST EQUALS 1/ATEM1 +14D
059937,000938:
059938,000939: 20,3530 0143 DBB1 EQUALS 1/ATEM1 +16D # TEMP DEADBAND BUFFER, ALSO V AXIS
059939,000940: 20,3530 0144 DBB2 EQUALS 1/ATEM1 +17D
059940,000941: 20,3530 0145 DBB4 EQUALS 1/ATEM1 +18D
059941,000942: 20,3530 0146 DBB3 EQUALS 1/ATEM1 +19D
059942,000943: 20,3530 0147 AXDSTEM EQUALS 1/ATEM1 +20D
059943,000944:
059944,000945: 20,3530 0151 FLATEMP EQUALS 1/ATEM1 +22D
059945,000946: 20,3530 0152 Z3TEM EQUALS 1/ATEM1 +23D # MUST FOLLOW FLATEMP
059946,000947:
059947,000948: 20,3530 1356 DBVAL1 EQUALS DB
059948,000949: 20,3530 0114 DBVAL2 EQUALS INTB15+
059949,000950: 20,3530 0115 DBVAL3 EQUALS INTB15+ +1
059950,000951:
059951,000952: 20,3530 0116 DRIFTER EQUALS INTB15+ +2
059952,000953:
059953,000954: 20,3530 0154 UV EQUALS MPAC
059954,000955: 20,3530 0157 ANET EQUALS MPAC +3
059955,000956: 20,3530 0157 FUNTEM EQUALS MPAC +3
059956,000957: 20,3530 0160 1/ANET EQUALS MPAC +4
059957,000958: 20,3530 0161 ARET EQUALS MPAC +5
059958,000959: 20,3530 0162 ABSAOS EQUALS MPAC +6
059959,000960: 20,3530 0163 SIGNAOS EQUALS MPAC +7
059960,000961: 20,3530 0164 -SIGNAOS EQUALS MPAC +8D
059961,000962: 20,3530 0165 HOLD EQUALS MPAC +9D
059962,000963: 20,3530 0117 ACCRETRN EQUALS FIXLOC -1
059963,000964:
059964,000965: 20,3530 00110 ZONE3MAX DEC .004375 # 17.5 MS (35 MS FOR 1 JET) AT 4 SECONDS
059965,000966: 20,3531 00443 FLATVAL DEC .01778 # .8 AT PI/4 RAD
059966,000967: 20,3532 77377 -.03R/S2 OCT 77377 # -PI/2(7) AT PI/2
059967,000968:
059968,000969: 20,3533 5017 .0125RS EQUALS BIT8 # PI/2(+8) AT PI/2
059969,000970: 20,3533 5006 1/.03 EQUALS POSMAX # 2(7)/PI AT 2(7)/PI
059970,000971:
059971,000972: 20,3533 02444 PAXISADR GENADR PAXIS
059972,000973:
059973,000974: # THE FOLLOWING 4 CONSTANTS ARE JET
059974,000975: # FAILURE MASKS AND ARE INDEXED
059975,000976: 20,3534 00110 -UMASK OCT 00110 # -U
059976,000977: 20,3535 00022 OCT 00022 # -V
059977,000978: 20,3536 00204 +UMASK OCT 00204 # +U
059978,000979: 20,3537 00041 OCT 00041 # +V
059979,000980:
End of include-file AOSTASK_AND_AOSJOB.agc. Parent file is MAIN.agc