Source Code

These source-code files are part of a reconstructed copy of Luminary 98, a development version of the Apollo 11 Lunar Module (LM) Apollo Guidance Computer (AGC) software.

The reconstruction began with source code of Luminary 99 revision 1 previously transcribed from a digitized copy of that program. The code was then updated by undoing changes described in original Luminary memo 85, using asterisks indicating changed lines in the listing as a guide. While no listing of this version is known to exist, nor are the memory-bank checksums available, the reconstruction is believed to be correct because it was an an intermediate step in reconstructing Luminary 97 whose reconstruction was verified by matching memory-bank checksums to those listed in drawing 2021152G. Note that page numbers in the reconstructed code match those on the Luminary 099 revision 001 printout, although the added code would likely have changed page numbers for a real Luminary 98 listing.

Comments from the original source code are prefixed with a single '#' symbol, whereas comments added later are prefixed by "##" or "###". Report any errors noted by creating an issue report at the Virtual AGC project's GitHub repository.

061427,000002:                                                                                                  ## Copyright:   Public domain.
061428,000003:                                                                                                  ## Filename:    TJET_LAW.agc
061429,000004:                                                                                                  ## Purpose:     A section of Luminary revision 98.
061430,000005:                                                                                                  ##              It is part of the reconstructed source code for the a
061431,000006:                                                                                                  ##              development version of the flight software for the Lunar 
061432,000007:                                                                                                  ##              Module's (LM) Apollo Guidance Computer (AGC) for Apollo 11.
061433,000008:                                                                                                  ##              The code has been recreated from a copy of Luminary 99
061434,000009:                                                                                                  ##              revision 001, using asterisks indicating changed lines in
061435,000010:                                                                                                  ##              the listing and Luminary Memo #85, which lists changes between
061436,000011:                                                                                                  ##              Luminary 98 and 99.
061437,000012:                                                                                                  ## Reference:   pp. 1460-1469
061438,000013:                                                                                                  ## Assembler:   yaYUL
061439,000014:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
061440,000015:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
061441,000016:                                                                                                  ## Mod history: 2019-07-28 MAS  Created from Luminary 99.
061442,000017: 

Page 1460

061444,000019:                                                                                                  #  PROGRAM DESCRIPTION
061445,000020:                                                                                                  #  DESIGNED BY:  R. D. GOSS AND P. S. WEISSMAN
061446,000021:                                                                                                  #  CODED BY:  P. S. WEISSMAN 28 FEBRUARY 1968
061447,000022: 
061448,000023:                                                                                                  #  TJETLAW IS CALLED AS A SUBROUTINE WHEN THE LEM IS NOT DOCKED AND THE AUTOPILOT IS IN THE AUTOMATIC OR
061449,000024:                                                                                                  #  ATTITUDE-HOLD MODE TO CALCULATE THE JET-FIRING-TIME (TJET) REQUIRED FOR THE AXIS INDICATED BY AXISCTR:
061450,000025:                                                                                                  #        -1      INDICATES THE P-AXIS
061451,000026:                                                                                                  #        +0      INDICATES THE U-AXIS
061452,000027:                                                                                                  #        +1      INDICATES THE V-AXIS.
061453,000028:                                                                                                  #  THE REGISTERS E AND EDOT CONTAIN THE APPROPRIATE ATTITUDE ERROR AND ERROR RATE AND SENSETYP SHOWS WHETHER
061454,000029:                                                                                                  #  UNBALANCED COUPLES ARE PREFERRED.  TJETLAW ALSO USES VARIOUS FUNCTIONS OF ACCELERATION AND DEADBAND WHICH ARE
061455,000030:                                                                                                  #  COMPUTED IN THE 1/ACCONT SECTION OF 1/ACCS AND ARE STORED IN SUCH AN ORDER THAT THEY CAN BE CONVENIENTLY
061456,000031:                                                                                                  #  ACCESSED BY INDEXING.
061457,000032: 
061458,000033:                                                                                                  #  THE SIGN OF THE REQUIRED ROTATION IS CARRIED THROUGH TJETLAW AS ROTSENSE AND IS FINALLY APPLIED TO TJET JUST
061459,000034:                                                                                                  #  PREVIOUS TO ITS STORAGE IN THE LOCATION CORRESPONDING TO THE AXIS (TJP, TJU OR TJV).  THE NUMBER OF JETS THAT
061460,000035:                                                                                                  #  TJETLAW ASSUMES WILL BE USED IS INDICATED BY THE SETTING OF NUMBERT FOR THE U- OR V-AXIS.  TWO JETS ARE ALWAYS
061461,000036:                                                                                                  #  ASSUMED FOR THE P-AXIS ALTHOUGH FOUR JETS WILL BE FIRED WHEN FIREFCT IS MORE NEGATIVE THAN -4.0 DEGREES
061462,000037:                                                                                                  #  (FIREFCT IS THE DISTANCE TO A SWITCH CURVE IN THE PHASE PLANE) AND A LONG FIRING IS CALLED FOR.
061463,000038: 
061464,000039:                                                                                                  #  IN ORDER TO AVOID SCALING DIFFICULTIES, SIMPLE ALGORITHMS TAGGED RUFLAW1, -2 AND -3 ARE RESORTED TO WHEN THE
061465,000040:                                                                                                  #  ERROR AND/OR ERROR RATE ARE LARGE.
061466,000041: 
061467,000042:                                                                                                  #  CALLING SEQUENCE:
061468,000043:                                                                                                  #                TC      TJETLAW         (MUST BE IN JASK)
061469,000044:                                                                                                  #        OR
061470,000045:                                                                                                  #                INHINT                  (MUST BE IN JASK)
061471,000046:                                                                                                  #                TC      IBNKCALL
061472,000047:                                                                                                  #                CADR    TJETLAW
061473,000048:                                                                                                  #                RELINT
061474,000049: 
061475,000050:                                                                                                  #  EXIT:         RETURN TO Q.
061476,000051: 
061477,000052:                                                                                                  #  INPUT:
061478,000053:                                                                                                  #        FROM THE CALLER:  E, EDOT, AXISCTR, SENSETYP, TJP, -U, -V.
061479,000054:                                                                                                  #        FROM 1/ACCONT:  48 ERASABLES BEGINNING AT BLOCKTOP (INCLUDING FLAT, ZONE3LIM AND ACCSWU, -V).
061480,000055: 
061481,000056:                                                                                                  #  OUTPUT:
061482,000057:                                                                                                  #        TJP, -U OR -V, NUMBERT (DAPTEMP5), FIREFCT (DAPTEMP3).
061483,000058: 
061484,000059:                                                                                                  #  DEBRIS:
061485,000060:                                                                                                  #        A, L, Q, E, EDOT, DAPTEMP1-6, DAPTREG1-4.
061486,000061: 
061487,000062:                                                                                                  #  ALARM:  NONE
061488,000063: 
061489,000064: 17,3252                                           BANK     17                                    
061490,000065: 17,2000                                           SETLOC   DAPS2                                 
061491,000066: 17,2000                                           BANK                                           
061492,000067: 17,3252  E6,1524                                  EBANK=   TJP                                   

