Source Code

These source-code files are part of a reconstructed copy of LUM69 Revision 2, the flown Apollo 10 Lunar Module (LM) Apollo Guidance Computer (AGC) software.

The reconstruction began with source code of Luminary 69 revision 0 previously transcribed from a digitized copy of that program. The code was then updated by back-porting the R-2 lunar potential model from previously-transcribed source code of Luminary 99. These required changes were described in the original Luminary memos 75 and 78. The reconstructed code 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 069 printout, although the added code would likely have changed page numbers for a real LUM69 Revision 2 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.

062801,000002:                                                                                                  ## Copyright:   Public domain.
062802,000003:                                                                                                  ## Filename:    TJET_LAW.agc
062803,000004:                                                                                                  ## Purpose:     A section of LUM69 revision 2.
062804,000005:                                                                                                  ##              It is part of the reconstructed source code for the flown
062805,000006:                                                                                                  ##              version of the flight software for the Lunar Module's (LM)
062806,000007:                                                                                                  ##              Apollo Guidance Computer (AGC) for Apollo 10. The code has
062807,000008:                                                                                                  ##              been recreated from a copy of Luminary revsion 069, using
062808,000009:                                                                                                  ##              changes present in Luminary 099 which were described in
062809,000010:                                                                                                  ##              Luminary memos 75 and 78. The code has been adapted such
062810,000011:                                                                                                  ##              that the resulting bugger words exactly match those specified
062811,000012:                                                                                                  ##              for LUM69 revision 2 in NASA drawing 2021152B, which gives
062812,000013:                                                                                                  ##              relatively high confidence that the reconstruction is correct.
062813,000014:                                                                                                  ## Reference:   pp. 1454-1464
062814,000015:                                                                                                  ## Assembler:   yaYUL
062815,000016:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
062816,000017:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
062817,000018:                                                                                                  ## Mod history: 2019-07-27 MAS  Created from Luminary 69.
062818,000019: 

Page 1454

062820,000021:                                                                                                  #  PROGRAM DESCRIPTION
062821,000022:                                                                                                  #  DESIGNED BY:  R. D. GOSS AND P. S. WEISSMAN
062822,000023:                                                                                                  #  CODED BY:  P. S. WEISSMAN 28 FEBRUARY 1968
062823,000024: 
062824,000025:                                                                                                  #  TJETLAW IS CALLED AS A SUBROUTINE WHEN THE LEM IS NOT DOCKED AND THE AUTOPILOT IS IN THE AUTOMATIC OR
062825,000026:                                                                                                  #  ATTITUDE-HOLD MODE TO CALCULATE THE JET-FIRING-TIME (TJET) REQUIRED FOR THE AXIS INDICATED BY AXISCTR:
062826,000027:                                                                                                  #        -1      INDICATES THE P-AXIS
062827,000028:                                                                                                  #        +0      INDICATES THE U-AXIS
062828,000029:                                                                                                  #        +1      INDICATES THE V-AXIS.
062829,000030:                                                                                                  #  THE REGISTERS E AND EDOT CONTAIN THE APPROPRIATE ATTITUDE ERROR AND ERROR RATE AND SENSETYP SHOWS WHETHER
062830,000031:                                                                                                  #  UNBALANCED COUPLES ARE PREFERRED.  TJETLAW ALSO USES VARIOUS FUNCTIONS OF ACCELERATION AND DEADBAND WHICH ARE
062831,000032:                                                                                                  #  COMPUTED IN THE 1/ACCONT SECTION OF 1/ACCS AND ARE STORED IN SUCH AN ORDER THAT THEY CAN BE CONVENIENTLY
062832,000033:                                                                                                  #  ACCESSED BY INDEXING.
062833,000034: 
062834,000035:                                                                                                  #  THE SIGN OF THE REQUIRED ROTATION IS CARRIED THROUGH TJETLAW AS ROTSENSE AND IS FINALLY APPLIED TO TJET JUST
062835,000036:                                                                                                  #  PREVIOUS TO ITS STORAGE IN THE LOCATION CORRESPONDING TO THE AXIS (TJP, TJU OR TJV).  THE NUMBER OF JETS THAT
062836,000037:                                                                                                  #  TJETLAW ASSUMES WILL BE USED IS INDICATED BY THE SETTING OF NUMBERT FOR THE U- OR V-AXIS.  TWO JETS ARE ALWAYS
062837,000038:                                                                                                  #  ASSUMED FOR THE P-AXIS  ALTHOUGH FOUR JETS WILL BE FIRED WHEN FIREFCT IS MORE NEGATIVE THAN -4.0 DEGREES
062838,000039:                                                                                                  #  (FIREFCT IS THE DISTANCE TO A SWITCH CURVE IN THE PHASE PLANE) AND A LONG FIRING IS CALLED FOR.
062839,000040: 
062840,000041:                                                                                                  #  IN ORDER TO AVOID SCALING DIFFICULTIES, SIMPLE ALGORITHMS TAGGED RUFLAW1, -2 AND -3 ARE RESORTED TO WHEN THE
062841,000042:                                                                                                  #  ERROR AND/OR ERROR RATE ARE LARGE.
062842,000043: 
062843,000044:                                                                                                  #  CALLING SEQUENCE:
062844,000045:                                                                                                  #                TC      TJETLAW         (MUST BE IN JASK)
062845,000046:                                                                                                  #        OR
062846,000047:                                                                                                  #                INHINT                  (MUST BE IN JASK)
062847,000048:                                                                                                  #                TC      IBNKCALL
062848,000049:                                                                                                  #                CADR    TJETLAW
062849,000050:                                                                                                  #                RELINT
062850,000051: 
062851,000052:                                                                                                  #  EXIT:         RETURN TO Q.
062852,000053: 
062853,000054:                                                                                                  #  INPUT:
062854,000055:                                                                                                  #        FROM THE CALLER:  E, EDOT, AXISCTR, SENSETYP, TJP,-U,-V.
062855,000056:                                                                                                  #        FROM 1/ACCONT:  48 ERASABLES BEGINNING AT BLOCKTOP (INCLUDING FLAT, ZONE3LIM AND ACCSWU,-V).
062856,000057: 
062857,000058:                                                                                                  #  OUTPUT:
062858,000059:                                                                                                  #        TJP,-U OR -V, NUMBERT (DAPTEMP5), FIREFCT (DAPTEMP3).
062859,000060: 
062860,000061:                                                                                                  #  DEBRIS:
062861,000062:                                                                                                  #        A, L, Q, E, EDOT, DAPTEMP1-6, DAPTREG1-4.
062862,000063: 
062863,000064:                                                                                                  #  ALARM:  NONE
062864,000065: 
062865,000066: 17,3207                                           BANK     17                                    
062866,000067: 17,2000                                           SETLOC   DAPS2                                 
062867,000068: 17,2000                                           BANK                                           
062868,000069: 17,3207  E6,1524                                  EBANK=   TJP                                   

