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