Source Code
These source-code files are part of a reconstructed copy of Luminary 69/2,
the flown, final release of the Apollo 10 Lunar Module (LM) Apollo Guidance Computer (AGC) software.
The reconstruction is based on the source code of Luminary 69 — i.e., the initial, unflown version, "revision 0" — of which a contemporary listing was available. The code was then updated by incorporating the differences between Luminary 69 and Luminary 69/2, known from other contemporary documentation. The only such difference is the implementation in Luminary 69/2 of the "R-2 Lunar Potential Model", the source code for which was taken from program Luminary 99/1 (Apollo 11 LM), of which a contemporary listing was also available. Finally, the now-reconstructed Luminary 69/2 was then validated by assembling it to executable form and verifying that its memory banks had the correct checksums, known from still other contemporary documentation. Note that page numbers in the reconstructed code match those in the original Luminary 69 program listing, or in the ORBITAL INTEGRATION log section, in Luminary 99/1. Page numbers would certainly differ somewhat in a contemporary Luminary 69/2 listing. Moreover, annotations that were not present in the contemporary source code have been added to the reconstructed code to justify each change in Luminary 69/2 relative to Luminary 69. Here's a guide to the Apollo documentation referenced in those annotations:
|
064187,000002: ## Copyright: Public domain.
064188,000003: ## Filename: AOSTASK_AND_AOSJOB.agc
064189,000004: ## Purpose: A section of LUM69 revision 2.
064190,000005: ## It is part of the reconstructed source code for the flown
064191,000006: ## version of the flight software for the Lunar Module's (LM)
064192,000007: ## Apollo Guidance Computer (AGC) for Apollo 10. The code has
064193,000008: ## been recreated from a copy of Luminary revsion 069, using
064194,000009: ## changes present in Luminary 099 which were described in
064195,000010: ## Luminary memos 75 and 78. The code has been adapted such
064196,000011: ## that the resulting bugger words exactly match those specified
064197,000012: ## for LUM69 revision 2 in NASA drawing 2021152B, which gives
064198,000013: ## relatively high confidence that the reconstruction is correct.
064199,000014: ## Reference: pp. 1479-1499
064200,000015: ## Assembler: yaYUL
064201,000016: ## Contact: Ron Burkey <info@sandroid.org>.
064202,000017: ## Website: www.ibiblio.org/apollo/index.html
064203,000018: ## Mod history: 2019-07-27 MAS Created from Luminary 69.
064204,000019:
Page 1479 |
064206,000021: # PROGRAM NAME: 1/ACCS
064207,000022: # PROGRAM WRITTEN BY: BOB COVELLI AND MIKE HOUSTON
064208,000023: # LAST MODIFICATION: FEB. 21, 1968
064209,000024:
064210,000025: # PROGRAM DESCRIPTION:
064211,000026:
064212,000027: # 1/ACCS PROVIDES THE INTERFACE BETWEEN THE GUIDANCE PROGRAMS AND THE DIGITAL AUTOPILOT. WHENEVER THERE IS A
064213,000028: # CHANGE IN THE MASS OF THE VEHICLE, IN THE DEADBAND SELECTED, IN THE VEHICLE CONFIGURATION (ASCENT-DESCENT-
064214,000029: # DOCKED), AND DURING A FRESH START OR A RESTART, 1/ACCS IS CALLED TO COMMUNICATE THE DATA CHANGES TO THE DAP.
064215,000030:
064216,000031: # THE INPUTS TO 1/ACCS ARE MASS, ACCELERATION (ABDELV), DEADBAND (DB), OFFSET ACCELERATIONS (AOSQ AND AOSR),
064217,000032: # STAGE VERIFY BIT (CHAN30,BIT2), DOCKED BIT (DAPBOOLS,BIT13), DRIFT BIT (DAPBOOLS,BIT8), USEQRJTS (DAPBOOLS,
064218,000033: # BIT14), AND SURFACE FLAG (FLAGWRD8,BIT8), AND CH5MASK.
064219,000034:
064220,000035: # 1/ACCS COMPUTES THE JET ACCELERATIONS (1JACC, 1JACCQ, 1JACCR) AS FUNCTIONS OF MASS. 1JACCU AND 1JACCV ARE
064221,000036: # FORMED BY RESOLVING 1JACCQ NAD 1JACCR. IN THE DESCENT CASE, THE DESCENT ENGINE MOMENT ARM (L, PVT-CG) IS ALSO
064222,000037: # COMPUTED AS A FUNCTION OF MASS. THE RATE OF CHANGE OF ACCELERATION DUE TO ROTATION OF THE GIMBAL (ACCDOTQ,
064223,000038: # ACCDOTR) IS ALSO COMPUTED IN THE DESCENT CASE.
064224,000039:
064225,000040: # AFTER THE ABOVE COMPUTATIONS, THE PROGRAM 1/ACCONT COMPUTES THE RECIPROCAL NET ACCELERATIONS ABOUT THE P, U,
064226,000041: # AND V AXES (2 JETS FOR P AXIS, BOTH 1 AND 2 JETS FOR U AND V AXES), AND THE RECIPROCAL COAST ACCELERATIONS ABOUT
064227,000042: # THE P, U, AND V AXES. THE ACCELERATION FUNCTIONS (ACCFCTZ1 AND ACCFCTZ5) ARE ALSO COMPUTED FOR THESE AXES. THE
064228,000043: # FIRE AND COAST DEADBANDS AND AXISDIST ARE COMPUTED FOR EACH AXIS. FLAT AND ZONE3LIM, THE WIDTH AND HEIGHT OF THE
064229,000044: # MINIMUM IMPULSE ZONE, ARE COMPUTED. 1/ACCONT ALSO SETS ACCSWU AND ACCSWV, WHICH INDICATE WHEN 1 JET ACCELERATION
064230,000045: # IS NOT SUFFICIENT TO PRODUCE MINIMUM ACCELERATION. AT THE COMPLETION OF 1/ACCS, THE ACCSOKAY BIT IS SET.
064231,000046:
064232,000047: # SUBBOUTINES CALLED:
064233,000048: # TIMEGMBL
064234,000049: # MAKECADR
064235,000050: # ROT45DEG
064236,000051:
064237,000052: # CALLING SEQUENCE:
064238,000053: # TC BANKCALL (1/ACCS MUST BE CALL BY BANKCALL
064239,000054: # CADR 1/ACCS
064240,000055:
064241,000056: # NORMAL EXIT: VIA BANKJUMP ALARM AND ABORT EXIT MODES: NONE.
064242,000057:
064243,000058: # INPUT/OUTPUT: SEE PROGRAM DESCRIPTION
064244,000059:
064245,000060: # DEBRIS:
064246,000061:
064247,000062: # ALL OF THE EXECUTIVE TEMPORARY REGISTERS, EXCEPT FIXLOC AND OVFIND, AND THE CORE SET AREA FROM MPAC TO BANKSET.
064248,000063:
064249,000064: # RESTRICTIONS:
064250,000065: # 1/ACCS MUST BE CALLED BY BANKCALL
064251,000066: # EBANK IS SET TO 6, BUT NOT RESTORED.
Page 1480 |
064253,000068:
064254,000069: 20,2447 BANK 20
064255,000070: 20,2000 SETLOC DAPS3
064256,000071: 20,2000 BANK
064257,000072:
064258,000073: 20,2447 COUNT* $$/DAPAO
064259,000074:
064260,000075: 20,2447 E6,1537 EBANK= AOSQ
064261,000076:
064262,000077: # ENTRY IS THROUGH 1/ACCJOB OR 1/ACCSET WHEN 1/ACCS IS TO BE DONE AS A SEPARATE NOVAC JOB.
064263,000078:
064264,000079: # IT IS POSSIBLE FOR MORE THAN ONE OF THESE JOBS TO BE SET UP CONCURRENTLY. HOWEVER, SINCE THERE IS NO CHECK OF
064265,000080: # NEWJOB, A SECOND MANIFESTATION CANNOT BE STARTED UNTIL THE FIRST IS COMPLETED.
064266,000081:
064267,000082: 20,2447 34755 1/ACCSET CAF ZERO # ENTRY FROM FRESH START/RESTART CODING.
064268,000083: 20,2450 55537 TS AOSQ # NULL THE OFFSET ESTIMATES FOR 1/ACCS.
064269,000084: 20,2451 55541 TS AOSR
064270,000085: 20,2452 55422 TS ALPHAQ # NULL THE OFFSET ESTIMATES FOR DOWNLIST
064271,000086: 20,2453 55423 TS ALPHAR
064272,000087:
064273,000088: 20,2454 04616 1/ACCJOB TC BANKCALL # 1/ACCS ASSUMES ENTRY VIA BANKCALL.
064274,000089: 20,2455 40461 CADR 1/ACCS +2 # SKIP EBANK SETTING.
064275,000090:
064276,000091: 20,2456 05155 TC ENDOFJOB
064277,000092:
064278,000093: 20,2457 35015 1/ACCS CA EBANK6 # ***** EBANK SET BUT NOT RESTORED *****
064279,000094: 20,2460 54003 TS EBANK
064280,000095:
064281,000096: 20,2461 04645 TC MAKECADR # SAVE RETURN SO THAT BUF2 MAY BE USED
064282,000097: 20,2462 54117 TS ACCRETRN
064283,000098:
064284,000099: # DETERMINE MASS OF THE LEM.
064285,000100: 20,2463 30111 CA DAPBOOLS # IS CSM DOCKED
064286,000101: 20,2464 74737 MASK CSMDOCKD
064287,000102: 20,2465 54157 TS DOCKTEMP # STORE RECORD OF STATE IN TEMP (MPAC +3).
064288,000103: 20,2466 10000 CCS A
064289,000104: 20,2467 41332 CS CSMMASS # DOCKED: LEMMASS = MASS - CSMMASS
064290,000105: 20,2470 61244 AD MASS # LEM ALONE: LEMMASS = MASS
064291,000106: 20,2471 55331 TS LEMMASS
064292,000107:
064293,000108: # ON THE BASIS OF APSFLAG:
064294,000109: # SET THE P-AXIS RATE COMMAND LIMIT FOR 2-JET/4-JET CONTROL
064295,000110: # SET MPAC, WHICH INDICATES THE PROPER SET OF COEFFICIENTS FOR THE LEM-ALONE F(MASS) CALCULATIONS
064296,000111: # ENSURE THAT THE LEM MASS VALUE IS WITHIN THE ACCEPTABLE RANGE
064297,000112:
064298,000113: 20,2472 00004 INHINT
064299,000114: 20,2473 30106 CAE FLGWRD10 # DETERMINE WHETHER STAGED.
064300,000115: 20,2474 74737 MASK APSFLBIT
064301,000116: 20,2475 00006 EXTEND
064302,000117: 20,2476 12522 BZF DPSFLITE
Page 1481 |
064304,000119: 20,2477 44733 CS POSMAX # ASCENT (OR ON LUNAR SURFACE)
064305,000120: 20,2500 55473 TS -2JETLIM # ALWAYS 2 JETS FOR P-AXIS RATE COMMAND
064306,000121: 20,2501 35742 CAF OCT14 # INITIALIZE INDEX AT 12.
064307,000122: 20,2502 54154 TS MPAC
064308,000123: 20,2503 41331 CS LEMMASS # CHECK IF MASS TOO HIGH. CATCH STAGING.
064309,000124: 20,2504 61400 AD HIASCENT
064310,000125: 20,2505 00006 EXTEND
064311,000126: 20,2506 62513 BZMF MASSFIX
064312,000127: 20,2507 41331 CS LEMMASS # CHECK IF MASS TOO LOW. THIS LIMITS THE
064313,000128: 20,2510 62001 AD LOASCENT # DECREMENTING BY MASSMON.
064314,000129: 20,2511 00006 EXTEND
064315,000130: 20,2512 62540 BZMF F(MASS)
064316,000131:
064317,000132: 20,2513 27331 MASSFIX ADS LEMMASS # STORE THE VIOLATED LIMIT AS LEMMASS.
064318,000133: 20,2514 22007 ZL # ALSO CORRECT TOTAL MASS, ZEROING THE
064319,000134: 20,2515 10157 CCS DOCKTEMP # LOW-ORDER WORD.
064320,000135: 20,2516 31332 CAE CSMMASS # DOCKED: MASS = LEMMASS + CSMMASS
064321,000136: 20,2517 61331 AD LEMMASS # LEM ALONE: MASS = LEMMASS
064322,000137: 20,2520 53245 DXCH MASS
064323,000138: 20,2521 12540 TCF F(MASS)
064324,000139:
064325,000140: 20,2522 44742 DPSFLITE CS BIT10 # FOUR JETS FOR P-AXIS RATE COMMAND ERRORS
064326,000141: 20,2523 55473 TS -2JETLIM # EXCEEDING 1.4 DEG/SEC (SCALED AT 45)
064327,000142: 20,2524 36241 CAF SIX # INITIALIZE INDEX AT 6.
064328,000143: 20,2525 54154 TS MPAC
064329,000144: 20,2526 41331 CS LEMMASS # CHECK IF MASS TOO HIGH. SHOULD NEVER
064330,000145: 20,2527 62002 AD HIDESCNT # OCCUR EXCEPT PERHAPS BEFORE THE PAD
064331,000146: 20,2530 00006 EXTEND # LOAD IS DONE.
064332,000147: 20,2531 62513 BZMF MASSFIX
064333,000148: 20,2532 41331 CS LEMMASS # CHECK IF MASS TOO LOW. THIS LIMITS THE
064334,000149: 20,2533 62003 AD LODESCNT # DECREMENTING BY MASSMON.
064335,000150: 20,2534 61400 AD HIASCENT
064336,000151: 20,2535 00006 EXTEND
064337,000152: 20,2536 62540 BZMF F(MASS)
064338,000153: 20,2537 12513 TCF MASSFIX
064339,000154:
064340,000155: # COMPUTATION OF FUNCTIONS OF MASS
064341,000156: 20,2540 00003 F(MASS) RELINT
064342,000157: 20,2541 10157 CCS DOCKTEMP
064343,000158: 20,2542 13030 TCF DOCKED # DOCKED: USE SEPERATE COMPUTATION.
064344,000159: 20,2543 34752 CA TWO
064345,000160: 20,2544 54155 STCTR TS MPAC +1 # J=2,1,0 FOR 1JACCR,1JACCQ,1JACC
064346,000161:
064347,000162: 20,2545 44752 CS TWO
064348,000163: 20,2546 26154 ADS MPAC # JX=10,8,6 OR 4,2,0 TO INDEX COEFS.
064349,000164:
064350,000165: 20,2547 31331 STCTR1 CAE LEMMASS
064351,000166: 20,2550 50154 INDEX MPAC
064352,000167: 20,2551 63006 AD INERCONC
064353,000168: 20,2552 54156 TS MPAC +2 # MASS + C
Page 1482 |
064355,000170: 20,2553 00006 EXTEND
064356,000171: 20,2554 50154 INDEX MPAC
064357,000172: 20,2555 32770 DCA INERCONA
064358,000173: 20,2556 00006 EXTEND
064359,000174: 20,2557 10156 DV MPAC +2
064360,000175: 20,2560 50154 INDEX MPAC
064361,000176: 20,2561 63005 AD INERCONB
064362,000177: 20,2562 50155 INDEX MPAC +1 # 1JACC(J)=A(JX)/(MASS+C(JX) + B(JX)
064363,000178: 20,2563 55530 TS 1JACC # 1JACC(-1)=L,PVT-CG SCALED AT 8 FEET
064364,000179:
064365,000180: 20,2564 10155 CCS MPAC +1
064366,000181: 20,2565 12544 TCF STCTR
064367,000182: 20,2566 12570 TCF COMMEQS
064368,000183: 20,2567 12607 TCF LRESC
064369,000184:
064370,000185: 20,2570 31532 COMMEQS CA 1JACCR # SCALED AT PI/4
064371,000186: 20,2571 61531 AD 1JACCQ
064372,000187: 20,2572 00006 EXTEND
064373,000188: 20,2573 73026 MP 0.35356 # .70711 SCALED BY (+1)
064374,000189: 20,2574 55533 TS 1JACCU
064375,000190: 20,2575 55534 TS 1JACCV # SCALED AT PI/2 RAD/SEC**2
064376,000191:
064377,000192: 20,2576 10154 CCS MPAC # COMPUTE L,PVT-CG IF IN DESCENT
064378,000193: 20,2577 34755 CAF ZERO # ZERO SWITCHES AND GO TO 1/ACCONT IN
064379,000194: 20,2600 55501 TS ALLOWGTS # ASCENT
064380,000195: 20,2601 13142 TCF 1/ACCONT -1
064381,000196:
064382,000197: 20,2602 44752 CS TWO
064383,000198: 20,2603 54154 TS MPAC
064384,000199: 20,2604 44753 CS ONE
064385,000200: 20,2605 54155 TS MPAC +1
064386,000201: 20,2606 12547 TCF STCTR1
064387,000202: # THIS SECTION COMPUTES THE RATE OF CHANGE OF ACCELERATION DUE TO THE ROTATION OF THE GIMBALS. THE EQUATION IMPLE
064388,000203: # MENTED IN BOTH THE Y-X PLANE AND THE Z-X PLANE IS -- D(ALPHA)/DT = TL/I*D(DELTA)/DT, WHERE
064389,000204: # T = ENGINE THRUST FORCE
064390,000205: # L = PIVOT TO CG DISTANCE OF ENGINE
064391,000206: # I = MOMENT OF INERTIA
064392,000207:
064393,000208: 20,2607 31246 LRESC CAE ABDELV # SCALED AT 2(13) CM/SEC(2)
064394,000209: 20,2610 00006 EXTEND
064395,000210: 20,2611 71244 MP MASS # SCALED AT B+16 KGS
064396,000211: 20,2612 02724 TC DVOVSUB # GET QUOTIENT WITH OVERFLOW PROTECTION
064397,000212: 20,2613 03027 ADRES GFACTM
064398,000213:
064399,000214: # MASS IS DIVIDED BY ACCELERATION OF GRAVITY IN ORDER TO MATCH THE UNITS OF IXX,IYY,IZZ, WHICH ARE SLUG-FT(2).
064400,000215: # THE RATIO OF ACCELERATION FROM PIPAS TO ACCELERATION OF GRAVITY IS THE SAME IN METRIC OR ENGINEERING UNITS, SO
064401,000216: # THAT IS UNCONVERTED. 2.20462 CONVERTS KG. TO LB. NOW T IS IN A SCALED AT 2(14).
064402,000217:
064403,000218: 20,2614 00006 EXTEND
064404,000219: 20,2615 71527 MP L,PVT-CG # SCALED AT 8 FEET.
Page 1483 |
064406,000221: 20,2616 00004 INHINT
064407,000222: 20,2617 54154 TS MPAC
064408,000223: 20,2620 00006 EXTEND
064409,000224: 20,2621 71532 MP 1JACCR
064410,000225: 20,2622 02724 TC DVOVSUB # GET QUOTIENT WITH OVERFLOW PROTECTION
064411,000226: 20,2623 02000 ADRES TORKJET1
064412,000227:
064413,000228: 20,2624 55511 TS ACCDOTR # SCALED AT PI/2(7)
064414,000229: 20,2625 30154 CA MPAC
064415,000230: 20,2626 00006 EXTEND
064416,000231: 20,2627 71531 MP 1JACCQ
064417,000232: 20,2630 02724 TC DVOVSUB # GET QUOTIENT WITH OVERFLOW PROTECTION
064418,000233: 20,2631 02000 ADRES TORKJET1
064419,000234:
064420,000235: 20,2632 55507 SPSCONT TS ACCDOTQ # SCALED AT PI/2(7)
064421,000236: 20,2633 00006 EXTEND
064422,000237: 20,2634 73025 MP DGBF # .3ACCDOTQ SCALED AT PI/2(8)
064423,000238: 20,2635 55503 TS KQ
064424,000239: 20,2636 00006 EXTEND
064425,000240: 20,2637 70000 SQUARE
064426,000241: 20,2640 55504 TS KQ2 # KQ(2)
064427,000242:
064428,000243: 20,2641 31511 CAE ACCDOTR # .3ACCDOTR AT PI/2(8)
064429,000244: 20,2642 00006 EXTEND
064430,000245: 20,2643 73025 MP DGBF
064431,000246: 20,2644 55505 TS KRDAP
064432,000247: 20,2645 00006 EXTEND
064433,000248: 20,2646 70000 SQUARE
064434,000249: 20,2647 55506 TS KR2
064435,000250:
064436,000251: 20,2650 00006 EXTEND # NOW COMPUTE QACCDOT, RACCDOT, THE SIGNED
064437,000252: 20,2651 00012 READ CHAN12 # JERK TERMS. STORE CHANNEL 12. WITH GIM
064438,000253: 20,2652 54155 TS MPAC +1 # BAL DRIVE BITS 9 THROUGH 12. SET LOOP
064439,000254: 20,2653 34752 CAF BIT2 # INDEX TO COMPUTE RACCDOT, THEN QACCDOT.
064440,000255: 20,2654 12656 TCF LOOP3
064441,000256: 20,2655 34755 CAF ZERO # ACCDOTQ AND ACCDOTR ARE NOT NEGATIVE,
064442,000257: 20,2656 54154 LOOP3 TS MPAC # BECAUSE THEY ARE MAGNITUDES
064443,000258: 20,2657 30155 CA MPAC +1
064444,000259: 20,2660 50154 INDEX MPAC # MASK CHANNEL IMAGE FOR ANY GIMBAL MOTION
064445,000260: 20,2661 73021 MASK GIMBLBTS
064446,000261: 20,2662 00006 EXTEND
064447,000262: 20,2663 12677 BZF ZACCDOT # IF NONE, Q(R)ACCDOT IS ZERO.
064448,000263: 20,2664 30155 CA MPAC +1
064449,000264: 20,2665 50154 INDEX MPAC # GIMBAL IS MOVING. IS ROTATION POSITIVE.
064450,000265: 20,2666 73022 MASK GIMBLBTS +1
064451,000266: 20,2667 00006 EXTEND
064452,000267: 20,2670 12674 BZF FRSTZERO # IF NOT POSITIVE, BRANCH
064453,000268: 20,2671 50154 INDEX MPAC # POSITIVE ROTATION, NEGATIVE Q(R)ACCDOT.
064454,000269: 20,2672 41507 CS ACCDOTQ
064455,000270: 20,2673 12700 TCF STACCDOT
Page 1484 |
064457,000272: 20,2674 50154 FRSTZERO INDEX MPAC # NEGATIVE ROTATION, POSITIVE Q(R)ACCDOT.
064458,000273: 20,2675 31507 CA ACCDOTQ
064459,000274: 20,2676 12700 TCF STACCDOT
064460,000275: 20,2677 34755 ZACCDOT CAF ZERO
064461,000276: 20,2700 50154 STACCDOT INDEX MPAC
064462,000277: 20,2701 55510 TS QACCDOT # STORE Q(R)ACCDOT.
064463,000278: 20,2702 10154 CCS MPAC
064464,000279: 20,2703 12655 TCF LOOP3 -1 # NOW DO QACCDOT.
064465,000280:
064466,000281: 20,2704 40111 CS DAPBOOLS # IS GIMBAL USABLE?
064467,000282: 20,2705 74736 MASK USEQRJTS
064468,000283: 20,2706 00006 EXTEND
064469,000284: 20,2707 13576 BZF DOWNGTS # NO. BE SURE THE GIMBAL SWITCHES ARE DOWN
064470,000285: 20,2710 41274 CS T5ADR # YES. IS THE DAP RUNNING?
064471,000286: 20,2711 63655 AD PAXISADR
064472,000287: 20,2712 00006 EXTEND
064473,000288: 20,2713 12715 BZF +2
064474,000289: 20,2714 13576 TCF DOWNGTS # NO. BE SURE THE GIMBAL SWITCHES ARE DOWN
064475,000290: 20,2715 11631 CCS INGTS # YES. IS GTS IN CONTROL?
064476,000291: 20,2716 12721 TCF DOCKTEST # YES. PROCEED WITH 1/ACCS.
064477,000292: 20,2717 04674 TC IBNKCALL # NO. NULL OFFSET AND FIND ALLOWGTS
064478,000293: 20,2720 43450 CADR TIMEGMBL
064479,000294:
064480,000295: 20,2721 10157 DOCKTEST CCS DOCKTEMP # BYPASS 1/ACCONT WHEN DOCKED.
064481,000296: 20,2722 13561 TCF 1/ACCRET
064482,000297: 20,2723 13143 TCF 1/ACCONT
064483,000298:
Page 1485 |
064485,000300: # SUBROUTINE: DVOVSUB
064486,000301: # AUTHOR: C. WORK, MOD 0 12 JUNE 68
064487,000302: # PURPOSE: THIS SUBROUTINE PROVIDES A SINGLE-PRECISION MACHINE LANGUAGE DIVISION OPERATION WHICH RETURNS
064488,000303: # (1) THE QUOTIENT, IF THE DIVISION WAS NORMAL.
064489,000304: # (2) NEGMAX, IF THE QUOTIENT WAS IMPROPER AND NEGATIVE.
064490,000305: # (3) POSMAX, IF THE QUOTIENT WAS IMPROPER AND POSITIVE OR IF THERE WAS A ZERO DIVISOR.
064491,000306: # THE CALLING PROGRAM IS PRESUMED TO BE A JOB IN THE F BANK WHICH CONTAINS DVOVSUB. E BANK MUST BE 6.
064492,000307: # THE DIVISOR FOR THIS ROUTINE MAY BE IN EITHER FIXED OR ERASABLE STORAGE. SIGN AGREEMENT IS
064493,000308: # ASSUMED BETWEEN THE TWO HALVES OF THE DIVIDEND. (THIS IS CERTAIN IF THE A AND L REGISTERS ARE THE RE-
064494,000309: # SULT OF A MULTIPLICATION OPERATION.)
064495,000310: # CALL SEQUENCE:
064496,000311: # L TC DVOVSUB
064497,000312: # L +1 ADRES (DIVISOR)
064498,000313: # L +2 RETURN HERE, WITH RESULT IN A,L
064499,000314: # INPUT: DIVIDEND IN A,L (SIGN AGREEMENT ASSUMED), DIVISOR IN LOCATION DESIGNATED BY "ADRES".
064500,000315: # DIVISOR MAY BE IN THE DVOVSUB FBANK,FIXED-FIXED FBANK,EBANK 6, OR UNSWITCHED ERASABLE.
064501,000316: # OUTPUT: QUOTIENT AND REMAINDER, OR POSMAX (NEGMAX), WHICHEVER IS APPROPRIATE.
064502,000317: # DEBRIS: SCRATCHX,SCRATCHY,SCRATCHZ,A,L (NOTE: SCRATCHX,Y,Z ARE EQUATED TO MPAC +4,+5, AND +6.)
064503,000318: # ABORTS OR ALARMS: NONE
064504,000319: # EXITS: TO THE CALL POINT +2.
064505,000320: # SUBROUTINES CALLED: NONE.
064506,000321:
064507,000322: 20,2724 54161 DVOVSUB TS SCRATCHY # SAVE UPPER HALF OF DIVIDEND
064508,000323: 20,2725 54160 TS SCRATCHX
064509,000324: 20,2726 50002 INDEX Q # OBTAIN ADDRESS OF DIVISOR.
064510,000325: 20,2727 30000 CA 0
064511,000326: 20,2730 24002 INCR Q # STEP Q FOR PROPER RETURN SEQUENCE.
064512,000327: 20,2731 50000 INDEX A
064513,000328: 20,2732 30000 CA 0 # PICK UP THE DIVISOR.
064514,000329: 20,2733 00006 EXTEND # RETURN POSMAX FOR A ZERO DIVISOR.
064515,000330: 20,2734 12763 BZF MAXPLUS
064516,000331:
064517,000332: 20,2735 54162 TS SCRATCHZ # STORE DIVISOR.
064518,000333:
064519,000334: 20,2736 10000 CCS A # GET ABS(DIVISOR) IN THE A REGISTER.
064520,000335: 20,2737 64753 AD BIT1
064521,000336: 20,2740 12742 TCF ZEROPLUS
064522,000337: 20,2741 64753 AD BIT1
064523,000338:
064524,000339: 20,2742 56161 ZEROPLUS XCH SCRATCHY # STORE ABS(DIVISOR). PICK UP TOP HALF OF
064525,000340: 20,2743 00006 EXTEND # DIVIDEND.
064526,000341: 20,2744 62746 BZMF GOODNEG # GET -ABS(DIVIDEND)
Page 1486 |
064528,000343: 20,2745 40000 CS A
064529,000344:
064530,000345: 20,2746 60161 GOODNEG AD SCRATCHY # ABS(DIVISOR) - ABS(DIVIDEND)
064531,000346: 20,2747 00006 EXTEND
064532,000347: 20,2750 62755 BZMF MAKEMAX # BRANCH IF DIVISION IS NOT PROPER.
064533,000348:
064534,000349: 20,2751 30160 CA SCRATCHX # RE-ESTABLISH THE DIVIDEND.
064535,000350: 20,2752 00006 EXTEND
064536,000351: 20,2753 10162 DV SCRATCHZ # QUOTIENT IN THE A, REMAINDER IN L.
064537,000352: 20,2754 00002 TC Q # RETURN TO CALLER.
064538,000353:
064539,000354: 20,2755 10160 MAKEMAX CCS SCRATCHX # DETERMINE THE SIGN OF THE QUOTIENT.
064540,000355: 20,2756 10162 CCS SCRATCHZ # SCRATCHX AND SCRATCHZ ARE NON-ZERO.
064541,000356: 20,2757 12763 TCF MAXPLUS
064542,000357: 20,2760 10162 CCS SCRATCHZ
064543,000358: 20,2761 34735 CAF NEGMAX # +,- OR -,+
064544,000359: 20,2762 00002 TC Q
064545,000360: 20,2763 34733 MAXPLUS CAF POSMAX # -,- OR +,+
064546,000361: 20,2764 00002 TC Q
064547,000362:
064548,000363: # COEFFICIENTS FOR THE JET ACCELERATION CURVE FITS
064549,000364: # THE CURVE FITS ARE OF THE FORM -
064550,000365:
064551,000366: # 1JACC = A/(MASS + C) + B
064552,000367:
064553,000368: # 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.
064554,000369:
064555,000370: # 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,
064556,000371: # AND C IS SCALED AT B+16 KG.
064557,000372:
064558,000373: 20,2765 01240 22513 2DEC +.0410511917 # L A DESCENT
064559,000374:
064560,000375: 20,2767 00141 07416 INERCONA 2DEC +.0059347674 # 1JACCP A DESCENT
064561,000376:
064562,000377: 20,2771 00030 21261 2DEC +.0014979264 # 1JACCQ A DESCENT
064563,000378:
064564,000379: 20,2773 00021 03766 2DEC +.0010451889 # 1JACCR A DESCENT
064565,000380:
064566,000381: 20,2775 00153 07111 2DEC +.0065443852 # 1JACCP A ASCENT
064567,000382:
064568,000383: 20,2777 00072 24103 2DEC +.0035784354 # 1JACCQ A ASCENT
064569,000384:
064570,000385: 20,3001 00135 11511 2DEC +.0056946631 # 1JACCR A ASCENT
064571,000386:
064572,000387: 20,3003 04754 DEC +.155044 # L B DESCENT
064573,000388: 20,3004 77142 DEC -.025233 # L C DESCENT
Page 1487 |
064575,000390: 20,3005 00061 INERCONB DEC +.002989 # 1JACCP B DESCENT
064576,000391: 20,3006 00217 INERCONC DEC +.008721 # 1JACCP C DESCENT
064577,000392: 20,3007 00464 DEC +.018791 # 1JACCQ B DESCENT
064578,000393: 20,3010 75642 DEC -.068163 # 1JACCQ C DESCENT
064579,000394: 20,3011 00536 DEC +.021345 # 1JACCR B DESCENT
064580,000395: 20,3012 75705 DEC -.066027 # 1JACCR C DESCENT
064581,000396:
064582,000397: 20,3013 00001 DEC +.000032 # 1JACCP B ASCENT
064583,000398: 20,3014 77616 DEC -.006923 # 1JACCP C ASCENT
064584,000399: 20,3015 05154 DEC +.162862 # 1JACCQ B ASCENT
064585,000400: 20,3016 00052 DEC +.002588 # 1JACCQ C ASCENT
064586,000401: 20,3017 00231 DEC +.009312 # 1JACCR B ASCENT
064587,000402: 20,3020 77174 DEC -.023608 # 1JACCR C ASCENT
064588,000403:
064589,000404: 20,3021 01400 GIMBLBTS OCTAL 01400
064590,000405: 20,3022 01000 OCTAL 01000
064591,000406: 20,3023 06000 OCTAL 06000
064592,000407: 20,3024 04000 OCTAL 04000
064593,000408: 20,3025 23146 DGBF DEC 0.6 # .3 SCALED AT 1/2
064594,000409: 20,3026 13241 0.35356 DEC 0.35356 # .70711 SCALED AT 2
064595,000410: 20,3027 00337 GFACTM OCT 337 # 979.24/2.20462 AT B+15
064596,000411:
064597,000412: # CSM-DOCKED INERTIA COMPUTATIONS
064598,000413:
064599,000414: 20,3030 34753 DOCKED CA ONE # COEFTR = 1 FOR INERTIA COEFFICIENTS
064600,000415: 20,3031 54160 SPSLOOP1 TS COEFCTR # = 7 FOR CG COEFFICIENTS
064601,000416: 20,3032 34753 CA ONE # MASSCTR = 1 FOR CSM
064602,000417: 20,3033 54161 TS MASSCTR # = 0 FOR LEM
064603,000418:
064604,000419: 20,3034 50160 INDEX COEFCTR
064605,000420: 20,3035 33125 CA COEFF -1 # COEFF -1 = C
064606,000421: 20,3036 00006 EXTEND
064607,000422: 20,3037 71331 MP LEMMASS
064608,000423: 20,3040 00006 EXTEND
064609,000424: 20,3041 71332 MP CSMMASS # LET X = CSMMASS AND Y = LEMMASS
064610,000425:
064611,000426: 20,3042 50160 INDEX COEFCTR
064612,000427: 20,3043 63126 AD COEFF # COEFF = F
064613,000428: 20,3044 54154 TS MPAC # MPAC = C X Y + F
064614,000429: 20,3045 13051 TCF +4
064615,000430:
064616,000431: 20,3046 54161 SPSLOOP2 TS MASSCTR # LOOP TWICE THROUGH HERE TO OBTAIN
064617,000432: 20,3047 00006 EXTEND # MPAC = MPAC + (A X +D)X + (B Y +E)Y
064618,000433: 20,3050 26160 DIM COEFCTR # LOOP #1 LOOP #2
064619,000434: 20,3051 50160 INDEX COEFCTR
064620,000435: 20,3052 33130 CA COEFF +2 # COEFF +2 = A OR B
064621,000436: 20,3053 00006 EXTEND
064622,000437: 20,3054 50161 INDEX MASSCTR
064623,000438: 20,3055 71331 MP LEMMASS
064624,000439: 20,3056 50160 INDEX COEFCTR
Page 1488 |
064626,000441: 20,3057 63132 AD COEFF +4 # COEFF +4 = E OR D
064627,000442: 20,3060 00006 EXTEND
064628,000443: 20,3061 50161 INDEX MASSCTR
064629,000444: 20,3062 71331 MP LEMMASS
064630,000445: 20,3063 26154 ADS MPAC
064631,000446:
064632,000447: 20,3064 10161 CCS MASSCTR
064633,000448: 20,3065 13046 TCF SPSLOOP2
064634,000449: 20,3066 10160 CCS COEFCTR # IF COEFCTR IS POS, EXIT FROM LOOP WITH
064635,000450: 20,3067 13076 TCF +7 # CG X DELDOT = MPAC X 4 PI RAD-CM/SEC
064636,000451: 20,3070 00000 20354 TORQCONS 2DEC 0.51443 B-14 # CORRESPONDS TO 500 LB-FT
064637,000452:
064638,000453: 20,3072 30154 CA MPAC
064639,000454: 20,3073 54155 TS MPAC +1 # INERTIA = (MPAC +1) X 2(38) KG-CM(2)
064640,000455: 20,3074 34757 CA SEVEN
064641,000456: 20,3075 13031 TCF SPSLOOP1
064642,000457:
064643,000458: 20,3076 34742 CA BIT10 # CORRESPONDS TO 1. 4 DEG/SEC(2)
064644,000459: 20,3077 55530 TS 1JACC # SCALED AT PI/4
064645,000460:
064646,000461: 20,3100 34733 CA POSMAX # SET INVERSE JET ACCELERATIONS TO POSMAX,
064647,000462: 20,3101 55551 TS 1/ANETP # WHICH CORRESPONDS TO ACCEL. OF 1.4 D/SS.
064648,000463: 20,3102 55571 TS 1/ANET2 +1
064649,000464: 20,3103 55572 TS 1/ANET2 +2
064650,000465: 20,3104 55611 TS 1/ANET2 +17D
064651,000466: 20,3105 55612 TS 1/ANET2 +18D
064652,000467: 20,3106 00006 EXTEND
064653,000468: 20,3107 33071 DCA TORQCONS
064654,000469: 20,3110 00006 EXTEND
064655,000470: 20,3111 10155 DV MPAC +1
064656,000471: 20,3112 00004 INHINT
064657,000472: 20,3113 55531 TS 1JACCQ # SCALED AT PI/4
064658,000473: 20,3114 55532 TS 1JACCR
064659,000474:
064660,000475: 20,3115 31244 CA MASS # SCALED AT 2(16) KG
064661,000476: 20,3116 00006 EXTEND
064662,000477: 20,3117 70154 MP MPAC # SCALED AT 4 PI RAD-CM/SEC
064663,000478: 20,3120 00006 EXTEND
064664,000479: 20,3121 71246 MP ABDELV # SCALED AT 2(13) CM/SEC(2)
064665,000480: 20,3122 02724 TC DVOVSUB # GET QUOTIENT WITH OVERFLOW PROTECTION
064666,000481: 20,3123 00155 ADRES MPAC +1
064667,000482:
064668,000483: 20,3124 55511 TS ACCDOTR
064669,000484: 20,3125 12632 TCF SPSCONT # CONTINUE K, KSQ CALCULATIONS
064670,000485:
064671,000486: # 2 2
064672,000487: # COEFFICIENTS FOR CURVE FIT OF THE FORM Z = A X +B Y +C X Y +D X +E Y +F
064673,000488:
064674,000489: 20,3126 06176 COEFF DEC .19518 # C COEFFICIENT OF INERTIA
064675,000490: 20,3127 77650 DEC -.00529 # F ''
Page 1489 |
064677,000492: 20,3130 72260 DEC -.17670 # B ''
064678,000493: 20,3131 76637 DEC -.03709 # A ''
064679,000494: 20,3132 02167 DEC .06974 # E ''
064680,000495: 20,3133 00645 DEC .02569 # D ''
064681,000496:
064682,000497: 20,3134 06335 DEC .20096 # C COEFFICIENT OF CG
064683,000498: 20,3135 04256 DEC .13564 # F ''
064684,000499: 20,3136 30163 DEC .75704 # B ''
064685,000500: 20,3137 64072 DEC -.37142 # A ''
064686,000501: 20,3140 53632 DEC -.63117 # E ''
064687,000502: 20,3141 15133 DEC .41179 # D ''
064688,000503:
064689,000504: # ASSIGNMENT OF TEMPORARIES FOR 1/ACCS (EXCLUDING 1/ACCONT)
064690,000505: # MPAC, MPAC +1, MPAC +2 USED EXPLICITLY
064691,000506: 20,3142 0160 COEFCTR EQUALS MPAC +4
064692,000507: 20,3142 0161 MASSCTR EQUALS MPAC +5
064693,000508: 20,3142 0160 SCRATCHX EQUALS MPAC +4 # SCRATCH AREA FOR DVOVSUB ROUTINE.
064694,000509: 20,3142 0161 SCRATCHY EQUALS SCRATCHX +1
064695,000510: 20,3142 0162 SCRATCHZ EQUALS SCRATCHX +2
064696,000511:
064697,000512: 20,3142 0157 DOCKTEMP EQUALS MPAC +3 # RECORD OF CSMDOCKED BIT OF DAPBOOLS
064698,000513:
Page 1490 |
064700,000515: 20,3142 BANK 20
064701,000516: 20,2000 SETLOC DAPS3
064702,000517: 20,2000 BANK
064703,000518:
064704,000519: 20,3142 E6,1537 EBANK= AOSQ
064705,000520:
064706,000521: 20,3142 COUNT* $$/DAPAO
064707,000522:
064708,000523: 20,3142 55631 -1 TS INGTS # ZERO INGTS IN ASCENT
064709,000524: 20,3143 31346 1/ACCONT CA DB # INITIALIZE DBVAL1,2,3
064710,000525: 20,3144 00006 EXTEND
064711,000526: 20,3145 74737 MP BIT13
064712,000527: 20,3146 54001 TS L # 0.25 DB
064713,000528: 20,3147 60000 AD A
064714,000529: 20,3150 54115 TS DBVAL3 # 0.50 DB
064715,000530: 20,3151 41346 CS DBVAL1
064716,000531: 20,3152 60001 AD L
064717,000532: 20,3153 54114 TS DBVAL2 # -.75 DB
064718,000533:
064719,000534: 20,3154 00004 GETAOSUV INHINT
064720,000535: 20,3155 31541 CAE AOSR # COMPUTE AOSU AND AOSV BY ROTATING
064721,000536: 20,3156 54001 TS L # AOSQ AND AOSR.
064722,000537: 20,3157 31537 CAE AOSQ
064723,000538: 20,3160 04674 TC IBNKCALL
064724,000539: 20,3161 37100 CADR ROT45DEG
064725,000540: 20,3162 53544 DXCH AOSU
064726,000541:
064727,000542: 20,3163 00003 RELINT
064728,000543: 20,3164 30111 CA DAPBOOLS
064729,000544: 20,3165 74744 MASK DRIFTBIT # ZERO DURING ULLAGE AND POWERED FLIGHT.
064730,000545: 20,3166 10000 CCS A # IF DRIFTING FLIGHT,
064731,000546: 20,3167 34753 CA ONE # SET DRIFTER TO 1
064732,000547: 20,3170 54116 TS DRIFTER # SAVE TO TEST FOR DRIFTING FLIGHT LATER
064733,000548: 20,3171 61501 AD ALLOWGTS # NON-ZERO IF DRIFT OR GTS NEAR
064734,000549: 20,3172 10000 CCS A
064735,000550: 20,3173 33653 CA FLATVAL # DRIFTING FLIGHT, STORE .8 IN FLAT
064736,000551: 20,3174 54151 TS FLATEMP # IN POWERED FLIGHT, STORE ZERO IN FLAT
064737,000552: 20,3175 00006 EXTEND
064738,000553: 20,3176 13202 BZF DOPAXIS # IF POWERED AND NO GTS, START P AXIS,
064739,000554: 20,3177 10116 CCS DRIFTER # OTHERWISE SET ZONE3LIM
064740,000555: 20,3200 33652 CA ZONE3MAX # 17.5 MS, SCALED AT 4 SECONDS.
064741,000556: 20,3201 54152 TS Z3TEM
064742,000557:
064743,000558: 20,3202 31530 DOPAXIS CA 1JACC # 1JACC AT PI/4 = 2JACC AT PI/2 =
064744,000559: # ANET AT PI/2 = ANET/ACOAST AT 2(6).
064745,000560: 20,3203 64743 AD BIT9 # 1 + ANET/ACOAST AT 2(6)
064746,000561: 20,3204 54157 TS FUNTEM
064747,000562:
064748,000563: 20,3205 31530 CA 1JACC
Page 1491 |
064750,000565: 20,3206 03570 TC INVERT
064751,000566: 20,3207 00004 INHINT # P AXIS DATA MUST BE CONSISTENT
064752,000567: 20,3210 55551 TS 1/ANETP # SCALED AT 2(7)/PI.
064753,000568: 20,3211 55552 TS 1/ANETP +1
064754,000569:
064755,000570: 20,3212 44743 CS BIT9 # -1 AT 2(6)
064756,000571: 20,3213 00006 EXTEND
064757,000572: 20,3214 71551 MP 1/ANETP # -1/ANET AT 2(13)/PI
064758,000573: 20,3215 00006 EXTEND
064759,000574: 20,3216 10157 DV FUNTEM # -1/(ANET + ANET**2/ACOAST) AT 2(7)/PI
064760,000575: 20,3217 55557 TS PACCFUN
064761,000576: 20,3220 55560 TS PACCFUN +1
064762,000577:
064763,000578: 20,3221 34733 CA 1/.03 # NO AOS FOR P AXIS, ACOAST = AMIN
064764,000579: 20,3222 55553 TS 1/ACOSTP
064765,000580: 20,3223 55554 TS 1/ACOSTP +1
064766,000581: 20,3224 00003 RELINT
064767,000582:
064768,000583: 20,3225 22007 ZL
064769,000584: 20,3226 10116 CCS DRIFTER
064770,000585: 20,3227 53544 DXCH AOSU # ZERO AOSU,V IF IN DRIFT, JUST TO BE SURE
064771,000586:
064772,000587: 20,3230 34755 UAXIS CA ZERO # DO U AXIS COMPUTATIONS
064773,000588: 20,3231 54154 TS UV # ZERO FOR U AXIS, ONE FOR V AXIS.
064774,000589:
064775,000590: 20,3232 54163 BOTHAXES TS SIGNAOS # CODING COMMON TO U,V AXES
064776,000591: 20,3233 50154 INDEX UV
064777,000592: 20,3234 11543 CCS AOSU # PICK UP ABS(AOSU OR AOSV)
064778,000593: 20,3235 64753 AD ONE # RESTORE TO PROPER VALUE
064779,000594: 20,3236 13241 TCF +3 # AND LEAVE SIGNAOS AT ZERO
064780,000595: 20,3237 64753 AD ONE # NEGATIVE, RESTORE TO PROPER VALUE
064781,000596: 20,3240 24163 INCR SIGNAOS # AND SET SIGNAOS TO ONE TO SHOW AOS NEG
064782,000597: 20,3241 54162 TS ABSAOS # SAVE ABS(AOS)
064783,000598: 20,3242 40163 CS SIGNAOS
064784,000599: 20,3243 54164 TS -SIGNAOS # USED AS AN INDEX
064785,000600:
064786,000601: 20,3244 31346 CA DBVAL1 # SET DB1, DB2 TO DBVAL1 (= DB)
064787,000602: 20,3245 54143 TS DBB1
064788,000603: 20,3246 54144 TS DBB2
064789,000604:
064790,000605: 20,3247 30162 CA ABSAOS # TEST MAGNITUDE OF ABS(AOS)
064791,000606: 20,3250 63654 AD -.03R/S2
064792,000607: 20,3251 00006 EXTEND
064793,000608: 20,3252 63322 BZMF NOTMUCH # ABS(AOS) LESS THAN AMIN
064794,000609: 20,3253 10151 BIGAOS CCS FLATEMP # AGS(AOS) GREATER THAN AMIN
064795,000610: 20,3254 13265 TCF SKIPDB1 # I DRIFT OR GTS, DO NOT COMPUTE DB
064796,000611:
064797,000612: 20,3255 31346 CA DBVAL1
064798,000613: 20,3256 50164 INDEX -SIGNAOS
Page 1492 |
064800,000615: 20,3257 26144 ADS DBB2 # DB2(1) = 2 DB
064801,000616: 20,3260 50163 INDEX SIGNAOS
064802,000617: 20,3261 54145 TS DBB4 # DB4(3) = 1 DB
064803,000618: 20,3262 30114 CA DBVAL2
064804,000619: 20,3263 50164 INDEX -SIGNAOS
064805,000620: 20,3264 54146 TS DBB3 # DB3(4) = -.75 DB
064806,000621:
064807,000622: 20,3265 30162 SKIPDB1 CA ABSAOS # ABS(AOS) GREATER THAN AMIN, SO IT IS
064808,000623: 20,3266 03570 TC INVERT # ALL RIGHT TO DIVIDE
064809,000624: 20,3267 50164 INDEX -SIGNAOS
064810,000625: 20,3270 54130 TS 1/ACOSTT +1 # 1/ACOASTPOS(NEG) = 1/ABS(AOS)
064811,000626: 20,3271 34733 CA 1/.03
064812,000627: 20,3272 50163 INDEX SIGNAOS
064813,000628: 20,3273 54127 TS 1/ACOSTT # 1/ACOASTNEG(POS) = 1/AMIN
064814,000629:
064815,000630: 20,3274 30162 CA ABSAOS
064816,000631: 20,3275 61533 AD 1JACCU
064817,000632: 20,3276 61533 AD 1JACCU # 2 JACC + ABS(AOS)
064818,000633: 20,3277 64743 AD BIT9 # MAXIMUM VALUE IN COMPUTATIONS
064819,000634: 20,3300 54000 TS A # TEST FOR OVERFLOW
064820,000635: 20,3301 13346 TCF SKIPDB2 # NO OVERFLOW, DO NORMAL COMPUTATION
064821,000636:
064822,000637: 20,3302 30162 CA ABSAOS # RESCALE TO PI TO PREVENT OVERFLOW
064823,000638: 20,3303 00006 EXTEND
064824,000639: 20,3304 74736 MP BIT14
064825,000640: 20,3305 61533 AD 1JACCU # 1 JACC AT PI/2 = 2JACC AT PI
064826,000641: 20,3306 54157 TS ANET # ANETPOS(NEG) MAX SCALED AT PI =
064827,000642: # ANETPOS(NEG) MAX/ACOASTNEG(POS) AT 2(7)
064828,000643: 20,3307 64744 AD BIT8 # 1 + ANETPOS/ACOASTNEG AT 2(7)
064829,000644: 20,3310 56157 XCH ANET # SAVE IN ANET, WHILE PICKING UP ANET
064830,000645: 20,3311 03570 TC INVERT
064831,000646: 20,3312 00006 EXTEND
064832,000647: 20,3313 74736 MP BIT14 # SCALE 1/ANET AT 2(7)/PI
064833,000648: 20,3314 54160 TS 1/ANET
064834,000649:
064835,000650: 20,3315 33321 CA ACCHERE # SET UP RETURN FROM COMPUTATION ROUTINE
064836,000651: 20,3316 54161 TS ARET
064837,000652: 20,3317 44744 CS BIT8 # -1 AT 2(7)
064838,000653: 20,3320 13623 TCF DOACCFUN # FINISH ACCFUN COMPUTATION
064839,000654:
064840,000655: 20,3321 13353 ACCHERE TCF ACCTHERE
064841,000656:
064842,000657:
064843,000658: 20,3322 54001 NOTMUCH TS L # ABS(AOS) LESS THAN AMIN, SAVE IN L
064844,000659: 20,3323 34733 CA 1/.03 # ACOASTPOS,NEG = AMIN
064845,000660: 20,3324 54127 TS 1/ACOSTT
064846,000661: 20,3325 54130 TS 1/ACOSTT +1
064847,000662:
064848,000663: 20,3326 10151 CCS FLATEMP
064849,000664: 20,3327 13346 TCF SKIPDB2 # DO NOT COMPUTE DB IF DRIFT OR GTS
064850,000665:
Page 1493 |
064852,000667: 20,3330 34744 CA .0125RS # AMIN/2
064853,000668: 20,3331 60001 AD L # L HAS ABS(AOS) - AMIN
064854,000669: 20,3332 00006 EXTEND # RESULT IS ABS(AOS)- AMIN/2
064855,000670: 20,3333 63343 BZMF NOAOS # ABS(AOS) LESS THAN AMIN/2
064856,000671:
064857,000672: 20,3334 30115 SOMEAOS CA DBVAL3 # AMIN/2 LT ABS(AOS) LT AMIN
064858,000673: 20,3335 50164 INDEX -SIGNAOS
064859,000674: 20,3336 54146 TS DBB3 # DB3(4) = DB/2
064860,000675: 20,3337 60000 AD A
064861,000676: 20,3340 50163 INDEX SIGNAOS
064862,000677: 20,3341 54145 TS DBB4 # DB4(3) = DB
064863,000678: 20,3342 13346 TCF SKIPDB2
064864,000679:
064865,000680: 20,3343 31346 NOAOS CA DBVAL1
064866,000681: 20,3344 54146 TS DBB3 # DB3,4 = DB
064867,000682: 20,3345 54145 TS DBB4
064868,000683:
064869,000684: 20,3346 30162 SKIPDB2 CA ABSAOS # ANETPOS(NEG) MAX = 2 JACC + ABS(AOS)
064870,000685: 20,3347 61533 AD 1JACCU
064871,000686: 20,3350 61533 AD 1JACCU
064872,000687: 20,3351 54157 TS ANET # CONNOT OVERFLOW HERE
064873,000688: 20,3352 03614 CL1/NET+ TC DO1/NET+ # COMPUTE 1/ANET, ACCFUN
064874,000689:
064875,000690: 20,3353 50164 ACCTHERE INDEX -SIGNAOS
064876,000691: 20,3354 54134 TS Z5TEM +2 # STORE ACCFUN IN TEMPORARY BUFFER
064877,000692: 20,3355 30160 CA 1/ANET
064878,000693: 20,3356 50164 INDEX -SIGNAOS
064879,000694: 20,3357 54126 TS 1/ATEM2 +2 # STORE 1/ANET IN TEMPORARY BUFFER
064880,000695:
064881,000696: 20,3360 30162 CA ABSAOS # SEE IF OVERFLOW IN MIN CASE
064882,000697: 20,3361 61533 AD 1JACCU
064883,000698: 20,3362 64743 AD BIT9 # MAXIMUM POSSIBLE VALUE
064884,000699: 20,3363 54000 TS A # OVERFLOW POSSIBLE BUT REMOTE
064885,000700: 20,3364 13366 TCF +2
064886,000701: 20,3365 34733 CA POSMAX # IF OVERFLOW, TRUNCATE TO PI/2
064887,000702: 20,3366 63654 AD -.03R/S2 # RESTORE TO CORRECT VALUE
064888,000703: 20,3367 54157 TS ANET
064889,000704: 20,3370 03614 TC DO1/NET+ # COMPUTE 1/ANET, ACCFUN
064890,000705:
064891,000706: 20,3371 50164 INDEX -SIGNAOS # STORE MIN VALUES JUST AS MAX VALUES
064892,000707: 20,3372 54132 TS Z5TEM
064893,000708: 20,3373 30160 CA 1/ANET
064894,000709: 20,3374 50164 INDEX -SIGNAOS
064895,000710: 20,3375 54124 TS 1/ATEM2
064896,000711:
064897,000712: 20,3376 40162 CS ABSAOS # NOW DO NEG(POS) CASES
064898,000713: 20,3377 61533 AD 1JACCU
064899,000714: 20,3400 61533 AD 1JACCU # ANETNEG(POS) MAX
064900,000715: 20,3401 03602 TC 1/ANET- # COMPUTE 1/ANET, ACCFUN, AND ACCSW
Page 1494 |
064902,000717: 20,3402 50163 INDEX SIGNAOS # STORE NEG(POS) VALUES JUST AS POS(NEG)
064903,000718: 20,3403 54133 TS Z1TEM +2
064904,000719: 20,3404 54001 TS L # SAVE IN L FOR POSSIBLE FUTURE USE
064905,000720: 20,3405 30160 CA 1/ANET
064906,000721: 20,3406 50163 INDEX SIGNAOS
064907,000722: 20,3407 54125 TS 1/ATEM1 +2
064908,000723: 20,3410 40162 CS ABSAOS
064909,000724: 20,3411 61533 AD 1JACCU # 1/ANETNEG(POS) MIN
064910,000725: 20,3412 54157 TS ANET
064911,000726: 20,3413 63654 AD -.03R/S2 # TEST FOR AMIN
064912,000727: 20,3414 00006 EXTEND # IF ANET LESS THAN AMIN, STORE MAX JET
064913,000728: 20,3415 63633 BZMF FIXMIN # VALUES FOR MIN JETS AND SET ACCSW
064914,000729:
064915,000730: 20,3416 03610 TC 1/NETMIN # OTHERWISE DO MIN JET COMPUTATIONS
064916,000731: 20,3417 50163 STMIN- INDEX SIGNAOS # STORE VALUES
064917,000732: 20,3420 54131 TS Z1TEM
064918,000733: 20,3421 30160 CA 1/ANET
064919,000734: 20,3422 50163 INDEX SIGNAOS
064920,000735: 20,3423 54123 TS 1/ATEM1
064921,000736:
064922,000737: 20,3424 50154 INDEX UV
064923,000738: 20,3425 33660 CA +UMASK
064924,000739: 20,3426 71262 MASK CH5MASK # TEST FOR +U (+V) JET FAILURES
064925,000740: 20,3427 00006 EXTEND
064926,000741: 20,3430 13435 BZF FAIL-
064927,000742: 20,3431 30124 CA 1/ATEM2 # REPLACE FUNCTION VALUES DEPENDING ON THE
064928,000743: 20,3432 54126 TS 1/ATEM2 +2 # FAILED JET PAIR WITH CORRESPONDING ONE-
064929,000744: 20,3433 30132 CA Z5TEM # JET (OR AMIN) FUNCTION VALUES
064930,000745: 20,3434 54134 TS Z5TEM +2
064931,000746: 20,3435 50154 FAIL- INDEX UV
064932,000747: 20,3436 33656 CA -UMASK
064933,000748: 20,3437 71262 MASK CH5MASK # TEST FOR -U (-V) JET FAILURES
064934,000749: 20,3440 00006 EXTEND
064935,000750: 20,3441 13446 BZF DBFUN
064936,000751: 20,3442 30123 CA 1/ATEM1 # REPLACE FUNCTION VALUES DEPENDING ON THE
064937,000752: 20,3443 54125 TS 1/ATEM1 +2 # FAILED JET PAIR WITH CORRESPONDING ONE-
064938,000753: 20,3444 30131 CA Z1TEM # JET (OR AMIN) FUNCTION VALUES
064939,000754: 20,3445 54133 TS Z1TEM +2
064940,000755:
064941,000756: 20,3446 40146 DBFUN CS DBB3 # COMPUTE AXISDIST
064942,000757: 20,3447 60143 AD DBB1
064943,000758: 20,3450 60151 AD FLATEMP
064944,000759: 20,3451 54147 TS AXDSTEM
064945,000760: 20,3452 40145 CS DBB4
064946,000761: 20,3453 60144 AD DBB2
064947,000762: 20,3454 60151 AD FLATEMP
064948,000763: 20,3455 54150 TS AXDSTEM +1
064949,000764:
Page 1495 |
064951,000766: 20,3456 00004 INHINT
064952,000767: 20,3457 10154 CCS UV # TEST FOR U OR V AXIS
064953,000768: 20,3460 13502 TCF STORV # V AXIS STORE V VALUES
064954,000769:
064955,000770: 20,3461 30122 CA ACCSW # U AXIS STORE U VALUES
064956,000771: 20,3462 55547 TS ACCSWU
064957,000772:
064958,000773: 20,3463 34320 CA NINE # TRANSFER 10 WORDS VIA GENTRAN
064959,000774: 20,3464 05545 TC GENTRAN +1
064960,000775: 20,3465 00123 ADRES 1/ATEM1 # TEMPORARY BUFFER
064961,000776: 20,3466 01567 ADRES 1/ANET1 # THE REAL PLACE
064962,000777:
064963,000778: 20,3467 00003 RELINT
064964,000779: 20,3470 52144 DXCH DBB1 # SAVE U DBS FOR LATER STORING
064965,000780: 20,3471 52136 DXCH UDB1
064966,000781: 20,3472 52146 DXCH DBB4
064967,000782: 20,3473 52140 DXCH UDB4
064968,000783:
064969,000784: 20,3474 52150 DXCH AXDSTEM
064970,000785: 20,3475 52142 DXCH UAXDIST
064971,000786:
064972,000787: 20,3476 34753 CA ONE # NOW DO V AXIS
064973,000788: 20,3477 54154 TS UV
064974,000789: 20,3500 34755 CA ZERO
064975,000790: 20,3501 13232 TCF BOTHAXES # AND DO IT AGAIN
064976,000791:
064977,000792: 20,3502 30122 STORV CA ACCSW # STORE V AXIS VALUES
064978,000793: 20,3503 55550 TS ACCSWV
064979,000794: 20,3504 34320 CA NINE
064980,000795: 20,3505 05545 TC GENTRAN +1
064981,000796: 20,3506 00123 ADRES 1/ATEM1 # TEMPORARY BUFFER
064982,000797: 20,3507 01607 ADRES 1/ANET1 +16D # THE REAL PLACE
064983,000798:
064984,000799: # NOW STORE DEADBANDS FOR ALL AXES
064985,000800: 20,3510 52152 DXCH FLATEMP # FLAT AND ZONE3LIM
064986,000801: 20,3511 53556 DXCH FLAT
064987,000802:
064988,000803: 20,3512 31346 CA DBVAL1 # COMPUTE P AXIS DEADBANDS
064989,000804: 20,3513 55561 TS PDB1
064990,000805: 20,3514 55562 TS PDB2
064991,000806: 20,3515 61555 AD FLAT
064992,000807: 20,3516 55564 TS PDB3
064993,000808: 20,3517 55563 TS PDB4
064994,000809: 20,3520 34755 CA ZERO
064995,000810: 20,3521 55565 TS PAXDIST
064996,000811: 20,3522 55566 TS PAXDIST +1
064997,000812:
064998,000813: 20,3523 11555 CCS FLAT
064999,000814: 20,3524 13542 TCF DRFDB # DRIFT OR GTS - COMPUTE DBS
065000,000815:
Page 1496 |
065002,000817: 20,3525 52136 DXCH UDB1 # STORE U DEADBANDS
065003,000818: 20,3526 53602 DXCH FIREDB # CANNOT USE GENTRAN BECAUSE OF RELINT
065004,000819: 20,3527 52140 DXCH UDB4
065005,000820: 20,3530 53604 DXCH COASTDB
065006,000821: 20,3531 52142 DXCH UAXDIST
065007,000822: 20,3532 53606 DXCH AXISDIST
065008,000823: 20,3533 52144 DXCH DBB1 # STORE V AXIS DEADBANDS
065009,000824: 20,3534 53622 DXCH FIREDB +16D # COULD USE GENTRAN IF DESIRED
065010,000825: 20,3535 52146 DXCH DBB4
065011,000826: 20,3536 53624 DXCH COASTDB +16D
065012,000827: 20,3537 52150 DXCH AXDSTEM
065013,000828: 20,3540 53626 DXCH AXISDIST +16D
065014,000829:
065015,000830: 20,3541 13562 TCF 1/ACCRET +1 # ALL DONE
065016,000831: 20,3542 31346 DRFDB CA DBVAL1 # DRIFT DEADBANDS
065017,000832: 20,3543 55601 TS FIREDB
065018,000833: 20,3544 55602 TS FIREDB +1
065019,000834: 20,3545 55621 TS FIREDB +16D
065020,000835: 20,3546 55622 TS FIREDB +17D
065021,000836: 20,3547 61555 AD FLAT
065022,000837: 20,3550 55603 TS COASTDB
065023,000838: 20,3551 55604 TS COASTDB +1
065024,000839: 20,3552 55623 TS COASTDB +16D
065025,000840: 20,3553 55624 TS COASTDB +17D
065026,000841: 20,3554 34755 CA ZERO
065027,000842: 20,3555 55605 TS AXISDIST
065028,000843: 20,3556 55606 TS AXISDIST +1
065029,000844: 20,3557 55625 TS AXISDIST +16D
065030,000845: 20,3560 55626 TS AXISDIST +17D
065031,000846:
065032,000847: 20,3561 00004 1/ACCRET INHINT
065033,000848: 20,3562 40111 CS DAPBOOLS # SET BIT TO INDICATE DATA GOOD.
065034,000849: 20,3563 74751 MASK ACCSOKAY
065035,000850: 20,3564 26111 ADS DAPBOOLS
065036,000851: 20,3565 00003 RELINT
065037,000852: 20,3566 30117 CA ACCRETRN
065038,000853: 20,3567 04640 TC BANKJUMP # RETURN TO CALLER
065039,000854:
065040,000855: 20,3570 54165 INVERT TS HOLD # ROUTINE TO INVERT -INPUT AT PI/2
065041,000856: 20,3571 34743 CA BIT9 # 1 AT 2(6)
065042,000857: 20,3572 22007 ZL # ZERO L FOR ACCURACY AND TO PREVENT OVFLO
065043,000858: 20,3573 00006 EXTEND
065044,000859: 20,3574 10165 DV HOLD
065045,000860: 20,3575 00002 TC Q # RESULT AT 2(7)/PI
065046,000861:
065047,000862: 20,3576 34755 DOWNGTS CAF ZERO # ZERO SWITCHES WHEN USEQRJTS BIT IS UP
065048,000863: 20,3577 55501 TS ALLOWGTS # OR DAP IS OFF.
065049,000864: 20,3600 55631 TS INGTS
065050,000865: 20,3601 12721 TCF DOCKTEST
065051,000866:
Page 1497 |
065053,000868: 20,3602 22007 1/ANET- ZL
065054,000869: 20,3603 22122 LXCH ACCSW # ZERO ACCSW
065055,000870: 20,3604 54157 TS ANET # SAVE ANET
065056,000871: 20,3605 63654 AD -.03R/S2 # TEST FOR MIN VALUE
065057,000872: 20,3606 00006 EXTEND
065058,000873: 20,3607 63630 BZMF NETNEG # ANET LESS THAN AMIN, SO FAKE IT
065059,000874: 20,3610 30157 1/NETMIN CA ANET
065060,000875: 20,3611 00006 EXTEND
065061,000876: 20,3612 50164 INDEX -SIGNAOS
065062,000877: 20,3613 70130 MP 1/ACOSTT +1 # ANETNEG(POS)/ACOASTPOS(NEG) AT 2(6)
065063,000878:
065064,000879: # THE FOLLOWING CODING IS VALID FOR BOTH POS OR NEG
065065,000880: # VALUES OF AOS
065066,000881:
065067,000882: 20,3614 64743 DO1/NET+ AD BIT9 # 1 + ANET/ACOAST AT 2(6)
065068,000883: 20,3615 56157 XCH ANET # SAVE AND PICK UP ANET
065069,000884: 20,3616 00006 EXTEND
065070,000885: 20,3617 22161 QXCH ARET # SAVE RETURN
065071,000886: 20,3620 03570 TC INVERT
065072,000887: 20,3621 54160 TS 1/ANET # 1/ANET AT 2(7)/PI
065073,000888: 20,3622 44743 CS BIT9 # -1 AT 2(6)
065074,000889: 20,3623 00006 DOACCFUN EXTEND
065075,000890: 20,3624 70160 MP 1/ANET # -1/ANET AT 2(13)/PI
065076,000891: 20,3625 00006 EXTEND
065077,000892: 20,3626 10157 DV ANET # ACCFUN AT 2(7)/PI
065078,000893: 20,3627 00161 TC ARET # RETURN
065079,000894:
065080,000895: 20,3630 43654 NETNEG CS -.03R/S2 # ANET LESS THAN AMIN - SET EQUAL TO AMIN
065081,000896: 20,3631 54157 TS ANET
065082,000897: 20,3632 13611 TCF 1/NETMIN +1 # CONTINUE AS IF NOTHING HAPPENED
065083,000898:
065084,000899: 20,3633 10163 FIXMIN CCS SIGNAOS
065085,000900: 20,3634 34752 CA TWO # IF AOS NEG, ACCSW = +1
065086,000901: 20,3635 67746 AD NEGONE # IF AOS POS, ACCSW = -1
065087,000902: 20,3636 54122 TS ACCSW
065088,000903: 20,3637 60154 AD UV # IF ACCSW = +1, TEST FOR +U (+V) JET FAIL
065089,000904: 20,3640 50000 INDEX A # IF ACCSW = -1, TEST FOR -U (-V) JET FAIL
065090,000905: 20,3641 33657 CA -UMASK +1
065091,000906: 20,3642 71262 MASK CH5MASK
065092,000907: 20,3643 00006 EXTEND
065093,000908: 20,3644 13650 BZF +4
065094,000909: 20,3645 43654 CS -.03R/S2 # JET FAILURE - CANNOT USE 2-JET VALUES
065095,000910: 20,3646 54157 TS ANET # ANET = AMIN
065096,000911: 20,3647 13416 TCF STMIN- -1 # CALCULATE FUNCTIONS USING AMIN
065097,000912: 20,3650 30001 CA L # L HAS ACCFUN
065098,000913: 20,3651 13417 TCF STMIN- # STORE MAX VALUES FOR MIN JETS
065099,000914:
065100,000915: # ERASABLE ASSIGNMENTS FOR 1/ACCONT
Page 1498 |
065102,000917: 20,3652 E6,1551 1/ANETP EQUALS BLOCKTOP +2
065103,000918: 20,3652 E6,1553 1/ACOSTP EQUALS BLOCKTOP +4
065104,000919: 20,3652 E6,1557 PACCFUN EQUALS BLOCKTOP +8D
065105,000920: 20,3652 E6,1561 PDB1 EQUALS BLOCKTOP +10D
065106,000921: 20,3652 E6,1562 PDB2 EQUALS BLOCKTOP +11D
065107,000922: 20,3652 E6,1563 PDB4 EQUALS BLOCKTOP +12D
065108,000923: 20,3652 E6,1564 PDB3 EQUALS BLOCKTOP +13D
065109,000924: 20,3652 E6,1565 PAXDIST EQUALS BLOCKTOP +14D
065110,000925:
065111,000926: 20,3652 0122 ACCSW EQUALS VBUF # EXECUTIVE TEMPORARIES
065112,000927: # CANNOT DO CCS NEWJOB DURING 1/ACCS
065113,000928: 20,3652 0123 1/ATEM1 EQUALS ACCSW +1 # TEMP BUFFER FOR U AND V AXES
065114,000929: 20,3652 0124 1/ATEM2 EQUALS 1/ATEM1 +1
065115,000930: 20,3652 0127 1/ACOSTT EQUALS 1/ATEM1 +4
065116,000931: 20,3652 0131 Z1TEM EQUALS 1/ATEM1 +6
065117,000932: 20,3652 0132 Z5TEM EQUALS 1/ATEM1 +7
065118,000933:
065119,000934: 20,3652 0135 UDB1 EQUALS 1/ATEM1 +10D # UAXIS DEADBAND BUFFER
065120,000935: 20,3652 0136 UDB2 EQUALS 1/ATEM1 +11D
065121,000936: 20,3652 0137 UDB4 EQUALS 1/ATEM1 +12D
065122,000937: 20,3652 0140 UDB3 EQUALS 1/ATEM1 +13D
065123,000938: 20,3652 0141 UAXDIST EQUALS 1/ATEM1 +14D
065124,000939:
065125,000940: 20,3652 0143 DBB1 EQUALS 1/ATEM1 +16D # TEMP DEADBAND BUFFER, ALSO V AXIS
065126,000941: 20,3652 0144 DBB2 EQUALS 1/ATEM1 +17D
065127,000942: 20,3652 0145 DBB4 EQUALS 1/ATEM1 +18D
065128,000943: 20,3652 0146 DBB3 EQUALS 1/ATEM1 +19D
065129,000944: 20,3652 0147 AXDSTEM EQUALS 1/ATEM1 +20D
065130,000945:
065131,000946: 20,3652 0151 FLATEMP EQUALS 1/ATEM1 +22D
065132,000947: 20,3652 0152 Z3TEM EQUALS 1/ATEM1 +23D # MUST FOLLOW FLATEMP
065133,000948:
065134,000949: 20,3652 1346 DBVAL1 EQUALS DB
065135,000950: 20,3652 0114 DBVAL2 EQUALS INTB15+
065136,000951: 20,3652 0115 DBVAL3 EQUALS INTB15+ +1
065137,000952:
065138,000953: 20,3652 0116 DRIFTER EQUALS INTB15+ +2
065139,000954:
065140,000955: 20,3652 0154 UV EQUALS MPAC
065141,000956: 20,3652 0157 ANET EQUALS MPAC +3
065142,000957: 20,3652 0157 FUNTEM EQUALS MPAC +3
065143,000958: 20,3652 0160 1/ANET EQUALS MPAC +4
065144,000959: 20,3652 0161 ARET EQUALS MPAC +5
065145,000960: 20,3652 0162 ABSAOS EQUALS MPAC +6
065146,000961: 20,3652 0163 SIGNAOS EQUALS MPAC +7
065147,000962: 20,3652 0164 -SIGNAOS EQUALS MPAC +8D
065148,000963: 20,3652 0165 HOLD EQUALS MPAC +9D
065149,000964: 20,3652 0117 ACCRETRN EQUALS FIXLOC -1
065150,000965:
Page 1499 |
065152,000967: 20,3652 00110 ZONE3MAX DEC .004375 # 17.5 MS (35 MS FOR 1 JET) AT 4 SECONDS
065153,000968: 20,3653 00443 FLATVAL DEC .01778 # .8 AT PI/4 RAD
065154,000969: 20,3654 77377 -.03R/S2 OCT 77377 # -PI/2(7) AT PI/2
065155,000970:
065156,000971: 20,3655 4744 .0125RS EQUALS BIT8 # PI/2(+8) AT PI/2
065157,000972: 20,3655 4733 1/.03 EQUALS POSMAX # 2(7)/PI AT 2(7)/PI
065158,000973:
065159,000974: 20,3655 02210 PAXISADR GENADR PAXIS
065160,000975:
065161,000976: # THE FOLLOWING 4 CONSTANTS ARE JET
065162,000977: # FAILURE MASKS AND ARE INDEXED
065163,000978: 20,3656 00110 -UMASK OCT 00110 # -U
065164,000979: 20,3657 00022 OCT 00022 # -V
065165,000980: 20,3660 00204 +UMASK OCT 00204 # +U
065166,000981: 20,3661 00041 OCT 00041 # +V
065167,000982:
End of include-file AOSTASK_AND_AOSJOB.agc. Parent file is MAIN.agc