Page 1455

062870,000071: 17,3207                                           COUNT*   $$/DAPTJ                              
062871,000072: 
062872,000073: 17,3207           00006        TJETLAW            EXTEND                                         #  SAVE Q FOR RETURN.
062873,000074: 17,3210           23743                           QXCH     HOLDQ                                 
062874,000075: 
062875,000076:                                                                                                  #  SET INDEXERS TO CORRESPOND TO THE AXIS AND TO THE SIGN OF EDOT
062876,000077: 
062877,000078: 17,3211           51476                           INDEX    AXISCTR                               #  AXISDIFF(-1)=NO OF LOCATIONS BER P AND U
062878,000079: 17,3212           33657                           CAF      AXISDIFF                              #  AXISDIFF(0) = 0
062879,000080: 17,3213           55744                           TS       ADRSDIF1                              #  AXISDIFF(+1)=NO OF LOCATIONS BET V AND U
062880,000081: 
062881,000082: 17,3214           31425                           CAE      EDOT                                  #  IF EDOT NEGATIVE, PICK UP SET OF VALUES
062882,000083: 17,3215           00006                           EXTEND                                         #        THAT ALLOW USE OF SAME CODING AS FOR
062883,000084: 17,3216           63223                           BZMF     NEGEDOT                               #        POSITIVE EDOT.
062884,000085: 17,3217           31744                           CAE      ADRSDIF1                              #  SET A SECOND INDEXER WHICH MAY BE
062885,000086: 17,3220           55742                           TS       ADRSDIF2                              #        MODIFIED BY A DECISION FOR MAX JETS.
062886,000087: 17,3221           33661                           CAF      SENSOR                                #  FOR POSITIVE EDOT, ROTSENSE IS
062887,000088: 17,3222           13233                           TCF      SETSENSE                              #        INITIALIZED POSITIVE.
062888,000089: 
062889,000090: 17,3223           41750        NEGEDOT            CS       E                                     #  IN ORDER FOR NEG EDOT CASE TO USE CODING
062890,000091: 17,3224           55750                           TS       E                                     #        OF POS EDOT, MUST MODIFY AS FOLLOWS:
062891,000092: 17,3225           41425                           CS       EDOT                                  #        1. COMPLEMENT E AND EDOT.
062892,000093: 17,3226           55425                           TS       EDOT                                  #        2. SET SENSE OF ROTATION TO NEGATIVE
062893,000094: 17,3227           34753                           CAF      BIT1                                  #           (REVERSED LATER IF NECESSARY).
062894,000095: 17,3230           27744                           ADS      ADRSDIF1                              #        3. INCREMENT INDEXERS BY ONE SO THAT
062895,000096: 17,3231           55742                           TS       ADRSDIF2                              #           THE PROPER PARAMETERS ARE ACCESSED.
062896,000097: 17,3232           43661                           CS       SENSOR                                
062897,000098: 17,3233           55736        SETSENSE           TS       ROTSENSE                              
062898,000099: 
062899,000100:                                                                                                  #  TEST MAGNITUDE OF E (ATTITUDE ERROR, SINGLE-PRECISION, SCALED AT PI RADIANS):
062900,000101:                                                                                                  #        IF GREATER THAN (OR EQUAL TO) PI/16 RADIANS, GO TO THE SIMPLIFIED TJET ROUTINE.
062901,000102:                                                                                                  #        IF LESS THAN PI/16 RADIANS, RESCALE TO PI/4.
062902,000103: 
062903,000104: 17,3234           31750                           CAE      E                                     #  PICK UP ATTITUDE ERROR FOR THIS AXIS
062904,000105: 17,3235           00006                           EXTEND                                         
062905,000106: 17,3236           74747                           MP       BIT5                                  #  SHIFT RIGHT TEN BITS:  IF A-REGISTER IS
062906,000107: 17,3237           10000                           CCS      A                                     #        ZERO, RESCALE AND TEST EDOT.
062907,000108: 17,3240           13621                           TCF      RUFLAW2                               
062908,000109: 17,3241           13243                           TCF      SCALEE                                
062909,000110: 17,3242           13565                           TCF      RUFLAW1                               
062910,000111: 17,3243           34737        SCALEE             CAF      BIT13                                 #  ERROR IS IN L SCALED AT PI/16.  RESCALE
062911,000112: 17,3244           00006                           EXTEND                                         #        IT TO PI/4 AND SAVE IT.
062912,000113: 17,3245           70001                           MP       L                                     
062913,000114: 17,3246           55750                           TS       E                                     
062914,000115: 
062915,000116:                                                                                                  #  TEST MAGNITUDE OF EDOT (ERROR RATE SCALED AT PI/4 RADIANS/SECOND)
062916,000117:                                                                                                  #        IF GREATER THAN (OR EQUAL TO) PI/32 RADIANS/SECOND, GO TO THE SIMPLIFIED TJET ROUTINE.
062917,000118:                                                                                                  #        IF LESS THAN PI/32 RADIANS/SECOND, THEN RESCALE TO PI/32 RADIANS/SECOND.
062918,000119: 
062919,000120: 17,3247           31425                           CAE      EDOT                                  #  PICK UP SINGLE-PRECISION ERROR-RATE

Page 1456