Page 1461

061494,000069: 17,3252                                           COUNT*   $$/DAPTJ                              
061495,000070: 
061496,000071: 17,3252           00006        TJETLAW            EXTEND                                         #  SAVE Q FOR RETURN.
061497,000072: 17,3253           23745                           QXCH     HOLDQ                                 
061498,000073: 
061499,000074:                                                                                                  #  SET INDEXERS TO CORRESPOND TO THE AXIS AND TO THE SIGN OF EDOT
061500,000075: 
061501,000076: 17,3254           51505                           INDEX    AXISCTR                               #  AXISDIFF(-1)=NO OF LOCATIONS BER P AND U
061502,000077: 17,3255           33722                           CAF      AXISDIFF                              #  AXISDIFF(0)=0
061503,000078: 17,3256           55746                           TS       ADRSDIF1                              #  AXISDIFF(+1)=NO OF LOCATIONS BET V AND U
061504,000079: 
061505,000080: 17,3257           31427                           CAE      EDOT                                  #  IF EDOT NEGATIVE, PICK UP SET OF VALUES
061506,000081: 17,3260           00006                           EXTEND                                         #        THAT ALLOW USE OF SAME CODING AS FOR
061507,000082: 17,3261           63266                           BZMF     NEGEDOT                               #        POSITIVE EDOT.
061508,000083: 17,3262           31746                           CAE      ADRSDIF1                              #  SET A SECOND INDEXER WHICH MAY BE
061509,000084: 17,3263           55744                           TS       ADRSDIF2                              #        MODIFIED BY A DECISION FOR MAX JETS.
061510,000085: 17,3264           33724                           CAF      SENSOR                                #  FOR POSITIVE EDOT, ROTSENSE IS
061511,000086: 17,3265           13276                           TCF      SETSENSE                              #        INITIALIZED POSITIVE.
061512,000087: 
061513,000088: 17,3266           41752        NEGEDOT            CS       E                                     #  IN ORDER FOR NEG EDOT CASE TO USE CODING
061514,000089: 17,3267           55752                           TS       E                                     #        OF POS EDOT, MUST MODIFY AS FOLLOWS:
061515,000090: 17,3270           41427                           CS       EDOT                                  #        1. COMPLEMENT E AND EDOT.
061516,000091: 17,3271           55427                           TS       EDOT                                  #        2. SET SENSE OF ROTATION TO NEGATIVE
061517,000092: 17,3272           34753                           CAF      BIT1                                  #           (REVERSED LATER IF NECESSARY).
061518,000093: 17,3273           27746                           ADS      ADRSDIF1                              #        3. INCREMENT INDEXERS BY ONE SO THAT
061519,000094: 17,3274           55744                           TS       ADRSDIF2                              #           THE PROPER PARAMETERS ARE ACCESSED.
061520,000095: 17,3275           43724                           CS       SENSOR                                
061521,000096: 17,3276           55740        SETSENSE           TS       ROTSENSE                              
061522,000097: 
061523,000098:                                                                                                  #  TEST MAGNITUDE OF E (ATTITUDE ERROR, SINGLE-PRECISION, SCALED AT PI RADIANS):
061524,000099:                                                                                                  #        IF GREATER THAN (OR EQUAL TO) PI/16 RADIANS, GO TO THE SIMPLIFIED TJET ROUTINE.
061525,000100:                                                                                                  #        IF LESS THAN PI/16 RADIANS, RESCALE TO PI/4.
061526,000101: 
061527,000102: 17,3277           31752                           CAE      E                                     #  PICK UP ATTITUDE ERROR FOR THIS AXIS
061528,000103: 17,3300           00006                           EXTEND                                         
061529,000104: 17,3301           74747                           MP       BIT5                                  #  SHIFT RIGHT TEN BITS:  IF A-REGISTER IS
061530,000105: 17,3302           10000                           CCS      A                                     #        ZERO, RESCALE AND TEST EDOT.
061531,000106: 17,3303           13664                           TCF      RUFLAW2                               
061532,000107: 17,3304           13306                           TCF      SCALEE                                
061533,000108: 17,3305           13630                           TCF      RUFLAW1                               
061534,000109: 17,3306           34737        SCALEE             CAF      BIT13                                 #  ERROR IS IN L SCALED AT PI/16.  RESCALE
061535,000110: 17,3307           00006                           EXTEND                                         #        IT TO PI/4 AND SAVE IT.
061536,000111: 17,3310           70001                           MP       L                                     
061537,000112: 17,3311           55752                           TS       E                                     
061538,000113: 
061539,000114:                                                                                                  #  TEST MAGNITUDE OF EDOT (ERROR RATE SCALED AT PI/4 RADIANS/SECOND)
061540,000115:                                                                                                  #        IF GREATER THAN (OR EQUAL TO) PI/32 RADIANS/SECOND, GO TO THE SIMPLIFIED TJET ROUTINE.
061541,000116:                                                                                                  #        IF LESS THAN PI/32 RADIANS/SECOND, THEN RESCALE TO PI/32 RADIANS/SECOND.
061542,000117: 
061543,000118: 17,3312           31427                           CAE      EDOT                                  #  PICK UP SINGLE-PRECISION ERROR-RATE

Page 1462

