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