062921,000122: 17,3250           00006                           EXTEND                                         #  FOR THIS AXIS=
062922,000123: 17,3251           74750                           MP       BIT4                                  #  SHIFT RIGHT ELEVEN BITS, IF THE A-REG IS
062923,000124: 17,3252           00006                           EXTEND                                         #  ZERO, THEN RESCALE AND USE FINELAW.
062924,000125: 17,3253           13255                           BZF      SCALEDOT                              
062925,000126: 17,3254           13627                           TCF      RUFLAW3                               
062926,000127: 
062927,000128:                                                                                                  #  *** FINELAW STARTS HERE ***
062928,000129: 
062929,000130: 17,3255           23425        SCALEDOT           LXCH     EDOT                                  #  EDOT IS SCALED AT PI/32 RADIANS/SECOND.
062930,000131: 
062931,000132: 17,3256           31425                           CAE      EDOT                                  #  COMPUTE (EDOT)(EDOT)
062932,000133: 17,3257           00006                           EXTEND                                         
062933,000134: 17,3260           70000                           SQUARE                                         #  PRODUCT SCALED AT PI(2)/2(10) RAD/SEC.
062934,000135: 17,3261           00006                           EXTEND                                         
062935,000136: 17,3262           74737                           MP       BIT13                                 #  SHIFT RIGHT TWO BITS TO RESCALE EDOTSQ
062936,000137: 17,3263           55735                           TS       EDOTSQ                                #        TO PI(2)/2(8) RAD(2)/SEC(2).
062937,000138: 
062938,000139: 17,3264           11750        ERRTEST            CCS      E                                     #  DOES BIG ERROR (TWO DEGREES BEYOND THE
062939,000140: 17,3265           63662                           AD       -2DEG                                 #  DEADBAND) REQUIRE MAXIMUM JETS?
062940,000141: 17,3266           13270                           TCF      +2                                    
062941,000142: 17,3267           63662                           AD       -2DEG                                 
062942,000143: 17,3270           00006                           EXTEND                                         
062943,000144: 17,3271           51744                           INDEX    ADRSDIF1                              
062944,000145: 17,3272           61601                           SU       FIREDB                                
062945,000146: 17,3273           00006                           EXTEND                                         
062946,000147: 17,3274           63301                           BZMF     SENSTEST                              #  IF NOT:  ARE UNBALANCED JETS PREFERRED|
062947,000148: 17,3275           34752        MAXJETS            CAF      TWO                                   #  IF YES:  INCREMENT ADDRESS LOCATOR AND
062948,000149: 17,3276           27742                           ADS      ADRSDIF2                              #           SET SWITCH FOR JET SELECT LOGIC TO 4.
062949,000150: 17,3277           34751                           CAF      FOUR                                  #           (ALWAYS DO THIS FOR P-AXIS)
062950,000151: 17,3300           13304                           TCF      TJCALC                                
062951,000152: 17,3301           11477        SENSTEST           CCS      SENSETYP                              #  DOES TRANSLATION PREFER MIN JETS.
062952,000153: 17,3302           13304                           TCF      TJCALC                                #  YES.  USE MIN-JET PARAMETERS.
062953,000154: 17,3303           13275                           TCF      MAXJETS                               #  NO.  GET MAX-JET PARAMETERS.
062954,000155: 17,3304           55741        TJCALC             TS       NUMBERT                               #  SET TO +0,1,4 FOR (U,V-AXES) JET SELECT.
062955,000156: 
062956,000157:                                                                                                  #  BEGINNING OF TJET CALCULATIONS:
062957,000158: 
062958,000159: 17,3305           41735                           CS       EDOTSQ                                #  SCALED AT PI(2)/2(8).
062959,000160: 17,3306           00006                           EXTEND                                         
062960,000161: 17,3307           51742                           INDEX    ADRSDIF2                              
062961,000162: 17,3310           71567                           MP       1/ANET1                               #  .5/ACC SCALED AT 2(6)/PI SEC(2)/RADIAN.
062962,000163: 17,3311           51744                           INDEX    ADRSDIF1                              
062963,000164: 17,3312           61601                           AD       FIREDB                                #  DEADBAND SCALED AT PI/4 RADIAN.
062964,000165: 17,3313           00006                           EXTEND                                         
062965,000166: 17,3314           61750                           SU       E                                     #  ATTITUDE ERROR SCALED AT PI/4 RADIAN.
062966,000167: 17,3315           55737                           TS       FIREFCT                               #  -E-.5(EDOTSQ)/ACC-DB AT PI/4 RADIAN.
062967,000168: 17,3316           00006                           EXTEND                                         
062968,000169: 17,3317           63477                           BZMF     ZON1,2,3                              
062969,000170: 
062970,000171: 17,3320           51744        ZONE4,5            INDEX    ADRSDIF1                              
062971,000172: 17,3321           31573                           CAE      1/ACOAST                              #  .5/ACC SCALED AT 2(6)/PI WHERE

Page 1457