061545,000120: 17,3313           00006                           EXTEND                                         #  FOR THIS AXIS=
061546,000121: 17,3314           74750                           MP       BIT4                                  #  SHIFT RIGHT ELEVEN BITS, IF THE A-REG IS
061547,000122: 17,3315           00006                           EXTEND                                         #  ZERO, THEN RESCALE AND USE FINELAW.
061548,000123: 17,3316           13320                           BZF      SCALEDOT                              
061549,000124: 17,3317           13672                           TCF      RUFLAW3                               
061550,000125: 
061551,000126:                                                                                                  #  *** FINELAW STARTS HERE ***
061552,000127: 
061553,000128: 17,3320           23427        SCALEDOT           LXCH     EDOT                                  #  EDOT IS SCALED AT PI/32 RADIANS/SECOND.
061554,000129: 
061555,000130: 17,3321           31427                           CAE      EDOT                                  #  COMPUTE (EDOT)(EDOT)
061556,000131: 17,3322           00006                           EXTEND                                         
061557,000132: 17,3323           70000                           SQUARE                                         #  PRODUCT SCALED AT PI(2)/2(10) RAD/SEC.
061558,000133: 17,3324           00006                           EXTEND                                         
061559,000134: 17,3325           74737                           MP       BIT13                                 #  SHIFT RIGHT TWO BITS TO RESCALE EDOTSQ
061560,000135: 17,3326           55737                           TS       EDOTSQ                                #        TO PI(2)/2(8) RAD(2)/SEC(2).
061561,000136: 
061562,000137: 17,3327           11752        ERRTEST            CCS      E                                     #  DOES BIG ERROR (THREE DEG BEYOND THE
061563,000138: 17,3330           63725                           AD       -3DEG                                 #  DEADBAND) REQUIRE MAXIMUM JETS?
061564,000139: 17,3331           13333                           TCF      +2                                    
061565,000140: 17,3332           63725                           AD       -3DEG                                 
061566,000141: 17,3333           00006                           EXTEND                                         
061567,000142: 17,3334           51746                           INDEX    ADRSDIF1                              
061568,000143: 17,3335           61601                           SU       FIREDB                                
061569,000144: 17,3336           00006                           EXTEND                                         
061570,000145: 17,3337           63344                           BZMF     SENSTEST                              #  IF NOT:  ARE UNBALANCED JETS PREFERRED|
061571,000146: 17,3340           34752        MAXJETS            CAF      TWO                                   #  IF YES:  INCREMENT ADDRESS LOCATOR AND
061572,000147: 17,3341           27744                           ADS      ADRSDIF2                              #           SET SWITCH FOR JET SELECT LOGIC TO 4.
061573,000148: 17,3342           34751                           CAF      FOUR                                  #           (ALWAYS DO THIS FOR P-AXIS)
061574,000149: 17,3343           13347                           TCF      TJCALC                                
061575,000150: 17,3344           11500        SENSTEST           CCS      SENSETYP                              #  DOES TRANSLATION PREFER MIN JETS.
061576,000151: 17,3345           13347                           TCF      TJCALC                                #  YES.  USE MIN-JET PARAMETERS.
061577,000152: 17,3346           13340                           TCF      MAXJETS                               #  NO.  GET MAX-JET PARAMETERS.
061578,000153: 17,3347           55743        TJCALC             TS       NUMBERT                               #  SET TO +0,1,4 FOR (U,V-AXES) JET SELECT.
061579,000154: 
061580,000155:                                                                                                  #  BEGINNING OF TJET CALCULATIONS:
061581,000156: 
061582,000157: 17,3350           41737                           CS       EDOTSQ                                #  SCALED AT PI(2)/2(8).
061583,000158: 17,3351           00006                           EXTEND                                         
061584,000159: 17,3352           51744                           INDEX    ADRSDIF2                              
061585,000160: 17,3353           71567                           MP       1/ANET1                               #  .5/ACC SCALED AT 2(6)/PI SEC(2)/RADIAN.
061586,000161: 17,3354           51746                           INDEX    ADRSDIF1                              
061587,000162: 17,3355           61601                           AD       FIREDB                                #  DEADBAND SCALED AT PI/4 RADIAN.
061588,000163: 17,3356           00006                           EXTEND                                         
061589,000164: 17,3357           61752                           SU       E                                     #  ATTITUDE ERROR SCALED AT PI/4 RADIAN.
061590,000165: 17,3360           55741                           TS       FIREFCT                               #  -E-.5(EDOTSQ)/ACC-DB AT PI/4 RADIAN.
061591,000166: 17,3361           00006                           EXTEND                                         
061592,000167: 17,3362           63542                           BZMF     ZON1,2,3                              
061593,000168: 
061594,000169: 17,3363           51746        ZONE4,5            INDEX    ADRSDIF1                              
061595,000170: 17,3364           31573                           CAE      1/ACOAST                              #  .5/ACC SCALED AT 2(6)/PI WHERE

Page 1463

