Source Code
![]() |
These source-code files were derived from scans of the
Colossus 237 (Apollo 8 Command Module) program listing from the private collection of original
AGC developer Fred Martin. Scanning was by Ron Burkey. Pre-existing Colossus 249
(Apollo 9 CM) source files were used as a template, and changes between Colossus 249
and Colossus 237 were manually transcribed by a team of volunteers. Note
that the page images
presented online are of reduced quality, and that additional 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 237 OF AGC PROGRAM COLOSSUS BY NASA 2021111-031 1:17 AUG. 24, 1968Note that the date is the date of the printout, not the date of the program revision. |
041169,000002: ## Copyright: Public domain.
041170,000003: ## Filename: TVCROLLDAP.agc
041171,000004: ## Purpose: Part of the source code for Colossus build 237.
041172,000005: ## This is for the Command Module's (CM) Apollo Guidance
041173,000006: ## Computer (AGC), for Apollo 8.
041174,000007: ## Assembler: yaYUL
041175,000008: ## Contact: Jim Lawton <jim DOT lawton AT gmail DOT com>
041176,000009: ## Website: www.ibiblio.org/apollo/index.html
041177,000010: ## Page Scans: www.ibiblio.org/apollo/ScansForConversion/Colossus237/
041178,000011: ## Mod history: 2011-03-12 JL Adapted from corresponding Colossus 249 file.
041179,000012: ## 2017-01-01 RSB Proofed comment text using octopus/ProoferComments,
041180,000013: ## and fixed errors found.
041181,000014: ## 2017-01-20 RSB Fixed comment-text errors noted while diff'ing
041182,000015: ## vs Colossus 249.
041183,000016: ## 2017-02-09 RSB Fixed comment-text errors noted while proofing
041184,000017: ## Artemis 72.
041185,000018:
![]() |
Page 945 |
041187,000020: # PROGRAM NAME....ROLL AUTOPILOT, CONSISTING OF ROLLDAP,DURATION,NOROLL1,E
041188,000021: # ORIGINAL CODING BY F.W.MARTIN, 1965 (SUNDIAL) TC.
041189,000022: # LOG SECTION....ROLL AUTOPILOT SUBROUTINE....DAPCSM
041190,000023: # MOD BY ENGEL DATE 28 DEC, 1967 (SUNDISK TO COLOSSUS)
041191,000024: # FUNCTIONAL DESCRIPTION....
041192,000025:
041193,000026: # *AN ADAPTATION OF THE LEM P-AXIS CONTROLLER
041194,000027: # *MAINTAIN OGA WITHIN 5 DEG DEADBND OF OGAD, WHERE OGAD = OGA AS SEEN
041195,000028: # BY IGNOVER (IGNITION)
041196,000029: # *MAINTAIN OGA RATE LESS THAN 0.1 DEG/SEC LIMIT CYCLE RATE
041197,000030: # *SWITCHING LOGIC IN PHASE PLANE.... SEE GSOP CHAPTER 3
041198,000031: # *USES T6 CLOCK TO TIME JET FIRINGS
041199,000032: # *MAXIMUM JET FIRING TIME = 2.56 SECONDS, LIMITED TO 2.5 IF GREATER
041200,000033: # *MINIMUM JET FIRING TIME = 15 MS
041201,000034: # *JET PAIRS FIRE ALTERNATELY
041202,000035: # *AT LEAST 1/2 SECOND DELAY BEFORE A NEW JET PAIR IS FIRED
041203,000036: # *JET FIRINGS MAY NOT BE EXTENDED, ONLY SHORTENED, WHEN RE-EVALUATION
041204,000037: # OF A JET FIRING TIME IS MADE ON A LATER PASS
041205,000038:
041206,000039: # CALLING SEQUENCE....
041207,000040:
041208,000041: # *ROLLDAP CALL VIA WAITLIST, IN PARTICULAR BY TVCEXEC (EVERY 1/2 SEC)
041209,000042: # WITH A 3CS DELAY TO ALLOW FREE TIME FOR OTHER RUPTS (DWNRPT, ETC.)
041210,000043:
041211,000044: # NORMAL EXIT MODES.... ENDOFJOB
041212,000045:
041213,000046: # ALARM OR ABORT EXIT MODES.... NONE
041214,000047:
041215,000048: # SUBROUTINES CALLED.....NONE
041216,000049:
041217,000050: # OTHER INTERFACES....
041218,000051:
041219,000052: # *TVCEXEC SETS UP ROLLDAP TASK EVERY 1/2 SECOND AND UPDATES 1/CONACC
041220,000053: # EVERY 10 SECONDS (VIA MASSPROP AND S40.15)
041221,000054: # *TVCRESTART PACKAGE WILL RE-START ROLL DAP AFTER A RESTART (PICKING
041222,000055: # UP THE ORIGINAL OGAD)
041223,000056:
041224,000057: # ERASABLE INITIALIZATION REQUIRED....
041225,000058:
041226,000059: # *1/CONACC (S40.15)
041227,000060: # *OGAD (CDUX, AT IGNOVER)
041228,000061: # *OGANOW (CDUX AT TVCINIT4 AND TVCEXECUTIVE)
041229,000062: # *OGAPAST (OGANOW AT TVCEXECUTIVE)
041230,000063: # *ROLLFIRE = TEMREG = ROLLWORD = 0 (MRCLEAN LOOP IN TVCDAPON)
041231,000064: # OUTPUT....
041232,000065:
041233,000066: # *ROLL JET PAIR FIRINGS
041234,000067:
041235,000068: # DEBRIS.... MISCELLANEOUS, SHAREABLE WITH RCS/ENTRY, IN EBANK6 ONLY
041236,000069:
![]() |
Page 946 |
041238,000071: # SOME NOTES ON THE ROLL AUTOPILOT, AND IN PARTICULAR, ON ITS SWITCHING
041239,000072: # LOGIC. SEE SECTION THREE OF THE GSOP (SUNDISK/COLOSSUS) FOR DETAILS.
041240,000073:
041241,000074: # SWITCHING LOGIC IN THE PHASE PLANE....
041242,000075:
041243,000076: # OGARATE
041244,000077: # *
041245,000078: # *
041246,000079: # * * * * * * * * * * * *
041247,000080: # * (REGION 1, SEE TEXT BELOW)
041248,000081: # * *
041249,000082: # *
041250,000083: # * * * * * * * (COAST) * ...PARABOLA (SWITCHING = CONTROL)
041251,000084: # * * .
041252,000085: # * * *
041253,000086: # * * (FIRE NEG ROLL JETS)
041254,000087: # * * *
041255,000088: # (-DB,+LMCRATE)....* *
041256,000089: # * * *
041257,000090: # * * OGAERROR
041258,000091: # ************************************************************************
041259,000092: # * * (-AK, OGAERR)
041260,000093: # * * (REGION 6-PRIME)
041261,000094: # * (SEE TEXT BELOW)
041262,000095: # * * *
041263,000096: # * * ...STRAIGHT LINE
041264,000097: # (FIRE POS ROLL JETS) * * * .
041265,000098: # * (COAST) *
041266,000099: # * * * * * * * * * * *
041267,000100: # * -MINLIM
041268,000101: # * *
041269,000102: # *
041270,000103: # * * * * * * * * * * * * * * * *
041271,000104: # * -MAXLIM
041272,000105: # *
041273,000106: # *
041274,000107:
041275,000108: # SWITCHING PARABOLAS ARE CONTROL PARABOLAS, THUS REQUIRING KNOWLEDGE OF
041276,000109: # CONTROL ACCELERATION CONACC, OR ITS RECIPROCAL, 1/CONACC, THE TVC
041277,000110: # ROLL DAP GAIN (SEE TVCEXECUTIVE VARIABLE GAIN PACKAGE). JET
041278,000111: # FIRING TIME IS SIMPLY THAT REQUIRED TO ACHIEVE THE DESIRED OGARATE,
041279,000112: # SUBJECT TO THE LIMITATIONS DISCUSSED UNDER FUNCTIONAL DESCRIPTION,
041280,000113: # ABOVE.
041281,000114:
041282,000115: # THE THREE CONTROL REGIONS (+, -, AND ZERO TORQUE) ARE COMPRIZED OF
041283,000116: # TWELVE SUBSET REGIONS ( 1...6, AND THE CORRESPONDING 1-PRIME...
041284,000117: # 6-PRIME ) SEE SECTION 3 OF THE GSOP (SUNDISK OR COLOSSUS)
041285,000118:
![]() |
Page 947 |
041287,000120: # GIVEN THE OPERATING POINT NOT IN THE COAST REGION, THE DESIRED OGARATE
041288,000121: # IS AT THE POINT OF PENETRATION OF THE COAST REGION BY THE CONTROL
041289,000122: # PARABOLA WHICH PASSES THROUGH THE OPERATING POINT. FOR REGION 3
041290,000123: # DESIRED OGARATE IS SIMPLY +-MAXLIM. FOR REGIONS 1 OR 6 THE SOLUTION
041291,000124: # TO A QUADRATIC IS REQUIRED (THE PENETRATION IS ALONG THE STRAIGHT
041292,000125: # LINE OR MINLIM BOUNDRY SWITCH LINES). AN APPROXIMATION IS MADE
041293,000126: # INSTEAD. CONSIDER AN OPERATING POINT IN REGION 6. PASS A TANGENT TO
041294,000127: # THE CONTROL PARABOLA THROUGH THE OPERATING POINT, AND FIND ITS
041295,000128: # INTERSECTION WITH THE STRAIGHT LINE SECTION OF THE SWITCH CURVE...
041296,000129: # THE INTERSECTION DEFINES DESIRED OGARATE. IF THE OPERATING POINT IS
041297,000130: # CLOSE TO THE SWITCH LINE, THE APPROXIMATION IS QUITE GOOD (INDEED
041298,000131: # THE APPROXIMATE AND QUADRATIC SOLUTIONS CONVERGE IN THE LIMIT AS
041299,000132: # THE SWITCH LINE IS APPROACHED). IF THE OPERATING POINT IS NOT CLOSE
041300,000133: # TO THE SWITCH LINE, THE APPROXIMATE SOLUTION GIVES VALID TREND
041301,000134: # INFORMATION (DIRECTION OF DESIRED OGARATE) AT LEAST. THE
041302,000135: # RE-EVALUATION OF DESIRED OGARATE IN SUBSEQUENT ROLL DAP PASSES (1/2
041303,000136: # SECOND INTERVALS) WILL BENEFIT FROM THE CONVERGENT NATURE OF THE
041304,000137: # APPROXIMATION.
041305,000138:
041306,000139: # FOR LARGE OGAERROR THE TANGENT INTERSECTS +-MINLIM SWITCH BOUNDRY BEFORE
041307,000140: # INTERSECTING THE STRAIGHT LINE SWITCH. HOWEVER THE MINLIM IS
041308,000141: # IGNORED IN COMPUTING THE FIRING TIME, SO THAT THE EXTENSION (INTO
041309,000142: # THE COAST REGION) OF THE STRAIGHT LINE SWITCH IS WHAT IS FIRED TO.
041310,000143: # IF THE ROLL DAP FINDS ITSELF IN THE COAST REGION BEFORE REACHING
041311,000144: # THE DESIRED INTERSECTION (IE, IN THE REGION BETWEEN THE MINLIM
041312,000145: # AND THE STRAIGHT LINE SWITCH) IT WILL EXIBIT NORMAL COAST-REGION
041313,000146: # BEHAVIOR AND TURN OFF THE JETS. THE PURPOSE OF THIS FIRING POLICY
041314,000147: # IS TO MAINTAIN STATIC ROLL STABILITY IN THE EVENT OF A JET
041315,000148: # FAILED-ON.
041316,000149:
041317,000150: # WHEN THE OPERATING POINT IS IN REGION 1 THE SAME APPROXIMATION IS
041318,000151: # MADE, BUT AT AN ARTIFICIALLY-CREATED OR DUMMY OPERATING POINT,
041319,000152: # DEFINED BY.. OGAERROR = INTERSECTION OF CONTROL PARABOLA AND
041320,000153: # OGAERROR AXIS, OGARATE = +-LMCRATE WHERE SIGN IS OPPOSITE THAT OF
041321,000154: # REAL OPERATING POINT RATE. WHEN THE OPERATING POINT HAS PASSED
041322,000155: # FROM REGION 1 TO REGION 6, THE DUMMY POINT IS NO LONGER REQUIRED,
041323,000156: # AND THE SOLUTION REVERTS TO THAT OF A REGULAR REGION 6 POINT.
041324,000157:
041325,000158:
041326,000159: # EQUATION FOR SWITCHING PARABOLA (SEE FIGURE ABOVE)....
041327,000160: # 2
041328,000161: # SOGAERROR = (DB - (SOGARATE) (1/CONACC)/2) SGN(SOGARATE)
041329,000162:
041330,000163:
041331,000164: # EQUATION FOR SWITCHING STRAIGHT LINE SEGMENT....
041332,000165:
041333,000166: # SOGARATE = -(-SLOPE)(SOGAERROR) - SGN(SOGARATE) INTERCEP
041334,000167:
041335,000168: # WHERE INTERCEP = DB(-SLOPE) - LMCRATE
041336,000169:
![]() |
Page 948 |
041338,000171: # EQUATION FOR INTERSECTION, CONTROL PARABOLA AND STRAIGHT SWITCH LINE....
041339,000172:
041340,000173: # DOGADOT = NUM/DEN, WHERE
041341,000174: # 2
041342,000175: # NUM = (-SLOPE)(OGARATE) (1/CONACC)
041343,000176: # +SGN(DELOGA)(-SLOPE)(OGAERROR - SGN(DELOGA)(DB))
041344,000177: # +LMCRATE
041345,000178:
041346,000179: # DEN = (-SLOPE)(OGARATE)(1/CONACC) - SGN(DELOGA)
041347,000180: # 2
041348,000181: # DELOGA = OGAERROR - (DB - (OGADOT) (1/CONACC)/2)SGN(OGADOT)
041349,000182:
041350,000183:
041351,000184: # FOR REGIONS 6 AND 6-PRIME USE ACTUAL OPERATING POINT (OGA, OGARATE)
041352,000185: # FOR OGAERROR AND OGARATE IN THE INTERSECTION EQUATIONS ABOVE.
041353,000186: # FOR REGIONS 1 AND 1-PRIME USE DUMMY OPERATING POINT FOR OGAERROR
041354,000187: # AND OGARATE, WHERE THE DUMMY POINT IS GIVEN BY....
041355,000188: # OGAERROR= DELOGA + DB SGN(OGARATE)
041356,000189: # OGARATE= -LMCRATE SGN(OGARATE)
041357,000190:
041358,000191: # NOTE, OGAERROR = OGA - OGAD USES DUMMY REGISTER OGA IN ROLL DAP CODING
041359,000192: # ALSO,AT POINT WHERE DOGADOT IS COMPUTED, REGISTER DELOGA IS USED
041360,000193: # AS A DUMMY REGISTER FOR THE OGAERROR IN THE NUM EQUATION ABOVE
041361,000194:
![]() |
Page 949 |
041363,000196: # ROLLDAP CODING....
041364,000197:
041365,000198: 16,2000 SETLOC DAPROLL
041366,000199: 16,2000 BANK
041367,000200: 16,3312 E6,1672 EBANK= OGANOW
041368,000201: 16,3312 COUNT* $$/ROLL
041369,000202: 16,3312 31672 ROLLDAP CAE OGANOW # OGA RATE ESTIMATOR...SIMPLE FIRST-ORDER
041370,000203: 16,3313 00006 EXTEND # DIFFERENCE (SAMPLE TIME = 1/2 SEC)
041371,000204: 16,3314 21673 MSU OGAPAST
041372,000205: 16,3315 00006 EXTEND
041373,000206: 16,3316 74706 MP BIT5
041374,000207: 16,3317 22000 LXCH A
041375,000208: 16,3320 55533 TS OGARATE # SC.AT B-4 REV/SEC
041376,000209:
041377,000210: # COMPUTATIONS WHICH FOLLOW USE OGA FOR OGAERR (SAME REGISTER)
041378,000211: # EXAMINE DURATION OF LAST ROLL FIRING IF JETS ARE NOW ON.
041379,000212: 16,3321 31611 DURATION CA ROLLFIRE # SAME SGN AS PRESENT TORQ,MAGN=POSMAX
041380,000213: 16,3322 00006 EXTEND
041381,000214: 16,3323 13325 BZF +2 # ROLL JETS ARE NOW OFF.
041382,000215: 16,3324 13333 TCF ROLLOGIC # ENTER LOGIC, JETS NOW ON.
041383,000216:
041384,000217: 16,3325 31613 CAE TEMREG # EXAMINE LAST FIRING INTERVAL
041385,000218: 16,3326 00006 EXTEND # IF POSITIVE, DONT FIRE
041386,000219: 16,3327 13333 BZF ROLLOGIC # ENTER LOGIC, JETS NOW OFF.
041387,000220:
041388,000221: 16,3330 34714 CAF ZERO # JETS HAVE NOT BEEN OFF FOR 1/2 SEC. WAIT
041389,000222: 16,3331 55613 TS TEMREG # RESET TEMREG
041390,000223: 16,3332 15213 WAIT1/2 TCF TASKOVER # EXIT ROLL DAP
041391,000224:
041392,000225: # COMPUTE DB-(1/2 CONACC) (OGARATE)SQ (1/2 IN THE SCALING)
041393,000226: 16,3333 41533 ROLLOGIC CS OGARATE # SCALED AT 2(-4) REV/SEC
041394,000227: 16,3334 00006 EXTEND
041395,000228: 16,3335 71650 MP 1/CONACC # SCALED AT 2(+9) SEC SQ /REV
041396,000229: 16,3336 00006 EXTEND
041397,000230: 16,3337 71533 MP OGARATE
041398,000231: 16,3340 63722 AD DB # SCALED AT 2(+0) REV
041399,000232: 16,3341 55613 TS TEMREG # QUANTITY SCALED AT 2(+0) REV.
041400,000233:
041401,000234: # GET SIGN OF OGARATE
041402,000235: 16,3342 31533 CA OGARATE
041403,000236: 16,3343 00006 EXTEND
041404,000237: 16,3344 63347 BZMF +3 # LET SGN(0) BE NEGATIVE
041405,000238: 16,3345 34712 CA BIT1
041406,000239: 16,3346 13350 TCF +2
041407,000240: 16,3347 44712 CS BIT1
041408,000241: 16,3350 55676 TS SGNRT # + OR - 2(-14)
041409,000242:
041410,000243: # CALCULATE DISTANCE FROM SWITCH PARABOLA,DELOGA
041411,000244: 16,3351 00006 EXTEND
041412,000245: 16,3352 71613 MP TEMREG # SGN(OGARATE) TEMREG NOW IN L
![]() |
Page 950 |
041414,000247: 16,3353 40001 CS L
041415,000248: 16,3354 61674 AD OGA # SCALED AT 2(+0) REV
041416,000249: 16,3355 55677 DELOGAC TS DELOGA # SC.AT B+0 REV, PLUS TO RIGHT OF C-PARAB
041417,000250: # EXAMINE SGN(DELOGA) AND CREATE CA OR CS INSTR. DEPENDING UPON SIGN.
041418,000251: 16,3356 00006 EXTEND
041419,000252: 16,3357 63362 BZMF +3
041420,000253: 16,3360 34371 CAF PRIO30 # =CA (30000)
041421,000254: 16,3361 13363 TCF +2
041422,000255: 16,3362 34674 CAF BIT15 # =CS (40000)
041423,000256: 16,3363 55700 TS I
041424,000257:
041425,000258: 16,3364 51700 INDEX I # TSET ON I SGN(OGARATE)
041426,000259: 16,3365 01676 0 SGNRT # CA OR CS
041427,000260: 16,3366 40000 COM
041428,000261: 16,3367 00006 EXTEND
041429,000262: 16,3370 63441 REG1TST BZMF ROLLON # IF REGION 1 (DELOGA OGARATE SAME SIGN)
041430,000263:
041431,000264: # NO JET FIRE YET, TEST FOR MAX OGARATE
041432,000265: 16,3371 51700 INDEX I
041433,000266: 16,3372 01533 0 OGARATE # CA OR CS...BOTH MUST BE NEG. HERE
041434,000267: 16,3373 55701 TS IOGARATE # I.E. I OGARATE
041435,000268: 16,3374 63730 AD MAXLIM # SCALED AT 2(-4) REV/SEC
041436,000269: 16,3375 00006 EXTEND
041437,000270: 16,3376 63520 REG3TST BZMF RATELIM # IF REGION 3 (RATES TOO HIGH, FIRE JETS)
041438,000271:
041439,000272: # COMPUTATION OF I((-SLOPE)OGA + OGARATE) - INTERCEPT..NOTE THAT STR. LINE
041440,000273: # SWITCH SLOPE IS (SLOPE) DEG/SEC/DEG,A NEG. QUANTITY
041441,000274: 16,3377 31533 CA OGARATE
041442,000275: 16,3400 00006 EXTEND
041443,000276: 16,3401 74675 MP BIT14
041444,000277: 16,3402 55613 TS TEMREG
041445,000278: 16,3403 31674 CA OGA
041446,000279: 16,3404 00006 EXTEND
041447,000280: 16,3405 73723 MP -SLOPE
041448,000281: 16,3406 20001 DDOUBL
041449,000282: 16,3407 20001 DDOUBL
041450,000283: 16,3410 20001 DDOUBL # (OGA ERROR MUST BE LESS THAN +-225 DEG)
041451,000284: 16,3411 61613 AD TEMREG
041452,000285:
041453,000286: 16,3412 51700 INDEX I
041454,000287: 16,3413 00000 0 A # I((-SLOPE)OGA+OGARATE) AT 2(-3)REV/SEC
041455,000288: 16,3414 40000 COM
041456,000289: 16,3415 63725 AD INTERCEP # SCALED AT 2(-3) REV.
041457,000290: 16,3416 40000 COM
041458,000291: 16,3417 00006 EXTEND
041459,000292: 16,3420 63625 REG2TST BZMF NOROLL # IF REGION 2 (COAST SIDE OF STRT LINE)
041460,000293:
041461,000294: # CHECK TO SEE IF OGARATE IS ABOVE MINLIM
041462,000295: 16,3421 31701 CA IOGARATE # ALWAYS NEGATIVE
041463,000296: 16,3422 63726 AD MINLIM # SCALED AT 2(-4) REV/SEC
![]() |
Page 951 |
041465,000298: 16,3423 00006 EXTEND
041466,000299: 16,3424 63625 REG4TST BZMF NOROLL # IF REGION 4 (COAST SIDE OF MINLIM)
041467,000300:
041468,000301: # ALL AREAS CHECKED EXCEPT LAST AREA...NO FIRE IN THIS SMALL SEGMENT
041469,000302: 16,3425 51700 INDEX I
041470,000303: 16,3426 01674 0 OGA
041471,000304: 16,3427 40000 COM
041472,000305: 16,3430 63722 AD DB
041473,000306: 16,3431 40000 COM
041474,000307: 16,3432 00006 EXTEND
041475,000308: 16,3433 63625 REG5TST BZMF NOROLL # IF REGION 5 (COAST SIDE OF DB)
041476,000309:
041477,000310:
041478,000311: # JETS MUST FIRE NOW.OGARATE IS NEG.(OR VISA VERSA).USE DIRECT STR. LINE.
041479,000312: # DELOGA AND DELOGART ARE USED AS DUMMY VARIABLES IN THE SOLUTION OF A
041480,000313: # STRAIGHT LINE APPROXIMATION TO A QUADRATIC SOLUTION OF THE INTERSECTION
041481,000314: # OF THE CONTROL PARABOLA AND THE STRAIGHT-LINE SWITCH LINE. THE STRAIGHT
041482,000315: # LINE IS THE TANGENT TO THE CONTROL PARABOLA AT THE OPERATING POINT. (FOR
041483,000316: # OPERATING POINTS IN REGIONS 6 AND 6-PRIME)
041484,000317: 16,3434 31674 REGION6 CAE OGA # USE ACTUAL OPERATING POINT FOR TANGENT
041485,000318: 16,3435 55677 TS DELOGA # ACTUAL STATE
041486,000319: 16,3436 31533 CA OGARATE
041487,000320: 16,3437 55675 TS DELOGART # ACTUAL STATE,I.E. DEL OGARATE
041488,000321: 16,3440 13450 TCF ONROLL
041489,000322:
041490,000323: # JETS ALSO FIRE FROM HERE EXCEPT OGARATE IS POS(VISA VERSA),USE INDIRECT
041491,000324: # STRAIGHT LINE ESTABLISHED BY TANGENT TO A CONTROL PARABOLA AT ((DELOGA
041492,000325: # + DB SGN(DELOGA) ), -LMCRATE SGN(DELOGA) ) (THIS IS THE DUMMY
041493,000326: # OPERATING POINT FOR OPERATING POINTS IN REGIONS 1 AND 1-PRIME )
041494,000327: 16,3441 51700 ROLLON INDEX I
041495,000328: 16,3442 03722 0 DB
041496,000329: 16,3443 27677 ADS DELOGA # DELOGA WAS DIST. FROM SWITCH PARABOLA
041497,000330:
041498,000331: 16,3444 43724 CS LMCRATE # LIMIT CYCLE RATE AT 2(-4) REV/SEC
041499,000332: 16,3445 51700 INDEX I
041500,000333: 16,3446 00000 0 A
041501,000334: 16,3447 55675 TS DELOGART # EVALUATE STATE FOR INDIRECT LINE.
041502,000335:
041503,000336: # SOLVE STRAIGHT LINES SIMULTANEOUSLY TO OBTAIN DESIRED OGARATE.
041504,000337: 16,3450 00006 ONROLL EXTEND # DELOGART IN ACC. ON ARRIVAL
041505,000338: 16,3451 71650 MP 1/CONACC
041506,000339: 16,3452 60000 DOUBLE
041507,000340: 16,3453 00006 EXTEND
041508,000341: 16,3454 73723 MP -SLOPE
041509,000342: 16,3455 55613 TS TEMREG # 2(-SLOPE)RATE /CONACC
041510,000343: 16,3456 00006 EXTEND
041511,000344: 16,3457 71675 MP DELOGART
041512,000345: 16,3460 55675 TS DELOGART # 2(-SLOPE)(RATESQ)/CONACC
041513,000346: 16,3461 44700 CS BIT11
041514,000347: 16,3462 51700 INDEX I
![]() |
Page 952 |
041516,000349: 16,3463 00000 0 A
041517,000350: 16,3464 27613 RATEDEN ADS TEMREG # DENOMINATOR COMPLETED
041518,000351:
041519,000352: 16,3465 51700 INDEX I
041520,000353: 16,3466 01677 0 DELOGA
041521,000354: 16,3467 40000 COM
041522,000355: 16,3470 63722 AD DB
041523,000356: 16,3471 40000 COM
041524,000357: 16,3472 00006 EXTEND
041525,000358: 16,3473 73723 MP -SLOPE
041526,000359: 16,3474 27675 ADS DELOGART
041527,000360: 16,3475 33724 CA LMCRATE
041528,000361: 16,3476 00006 EXTEND
041529,000362: 16,3477 74700 MP BIT11
041530,000363: 16,3500 61675 RATENUM AD DELOGART # NUMERATOR COMPLETED
041531,000364:
041532,000365: 16,3501 56001 XCH L # PLACE NUMERATOR IN L FOR OVERFL. CHECK
041533,000366: 16,3502 34714 CA ZERO
041534,000367: 16,3503 00006 EXTEND
041535,000368: 16,3504 11613 DV TEMREG # OVERFLOW, IF ANYTHING, NOW APPEARS IN A
041536,000369: 16,3505 00006 EXTEND
041537,000370: 16,3506 13514 BZF DVOK # NO OVERFLOW....(0,L)/TEMREG = 0,L
041538,000371:
041539,000372: 16,3507 10000 MINLIMAP CCS A
041540,000373: 16,3510 34672 CAF POSMAX # POSITIVE OVERFLOW
041541,000374: 16,3511 13523 TCF ROLLSET
041542,000375: 16,3512 44672 CS POSMAX # NEGATIVE OVERFLOW
041543,000376: 16,3513 13523 TCF ROLLSET
041544,000377:
041545,000378: 16,3514 22000 DVOK LXCH A # PUT NUMERATOR BACK INTO A, 0 IN L
041546,000379: 16,3515 00006 EXTEND
041547,000380: 16,3516 11613 DV TEMREG # RESULT OF DIVISION IS DESIRED OGARATE
041548,000381: 16,3517 13523 TCF ROLLSET # ( SCALED AT B-4 REV/SEC )
041549,000382:
041550,000383:
041551,000384: 16,3520 43730 RATELIM CS MAXLIM
041552,000385: 16,3521 51700 INDEX I
041553,000386: 16,3522 00000 0 A # IF I = CA, DESIRED RATE IS -MAXLIM
041554,000387:
041555,000388: # BASED ON DESIRED RATE - PRESENT RATE, COMPUTE JET FIRE TIME
041556,000389: 16,3523 55613 ROLLSET TS TEMREG # STORE DESIRED OGARATE (SCALED B-4)
041557,000390: 16,3524 00006 EXTEND
041558,000391: 16,3525 61533 SU OGARATE # RATE DIFF. SCALED AT 2(-4) REV/SEC
041559,000392: 16,3526 54000 TS A # OVERFLOW PROTECT
041560,000393: 16,3527 55613 TS TEMREG # " "
041561,000394: 16,3530 00006 EXTEND
041562,000395: 16,3531 77665 MP T6SCALE # T6SCALE = 8/10.24
041563,000396: 16,3532 00006 EXTEND
041564,000397: 16,3533 71650 MP 1/CONACC # SCALED AT 2(+9) SECSQ/REV
041565,000398: 16,3534 20001 DDOUBL
![]() |
Page 953 |
041567,000400: 16,3535 55613 TS TEMREG # OVERFLOW PROTECT
041568,000401: 16,3536 20001 DDOUBL
041569,000402: 16,3537 54000 TS A # OVERFLOW PROTECT
041570,000403: 16,3540 55613 TS TEMREG # JET FIRE TIME AT 625 MICROSEC/BIT
041571,000404: 16,3541 00006 EXTEND # POS MEANS POSITIVE ROLL TORQUE.
041572,000405: 16,3542 13625 BZF NOROLL
041573,000406:
041574,000407: # JET FIRE TIME IS NZ, ARE JETS ON NOW.
041575,000408: 16,3543 31613 CAE TEMREG # DESIRED CHANGE IN OGARATE
041576,000409: 16,3544 00006 EXTEND
041577,000410: 16,3545 71611 MP ROLLFIRE # (SGN OF TORQUE..ZERO IF JETS NOW OFF)
041578,000411: 16,3546 10000 CCS A
041579,000412: 16,3547 13553 TCF MOREROLL # CONTINUE FIRING WITH PRESENT POLARITY
041580,000413: 16,3550 13556 TCF NEWROLL # START NEW FIRING NOW, PLUS
041581,000414: 16,3551 13625 TCF NOROLL # TERMINATE OLD FIRING, NEW SIGN REQUESTED
041582,000415: 16,3552 13556 TCF NEWROLL # START NEW FIRING NOW, MINUS
041583,000416:
041584,000417: # CONTINUE PRESENT FIRING
041585,000418: 16,3553 34714 MOREROLL CAF ZERO
041586,000419: 16,3554 55700 TS I # USE TEMP. AS MOREROLL SWITCH
041587,000420: 16,3555 13567 TCF MAXTFIRE
041588,000421:
041589,000422: # START NEW FIRING BUT CHECK IF GREATER THAN MINIMUM FIRE TIME.
041590,000423: 16,3556 11613 NEWROLL CCS TEMREG # CALL THIS T6FIRE
041591,000424: 16,3557 64712 AD ONE
041592,000425: 16,3560 13562 TCF +2
041593,000426: 16,3561 64712 AD ONE
041594,000427: 16,3562 40000 COM # -MAG(T6FIRE)
041595,000428: 16,3563 63731 AD TMINFIRE # TMINFIRE-MAG(T6FIRE)
041596,000429: 16,3564 40000 COM
041597,000430: 16,3565 00006 EXTEND
041598,000431: 16,3566 63625 MINTST BZMF NOROLL # IF NOT GREATER THAN TMINFIRE (NEW FIRE)
041599,000432:
041600,000433: # PROCEED WITH NEW FIRING BUT NOT LONGER THAN TMAXFIRE
041601,000434: 16,3567 31613 MAXTFIRE CA TEMREG
041602,000435: 16,3570 00006 EXTEND
041603,000436: 16,3571 74710 MP 1/TMXFIR # I.E. 1/TMAXFIRE
041604,000437: 16,3572 00006 EXTEND
041605,000438: 16,3573 13601 MAXTST BZF NOMXFIRE # IF LESS THAN TMAXFIRE
041606,000439:
041607,000440: 16,3574 10000 CCS A
041608,000441: 16,3575 33732 CAF TMAXFIRE # USE MAXIMUM
041609,000442: 16,3576 13600 TCF +2
041610,000443: 16,3577 43732 CS TMAXFIRE # USE MAXIMUM
041611,000444: 16,3600 55613 TS TEMREG
041612,000445:
041613,000446: # SET UP SIGN OF REQUIRED TORQUE
041614,000447: 16,3601 11613 NOMXFIRE CCS TEMREG # FOR TORQUE SIGN
041615,000448: 16,3602 34672 CA POSMAX # POSITIVE TORQUE REQUIRED
041616,000449: 16,3603 13605 TCF +2
![]() |
Page 954 |
041618,000451: 16,3604 34674 CA NEGMAX # NEGATIVE TORQUE REQUIRED
041619,000452: 16,3605 55611 TS ROLLFIRE # SET ROLLFIRE FOR + OR - TORQUE
041620,000453:
041621,000454: 16,3606 40000 COM # COMPLEMENT... POS. FOR NEG. TORQUE
041622,000455: 16,3607 00006 EXTEND
041623,000456: 16,3610 63613 BZMF +3 # POSITIVE TORQUE REQUIRED
041624,000457: 16,3611 41613 CS TEMREG
041625,000458: 16,3612 55613 TS TEMREG
041626,000459:
041627,000460: 16,3613 31700 FIRELOOK CA I # IS IT MOREROLL
041628,000461: 16,3614 00006 EXTEND
041629,000462: 16,3615 13617 BZF FIREPLUG # YES
041630,000463: 16,3616 13630 TCF JETROLL # MAG(T6FIRE) NOW IN TEMREG
041631,000464:
041632,000465: 16,3617 30031 FIREPLUG CAE TIME6 # CHECK FOR EXTENDED FIRING
041633,000466: 16,3620 00006 EXTEND
041634,000467: 16,3621 61613 SU TEMREG
041635,000468: 16,3622 00006 EXTEND
041636,000469: 16,3623 65213 EXTENTST BZMF TASKOVER # IF EXTENSION WANTED, DONT, EXIT ROLL DAP
041637,000470: 16,3624 13630 TCF JETROLL
041638,000471:
041639,000472: 16,3625 44714 NOROLL CS ZERO # COAST....(NEG ZERO FOR TIME6)
041640,000473: 16,3626 55611 TS ROLLFIRE # NOTE, JETS CAN FIRE NEXT PASS
041641,000474: 16,3627 55613 TS TEMREG
041642,000475:
041643,000476: 16,3630 00006 JETROLL EXTEND
041644,000477: 16,3631 33721 DCA NOROL1T6
041645,000478: 16,3632 53311 DXCH T6LOC
041646,000479: 16,3633 31613 CA TEMREG # ENTER JET FIRING TIME
041647,000480: 16,3634 54031 TS TIME6
041648,000481:
041649,000482: 16,3635 31700 CA I # I=0 IF MOREROLL,KEEP SAME JETS ON
041650,000483: 16,3636 00006 EXTEND
041651,000484: 16,3637 15213 SAMEJETS BZF TASKOVER # IF JETS ON KEEP SAME JETS. EXIT ROLL DAP
041652,000485:
041653,000486: 16,3640 11611 CCS ROLLFIRE
041654,000487: 16,3641 13645 TCF +TORQUE
041655,000488: 16,3642 13706 TCF T6ENABL
041656,000489: 16,3643 13666 TCF -TORQUE
041657,000490: 16,3644 13706 TCF T6ENABL
041658,000491:
041659,000492: # PROCEED WITH + TORQUE
041660,000493: 16,3645 31612 +TORQUE CA ROLLWORD # WHAT WAS THE LAST +TORQUE COMBINATION
041661,000494: 16,3646 74712 MASK BIT1 # WAS IT NO.9-11
041662,000495: 16,3647 00006 EXTEND
041663,000496: 16,3650 13660 BZF NO.9-11 # NOT 9-11, SO USE IT THIS TIME
041664,000497:
041665,000498: 16,3651 44712 NO.13-15 CS BIT1
041666,000499: 16,3652 71612 MASK ROLLWORD
041667,000500: 16,3653 55612 TS ROLLWORD # CHANGE BIT 1 TO ZERO
![]() |
Page 955 |
041669,000502: 16,3654 34732 CAF +ROLL2
041670,000503: 16,3655 00006 EXTEND
041671,000504: 16,3656 01006 WRITE CHAN6
041672,000505: 16,3657 13706 TCF T6ENABL
041673,000506:
041674,000507: 16,3660 34712 NO.9-11 CAF BIT1 # 1ST + JETS TO FIRE (MRCLEAN OS ROLLWORD)
041675,000508: 16,3661 27612 ADS ROLLWORD # CHANGE BIT 1 TO ONE
041676,000509: 16,3662 34715 CAF +ROLL1
041677,000510: 16,3663 00006 EXTEND
041678,000511: 16,3664 01006 WRITE CHAN6
041679,000512: 16,3665 13706 TCF T6ENABL
041680,000513:
041681,000514: 16,3666 31612 -TORQUE CA ROLLWORD # WHAT WAS LAST -TORQUE COMBINATION
041682,000515: 16,3667 74711 MASK BIT2 # WAS IT NO.12-10
041683,000516: 16,3670 00006 EXTEND
041684,000517: 16,3671 13701 BZF NO.12-10 # NOT 12-10, SO USE IT THIS TIME
041685,000518:
041686,000519: 16,3672 44711 NO.16-14 CS BIT2
041687,000520: 16,3673 71612 MASK ROLLWORD
041688,000521: 16,3674 55612 TS ROLLWORD # CHANGE BIT 2 TO ZERO
041689,000522: 16,3675 33733 CAF -ROLL2
041690,000523: 16,3676 00006 EXTEND
041691,000524: 16,3677 01006 WRITE CHAN6
041692,000525: 16,3700 13706 TCF T6ENABL
041693,000526:
041694,000527: 16,3701 34711 NO.12-10 CAF BIT2 # 1ST -JETS TO FIRE (MRCLEAN OS ROLLWORD)
041695,000528: 16,3702 27612 ADS ROLLWORD # CHANGE BIT 2 TO ONE
041696,000529: 16,3703 34377 CAF -ROLL1
041697,000530: 16,3704 00006 EXTEND
041698,000531: 16,3705 01006 WRITE CHAN6
041699,000532:
041700,000533: 16,3706 34674 T6ENABL CAF BIT15
041701,000534: 16,3707 00006 EXTEND
041702,000535: 16,3710 05013 WOR CHAN13
041703,000536: 16,3711 15213 RDAPEND TCF TASKOVER # EXIT ROLL DAP
041704,000537:
![]() |
Page 956 |
041706,000539: # THIS T6 TASK SHUTS OFF ALL ROLL JETS
041707,000540:
041708,000541:
041709,000542: 16,3712 22016 NOROLL1 LXCH BANKRUPT # SHUT OFF ALL (ROLL) JETS, (A T6 TASK
041710,000543: 16,3713 34714 CAF ZERO # CALLED BY ..JETROLL..)
041711,000544: 16,3714 55611 TS ROLLFIRE # ZERO INDICATES JETS NOW OFF
041712,000545: 16,3715 00006 EXTEND
041713,000546: 16,3716 01006 KILLJETS WRITE CHAN6
041714,000547: 16,3717 15224 TCF NOQRSM
041715,000548:
![]() |
Page 957 |
041717,000550: # CONSTANTS FOR ROLL AUTOPILOT....
041718,000551:
041719,000552: 16,3720 E6,1742 EBANK= BZERO
041720,000553: 16,3720 03712 34066 NOROL1T6 2CADR NOROLL1
041721,000554:
041722,000555: 16,3722 00344 DB DEC .01388889 # DEAD BAND (5 DEG), SC.AT B+0 REV
041723,000556: 16,3723 06315 -SLOPE DEC 0.2 # -SWITCHLINE SLOPE(0.2 PER SEC) SC.AT B+0
041724,000557: # PER SEC
041725,000558: 16,3724 00111 LMCRATE DEC .00027778 B+4 # LIMIT CYCLE RATE (0.1 DEG/SEC) SC.AT
041726,000559: # B-4 REV/SEC
041727,000560: 16,3725 00510 INTERCEP DEC .0025 B+3 # DB(-SLOPE) - LMCRATE, SC.AT B-3 REV/SC
041728,000561:
041729,000562: 16,3726 01330 MINLIM DEC .00277778 B+4 # RATELIM,MIN (1DEG/SEC), SC.AT B-4 REV/SC
041730,000563:
041731,000564: 16,3727 00027 1/MINLIM DEC 360 B-18 # RECIPROCAL THEREOF, SHIFTED 14 RIGHT
041732,000565:
041733,000566: 16,3730 07071 MAXLIM DEC .01388889 B+4 # RATELIM,MAX (5DEG/SEC), SC.AT B-4 REV/SC
041734,000567:
041735,000568: 16,3731 00030 TMINFIRE DEC 1.5 B+4 # 15 MS (14MIN), SC.AT 16 BITS/CS
041736,000569:
041737,000570: 16,3732 07640 TMAXFIRE DEC 250 B+4 # 2.5 SEC, SC.AT 16 BITS/CS
041738,000571:
041739,000572: 16,3733 4710 1/TMXFIR = BIT3 # RECIPROCAL THEREOF, SHIFTED 14 RIGHT,
041740,000573: # ROUNDS TO OCT00004, SO ALLOWS 2.56
041741,000574: # SEC FIRINGS BEFORE APPLYING LIMIT
041742,000575: 16,3733 7665 T6SCALE = PRIO31 # (B+3) (16 BITS/CS) (100CS/SEC)
041743,000576:
041744,000577: 16,3733 4715 +ROLL1 = FIVE # ONBITS FOR JETS 9 AND 11
041745,000578: 16,3733 4732 +ROLL2 = OCT120 # ONBITS FOR JETS 13 AND 15
041746,000579: 16,3733 4377 -ROLL1 = TEN # ONBITS FOR JETS 12 NAD 10
041747,000580: 16,3733 00240 -ROLL2 OCT 240 # ONBITS FOR JETS 16 AND 14
End of include-file TVCROLLDAP.agc. Parent file is MAIN.agc