062973,000174: 17,3322           00006                           EXTEND                                         #  ACC = MAX(AMIN, AOS-).
062974,000175: 17,3323           71735                           MP       EDOTSQ                                #  SCALED AT PI/2(8).
062975,000176: 17,3324           61750                           AD       E                                     #  SCALED AT PI/4
062976,000177: 17,3325           51744                           INDEX    ADRSDIF1                              
062977,000178: 17,3326           61603                           AD       COASTDB                               #  SCALED AT PI/4 POS. FOR NEG. INTERCEPT.
062978,000179: 17,3327           00006                           EXTEND                                         #  TEST E+.5(EDOTSQ)/ACC+DB AT PI/4 RADIAN.
062979,000180: 17,3330           63363                           BZMF     ZONE5                                 #  IF FUNCTION NEGATIVE, FIND TJET.
062980,000181:                                                                                                  #  IF FUNCTION POSITIVE, IN ZONE 4.
062981,000182: 
062982,000183:                                                                                                  #  ZONE 4 IS THE COAST REGION.  HOWEVER, IF THE JETS ARE ON AND DRIVING TOWARD
062983,000184:                                                                                                  #        A. THE AXIS WITHIN + OR - (DB + FLAT) FOR DRIFTING FLIGHT, OR
062984,000185:                                                                                                  #        B. THE USUAL TARGET PARABOLA FOR POWERED FLIGHT
062985,000186:                                                                                                  #  THEN THE THRUSTERS ARE KEPT ON.
062986,000187: 
062987,000188: 17,3331           51476        ZONE4              INDEX    AXISCTR                               #  IS THE CURRENT VALUE IN TJET NON-ZERO
062988,000189: 17,3332           41525                           CS       TJETU                                 #        WITH SENSE OPPOSITE TO EDOT,
062989,000190: 17,3333           00006                           EXTEND                                         #        (I.E., ARE JETS ON AND FIRING TOWARD
062990,000191: 17,3334           71736                           MP       ROTSENSE                              #        THE DESIRABLE STATE).
062991,000192: 17,3335           00006                           EXTEND                                         
062992,000193: 17,3336           63357                           BZMF     COASTTJ                               #  NO.  COAST.
062993,000194: 
062994,000195: 17,3337           11555        JETSON             CCS      FLAT                                  #  YES.  IS THIS DRIFTING OR POWERED FLIGHT|
062995,000196: 17,3340           13351                           TCF      DRIFT/ON                              #  DRIFTING.  GO MAKE FURTHER TEST.
062996,000197: 
062997,000198: 17,3341           41737                           CS       FIREFCT                               #  POWERED (OR ULLAGE).  CAN TARGET PARABOLA
062998,000199: 17,3342           51744                           INDEX    ADRSDIF1                              #        BE REACHED FROM THIS POINT IN THE
062999,000200: 17,3343           61605                           AD       AXISDIST                              #        PHASE PLANE|
063000,000201: 17,3344           00006                           EXTEND                                         
063001,000202: 17,3345           63357                           BZMF     COASTTJ                               #  NO. SET TJET = 0.
063002,000203: 17,3346           03463                           TC       Z123COMP                              #  YES.  CALCULATE TJET AS THOUGH IN ZONE 1
063003,000204: 17,3347           31737                           CAE      FIREFCT                               #        AFTER COMPUTING THE REQUIRED
063004,000205: 17,3350           13517                           TCF      ZONE1                                 #        PARAMETERS.
063005,000206: 
063006,000207: 17,3351           51744        DRIFT/ON           INDEX    ADRSDIF1                              #  CAN TARGET STRIP OF AXIS BE REACHED FROM
063007,000208: 17,3352           41601                           CS       FIREDB                                #        THIS POINT IN THE PHASE PLANE|
063008,000209: 17,3353           60000                           DOUBLE                                         
063009,000210: 17,3354           61737                           AD       FIREFCT                               
063010,000211: 17,3355           00006                           EXTEND                                         
063011,000212: 17,3356           63361                           BZMF     +3                                    
063012,000213: 17,3357           34755        COASTTJ            CAF      ZERO                                  #  NO.  SET TJET = 0.
063013,000214: 17,3360           13423                           TCF      RETURNTJ                              
063014,000215: 
063015,000216: 17,3361           03463                           TC       Z123COMP                              #  YES. CALCULATE TJET AS THOUGH IN ZONE 2
063016,000217: 17,3362           13504                           TCF      ZONE2,3                               #        OR 3 AFTER COMPUTING REQUIRED VALUES.
063017,000218: 
063018,000219: 17,3363           54001        ZONE5              TS       L                                     #  TEMPORARILY STORE FUNCTION IN L.
063019,000220: 17,3364           11736                           CCS      ROTSENSE                              #  MODIFY ADRSDIF2 FOR ACCESSING 1/ANET2
063020,000221: 17,3365           13371                           TCF      +4                                    #  AND ACCFCTZ5, WHICH MUST BE PICKED UP
063021,000222: 17,3366           05677                           TC       CCSHOLE                               #  FROM THE NEXT LOWER REGISTER IF THE
063022,000223: 17,3367           44752                           CS       TWO                                   #  (ACTUAL) ERROR RATE IS NEGATIVE.

Page 1458

063024,000225: 17,3370           27742                           ADS      ADRSDIF2                              
063025,000226: 
063026,000227: 17,3371           30001                 +4        CAE      L                                     
063027,000228: 17,3372           00006                           EXTEND                                         
063028,000229: 17,3373           51742                           INDEX    ADRSDIF2                              #  TTOAXIS AND HH ARE THE PARAMETERS UPON
063029,000230: 17,3374           71576                           MP       ACCFCTZ5                              #        WHICH THE APPROXIMATIONS TO TJET ARE
063030,000231: 17,3375           20001                           DDOUBL                                         #        BASED.
063031,000232: 17,3376           20001                           DDOUBL                                         
063032,000233: 17,3377           53746                           DXCH     HH                                    #  DOUBLE PRECISION H SCALED AT 8 SEC(2).
063033,000234: 17,3400           51742                           INDEX    ADRSDIF2                              
063034,000235: 17,3401           31570                           CAE      1/ANET2                               #  SCALED AT 2(7)/PI SEC(2)/RAD.
063035,000236: 17,3402           00006                           EXTEND                                         
063036,000237: 17,3403           71425                           MP       EDOT                                  #  SCALED AT PI/2(5)
063037,000238: 17,3404           55740                           TS       TTOAXIS                               #  SCALED AT 4 SEC.
063038,000239: 
063039,000240:                                                                                                  #  TEST WHETHER TJET GREATER THAN 50 MSEC.
063040,000241: 
063041,000242: 17,3405           00006                           EXTEND                                         
063042,000243: 17,3406           73671                           MP       -.05AT2                               #  H - .05 TTOAXIS - .00125 G.T. ZERO
063043,000244: 17,3407           61745                           AD       HH                                    #        (SCALED AT 8 SEC(2) ).
063044,000245: 17,3410           67745                           AD       NEG2                                  
063045,000246: 17,3411           00006                           EXTEND                                         
063046,000247: 17,3412           63440                           BZMF     FORMULA1                              
063047,000248: 
063048,000249:                                                                                                  #  TEST WHETHER TJET GREATER THAN 150 MSEC.
063049,000250: 
063050,000251: 17,3413           31740                           CAE      TTOAXIS                               
063051,000252: 17,3414           00006                           EXTEND                                         
063052,000253: 17,3415           73672                           MP       -.15AT2                               #  H - .15 TTOAXIS - .01125 G.T. ZERO
063053,000254: 17,3416           61745                           AD       HH                                    #        (SCALED AT 8 SEC(2) )
063054,000255: 17,3417           63663                           AD       -.0112A8                              
063055,000256: 17,3420           00006                           EXTEND                                         
063056,000257: 17,3421           63450                           BZMF     FORMULA2                              
063057,000258: 
063058,000259:                                                                                                  #  IF TJET GREATER THAN 150 MSEC, ASSIGN IT VALUE OF 250 MSEC, SINCE THIS
063059,000260:                                                                                                  #  IS ENOUGH TO ASSURE NO SKIP NEXT CSP (100 MSEC).
063060,000261: 
063061,000262: 17,3422           34741        FULLTIME           CAF      BIT11                                 #  250 MSEC SCALED AT 4 SEC.
063062,000263: 
063063,000264:                                                                                                  #  RETURN TO CALLING PROGRAM WITH JET TIME SCALED AS TIME6 AND SIGNED.
063064,000265: 
063065,000266: 17,3423           00006        RETURNTJ           EXTEND                                         #  ALL BRANCHES TERMINATE HERE WITH TJET
063066,000267: 17,3424           71736                           MP       ROTSENSE                              #        (SCALED AT 4 SEC) IN THE ACCUMULATOR.
063067,000268: 17,3425           51476                           INDEX    AXISCTR                               #  ROTSENSE APPLIES SIGN AND CHANGES SCALE.
063068,000269: 17,3426           55525                           TS       TJETU                                 
063069,000270: 17,3427           00006                           EXTEND                                         
063070,000271: 17,3430           51476                           INDEX    AXISCTR                               
063071,000272: 17,3431           71547                           MP       ACCSWU                                #  SET SWITCH FOR JET SELECT IF ROTATION IS
063072,000273: 17,3432           30001                           CAE      L                                     
063073,000274: 17,3433           00006                           EXTEND                                         #        IN A SENSE FOR WHICH 1/ACCS HAS FORCED
063074,000275: 17,3434           63437                           BZMF     +3                                    #        A MAX-JET CALCULATION.
063075,000276: 17,3435           34751                           CAF      FOUR                                  