061597,000172: 17,3365           00006                           EXTEND                                         #  ACC = MAX(AMIN, AOS-).
061598,000173: 17,3366           71737                           MP       EDOTSQ                                #  SCALED AT PI/2(8).
061599,000174: 17,3367           61752                           AD       E                                     #  SCALED AT PI/4
061600,000175: 17,3370           51746                           INDEX    ADRSDIF1                              
061601,000176: 17,3371           61603                           AD       COASTDB                               #  SCALED AT PI/4 POS. FOR NEG. INTERCEPT.
061602,000177: 17,3372           00006                           EXTEND                                         #  TEST E+.5(EDOTSQ)/ACC+DB AT PI/4 RADIAN.
061603,000178: 17,3373           63426                           BZMF     ZONE5                                 #  IF FUNCTION NEGATIVE, FIND TJET.
061604,000179:                                                                                                  #  IF FUNCTION POSITIVE, IN ZONE 4.
061605,000180: 
061606,000181:                                                                                                  #  ZONE 4 IS THE COAST REGION.  HOWEVER, IF THE JETS ARE ON AND DRIVING TOWARD
061607,000182:                                                                                                  #        A. THE AXIS WITHIN + OR - (DB + FLAT) FOR DRIFTING FLIGHT, OR
061608,000183:                                                                                                  #        B. THE USUAL TARGET PARABOLA FOR POWERED FLIGHT
061609,000184:                                                                                                  #  THEN THE THRUSTERS ARE KEPT ON.
061610,000185: 
061611,000186: 17,3374           51505        ZONE4              INDEX    AXISCTR                               #  IS THE CURRENT VALUE IN TJET NON-ZERO
061612,000187: 17,3375           41525                           CS       TJETU                                 #        WITH SENSE OPPOSITE TO EDOT,
061613,000188: 17,3376           00006                           EXTEND                                         #        (I.E., ARE JETS ON AND FIRING TOWARD
061614,000189: 17,3377           71740                           MP       ROTSENSE                              #        THE DESIRABLE STATE).
061615,000190: 17,3400           00006                           EXTEND                                         
061616,000191: 17,3401           63422                           BZMF     COASTTJ                               #  NO.  COAST.
061617,000192: 
061618,000193: 17,3402           11555        JETSON             CCS      FLAT                                  #  YES.  IS THIS DRIFTING OR POWERED FLIGHT|
061619,000194: 17,3403           13414                           TCF      DRIFT/ON                              #  DRIFTING.  GO MAKE FURTHER TEST.
061620,000195: 
061621,000196: 17,3404           41741                           CS       FIREFCT                               #  POWERED (OR ULLAGE).  CAN TARGET PARABOLA
061622,000197: 17,3405           51746                           INDEX    ADRSDIF1                              #        BE REACHED FROM THIS POINT IN THE
061623,000198: 17,3406           61605                           AD       AXISDIST                              #        PHASE PLANE|
061624,000199: 17,3407           00006                           EXTEND                                         
061625,000200: 17,3410           63422                           BZMF     COASTTJ                               #  NO. SET TJET = 0.
061626,000201: 17,3411           03526                           TC       Z123COMP                              #  YES.  CALCULATE TJET AS THOUGH IN ZONE 1
061627,000202: 17,3412           31741                           CAE      FIREFCT                               #        AFTER COMPUTING THE REQUIRED
061628,000203: 17,3413           13562                           TCF      ZONE1                                 #        PARAMETERS.
061629,000204: 
061630,000205: 17,3414           51746        DRIFT/ON           INDEX    ADRSDIF1                              #  CAN TARGET STRIP OF AXIS BE REACHED FROM
061631,000206: 17,3415           41601                           CS       FIREDB                                #        THIS POINT IN THE PHASE PLANE|
061632,000207: 17,3416           60000                           DOUBLE                                         
061633,000208: 17,3417           61741                           AD       FIREFCT                               
061634,000209: 17,3420           00006                           EXTEND                                         
061635,000210: 17,3421           63424                           BZMF     +3                                    
061636,000211: 17,3422           34755        COASTTJ            CAF      ZERO                                  #  NO.  SET TJET = 0.
061637,000212: 17,3423           13466                           TCF      RETURNTJ                              
061638,000213: 
061639,000214: 17,3424           03526                           TC       Z123COMP                              #  YES. CALCULATE TJET AS THOUGH IN ZONE 2
061640,000215: 17,3425           13547                           TCF      ZONE2,3                               #        OR 3 AFTER COMPUTING REQUIRED VALUES.
061641,000216: 
061642,000217: 17,3426           54001        ZONE5              TS       L                                     #  TEMPORARILY STORE FUNCTION IN L.
061643,000218: 17,3427           11740                           CCS      ROTSENSE                              #  MODIFY ADRSDIF2 FOR ACCESSING 1/ANET2
061644,000219: 17,3430           13434                           TCF      +4                                    #  AND ACCFCTZ5, WHICH MUST BE PICKED UP
061645,000220: 17,3431           05705                           TC       CCSHOLE                               #  FROM THE NEXT LOWER REGISTER IF THE
061646,000221: 17,3432           44752                           CS       TWO                                   #  (ACTUAL) ERROR RATE IS NEGATIVE.

Page 1464

061648,000223: 17,3433           27744                           ADS      ADRSDIF2                              
061649,000224: 
061650,000225: 17,3434           30001                 +4        CAE      L                                     
061651,000226: 17,3435           00006                           EXTEND                                         
061652,000227: 17,3436           51744                           INDEX    ADRSDIF2                              #  TTOAXIS AND HH ARE THE PARAMETERS UPON
061653,000228: 17,3437           71576                           MP       ACCFCTZ5                              #        WHICH THE APPROXIMATIONS TO TJET ARE
061654,000229: 17,3440           20001                           DDOUBL                                         #        BASED.
061655,000230: 17,3441           20001                           DDOUBL                                         
061656,000231: 17,3442           53750                           DXCH     HH                                    #  DOUBLE PRECISION H SCALED AT 8 SEC(2).
061657,000232: 17,3443           51744                           INDEX    ADRSDIF2                              
061658,000233: 17,3444           31570                           CAE      1/ANET2                               #  SCALED AT 2(7)/PI SEC(2)/RAD.
061659,000234: 17,3445           00006                           EXTEND                                         
061660,000235: 17,3446           71427                           MP       EDOT                                  #  SCALED AT PI/2(5)
061661,000236: 17,3447           55742                           TS       TTOAXIS                               #  SCALED AT 4 SEC.
061662,000237: 
061663,000238:                                                                                                  #  TEST WHETHER TJET GREATER THAN 50 MSEC.
061664,000239: 
061665,000240: 17,3450           00006                           EXTEND                                         
061666,000241: 17,3451           73734                           MP       -.05AT2                               #  H - .05 TTOAXIS - .00125 G.T. ZERO
061667,000242: 17,3452           61747                           AD       HH                                    #        (SCALED AT 8 SEC(2) ).
061668,000243: 17,3453           67746                           AD       NEG2                                  
061669,000244: 17,3454           00006                           EXTEND                                         
061670,000245: 17,3455           63503                           BZMF     FORMULA1                              
061671,000246: 
061672,000247:                                                                                                  #  TEST WHETHER TJET GREATER THAN 150 MSEC.
061673,000248: 
061674,000249: 17,3456           31742                           CAE      TTOAXIS                               
061675,000250: 17,3457           00006                           EXTEND                                         
061676,000251: 17,3460           73735                           MP       -.15AT2                               #  H - .15 TTOAXIS - .01125 G.T. ZERO
061677,000252: 17,3461           61747                           AD       HH                                    #        (SCALED AT 8 SEC(2) )
061678,000253: 17,3462           63726                           AD       -.0112A8                              
061679,000254: 17,3463           00006                           EXTEND                                         
061680,000255: 17,3464           63513                           BZMF     FORMULA2                              
061681,000256: 
061682,000257:                                                                                                  #  IF TJET GREATER THAN 150 MSEC, ASSIGN IT VALUE OF 250 MSEC, SINCE THIS
061683,000258:                                                                                                  #  IS ENOUGH TO ASSURE NO SKIP NEXT CSP (100 MSEC).
061684,000259: 
061685,000260: 17,3465           34741        FULLTIME           CAF      BIT11                                 #  250 MSEC SCALED AT 4 SEC.
061686,000261: 
061687,000262:                                                                                                  #  RETURN TO CALLING PROGRAM WITH JET TIME SCALED AS TIME6 AND SIGNED.
061688,000263: 
061689,000264: 17,3466           00006        RETURNTJ           EXTEND                                         #  ALL BRANCHES TERMINATE HERE WITH TJET
061690,000265: 17,3467           71740                           MP       ROTSENSE                              #        (SCALED AT 4 SEC) IN THE ACCUMULATOR.
061691,000266: 17,3470           51505                           INDEX    AXISCTR                               #  ROTSENSE APPLIES SIGN AND CHANGES SCALE.
061692,000267: 17,3471           55525                           TS       TJETU                                 
061693,000268: 17,3472           00006                           EXTEND                                         
061694,000269: 17,3473           51505                           INDEX    AXISCTR                               
061695,000270: 17,3474           71547                           MP       ACCSWU                                #  SET SWITCH FOR JET SELECT IF ROTATION IS
061696,000271: 17,3475           30001                           CAE      L                                     
061697,000272: 17,3476           00006                           EXTEND                                         #        IN A SENSE FOR WHICH 1/ACCS HAS FORCED
061698,000273: 17,3477           63502                           BZMF     +3                                    #        A MAX-JET CALCULATION.
061699,000274: 17,3500           34751                           CAF      FOUR                                  

