Source Code
|
These source-code files are part of a reconstructed copy of Comanche 051, the
original release of the Apollo 11 Command Module (CM) Apollo Guidance Computer
(AGC) software.
The reconstruction began with source code of Comanche 055 previously transcribed from a digitized copy of that program. The code was then updated by undoing changes related to the R-2 lunar potential model, using hints from program comments and change-indicating asterisks in the Comanche 055 listing as a guide. The reconstruction was verified by matching memory-bank checksums to those listed in drawing 2021153D. Note that page numbers in the reconstructed code match those on the Comanche 055 printout, although the added code would likely have changed page numbers for a real Comanche 051 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. |
042973,000002: ## Copyright: Public domain.
042974,000003: ## Filename: TVCROLLDAP.agc
042975,000004: ## Purpose: A section of Comanche revision 051.
042976,000005: ## It is part of the reconstructed source code for the
042977,000006: ## original release of the flight software for the Command
042978,000007: ## Module's (CM) Apollo Guidance Computer (AGC) for Apollo 11.
042979,000008: ## The code has been recreated from a copy of Comanche 055. It
042980,000009: ## has been adapted such that the resulting bugger words
042981,000010: ## exactly match those specified for Comanche 51 in NASA drawing
042982,000011: ## 2021153D, which gives relatively high confidence that the
042983,000012: ## reconstruction is correct.
042984,000013: ## Reference: pp. 984-998
042985,000014: ## Assembler: yaYUL
042986,000015: ## Contact: Ron Burkey <info@sandroid.org>.
042987,000016: ## Website: www.ibiblio.org/apollo/index.html
042988,000017: ## Mod history: 2019-07-30 MAS Created from Comanche 55.
042989,000018:
|
Page 984 |
042991,000020: # PROGRAM NAME...TVC ROLL AUTOPILOT
042992,000021: # LOG SECTION...TVCROLLDAP SUBROUTINE...DAPCSM
042993,000022: # MODIFIED BY SCHLUNDT 21 OCTOBER 1968
042994,000023:
042995,000024: # FUNCTIONAL DESCRIPTION....
042996,000025:
042997,000026: # *AN ADAPTATION OF THE LEM P-AXIS CONTROLLER
042998,000027: # *MAINTAIN OGA WITHIN 5 DEG DEADBND OF OGAD, WHERE OGAD = OGA AS SEEN
042999,000028: # BY IGNITION (P40)
043000,000029: # *MAINTAIN OGA RATE LESS THAN 0.1 DEG/SEC LIMIT CYCLE RATE
043001,000030: # *SWITCHING LOGIC IN PHASE PLANE.... SEE GSOP CHAPTER 3
043002,000031: # *USES T6 CLOCK TO TIME JET FIRINGS
043003,000032: # *MAXIMUM JET FIRING TIME = 2.56 SECONDS, LIMITED TO 2.5 IF GREATER
043004,000033: # *MINIMUM JET FIRING TIME = 15 MS
043005,000034: # *JET PAIRS FIRE ALTERNATELY
043006,000035: # *AT LEAST 1/2 SECOND DELAY BEFORE A NEW JET PAIR IS FIRED
043007,000036: # *JET FIRINGS MAY NOT BE EXTENDED, ONLY SHORTENED, WHEN RE-EVALUATION
043008,000037: # OF A JET FIRING TIME IS MADE ON A LATER PASS
043009,000038:
043010,000039: # CALLING SEQUENCE....
043011,000040:
043012,000041: # *ROLLDAP CALL VIA WAITLIST, IN PARTICULAR BY TVCEXEC (EVERY 1/2 SEC)
043013,000042: # WITH A 3CS DELAY TO ALLOW FREE TIME FOR OTHER RUPTS (DWNRPT, ETC.)
043014,000043:
043015,000044: # NORMAL EXIT MODES.... ENDOFJOB
043016,000045:
043017,000046: # ALARM OR ABORT EXIT MODES.... NONE
043018,000047:
043019,000048: # SUBROUTINES CALLED.....NONE
043020,000049:
043021,000050: # OTHER INTERFACES....
043022,000051:
043023,000052: # *TVCEXEC SETS UP ROLLDAP TASK EVERY 1/2 SECOND AND UPDATES 1/CONACC
043024,000053: # EVERY 10 SECONDS (VIA MASSPROP AND S40.15)
043025,000054: # *RESTARTS SUSPEND ROLL DAP COMPUTATIONS UNTIL THE NEXT 1/2 SEC
043026,000055: # SAMPLE PERIOD. (THE PART OF TVCEXECUTIVE THAT CALLS ROLL DAP IS
043027,000056: # NOT RESTARTED.) THE OGAD FROM IGNITION IS MAINTAINED.
043028,000057:
043029,000058: # ERASABLE INITIALIZATION REQUIRED....
043030,000059:
043031,000060: # *1/CONACC (S40.15)
043032,000061: # *OGAD (CDUX AT IGNITION)
043033,000062: # *OGANOW (CDUX AT TVCINIT4 AND TVCEXECUTIVE)
043034,000063: # *OGAPAST (OGANOW AT TVCEXECUTIVE)
043035,000064: # *ROLLFIRE = TEMREG = ROLLWORD = 0 (MRCLEAN LOOP IN TVCDAPON)
043036,000065:
043037,000066: # OUTPUT....
043038,000067:
043039,000068: # *ROLL JET PAIR FIRINGS
043040,000069:
|
Page 985 |
043042,000071: # DEBRIS.... MISCELLANEOUS, SHAREABLE WITH RCS/ENTRY, IN EBANK6 ONLY
043043,000072:
|
Page 986 |
043045,000074: # SOME NOTES ON THE ROLL AUTOPILOT, AND IN PARTICULAR, ON ITS SWITCHING
043046,000075: # LOGIC. SEE SECTION THREE OF THE GSOP (SUNDISK/COLOSSUS) FOR DETAILS.
043047,000076:
043048,000077: # SWITCHING LOGIC IN THE PHASE PLANE....
043049,000078:
043050,000079: # OGARATE
043051,000080: # *
043052,000081: # *
043053,000082: # * * * * * * * * * * * *
043054,000083: # * (REGION 1, SEE TEXT BELOW)
043055,000084: # * *
043056,000085: # *
043057,000086: # * * * * * * * (COAST) * ...PARABOLA (SWITCHING = CONTROL)
043058,000087: # * * .
043059,000088: # * * *
043060,000089: # * * (FIRE NEG ROLL JETS)
043061,000090: # * * *
043062,000091: # (-DB,+LMCRATE)....* *
043063,000092: # * * *
043064,000093: # * * OGAERROR
043065,000094: # ************************************************************************
043066,000095: # * * (-AK, OGAERR)
043067,000096: # * * * (REGION 6-PRIME)
043068,000097: # * * (SEE TEXT BELOW)
043069,000098: # * * *
043070,000099: # * * ...STRAIGHT LINE
043071,000100: # (FIRE POS ROLL JETS) * * * .
043072,000101: # * (COAST) *
043073,000102: # * * * * * * * * * * *
043074,000103: # * -MINLIM
043075,000104: # * *
043076,000105: # *
043077,000106: # * * * * * * * * * * * * * * * *
043078,000107: # * -MAXLIM
043079,000108: # *
043080,000109: # *
043081,000110:
043082,000111: # SWITCHING PARABOLAS ARE CONTROL PARABOLAS, THUS REQUIRING KNOWLEDGE OF
043083,000112: # CONTROL ACCELERATION CONACC, OR ITS RECIPROCAL, 1/CONACC, THE TVC
043084,000113: # ROLL DAP GAIN (SEE TVCEXECUTIVE VARIABLE GAIN PACKAGE). JET
043085,000114: # FIRING TIME IS SIMPLY THAT REQUIRED TO ACHIEVE THE DESIRED OGARATE,
043086,000115: # SUBJECT TO THE LIMITATIONS DISCUSSED UNDER FUNCTIONAL DESCRIPTION,
043087,000116: # ABOVE.
043088,000117:
043089,000118: # THE THREE CONTROL REGIONS (+, -, AND ZERO TORQUE) ARE COMPRIZED OF
043090,000119: # TWELVE SUBSET REGIONS ( 1...6, AND THE CORRESPONDING 1-PRIME...
043091,000120: # 6-PRIME ) SEE SECTION 3 OF THE GSOP (SUNDISK OR COLOSSUS)
|
Page 987 |
043093,000122:
043094,000123: # GIVEN THE OPERATING POINT NOT IN THE COAST REGION, THE DESIRED OGARATE
043095,000124: # IS AT THE POINT OF PENETRATION OF THE COAST REGION BY THE CONTROL
043096,000125: # PARABOLA WHICH PASSES THROUGH THE OPERATING POINT. FOR REGION 3
043097,000126: # DESIRED OGARATE IS SIMPLY +-MAXLIM. FOR REGIONS 1 OR 6 THE SOLUTION
043098,000127: # TO A QUADRATIC IS REQUIRED (THE PENETRATION IS ALONG THE STRAIGHT
043099,000128: # LINE OR MINLIM BOUNDRY SWITCH LINES). AN APPROXIMATION IS MADE
043100,000129: # INSTEAD. TAKE AN OPERATING POINT IN REGION 6'. PASS A TANGENT TO
043101,000130: # THE CONTROL PARABOLA THROUGH THE OPERATING POINT, AND FIND ITS
043102,000131: # INTERSECTION WITH THE STRAIGHT LINE SECTION OF THE SWITCH CURVE...
043103,000132: # THE INTERSECTION DEFINES DESIRED OGARATE. IF THE OPERATING POINT IS
043104,000133: # CLOSE TO THE SWITCH LINE, THE APPROXIMATION IS QUITE GOOD (INDEED
043105,000134: # THE APPROXIMATE AND QUADRATIC SOLUTIONS CONVERGE IN THE LIMIT AS
043106,000135: # THE SWITCH LINE IS APPROACHED). IF THE OPERATING POINT IS NOT CLOSE
043107,000136: # TO THE SWITCH LINE, THE APPROXIMATE SOLUTION GIVES VALID TREND
043108,000137: # INFORMATION (DIRECTION OF DESIRED OGARATE) AT LEAST. THE
043109,000138: # RE-EVALUATION OF DESIRED OGARATE IN SUBSEQUENT ROLL DAP PASSES (1/2
043110,000139: # SECOND INTERVALS) WILL BENEFIT FROM THE CONVERGENT NATURE OF THE
043111,000140: # APPROXIMATION.
043112,000141:
043113,000142: # FOR LARGE OGAERROR THE TANGENT INTERSECTS +-MINLIM SWITCH BOUNDRY BEFORE
043114,000143: # INTERSECTING THE STRAIGHT LINE SWITCH. HOWEVER THE MINLIM IS
043115,000144: # IGNORED IN COMPUTING THE FIRING TIME, SO THAT THE EXTENSION (INTO
043116,000145: # THE COAST REGION) OF THE STRAIGHT LINE SWITCH IS WHAT IS FIRED TO.
043117,000146: # IF THE ROLL DAP FINDS ITSELF IN THE COAST REGION BEFORE REACHING
043118,000147: # THE DESIRED INTERSECTION (IE, IN THE REGION BETWEEN THE MINLIM
043119,000148: # AND THE STRAIGHT LINE SWITCH) IT WILL EXIBIT NORMAL COAST-REGION
043120,000149: # BEHAVIOR AND TURN OFF THE JETS. THE PURPOSE OF THIS FIRING POLICY
043121,000150: # IS TO MAINTAIN STATIC ROLL STABILITY IN THE EVENT OF A JET
043122,000151: # FAILED-ON.
043123,000152:
043124,000153: # WHEN THE OPERATING POINT IS IN REGION 1 THE SAME APPROXIMATION IS
043125,000154: # MADE, BUT AT AN ARTIFICIALLY-CREATED OR DUMMY OPERATING POINT,
043126,000155: # DEFINED BY.. OGAERROR = INTERSECTION OF CONTROL PARABOLA AND
043127,000156: # OGAERROR AXIS, OGARATE = +-LMCRATE WHERE SIGN IS OPPOSITE THAT OF
043128,000157: # REAL OPERATING POINT RATE. WHEN THE OPERATING POINT HAS PASSED
043129,000158: # FROM REGION 1 TO REGION 6', THE DUMMY POINT IS NO LONGER REQUIRED,
043130,000159: # AND THE SOLUTION REVERTS TO THAT OF A REGULAR REGION 6' POINT.
043131,000160:
043132,000161: # EQUATION FOR SWITCHING PARABOLA (SEE FIGURE ABOVE)....
043133,000162: # 2
043134,000163: # SOGAERROR = (DB - (SOGARATE) (1/CONACC)/2) SGN(SOGARATE)
043135,000164:
043136,000165: # EQUATION FOR SWITCHING STRAIGHT LINE SEGMENT....
043137,000166:
043138,000167: # SOGARATE = -(-SLOPE)(SOGAERROR) - SGN(SOGARATE) INTERCEP
043139,000168:
043140,000169: # WHERE INTERCEP = DB(-SLOPE) - LMCRATE
|
Page 988 |
043142,000171:
043143,000172: # EQUATION FOR INTERSECTION, CONTROL PARABOLA AND STRAIGHT SWITCH LINE....
043144,000173:
043145,000174: # DOGADOT = NUM/DEN, WHERE
043146,000175: # 2
043147,000176: # NUM = (-SLOPE)(OGARATE) (1/CONACC)
043148,000177: # +SGN(DELOGA)(-SLOPE)(OGAERROR - SGN(DELOGA)(DB))
043149,000178: # +LMCRATE
043150,000179:
043151,000180: # DEN = (-SLOPE)(LMCRATE)(1/CONACC) - SGN(DELOGA)
043152,000181: # 2
043153,000182: # DELOGA = OGAERROR - (DB - OGARATE (1/CONACC)/2)SGN(OGARATE)
043154,000183:
043155,000184: # FOR REGIONS 6 AND 6-PRIME USE ACTUAL OPERATING POINT (OGA, OGARATE)
043156,000185: # FOR OGAERROR AND OGARATE IN THE INTERSECTION EQUATIONS ABOVE.
043157,000186: # FOR REGIONS 1 AND 1-PRIME USE DUMMY OPERATING POINT FOR OGAERROR
043158,000187: # AND OGARATE, WHERE THE DUMMY POINT IS GIVEN BY....
043159,000188:
043160,000189: # OGAERROR = DELOGA + DB SGN(OGARATE)
043161,000190:
043162,000191: # OGARATE = -LMCRATE SGN(OGARATE)
043163,000192:
043164,000193: # NOTE, OGAERROR = OGA - OGAD USES DUMMY REGISTER OGA IN ROLL DAP CODING
043165,000194: # ALSO, AT POINT WHERE DOGARATE IS COMPUTED, REGISTER DELOGA IS USED
043166,000195: # AS A DUMMY REGISTER FOR THE OGAERROR IN THE NUM EQUATION ABOVE
|
Page 989 |
043168,000197:
043169,000198: # ROLLDAP CODING....
043170,000199:
043171,000200: 16,2000 SETLOC DAPROLL
043172,000201: 16,2000 BANK
043173,000202: 16,3272 E6,1662 EBANK= OGANOW
043174,000203: 16,3272 COUNT* $$/ROLL
043175,000204: 16,3272 31662 ROLLDAP CAE OGANOW # OGA RATE ESTIMATOR...SIMPLE FIRST-ORDER
043176,000205: 16,3273 00006 EXTEND # DIFFERENCE (SAMPLE TIME = 1/2 SEC)
043177,000206: 16,3274 21663 MSU OGAPAST
043178,000207: 16,3275 00006 EXTEND
043179,000208: 16,3276 75013 MP BIT5
043180,000209: 16,3277 22000 LXCH A
043181,000210: 16,3300 55533 TS OGARATE # SC.AT B-4 REV/SEC
043182,000211:
043183,000212: # COMPUTATIONS WHICH FOLLOW USE OGA FOR OGAERR (SAME REGISTER)
043184,000213: # EXAMINE DURATION OF LAST JET FIRING IF JETS NOW ON.
043185,000214:
043186,000215: 16,3301 31571 DURATION CA ROLLFIRE # SAME SGN AS PRESENT TORQ,MAGN=POSMAX
043187,000216: 16,3302 00006 EXTEND
043188,000217: 16,3303 13305 BZF +2 # ROLL JETS ARE NOW OFF.
043189,000218: 16,3304 13313 TCF ROLLOGIC # ENTER LOGIC, JETS NOW ON.
043190,000219:
043191,000220: 16,3305 31573 CAE TEMREG # EXAMINE LAST FIRING INTERVAL
043192,000221: 16,3306 00006 EXTEND # IF POSITIVE, DONT FIRE
043193,000222: 16,3307 13313 BZF ROLLOGIC # ENTER LOGIC, JETS NOW OFF.
043194,000223:
043195,000224: 16,3310 35021 CAF ZERO # JETS HAVE NOT BEEN OFF FOR 1/2 SEC. WAIT
043196,000225: 16,3311 55573 TS TEMREG # RESET TEMREG
043197,000226: 16,3312 15324 WAIT1/2 TCF TASKOVER # EXIT ROLL DAP
043198,000227:
043199,000228: # COMPUTE DB-(1/2 CONACC) (OGARATE)SQ (1/2 IN THE SCALING)
043200,000229:
043201,000230: 16,3313 41533 ROLLOGIC CS OGARATE # SCALED AT 2(-4) REV/SEC
043202,000231: 16,3314 00006 EXTEND
043203,000232: 16,3315 71640 MP 1/CONACC # SCALED AT 2(+9) SEC SQ /REV
043204,000233: 16,3316 00006 EXTEND
043205,000234: 16,3317 71533 MP OGARATE
043206,000235: 16,3320 63706 AD DB # SCALED AT 2(+0) REV
043207,000236: 16,3321 55573 TS TEMREG # QUANTITY SCALED AT 2(+0) REV.
043208,000237:
043209,000238: # GET SIGN OF OGARATE
043210,000239:
043211,000240: 16,3322 31533 CA OGARATE
043212,000241: 16,3323 00006 EXTEND
043213,000242: 16,3324 63327 BZMF +3 # LET SGN(0) BE NEGATIVE
043214,000243: 16,3325 35017 CA BIT1
043215,000244: 16,3326 13330 TCF +2
043216,000245: 16,3327 45017 CS BIT1
043217,000246: 16,3330 55666 TS SGNRT # + OR - 2(-14)
043218,000247:
|
Page 990 |
043220,000249: # CALCULATE DISTANCE FROM SWITCH PARABOLA (DELOGA)
043221,000250: 16,3331 00006 EXTEND
043222,000251: 16,3332 71573 MP TEMREG # SGN(OGARATE) TEMREG NOW IN L
043223,000252: 16,3333 40001 CS L
043224,000253: 16,3334 61664 AD OGA # SCALED AT 2(+0) REV
043225,000254: 16,3335 55667 DELOGAC TS DELOGA # SCALE B+0 REV, PLUS TO RIGHT OF C-PARAB
043226,000255:
043227,000256: # EXAMINE SGN(DELOGA) AND CREATE CA OR CS INSTR. DEPENDING UPON SIGN.
043228,000257:
043229,000258: 16,3336 00006 EXTEND
043230,000259: 16,3337 63342 BZMF +3
043231,000260: 16,3340 34371 CAF PRIO30 # = CA (30000)
043232,000261: 16,3341 13343 TCF +2
043233,000262: 16,3342 35001 CAF BIT15 # = CS (40000)
043234,000263: 16,3343 55670 TS I
043235,000264:
043236,000265: 16,3344 51670 INDEX I # TSET ON I SGN(OGARATE)
043237,000266: 16,3345 01666 0 SGNRT # CA OR CS
043238,000267: 16,3346 40000 COM
043239,000268: 16,3347 00006 EXTEND
043240,000269: 16,3350 63421 REG1TST BZMF ROLLON # IF REGION 1 (DELOGA OGARATE SAME SIGN)
043241,000270:
043242,000271: # NO JET FIRE YET, TEST FOR MAX OGARATE
043243,000272:
043244,000273: 16,3351 51670 INDEX I
043245,000274: 16,3352 01533 0 OGARATE # CA OR CS...BOTH MUST BE NEG. HERE
043246,000275: 16,3353 55671 TS IOGARATE # I.E. I OGARATE
043247,000276: 16,3354 63714 AD MAXLIM # SCALED AT 2(-4) REV/SEC
043248,000277: 16,3355 00006 EXTEND
043249,000278: 16,3356 63500 REG3TST BZMF RATELIM # IF REGION 3 (RATES TOO HIGH, FIRE JETS)
043250,000279:
043251,000280: # COMPUTATION OF I((-SLOPE)OGA + OGARATE) - INTERCEPT..NOTE THAT STR. LINE
043252,000281: # SWITCH SLOPE IS (SLOPE) DEG/SEC/DEG, A NEG QUANTITY
043253,000282:
043254,000283: 16,3357 31533 CA OGARATE
043255,000284: 16,3360 00006 EXTEND
043256,000285: 16,3361 75002 MP BIT14
043257,000286: 16,3362 55573 TS TEMREG
043258,000287: 16,3363 31664 CA OGA
043259,000288: 16,3364 00006 EXTEND
043260,000289: 16,3365 73707 MP -SLOPE
043261,000290: 16,3366 20001 DDOUBL
043262,000291: 16,3367 20001 DDOUBL
043263,000292: 16,3370 20001 DDOUBL # (OGA ERROR MUST BE LESS THAN +-225 DEG)
043264,000293: 16,3371 61573 AD TEMREG
043265,000294:
043266,000295: 16,3372 51670 INDEX I
043267,000296: 16,3373 00000 0 A # I((-SLOPE)OGA+OGARATE) AT 2(-3)REV/SEC
043268,000297: 16,3374 40000 COM
|
Page 991 |
043270,000299: 16,3375 63711 AD INTERCEP # SCALED AT 2(-3) REV.
043271,000300: 16,3376 40000 COM
043272,000301: 16,3377 00006 EXTEND
043273,000302: 16,3400 63611 REG2TST BZMF NOROLL # IF REGION 2 (COAST SIDE OF STRT LINE)
043274,000303:
043275,000304: # CHECK TO SEE IF OGARATE IS ABOVE MINLIM BOUNDARY
043276,000305:
043277,000306: 16,3401 31671 CA IOGARATE # ALWAYS NEGATIVE
043278,000307: 16,3402 63712 AD MINLIM # SCALED AT 2(-4) REV/SEC
043279,000308: 16,3403 00006 EXTEND
043280,000309: 16,3404 63611 REG4TST BZMF NOROLL # IF REGION 4 (COAST SIDE OF MINLIM)
043281,000310:
043282,000311: # ALL AREAS CHECKED EXCEPT LAST AREA...NO FIRE IN THIS SMALL SEGMENT
043283,000312:
043284,000313: 16,3405 51670 INDEX I
043285,000314: 16,3406 01664 0 OGA
043286,000315: 16,3407 40000 COM
043287,000316: 16,3410 63706 AD DB
043288,000317: 16,3411 40000 COM
043289,000318: 16,3412 00006 EXTEND
043290,000319: 16,3413 63611 REG5TST BZMF NOROLL # IF REGION 5 (COAST SIDE OF DB)
043291,000320:
043292,000321: # JETS MUST FIRE NOW. OGARATE IS NEG. (OR VISA VERSA). USE DIRECT STR. LINE.
043293,000322: # DELOGA AND DELOGART ARE USED AS DUMMY VARIABLES IN THE SOLUTION OF A
043294,000323: # STRAIGHT LINE APPROXIMATION TO A QUADRATIC SOLUTION OF THE INTERSECTION
043295,000324: # OF THE CONTROL PARABOLA AND THE STRAIGHT-LINE SWITCH LINE. THE STRAIGHT
043296,000325: # LINE IS THE TANGENT TO THE CONTROL PARABOLA AT THE OPERATING POINT. (FOR
043297,000326: # OPERATING POINTS IN REGIONS 6 OR 6')
043298,000327:
043299,000328: 16,3414 31664 REGION6 CAE OGA # USE ACTUAL OPERATING POINT FOR TANGENT
043300,000329: 16,3415 55667 TS DELOGA # ACTUAL STATE
043301,000330: 16,3416 31533 CA OGARATE
043302,000331: 16,3417 55665 TS DELOGART # ACTUAL STATE, I.E. DEL OGARATE
043303,000332: 16,3420 13430 TCF ONROLL
043304,000333:
043305,000334: # JETS ALSO FIRE FROM HERE EXCEPT OGARATE IS POS (VISA VERSA), USE INDIRECT
043306,000335: # STRAIGHT LINE ESTABLISHED BY TANGENT TO A CONTROL PARABOLA AT ((DELOGA
043307,000336: # + DB SGN(DELOGA) ), -LMCRATE SGN(DELOGA) ) (THIS IS THE DUMMY
043308,000337: # OPERATING POINT FOR OPERATING POINTS IN REGIONS 1 AND 1')
043309,000338:
043310,000339: 16,3421 51670 ROLLON INDEX I
043311,000340: 16,3422 03706 0 DB
043312,000341: 16,3423 27667 ADS DELOGA # DELOGA WAS DIST. FROM SWITCH PARABOLA
043313,000342:
043314,000343: 16,3424 43710 CS LMCRATE # LIMIT CYCLE RATE AT 2(-4) REV/SEC
043315,000344: 16,3425 51670 INDEX I
043316,000345: 16,3426 00000 0 A
043317,000346: 16,3427 55665 TS DELOGART # EVALUATE STATE FOR INDIRECT LINE.
043318,000347:
|
Page 992 |
043320,000349: # SOLVE STRAIGHT LINES SIMULTANEOUSLY TO OBTAIN DESIRED OGARATE.
043321,000350:
043322,000351: 16,3430 00006 ONROLL EXTEND # DELOGART IN ACC. ON ARRIVAL
043323,000352: 16,3431 71640 MP 1/CONACC
043324,000353: 16,3432 60000 DOUBLE
043325,000354: 16,3433 00006 EXTEND
043326,000355: 16,3434 73707 MP -SLOPE
043327,000356: 16,3435 55573 TS TEMREG # 2(-SLOPE)RATE /CONACC
043328,000357: 16,3436 00006 EXTEND
043329,000358: 16,3437 71665 MP DELOGART
043330,000359: 16,3440 55665 TS DELOGART # 2(-SLOPE)(RATESQ)/CONACC
043331,000360: 16,3441 45005 CS BIT11
043332,000361: 16,3442 51670 INDEX I
043333,000362: 16,3443 00000 0 A
043334,000363: 16,3444 27573 RATEDEN ADS TEMREG # DENOMINATOR COMPLETED
043335,000364:
043336,000365: 16,3445 51670 INDEX I
043337,000366: 16,3446 01667 0 DELOGA
043338,000367: 16,3447 40000 COM
043339,000368: 16,3450 63706 AD DB
043340,000369: 16,3451 40000 COM
043341,000370: 16,3452 00006 EXTEND
043342,000371: 16,3453 73707 MP -SLOPE
043343,000372: 16,3454 27665 ADS DELOGART
043344,000373: 16,3455 33710 CA LMCRATE
043345,000374: 16,3456 00006 EXTEND
043346,000375: 16,3457 75005 MP BIT11
043347,000376: 16,3460 61665 RATENUM AD DELOGART # NUMERATOR COMPLETED
043348,000377:
043349,000378: 16,3461 56001 XCH L # PLACE NUMERATOR IN L FOR OVERFL. CHECK
043350,000379: 16,3462 35021 CA ZERO
043351,000380: 16,3463 00006 EXTEND
043352,000381: 16,3464 11573 DV TEMREG # OVERFLOW, IF ANYTHING, NOW APPEARS IN A
043353,000382: 16,3465 00006 EXTEND
043354,000383: 16,3466 13474 BZF DVOK # NO OVERFLOW....(0,L)/TEMREG = 0,L
043355,000384:
043356,000385: 16,3467 10000 MINLIMAP CCS A
043357,000386: 16,3470 34777 CAF POSMAX # POSITIVE OVERFLOW
043358,000387: 16,3471 13503 TCF ROLLSET
043359,000388: 16,3472 44777 CS POSMAX # NEGATIVE OVERFLOW
043360,000389: 16,3473 13503 TCF ROLLSET
043361,000390:
043362,000391: 16,3474 22000 DVOK LXCH A # PUT NUMERATOR BACK INTO A, 0 IN L
043363,000392: 16,3475 00006 EXTEND
043364,000393: 16,3476 11573 DV TEMREG # RESULT OF DIVISION IS DESIRED OGARATE
043365,000394: 16,3477 13503 TCF ROLLSET # (SCALED AT B-4 REV/SEC)
043366,000395:
043367,000396: 16,3500 43714 RATELIM CS MAXLIM
043368,000397: 16,3501 51670 INDEX I
|
Page 993 |
043370,000399: 16,3502 00000 0 A # IF I = CA, DESIRED RATE IS -MAXLIM
043371,000400:
043372,000401: # COMPUTE JET FIRE TIME, BASED ON DESIRED RATE MINUS PRESENT RATE
043373,000402:
043374,000403: 16,3503 55573 ROLLSET TS TEMREG # STORE DESIRED OGARATE (SCALED B-4)
043375,000404: 16,3504 00006 EXTEND
043376,000405: 16,3505 61533 SU OGARATE # RATE DIFF. SCALED AT 2(-4) REV/SEC
043377,000406: 16,3506 55573 TS TEMREG # OVERFLOW PROTECT
043378,000407: 16,3507 13512 TCF +3 # " "
043379,000408: 16,3510 50000 INDEX A # " "
043380,000409: 16,3511 45000 CS LIMITS # " "
043381,000410: 16,3512 00006 EXTEND
043382,000411: 16,3513 77665 MP T6SCALE # T6SCALE = 8/10.24
043383,000412: 16,3514 00006 EXTEND
043384,000413: 16,3515 71640 MP 1/CONACC # SCALED AT B+9 SECSQ/REV (MAX < .60)
043385,000414: 16,3516 20001 DDOUBL
043386,000415: 16,3517 20001 DDOUBL
043387,000416: 16,3520 55573 TS TEMREG # OVERFLOW PROTECT
043388,000417: 16,3521 13524 TCF +3 # " "
043389,000418: 16,3522 50000 INDEX A # " "
043390,000419: 16,3523 45000 CS LIMITS # " "
043391,000420: 16,3524 55573 TS TEMREG # JET FIRE TIME AT 625 MICROSEC/BIT
043392,000421: 16,3525 00006 EXTEND # POS MEANS POSITIVE ROLL TORQUE.
043393,000422: 16,3526 13611 BZF NOROLL
043394,000423:
043395,000424: # JET FIRE TIME IS NZ, TEST FOR JETS NOW ON.
043396,000425:
043397,000426: 16,3527 31573 CAE TEMREG # DESIRED CHANGE IN OGARATE
043398,000427: 16,3530 00006 EXTEND
043399,000428: 16,3531 71571 MP ROLLFIRE # (SGN OF TORQUE..ZERO IF JETS NOW OFF)
043400,000429: 16,3532 10000 CCS A
043401,000430: 16,3533 13537 TCF MOREROLL # CONTINUE FIRING WITH PRESENT POLARITY
043402,000431: 16,3534 13542 TCF NEWROLL # START NEW FIRING NOW, PLUS
043403,000432: 16,3535 13611 TCF NOROLL # TERMINATE OLD FIRING, NEW SIGN REQUESTED
043404,000433: 16,3536 13542 TCF NEWROLL # START NEW FIRING NOW, MINUS
043405,000434:
043406,000435: # CONTINUE PRESENT FIRING
043407,000436:
043408,000437: 16,3537 35021 MOREROLL CAF ZERO
043409,000438: 16,3540 55670 TS I # USE TEMP. AS MOREROLL SWITCH
043410,000439: 16,3541 13553 TCF MAXTFIRE
043411,000440:
043412,000441: # START NEW FIRING, BUT CHECK IF GREATER THAN MIN FIRE TIME.
043413,000442:
043414,000443: 16,3542 11573 NEWROLL CCS TEMREG # CALL THIS T6FIRE
043415,000444: 16,3543 65017 AD ONE
043416,000445: 16,3544 13546 TCF +2
043417,000446: 16,3545 65017 AD ONE
043418,000447: 16,3546 40000 COM # -MAG(T6FIRE)
043419,000448: 16,3547 63715 AD TMINFIRE # TMINFIRE-MAG(T6FIRE)
|
Page 994 |
043421,000450: 16,3550 40000 COM
043422,000451: 16,3551 00006 EXTEND
043423,000452: 16,3552 63611 MINTST BZMF NOROLL # IF NOT GREATER THAN TMINFIRE (NEW FIRE)
043424,000453:
043425,000454: # PROCEED WITH NEW FIRING, BUT NOT LONGER THAN TMAXFIRE.
043426,000455:
043427,000456: 16,3553 31573 MAXTFIRE CA TEMREG
043428,000457: 16,3554 00006 EXTEND
043429,000458: 16,3555 75015 MP 1/TMXFIR # I.E. 1/TMAXFIRE
043430,000459: 16,3556 00006 EXTEND
043431,000460: 16,3557 13565 MAXTST BZF NOMXFIRE # IF LESS THAN TMAXFIRE
043432,000461:
043433,000462: 16,3560 10000 CCS A
043434,000463: 16,3561 33716 CAF TMAXFIRE # USE MAXIMUM
043435,000464: 16,3562 13564 TCF +2
043436,000465: 16,3563 43716 CS TMAXFIRE # USE MAXIMUM
043437,000466: 16,3564 55573 TS TEMREG
043438,000467:
043439,000468: # SET UP SIGN OF REQUIRED TORQUE.
043440,000469:
043441,000470: 16,3565 11573 NOMXFIRE CCS TEMREG # FOR TORQUE SIGN
043442,000471: 16,3566 34777 CA POSMAX # POSITIVE TORQUE REQUIRED
043443,000472: 16,3567 13571 TCF +2
043444,000473: 16,3570 35001 CA NEGMAX # NEGATIVE TORQUE REQUIRED
043445,000474: 16,3571 55571 TS ROLLFIRE # SET ROLLFIRE FOR + OR - TORQUE
043446,000475:
043447,000476: 16,3572 40000 COM # COMPLEMENT... POS. FOR NEG. TORQUE
043448,000477: 16,3573 00006 EXTEND
043449,000478: 16,3574 63577 BZMF +3 # POSITIVE TORQUE REQUIRED
043450,000479: 16,3575 41573 CS TEMREG
043451,000480: 16,3576 55573 TS TEMREG
043452,000481:
043453,000482: 16,3577 31670 FIRELOOK CA I # IS IT MOREROLL
043454,000483: 16,3600 00006 EXTEND
043455,000484: 16,3601 13603 BZF FIREPLUG # YES
043456,000485: 16,3602 13614 TCF JETROLL # MAG(T6FIRE) NOW IN TEMREG
043457,000486:
043458,000487: 16,3603 30031 FIREPLUG CAE TIME6 # CHECK FOR EXTENDED FIRING
043459,000488: 16,3604 00006 EXTEND
043460,000489: 16,3605 61573 SU TEMREG
043461,000490: 16,3606 00006 EXTEND
043462,000491: 16,3607 65324 EXTENTST BZMF TASKOVER # IF EXTENSION WANTED, DONT, EXIT ROLL DAP
043463,000492: 16,3610 13614 TCF JETROLL
043464,000493:
043465,000494: 16,3611 45021 NOROLL CS ZERO # COAST....(NEG ZERO FOR TIME6)
043466,000495: 16,3612 55571 TS ROLLFIRE # NOTE, JETS CAN FIRE NEXT PASS
043467,000496: 16,3613 55573 TS TEMREG
043468,000497:
043469,000498: 16,3614 00006 JETROLL EXTEND
043470,000499: 16,3615 33705 DCA NOROL1T6
|
Page 995 |
043472,000501: 16,3616 53311 DXCH T6LOC
043473,000502: 16,3617 31573 CA TEMREG # ENTER JET FIRING TIME
043474,000503: 16,3620 54031 TS TIME6
043475,000504:
043476,000505: 16,3621 31670 CA I # I=0 IF MOREROLL, KEEP SAME JETS ON
043477,000506: 16,3622 00006 EXTEND
043478,000507: 16,3623 15324 SAMEJETS BZF TASKOVER # IF JETS ON KEEP SAME JETS. EXIT ROLL DAP
043479,000508:
043480,000509: 16,3624 11571 CCS ROLLFIRE
043481,000510: 16,3625 13631 TCF +TORQUE
043482,000511: 16,3626 13672 TCF T6ENABL
043483,000512: 16,3627 13652 TCF -TORQUE
043484,000513: 16,3630 13672 TCF T6ENABL
043485,000514:
043486,000515: # PROCEED WITH PLUS TORQUE.
043487,000516:
043488,000517: 16,3631 31572 +TORQUE CA ROLLWORD # WHAT WAS THE LAST +TORQUE COMBINATION
043489,000518: 16,3632 75017 MASK BIT1 # WAS IT NO.9-11
043490,000519: 16,3633 00006 EXTEND
043491,000520: 16,3634 13644 BZF NO.9-11 # NOT 9-11, SO USE IT THIS TIME
043492,000521:
043493,000522: 16,3635 45017 NO.13-15 CS BIT1
043494,000523: 16,3636 71572 MASK ROLLWORD
043495,000524: 16,3637 55572 TS ROLLWORD # CHANGE BIT 1 TO ZERO
043496,000525: 16,3640 35037 CAF +ROLL2
043497,000526: 16,3641 00006 EXTEND
043498,000527: 16,3642 01006 WRITE CHAN6
043499,000528: 16,3643 13672 TCF T6ENABL
043500,000529:
043501,000530: 16,3644 35017 NO.9-11 CAF BIT1 # 1ST + JETS TO FIRE (MRCLEAN OS ROLLWORD)
043502,000531: 16,3645 27572 ADS ROLLWORD # CHANGE BIT 1 TO ONE
043503,000532: 16,3646 35022 CAF +ROLL1
043504,000533: 16,3647 00006 EXTEND
043505,000534: 16,3650 01006 WRITE CHAN6
043506,000535: 16,3651 13672 TCF T6ENABL
043507,000536:
043508,000537: 16,3652 31572 -TORQUE CA ROLLWORD # WHAT WAS LAST -TORQUE COMBINATION
043509,000538: 16,3653 75016 MASK BIT2 # WAS IT NO.12-10
043510,000539: 16,3654 00006 EXTEND
043511,000540: 16,3655 13665 BZF NO.12-10 # NOT 12-10, SO USE IT THIS TIME
043512,000541:
043513,000542: 16,3656 45016 NO.16-14 CS BIT2
043514,000543: 16,3657 71572 MASK ROLLWORD
043515,000544: 16,3660 55572 TS ROLLWORD # CHANGE BIT 2 TO ZERO
043516,000545: 16,3661 33717 CAF -ROLL2
043517,000546: 16,3662 00006 EXTEND
043518,000547: 16,3663 01006 WRITE CHAN6
043519,000548: 16,3664 13672 TCF T6ENABL
043520,000549:
043521,000550: 16,3665 35016 NO.12-10 CAF BIT2 # 1ST -JETS TO FIRE (MRCLEAN OS ROLLWORD)
|
Page 996 |
043523,000552: 16,3666 27572 ADS ROLLWORD # CHANGE BIT 2 TO ONE
043524,000553: 16,3667 34377 CAF -ROLL1
043525,000554: 16,3670 00006 EXTEND
043526,000555: 16,3671 01006 WRITE CHAN6
043527,000556:
043528,000557: 16,3672 35001 T6ENABL CAF BIT15
043529,000558: 16,3673 00006 EXTEND
043530,000559: 16,3674 05013 WOR CHAN13
043531,000560: 16,3675 15324 RDAPEND TCF TASKOVER # EXIT ROLL DAP
043532,000561:
|
Page 997 |
043534,000563: # THIS T6 TASK SHUTS OFF ALL ROLL JETS
043535,000564:
043536,000565: 16,3676 22016 NOROLL1 LXCH BANKRUPT # SHUT OFF ALL (ROLL) JETS, (A T6 TASK
043537,000566: 16,3677 35021 CAF ZERO # CALLED BY ..JETROLL..)
043538,000567: 16,3700 55571 TS ROLLFIRE # ZERO INDICATES JETS NOW OFF
043539,000568: 16,3701 00006 EXTEND
043540,000569: 16,3702 01006 KILLJETS WRITE CHAN6
043541,000570: 16,3703 15335 TCF NOQRSM
043542,000571:
|
Page 998 |
043544,000573: # CONSTANTS FOR ROLL AUTOPILOT....
043545,000574:
043546,000575: 16,3704 E6,1702 EBANK= BZERO
043547,000576: 16,3704 03676 34066 NOROL1T6 2CADR NOROLL1
043548,000577:
043549,000578: 16,3706 00344 DB DEC .01388889 # DEAD BAND (5 DEG), SC.AT B+0 REV
043550,000579:
043551,000580: 16,3707 06315 -SLOPE DEC 0.2 # -SWITCHLINE SLOPE(0.2 PER SEC) SC.AT B+0
043552,000581: # PER SEC
043553,000582: 16,3710 00111 LMCRATE DEC .00027778 B+4 # LIMIT CYCLE RATE (0.1 DEG/SEC) SC.AT
043554,000583: # B-4 REV/SEC
043555,000584: 16,3711 00510 INTERCEP DEC .0025 B+3 # DB(-SLOPE) - LMCRATE, SC.AT B-3 REV/SC
043556,000585:
043557,000586: 16,3712 01330 MINLIM DEC .00277778 B+4 # RATELIM,MIN (1DEG/SEC), SC.AT B-4 REV/SC
043558,000587:
043559,000588: 16,3713 00027 1/MINLIM DEC 360 B-18 # RECIPROCAL THEREOF, SHIFTED 14 RIGHT
043560,000589:
043561,000590: 16,3714 07071 MAXLIM DEC .01388889 B+4 # RATELIM,MAX (5DEG/SEC), SC.AT B-4 REV/SC
043562,000591:
043563,000592: 16,3715 00030 TMINFIRE DEC 1.5 B+4 # 15 MS (14MIN), SC.AT 16 BITS/CS
043564,000593:
043565,000594: 16,3716 07640 TMAXFIRE DEC 250 B+4 # 2.5 SEC, SC.AT 16 BITS/CS
043566,000595:
043567,000596: 16,3717 5015 1/TMXFIR = BIT3 # RECIPROCAL THEREOF, SHIFTED 14 RIGHT,
043568,000597: # ROUNDS TO OCT00004, SO ALLOWS 2.56
043569,000598: # SEC FIRINGS BEFORE APPLYING LIMIT
043570,000599: 16,3717 7665 T6SCALE = PRIO31 # (B+3) (16 BITS/CS) (100CS/SEC)
043571,000600:
043572,000601: 16,3717 5022 +ROLL1 = FIVE # ONBITS FOR JETS 9 AND 11
043573,000602: 16,3717 5037 +ROLL2 = OCT120 # ONBITS FOR JETS 13 AND 15
043574,000603: 16,3717 4377 -ROLL1 = TEN # ONBITS FOR JETS 12 NAD 10
043575,000604: 16,3717 00240 -ROLL2 OCT 240 # ONBITS FOR JETS 16 AND 14
043576,000605:
End of include-file TVCROLLDAP.agc. Parent file is MAIN.agc