Page 1459

063077,000278: 17,3436           55741                           TS       NUMBERT                               
063078,000279: 17,3437           01743                           TC       HOLDQ                                 #  RETURN VIA SAVED Q.
063079,000280: 
063080,000281:                                                                                                  #  TJET = H/(.025 + TTOAXIS)     FOR TJET LESS THAN 50 MSEC.
063081,000282: 
063082,000283: 17,3440           43670        FORMULA1           CS       -.025AT4                              #  .025 SEC SCALED AT 4.
063083,000284: 17,3441           61740                           AD       TTOAXIS                               #  SCALED AT 4 SECONDS.
063084,000285: 17,3442           53746                           DXCH     HH                                    #  STORE DENOMINATOR IN FIRST WORD OF H,
063085,000286: 17,3443           00006                           EXTEND                                         #        WHICH NEED NOT BE PRESERVED.  PICK UP
063086,000287: 17,3444           11745                           DV       HH                                    #        DP H AND DIVIDE BY DENOMINATOR.
063087,000288: 17,3445           00006                           EXTEND                                         
063088,000289: 17,3446           74736                           MP       BIT14                                 #  RESCALE TJET FROM 2 TO USUAL 4 SEC.
063089,000290: 17,3447           13560                           TCF      CHKMINTJ                              #  CHECK THAT TJET IS NOT LESS THAN MINIMUM
063090,000291: 
063091,000292:                                                                                                  #  TJET = (H + .00375)/(0.1 + TTOAXIS)   FOR TJET GREATER THAN 50 MSEC.
063092,000293: 
063093,000294: 17,3450           00006        FORMULA2           EXTEND                                         
063094,000295: 17,3451           33674                           DCA      .00375A8                              #  .00375 SEC(2) SCALED AT 8.
063095,000296: 17,3452           21746                           DAS      HH                                    #  STORE NUMERATOR IN DP H, WHICH NEED NOT
063096,000297:                                                                                                  #        BE PRESERVED.
063097,000298: 17,3453           31740                           CAE      TTOAXIS                               #  SCALED AT 4 SEC.
063098,000299: 17,3454           63664                           AD       .1AT4                                 #  0.1 SEC SCALED AT 4.
063099,000300: 17,3455           53746                           DXCH     HH                                    #  STORE DENOMINATOR IN FIRST WORD OF H,
063100,000301: 17,3456           00006                           EXTEND                                         #        WHICH NEED NOT BE PRESERVED.  PICK UP
063101,000302: 17,3457           11745                           DV       HH                                    #        DP NUMERATOR AND DIVIDE BY DENOMINATOR
063102,000303: 17,3460           00006                           EXTEND                                         
063103,000304: 17,3461           74736                           MP       BIT14                                 #  RESCALE TJET FROM 2 TO USUAL 4 SEC.
063104,000305: 17,3462           13423                           TCF      RETURNTJ                              #  END SUBROUTINE.
063105,000306: 
063106,000307:                                                                                                  #  SUBROUTINIZED COMPUTATIONS REQUIRED FOR ALL ENTRIES INTO CODING FOR ZONES 1, 2, AND 3.
063107,000308:                                                                                                  #  REACHED BY TC FROM 3 POINTS IN TJETLAW.
063108,000309: 
063109,000310: 17,3463           41736        Z123COMP           CS       ROTSENSE                              #  USED IN RETURNTJ SECTION TO RESCALE TJET
063110,000311: 17,3464           55736                           TS       ROTSENSE                              #        AS TIME6 AND GIVE IT PROPER SIGN.
063111,000312: 17,3465           31425                           CAE      EDOT                                  #  SCALED AT PI/2(5) RAD/SEC.
063112,000313: 17,3466           00006                           EXTEND                                         
063113,000314: 17,3467           51742                           INDEX    ADRSDIF2                              
063114,000315: 17,3470           71567                           MP       1/ANET1                               #  SCALED AT 2(7)/PI SEC(2)/RAD.
063115,000316: 17,3471           55740                           TS       TTOAXIS                               #  STORE TIME-TO-AXIS SCALED AT 4 SECONDS.
063116,000317: 17,3472           63675                           AD       -TJMAX                                
063117,000318: 17,3473           00006                           EXTEND                                         #  IS TIME TO AXIS LESS THAN 150 MSEC.
063118,000319: 17,3474           63476                           BZMF     +2                                    
063119,000320: 17,3475           13422                           TCF      FULLTIME                              #  NO. FIRE JETS, DO NOT CALCULATE TJET.
063120,000321: 17,3476           00002                           RETURN                                         #  YES.  GO ON TO FIND TJET
063121,000322: 
063122,000323: 17,3477           03463        ZON1,2,3           TC       Z123COMP                              #  SUBROUTINIZED PREPARATION FOR ZONE1,2,3.
063123,000324: 
063124,000325:                                                                                                  #  IF THE (NEG) DISTANCE BEYOND PARABOLA IS LESS THAN FLAT, USE SPECIAL
063125,000326:                                                                                                  #  LOGIC TO ACQUIRE MINIMUM IMPULSE LIMIT CYCLE.  DURING POWERED FLIGHT

