Source Code

043736,000001: # Copyright: Public domain. 043737,000002: # Filename: TVCROLLDAP.agc 043738,000003: # Purpose: Part of the source code for Colossus 2A, AKA Comanche 055. 043739,000004: # It is part of the source code for the Command Module's (CM) 043740,000005: # Apollo Guidance Computer (AGC), for Apollo 11. 043741,000006: # Assembler: yaYUL 043742,000007: # Contact: Ron Burkey <info@sandroid.org>. 043743,000008: # Website: www.ibiblio.org/apollo. 043744,000009: # Pages: 984-998 043745,000010: # Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the 043746,000011: # same name, using Comanche055 page images. 043747,000012: # 2011-05-08 JL Removed workarounds. 043748,000013: 043749,000014: # This source code has been transcribed or otherwise adapted from digitized 043750,000015: # images of a hardcopy from the MIT Museum. The digitization was performed 043751,000016: # by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many 043752,000017: # thanks to both. The images (with suitable reduction in storage size and 043753,000018: # consequent reduction in image quality as well) are available online at 043754,000019: # www.ibiblio.org/apollo. If for some reason you find that the images are 043755,000020: # illegible, contact me at info@sandroid.org about getting access to the 043756,000021: # (much) higher-quality images which Paul actually created. 043757,000022: 043758,000023: # Notations on the hardcopy document read, in part: 043759,000024: 043760,000025: # Assemble revision 055 of AGC program Comanche by NASA 043761,000026: # 2021113-051. 10:28 APR. 1, 1969 043762,000027: 043763,000028: # This AGC program shall also be referred to as 043764,000029: # Colossus 2A 043765,000030: 043766,000031: # Page 984 043767,000032: # PROGRAM NAME....TVC ROLL AUTOPILOT 043768,000033: # LOG SECTION....TVCROLLDAP SUBROUTINE....DAPCSM 043769,000034: # MOD BY SCHLUNDT 21 OCTOBER 1968 043770,000035: 043771,000036: # FUNCTIONAL DESCRIPTION.... 043772,000037: 043773,000038: # *AN ADAPTATION OF THE LEM P-AXIS CONTROLLER 043774,000039: # *MAINTAIN OGA WITHIN 5 DEG DEADBND OF OGAD, WHERE OGAD = OGA AS SEEN 043775,000040: # BY IGNOVER (P40) 043776,000041: # *MAINTAIN OGA RATE LESS THAN 0.1 DEG/SEC LIMIT CYCLE RATE 043777,000042: # *SWITCHING LOGIC IN PHASE PLANE.... SEE GSOP CHAPTER 3 043778,000043: # *USES T6 CLOCK TO TIME JET FIRINGS. 043779,000044: # *MAXIMUM JET FIRING TIME = 2.56 SECONDS, LIMITED TO 2.5 IF GREATER 043780,000045: # *MINIMUM JET FIRING TIME = 15 MS 043781,000046: # *JET PAIRS FIRE ALTERNATELY 043782,000047: # *AT LEAST 1/2 SECOND DELAY BEFORE A NEW JET PAIR IS FIRED 043783,000048: # *JET FIRINGS MAY NOT BE EXTENDED, ONLY SHORTENED, WHEN RE-EVALUATION 043784,000049: # OF A JET FIRING TIME IS MADE ON A LATER PASS 043785,000050: 043786,000051: # CALLING SEQUENCE.... 043787,000052: 043788,000053: # *ROLLDAP CALL VIA WAITLIST, IN PARTICULAR BY TVCEXEC (EVERY 1/2 SEC) 043789,000054: # WITH A 3CS DELAY TO ALLOW FREE TIME FOR OTHER RUPTS (DWNRPT, ETC.) 043790,000055: 043791,000056: # NORMAL EXIT MODES.... ENDOFJOB 043792,000057: 043793,000058: # ALARM OR ABORT EXIT MODES.... NONE 043794,000059: 043795,000060: # SUBROUTINES CALLED.....NONE 043796,000061: 043797,000062: # OTHER INTERFACES.... 043798,000063: 043799,000064: # *TVCEXEC SETS UP ROLLDAP TASK EVERY 1/2 SECOND AND UPDATES 1/CONACC 043800,000065: # EVERY 10 SECONDS (VIA MASSPROP AND S40.15) 043801,000066: # *RESTARTS SUSPEND ROLL DAP COMPUTATIONS UNTIL THE NEXT 1/2 SEC 043802,000067: # SAMPLE PERIOD. (THE PART OF TVCEXECUTIVE THAT CALLS ROLL DAP IS 043803,000068: # NOT RESTARTED.) THE OGAD FROM IGNITION IS MAINTAINED. 043804,000069: 043805,000070: # ERASABLE INITIALIZATION REQUIRED 043806,000071: 043807,000072: # *1/CONACC (S40.15) 043808,000073: # *OGAD (CDUX, AT IGNITION) 043809,000074: # *OGANOW (CDUX AT TVCINIT4 AND TVCEXECUTIVE) 043810,000075: # *OGAPAST (OGANOW AT TVCEXECUTIVE) 043811,000076: # *ROLLFIRE = TEMREG = ROLLWORD = 0 (MRCLEAN LOOP IN TVCDAPON) 043812,000077: 043813,000078: # OUTPUT.... 043814,000079: 043815,000080: # *ROLL JET PAIR FIRINGS 043816,000081: 043817,000082: # Page 985 043818,000083: # DEBRIS.... MISCELLANEOUS, SHAREABLE WITH RCS/ENTRY, IN EBANK6 ONLY 043819,000084: 043820,000085: # Page 986 043821,000086: # SOME NOTES ON THE ROLL AUTOPILOT, AND IN PARTICULAR, ON ITS SWITCHING 043822,000087: # LOGIC. SEE SECTION THREE OF THE GSOP (SUNDISK/COLOSSUS) FOR DETAILS. 043823,000088: 043824,000089: # SWITCHING LOGIC IN THE PHASE PLANE.... 043825,000090: 043826,000091: # OGARATE 043827,000092: # * 043828,000093: # * 043829,000094: # * * * * * * * * * * * * 043830,000095: # * (REGION 1, SEE TEXT BELOW) 043831,000096: # * * 043832,000097: # * 043833,000098: # * * * * * * * (COAST) * ...PARABOLA (SWITCHING = CONTROL) 043834,000099: # * * . 043835,000100: # * * * 043836,000101: # * * (FIRE NEG ROLL JETS) 043837,000102: # * * * 043838,000103: # (-DB,+LMCRATE)....* * 043839,000104: # * * * 043840,000105: # * * OGAERROR 043841,000106: # ************************************************************************ 043842,000107: # * * (-AK, OGAERR) 043843,000108: # * * * (REGION 6-PRIME) 043844,000109: # * * (SEE TEXT BELOW) 043845,000110: # * * * 043846,000111: # * * ...STRAIGHT LINE 043847,000112: # (FIRE POS ROLL JETS) * * * . 043848,000113: # * (COAST) * 043849,000114: # * * * * * * * * * * * 043850,000115: # * -MINLIM 043851,000116: # * * 043852,000117: # * 043853,000118: # * * * * * * * * * * * * * * * * 043854,000119: # * -MAXLIM 043855,000120: # * 043856,000121: # * 043857,000122: 043858,000123: # SWITCHING PARABOLAS ARE CONTROL PARABOLAS, THUS REQUIRING KNOWLEDGE OF 043859,000124: # CONTROL ACCELERATION CONACC, OR ITS RECIPROCAL, 1/CONACC, THE TVC 043860,000125: # ROLL DAP GAIN (SEE TVCEXECUTIVE VARIABLE GAIN PACKAGE). JET 043861,000126: # FIRING TIME IS SIMPLY THAT REQUIRED TO ACHIEVE THE DESIRED OGARATE, 043862,000127: # SUBJECT TO TEH LIMITATIONS DISCUSSED UNDER FUNCTIONAL DESCRIPTION, 043863,000128: # ABOVE. 043864,000129: 043865,000130: # THE THREE CONTROL REGIONS (+, -, AND ZERO TORQUE) ARE COMPRISED OF 043866,000131: # TWELVE SUBSET REGIONS ( 1...6, AND THE CORRESPONDING 1-PRIME... 043867,000132: # 5-PRIME ) SEE SECTION 3 OF THE GSOP (SUNDISK OR COLOSSUS) 043868,000133: # Page 987 043869,000134: 043870,000135: # GIVEN THE OPERATING POINT NOT IN THE COAST REGION, THE DESIRED OGARATE 043871,000136: # IS AT THE POINT OF PENETRATION OF THE COAST REGION BY THE CONTROL 043872,000137: # PARABOLA WHICH PASSES THROUGH THE OPERATING POINT. FOR REGION 3 043873,000138: # DESIRED OGARATE IS SIMPLY +-MAXLIM. FOR REGIONS 1 OR 6 THE SOLUTION 043874,000139: # TO A QUADRATIC IS REQUIRED (THE PENETRATION IS ALONG THE STRAIGHT 043875,000140: # LINE OR MINLIM BOUNDRY SWITCH LINES). AN APPROXIMATION IS MADE 043876,000141: # INSTEAD. CONSIDER AN OPERATING POINT IN REGION 6'. PASS A TANGENT TO 043877,000142: # THE CONTROL PARABOLA THROUGH THE OPERATING POINT, AND FIND ITS 043878,000143: # INTERSECTION WITH THE STRAIGHT LINE SECTION OF THE SWITCH CURVE... 043879,000144: # THE INTERSECTION DEFINES THE DESIRED OGARATE. IF THE OPERATING POINT IS 043880,000145: # CLOSE TO THE SWITCH LINE, THE APPROXIMATION IS QUITE GOOD (INDEED 043881,000146: # THE APPROXIMATE AND QUADRATIC SOLUTIONS CONVERGE IN THE LIMIT AS 043882,000147: # THE SWITCH LINE IS APPROACHED). IF THE OPERATING POINT IS NOT CLOSE 043883,000148: # TO THE SWITCH LINE, THE APPROXIMATE SOLUTION GIVES VALID TREND 043884,000149: # INFORMATION (DIRECTION OF DESIRED OGARATE) AT LEAST. THE 043885,000150: # RE-EVALUATION OF DESIRED OGARATE IN SUBSEQUENT ROLL DAP PASSES (1/2 043886,000151: # SECOND INTERVALS) WILL BENEFIT FROM THE CONVERGENT NATURE OF THE 043887,000152: # APPROXIMATION. 043888,000153: 043889,000154: # FOR LARGE OGAERROR THE TANGENT INTERSECTS +-MINLIM SWITCH BOUNDRY BEFORE 043890,000155: # INTERSECTING THE STRAIGHT LINE SWITCH. HOWEVER THE MINLIM IS 043891,000156: # IGNORED IN COMPUTING THE FIRING TIME, SO THAT THE EXTENSION (INTO 043892,000157: # THE COAST REGION) OF THE STRAIGHT LINE SWITCH IS WHAT IS FIRED TO. 043893,000158: # IF THE ROLL DAP FINDS ITSELF IN THE COAST REGION BEFORE REACHING 043894,000159: # THE DESIRED INTERSECTION (I.E., IN THE REGION BETWEEN THE MINLIM 043895,000160: # AND THE STRAIGHT LINE SWITCH) IT WILL EXHIBIT NORMAL COAST-REGION 043896,000161: # BEHAVIOR AND TURN OFF THE JETS. THE PURPOSE OF THIS FIRING POLICY 043897,000162: # IS TO MAINTAIN STATIC ROLL STABILITY IN THE EVENT OF A JET 043898,000163: # FAILED-ON. 043899,000164: 043900,000165: # WHEN THE OPERATING POINT IS IN REGION 1 THE SAME APPROXIMATION IS 043901,000166: # MADE, BUT AT AN ARTIFICIALLY-CREATED OR DUMMY OPERATING POINT, 043902,000167: # DEFINED BY: OGAERROR = INTERSECTION OF CONTROL PARABOLA AND 043903,000168: # OGAERROR AXIS, OGARATE = +-LMCRATE WHERE SIGN IS OPPOSITE THAT OF 043904,000169: # REAL OPERATING POINT RATE. WHEN THE OPERATING POINT HAS PASSED 043905,000170: # FROM REGION 1 TO REGION 6', THE DUMMY POINT IS NO LONGER REQUIRED, 043906,000171: # AND THE SOLUTION REVERTS TO THAT OF A REGULAR REGION 6' POINT. 043907,000172: 043908,000173: # EQUATION FOR SWITCHING PARABOLA (SEE FIGURE ABOVE).... 043909,000174: # 2 043910,000175: # SOGAERROR = (DB - (SOGARATE) (1/CONACC)/2) SGN(SOGARATE) 043911,000176: 043912,000177: # EQUATION FOR SWITCHING STRAIGHT LINE SEGMENT.... 043913,000178: 043914,000179: # SOGARATE = -(-SLOPE)(SOGAERROR) - SGN(SOGARATE) INTERCEP 043915,000180: 043916,000181: # WHERE INTERCEP = DB(-SLOPE) - LMCRATE 043917,000182: # Page 988 043918,000183: 043919,000184: # EQUATION FOR INTERSECTION, CONTROL PARABOLA, AND STRAIGHT SWITCH LINE.... 043920,000185: 043921,000186: # DOGADOT = NUM/DEN, WHERE 043922,000187: # 2 043923,000188: # NUM = (-SLOPE)(OGARATE) (1/CONACC) 043924,000189: # +SGN(DELOGA)(-SLOPE)(OGAERROR - SGN(DELOGA)(DB)) 043925,000190: # +LMCRATE 043926,000191: 043927,000192: # DEN = (-SLOPE)(LMCRATE)(1/CONACC) = SGN(DELOGA) 043928,000193: # 2 043929,000194: # DELOGA = OGAERROR - (DB - (OGADOT) (1/CONACC)/2)SGN(OGARATE) 043930,000195: 043931,000196: # FOR REGIONS 6 AND 6-PRIME, USE ACTUAL OPERATING POINT (OGA, OGARATE) 043932,000197: # FOR OGAERROR AND OGARATE IN THE INTERSECTION EQUATIONS ABOVE. 043933,000198: # FOR REGIONS 1 AND 1-PRIME USE DUMMY OPERATING POINT FOR OGAERROR 043934,000199: # AND OGARATE, WHERE THE DUMMY POINT IS GIVEN BY.... 043935,000200: 043936,000201: # OGAERROR = DELOGA + DB SGN(OGARATE) 043937,000202: 043938,000203: # OGARATE = -LMCRATE SGN(OGARATE) 043939,000204: 043940,000205: # NOTE, OGAERROR = OGA - OGAD USES DUMMY REGISTER OGA IN ROLL DAP CODING 043941,000206: # ALSO, AT POINT WHERE DOGADOT IS COMPUTED, REGISTER DELOGA IS USED 043942,000207: # AS A DUMMY REGISTER FOR THE OGAERROR IN THE NUM EQUATION ABOVE. 043943,000208: # Page 989 043944,000209: 043945,000210: # ROLLDAP CODING.... 043946,000211: 043947,000212: 16,2000 SETLOC DAPROLL 043948,000213: 16,2000 BANK 043949,000214: 16,3272 E6,1662 EBANK= OGANOW 043950,000215: 16,3272 COUNT* $$/ROLL 043951,000216: 16,3272 31662 ROLLDAP CAE OGANOW # OGA RATE ESTIMATOR...SIMPLE FIRST-ORDER 043952,000217: 16,3273 00006 EXTEND # DIFFERENCE (SAMPLE TIME = 1/2 SEC) 043953,000218: 16,3274 21663 MSU OGAPAST 043954,000219: 16,3275 00006 EXTEND 043955,000220: 16,3276 75013 MP BIT5 043956,000221: 16,3277 22000 LXCH A 043957,000222: 16,3300 55533 TS OGARATE # SC.AT B-4 REV/SEC 043958,000223: 043959,000224: # COMPUTATIONS WHICH FOLLOW USE OGA FOR OGAERR (SAME REGISTER) 043960,000225: # EXAMINE DURATION OF LAST ROLL FIRING IF JETS ARE NOW ON. 043961,000226: 043962,000227: 16,3301 31571 DURATION CA ROLLFIRE # SAME SGN AS PRESENT TORQ,MAGN=POSMAX 043963,000228: 16,3302 00006 EXTEND 043964,000229: 16,3303 13305 BZF +2 # ROLL JETS ARE NOW OFF. 043965,000230: 16,3304 13313 TCF ROLLOGIC # ENTER LOGIC, JETS NOW ON. 043966,000231: 043967,000232: 16,3305 31573 CAE TEMREG # EXAMINE LAST FIRING INTERVAL 043968,000233: 16,3306 00006 EXTEND # IF POSITIVE, DON'T FIRE 043969,000234: 16,3307 13313 BZF ROLLOGIC # ENTER LOGIC, JETS NOW OFF. 043970,000235: 043971,000236: 16,3310 35021 CAF ZERO # JETS HAVE NOT BEEN OFF FOR 1/2 SEC. WAIT 043972,000237: 16,3311 55573 TS TEMREG # RESET TEMREG 043973,000238: 16,3312 15324 WAIT1/2 TCF TASKOVER # EXIT ROLL DAP 043974,000239: 043975,000240: # COMPUTE DB-(1/2 CONACC) (OGARATE)SQ (1/2 IN THE SCALING) 043976,000241: 043977,000242: 16,3313 41533 ROLLOGIC CS OGARATE # SCALED AT 2(-4) REV/SEC 043978,000243: 16,3314 00006 EXTEND 043979,000244: 16,3315 71640 MP 1/CONACC # SCALED AT 2(+9) SEC SQ /REV 043980,000245: 16,3316 00006 EXTEND 043981,000246: 16,3317 71533 MP OGARATE 043982,000247: 16,3320 63706 AD DB # SCALED AT 2(+0) REV 043983,000248: 16,3321 55573 TS TEMREG # QUANTITY SCALED AT 2(+0) REV. 043984,000249: 043985,000250: # GET SIGN OF OGARATE 043986,000251: 043987,000252: 16,3322 31533 CA OGARATE 043988,000253: 16,3323 00006 EXTEND 043989,000254: 16,3324 63327 BZMF +3 # LET SGN(0) BE NEGATIVE 043990,000255: 16,3325 35017 CA BIT1 043991,000256: 16,3326 13330 TCF +2 043992,000257: 16,3327 45017 CS BIT1 043993,000258: 16,3330 55666 TS SGNRT # + OR - 2(-14) 043994,000259: 043995,000260: # Page 990 043996,000261: # CALCULATE DISTANCE FROM SWITCH PARABOLA,DELOGA 043997,000262: 16,3331 00006 EXTEND 043998,000263: 16,3332 71573 MP TEMREG # SGN(OGARATE) TEMREG NOW IN L 043999,000264: 16,3333 40001 CS L 044000,000265: 16,3334 61664 AD OGA # SCALED AT 2(+0) REV 044001,000266: 16,3335 55667 DELOGAC TS DELOGA # SC.AT B+0 REV, PLUS TO RIGHT OF C-PARAB 044002,000267: 044003,000268: # EXAMINE SGN(DELOGA) AND CREATE CA OR CS INSTR. DEPENDING UPON SIGN. 044004,000269: 044005,000270: 16,3336 00006 EXTEND 044006,000271: 16,3337 63342 BZMF +3 044007,000272: 16,3340 34371 CAF PRIO30 # = CA (30000) 044008,000273: 16,3341 13343 TCF +2 044009,000274: 16,3342 35001 CAF BIT15 # = CS (40000) 044010,000275: 16,3343 55670 TS I 044011,000276: 044012,000277: 16,3344 51670 INDEX I # TSET ON I SGN(OGARATE) 044013,000278: 16,3345 01666 0 SGNRT # CA OR CS 044014,000279: 16,3346 40000 COM 044015,000280: 16,3347 00006 EXTEND 044016,000281: 16,3350 63421 REG1TST BZMF ROLLON # IF REGION 1 (DELOGA OGARATE SAME SIGN) 044017,000282: 044018,000283: # NO JET FIRE YET. TEST FOR MAX OGARATE. 044019,000284: 044020,000285: 16,3351 51670 INDEX I 044021,000286: 16,3352 01533 0 OGARATE # CA OR CS...BOTH MUST BE NEG. HERE 044022,000287: 16,3353 55671 TS IOGARATE # I.E., I OGARATE 044023,000288: 16,3354 63714 AD MAXLIM # SCALED AT 2(-4) REV/SEC 044024,000289: 16,3355 00006 EXTEND 044025,000290: 16,3356 63500 REG3TST BZMF RATELIM # IF REGION 3 (RATES TOO HIGH, FIRE JETS) 044026,000291: 044027,000292: # COMPUTATION OF I((-SLOPE)OGA + OGARATE) - INTERCEPT: NOTE THAT STR. LINE 044028,000293: # SWITCH SLOPE IS (SLOPE) DEG/SEC/DEG, A NEG. QUANTITY 044029,000294: 044030,000295: 16,3357 31533 CA OGARATE 044031,000296: 16,3360 00006 EXTEND 044032,000297: 16,3361 75002 MP BIT14 044033,000298: 16,3362 55573 TS TEMREG 044034,000299: 16,3363 31664 CA OGA 044035,000300: 16,3364 00006 EXTEND 044036,000301: 16,3365 73707 MP -SLOPE 044037,000302: 16,3366 20001 DDOUBL 044038,000303: 16,3367 20001 DDOUBL 044039,000304: 16,3370 20001 DDOUBL # (OGA ERROR MUST BE LESS THAN +-225 DEG) 044040,000305: 16,3371 61573 AD TEMREG 044041,000306: 044042,000307: 16,3372 51670 INDEX I 044043,000308: 16,3373 00000 0 A # I((-SLOPE)OGA+OGARATE) AT 2(-3)REV/SEC 044044,000309: 16,3374 40000 COM 044045,000310: # Page 991 044046,000311: 16,3375 63711 AD INTERCEP # SCALED AT 2(-3) REV. 044047,000312: 16,3376 40000 COM 044048,000313: 16,3377 00006 EXTEND 044049,000314: 16,3400 63611 REG2TST BZMF NOROLL # IP REGION 2 (COAST SIDE OF STRT LINE) 044050,000315: 044051,000316: # CHECK TO SEE IF OGARATE IS ABOVE MINLIM 044052,000317: 044053,000318: 16,3401 31671 CA IOGARATE # ALWAYS NEGATIVE 044054,000319: 16,3402 63712 AD MINLIM # SCALED AT 2(-4) REV/SEC. 044055,000320: 16,3403 00006 EXTEND 044056,000321: 16,3404 63611 REG4TST BZMF NOROLL # IF REGION 4 (COAST SIDE OF MINLIM) 044057,000322: 044058,000323: # ALL AREAS CHECKED EXCEPT LAST AREA...NO FIRE IN THIS SMALL SEGMENT 044059,000324: 044060,000325: 16,3405 51670 INDEX I 044061,000326: 16,3406 01664 0 OGA 044062,000327: 16,3407 40000 COM 044063,000328: 16,3410 63706 AD DB 044064,000329: 16,3411 40000 COM 044065,000330: 16,3412 00006 EXTEND 044066,000331: 16,3413 63611 REG5TST BZMF NOROLL # IF REGION 5 (COAST SIDE OF DB) 044067,000332: 044068,000333: # JETS MUST FIRE NOW. OGARATE IS NEG. (OR VICE VERSA). USE DIRECT STR. LINE. 044069,000334: # DELOGA AND DELOGART ARE USED AS DUMMY VARIABLES IN THE SOLUTION OF A 044070,000335: # STRAIGHT LINE APPROXIMATION TO A QUADRATIC SOLUTION OF THE INTERSECTION 044071,000336: # OF THE CONTROL PARABOLA AND THE STRAIGHT-LINE SWITCH LINE. THE STRAIGHT 044072,000337: # LINE IS THE TANGENT TO THE CONTROL PARABOLA AT THE OPERATING POINT. (FOR 044073,000338: # OPERATING POINTS IN REGIONS 6 AND 6') 044074,000339: 044075,000340: 16,3414 31664 REGION6 CAE OGA # USE ACTUAL OPERATING POINT FOR TANGENT 044076,000341: 16,3415 55667 TS DELOGA # ACTUAL STATE 044077,000342: 16,3416 31533 CA OGARATE 044078,000343: 16,3417 55665 TS DELOGART # ACTUAL STATE, I.E., DEL OGARATE 044079,000344: 16,3420 13430 TCF ONROLL 044080,000345: 044081,000346: # JETS ALSO FIRE FROM HERE EXCEPT OGARATE IS POS (VICE VERSA), USE INDIRECT 044082,000347: # STRAIGHT LINE ESTABLISHED BY TANGENT TO A CONTROL PARABOLA AT ((DELOGA 044083,000348: # + DB SGN(DELOGA) ), -LMCRATE SGN(DELOGA) ) (THIS IS THE DUMMY 044084,000349: # OPERATING POINT FOR OPERATING POINTS IN REGIONS 1 AND 1') 044085,000350: 044086,000351: 16,3421 51670 ROLLON INDEX I 044087,000352: 16,3422 03706 0 DB 044088,000353: 16,3423 27667 ADS DELOGA # DELOGA WAS DIST. FROM SWITCH PARABOLA 044089,000354: 044090,000355: 16,3424 43710 CS LMCRATE # LIMIT CYCLE RATE AT 2(-4) REV/SEC 044091,000356: 16,3425 51670 INDEX I 044092,000357: 16,3426 00000 0 A 044093,000358: 16,3427 55665 TS DELOGART # EVALUATE STATE FOR INDIRECT LINE. 044094,000359: 044095,000360: # Page 992 044096,000361: # SOLVE STRAIGHT LINES SIMULTANEOUSLY TO OBTAIN DESIRED OGARATE. 044097,000362: 044098,000363: 16,3430 00006 ONROLL EXTEND # DELOGART IN ACC. ON ARRIVAL 044099,000364: 16,3431 71640 MP 1/CONACC 044100,000365: 16,3432 60000 DOUBLE 044101,000366: 16,3433 00006 EXTEND 044102,000367: 16,3434 73707 MP -SLOPE 044103,000368: 16,3435 55573 TS TEMREG # 2(-SLOPE)RATE /CONACC 044104,000369: 16,3436 00006 EXTEND 044105,000370: 16,3437 71665 MP DELOGART 044106,000371: 16,3440 55665 TS DELOGART # 2(-SLOPE)(RATESQ)/CONACC 044107,000372: 16,3441 45005 CS BIT11 044108,000373: 16,3442 51670 INDEX I 044109,000374: 16,3443 00000 0 A 044110,000375: 16,3444 27573 RATEDEN ADS TEMREG # DENOMINATOR COMPLETED 044111,000376: 044112,000377: 16,3445 51670 INDEX I 044113,000378: 16,3446 01667 0 DELOGA 044114,000379: 16,3447 40000 COM 044115,000380: 16,3450 63706 AD DB 044116,000381: 16,3451 40000 COM 044117,000382: 16,3452 00006 EXTEND 044118,000383: 16,3453 73707 MP -SLOPE 044119,000384: 16,3454 27665 ADS DELOGART 044120,000385: 16,3455 33710 CA LMCRATE 044121,000386: 16,3456 00006 EXTEND 044122,000387: 16,3457 75005 MP BIT11 044123,000388: 16,3460 61665 RATENUM AD DELOGART # NUMERATOR COMPLETED 044124,000389: 044125,000390: 16,3461 56001 XCH L # PLACE NUMERATOR IN L FOR OVERFL. CHECK 044126,000391: 16,3462 35021 CA ZERO 044127,000392: 16,3463 00006 EXTEND 044128,000393: 16,3464 11573 DV TEMREG # OVERFLOW, IF ANYTHING, NOW APPEARS IN A 044129,000394: 16,3465 00006 EXTEND 044130,000395: 16,3466 13474 BZF DVOK # NO OVERFLOW....(0,L)/TEMREG = 0,L 044131,000396: 044132,000397: 16,3467 10000 MINLIMAP CCS A 044133,000398: 16,3470 34777 CAF POSMAX # POSITIVE OVERFLOW 044134,000399: 16,3471 13503 TCF ROLLSET 044135,000400: 16,3472 44777 CS POSMAX # NEGATIVE OVERFLOW 044136,000401: 16,3473 13503 TCF ROLLSET 044137,000402: 044138,000403: 16,3474 22000 DVOK LXCH A # PUT NUMERATOR BACK INTO A, 0 INTO L 044139,000404: 16,3475 00006 EXTEND 044140,000405: 16,3476 11573 DV TEMREG # RESULT OF DIVISION IS DESIRED OGARATE 044141,000406: 16,3477 13503 TCF ROLLSET # (SCALED AT B-4 REV/SEC) 044142,000407: 044143,000408: 16,3500 43714 RATELIM CS MAXLIM 044144,000409: 16,3501 51670 INDEX I 044145,000410: # Page 993 044146,000411: 16,3502 00000 0 A # IF I = CA, DESIRED RATE IS -MAXLIM 044147,000412: 044148,000413: # COMPUTE JET FIRE TIME, BASED ON DESIRED RATE MINUS PRESENT RATE 044149,000414: 044150,000415: 16,3503 55573 ROLLSET TS TEMREG # STORE DESIRED OGARATE (SCALED B-4) 044151,000416: 16,3504 00006 EXTEND 044152,000417: 16,3505 61533 SU OGARATE # RATE DIFF. SCALED AT 2(-4) REV/SEC 044153,000418: 16,3506 55573 TS TEMREG # OVERFLOW PROTECT 044154,000419: 16,3507 13512 TCF +3 # " " 044155,000420: 16,3510 50000 INDEX A # " " 044156,000421: 16,3511 45000 CS LIMITS # " " 044157,000422: 16,3512 00006 EXTEND 044158,000423: 16,3513 77665 MP T6SCALE # T6SCALE = 8/10.24 044159,000424: 16,3514 00006 EXTEND 044160,000425: 16,3515 71640 MP 1/CONACC # SCALED AT B+9 SECSQ/REV (MAX < .60) 044161,000426: 16,3516 20001 DDOUBL 044162,000427: 16,3517 20001 DDOUBL 044163,000428: 16,3520 55573 TS TEMREG # OVERFLOW PROTECT 044164,000429: 16,3521 13524 TCF +3 # " " 044165,000430: 16,3522 50000 INDEX A # " " 044166,000431: 16,3523 45000 CS LIMITS # " " 044167,000432: 16,3524 55573 TS TEMREG # JET FIRE TIME AT 625 MICROSEC/BIT 044168,000433: 16,3525 00006 EXTEND # POS MEANS POSITIVE ROLL TORQUE. 044169,000434: 16,3526 13611 BZF NOROLL 044170,000435: 044171,000436: # JET FIRE TIME IS NZ, TEST FOR JETS NOW ON. 044172,000437: 044173,000438: 16,3527 31573 CAE TEMREG # DESIRED CHANGE IN OGARATE 044174,000439: 16,3530 00006 EXTEND 044175,000440: 16,3531 71571 MP ROLLFIRE # (SGN OF TORQUE: ZERO IF JETS NOW OFF) 044176,000441: 16,3532 10000 CCS A 044177,000442: 16,3533 13537 TCF MOREROLL # CONTINUE FIRING WITH PRESENT POLARITY 044178,000443: 16,3534 13542 TCF NEWROLL # START NEW FIRING NOW, PLUS 044179,000444: 16,3535 13611 TCF NOROLL # TERMINATE OLD FIRING, NEW SIGN REQUESTED 044180,000445: 16,3536 13542 TCF NEWROLL # START NEW FIRING NOW, MINUS 044181,000446: 044182,000447: # CONTINUE PRESENT FIRING 044183,000448: 044184,000449: 16,3537 35021 MOREROLL CAF ZERO 044185,000450: 16,3540 55670 TS I # USE TEMP. AS MOREROLL SWITCH 044186,000451: 16,3541 13553 TCF MAXTFIRE 044187,000452: 044188,000453: # START NEW FIRING BUT CHECK IF GREATER THAN MIN FIRE TIME. 044189,000454: 044190,000455: 16,3542 11573 NEWROLL CCS TEMREG # CALL THIS T6FIRE 044191,000456: 16,3543 65017 AD ONE 044192,000457: 16,3544 13546 TCF +2 044193,000458: 16,3545 65017 AD ONE 044194,000459: 16,3546 40000 COM # -MAG(T6FIRE) 044195,000460: 16,3547 63715 AD TMINFIRE # TMINFIRE-MAG(T6FIRE) 044196,000461: # Page 994 044197,000462: 16,3550 40000 COM 044198,000463: 16,3551 00006 EXTEND 044199,000464: 16,3552 63611 MINTST BZMF NOROLL # IF NOT GREATER THAN TMINFIRE (NEW FIRE) 044200,000465: 044201,000466: # PROCEED WITH NEW FIRING BUT NOT LONGER THAN TMAXFIRE 044202,000467: 044203,000468: 16,3553 31573 MAXTFIRE CA TEMREG 044204,000469: 16,3554 00006 EXTEND 044205,000470: 16,3555 75015 MP 1/TMXFIR # I.E., 1/TMAXFIRE 044206,000471: 16,3556 00006 EXTEND 044207,000472: 16,3557 13565 MAXTST BZF NOMXFIRE # IF LESS THAN TMAXFIRE 044208,000473: 044209,000474: 16,3560 10000 CCS A 044210,000475: 16,3561 33716 CAF TMAXFIRE # USE MAXIMUM 044211,000476: 16,3562 13564 TCF +2 044212,000477: 16,3563 43716 CS TMAXFIRE # USE MAXIMUM 044213,000478: 16,3564 55573 TS TEMREG 044214,000479: 044215,000480: # SET UP SIGN OF REQUIRED TORQUE 044216,000481: 044217,000482: 16,3565 11573 NOMXFIRE CCS TEMREG # FOR TORQUE SIGN 044218,000483: 16,3566 34777 CA POSMAX # POSITIVE TORQUE REQUIRED 044219,000484: 16,3567 13571 TCF +2 044220,000485: 16,3570 35001 CA NEGMAX # NEGATIVE TORQUE REQUIRED 044221,000486: 16,3571 55571 TS ROLLFIRE # SET ROLLFIRE FOR + OR - TORQUE 044222,000487: 044223,000488: 16,3572 40000 COM # COMPLEMENT... POS. FOR NEG. TORQUE 044224,000489: 16,3573 00006 EXTEND 044225,000490: 16,3574 63577 BZMF +3 # POSITIVE TORQUE REQUIRED 044226,000491: 16,3575 41573 CS TEMREG 044227,000492: 16,3576 55573 TS TEMREG 044228,000493: 044229,000494: 16,3577 31670 FIRELOOK CA I # IS IT MOREROLL 044230,000495: 16,3600 00006 EXTEND 044231,000496: 16,3601 13603 BZF FIREPLUG # YES 044232,000497: 16,3602 13614 TCF JETROLL # MAG(T6FIRE) NOW IN TEMREG 044233,000498: 044234,000499: 16,3603 30031 FIREPLUG CAE TIME6 # CHECK FOR EXTENDED FIRING 044235,000500: 16,3604 00006 EXTEND 044236,000501: 16,3605 61573 SU TEMREG 044237,000502: 16,3606 00006 EXTEND 044238,000503: 16,3607 65324 EXTENTST BZMF TASKOVER # IF EXTENSION WANTED, DON'T, EXIT ROLL DAP 044239,000504: 16,3610 13614 TCF JETROLL 044240,000505: 044241,000506: 16,3611 45021 NOROLL CS ZERO # COAST....(NEG ZERO FOR TIME6) 044242,000507: 16,3612 55571 TS ROLLFIRE # NOTE, JETS CAN FIRE NEXT PASS 044243,000508: 16,3613 55573 TS TEMREG 044244,000509: 044245,000510: 16,3614 00006 JETROLL EXTEND 044246,000511: 16,3615 33705 DCA NOROL1T6 044247,000512: # Page 995 044248,000513: 16,3616 53311 DXCH T6LOC 044249,000514: 16,3617 31573 CA TEMREG # ENTER JET FIRING TIME 044250,000515: 16,3620 54031 TS TIME6 044251,000516: 044252,000517: 16,3621 31670 CA I # I=0 IF MOREROLL, KEEP SAME JETS ON 044253,000518: 16,3622 00006 EXTEND 044254,000519: 16,3623 15324 SAMEJETS BZF TASKOVER # IF JETS ON KEEP SAME JETS. EXIT ROLL DAP 044255,000520: 044256,000521: 16,3624 11571 CCS ROLLFIRE 044257,000522: 16,3625 13631 TCF +TORQUE 044258,000523: 16,3626 13672 TCF T6ENABL 044259,000524: 16,3627 13652 TCF -TORQUE 044260,000525: 16,3630 13672 TCF T6ENABL 044261,000526: 044262,000527: # PROCEED WITH + TORQUE 044263,000528: 044264,000529: 16,3631 31572 +TORQUE CA ROLLWORD # WHAT WAS THE LAST +TORQUE COMBINATION 044265,000530: 16,3632 75017 MASK BIT1 # WAS IT NO.9-11 044266,000531: 16,3633 00006 EXTEND 044267,000532: 16,3634 13644 BZF NO.9-11 # NOT 9-11, SO USE IT THIS TIME 044268,000533: 044269,000534: 16,3635 45017 NO.13-15 CS BIT1 044270,000535: 16,3636 71572 MASK ROLLWORD 044271,000536: 16,3637 55572 TS ROLLWORD # CHANGE BIT 1 TO ZERO 044272,000537: 16,3640 35037 CAF +ROLL2 044273,000538: 16,3641 00006 EXTEND 044274,000539: 16,3642 01006 WRITE CHAN6 044275,000540: 16,3643 13672 TCF T6ENABL 044276,000541: 044277,000542: 16,3644 35017 NO.9-11 CAF BIT1 # 1ST + JETS TO FIRE (MRCLEAN OS ROLLWORD) 044278,000543: 16,3645 27572 ADS ROLLWORD # CHANGE BIT 1 TO ONE 044279,000544: 16,3646 35022 CAF +ROLL1 044280,000545: 16,3647 00006 EXTEND 044281,000546: 16,3650 01006 WRITE CHAN6 044282,000547: 16,3651 13672 TCF T6ENABL 044283,000548: 044284,000549: 16,3652 31572 -TORQUE CA ROLLWORD # WHAT WAS LAST -TORQUE COMBINATION 044285,000550: 16,3653 75016 MASK BIT2 # WAS IT NO.12-10 044286,000551: 16,3654 00006 EXTEND 044287,000552: 16,3655 13665 BZF NO.12-10 # NOT 12-10, SO USE IT THIS TIME 044288,000553: 044289,000554: 16,3656 45016 NO.16-14 CS BIT2 044290,000555: 16,3657 71572 MASK ROLLWORD 044291,000556: 16,3660 55572 TS ROLLWORD # CHANGE BIT 2 TO ZERO 044292,000557: 16,3661 33717 CAF -ROLL2 044293,000558: 16,3662 00006 EXTEND 044294,000559: 16,3663 01006 WRITE CHAN6 044295,000560: 16,3664 13672 TCF T6ENABL 044296,000561: 044297,000562: 16,3665 35016 NO.12-10 CAF BIT2 # 1ST -JETS TO FIRE (MRCLEAN OS ROLLWORD) 044298,000563: # Page 996 044299,000564: 16,3666 27572 ADS ROLLWORD # CHANGE BIT 2 TO ONE 044300,000565: 16,3667 34377 CAF -ROLL1 044301,000566: 16,3670 00006 EXTEND 044302,000567: 16,3671 01006 WRITE CHAN6 044303,000568: 044304,000569: 16,3672 35001 T6ENABL CAF BIT15 044305,000570: 16,3673 00006 EXTEND 044306,000571: 16,3674 05013 WOR CHAN13 044307,000572: 16,3675 15324 RDAPEND TCF TASKOVER # EXIT ROLL DAP 044308,000573: 044309,000574: # Page 997 044310,000575: # THIS T6 TASK SHUTS OFF ALL ROLL JETS 044311,000576: 044312,000577: 16,3676 22016 NOROLL1 LXCH BANKRUPT # SHUT OFF ALL (ROLL) JETS, (A T6 TASK 044313,000578: 16,3677 35021 CAF ZERO # CALLED BY "JETROLL") 044314,000579: 16,3700 55571 TS ROLLFIRE # ZERO INDICATES JETS NOW OFF 044315,000580: 16,3701 00006 EXTEND 044316,000581: 16,3702 01006 KILLJETS WRITE CHAN6 044317,000582: 16,3703 15335 TCF NOQRSM 044318,000583: 044319,000584: # Page 998 044320,000585: # CONSTANTS FOR ROLL AUTOPILOT.... 044321,000586: 044322,000587: 16,3704 E6,1702 EBANK= BZERO 044323,000588: 16,3704 03676 34066 NOROL1T6 2CADR NOROLL1 044324,000589: 044325,000590: 16,3706 00344 DB DEC .01388889 # DEAD BAND (5 DEG), SC.AT B+0 REV 044326,000591: 044327,000592: 16,3707 06315 -SLOPE DEC 0.2 # -SWITCHLINE SLOPE(0.2 PER SEC) SC.AT B+0 044328,000593: # PER SEC 044329,000594: 16,3710 00111 LMCRATE DEC .00027778 B+4 # LIMIT CYCLE RATE (0.1 DEG/SEC) SC.AT 044330,000595: # B-4 REV/SEC 044331,000596: 16,3711 00510 INTERCEP DEC .0025 B+3 # DB(-SLOPE) - LMCRATE, SC.AT B-3 REV/SC 044332,000597: 044333,000598: 16,3712 01330 MINLIM DEC .00277778 B+4 # RATELIM,MIN (1DEG/SEC), SC.AT B-4 REV/SC 044334,000599: 044335,000600: 16,3713 00027 1/MINLIM DEC 360 B-18 # RECIPROCAL THEREOF, SHIFTED 14 RIGHT 044336,000601: 044337,000602: 16,3714 07071 MAXLIM DEC .01388889 B+4 # RATELIM,MAX (5DEG/SEC), SC.AT B-4 REV/SC 044338,000603: 044339,000604: 16,3715 00030 TMINFIRE DEC 1.5 B+4 # 15 MS. (14MIN), SC.AT 16 BITS/CS 044340,000605: 044341,000606: 16,3716 07640 TMAXFIRE DEC 250 B+4 # 2.5 SEC, SC.AT 16 BITS/CS 044342,000607: 044343,000608: 16,3717 5015 1/TMXFIR = BIT3 # RECIPROCAL THEREOF, SHIFTED 14 RIGHT, 044344,000609: # ROUNDS TO OCT00004, SO ALLOWS 2.56 044345,000610: # SEC FIRINGS BEFORE APPLYING LIMIT 044346,000611: 16,3717 7665 T6SCALE = PRIO31 # (B+3) (16 BITS/CS) (100CS/SEC) 044347,000612: 044348,000613: 16,3717 5022 +ROLL1 = FIVE # ONBITS FOR JETS 9 AND 11 044349,000614: 16,3717 5037 +ROLL2 = OCT120 # ONBITS FOR JETS 13 AND 15 044350,000615: 16,3717 4377 -ROLL1 = TEN # ONBITS FOR JETS 12 AND 10 044351,000616: 16,3717 00240 -ROLL2 OCT 240 # ONBITS FOR JETS 16 AND 14 044352,000617: End of include-file TVCROLLDAP.agc. Parent file is MAIN.agc