Page 1465

061701,000276: 17,3501           55743                           TS       NUMBERT                               
061702,000277: 17,3502           01745                           TC       HOLDQ                                 #  RETURN VIA SAVED Q.
061703,000278: 
061704,000279:                                                                                                  #  TJET = H/(.025 + TTOAXIS)     FOR TJET LESS THAN 50 MSEC.
061705,000280: 
061706,000281: 17,3503           43733        FORMULA1           CS       -.025AT4                              #  .025 SEC SCALED AT 4.
061707,000282: 17,3504           61742                           AD       TTOAXIS                               #  SCALED AT 4 SECONDS.
061708,000283: 17,3505           53750                           DXCH     HH                                    #  STORE DENOMINATOR IN FIRST WORD OF H,
061709,000284: 17,3506           00006                           EXTEND                                         #        WHICH NEED NOT BE PRESERVED.  PICK UP
061710,000285: 17,3507           11747                           DV       HH                                    #        DP H AND DIVIDE BY DENOMINATOR.
061711,000286: 17,3510           00006                           EXTEND                                         
061712,000287: 17,3511           74736                           MP       BIT14                                 #  RESCALE TJET FROM 2 TO USUAL 4 SEC.
061713,000288: 17,3512           13623                           TCF      CHKMINTJ                              #  CHECK THAT TJET IS NOT LESS THAN MINIMUM
061714,000289: 
061715,000290:                                                                                                  #  TJET = (H + .00375)/(0.1 + TTOAXIS)   FOR TJET GREATER THAN 50 MSEC.
061716,000291: 
061717,000292: 17,3513           00006        FORMULA2           EXTEND                                         
061718,000293: 17,3514           33737                           DCA      .00375A8                              #  .00375 SEC(2) SCALED AT 8.
061719,000294: 17,3515           21750                           DAS      HH                                    #  STORE NUMERATOR IN DP H, WHICH NEED NOT
061720,000295:                                                                                                  #        BE PRESERVED.
061721,000296: 17,3516           31742                           CAE      TTOAXIS                               #  SCALED AT 4 SEC.
061722,000297: 17,3517           63727                           AD       .1AT4                                 #  0.1 SEC SCALED AT 4.
061723,000298: 17,3520           53750                           DXCH     HH                                    #  STORE DENOMINATOR IN FIRST WORD OF H,
061724,000299: 17,3521           00006                           EXTEND                                         #        WHICH NEED NOT BE PRESERVED.  PICK UP
061725,000300: 17,3522           11747                           DV       HH                                    #        DP NUMERATOR AND DIVIDE BY DENOMINATOR
061726,000301: 17,3523           00006                           EXTEND                                         
061727,000302: 17,3524           74736                           MP       BIT14                                 #  RESCALE TJET FROM 2 TO USUAL 4 SEC.
061728,000303: 17,3525           13466                           TCF      RETURNTJ                              #  END SUBROUTINE.
061729,000304: 
061730,000305:                                                                                                  #  SUBROUTINIZED COMPUTATIONS REQUIRED FOR ALL ENTRIES INTO CODING FOR ZONES 1, 2, AND 3.
061731,000306:                                                                                                  #  REACHED BY TC FROM 3 POINTS IN TJETLAW.
061732,000307: 
061733,000308: 17,3526           41740        Z123COMP           CS       ROTSENSE                              #  USED IN RETURNTJ SECTION TO RESCALE TJET
061734,000309: 17,3527           55740                           TS       ROTSENSE                              #        AS TIME6 AND GIVE IT PROPER SIGN.
061735,000310: 17,3530           31427                           CAE      EDOT                                  #  SCALED AT PI/2(5) RAD/SEC.
061736,000311: 17,3531           00006                           EXTEND                                         
061737,000312: 17,3532           51744                           INDEX    ADRSDIF2                              
061738,000313: 17,3533           71567                           MP       1/ANET1                               #  SCALED AT 2(7)/PI SEC(2)/RAD.
061739,000314: 17,3534           55742                           TS       TTOAXIS                               #  STORE TIME-TO-AXIS SCALED AT 4 SECONDS.
061740,000315: 17,3535           63740                           AD       -TJMAX                                
061741,000316: 17,3536           00006                           EXTEND                                         #  IS TIME TO AXIS LESS THAN 150 MSEC.
061742,000317: 17,3537           63541                           BZMF     +2                                    
061743,000318: 17,3540           13465                           TCF      FULLTIME                              #  NO. FIRE JETS, DO NOT CALCULATE TJET.
061744,000319: 17,3541           00002                           RETURN                                         #  YES.  GO ON TO FIND TJET
061745,000320: 
061746,000321: 17,3542           03526        ZON1,2,3           TC       Z123COMP                              #  SUBROUTINIZED PREPARATION FOR ZONE1,2,3.
061747,000322: 
061748,000323:                                                                                                  #  IF THE (NEG) DISTANCE BEYOND PARABOLA IS LESS THAN FLAT, USE SPECIAL
061749,000324:                                                                                                  #  LOGIC TO ACQUIRE MINIMUM IMPULSE LIMIT CYCLE.  DURING POWERED FLIGHT