Page 1460

063127,000328:                                                                                                  #  OR ULLAGE, FLAT = 0
063128,000329: 
063129,000330: 17,3500           31737                           CAE      FIREFCT                               #  SCALED AT PI/4 RAD.
063130,000331: 17,3501           61555                           AD       FLAT                                  
063131,000332: 17,3502           00006                           EXTEND                                         
063132,000333: 17,3503           63517                           BZMF     ZONE1                                 #  NOT IN SPECIAL ZONES.
063133,000334: 
063134,000335:                                                                                                  #  FIRE FOR AXIS OR, IF CLOSE, FIRE MINIMUM IMPULSE.  IF ON AXIS, COAST.
063135,000336: 
063136,000337: 17,3504           41556        ZONE2,3            CS       ZONE3LIM                              #  HEIGHT OF MIN-IMPULSE ZONE SET BY 1/ACCS
063137,000338: 17,3505           61740                           AD       TTOAXIS                               #        35 MSEC IN DRIFTING FLIGHT
063138,000339: 17,3506           00006                           EXTEND                                         #        ZERO WHEN TRYING TO ENTER GTS CONTROL.
063139,000340: 17,3507           63512                           BZMF     ZONE3                                 
063140,000341: 17,3510           31740        ZONE2              CAE      TTOAXIS                               #  FIRE TO AXIS.
063141,000342: 17,3511           13423                           TCF      RETURNTJ                              
063142,000343: 17,3512           11425        ZONE3              CCS      EDOT                                  #  CHECK IF EDOT IS ZERO.
063143,000344: 17,3513           34746                           CAF      BIT6                                  #  FIRE A ONE-JET MINIMUM IMPULSE.
063144,000345: 17,3514           13423                           TCF      RETURNTJ                              #  TJET = +0.
063145,000346: 17,3515           05677                           TC       CCSHOLE                               #  CANNOT BE BECAUSE NEG EDOT COMPLEMENTED.
063146,000347: 17,3516           13423                           TCF      RETURNTJ                              #  TJET = +0.
063147,000348: 
063148,000349: 17,3517           00006        ZONE1              EXTEND                                         
063149,000350: 17,3520           51744                           INDEX    ADRSDIF1                              
063150,000351: 17,3521           61605                           SU       AXISDIST                              #  SCALED AT PI/4 RAD.
063151,000352: 17,3522           00006                           EXTEND                                         
063152,000353: 17,3523           51742                           INDEX    ADRSDIF2                              
063153,000354: 17,3524           71575                           MP       ACCFCTZ1                              #  SCALED AT 2(7)/PI SEC(2)/RAD.
063154,000355: 17,3525           20001                           DDOUBL                                         
063155,000356: 17,3526           20001                           DDOUBL                                         
063156,000357: 17,3527           53746                           DXCH     HH                                    #  DOUBLE PRECISION H SCALED AT 8 SEC(2).
063157,000358: 
063158,000359:                                                                                                  #  TEST WHETHER TOTAL TIME REQUIRED GREATER THAN 150 MSEC:
063159,000360:                                                                                                  #                             2                                   2
063160,000361:                                                                                                  #        IS .5(.150 - TTOAXIS)  - H  NEGATIVE (SCALED AT 8 SECONDS )
063161,000362: 
063162,000363: 17,3530           31740                           CAE      TTOAXIS                               #  TTOAXIS SCALED AT 4 SECONDS.
063163,000364: 17,3531           63675                           AD       -TJMAX                                #  -.150 SECOND SCALED AT 4.
063164,000365: 17,3532           00006                           EXTEND                                         
063165,000366: 17,3533           70000                           SQUARE                                         
063166,000367: 17,3534           00006                           EXTEND                                         
063167,000368: 17,3535           61745                           SU       HH                                    #  HIGH WORD OF H SCALED AT 8 SEC(2).
063168,000369: 17,3536           00006                           EXTEND                                         
063169,000370: 17,3537           63422                           BZMF     FULLTIME                              #  YES.  NEED NOT CALCULATE TJET.
063170,000371: 
063171,000372:                                                                                                  #  TEST WHETHER TIME BEYOND AXIS GREATER THAN 50 MSEC TO DETERMINE WHICH APPROXIMATION TO USE.
063172,000373: 
063173,000374: 17,3540           31745                           CAE      HH                                    
063174,000375: 17,3541           67745                           AD       NEG2                                  
063175,000376: 17,3542           00006                           EXTEND                                         
063176,000377: 17,3543           63553                           BZMF     FORMULA3                              
063177,000378: 

Page 1461

