Source Code
These source-code files were from the printout at the MIT Museum, with many thanks
to Deborah Douglas, the Museum's Curator of Science and Technology, for releasing
it to us. The printout was digitally photographed by Paul Fjeld. A team of
volunteers transcribed the source code manually from these images or, where
appropriate, modified already-transcribed but similar source Colossus 249 (Apollo 9)
source code to agree with the images from the printout. Note that the page images
presented online are of reduced quality, and that higher-quality images
are available. Report any conversion errors or legibility
problems in page images to info@sandroid.org.
Notations on the program listing read, in part:GAP: ASSEMBLE REVISION 055 OF AGC PROGRAM COMANCHE BY NASA 2021113-051 10:28 APR. 1,1969Note that the date is the date of the printout, not the date of the program revision. |
044044,000002: ## Copyright: Public domain.
044045,000003: ## Filename: TVCROLLDAP.agc
044046,000004: ## Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
044047,000005: ## It is part of the source code for the Command Module's (CM)
044048,000006: ## Apollo Guidance Computer (AGC), for Apollo 11.
044049,000007: ## Assembler: yaYUL
044050,000008: ## Contact: Ron Burkey <info@sandroid.org>.
044051,000009: ## Website: www.ibiblio.org/apollo.
044052,000010: ## Pages: 984-998
044053,000011: ## Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
044054,000012: ## same name, using Comanche055 page images.
044055,000013: ## 2011-05-08 JL Removed workarounds.
044056,000014: ## 2016-12-21 RSB Proofed comment text using octopus/ProoferComments
044057,000015: ## and corrected the errors found.
044058,000016: ## 2017-01-20 RSB Fixed comment-text errors noted while diff'ing
044059,000017: ## vs Colossus 249.
044060,000018:
044061,000019: ## This source code has been transcribed or otherwise adapted from digitized
044062,000020: ## images of a hardcopy from the MIT Museum. The digitization was performed
044063,000021: ## by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
044064,000022: ## thanks to both. The images (with suitable reduction in storage size and
044065,000023: ## consequent reduction in image quality as well) are available online at
044066,000024: ## www.ibiblio.org/apollo. If for some reason you find that the images are
044067,000025: ## illegible, contact me at info@sandroid.org about getting access to the
044068,000026: ## (much) higher-quality images which Paul actually created.
044069,000027: ##
044070,000028: ## Notations on the hardcopy document read, in part:
044071,000029: ##
044072,000030: ## Assemble revision 055 of AGC program Comanche by NASA
044073,000031: ## 2021113-051. 10:28 APR. 1, 1969
044074,000032: ##
044075,000033: ## This AGC program shall also be referred to as
044076,000034: ## Colossus 2A
044077,000035:
Page 984 |
044079,000037: # PROGRAM NAME...TVC ROLL AUTOPILOT
044080,000038: # LOG SECTION...TVCROLLDAP SUBROUTINE...DAPCSM
044081,000039: # MODIFIED BY SCHLUNDT 21 OCTOBER 1968
044082,000040:
044083,000041: # FUNCTIONAL DESCRIPTION....
044084,000042:
044085,000043: # *AN ADAPTATION OF THE LEM P-AXIS CONTROLLER
044086,000044: # *MAINTAIN OGA WITHIN 5 DEG DEADBND OF OGAD, WHERE OGAD = OGA AS SEEN
044087,000045: # BY IGNITION (P40)
044088,000046: # *MAINTAIN OGA RATE LESS THAN 0.1 DEG/SEC LIMIT CYCLE RATE
044089,000047: # *SWITCHING LOGIC IN PHASE PLANE.... SEE GSOP CHAPTER 3
044090,000048: # *USES T6 CLOCK TO TIME JET FIRINGS
044091,000049: # *MAXIMUM JET FIRING TIME = 2.56 SECONDS, LIMITED TO 2.5 IF GREATER
044092,000050: # *MINIMUM JET FIRING TIME = 15 MS
044093,000051: # *JET PAIRS FIRE ALTERNATELY
044094,000052: # *AT LEAST 1/2 SECOND DELAY BEFORE A NEW JET PAIR IS FIRED
044095,000053: # *JET FIRINGS MAY NOT BE EXTENDED, ONLY SHORTENED, WHEN RE-EVALUATION
044096,000054: # OF A JET FIRING TIME IS MADE ON A LATER PASS
044097,000055:
044098,000056: # CALLING SEQUENCE....
044099,000057:
044100,000058: # *ROLLDAP CALL VIA WAITLIST, IN PARTICULAR BY TVCEXEC (EVERY 1/2 SEC)
044101,000059: # WITH A 3CS DELAY TO ALLOW FREE TIME FOR OTHER RUPTS (DWNRPT, ETC.)
044102,000060:
044103,000061: # NORMAL EXIT MODES.... ENDOFJOB
044104,000062:
044105,000063: # ALARM OR ABORT EXIT MODES.... NONE
044106,000064:
044107,000065: # SUBROUTINES CALLED.....NONE
044108,000066:
044109,000067: # OTHER INTERFACES....
044110,000068:
044111,000069: # *TVCEXEC SETS UP ROLLDAP TASK EVERY 1/2 SECOND AND UPDATES 1/CONACC
044112,000070: # EVERY 10 SECONDS (VIA MASSPROP AND S40.15)
044113,000071: # *RESTARTS SUSPEND ROLL DAP COMPUTATIONS UNTIL THE NEXT 1/2 SEC
044114,000072: # SAMPLE PERIOD. (THE PART OF TVCEXECUTIVE THAT CALLS ROLL DAP IS
044115,000073: # NOT RESTARTED.) THE OGAD FROM IGNITION IS MAINTAINED.
044116,000074:
044117,000075: # ERASABLE INITIALIZATION REQUIRED....
044118,000076:
044119,000077: # *1/CONACC (S40.15)
044120,000078: # *OGAD (CDUX AT IGNITION)
044121,000079: # *OGANOW (CDUX AT TVCINIT4 AND TVCEXECUTIVE)
044122,000080: # *OGAPAST (OGANOW AT TVCEXECUTIVE)
044123,000081: # *ROLLFIRE = TEMREG = ROLLWORD = 0 (MRCLEAN LOOP IN TVCDAPON)
044124,000082:
044125,000083: # OUTPUT....
044126,000084:
044127,000085: # *ROLL JET PAIR FIRINGS
044128,000086:
Page 985 |
044130,000088: # DEBRIS.... MISCELLANEOUS, SHAREABLE WITH RCS/ENTRY, IN EBANK6 ONLY
044131,000089:
Page 986 |
044133,000091: # SOME NOTES ON THE ROLL AUTOPILOT, AND IN PARTICULAR, ON ITS SWITCHING
044134,000092: # LOGIC. SEE SECTION THREE OF THE GSOP (SUNDISK/COLOSSUS) FOR DETAILS.
044135,000093:
044136,000094: # SWITCHING LOGIC IN THE PHASE PLANE....
044137,000095:
044138,000096: # OGARATE
044139,000097: # *
044140,000098: # *
044141,000099: # * * * * * * * * * * * *
044142,000100: # * (REGION 1, SEE TEXT BELOW)
044143,000101: # * *
044144,000102: # *
044145,000103: # * * * * * * * (COAST) * ...PARABOLA (SWITCHING = CONTROL)
044146,000104: # * * .
044147,000105: # * * *
044148,000106: # * * (FIRE NEG ROLL JETS)
044149,000107: # * * *
044150,000108: # (-DB,+LMCRATE)....* *
044151,000109: # * * *
044152,000110: # * * OGAERROR
044153,000111: # ************************************************************************
044154,000112: # * * (-AK, OGAERR)
044155,000113: # * * * (REGION 6-PRIME)
044156,000114: # * * (SEE TEXT BELOW)
044157,000115: # * * *
044158,000116: # * * ...STRAIGHT LINE
044159,000117: # (FIRE POS ROLL JETS) * * * .
044160,000118: # * (COAST) *
044161,000119: # * * * * * * * * * * *
044162,000120: # * -MINLIM
044163,000121: # * *
044164,000122: # *
044165,000123: # * * * * * * * * * * * * * * * *
044166,000124: # * -MAXLIM
044167,000125: # *
044168,000126: # *
044169,000127:
044170,000128: # SWITCHING PARABOLAS ARE CONTROL PARABOLAS, THUS REQUIRING KNOWLEDGE OF
044171,000129: # CONTROL ACCELERATION CONACC, OR ITS RECIPROCAL, 1/CONACC, THE TVC
044172,000130: # ROLL DAP GAIN (SEE TVCEXECUTIVE VARIABLE GAIN PACKAGE). JET
044173,000131: # FIRING TIME IS SIMPLY THAT REQUIRED TO ACHIEVE THE DESIRED OGARATE,
044174,000132: # SUBJECT TO THE LIMITATIONS DISCUSSED UNDER FUNCTIONAL DESCRIPTION,
044175,000133: # ABOVE.
044176,000134:
044177,000135: # THE THREE CONTROL REGIONS (+, -, AND ZERO TORQUE) ARE COMPRIZED OF
044178,000136: # TWELVE SUBSET REGIONS ( 1...6, AND THE CORRESPONDING 1-PRIME...
044179,000137: # 6-PRIME ) SEE SECTION 3 OF THE GSOP (SUNDISK OR COLOSSUS)
Page 987 |
044181,000139:
044182,000140: # GIVEN THE OPERATING POINT NOT IN THE COAST REGION, THE DESIRED OGARATE
044183,000141: # IS AT THE POINT OF PENETRATION OF THE COAST REGION BY THE CONTROL
044184,000142: # PARABOLA WHICH PASSES THROUGH THE OPERATING POINT. FOR REGION 3
044185,000143: # DESIRED OGARATE IS SIMPLY +-MAXLIM. FOR REGIONS 1 OR 6 THE SOLUTION
044186,000144: # TO A QUADRATIC IS REQUIRED (THE PENETRATION IS ALONG THE STRAIGHT
044187,000145: # LINE OR MINLIM BOUNDRY SWITCH LINES). AN APPROXIMATION IS MADE
044188,000146: # INSTEAD. TAKE AN OPERATING POINT IN REGION 6'. PASS A TANGENT TO
044189,000147: # THE CONTROL PARABOLA THROUGH THE OPERATING POINT, AND FIND ITS
044190,000148: # INTERSECTION WITH THE STRAIGHT LINE SECTION OF THE SWITCH CURVE...
044191,000149: # THE INTERSECTION DEFINES DESIRED OGARATE. IF THE OPERATING POINT IS
044192,000150: # CLOSE TO THE SWITCH LINE, THE APPROXIMATION IS QUITE GOOD (INDEED
044193,000151: # THE APPROXIMATE AND QUADRATIC SOLUTIONS CONVERGE IN THE LIMIT AS
044194,000152: # THE SWITCH LINE IS APPROACHED). IF THE OPERATING POINT IS NOT CLOSE
044195,000153: # TO THE SWITCH LINE, THE APPROXIMATE SOLUTION GIVES VALID TREND
044196,000154: # INFORMATION (DIRECTION OF DESIRED OGARATE) AT LEAST. THE
044197,000155: # RE-EVALUATION OF DESIRED OGARATE IN SUBSEQUENT ROLL DAP PASSES (1/2
044198,000156: # SECOND INTERVALS) WILL BENEFIT FROM THE CONVERGENT NATURE OF THE
044199,000157: # APPROXIMATION.
044200,000158:
044201,000159: # FOR LARGE OGAERROR THE TANGENT INTERSECTS +-MINLIM SWITCH BOUNDRY BEFORE
044202,000160: # INTERSECTING THE STRAIGHT LINE SWITCH. HOWEVER THE MINLIM IS
044203,000161: # IGNORED IN COMPUTING THE FIRING TIME, SO THAT THE EXTENSION (INTO
044204,000162: # THE COAST REGION) OF THE STRAIGHT LINE SWITCH IS WHAT IS FIRED TO.
044205,000163: # IF THE ROLL DAP FINDS ITSELF IN THE COAST REGION BEFORE REACHING
044206,000164: # THE DESIRED INTERSECTION (IE, IN THE REGION BETWEEN THE MINLIM
044207,000165: # AND THE STRAIGHT LINE SWITCH) IT WILL EXIBIT NORMAL COAST-REGION
044208,000166: # BEHAVIOR AND TURN OFF THE JETS. THE PURPOSE OF THIS FIRING POLICY
044209,000167: # IS TO MAINTAIN STATIC ROLL STABILITY IN THE EVENT OF A JET
044210,000168: # FAILED-ON.
044211,000169:
044212,000170: # WHEN THE OPERATING POINT IS IN REGION 1 THE SAME APPROXIMATION IS
044213,000171: # MADE, BUT AT AN ARTIFICIALLY-CREATED OR DUMMY OPERATING POINT,
044214,000172: # DEFINED BY.. OGAERROR = INTERSECTION OF CONTROL PARABOLA AND
044215,000173: # OGAERROR AXIS, OGARATE = +-LMCRATE WHERE SIGN IS OPPOSITE THAT OF
044216,000174: # REAL OPERATING POINT RATE. WHEN THE OPERATING POINT HAS PASSED
044217,000175: # FROM REGION 1 TO REGION 6', THE DUMMY POINT IS NO LONGER REQUIRED,
044218,000176: # AND THE SOLUTION REVERTS TO THAT OF A REGULAR REGION 6' POINT.
044219,000177:
044220,000178: # EQUATION FOR SWITCHING PARABOLA (SEE FIGURE ABOVE)....
044221,000179: # 2
044222,000180: # SOGAERROR = (DB - (SOGARATE) (1/CONACC)/2) SGN(SOGARATE)
044223,000181:
044224,000182: # EQUATION FOR SWITCHING STRAIGHT LINE SEGMENT....
044225,000183:
044226,000184: # SOGARATE = -(-SLOPE)(SOGAERROR) - SGN(SOGARATE) INTERCEP
044227,000185:
044228,000186: # WHERE INTERCEP = DB(-SLOPE) - LMCRATE
Page 988 |
044230,000188:
044231,000189: # EQUATION FOR INTERSECTION, CONTROL PARABOLA AND STRAIGHT SWITCH LINE....
044232,000190:
044233,000191: # DOGADOT = NUM/DEN, WHERE
044234,000192: # 2
044235,000193: # NUM = (-SLOPE)(OGARATE) (1/CONACC)
044236,000194: # +SGN(DELOGA)(-SLOPE)(OGAERROR - SGN(DELOGA)(DB))
044237,000195: # +LMCRATE
044238,000196:
044239,000197: # DEN = (-SLOPE)(LMCRATE)(1/CONACC) - SGN(DELOGA)
044240,000198: # 2
044241,000199: # DELOGA = OGAERROR - (DB - OGARATE (1/CONACC)/2)SGN(OGARATE)
044242,000200:
044243,000201: # FOR REGIONS 6 AND 6-PRIME USE ACTUAL OPERATING POINT (OGA, OGARATE)
044244,000202: # FOR OGAERROR AND OGARATE IN THE INTERSECTION EQUATIONS ABOVE.
044245,000203: # FOR REGIONS 1 AND 1-PRIME USE DUMMY OPERATING POINT FOR OGAERROR
044246,000204: # AND OGARATE, WHERE THE DUMMY POINT IS GIVEN BY....
044247,000205:
044248,000206: # OGAERROR = DELOGA + DB SGN(OGARATE)
044249,000207:
044250,000208: # OGARATE = -LMCRATE SGN(OGARATE)
044251,000209:
044252,000210: # NOTE, OGAERROR = OGA - OGAD USES DUMMY REGISTER OGA IN ROLL DAP CODING
044253,000211: # ALSO, AT POINT WHERE DOGARATE IS COMPUTED, REGISTER DELOGA IS USED
044254,000212: # AS A DUMMY REGISTER FOR THE OGAERROR IN THE NUM EQUATION ABOVE
Page 989 |
044256,000214:
044257,000215: # ROLLDAP CODING....
044258,000216:
044259,000217: 16,2000 SETLOC DAPROLL
044260,000218: 16,2000 BANK
044261,000219: 16,3272 E6,1662 EBANK= OGANOW
044262,000220: 16,3272 COUNT* $$/ROLL
044263,000221: 16,3272 31662 ROLLDAP CAE OGANOW # OGA RATE ESTIMATOR...SIMPLE FIRST-ORDER
044264,000222: 16,3273 00006 EXTEND # DIFFERENCE (SAMPLE TIME = 1/2 SEC)
044265,000223: 16,3274 21663 MSU OGAPAST
044266,000224: 16,3275 00006 EXTEND
044267,000225: 16,3276 75013 MP BIT5
044268,000226: 16,3277 22000 LXCH A
044269,000227: 16,3300 55533 TS OGARATE # SC.AT B-4 REV/SEC
044270,000228:
044271,000229: # COMPUTATIONS WHICH FOLLOW USE OGA FOR OGAERR (SAME REGISTER)
044272,000230: # EXAMINE DURATION OF LAST JET FIRING IF JETS NOW ON.
044273,000231:
044274,000232: 16,3301 31571 DURATION CA ROLLFIRE # SAME SGN AS PRESENT TORQ,MAGN=POSMAX
044275,000233: 16,3302 00006 EXTEND
044276,000234: 16,3303 13305 BZF +2 # ROLL JETS ARE NOW OFF.
044277,000235: 16,3304 13313 TCF ROLLOGIC # ENTER LOGIC, JETS NOW ON.
044278,000236:
044279,000237: 16,3305 31573 CAE TEMREG # EXAMINE LAST FIRING INTERVAL
044280,000238: 16,3306 00006 EXTEND # IF POSITIVE, DONT FIRE
044281,000239: 16,3307 13313 BZF ROLLOGIC # ENTER LOGIC, JETS NOW OFF.
044282,000240:
044283,000241: 16,3310 35021 CAF ZERO # JETS HAVE NOT BEEN OFF FOR 1/2 SEC. WAIT
044284,000242: 16,3311 55573 TS TEMREG # RESET TEMREG
044285,000243: 16,3312 15324 WAIT1/2 TCF TASKOVER # EXIT ROLL DAP
044286,000244:
044287,000245: # COMPUTE DB-(1/2 CONACC) (OGARATE)SQ (1/2 IN THE SCALING)
044288,000246:
044289,000247: 16,3313 41533 ROLLOGIC CS OGARATE # SCALED AT 2(-4) REV/SEC
044290,000248: 16,3314 00006 EXTEND
044291,000249: 16,3315 71640 MP 1/CONACC # SCALED AT 2(+9) SEC SQ /REV
044292,000250: 16,3316 00006 EXTEND
044293,000251: 16,3317 71533 MP OGARATE
044294,000252: 16,3320 63706 AD DB # SCALED AT 2(+0) REV
044295,000253: 16,3321 55573 TS TEMREG # QUANTITY SCALED AT 2(+0) REV.
044296,000254:
044297,000255: # GET SIGN OF OGARATE
044298,000256:
044299,000257: 16,3322 31533 CA OGARATE
044300,000258: 16,3323 00006 EXTEND
044301,000259: 16,3324 63327 BZMF +3 # LET SGN(0) BE NEGATIVE
044302,000260: 16,3325 35017 CA BIT1
044303,000261: 16,3326 13330 TCF +2
044304,000262: 16,3327 45017 CS BIT1
044305,000263: 16,3330 55666 TS SGNRT # + OR - 2(-14)
044306,000264:
Page 990 |
044308,000266: # CALCULATE DISTANCE FROM SWITCH PARABOLA (DELOGA)
044309,000267: 16,3331 00006 EXTEND
044310,000268: 16,3332 71573 MP TEMREG # SGN(OGARATE) TEMREG NOW IN L
044311,000269: 16,3333 40001 CS L
044312,000270: 16,3334 61664 AD OGA # SCALED AT 2(+0) REV
044313,000271: 16,3335 55667 DELOGAC TS DELOGA # SCALE B+0 REV, PLUS TO RIGHT OF C-PARAB
044314,000272:
044315,000273: # EXAMINE SGN(DELOGA) AND CREATE CA OR CS INSTR. DEPENDING UPON SIGN.
044316,000274:
044317,000275: 16,3336 00006 EXTEND
044318,000276: 16,3337 63342 BZMF +3
044319,000277: 16,3340 34371 CAF PRIO30 # = CA (30000)
044320,000278: 16,3341 13343 TCF +2
044321,000279: 16,3342 35001 CAF BIT15 # = CS (40000)
044322,000280: 16,3343 55670 TS I
044323,000281:
044324,000282: 16,3344 51670 INDEX I # TSET ON I SGN(OGARATE)
044325,000283: 16,3345 01666 0 SGNRT # CA OR CS
044326,000284: 16,3346 40000 COM
044327,000285: 16,3347 00006 EXTEND
044328,000286: 16,3350 63421 REG1TST BZMF ROLLON # IF REGION 1 (DELOGA OGARATE SAME SIGN)
044329,000287:
044330,000288: # NO JET FIRE YET, TEST FOR MAX OGARATE
044331,000289:
044332,000290: 16,3351 51670 INDEX I
044333,000291: 16,3352 01533 0 OGARATE # CA OR CS...BOTH MUST BE NEG. HERE
044334,000292: 16,3353 55671 TS IOGARATE # I.E. I OGARATE
044335,000293: 16,3354 63714 AD MAXLIM # SCALED AT 2(-4) REV/SEC
044336,000294: 16,3355 00006 EXTEND
044337,000295: 16,3356 63500 REG3TST BZMF RATELIM # IF REGION 3 (RATES TOO HIGH, FIRE JETS)
044338,000296:
044339,000297: # COMPUTATION OF I((-SLOPE)OGA + OGARATE) - INTERCEPT..NOTE THAT STR. LINE
044340,000298: # SWITCH SLOPE IS (SLOPE) DEG/SEC/DEG, A NEG QUANTITY
044341,000299:
044342,000300: 16,3357 31533 CA OGARATE
044343,000301: 16,3360 00006 EXTEND
044344,000302: 16,3361 75002 MP BIT14
044345,000303: 16,3362 55573 TS TEMREG
044346,000304: 16,3363 31664 CA OGA
044347,000305: 16,3364 00006 EXTEND
044348,000306: 16,3365 73707 MP -SLOPE
044349,000307: 16,3366 20001 DDOUBL
044350,000308: 16,3367 20001 DDOUBL
044351,000309: 16,3370 20001 DDOUBL # (OGA ERROR MUST BE LESS THAN +-225 DEG)
044352,000310: 16,3371 61573 AD TEMREG
044353,000311:
044354,000312: 16,3372 51670 INDEX I
044355,000313: 16,3373 00000 0 A # I((-SLOPE)OGA+OGARATE) AT 2(-3)REV/SEC
044356,000314: 16,3374 40000 COM
Page 991 |
044358,000316: 16,3375 63711 AD INTERCEP # SCALED AT 2(-3) REV.
044359,000317: 16,3376 40000 COM
044360,000318: 16,3377 00006 EXTEND
044361,000319: 16,3400 63611 REG2TST BZMF NOROLL # IF REGION 2 (COAST SIDE OF STRT LINE)
044362,000320:
044363,000321: # CHECK TO SEE IF OGARATE IS ABOVE MINLIM BOUNDARY
044364,000322:
044365,000323: 16,3401 31671 CA IOGARATE # ALWAYS NEGATIVE
044366,000324: 16,3402 63712 AD MINLIM # SCALED AT 2(-4) REV/SEC
044367,000325: 16,3403 00006 EXTEND
044368,000326: 16,3404 63611 REG4TST BZMF NOROLL # IF REGION 4 (COAST SIDE OF MINLIM)
044369,000327:
044370,000328: # ALL AREAS CHECKED EXCEPT LAST AREA...NO FIRE IN THIS SMALL SEGMENT
044371,000329:
044372,000330: 16,3405 51670 INDEX I
044373,000331: 16,3406 01664 0 OGA
044374,000332: 16,3407 40000 COM
044375,000333: 16,3410 63706 AD DB
044376,000334: 16,3411 40000 COM
044377,000335: 16,3412 00006 EXTEND
044378,000336: 16,3413 63611 REG5TST BZMF NOROLL # IF REGION 5 (COAST SIDE OF DB)
044379,000337:
044380,000338: # JETS MUST FIRE NOW. OGARATE IS NEG. (OR VISA VERSA). USE DIRECT STR. LINE.
044381,000339: # DELOGA AND DELOGART ARE USED AS DUMMY VARIABLES IN THE SOLUTION OF A
044382,000340: # STRAIGHT LINE APPROXIMATION TO A QUADRATIC SOLUTION OF THE INTERSECTION
044383,000341: # OF THE CONTROL PARABOLA AND THE STRAIGHT-LINE SWITCH LINE. THE STRAIGHT
044384,000342: # LINE IS THE TANGENT TO THE CONTROL PARABOLA AT THE OPERATING POINT. (FOR
044385,000343: # OPERATING POINTS IN REGIONS 6 OR 6')
044386,000344:
044387,000345: 16,3414 31664 REGION6 CAE OGA # USE ACTUAL OPERATING POINT FOR TANGENT
044388,000346: 16,3415 55667 TS DELOGA # ACTUAL STATE
044389,000347: 16,3416 31533 CA OGARATE
044390,000348: 16,3417 55665 TS DELOGART # ACTUAL STATE, I.E. DEL OGARATE
044391,000349: 16,3420 13430 TCF ONROLL
044392,000350:
044393,000351: # JETS ALSO FIRE FROM HERE EXCEPT OGARATE IS POS (VISA VERSA), USE INDIRECT
044394,000352: # STRAIGHT LINE ESTABLISHED BY TANGENT TO A CONTROL PARABOLA AT ((DELOGA
044395,000353: # + DB SGN(DELOGA) ), -LMCRATE SGN(DELOGA) ) (THIS IS THE DUMMY
044396,000354: # OPERATING POINT FOR OPERATING POINTS IN REGIONS 1 AND 1')
044397,000355:
044398,000356: 16,3421 51670 ROLLON INDEX I
044399,000357: 16,3422 03706 0 DB
044400,000358: 16,3423 27667 ADS DELOGA # DELOGA WAS DIST. FROM SWITCH PARABOLA
044401,000359:
044402,000360: 16,3424 43710 CS LMCRATE # LIMIT CYCLE RATE AT 2(-4) REV/SEC
044403,000361: 16,3425 51670 INDEX I
044404,000362: 16,3426 00000 0 A
044405,000363: 16,3427 55665 TS DELOGART # EVALUATE STATE FOR INDIRECT LINE.
044406,000364:
Page 992 |
044408,000366: # SOLVE STRAIGHT LINES SIMULTANEOUSLY TO OBTAIN DESIRED OGARATE.
044409,000367:
044410,000368: 16,3430 00006 ONROLL EXTEND # DELOGART IN ACC. ON ARRIVAL
044411,000369: 16,3431 71640 MP 1/CONACC
044412,000370: 16,3432 60000 DOUBLE
044413,000371: 16,3433 00006 EXTEND
044414,000372: 16,3434 73707 MP -SLOPE
044415,000373: 16,3435 55573 TS TEMREG # 2(-SLOPE)RATE /CONACC
044416,000374: 16,3436 00006 EXTEND
044417,000375: 16,3437 71665 MP DELOGART
044418,000376: 16,3440 55665 TS DELOGART # 2(-SLOPE)(RATESQ)/CONACC
044419,000377: 16,3441 45005 CS BIT11
044420,000378: 16,3442 51670 INDEX I
044421,000379: 16,3443 00000 0 A
044422,000380: 16,3444 27573 RATEDEN ADS TEMREG # DENOMINATOR COMPLETED
044423,000381:
044424,000382: 16,3445 51670 INDEX I
044425,000383: 16,3446 01667 0 DELOGA
044426,000384: 16,3447 40000 COM
044427,000385: 16,3450 63706 AD DB
044428,000386: 16,3451 40000 COM
044429,000387: 16,3452 00006 EXTEND
044430,000388: 16,3453 73707 MP -SLOPE
044431,000389: 16,3454 27665 ADS DELOGART
044432,000390: 16,3455 33710 CA LMCRATE
044433,000391: 16,3456 00006 EXTEND
044434,000392: 16,3457 75005 MP BIT11
044435,000393: 16,3460 61665 RATENUM AD DELOGART # NUMERATOR COMPLETED
044436,000394:
044437,000395: 16,3461 56001 XCH L # PLACE NUMERATOR IN L FOR OVERFL. CHECK
044438,000396: 16,3462 35021 CA ZERO
044439,000397: 16,3463 00006 EXTEND
044440,000398: 16,3464 11573 DV TEMREG # OVERFLOW, IF ANYTHING, NOW APPEARS IN A
044441,000399: 16,3465 00006 EXTEND
044442,000400: 16,3466 13474 BZF DVOK # NO OVERFLOW....(0,L)/TEMREG = 0,L
044443,000401:
044444,000402: 16,3467 10000 MINLIMAP CCS A
044445,000403: 16,3470 34777 CAF POSMAX # POSITIVE OVERFLOW
044446,000404: 16,3471 13503 TCF ROLLSET
044447,000405: 16,3472 44777 CS POSMAX # NEGATIVE OVERFLOW
044448,000406: 16,3473 13503 TCF ROLLSET
044449,000407:
044450,000408: 16,3474 22000 DVOK LXCH A # PUT NUMERATOR BACK INTO A, 0 IN L
044451,000409: 16,3475 00006 EXTEND
044452,000410: 16,3476 11573 DV TEMREG # RESULT OF DIVISION IS DESIRED OGARATE
044453,000411: 16,3477 13503 TCF ROLLSET # (SCALED AT B-4 REV/SEC)
044454,000412:
044455,000413: 16,3500 43714 RATELIM CS MAXLIM
044456,000414: 16,3501 51670 INDEX I
Page 993 |
044458,000416: 16,3502 00000 0 A # IF I = CA, DESIRED RATE IS -MAXLIM
044459,000417:
044460,000418: # COMPUTE JET FIRE TIME, BASED ON DESIRED RATE MINUS PRESENT RATE
044461,000419:
044462,000420: 16,3503 55573 ROLLSET TS TEMREG # STORE DESIRED OGARATE (SCALED B-4)
044463,000421: 16,3504 00006 EXTEND
044464,000422: 16,3505 61533 SU OGARATE # RATE DIFF. SCALED AT 2(-4) REV/SEC
044465,000423: 16,3506 55573 TS TEMREG # OVERFLOW PROTECT
044466,000424: 16,3507 13512 TCF +3 # " "
044467,000425: 16,3510 50000 INDEX A # " "
044468,000426: 16,3511 45000 CS LIMITS # " "
044469,000427: 16,3512 00006 EXTEND
044470,000428: 16,3513 77665 MP T6SCALE # T6SCALE = 8/10.24
044471,000429: 16,3514 00006 EXTEND
044472,000430: 16,3515 71640 MP 1/CONACC # SCALED AT B+9 SECSQ/REV (MAX < .60)
044473,000431: 16,3516 20001 DDOUBL
044474,000432: 16,3517 20001 DDOUBL
044475,000433: 16,3520 55573 TS TEMREG # OVERFLOW PROTECT
044476,000434: 16,3521 13524 TCF +3 # " "
044477,000435: 16,3522 50000 INDEX A # " "
044478,000436: 16,3523 45000 CS LIMITS # " "
044479,000437: 16,3524 55573 TS TEMREG # JET FIRE TIME AT 625 MICROSEC/BIT
044480,000438: 16,3525 00006 EXTEND # POS MEANS POSITIVE ROLL TORQUE.
044481,000439: 16,3526 13611 BZF NOROLL
044482,000440:
044483,000441: # JET FIRE TIME IS NZ, TEST FOR JETS NOW ON.
044484,000442:
044485,000443: 16,3527 31573 CAE TEMREG # DESIRED CHANGE IN OGARATE
044486,000444: 16,3530 00006 EXTEND
044487,000445: 16,3531 71571 MP ROLLFIRE # (SGN OF TORQUE..ZERO IF JETS NOW OFF)
044488,000446: 16,3532 10000 CCS A
044489,000447: 16,3533 13537 TCF MOREROLL # CONTINUE FIRING WITH PRESENT POLARITY
044490,000448: 16,3534 13542 TCF NEWROLL # START NEW FIRING NOW, PLUS
044491,000449: 16,3535 13611 TCF NOROLL # TERMINATE OLD FIRING, NEW SIGN REQUESTED
044492,000450: 16,3536 13542 TCF NEWROLL # START NEW FIRING NOW, MINUS
044493,000451:
044494,000452: # CONTINUE PRESENT FIRING
044495,000453:
044496,000454: 16,3537 35021 MOREROLL CAF ZERO
044497,000455: 16,3540 55670 TS I # USE TEMP. AS MOREROLL SWITCH
044498,000456: 16,3541 13553 TCF MAXTFIRE
044499,000457:
044500,000458: # START NEW FIRING, BUT CHECK IF GREATER THAN MIN FIRE TIME.
044501,000459:
044502,000460: 16,3542 11573 NEWROLL CCS TEMREG # CALL THIS T6FIRE
044503,000461: 16,3543 65017 AD ONE
044504,000462: 16,3544 13546 TCF +2
044505,000463: 16,3545 65017 AD ONE
044506,000464: 16,3546 40000 COM # -MAG(T6FIRE)
044507,000465: 16,3547 63715 AD TMINFIRE # TMINFIRE-MAG(T6FIRE)
Page 994 |
044509,000467: 16,3550 40000 COM
044510,000468: 16,3551 00006 EXTEND
044511,000469: 16,3552 63611 MINTST BZMF NOROLL # IF NOT GREATER THAN TMINFIRE (NEW FIRE)
044512,000470:
044513,000471: # PROCEED WITH NEW FIRING, BUT NOT LONGER THAN TMAXFIRE.
044514,000472:
044515,000473: 16,3553 31573 MAXTFIRE CA TEMREG
044516,000474: 16,3554 00006 EXTEND
044517,000475: 16,3555 75015 MP 1/TMXFIR # I.E. 1/TMAXFIRE
044518,000476: 16,3556 00006 EXTEND
044519,000477: 16,3557 13565 MAXTST BZF NOMXFIRE # IF LESS THAN TMAXFIRE
044520,000478:
044521,000479: 16,3560 10000 CCS A
044522,000480: 16,3561 33716 CAF TMAXFIRE # USE MAXIMUM
044523,000481: 16,3562 13564 TCF +2
044524,000482: 16,3563 43716 CS TMAXFIRE # USE MAXIMUM
044525,000483: 16,3564 55573 TS TEMREG
044526,000484:
044527,000485: # SET UP SIGN OF REQUIRED TORQUE.
044528,000486:
044529,000487: 16,3565 11573 NOMXFIRE CCS TEMREG # FOR TORQUE SIGN
044530,000488: 16,3566 34777 CA POSMAX # POSITIVE TORQUE REQUIRED
044531,000489: 16,3567 13571 TCF +2
044532,000490: 16,3570 35001 CA NEGMAX # NEGATIVE TORQUE REQUIRED
044533,000491: 16,3571 55571 TS ROLLFIRE # SET ROLLFIRE FOR + OR - TORQUE
044534,000492:
044535,000493: 16,3572 40000 COM # COMPLEMENT... POS. FOR NEG. TORQUE
044536,000494: 16,3573 00006 EXTEND
044537,000495: 16,3574 63577 BZMF +3 # POSITIVE TORQUE REQUIRED
044538,000496: 16,3575 41573 CS TEMREG
044539,000497: 16,3576 55573 TS TEMREG
044540,000498:
044541,000499: 16,3577 31670 FIRELOOK CA I # IS IT MOREROLL
044542,000500: 16,3600 00006 EXTEND
044543,000501: 16,3601 13603 BZF FIREPLUG # YES
044544,000502: 16,3602 13614 TCF JETROLL # MAG(T6FIRE) NOW IN TEMREG
044545,000503:
044546,000504: 16,3603 30031 FIREPLUG CAE TIME6 # CHECK FOR EXTENDED FIRING
044547,000505: 16,3604 00006 EXTEND
044548,000506: 16,3605 61573 SU TEMREG
044549,000507: 16,3606 00006 EXTEND
044550,000508: 16,3607 65324 EXTENTST BZMF TASKOVER # IF EXTENSION WANTED, DONT, EXIT ROLL DAP
044551,000509: 16,3610 13614 TCF JETROLL
044552,000510:
044553,000511: 16,3611 45021 NOROLL CS ZERO # COAST....(NEG ZERO FOR TIME6)
044554,000512: 16,3612 55571 TS ROLLFIRE # NOTE, JETS CAN FIRE NEXT PASS
044555,000513: 16,3613 55573 TS TEMREG
044556,000514:
044557,000515: 16,3614 00006 JETROLL EXTEND
044558,000516: 16,3615 33705 DCA NOROL1T6
Page 995 |
044560,000518: 16,3616 53311 DXCH T6LOC
044561,000519: 16,3617 31573 CA TEMREG # ENTER JET FIRING TIME
044562,000520: 16,3620 54031 TS TIME6
044563,000521:
044564,000522: 16,3621 31670 CA I # I=0 IF MOREROLL, KEEP SAME JETS ON
044565,000523: 16,3622 00006 EXTEND
044566,000524: 16,3623 15324 SAMEJETS BZF TASKOVER # IF JETS ON KEEP SAME JETS. EXIT ROLL DAP
044567,000525:
044568,000526: 16,3624 11571 CCS ROLLFIRE
044569,000527: 16,3625 13631 TCF +TORQUE
044570,000528: 16,3626 13672 TCF T6ENABL
044571,000529: 16,3627 13652 TCF -TORQUE
044572,000530: 16,3630 13672 TCF T6ENABL
044573,000531:
044574,000532: # PROCEED WITH PLUS TORQUE.
044575,000533:
044576,000534: 16,3631 31572 +TORQUE CA ROLLWORD # WHAT WAS THE LAST +TORQUE COMBINATION
044577,000535: 16,3632 75017 MASK BIT1 # WAS IT NO.9-11
044578,000536: 16,3633 00006 EXTEND
044579,000537: 16,3634 13644 BZF NO.9-11 # NOT 9-11, SO USE IT THIS TIME
044580,000538:
044581,000539: 16,3635 45017 NO.13-15 CS BIT1
044582,000540: 16,3636 71572 MASK ROLLWORD
044583,000541: 16,3637 55572 TS ROLLWORD # CHANGE BIT 1 TO ZERO
044584,000542: 16,3640 35037 CAF +ROLL2
044585,000543: 16,3641 00006 EXTEND
044586,000544: 16,3642 01006 WRITE CHAN6
044587,000545: 16,3643 13672 TCF T6ENABL
044588,000546:
044589,000547: 16,3644 35017 NO.9-11 CAF BIT1 # 1ST + JETS TO FIRE (MRCLEAN OS ROLLWORD)
044590,000548: 16,3645 27572 ADS ROLLWORD # CHANGE BIT 1 TO ONE
044591,000549: 16,3646 35022 CAF +ROLL1
044592,000550: 16,3647 00006 EXTEND
044593,000551: 16,3650 01006 WRITE CHAN6
044594,000552: 16,3651 13672 TCF T6ENABL
044595,000553:
044596,000554: 16,3652 31572 -TORQUE CA ROLLWORD # WHAT WAS LAST -TORQUE COMBINATION
044597,000555: 16,3653 75016 MASK BIT2 # WAS IT NO.12-10
044598,000556: 16,3654 00006 EXTEND
044599,000557: 16,3655 13665 BZF NO.12-10 # NOT 12-10, SO USE IT THIS TIME
044600,000558:
044601,000559: 16,3656 45016 NO.16-14 CS BIT2
044602,000560: 16,3657 71572 MASK ROLLWORD
044603,000561: 16,3660 55572 TS ROLLWORD # CHANGE BIT 2 TO ZERO
044604,000562: 16,3661 33717 CAF -ROLL2
044605,000563: 16,3662 00006 EXTEND
044606,000564: 16,3663 01006 WRITE CHAN6
044607,000565: 16,3664 13672 TCF T6ENABL
044608,000566:
044609,000567: 16,3665 35016 NO.12-10 CAF BIT2 # 1ST -JETS TO FIRE (MRCLEAN OS ROLLWORD)
Page 996 |
044611,000569: 16,3666 27572 ADS ROLLWORD # CHANGE BIT 2 TO ONE
044612,000570: 16,3667 34377 CAF -ROLL1
044613,000571: 16,3670 00006 EXTEND
044614,000572: 16,3671 01006 WRITE CHAN6
044615,000573:
044616,000574: 16,3672 35001 T6ENABL CAF BIT15
044617,000575: 16,3673 00006 EXTEND
044618,000576: 16,3674 05013 WOR CHAN13
044619,000577: 16,3675 15324 RDAPEND TCF TASKOVER # EXIT ROLL DAP
044620,000578:
Page 997 |
044622,000580: # THIS T6 TASK SHUTS OFF ALL ROLL JETS
044623,000581:
044624,000582: 16,3676 22016 NOROLL1 LXCH BANKRUPT # SHUT OFF ALL (ROLL) JETS, (A T6 TASK
044625,000583: 16,3677 35021 CAF ZERO # CALLED BY ..JETROLL..)
044626,000584: 16,3700 55571 TS ROLLFIRE # ZERO INDICATES JETS NOW OFF
044627,000585: 16,3701 00006 EXTEND
044628,000586: 16,3702 01006 KILLJETS WRITE CHAN6
044629,000587: 16,3703 15335 TCF NOQRSM
044630,000588:
Page 998 |
044632,000590: # CONSTANTS FOR ROLL AUTOPILOT....
044633,000591:
044634,000592: 16,3704 E6,1702 EBANK= BZERO
044635,000593: 16,3704 03676 34066 NOROL1T6 2CADR NOROLL1
044636,000594:
044637,000595: 16,3706 00344 DB DEC .01388889 # DEAD BAND (5 DEG), SC.AT B+0 REV
044638,000596:
044639,000597: 16,3707 06315 -SLOPE DEC 0.2 # -SWITCHLINE SLOPE(0.2 PER SEC) SC.AT B+0
044640,000598: # PER SEC
044641,000599: 16,3710 00111 LMCRATE DEC .00027778 B+4 # LIMIT CYCLE RATE (0.1 DEG/SEC) SC.AT
044642,000600: # B-4 REV/SEC
044643,000601: 16,3711 00510 INTERCEP DEC .0025 B+3 # DB(-SLOPE) - LMCRATE, SC.AT B-3 REV/SC
044644,000602:
044645,000603: 16,3712 01330 MINLIM DEC .00277778 B+4 # RATELIM,MIN (1DEG/SEC), SC.AT B-4 REV/SC
044646,000604:
044647,000605: 16,3713 00027 1/MINLIM DEC 360 B-18 # RECIPROCAL THEREOF, SHIFTED 14 RIGHT
044648,000606:
044649,000607: 16,3714 07071 MAXLIM DEC .01388889 B+4 # RATELIM,MAX (5DEG/SEC), SC.AT B-4 REV/SC
044650,000608:
044651,000609: 16,3715 00030 TMINFIRE DEC 1.5 B+4 # 15 MS (14MIN), SC.AT 16 BITS/CS
044652,000610:
044653,000611: 16,3716 07640 TMAXFIRE DEC 250 B+4 # 2.5 SEC, SC.AT 16 BITS/CS
044654,000612:
044655,000613: 16,3717 5015 1/TMXFIR = BIT3 # RECIPROCAL THEREOF, SHIFTED 14 RIGHT,
044656,000614: # ROUNDS TO OCT00004, SO ALLOWS 2.56
044657,000615: # SEC FIRINGS BEFORE APPLYING LIMIT
044658,000616: 16,3717 7665 T6SCALE = PRIO31 # (B+3) (16 BITS/CS) (100CS/SEC)
044659,000617:
044660,000618: 16,3717 5022 +ROLL1 = FIVE # ONBITS FOR JETS 9 AND 11
044661,000619: 16,3717 5037 +ROLL2 = OCT120 # ONBITS FOR JETS 13 AND 15
044662,000620: 16,3717 4377 -ROLL1 = TEN # ONBITS FOR JETS 12 NAD 10
044663,000621: 16,3717 00240 -ROLL2 OCT 240 # ONBITS FOR JETS 16 AND 14
044664,000622:
End of include-file TVCROLLDAP.agc. Parent file is MAIN.agc