Page 1466

061751,000326:                                                                                                  #  OR ULLAGE, FLAT = 0
061752,000327: 
061753,000328: 17,3543           31741                           CAE      FIREFCT                               #  SCALED AT PI/4 RAD.
061754,000329: 17,3544           61555                           AD       FLAT                                  
061755,000330: 17,3545           00006                           EXTEND                                         
061756,000331: 17,3546           63562                           BZMF     ZONE1                                 #  NOT IN SPECIAL ZONES.
061757,000332: 
061758,000333:                                                                                                  #  FIRE FOR AXIS OR, IF CLOSE, FIRE MINIMUM IMPULSE.  IF ON AXIS, COAST.
061759,000334: 
061760,000335: 17,3547           41556        ZONE2,3            CS       ZONE3LIM                              #  HEIGHT OF MIN-IMPULSE ZONE SET BY 1/ACCS
061761,000336: 17,3550           61742                           AD       TTOAXIS                               #        35 MSEC IN DRIFTING FLIGHT
061762,000337: 17,3551           00006                           EXTEND                                         #        ZERO WHEN TRYING TO ENTER GTS CONTROL.
061763,000338: 17,3552           63555                           BZMF     ZONE3                                 
061764,000339: 17,3553           31742        ZONE2              CAE      TTOAXIS                               #  FIRE TO AXIS.
061765,000340: 17,3554           13466                           TCF      RETURNTJ                              
061766,000341: 17,3555           11427        ZONE3              CCS      EDOT                                  #  CHECK IF EDOT IS ZERO.
061767,000342: 17,3556           34746                           CAF      BIT6                                  #  FIRE A ONE-JET MINIMUM IMPULSE.
061768,000343: 17,3557           13466                           TCF      RETURNTJ                              #  TJET = +0.
061769,000344: 17,3560           05705                           TC       CCSHOLE                               #  CANNOT BE BECAUSE NEG EDOT COMPLEMENTED.
061770,000345: 17,3561           13466                           TCF      RETURNTJ                              #  TJET = +0.
061771,000346: 
061772,000347: 17,3562           00006        ZONE1              EXTEND                                         
061773,000348: 17,3563           51746                           INDEX    ADRSDIF1                              
061774,000349: 17,3564           61605                           SU       AXISDIST                              #  SCALED AT PI/4 RAD.
061775,000350: 17,3565           00006                           EXTEND                                         
061776,000351: 17,3566           51744                           INDEX    ADRSDIF2                              
061777,000352: 17,3567           71575                           MP       ACCFCTZ1                              #  SCALED AT 2(7)/PI SEC(2)/RAD.
061778,000353: 17,3570           20001                           DDOUBL                                         
061779,000354: 17,3571           20001                           DDOUBL                                         
061780,000355: 17,3572           53750                           DXCH     HH                                    #  DOUBLE PRECISION H SCALED AT 8 SEC(2).
061781,000356: 
061782,000357:                                                                                                  #  TEST WHETHER TOTAL TIME REQUIRED GREATER THAN 150 MSEC:
061783,000358:                                                                                                  #                             2                                   2
061784,000359:                                                                                                  #        IS .5(.150 - TTOAXIS)  - H  NEGATIVE (SCALED AT 8 SECONDS )
061785,000360: 
061786,000361: 17,3573           31742                           CAE      TTOAXIS                               #  TTOAXIS SCALED AT 4 SECONDS.
061787,000362: 17,3574           63740                           AD       -TJMAX                                #  -.150 SECOND SCALED AT 4.
061788,000363: 17,3575           00006                           EXTEND                                         
061789,000364: 17,3576           70000                           SQUARE                                         
061790,000365: 17,3577           00006                           EXTEND                                         
061791,000366: 17,3600           61747                           SU       HH                                    #  HIGH WORD OF H SCALED AT 8 SEC(2).
061792,000367: 17,3601           00006                           EXTEND                                         
061793,000368: 17,3602           63465                           BZMF     FULLTIME                              #  YES.  NEED NOT CALCULATE TJET.
061794,000369: 
061795,000370:                                                                                                  #  TEST WHETHER TIME BEYOND AXIS GREATER THAN 50 MSEC TO DETERMINE WHICH APPROXIMATION TO USE.
061796,000371: 
061797,000372: 17,3603           31747                           CAE      HH                                    
061798,000373: 17,3604           67746                           AD       NEG2                                  
061799,000374: 17,3605           00006                           EXTEND                                         
061800,000375: 17,3606           63616                           BZMF     FORMULA3                              
061801,000376: 

Page 1467