063179,000380:                                                                                                  #  TJET = H/0.1 + TTOAXIS + .0375        FOR APPROXIMATION OVER MORE THAN 50 MSEC.
063180,000381: 
063181,000382: 17,3544           33665                           CAF      .1AT2                                 #  STORE .1 SEC SCALED AT 2 FOR DIVISION.
063182,000383: 17,3545           53746                           DXCH     HH                                    #  DP H SCALED AT 8 SEC(2) NEED NOT BE
063183,000384: 17,3546           00006                           EXTEND                                         #        PRESERVED.
063184,000385: 17,3547           11745                           DV       HH                                    #  QUOTIENT SCALED AT 4 SECONDS.
063185,000386: 17,3550           61740                           AD       TTOAXIS                               #  SCALED AT 4 SEC.
063186,000387: 17,3551           63666                           AD       .0375AT4                              #  .0375 SEC SCALED AT 4.
063187,000388: 17,3552           13423                           TCF      RETURNTJ                              #  END COMPUTATION.
063188,000389: 
063189,000390:                                                                                                  #  TJET = H/.O25 + TTOAXIS       FOR APPROXIMATION OVER LESS THAN 50 MSEC.
063190,000391: 
063191,000392: 17,3553           43667        FORMULA3           CS       -.025AT2                              #  STORE +.025 SEC SCALED AT 2 FOR DIVISION
063192,000393: 17,3554           53746                           DXCH     HH                                    #  PICK UP DP H AT 8, WHICH NEED NOT BE
063193,000394: 17,3555           00006                           EXTEND                                         #        PRESERVED.
063194,000395: 17,3556           11745                           DV       HH                                    #  QUOTIENT SCALED AT 4 SECONDS.
063195,000396: 17,3557           61740                           AD       TTOAXIS                               #  SCALED AT 4 SEC.
063196,000397: 
063197,000398:                                                                                                  #  IF COMPUTED JET TIME IS LESS THAN TJMIN, TJET IS SET TO ZERO.
063198,000399:                                                                                                  #  MINIMUM IMPULSES REQUIRED IN ZONE 3 ARE NOT SUBJECT TO THIS CONSTRAINT, NATURALLY.
063199,000400: 
063200,000401: 17,3560           63677        CHKMINTJ           AD       -TJMIN                                #  IS COMPUTED TIME LESS THAN THE MINIMUM.
063201,000402: 17,3561           00006                           EXTEND                                         
063202,000403: 17,3562           63357                           BZMF     COASTTJ                               #  YES, SET TIME TO ZERO.
063203,000404: 17,3563           63676                           AD       TJMIN                                 #  NO, RESTORE COMPUTED TIME.
063204,000405: 17,3564           13423                           TCF      RETURNTJ                              #  END COMPUTATION.
063205,000406: 

Page 1462

063207,000408:                                                                                                  #  *** ROUGHLAW ***
063208,000409: 
063209,000410:                                                                                                  #  BEFORE ENTRY TO RUFLAW:
063210,000411:                                                                                                  #        1. INDEXERS ADRSDIF1 AND ADRSDIF2 ARE SET ON BASIS OF AXIS, AND SIGN OF EDOT.
063211,000412:                                                                                                  #        2. IF EDOT WAS NEGATIVE, E AND EDOT ARE ROTATED INTO UPPER HALF-PLANE AND ROTSENSE IS MADE NEGATIVE.
063212,000413:                                                                                                  #        3. E IS SCALED AT PI RADIANS AND EDOT AT PI/4 RAD/SEC.
063213,000414:                                                                                                  #           (EXCEPT THE RUFLAW3 ENTRY WHEN E IS AT PI/4)
063214,000415: 
063215,000416:                                                                                                  #  RUFLAW1:      ERROR MORE NEGATIVE THAN PI/16 RAD.  FIRE TO A RATE OF PI/32 RAD/SEC (IF JET TIME EXCEEDS 20 MSEC.).
063216,000417:                                                                                                  #  RUFLAW2:      ERROR MORE POSITIVE THAN PI/16 RAD.  FIRE TO OPPOSING RATE OF PI/32 RAD/SEC.
063217,000418:                                                                                                  #  RUFLAW3:      ERROR RATE GREATER THAN PI/32 RAD/SEC AND ERROR WITHIN BOUNDS.  COAST IF BELOW FIREFCT, FIRE IF ABOVE
063218,000419: 
063219,000420: 17,3565           44740        RUFLAW1            CS       BIT12                                 #  DECREMENT EDOT BY PI/32 RAD/SEC, WHICH
063220,000421: 17,3566           27425                           ADS      EDOT                                  #        IS THE TARGET RATE.
063221,000422: 17,3567           00006                           EXTEND                                         
063222,000423: 17,3570           63611                           BZMF     SMALRATE                              #  BRANCH IF RATE LESS THAN TARGET.
063223,000424: 17,3571           03647                           TC       RUFSETUP                              #  REVERSE ROTSENSE AND INDICATE MAX JETS.
063224,000425: 17,3572           31425                           CAE      EDOT                                  #  PICK UP DESIRED RATE CHANGE.
063225,000426: 
063226,000427: 17,3573           00006        RUFLAW12           EXTEND                                         #  COMPUTE TJET
063227,000428: 17,3574           51742                           INDEX    ADRSDIF2                              #        = (DESIRED RATE CHANGE)/(2-JET ACCEL.)
063228,000429: 17,3575           71571                           MP       1/ANET1    +2                         
063229,000430: 17,3576           67740                           AD       -1/8                                  #  IF TJET, SCALED AT 32 SEC, EXCEEDS
063230,000431: 17,3577           00006                           EXTEND                                         #        4 SECONDS, SET TJET TO TJMAX.
063231,000432: 17,3600           63602                           BZMF     +2                                    
063232,000433: 17,3601           13422                           TCF      FULLTIME                              
063233,000434: 17,3602           00006                           EXTEND                                         
063234,000435: 17,3603           13422                           BZF      FULLTIME                              
063235,000436: 17,3604           64740                           AD       BIT12                                 #  RESTORE COMPUTED TJET TO ACCUMULATOR.
063236,000437: 17,3605           20001                           DAS      A                                     
063237,000438: 17,3606           20001                           DAS      A                                     
063238,000439: 17,3607           20001                           DAS      A                                     #  RESCALED TJET AT 4 SECONDS.
063239,000440: 17,3610           13560                           TCF      CHKMINTJ                              #  RETURN AS FROM FINELAW.
063240,000441: 
063241,000442: 17,3611           03651        SMALRATE           TC       RUFSETUP   +2                         #  SET NUMBERT AND FIREFCT FOR MAXIMUM JETS
063242,000443: 17,3612           11736                           CCS      ROTSENSE                              
063243,000444: 17,3613           34753                           CAF      ONE                                   #  MODIFY INDEXER TO POINT TO 1/ANET
063244,000445: 17,3614           13616                           TCF      +2                                    #        CORRESPONDING TO THE PROPER SENSE.
063245,000446: 17,3615           37746                           CAF      NEGONE                                
063246,000447: 17,3616           27742                           ADS      ADRSDIF2                              
063247,000448: 
063248,000449: 17,3617           41425                           CS       EDOT                                  #  PICK UP (PI/32-EDOT)=DESIRED CHANGE.
063249,000450: 17,3620           13573                           TCF      RUFLAW12                              
063250,000451: 
063251,000452: 17,3621           03647        RUFLAW2            TC       RUFSETUP                              #  REVERSE ROTSENSE AND INDICATE MAX JETS.
063252,000453: 17,3622           34740                           CAF      BIT12                                 
063253,000454: 17,3623           61425                           AD       EDOT                                  #  PICK UP(PI/32+EDOT) = DESIRED RATE CHANGE
063254,000455: 17,3624           54000                           TS       A                                     #  IF OVERFLOW SKIP, FIRE FOR FULL TIME.
063255,000456: 