061803,000378:                                                                                                  #  TJET = H/0.1 + TTOAXIS + .0375        FOR APPROXIMATION OVER MORE THAN 50 MSEC.
061804,000379: 
061805,000380: 17,3607           33730                           CAF      .1AT2                                 #  STORE .1 SEC SCALED AT 2 FOR DIVISION.
061806,000381: 17,3610           53750                           DXCH     HH                                    #  DP H SCALED AT 8 SEC(2) NEED NOT BE
061807,000382: 17,3611           00006                           EXTEND                                         #        PRESERVED.
061808,000383: 17,3612           11747                           DV       HH                                    #  QUOTIENT SCALED AT 4 SECONDS.
061809,000384: 17,3613           61742                           AD       TTOAXIS                               #  SCALED AT 4 SEC.
061810,000385: 17,3614           63731                           AD       .0375AT4                              #  .0375 SEC SCALED AT 4.
061811,000386: 17,3615           13466                           TCF      RETURNTJ                              #  END COMPUTATION.
061812,000387: 
061813,000388:                                                                                                  #  TJET = H/.O25 + TTOAXIS       FOR APPROXIMATION OVER LESS THAN 50 MSEC.
061814,000389: 
061815,000390: 17,3616           43732        FORMULA3           CS       -.025AT2                              #  STORE +.025 SEC SCALED AT 2 FOR DIVISION
061816,000391: 17,3617           53750                           DXCH     HH                                    #  PICK UP DP H AT 8, WHICH NEED NOT BE
061817,000392: 17,3620           00006                           EXTEND                                         #        PRESERVED.
061818,000393: 17,3621           11747                           DV       HH                                    #  QUOTIENT SCALED AT 4 SECONDS.
061819,000394: 17,3622           61742                           AD       TTOAXIS                               #  SCALED AT 4 SEC.
061820,000395: 
061821,000396:                                                                                                  #  IF COMPUTED JET TIME IS LESS THAN TJMIN, TJET IS SET TO ZERO.
061822,000397:                                                                                                  #  MINIMUM IMPULSES REQUIRED IN ZONE 3 ARE NOT SUBJECT TO THIS CONSTRAINT, NATURALLY.
061823,000398: 
061824,000399: 17,3623           63742        CHKMINTJ           AD       -TJMIN                                #  IS COMPUTED TIME LESS THAN THE MINIMUM.
061825,000400: 17,3624           00006                           EXTEND                                         
061826,000401: 17,3625           63422                           BZMF     COASTTJ                               #  YES, SET TIME TO ZERO.
061827,000402: 17,3626           63741                           AD       TJMIN                                 #  NO, RESTORE COMPUTED TIME.
061828,000403: 17,3627           13466                           TCF      RETURNTJ                              #  END COMPUTATION.
061829,000404: 

Page 1468

061831,000406:                                                                                                  #  *** ROUGHLAW ***
061832,000407: 
061833,000408:                                                                                                  #  BEFORE ENTRY TO RUFLAW:
061834,000409:                                                                                                  #        1. INDEXERS ADRSDIF1 AND ADRSDIF2 ARE SET ON BASIS OF AXIS, AND SIGN OF EDOT.
061835,000410:                                                                                                  #        2. IF EDOT WAS NEGATIVE, E AND EDOT ARE ROTATED INTO UPPER HALF-PLANE AND ROTSENSE IS MADE NEGATIVE.
061836,000411:                                                                                                  #        3. E IS SCALED AT PI RADIANS AND EDOT AT PI/4 RAD/SEC.
061837,000412:                                                                                                  #           (EXCEPT THE RUFLAW3 ENTRY WHEN E IS AT PI/4)
061838,000413: 
061839,000414:                                                                                                  #  RUFLAW1:      ERROR MORE NEGATIVE THAN PI/16 RAD.  FIRE TO A RATE OF 6.5 DEG/SEC (IF JET TIME EXCEEDS 20 MSEC.).
061840,000415:                                                                                                  #  RUFLAW2:      ERROR MORE POSITIVE THAN PI/16 RAD.  FIRE TO AN OPPOSING RATE OF 6.5 DEG/SEC.
061841,000416:                                                                                                  #  RUFLAW3:      ERROR RATE GREATER THAN PI/32 RAD/SEC AND ERROR WITHIN BOUNDS.  COAST IF BELOW FIREFCT, FIRE IF ABOVE
061842,000417: 
061843,000418: 17,3630           43743        RUFLAW1            CS       RUFRATE                               #  DECREMENT EDOT BY .1444 RAD/SEC AT PI/4
061844,000419: 17,3631           27427                           ADS      EDOT                                  #        WHICH IS THE TARGET RATE
061845,000420: 17,3632           00006                           EXTEND                                         
061846,000421: 17,3633           63654                           BZMF     SMALRATE                              #  BRANCH IF RATE LESS THAN TARGET.
061847,000422: 17,3634           03712                           TC       RUFSETUP                              #  REVERSE ROTSENSE AND INDICATE MAX JETS.
061848,000423: 17,3635           31427                           CAE      EDOT                                  #  PICK UP DESIRED RATE CHANGE.
061849,000424: 
061850,000425: 17,3636           00006        RUFLAW12           EXTEND                                         #  COMPUTE TJET
061851,000426: 17,3637           51744                           INDEX    ADRSDIF2                              #        = (DESIRED RATE CHANGE)/(2-JET ACCEL.)
061852,000427: 17,3640           71571                           MP       1/ANET1    +2                         
061853,000428: 17,3641           67741                           AD       -1/8                                  #  IF TJET, SCALED AT 32 SEC, EXCEEDS
061854,000429: 17,3642           00006                           EXTEND                                         #        4 SECONDS, SET TJET TO TJMAX.
061855,000430: 17,3643           63645                           BZMF     +2                                    
061856,000431: 17,3644           13465                           TCF      FULLTIME                              
061857,000432: 17,3645           00006                           EXTEND                                         
061858,000433: 17,3646           13465                           BZF      FULLTIME                              
061859,000434: 17,3647           64740                           AD       BIT12                                 #  RESTORE COMPUTED TJET TO ACCUMULATOR.
061860,000435: 17,3650           20001                           DAS      A                                     
061861,000436: 17,3651           20001                           DAS      A                                     
061862,000437: 17,3652           20001                           DAS      A                                     #  RESCALED TJET AT 4 SECONDS.
061863,000438: 17,3653           13623                           TCF      CHKMINTJ                              #  RETURN AS FROM FINELAW.
061864,000439: 
061865,000440: 17,3654           03714        SMALRATE           TC       RUFSETUP   +2                         #  SET NUMBERT AND FIREFCT FOR MAXIMUM JETS
061866,000441: 17,3655           11740                           CCS      ROTSENSE                              
061867,000442: 17,3656           34753                           CAF      ONE                                   #  MODIFY INDEXER TO POINT TO 1/ANET
061868,000443: 17,3657           13661                           TCF      +2                                    #        CORRESPONDING TO THE PROPER SENSE.
061869,000444: 17,3660           37747                           CAF      NEGONE                                
061870,000445: 17,3661           27744                           ADS      ADRSDIF2                              
061871,000446: 
061872,000447: 17,3662           41427                           CS       EDOT                                  #  (.144 AT PI/4 - EDOT) = DESIRED RATE CHNG.
061873,000448: 17,3663           13636                           TCF      RUFLAW12                              
061874,000449: 
061875,000450: 17,3664           03712        RUFLAW2            TC       RUFSETUP                              #  REVERSE ROTSENSE AND INDICATE MAX JETS.
061876,000451: 17,3665           33743                           CAF      RUFRATE                               
061877,000452: 17,3666           61427                           AD       EDOT                                  #  (.144 AT PI/4 + EDOT) = DESIRED RATE CHNG.
061878,000453: 17,3667           54000                           TS       A                                     #  IF OVERFLOW SKIP, FIRE FOR FULL TIME.
061879,000454: 17,3670           13636                           TCF      RUFLAW12                              #  OTHERWISE, COMPUTE JET TIME.
061880,000455: 17,3671           13465                           TCF      FULLTIME                              
061881,000456: 