Page 1463

063257,000458: 17,3625           13573                           TCF      RUFLAW12                              #  OTHERWISE, COMPUTE JET TIME.
063258,000459: 17,3626           13422                           TCF      FULLTIME                              
063259,000460: 
063260,000461: 17,3627           03647        RUFLAW3            TC       RUFSETUP                              #  EXECUTE COMMON RUFLAW SUBROUTINE.
063261,000462: 17,3630           51744                           INDEX    ADRSDIF1                              
063262,000463: 17,3631           41601                           CS       FIREDB                                #  CALCULATE DISTANCE FROM SWITCH CURVE
063263,000464: 17,3632           61750                           AD       E                                     #        1/ANET1*EDOT*EDOT +E - FIREDB = 0
063264,000465: 17,3633           00006                           EXTEND                                         #                SCALED AT 4 PI RADIANS
063265,000466: 17,3634           74741                           MP       BIT11                                 
063266,000467: 17,3635           57425                           XCH      EDOT                                  
063267,000468: 17,3636           00006                           EXTEND                                         
063268,000469: 17,3637           70000                           SQUARE                                         
063269,000470: 17,3640           00006                           EXTEND                                         
063270,000471: 17,3641           51744                           INDEX    ADRSDIF1                              
063271,000472: 17,3642           71571                           MP       1/ANET1    +2                         
063272,000473: 17,3643           61425                           AD       EDOT                                  
063273,000474: 17,3644           00006                           EXTEND                                         
063274,000475: 17,3645           63357                           BZMF     COASTTJ                               #  COAST IF BELOW IT.
063275,000476: 17,3646           13422                           TCF      FULLTIME                              #  FIRE FOR FULL PERIOD IF ABOVE IT.
063276,000477: 
063277,000478:                                                                                                  #  SUBROUTINE USED IN ALL ENTRIES TO ROUGHLAW.
063278,000479: 
063279,000480: 17,3647           41736        RUFSETUP           CS       ROTSENSE                              #  REVERSE ROTSENSE WHEN ENTER HERE.
063280,000481: 17,3650           55736                           TS       ROTSENSE                              
063281,000482: 17,3651           34751                 +2        CAF      FOUR                                  #  REQUIRE MAXIMUM (2) JETS IN U,V-AXES.
063282,000483: 17,3652           55741                           TS       NUMBERT                               
063283,000484: 17,3653           34735                           CAF      NEGMAX                                #  SUGGEST MAXIMUM (4) JETS IN P-AXIS.
063284,000485: 17,3654           55737                           TS       FIREFCT                               
063285,000486: 17,3655           00002                           TC       Q                                     
063286,000487: 
063287,000488:                                                                                                  #  CONSTANTS FOR TJETLAW
063288,000489: 
063289,000490: 17,3656           77757                           DEC      -16        B-14                       #  AXISDIFF(INDEX) = NUMBER OF REGISTERS
063290,000491: 17,3657           00000        AXISDIFF           DEC      +0         B-14                       #        BETWEEN STORED 1/ACCS PARAMETERS FOR
063291,000492: 17,3660           00020                           DEC      16         B-14                       #        THE INDEXED AXIS AND THE U-AXIS.
063292,000493: 17,3661           14400        SENSOR             OCT      14400                                 #  RATIO OF TJET SCALING WITHIN TJETLAW
063293,000494:                                                                                                  #        (4 SEC) TO SCALING FOR T6 (10.24 SEC).
063294,000495: 17,3662           76447        -2DEG              DEC      -.04444                               #  -2.0 DEGREES SCALED AT 45.
063295,000496: 17,3663           77750        -.0112A8           DEC      -.00141                               #  -.01125 SEC(2) SCALED AT 8.
063296,000497: 17,3664           00632        .1AT4              DEC      .025                                  #  0.1 SECOND SCALED AT 4.
063297,000498: 17,3665           01463        .1AT2              DEC      .05                                   #  0.1 SEC SCALED AT 2.
063298,000499: 17,3666           00232        .0375AT4           DEC      .00938                                #  .0375 SEC SCALED AT 4.
063299,000500: 17,3667           77462        -.025AT2           DEC      -.0125                                #  -.025 SEC SCALED AT 2.
063300,000501: 17,3670           77631        -.025AT4           DEC      -.00625                               
063301,000502: 17,3671           77145        -.05AT2            DEC      -.025                                 
063302,000503: 17,3672           75462        -.15AT2            DEC      -.075                                 
063303,000504: 17,3673           00007 25605  .00375A8           2DEC     .00375     B-3                        
063304,000505: 
063305,000506: 17,3675           76631        -TJMAX             DEC      -.0375                                #  LARGEST CALCULATED TIME.  .150 SEC AT 4.
063306,000507: 17,3676           00122        TJMIN              DEC      .005                                  #  SMALLEST ALLOWABLE TIME.  .020 SEC AT 4.

Page 1464

063308,000509: 17,3677           77655        -TJMIN             DEC      -.005                                 

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