Page 1469

061883,000458: 17,3672           03712        RUFLAW3            TC       RUFSETUP                              #  EXECUTE COMMON RUFLAW SUBROUTINE.
061884,000459: 17,3673           51746                           INDEX    ADRSDIF1                              
061885,000460: 17,3674           41601                           CS       FIREDB                                #  CALCULATE DISTANCE FROM SWITCH CURVE
061886,000461: 17,3675           61752                           AD       E                                     #        1/ANET1*EDOT*EDOT +E - FIREDB = 0
061887,000462: 17,3676           00006                           EXTEND                                         #                SCALED AT 4 PI RADIANS
061888,000463: 17,3677           74741                           MP       BIT11                                 
061889,000464: 17,3700           57427                           XCH      EDOT                                  
061890,000465: 17,3701           00006                           EXTEND                                         
061891,000466: 17,3702           70000                           SQUARE                                         
061892,000467: 17,3703           00006                           EXTEND                                         
061893,000468: 17,3704           51746                           INDEX    ADRSDIF1                              
061894,000469: 17,3705           71571                           MP       1/ANET1    +2                         
061895,000470: 17,3706           61427                           AD       EDOT                                  
061896,000471: 17,3707           00006                           EXTEND                                         
061897,000472: 17,3710           63422                           BZMF     COASTTJ                               #  COAST IF BELOW IT.
061898,000473: 17,3711           13465                           TCF      FULLTIME                              #  FIRE FOR FULL PERIOD IF ABOVE IT.
061899,000474: 
061900,000475:                                                                                                  #  SUBROUTINE USED IN ALL ENTRIES TO ROUGHLAW.
061901,000476: 
061902,000477: 17,3712           41740        RUFSETUP           CS       ROTSENSE                              #  REVERSE ROTSENSE WHEN ENTER HERE.
061903,000478: 17,3713           55740                           TS       ROTSENSE                              
061904,000479: 17,3714           34751                 +2        CAF      FOUR                                  #  REQUIRE MAXIMUM (2) JETS IN U,V-AXES.
061905,000480: 17,3715           55743                           TS       NUMBERT                               
061906,000481: 17,3716           34735                           CAF      NEGMAX                                #  SUGGEST MAXIMUM (4) JETS IN P-AXIS.
061907,000482: 17,3717           55741                           TS       FIREFCT                               
061908,000483: 17,3720           00002                           TC       Q                                     
061909,000484: 
061910,000485:                                                                                                  #  CONSTANTS FOR TJETLAW
061911,000486: 
061912,000487: 17,3721           77757                           DEC      -16        B-14                       #  AXISDIFF(INDEX) = NUMBER OF REGISTERS
061913,000488: 17,3722           00000        AXISDIFF           DEC      +0         B-14                       #        BETWEEN STORED 1/ACCS PARAMETERS FOR
061914,000489: 17,3723           00020                           DEC      16         B-14                       #        THE INDEXED AXIS AND THE U-AXIS.
061915,000490: 17,3724           14400        SENSOR             OCT      14400                                 #  RATIO OF TJET SCALING WITHIN TJETLAW
061916,000491:                                                                                                  #        (4 SEC) TO SCALING FOR T6 (10.24 SEC).
061917,000492: 17,3725           75673        -3DEG              DEC      -.06667                               #  -3.0 DEGREES SCALED AT 45.
061918,000493: 17,3726           77750        -.0112A8           DEC      -.00141                               #  -.01125 SEC(2) SCALED AT 8.
061919,000494: 17,3727           00632        .1AT4              DEC      .025                                  #  0.1 SECOND SCALED AT 4.
061920,000495: 17,3730           01463        .1AT2              DEC      .05                                   #  0.1 SEC SCALED AT 2.
061921,000496: 17,3731           00232        .0375AT4           DEC      .00938                                #  .0375 SEC SCALED AT 4.
061922,000497: 17,3732           77462        -.025AT2           DEC      -.0125                                #  -.025 SEC SCALED AT 2.
061923,000498: 17,3733           77631        -.025AT4           DEC      -.00625                               
061924,000499: 17,3734           77145        -.05AT2            DEC      -.025                                 
061925,000500: 17,3735           75462        -.15AT2            DEC      -.075                                 
061926,000501: 17,3736           00007 25605  .00375A8           2DEC     .00375     B-3                        
061927,000502: 
061928,000503: 17,3740           76631        -TJMAX             DEC      -.0375                                #  LARGEST CALCULATED TIME.  .150 SEC AT 4.
061929,000504: 17,3741           00122        TJMIN              DEC      .005                                  #  SMALLEST ALLOWABLE TIME.  .020 SEC AT 4.
061930,000505: 17,3742           77655        -TJMIN             DEC      -.005                                 
061931,000506: 17,3743           04476        RUFRATE            DEC      .1444                                 #  CORRESPONDS TO TARGET RATE OF 6.5 DEG/S.

End of include-file TJET_LAW.agc.  Parent file is MAIN.agc