Source Code
These source-code files were transcribed from scans made from Don Eyles's personal
copy of BURST120 (SUNBURST 120). They were scanned at archive.org's Boston
facility, and the scanning was sponsored by Mike Stewart. The code was transcribed
from these scans by a team of volunteers who are referenced in the program
comments. Comments from the original source code are in ALL-CAPS, whereas
comments added later in transcription are in Mixed-Case. In some cases, where
similar code blocks exist in previously-transcribed AGC programs (primarily
Luminary 99, from Apollo 11) those code blocks were used as a starting point and
then corrected to agree with the BURST120 scans. The full scans are available
at the Virtual AGC
project's collection at archive.org, while more-convenient reduced-size (but reduced-quality)
images are available at
the main Virtual AGC website. Report any errors noted by creating an
issue report at the Virtual AGC
project's GitHub repository. Notations on the program listing read, in part:YUL SYSTEM FOR AGC: REVISION 0 OF PROGRAM BURST120 BY NASA 2021106-031 DEC 7, 1967 THIS LISTING IS A COPY OF A VERSION OF THE PROGRAM INTENDED FOR USE IN THE ON-BOARD PRIMARY GUIDANCE COMPUTER IN THE UNMANNED FLIGHT OF APOLLO LUNAR MODULE 1 --- THE AS206 MISSION.Note that the date is the date of the printout, not the date of the program revision. |
020443,000002: ## Copyright: Public domain.
020444,000003: ## Filename: P-AXIS_REACTION_CONTROL_SYSTEM_AUTOPILOT.agc
020445,000004: ## Purpose: A module for revision 0 of BURST120 (Sunburst). It
020446,000005: ## is part of the source code for the Lunar Module's
020447,000006: ## (LM) Apollo Guidance Computer (AGC) for Apollo 5.
020448,000007: ## Assembler: yaYUL
020449,000008: ## Contact: Ron Burkey <info@sandroid.org>.
020450,000009: ## Website: www.ibiblio.org/apollo/index.html
020451,000010: ## Mod history: 2016-09-30 RSB Created draft version.
020452,000011: ## 2016-10-24 RSB Transcribed through page 504.
020453,000012: ## 2016-10-28 RSB Finished transcribing.
020454,000013: ## 2016-10-31 RSB Typos.
020455,000014: ## 2016-11-01 RSB More typos.
020456,000015: ## 2016-12-05 RSB Comment-proofing with octopus/ProoferComments
020457,000016: ## completed, changes made.
020458,000017: ## 2021-05-30 ABS Added missing BANK and EBANK= statements.
020459,000018:
Page 492 |
020461,000020: 16,2255 BANK 16
020462,000021: 16,2255 E6,1542 EBANK= DT
020463,000022:
020464,000023: # THE FOLLOWING T5RUPT ENTRY BEGINS THE PROGRAM WHICH CONTROLS THE P-AXIS ACTION OF THE LEM USING THE RCS JETS.
020465,000024: # THE NOMINAL TIME BETWEEN THE P-AXIS RUPTS IS 100 MS IN ALL NON-IDLING MODES OF THE DAP.
020466,000025:
020467,000026: 16,2255 33754 PAXIS CAF TWENTYMS # RESET TIMER IMMEDIATELY - DT= 20 MS
020468,000027: 16,2256 54030 TS TIME5
020469,000028:
020470,000029: 16,2257 22016 LXCH BANKRUPT # INTERRUPT LEAD IN (CONTINUED)
020471,000030: 16,2260 00006 EXTEND
020472,000031: 16,2261 22012 QXCH QRUPT
020473,000032:
020474,000033: # CHECK TO SEE IF DAP IS STILL IN USE:
020475,000034:
020476,000035: 16,2262 02005 TC CHEKBITS # RETURN IS TO I+1 IF DAP SHOULD STAY ON.
020477,000036:
020478,000037: # WHILE DAP IS ON, SET UP EITHER A KALMAN FILTER RUPT OR A DUMMY FILTER RUPT BY SETTING UP T5ADR FROM ERASABLE.
020479,000038:
020480,000039: 16,2263 00006 EXTEND # T5ADR IS SET TO EITHER FILTER OR
020481,000040: 16,2264 31573 DCA PFILTADR # DUMMYFIL IN A BLIND MANNER SINCE
020482,000041: # PFILTADR IS SET UP ELSEWHERE
020483,000042:
020484,000043: # START CODING FOR MODULE 3 REMAKE, AUGUST 1967***START CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
020485,000044:
020486,000045: 16,2265 12406 INSRT16A TCF PAXISCNT # GO DECREMENT COUNTERS.
020487,000046:
020488,000047: # **END CODING FOR MODULE 3 REMAKE, AUGUST 1967*****END CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
020489,000048:
020490,000049: # ***** KALCMANU-DAP AND "RATE-HOLD"-DAP INTERFACE *****
020491,000050:
020492,000051: # THE FOLLOWING SECTION IS EXECUTED EVERY 100 MS (10 TIMES A SECOND) WITHIN THE P-AXIS REACTION CONTROL SYSTEM
020493,000052: # AUTOPILOT (WHENEVER THE DAP IS IN OPERATION).
020494,000053:
020495,000054: 16,2266 37762 CAF TWO # SET UP LOOP TO DO Z,Y,X CDU AXES:
020496,000055: 16,2267 54066 KALCLOOP TS QRCNTR
020497,000056:
020498,000057: 16,2270 50066 INDEX QRCNTR # KALCMANU AND RATE-HOLD USE THIS SECTI
020499,000058: 16,2271 30766 CAE CDUXD # TO PERFORM THEIR INDEPENDENT FUNCTION
020500,000059: 16,2272 00006 EXTEND # BOTH PROCEDURES SET UP THE DELCUD'S
020501,000060: 16,2273 50066 INDEX QRCNTR # TO HAVE THE NEGATIVE VALUE OF THE
020502,000061: 16,2274 20771 MSU DELCDUX # DESIRED CDU CHANGE FOR EACH 100 MS CS
020503,000062: 16,2275 10000 CCS A # DURING THE MANEUVER (OR MODE). EACH
020504,000063: 16,2276 67763 AD ONE # STORED AT PI RADIANS IN 2'S COMPLEMEN
020505,000064: 16,2277 12301 TCF +2 # SINCE THE MODULAR SUBTRACT YIELDS THE
020506,000065: 16,2300 40000 COM # NEW CDUD VALUE IN 1'S COMPLEMENT, THE
020507,000066: 16,2301 50066 INDEX QRCNTR # CCS SECTION IS NEEDED FOR 1'S TO 2'S
020508,000067: 16,2302 54766 TS CDUXD # CONVERSION OF DESIRED CDU ANGLES.
020509,000068:
020510,000069: 16,2303 10066 CCS QRCNTR # (THIS MAKES THE LOOP DO ALL THREE
Page 493 |
020512,000071: 16,2304 12267 TCF KALCLOOP # AXES. A = QRCNTR. DO NEXT DELCDU.
020513,000072: # DO P AXIS RATE DERIVATION AND CONTROL LAW.
020514,000073: # DERIVE DELTA P.
020515,000074:
020516,000075: 16,2305 37767 CA ZERO
020517,000076: 16,2306 54061 TS ITEMP1
020518,000077: 16,2307 31611 CAE TP
020519,000078: 16,2310 63566 AD NEGCSP1
020520,000079: 16,2311 00006 EXTEND
020521,000080: 16,2312 62316 BZMF DOTORQUE
020522,000081: 16,2313 54061 TS ITEMP1
020523,000082: 16,2314 33603 CA CSPAT1P
020524,000083: 16,2315 12324 TCF SCALEDTP
020525,000084: 16,2316 31611 DOTORQUE CA TP
020526,000085: 16,2317 00006 EXTEND
020527,000086: 16,2320 77757 MP BIT5
020528,000087: 16,2321 30001 CAE L
020529,000088: 16,2322 00006 EXTEND
020530,000089: 16,2323 73571 MP 16/25
020531,000090: 16,2324 55611 SCALEDTP TS TP
020532,000091: 16,2325 00006 EXTEND
020533,000092: 16,2326 71640 MP WFORP
020534,000093: 16,2327 61643 AD (1-K)/8
020535,000094: 16,2330 00006 EXTEND
020536,000095: 16,2331 71611 MP TP
020537,000096: 16,2332 00006 EXTEND
020538,000097: 16,2333 77760 MP BIT4
020539,000098: 16,2334 31613 CA 1JACC
020540,000099: 16,2335 00006 EXTEND
020541,000100: 16,2336 70001 MP L
020542,000101: 16,2337 00006 EXTEND
020543,000102: 16,2340 71657 MP NO.PJETS
020544,000103: 16,2341 23604 LXCH JETRATE
020545,000104: 16,2342 30061 CA ITEMP1
020546,000105: 16,2343 55611 TS TP
020547,000106:
020548,000107: 16,2344 30032 CAE CDUX
020549,000108: 16,2345 54001 TS L
020550,000109: 16,2346 00006 EXTEND
020551,000110: 16,2347 21425 MSU OLDXFORP # SCALED AT PI
020552,000111: 16,2350 23425 LXCH OLDXFORP
020553,000112: 16,2351 22007 ZL
020554,000113: 16,2352 52063 DXCH DELTAP
020555,000114: 16,2353 37753 CAF BIT9
020556,000115: 16,2354 54002 TS Q
020557,000116: 16,2355 30033 CA CDUY
020558,000117: 16,2356 54001 TS L
020559,000118: 16,2357 00006 EXTEND
020560,000119: 16,2360 21426 MSU OLDYFORP # SCALED AT PI
020561,000120: 16,2361 23426 LXCH OLDYFORP
Page 494 |
020563,000122: 16,2362 00006 EXTEND
020564,000123: 16,2363 71404 MP M11 # M11 SCALED AT 1
020565,000124: 16,2364 20063 DAS DELTAP
020566,000125: 16,2365 00006 EXTEND
020567,000126: 16,2366 30063 DCA DELTAP
020568,000127: 16,2367 00006 EXTEND
020569,000128: 16,2370 10002 DV Q # NOW SCALED AT PI/64
020570,000129: 16,2371 00006 EXTEND
020571,000130: 16,2372 71640 MP WFORP # SCALED AT 2(4)=16, RESULT IN A AT PI/4.
020572,000131: 16,2373 57415 XCH OMEGAP # W*DELTAP IN OMEGAP LOC. OLD OMEGAP IN A.
020573,000132: 16,2374 00006 EXTEND
020574,000133: 16,2375 71642 MP (1-K) # SCALED AT 1
020575,000134: 16,2376 61604 AD JETRATE # RATE DUE TO JETS TORQUING.
020576,000135: 16,2377 27415 ADS OMEGAP # PRATE= WFORP*DELTAP+ALPHA*LAST-PRATE+TPF
020577,000136: 16,2400 01652 PAXFILT TC PJUMPADR
020578,000137: 16,2401 32240 SKIPPAXS CA VISNORMQ
020579,000138: 16,2402 55652 TS PJUMPADR
020580,000139: 16,2403 15733 TCF RESUME
020581,000140:
020582,000141: 16,2404 06013 CHKVISFZ TC T6JOBCHK # CHECK FOR T6 RUPT.
020583,000142:
020584,000143: 16,2405 12777 TCF PURGENCY # NO RHC INPUTS ON 206
020585,000144:
020586,000145: # START CODING FOR MODULE 3 REMAKE, AUGUST 1967***START CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
020587,000146:
020588,000147: # FROM P-AXIS-
020589,000148: # 1. COUNT DOWN GIMBAL DRIVE TIMES.
020590,000149: # 2. END DRIVES WHEN APPROPRIATE.
020591,000150: # 3. COUNT DOWN TIME FOR FORCED GTS JUST BEFORE THROTTLE-UP.
020592,000151:
020593,000152: 16,2406 53001 PAXISCNT DXCH T5ADR # (PRESERVE OLD CODING)
020594,000153:
020595,000154: 16,2407 11764 CCS SIMPCNTR # COUNT DOWN SIMPCNTR TO +0. DECISECONDS
020596,000155: 16,2410 55764 TS SIMPCNTR
020597,000156:
020598,000157: 16,2411 11753 CCS QGIMTIMR # Q-AXIS GIMBAL DRIVE TIMER-
020599,000158: 16,2412 12427 TCF DECQTIMR # POSITIVE- COUNTING DOWN
020600,000159: 16,2413 12433 TCF TURNOFFQ # POS ZERO- DRIVE SHOULD BE ENDED
020601,000160: 16,2414 11754 CHKRTIMR CCS RGIMTIMR # NEGATIVE- INACTIVE
020602,000161: 16,2415 12431 TCF DECRTIMR # NEG ZERO- IMPOSSIBLE
020603,000162: 16,2416 12443 TCF TURNOFFR # REPEATED FOR R-AXIS (ABOVE).
020604,000163:
020605,000164: 16,2417 11744 CKTRMCTR CCS TRIMCNTR # COUNT DOWN FOR FORCED GTS ENTRY.
020606,000165: 16,2420 12424 TCF +4 # POSITIVE- COUNTING DOWN
020607,000166: 16,2421 04736 TC CCSHOLE # POS ZERO-IMPOSSIBLE
020608,000167: 16,2422 12566 TCF CHKSMART # NEGATIVE- INACTIVE- RETURN
020609,000168: 16,2423 12566 TCF CHKSMART # NEG ZERO- THIS VALUE UNTIL DRIVE DONE.
020610,000169: 16,2424 37771 CAF NEGONE
020611,000170: 16,2425 27744 ADS TRIMCNTR # COUNT TRIMCNTR DOWN TO NEG ZERO.
020612,000171: 16,2426 12566 TCF CHKSMART
020613,000172:
Page 495 |
020615,000174: 16,2427 55753 DECQTIMR TS QGIMTIMR # COUNT QGIMTIMR DOWN TO POS ZERO.
020616,000175: 16,2430 12414 TCF CHKRTIMR
020617,000176: 16,2431 55754 DECRTIMR TS RGIMTIMR # COUNT RGIMTIMR DOWN TO POS ZERO.
020618,000177: 16,2432 12417 TCF CKTRMCTR
020619,000178:
020620,000179: 16,2433 55523 TURNOFFQ TS NEGUQ # REWRITE GIMBAL-DRIVE BITS TO HALT 0.
020621,000180: 16,2434 55533 TS QACCDOT
020622,000181: 16,2435 42453 CS QGIMBITS
020623,000182: 16,2436 00006 EXTEND
020624,000183: 16,2437 03012 WAND 12
020625,000184: 16,2440 37745 CAF NEGMAX
020626,000185: 16,2441 55753 TS QGIMTIMR # DEACITIVATE TIMER.
020627,000186: 16,2442 12414 TCF CHKRTIMR
020628,000187: 16,2443 55525 TURNOFFR TS NEGUR # REWRITE GIMBAL DRIVE BITS TO HALT R.
020629,000188: 16,2444 55535 TS RACCDOT
020630,000189: 16,2445 42454 CS RGIMBITS
020631,000190: 16,2446 00006 EXTEND
020632,000191: 16,2447 03012 WAND 12
020633,000192: 16,2450 37745 CAF NEGMAX
020634,000193: 16,2451 55754 TS RGIMTIMR # DEACTIVATE TIMER.
020635,000194: 16,2452 12417 TCF CKTRMCTR
020636,000195: 16,2453 01400 QGIMBITS OCTAL 01400
020637,000196: 16,2454 06000 RGIMBITS OCTAL 06000
020638,000197:
020639,000198: # FROM STARTDAP- RESTART PROTECT THE CHANNEL 11 ENGINE-ON BIT AND THE CHANNEL 12 GIMBAL-DRIVE BITS.
020640,000199:
020641,000200: 16,2455 55643 PROTCTOR TS (1-K)/8 # (OLD CODING)
020642,000201:
020643,000202: 16,2456 30075 CAE FLAGWRD1
020644,000203: 16,2457 77757 MASK ENGINBIT
020645,000204: 16,2460 00006 EXTEND
020646,000205: 16,2461 12102 BZF INSRT16B +1 # RETURN TO STARTDAP IF ENGINE SHOULD BE
020647,000206: # OFF.
020648,000207: 16,2462 37747 CAF BIT13 # OTHERWISE-
020649,000208: 16,2463 00006 EXTEND
020650,000209: 16,2464 05011 WOR 11 # RESET ENGINE-ON BIT.
020651,000210: 16,2465 41753 CS QGIMTIMR
020652,000211: 16,2466 00006 EXTEND
020653,000212: 16,2467 62472 BZMF +3 # BRANCH IF Q-DRIVE TIMER ACTIVE.
020654,000213: 16,2470 37767 CAF ZERO # OTHERWISE ZERO NEGUQ.
020655,000214: 16,2471 55523 TS NEGUQ
020656,000215: 16,2472 41754 CS RGIMTIMR # REPEAT FOR R-DRIVE.
020657,000216: 16,2473 00006 EXTEND
020658,000217: 16,2474 62477 BZMF +3
020659,000218: 16,2475 37767 CAF ZERO
020660,000219: 16,2476 55525 TS NEGUR
020661,000220: 16,2477 05270 TC IBNKCALL # SET UP DRIVES ACCORDING TO NEGUS.
020662,000221: 16,2500 43243 FCADR WRCHN12
020663,000222: 16,2501 12102 TCF INSRT16B +1 # RETURN TO OLD CODING.
020664,000223:
Page 496 |
020666,000225: 16,2502 37756 NODAPNO CAF ULLAGER
020667,000226: 16,2503 70077 MASK DAPBOOLS
020668,000227: 16,2504 00006 EXTEND
020669,000228: 16,2505 12521 BZF ZEROFIVE
020670,000229: 16,2506 40764 CS PHASENUM # ULLAGE BIT IS SET.PROTECT MP7 +X COMMAND
020671,000230: 16,2507 67765 AD SEVEN
020672,000231: 16,2510 00006 EXTEND
020673,000232: 16,2511 12513 BZF PROTCT+X
020674,000233: 16,2512 12516 TCF LEAVASIS # THIS IS NOT MP7. THIS IS NOT COLD PURGE.
020675,000234: 16,2513 32523 PROTCT+X CAF +XJETS
020676,000235: 16,2514 00006 TWINEXIT EXTEND
020677,000236: 16,2515 01005 WRITE 5
020678,000237:
020679,000238: 16,2516 33567 LEAVASIS CAF MS30P
020680,000239: 16,2517 54030 TS TIME5
020681,000240: 16,2520 15733 TCF RESUME
020682,000241:
020683,000242: 16,2521 37767 ZEROFIVE CAF ZERO
020684,000243: 16,2522 12514 TCF TWINEXIT
020685,000244:
020686,000245: 16,2523 00252 +XJETS OCT 00252
020687,000246:
020688,000247: 16,2524 00006 ADDLT5ID EXTEND # (ARRIVE WITH BIT 11 IN A, FROM T5IDLERI)
020689,000248: 16,2525 02011 RAND DSALMOUT
020690,000249: 16,2526 10000 CCS A
020691,000250: 16,2527 12544 TCF MORET5ID # SMARTJOB IS ALREADY RUNNING. NO ACTION.
020692,000251:
020693,000252: 16,2530 11355 CCS SMODE # NOT RUNNING. SEE IF SELFCHECK WANTED.
020694,000253: 16,2531 12544 TCF MORET5ID # SELFCHECK IS ON, SO DON'T RUN SMARTJOB.
020695,000254: 16,2532 12535 TCF GETSMART # SELFCHECK IS OFF, SO START SMARTJOB.
020696,000255: 16,2533 12544 TCF MORET5ID # SELFCHECK IS ON, SO DON'T RUN SMARTJOB.
020697,000256: 16,2534 12544 TCF MORET5ID # SELFCHECK IS ON, SO DON'T RUN SMARTJOB.
020698,000257:
020699,000258: 16,2535 37752 GETSMART CAF PRIO1
020700,000259: 16,2536 05505 TC NOVAC
020701,000260: 16,2537 0377 EBANK= SMARTFLG
020702,000261: 16,2537 02551 34060 2CADR SMARTJOB
020703,000262:
020704,000263: 16,2541 37751 CAF BIT11 # SET THE SMARTJOB-RUNNING FLAG.
020705,000264: 16,2542 00006 EXTEND
020706,000265: 16,2543 05011 WOR DSALMOUT
020707,000266:
020708,000267: 16,2544 37751 MORET5ID CAF GODAPGO
020709,000268: 16,2545 70077 MASK DAPBOOLS
020710,000269: 16,2546 00006 EXTEND # NODAPNO WILL STOP COLD FIRE PURGE AND
020711,000270: 16,2547 12502 BZF NODAPNO # RESTART-PROTECT MP 7 +X TRANSLATION.
020712,000271:
020713,000272: 16,2550 12042 TCF DAPIDLEI # GODAPGO IS ON, SO RUN DAPIDLER NOW.
020714,000273:
Page 497 |
020716,000275: # SMARTJOB IS A DUMMYJOB-LIKE FUNCTION DESIGNED TO ABSORB IDLE TIME. IT CAUSES THE COMPUTER-ACTIVITY LAMP TO
020717,000276: # REMAIN ON, AND PREVENTS THE EXISTENCE OF A JOB SLEEPING IN TH ELOWEST NUMBERED CORE SET. IT IS PREVENTED FROM
020718,000277: # STARTING, OR MADE TO TERMINATE IF ALREADY RUNNING, BY MAKING SMARTFLG CONTAIN ANY NEGATIVE VALUE OR ZERO, OR
020719,000278: # BY MAKING SMODE (THE SELFCHECK CONTROL REGISTER) UNEQUAL TO +0.
020720,000279:
020721,000280: 16,2551 10067 SMARTJOB CCS NEWJOB # ANY HIGHER PRIORITY JOB WAITING?
020722,000281: 16,2552 05532 TC CHANG1 # YES. GO DO IT.
020723,000282:
020724,000283: 16,2553 30377 CA SMARTFLG # NO. SHOULD SMARTJOB TERMINATE?
020725,000284: 16,2554 00006 EXTEND
020726,000285: 16,2555 62562 BZMF STOPSMRT # YES. GO KILL IT.
020727,000286:
020728,000287: 16,2556 11355 CCS SMODE # MAYBE NOT. SEE IF SELFCHECK WANTED.
020729,000288: 16,2557 12562 TCF STOPSMRT # WANTED. TERMINATE SMARTJOB.
020730,000289: 16,2560 12551 TCF SMARTJOB # NOT WANTED. CONTINUE SMARTJOB.
020731,000290: 16,2561 12562 NOOP # WANTED. TERMINATE SMARTJOB.
020732,000291: 16,2562 47751 STOPSMRT CS BIT11 # TERMINATE SMARTJOB.
020733,000292: 16,2563 00006 EXTEND # FIRST, TURN THE SMARTJOB-RUNNING FLAG
020734,000293: 16,2564 03011 WAND DSALMOUT # OFF.
020735,000294:
020736,000295: 16,2565 15567 TCF ENDOFJOB # THEN KILL JOB.
020737,000296:
020738,000297: 16,2566 30377 CHKSMART CA SMARTFLG # IS SMARTJOB DESIRED?
020739,000298: 16,2567 00006 EXTEND
020740,000299: 16,2570 62266 BZMF INSRT16A +1 # NO. TAKE NO ACTION.
020741,000300:
020742,000301: 16,2571 37751 CAF BIT11 # YES. SEE IF IT IS ALREADY RUNNING.
020743,000302: 16,2572 00006 EXTEND
020744,000303: 16,2573 02011 RAND DSALMOUT
020745,000304: 16,2574 10000 CCS A
020746,000305: 16,2575 12266 TCF INSRT16A +1 # SMARTJOB IS ALREADY RUNNING. NO ACTION.
020747,000306:
020748,000307: 16,2576 11355 CCS SMODE # NOT RUNNING. SEE IF SELFCHECK WANTED.
020749,000308: 16,2577 12266 TCF INSRT16A +1 # SELFCHECK IS ON, SO DON'T RUN SMARTJOB.
020750,000309: 16,2600 12603 TCF SETSMART # SELFCHECK IS OFF, SO START SMARTJOB.
020751,000310: 16,2601 12266 TCF INSRT16A +1 # SELFCHECK IS ON, SO DON'T RUN SMARTJOB.
020752,000311: 16,2602 12266 TCF INSRT16A +1 # DITTO.
020753,000312:
020754,000313: 16,2603 37752 SETSMART CAF PRIO1
020755,000314: 16,2604 05505 TC NOVAC
020756,000315: 16,2605 0377 EBANK= SMARTFLG
020757,000316: 16,2605 02551 34060 2CADR SMARTJOB
020758,000317:
020759,000318: 16,2607 37751 CAF BIT11 # SET THE SMARTJOB-RUNNING FLAG.
020760,000319: 16,2610 00006 EXTEND
020761,000320: 16,2611 05011 WOR DSALMOUT
020762,000321:
020763,000322: 16,2612 12266 TCF INSRT16A +1 # RETURN TO PAXIS.
020764,000323:
020765,000324: # **END CODING FOR MODULE 3 REMAKE, AUGUST 1967**** END CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
020766,000325:
Page 498 |
020768,000327: # THE FOLLOWING CODING IS LEFT IN PLACE TO PRESERVE ADDRESSES.
020769,000328:
020770,000329: 16,2613 00006 EXTEND
020771,000330: 16,2614 77761 MP BIT3 # ENOUGH FOR 4 JETS
020772,000331: 16,2615 30001 CAE L
020773,000332: 16,2616 00006 EXTEND
020774,000333: 16,2617 73576 MP 25/32 # A CONTAINS TJET SCALED AT 2EXP(4)(16/25)
020775,000334: 16,2620 55611 TS TP
020776,000335: 16,2621 55475 TS TOFJTCHG
020777,000336:
020778,000337: 16,2622 31462 CAE PRATEDIF # TEST WHETHER 2 OR 4 JETS TO BE USED BY
020779,000338: 16,2623 61500 AD -2JETLIM # COMPARING DELTA RATE WITH 2 JET LIMIT
020780,000339: 16,2624 00006 EXTEND
020781,000340: 16,2625 62631 BZMF +4 # IF NEGATIVE, 2 JETS ARE ENOUGH
020782,000341:
020783,000342: 16,2626 37743 CAF POSMAX # POSITIVE, NON-ZERO. PUT POSMAX IN NJET
020784,000343: 16,2627 55461 TS NJET
020785,000344: 16,2630 12642 TCF PJETSLEC # AND GO SELECT GOOD POLICY
020786,000345:
020787,000346: 16,2631 37745 CAF NEGMAX # 2 JETS, PUT NEGMAX IN NJET.
020788,000347: 16,2632 55461 TS NJET
020789,000348: 16,2633 31611 CAE TP # DOUBLE TP.
020790,000349: 16,2634 60000 DOUBLE
020791,000350: 16,2635 55611 TS TP # AND GO CHECK MINIMUM IMPULSE
020792,000351:
020793,000352: # ........................................................................
020794,000353: # CHECK RATE COMMAND ON TIME AGAINST MINIMUM IMPULSE
020795,000354: 16,2636 55475 TS TOFJTCHG
020796,000355: 16,2637 63577 AD -TJMINT6
020797,000356: 16,2640 00006 EXTEND # AS TP. TEST JET TIME. IS IT GREATER OR
020798,000357: 16,2641 62772 BZMF JETSOFF # LESS THAN A MINIMUM IMPULSE
020799,000358: # ........................................................................
020800,000359:
Page 499 |
020802,000361: # PROGRAM NAME: PJETSLEC DATE: DECEMBER 9, 1966
020803,000362:
020804,000363: # MODIFICATION 2 TO SUNBURST REVISION 58 ON DECEMBER 30, 1966 BY JOHN BLISS(ADAMS ASSOCIATES) RM 7-286, X183
020805,000364:
020806,000365: # LOG SECTION: P-AXIS REACTION CONTROL SYSTEM AUTOPILOT -- FIRST PUT INTO SUNBURST(III) REVISION 29
020807,000366:
020808,000367:
020809,000368: # FUNCTIONAL DESCRIPTION:
020810,000369:
020811,000370: # THE OBJECT OF PJETSLEC IS TO CHOOSE THE BEST JET POLICY WHOSE NECESSARY JETS HAVE NOT BEEN RECORDED AS
020812,000371: # FAILED IN THE CH6MASK REGISTER. THE CONDITIONS ON SELECTION ARE THE NUMBER OF JETS REQUESTED(2 OR 4), THE
020813,000372: # SENSE OF P-AXIS ROTATION REQUIRED(+/-), AND ALTERNATING USE OF DIAGONAL FORCE-COUPLED PAIRS OF JETS.
020814,000373:
020815,000374: # PJETSLEC FIRST READS CHANNEL 6 TO SEE IF THE JETS ARE CURRENTLY FIRING. IF THEY ARE OFF, THE DIAGONAL JETS
020816,000375: # ARE SWITCHED TO COMPLY WITH THE ALTERNATION CONDITION, AS THERE IS NO DANGER OF SWITCHING ONE OFF AND THE OTHER
020817,000376: # ON IN RAPID SUCCESSION. AFTER SWITCHING THE DIAGONALS, OR IF THE JETS ARE ON, 6.5 MS IS ADDED TO THE JET
020818,000377: # FIRING TIME, TOFJTCHG, TO ALLOW FOR DELAY IN TURNING ON THE JETS OR IN CASE THE CURRENT POLICY HAS SUFFERED A
020819,000378: # JET FAILURE AND JUST BE REPLACED. HOWEVER, IF THE SAME JET POLICY IS SELECTED, THE FACT WILL BE DETECTED BEFORE
020820,000379: # THE POLICY IS WRITTEN INTO CHANNEL 6, THE UNNECESSARY 6.5MS DELAY TIME WILL BE DEDUCTED FROM TOFJTCHG. THE TIME
020821,000380: # OF CALCULATION, 5MS, IS SUBTRACTED AT THE SAME TIME IN THE COMBINED CONSTANT, -COM-6.5 = -11.5MS. NOTE THAT IN
020822,000381: # CASE JET FAILURE REQUIRES SELECTION OF A NEW POLICY, TOFJTCHG IS NOT MODIFIED BY -5MS, AND SO THERE WILL BE AN
020823,000382: # OVERSHOOT OF 5MS OF JET FIRING.
020824,000383:
020825,000384: # NEXT, THE SENSE OF P-AXIS ROTATION(ROLL) IS TESTED, TO DETERMINE WHICH SET OF JET POLICIES MUST BE INDEXED.
020826,000385:
020827,000386: # IF THE P-AXIS IS +, REL = 7, IF -, REL = 0,. NJET IS TESTED NEXT; IF POSMAX, 4 JETS DESIRED, REL = REL + 6,
020828,000387: # CTR = 6. IF NEGMAX, 2 JETS DESIRED, REL = REL + 5, CTR = 5. IF 4 JETS DESIRED, GO TO POLICY TESTING LOOP
020829,000388: # WITHOUT TESTING TO SEE WHICH DIAGONAL PAIR IS PREFERRED THIS TIME.
020830,000389:
020831,000390: # IF 2 JETS ARE DESIRED, SEE WHETHER NO. 2 PAIR IS PREFERRED. IF IT IS, TEST IT FIRST AND USE IT IF IT'S OK.
020832,000391: # IF IT HAS FAILED, GO TO THE TEST LOOP TO TEST THE POLICIES IN ORDER. IF NO. 1 POLICY IS PREFERRED, GO DIRECTLY
020833,000392: # TO THE TEST LOOP.
020834,000393:
020835,000394: # THE TEST LOOP USES REL TO PICK UP THE NEXT POLICY IN PPOLTABL AND CTR TO KEEP TRACK OF THE NUMBER OF
020836,000395: # POLICIES(1-7) TESTED. WHEN A GOOD POLICY IS FOUND, IT IS WRITTEN INTO CHANNEL 6, OTHERWISE THE NEXT POLICY IS
020837,000396: # TRIED. IF NO GOOD POLICIES ARE FOUND, CONTROL GOES TO ABORTJET TO TURN OFF THE JETS AND THE DAP.
020838,000397:
020839,000398: # WHEN A GOOD POLICY IS FOUND, CONTROL TRANSFERS TO WRITEPOL. THERE, THE SELECTED POLICY IS COMPARED TO THE
020840,000399: # CURRENT POLICY IN CHANNEL 6. IF THEY ARE NOT THE SAME, EITHER THE JETS HAVE NOT BEEN ON, OR A JET FAILED IN THE
020841,000400: # CURRENT POLICY. IN EITHER CASE, TOFJTCHG HAS ALREADY BEEN INCREASED BY THE 6.5MS JET FIRE DELAY. AS DESCRIBED
020842,000401: # ABOVE, HOWEVER, THE EFFECT OF THE OLD POLICY FIRING DURING THE COMPUTATION IS NOT TAKEN INTO ACCOUNT. THIS IS
020843,000402: # CONSIDERED SAFER, SINCE OTHERWISE, A TOFJTCHG ALREADY CALCULATED NEAR THE MINIMUM IMPULSE TIME MIGHT BE REDUCED
020844,000403: # TO LESS THAN 14MS AND THE RESULT WOULD BE THE EXPLOSION OF THE JETS.
020845,000404:
020846,000405: # IF THE JET POLICY IS THE SAME AS THE LAST ONE, THE 6.5MS DELAY TIME IS DEDUCTED FROM TOFJTCHG, AND IN ANY
020847,000406: # CASE, THE POLICY IS WRITTEN INTO CHANNEL 6, +/-2/4 IS STORED IN NO-PJETS, AND BIT9 IS PUT INTO JTSATCHG TO CAUSE
020848,000407: # THE P-AXIS JETS TO BE TURNED OFF ON THE NEXT T6RUPT. CONTROL THEN TRANSFERS TO SKIPTEST.
020849,000408:
020850,000409: # CALLING SEQUENCES: NONE SUBROUTINES CALLED:
020851,000410:
Page 500 |
020853,000412: # WRITEP - WRITES C(A). THE
020854,000413: # SELECTED JET POLICY, INTO
020855,000414: # CHANNEL 6
020856,000415:
020857,000416: # NORMAL EXIT MODES: ALARM OR ABORT EXIT MODES:
020858,000417:
020859,000418: # TCF SKIPTEST EXTEND
020860,000419: # DCA ABORTADR
020861,000420: # DTCB
020862,000421:
020863,000422: # EBANK= JTSONNOW
020864,000423: # ABORTADR 2CADR ABORTJET
020865,000424:
020866,000425: # THIS SEQUENCE IS FOLLOWED
020867,000426: # IF NONE OF THE POLICIES IS
020868,000427: # WITHOUT JET FAILURES
020869,000428:
020870,000429: # ERASABLE INITIALIZATION REQUIRED
020871,000430:
020872,000431: # TP = ) TIME PERIOD OF JET FIRING
020873,000432: # TOFJTCHG = ) AT T6 SCALING, 625 MICROSECONDS PER BIT
020874,000433: # NJET = 37777, 40000, DEPENDING ON WHETHER 4 OR 2 JETS DESIRED
020875,000434: # TJETSIGN = +/-00001, DEPENDING ON DESIRED SENSE OF P-AXIS ROTATION
020876,000435: # CH6MASK = BITS 1-8 INDICATE WHETHER CORRESPONDING JETS HAVE FAILED - BIT ON IS FAILURE, BIT OFF IS OK.
020877,000436: # DAPBOOLS,BIT5(AORBSYST) =0/1, DEPENDING UPON WHETHER DIAGONAL 1 OR DIAGONAL 2 WAS PREFERRED DURING LAST PASS
020878,000437:
020879,000438: # OUTPUT:
020880,000439:
020881,000440: # CHANNEL 6 - CONTAINS SELECTED JET POLICY UNLESS NONE IS AVAILABLE
020882,000441: # NO.PJETS - +/-2/4, SENSE OF P-AXIS ROTATION AND NUMBER OF JETS USED
020883,000442: # BY POLICY ACTUALLY SELECTED(MAY NOT = 4 IF 4 JETS RE-
020884,000443: # QUESTED BUT ONE OR MORE JETS FAILED)
020885,000444: # TOFJTCHG - MODIFIED BY -5MS OR +6.5MS OR NEITHER, DEPENDING ON WHETHER THE JETS WERE ON, AND WHETHER THE
020886,000445: # NEW POLICY IS A CHANGE FROM THE OLD OR NOT.
020887,000446: # DAPBOOLS, BIT5(AORBSYST) = 1/0, IF THE INPUT VALUE WAS 0/1, UNLESS JETS WERE ON WHEN PJETSLEC STARTED.
020888,000447:
020889,000448: # JTSATCHG - = BIT9, UNLESS NO POLICIES AVAILABLE
020890,000449:
020891,000450: # NJET, TP, TJETSIGN, AND CH6MASK NOT CHANGED BY PJETSLEC
020892,000451:
020893,000452: # REL AND CTR ARE LEFT AT THEIR LAST VALUES WHEN THE GOOD POLICY WAS
020894,000453: # FOUND
020895,000454:
020896,000455: # DEBRIS:
020897,000456:
020898,000457: # REL = ITEMP5
020899,000458: # CTR = ITEMP6
020900,000459: # A,L,Q
020901,000460:
020902,000461: 16,2642 00006 PJETSLEC EXTEND # BEGIN JET SELECT ROUTINE BY SEEING WHE-
Page 501 |
020904,000463: 16,2643 00006 READ 6 # THER THE JETS ARE TURNED ON(CHANNEL 6
020905,000464: 16,2644 10000 CCS A # NON-ZERO)
020906,000465: 16,2645 12653 TCF ADDELAY # JETS ON, DON'T SWITCH DIAGONALS.
020907,000466:
020908,000467: 16,2646 37757 CAF AORBSYST # JETS NOT ON NOW, START BY SWITCHING BIT5
020909,000468: 16,2647 22077 LXCH DAPBOOLS # IN DAPBOOLS
020910,000469: 16,2650 00006 EXTEND # BIT5 ON - DIAGONAL JETS 15, 7 AND 8, 16
020911,000470: 16,2651 06001 RXOR L
020912,000471: 16,2652 54077 TS DAPBOOLS # BIT5 OFF - DIAGONAL JETS 4, 12 AND 3, 11
020913,000472:
020914,000473: 16,2653 33565 ADDELAY CAF 14-TJMIN # ADD DELAY TIME BECAUSE JETS USUALLY OFF
020915,000474: 16,2654 27475 ADS TOFJTCHG # AND EASIER IF JET POLICY NOW HAS FAILED.
020916,000475:
020917,000476: 16,2655 37767 CAF ZERO # BEFORE TESTING P-AXIS SIGN.
020918,000477: 16,2656 54065 TS REL # INITIALIZE ADDRESSING INDEX AT ZERO
020919,000478: 16,2657 11434 CCS TJETSIGN # TEST DIRECTION OF P-AXIS ROTATION(ROLL)
020920,000479: 16,2660 37765 CAF SEVEN # IF POSITIVE, GET POLICY FROM LOWER SEVEN
020921,000480: 16,2661 26065 ADS REL # LOCATIONS OF TABLE
020922,000481:
020923,000482: 16,2662 11461 CCS NJET # SET IF 4-JET POLICY IS REQUESTED
020924,000483: 16,2663 36306 CAF SIX # IT IS, PICK UP 6 FOR REL AND CTR
020925,000484: 16,2664 12705 TCF FOURJETS # AND GO STORE THEM
020926,000485: 16,2665 37766 CAF FIVE # 2 JETS ONLY REQUESTED, PICK UP 5, STORE
020927,000486: 16,2666 54066 TS CTR # IN CTR AND ADD TO REL.
020928,000487: 16,2667 26065 ADS REL
020929,000488: 16,2670 40077 CS DAPBOOLS # CHECK BIT5 IN DAPBOOLS TO SEE WHICH PAIR
020930,000489: 16,2671 77757 MASK AORBSYST # OF DIAGONAL JETS SHOULD BE USED NEXT
020931,000490: 16,2672 10000 CCS A
020932,000491: 16,2673 12710 TCF TESTPOL # FIRST PAIR, SO GO TO TESTING LOOP NOW
020933,000492:
020934,000493: 16,2674 00006 EXTEND # SECOND PAIR, DECREMENT REL TO 4 OR 11.
020935,000494: 16,2675 26065 DIM REL
020936,000495: 16,2676 50065 INDEX REL # PICK UP SECOND DIAGONAL PAIR FROM POLICY
020937,000496: 16,2677 32754 CAF PPOLTABL
020938,000497: 16,2700 70103 MASK CH6MASK # TABLE AND COMPARE WITH FAILURE BITS
020939,000498: 16,2701 00006 EXTEND
020940,000499: 16,2702 12724 BZF WRITEPOL # THE JETS ARE GOOD, GO WRITE IN CHANNEL
020941,000500:
020942,000501: 16,2703 24065 INCR REL # THE JET(S) HAVE FAILED FOR THIS POLICY,
020943,000502: 16,2704 12710 TCF TESTPOL # RESTORE REL AND DO TEST POLICY LOOP
020944,000503:
020945,000504: 16,2705 26065 FOURJETS ADS REL # COME HERE TO SET REL AND CTR FOR 4-JET
020946,000505: 16,2706 36306 CAF SIX # ****ADS STINKS****
020947,000506: 16,2707 54066 TS CTR # POLICY REQUESTED. ALSO, SET CTR -1 HERE
020948,000507:
020949,000508: 16,2710 50065 TESTPOL INDEX REL # PICK UP NEXT POLICY AS LOCATED RELATIVE
020950,000509: 16,2711 32754 CAF PPOLTABL # TO PPOLTABL BY REL.
020951,000510: 16,2712 70103 MASK CH6MASK # COMPARE WITH FAILURE BITS
020952,000511: 16,2713 00006 EXTEND
020953,000512: 16,2714 12724 BZF WRITEPOL # THE JETS ARE GOOD, WRITE IN THE CHANNEL
Page 502 |
020955,000514: 16,2715 00006 EXTEND # THE JET(S) HAVE FAILED FOR THIS POLICY
020956,000515: 16,2716 26065 DIM REL # DECREMENT THE INDEX.
020957,000516: 16,2717 10066 CCS CTR # SEE IF ALL POLICIES HAVE BEEN TESTED.
020958,000517: 16,2720 12707 TCF TESTPOL -1 # CTR NOT ZERO, A = CTR -1, DO LOOP AGAIN
020959,000518: 16,2721 00006 EXTEND # CTR ZERO, ALL ALLOWABLE POLICIES FAILED
020960,000519: 16,2722 32753 DCA ABORTADR # PICK UP 2CADR OF ABORTJET
020961,000520: 16,2723 52006 DTCB # AND GO THERE
020962,000521:
020963,000522: 16,2724 50065 WRITEPOL INDEX REL # A GOOD POLICY IS FOUND, PICK IT UP AND
020964,000523: 16,2725 32754 CAF PPOLTABL
020965,000524: 16,2726 00006 EXTEND # BEFORE WRITING IT, CHECK TO SEE IF THE
020966,000525: 16,2727 06006 RXOR 6 # SAME POLICY IS CURRENTLY IN CHANNEL 6.
020967,000526: 16,2730 00006 EXTEND
020968,000527: 16,2731 12747 BZF SAMEJETS # SAME POLICY, GO ADJUST TOFJTCHG
020969,000528: 16,2732 50065 OK2WRITE INDEX REL # DIFFERENT POLICY(CHANNEL 6 WAS ZERO OF A
020970,000529: 16,2733 32754 CAF PPOLTABL # JET FAILED IN LAST POLICY). GET POLICY,
020971,000530: 16,2734 06043 TC WRITEP # GO WRITE IT IN CHANNEL 6 AND RETURN
020972,000531:
020973,000532: 16,2735 10000 CCS A # THE POLICY IS STILL IN A, TEST NUMBER OF
020974,000533: 16,2736 37762 CAF TWO
020975,000534: 16,2737 12741 TCF +2 # JETS(BIT15 ON FOR 4-JET POLICIES) AND
020976,000535: 16,2740 37761 CAF FOUR
020977,000536: 16,2741 00006 EXTEND # MULTIPLY BY TJETSIGN(+/-1) TO GET +/-2,4
020978,000537: 16,2742 71434 MP TJETSIGN
020979,000538: 16,2743 23657 LXCH NO.PJETS # IN L, WHICH IS THEN STORED IN NO-PJETS
020980,000539:
020981,000540: 16,2744 37753 CAF BIT9 # TURN OFF P-AXIS JETS AFTER T6RJPT
020982,000541: 16,2745 55472 TS JTSATCHG
020983,000542:
020984,000543: 16,2746 13374 TCF SKIPTEST # CHECK FOR SKIP.PERHAPS TO DO JETLIST
020985,000544:
020986,000545: 16,2747 33564 SAMEJETS CAF -COM-6.5 # COME HERE TO ADJUST TOFJTCHG BY FACTOR
020987,000546: 16,2750 27475 ADS TOFJTCHG # OF 11.5MS(COMP TIME + MINIMP DELAY) WHEN
020988,000547: 16,2751 12732 TCF OK2WRITE # CURRENT JET POLICY IS TO BE MAINTAINED.
020989,000548:
020990,000549: 16,2752 E6,1471 EBANK= JTSONNOW # WOULD YOU BELIEVE, EBANK = 6
020991,000550: 16,2752 02374 40066 ABORTADR 2CADR ABORTJET # WHERE TO GO WHEN ALL JET POLICIES FAIL
020992,000551: # ................................................................................................................
020993,000552:
020994,000553: # TABLE OF P-AXIS JET POLICIES IS ASSEMBLED HERE TO BE ADDRESSED BY RELATIVE INDEX FROM BASE ADDRESS PPOLTABLE
020995,000554:
020996,000555: # CHANNEL 6 BITS INDEX JETS ON
020997,000556:
020998,000557: 16,2754 00202 PPOLTABL OCTAL 00202 # REL=0 -P NON-FORCE COUPLE 4- 16, 3
020999,000558: 16,2755 00210 OCTAL 00210 # REL=1 -P NON-FORCE COUPLE 3- 11, 16
021000,000559: 16,2756 00050 OCTAL 00050 # REL=2 -P NON-FORCE COUPLE 2- 8, 11
021001,000560: 16,2757 00042 OCTAL 00042 # REL=3 -P NON-FORCE COUPLE 1- 3, 8
021002,000561: 16,2760 00240 OCTAL 00240 # REL=4 NUMBER TWO FORCE COUPLE- 8, 16
021003,000562: 16,2761 00012 OCTAL 00012 # REL=5 -P 2-JET FORCE COUPLE- 3, 11
Page 503 |
021005,000564: 16,2762 40252 OCTAL 40252 # REL=6 -P 4-JET POLICY- 3, 8, 11, 16
021006,000565:
021007,000566: 16,2763 00101 OCTAL 00101 # REL=7 +P NON-FORCE COUPLE 4- 7, 4
021008,000567: 16,2764 00021 OCTAL 00021 # REL=8D +P NON-FORCE COUPLE 3- 12, 7
021009,000568: 16,2765 00024 OCTAL 00024 # REL=9D +P NON-FORCE COUPLE 2- 15, 12
021010,000569: 16,2766 00104 OCTAL 00104 # REL=10D +P NON-FORCE COUPLE 1- 4, 15
021011,000570: 16,2767 00005 OCTAL 00005 # REL=11D NUMBER TWO FORCE COUPLE- 15, 7
021012,000571: 16,2770 00120 OCTAL 00120 # REL=12D +P 2-JET FORCE COUPLE- 4, 12
021013,000572: 16,2771 40125 OCTAL 40125 # REL=13D +P 4-JET POLICY- 4, 15, 12, 7
021014,000573:
021015,000574: # ................................................................................................................
021016,000575:
021017,000576: 16,2772 37767 JETSOFF CAF ZERO
021018,000577: 16,2773 55611 TS TP
021019,000578: 16,2774 55475 TS TOFJTCHG
021020,000579: 16,2775 06043 TC WRITEP # TURN ON P JETS USING T6JOB SUBROUTINE
021021,000580: 16,2776 15733 TCF RESUME
021022,000581: # P-AXIS URGENCY FUNCTION CALCULATION
021023,000582:
021024,000583: # (NOTE -- M13 = 1 IDENTICALLY IMPLIES NULL MULTIPLICATION.)
021025,000584:
021026,000585: 16,2777 30033 PURGENCY CA CDUY # P-ERROR CALCULATION
021027,000586: 16,3000 00006 EXTEND
021028,000587: 16,3001 20767 MSU CDUYD # CDU VALUE - ANGLE DESIRED (Y-AXIS)
021029,000588: 16,3002 00006 EXTEND
021030,000589: 16,3003 71404 MP M11 # (CDUY-CDUYD)M11 SCALED AT PI RADIANS
021031,000590: 16,3004 57411 XCH E # SAVE FIRST TERM (OF TWO)
021032,000591: 16,3005 30032 CA CDUX # THIRD COMPONENT
021033,000592: 16,3006 00006 EXTEND
021034,000593: 16,3007 20766 MSU CDUXD # CDU VALUE - ANGLE DESIRED (X-AXIS)
021035,000594: # EXTEND
021036,000595: # MP M13
021037,000596: 16,3010 27411 ADS E # SAVE SUM OF TERMS, NO OVERFLOW EVR
021038,000597:
021039,000598: 16,3011 55466 TS PERROR # SAVE P ERROR FOR DISPLAY
021040,000599:
021041,000600: 16,3012 40774 CS OMEGAPD # THIS CODING IS COMMON TO BOTH LM DAP AND
021042,000601: 16,3013 61415 AD OMEGAP # SPS-BACKUP MODE.
021043,000602: 16,3014 55422 TS EDOTP # EDOTP = OMEGAP - OMEGAPD AT PI/4 RAD/SEC
021044,000603:
Page 504 |
021046,000605: # P-AXIS SPS BACK-UP TEST AND SPS BACK-UP CONTROL LOGIC:
021047,000606:
021048,000607: 16,3015 30077 CAE DAPBOOLS # BIT15 = 0 FOR SPS BACK-UP
021049,000608: 16,3016 00006 EXTEND
021050,000609: 16,3017 63074 BZMF NOBACKUP # DAPBOOLS IS NEVER +0.
021051,000610:
021052,000611: # SPS BACK-UP CONTROL LOGIC:
021053,000612:
021054,000613: 16,3020 37743 CAF SLOPEMP
021055,000614: 16,3021 00006 EXTEND
021056,000615: 16,3022 71411 MP E
021057,000616: 16,3023 61422 AD EDOTP
021058,000617: 16,3024 00006 EXTEND
021059,000618: 16,3025 63061 BZMF PLUSDP
021060,000619:
021061,000620: 16,3026 33072 CAF NEGDP
021062,000621:
021063,000622: 16,3027 54063 GCOMPER TS ITEMP3
021064,000623: 16,3030 31422 CAE EDOTP
021065,000624: 16,3031 00006 EXTEND
021066,000625: 16,3032 73073 MP ACONSTP
021067,000626: 16,3033 10000 CCS A
021068,000627: 16,3034 13067 TCF LIMPRATE
021069,000628: 16,3035 13037 TCF +2
021070,000629: 16,3036 13067 TCF LIMPRATE
021071,000630: 16,3037 22000 LXCH A
021072,000631: 16,3040 00006 EXTEND
021073,000632: 16,3041 70000 SQUARE
021074,000633: 16,3042 61411 LIMSQP AD E
021075,000634: 16,3043 63072 AD NEGDP
021076,000635: 16,3044 00006 EXTEND
021077,000636: 16,3045 62772 BZMF JETSOFF
021078,000637: 16,3046 33071 CAF 50MS/625
021079,000638: 16,3047 55611 TS TP
021080,000639: 16,3050 55475 TS TOFJTCHG
021081,000640: 16,3051 37745 CAF NEGMAX
021082,000641: 16,3052 55461 TS NJET
021083,000642: 16,3053 10063 CCS ITEMP3
021084,000643: 16,3054 37763 CAF BIT1
021085,000644: 16,3055 13057 TCF +2
021086,000645: 16,3056 47763 CS BIT1
021087,000646: 16,3057 55434 TS TJETSIGN
021088,000647: 16,3060 12642 TCF PJETSLEC
021089,000648: 16,3061 41411 PLUSDP CS E
021090,000649: 16,3062 57411 XCH E
021091,000650: 16,3063 41422 CS EDOTP
021092,000651: 16,3064 57422 XCH EDOTP
021093,000652: 16,3065 43072 CS NEGDP
021094,000653: 16,3066 13027 TCF GCOMPER
021095,000654: 16,3067 37747 LIMPRATE CAF QUARTER
Page 505 |
021097,000656: 16,3070 13042 TCF LIMSQP
021098,000657: 16,3071 00120 50MS/625 OCTAL 00120 # TJET = 50 MS IN SPS BACKUP MODE
021099,000658: 16,3072 77644 NEGDP DEC -0.00555
021100,000659: 16,3073 7743 SLOPEMP EQUALS POSMAX
021101,000660: 16,3073 00007 ACONSTP OCTAL 00007
021102,000661:
Page 506 |
021104,000663: # CONTINUATION OF P-AXIS RCS AUTOPILOT:
021105,000664:
021106,000665: 16,3074 37746 NOBACKUP CAF BIT14
021107,000666: 16,3075 55716 TS SIGNTAG # INDICATES EDOT POSITIVE FOR TIME BEING
021108,000667: 16,3076 11422 CCS EDOTP
021109,000668: 16,3077 13111 TCF SCALEDOT
021110,000669: 16,3100 13121 TCF PTJETLAW
021111,000670: 16,3101 13103 TCF REFLECT
021112,000671: 16,3102 13121 TCF PTJETLAW
021113,000672: 16,3103 55407 REFLECT TS EDOT
021114,000673: 16,3104 47746 CS BIT14
021115,000674: 16,3105 55716 TS SIGNTAG # INDICATES EDOT REALLY NEGATIVE
021116,000675: 16,3106 41466 CS PERROR
021117,000676: 16,3107 55411 TS E
021118,000677: 16,3110 31407 CAE EDOT # EDOT SCALED AT 45 DEG/SEC
021119,000678: 16,3111 67763 SCALEDOT AD BIT1
021120,000679: 16,3112 00006 EXTEND
021121,000680: 16,3113 77761 MP BIT3
021122,000681: 16,3114 00006 EXTEND
021123,000682: 16,3115 13120 BZF PTJETLAW -1
021124,000683: 16,3116 37743 CAF POSMAX
021125,000684: 16,3117 13121 TCF PTJETLAW
021126,000685: 16,3120 30001 CAE L # EDOT NOW SCALED AT 11.25 DEG/SEC
021127,000686: 16,3121 55407 PTJETLAW TS EDOT
021128,000687: 16,3122 00006 EXTEND
021129,000688: 16,3123 71407 MP EDOT
021130,000689: 16,3124 55412 TS EDOT(2)
021131,000690: 16,3125 37771 CAF NEGONE
021132,000691: 16,3126 55434 TS TJETSIGN
021133,000692: 16,3127 37745 CAF NEGMAX
021134,000693: 16,3130 55461 TS NJET # INDICATES 2 JETS ONLY FOR TIME BEING
021135,000694: 16,3131 31412 CAE EDOT(2)
021136,000695: 16,3132 00006 EXTEND
021137,000696: 16,3133 71440 MP 1/2JTSP
021138,000697: 16,3134 00006 EXTEND
021139,000698: 16,3135 77746 MP BIT14
021140,000699: 16,3136 61411 AD E
021141,000700: 16,3137 00006 EXTEND
021142,000701: 16,3140 60375 SU DB
021143,000702: 16,3141 55444 TS FCT1
021144,000703: 16,3142 00006 EXTEND
021145,000704: 16,3143 63202 BZMF 5,6,7,8
021146,000705: 16,3144 63555 AD -5DEG+1
021147,000706: 16,3145 00006 EXTEND # IN ERROR BY OVER 5 DEG WITH THE
021148,000707: 16,3146 63153 BZMF +5 # RATE IN THE OTHER DIRECTION
021149,000708: 16,3147 41407 CS EDOT
021150,000709: 16,3150 63757 AD HULLSLIM # 0.5 DEG/SEC SCALED AT 11.25 DEG/SEC
021151,000710: 16,3151 00006 EXTEND
021152,000711: 16,3152 63177 BZMF MULTIJET
021153,000712: 16,3153 31407 CAE EDOT
021154,000713:
Page 507 |
021156,000715: 16,3154 00006 EXTEND
021157,000716: 16,3155 71440 MP 1/2JTSP
021158,000717: 16,3156 55510 TS TERMA
021159,000718: 16,3157 43563 CS 1.5CSP16
021160,000719: 16,3160 61510 AD TERMA
021161,000720: 16,3161 00006 EXTEND
021162,000721: 16,3162 63165 BZMF +3
021163,000722: 16,3163 37746 MAXPTJET CAF BIT14
021164,000723: 16,3164 13356 TCF FINDSIGN
021165,000724: 16,3165 41444 CS FCT1
021166,000725: 16,3166 61632 AD DBMNMPAX
021167,000726: 16,3167 00006 EXTEND
021168,000727: 16,3170 63232 BZMF PMBR
021169,000728: 16,3171 31510 CAE TERMA
021170,000729: 16,3172 63554 AD -35AT16
021171,000730: 16,3173 00006 EXTEND
021172,000731: 16,3174 63342 BZMF ZONE4
021173,000732: 16,3175 63556 AD 38.7AT16
021174,000733: 16,3176 13316 TCF SCALTJET
021175,000734: 16,3177 37743 MULTIJET CAF POSMAX
021176,000735: 16,3200 55461 TS NJET
021177,000736: 16,3201 13163 TCF MAXPTJET
021178,000737: 16,3202 31412 5,6,7,8 CAE EDOT(2)
021179,000738: 16,3203 00006 EXTEND
021180,000739: 16,3204 72234 MP .5ACCMIN
021181,000740: 16,3205 61411 AD E
021182,000741: 16,3206 60375 AD DB
021183,000742: 16,3207 61632 AD DBMNMPAX
021184,000743: 16,3210 00006 EXTEND
021185,000744: 16,3211 63213 BZMF +2
021186,000745: 16,3212 12772 ZONE5 TCF JETSOFF
021187,000746: 16,3213 43552 +2 CS RATEMAX
021188,000747: 16,3214 61407 AD EDOT
021189,000748: 16,3215 00006 EXTEND
021190,000749: 16,3216 63220 BZMF ZONES6,7
021191,000750: 16,3217 12772 ZONE8 TCF JETSOFF
021192,000751: 16,3220 37763 ZONES6,7 CAF BIT1
021193,000752: 16,3221 55434 TS TJETSIGN
021194,000753: 16,3222 41407 CS EDOT
021195,000754: 16,3223 00006 EXTEND
021196,000755: 16,3224 71440 MP 1/2JTSP
021197,000756: 16,3225 55510 TS TERMA
021198,000757: 16,3226 41444 CS FCT1
021199,000758: 16,3227 61411 AD E
021200,000759: 16,3230 61411 AD E
021201,000760: 16,3231 61632 AD DBMNMPAX
021202,000761: 16,3232 55444 PMBR TS FCT1 # FCT1 NOW HOLDS -FCT5 OR -FCT2
021203,000762: 16,3233 31440 CAE 1/2JTSP
021204,000763: 16,3234 00006 EXTEND
021205,000764: 16,3235 77746 MP BIT14
021206,000765:
Page 508 |
021208,000767: 16,3236 62234 AD .5ACCMIN
021209,000768: 16,3237 55446 TS DENOM
021210,000769: 16,3240 00006 EXTEND
021211,000770: 16,3241 73553 MP RATEMAX2
021212,000771: 16,3242 61444 AD FCT1
021213,000772: 16,3243 00006 EXTEND
021214,000773: 16,3244 63322 BZMF MISSROOT
021215,000774: 16,3245 31440 CAE 1/2JTSP
021216,000775: 16,3246 00006 EXTEND
021217,000776: 16,3247 71440 MP 1/2JTSP # (1/2JTSP)(1/2JTSP) SCALED AT 2(16)/PI(2)
021218,000777: 16,3250 52073 DXCH RUPTREG3 # DP PRODUCT STORED IN RUPTREG3,RUPTREG4
021219,000778: 16,3251 31444 CAE FCT1 # SCALED AT PI
021220,000779: 16,3252 22007 ZL
021221,000780: 16,3253 00006 EXTEND
021222,000781: 16,3254 11446 DV DENOM # (FCT1/DENOM) IN A SCALED AT PI(2)/2(8).
021223,000782: 16,3255 54071 TS RUPTREG2 # (FCT1/DENOM) STORED IN RUPTREG2
021224,000783: 16,3256 00006 EXTEND
021225,000784: 16,3257 70073 MP RUPTREG4 # (FCT1/DENOM)(LOWER PART OF (1/2JTSP)(2))
021226,000785: 16,3260 54073 TS RUPTREG4 # IS STORED IN RUPTREG4
021227,000786: 16,3261 37767 CAF ZERO
021228,000787: 16,3262 56072 XCH RUPTREG3
021229,000788: 16,3263 00006 EXTEND
021230,000789: 16,3264 70071 MP RUPTREG2 # PRODUCT OF SP FCT1/DENOM AND DP
021231,000790: 16,3265 20073 DAS RUPTREG3 # (1/2JSP)(2) IS STORED DP IN RUPTREG3 AND
021232,000791: 16,3266 00006 EXTEND # RUPTREG4 AT A SCALING OF 2(8). PRODUCT
021233,000792: 16,3267 30073 DCA RUPTREG3 # IS ALSO STORED IN ITEMP3 AND ITEMP4.
021234,000793: 16,3270 52064 DXCH ITEMP3
021235,000794: 16,3271 43563 CS 1.5CSP16
021236,000795: 16,3272 61510 AD TERMA # SCALED AT 2(4)
021237,000796: 16,3273 00006 EXTEND
021238,000797: 16,3274 70000 SQUARE # (TERMA-1.5CSP)(2) IN A,L SCALED AT 2(8)
021239,000798: 16,3275 20073 DAS RUPTREG3 # DP EXPRESSION STORED IN RUPTREG3 AND
021240,000799: 16,3276 30072 CAE RUPTREG3 # RUPTREG4. IF NEG, TP EXCEEDS 1.5CSP.
021241,000800: 16,3277 00006 EXTEND
021242,000801: 16,3300 13302 BZF TESTONL1 # IF RUPTREG3 ZERO,MUST TEST ON RUPTREG4
021243,000802: 16,3301 13303 TCF TESTONL1 +1
021244,000803:
021245,000804: 16,3302 30073 TESTONL1 CAE RUPTREG4
021246,000805: 16,3303 00006 EXTEND
021247,000806: 16,3304 63163 BZMF MAXPTJET
021248,000807:
021249,000808: 16,3305 43560 MINTJCHK CS PTJMINT6 # 11.5 MS SCALED AT 16. (4MS ADDED TO TMIN
021250,000809: 16,3306 61510 AD TERMA # TO PREVENT COMPUTED TP LESS THAN TMIN)
021251,000810: 16,3307 00006 EXTEND
021252,000811: 16,3310 63326 BZMF LASTTEST # LASTTEST TESTS FOR TP LESS THAN MIN IMP.
021253,000812: 16,3311 00006 ROOTNEXT EXTEND
021254,000813: 16,3312 40064 DCS ITEMP3 # DP NUMBER SCALED AT 2(8) TO BE ENTERED
021255,000814: 16,3313 05270 TC IBNKCALL # SQUARE ROOT SUBROUTINE CALL.
021256,000815: 16,3314 54525 CADR DAPSQRT
021257,000816: 16,3315 61510 SUMTJ AD TERMA
021258,000817:
Page 509 |
021260,000819: 16,3316 60000 SCALTJET DOUBLE
021261,000820: 16,3317 00006 EXTEND
021262,000821: 16,3320 73576 MP 25/32
021263,000822: 16,3321 13356 TCF FINDSIGN
021264,000823: 16,3322 33551 MISSROOT CAF RATEMAX+ # RATEMAX+ = RATEMAX+0.6DEGREES/SECOND
021265,000824: 16,3323 00006 EXTEND
021266,000825: 16,3324 71440 MP 1/2JTSP
021267,000826: 16,3325 13315 TCF SUMTJ
021268,000827: 16,3326 00006 LASTTEST EXTEND
021269,000828: 16,3327 30064 DCA ITEMP3
021270,000829: 16,3330 52073 DXCH RUPTREG3
021271,000830: 16,3331 43560 CS PTJMINT6 # 11.5 MS SCALED AT 16
021272,000831: 16,3332 61510 AD TERMA
021273,000832: 16,3333 00006 EXTEND
021274,000833: 16,3334 70000 SQUARE
021275,000834: 16,3335 20073 DAS RUPTREG3 # DP EXPRESSION STORED IN RUPTREG3 AND
021276,000835: 16,3336 30072 CAE RUPTREG3 # RUPTREG4. IF POS, TP LESS THAN MIN IMP
021277,000836: 16,3337 00006 EXTEND
021278,000837: 16,3340 13370 BZF TESTONL2 # IF RUPTREG3 ZERO, MUST TEST ON RUPTREG4
021279,000838: 16,3341 13371 TCF TESTONL2 +1
021280,000839: 16,3342 31407 ZONE4 CAE EDOT # IF EDOT IS ZERO IN ZONE4, NO JETS FIRED
021281,000840: 16,3343 00006 EXTEND
021282,000841: 16,3344 12772 BZF JETSOFF
021283,000842: 16,3345 31716 CAE SIGNTAG
021284,000843: 16,3346 00006 EXTEND
021285,000844: 16,3347 63352 BZMF +3
021286,000845: 16,3350 43561 CS .1DPS
021287,000846: 16,3351 13353 TCF +2
021288,000847: 16,3352 33561 CA .1DPS
021289,000848: 16,3353 60774 AD OMEGAPD
021290,000849: 16,3354 55415 TS OMEGAP
021291,000850: 16,3355 33560 CAF PTJMINT6
021292,000851: 16,3356 55611 FINDSIGN TS TP
021293,000852: 16,3357 31716 CAE SIGNTAG # NEVER ZERO
021294,000853: 16,3360 00006 EXTEND
021295,000854: 16,3361 63363 BZMF +2 # EQUIVALENT TO BRANCH ON MINUS
021296,000855: 16,3362 13365 TCF +3
021297,000856: 16,3363 41434 CS TJETSIGN
021298,000857: 16,3364 55434 TS TJETSIGN
021299,000858: 16,3365 31611 CAE TP # LOAD TOFJTCHG
021300,000859: 16,3366 55475 TS TOFJTCHG
021301,000860: 16,3367 12642 TCF PJETSLEC # AND GO SELECT GOOD POLICY
021302,000861:
021303,000862: 16,3370 30073 TESTONL2 CAE RUPTREG4
021304,000863: 16,3371 00006 EXTEND
021305,000864: 16,3372 63311 BZMF ROOTNEXT
021306,000865: 16,3373 12772 TCF JETSOFF
021307,000866: # TORQUE VECTOR RECONSTRUCTION FOR THE P-AXIS
021308,000867:
021309,000868: 16,3374 41475 SKIPTEST CS TOFJTCHG # COME HERE FROM PJETSLEC TO TEST P SKIP
Page 510 |
021311,000870: 16,3375 63562 AD +1.5CSP # USE 150 MS. TO TEST FOR A PAXIS SKIP.
021312,000871: 16,3376 00006 EXTEND
021313,000872: 16,3377 65733 BZMF RESUME # TP GREATER THAN 150MS THEN DO NORMAL P.
021314,000873: 16,3400 33604 CA PSKIPADR # SET UP A P AXIS SKIP.
021315,000874: 16,3401 55652 TS PJUMPADR # GOES TO JTLST FROM HERE
021316,000875:
Page 511 |
021318,000877: # PROGRAM NAME JTLST
021319,000878:
021320,000879: # WRITTEN BY DICK GRAN ( GAEC - CALL LR-5-1331 AREA CODE 516 )
021321,000880:
021322,000881: # THIS PROGRAM IN CONJUNCTION WITH T6-RUPT PROGRAMS ALLOWS JETS TO BE
021323,000882: # TURNED OFF AT THE COMPUTED OFF TIME. THIS TASK IS ACCOMPLISHED BY USING
021324,000883: # A JET LIST WHICH IS SET UP AS FOLLOWS ....
021325,000884:
021326,000885: # JET OFF TIMES DESIRED JETS AT THIS TIME
021327,000886:
021328,000887: # TIME6 T6NEXTJT
021329,000888: # T6NEXT T6NEXTJT +1
021330,000889: # T6NEXT +1 T6NEXTJT +2
021331,000890:
021332,000891: # THESE LOCATIONS RECEIVE THE JET ON TIMES SCALED AS T6 (.625 MS/BIT). AS
021333,000892: # AN EXAMPLE OF HOW THE PROGRAM WORKS, CONSIDER THE FOLLOWING PROBLEM...
021334,000893: # 50 MS AGO A P AXIS JET COMPUTATION DECIDED JETS 12 AND 15 SHOULD BE
021335,000894: # ON FOR 120 MS. AFTER 120 MS IT WAS FURTHER DECIDED THAT JETS 12,15
021336,000895: # 16 AND 3 SHOULD BE ON UNTIL THE NEXT P AXIS COMPUTATION (WHICH
021337,000896: # OCCURS IN 200 MS AFTER THE LAST P AXIS JET COMPUTATION). AT THE
021338,000897: # CURRENT TIME THE QR AXES COMPUTES THAT JET 2 SHOULD BE ON FOR 65 MS
021339,000898: # AND JET 9 SHOULD BE ON FOR 72.5 MS. AFTER 72.5 MS NO FURTHER QR JETS
021340,000899: # SHOULD BE ON. THIS SEQUENCE OF JETS CORRESPONDS TO A +P ROTATION
021341,000900: # WITH A SIMULTANEOUS +Y AND -Z TRANSLATION AND ALSO A -V (DIAGONAL)
021342,000901: # ROTATION ABOUT THE Y AND Z AXES . NOTE JET 9 IS ON LONGER THAN JET 2
021343,000902: # WHICH WOULD BE THE CASE IF THE Q-R JETS HAD BEEN ON BEFORE. IN THIS
021344,000903: # CASE, THE FOLLOWING SEQUENCE OF EVENTS OCCURRED AT THE P AXIS
021345,000904: # COMPUTATION .....
021346,000905:
021347,000906: # 1) CHANNEL 6 WAS LOADED WITH OCTAL 24 TO TURN ON JETS 12 AND 15
021348,000907:
021349,000908: # 2) TIME 6 WAS LOADED WITH 120 MS
021350,000909:
021351,000910: # 3) T6NEXT WAS LOADED WITH +0 ( THIS INDICATES THE CONTENTS OF
021352,000911: # T6NEXT ARE NOT TO BE USED IN THE T6JOB PROGRAM)
021353,000912:
021354,000913: # 4) T6NEXTJT WAS LOADED WITH OCTAL 226 TO CAUSE JETS 3,12,15
021355,000914: # AND 16 TO GO ON WHEN T6 HAS BEEN DECREMENTED TO -0.
021356,000915:
021357,000916: # 5) THE T6 CLOCK WAS TURNED ON TO BEGIN COUNTING DOWN TIME 6
021358,000917:
021359,000918: # AT THE QR AXES JET LIST COMPUTATION, THE T6 CLOCK AS BEEN REDUCED
021360,000919: # TO 70 MS (120-50) THEREFORE THE FOLLOWING OCCURS ....
021361,000920:
021362,000921: # 1) CHANNEL 5 IS LOADED WITH OCTAL 40022 TO TURN ON JETS 2 AND
021363,000922: # 9. ( THIS IS PERFORMED IN THE SECTION CALLED RATE)
021364,000923:
021365,000924: # 2) THE BANK IS SWITCHED FROM THE QR BANK TO THE P BANK (WHERE
021366,000925: # THE JET LIST IS STORED) AS FOLLOWS ....
021367,000926: # DCA JTLSTADR
Page 512 |
021369,000928: # DTCB ( IN THE QR AXES ONLY)
021370,000929:
021371,000930: # 3) THE DESIRED JET ON TIME FOR JET 2 IS COMPARED WITH T6.
021372,000931:
021373,000932: # 4) SINCE T6 IS GREATER THAN THE DESIRED JET ON TIME FOR JET 2,
021374,000933: # T6 IS CHANGED TO 65 MS AND T6NEXT IS LOADED WITH 5 MS.
021375,000934: # ( THE DIFFERENCE BETWEEN JET ON TIME AND T6)
021376,000935:
021377,000936: # 5) T6NEXTJT IS CHANGED TO OCTAL 40020 , AND THE FORMER CONTENTS
021378,000937: # OF T6NEXTJT IS PLACED IN T6NEXTJT +1. THIS CAUSES JET 9 TO
021379,000938: # REMAIN ON AND JET 2 TO BE TURNED OFF WHEN T6 IS DECREMENTED
021380,000939: # TO ZERO. IT ALSO ASSIGNS THE P AXIS JET CODE TO THE
021381,000940: # TIME IN T6NEXT.
021382,000941:
021383,000942: # 6) THE CONTENTS OF T6NEXT (5MS) IS COMPARED WITH THE
021384,000943: # DIFFERENCE BETWEEN THE TWO QR AXIS JET ON TIMES. SINCE HERE
021385,000944: # THE DIFFERENCE IS 7.5 MS WHICH IS GREATER THAN THE CONTENTS
021386,000945: # OF T6NEXT (5MS), THE ADDITIONAL QR AXIS RUPT OCCURS AFTER
021387,000946: # THE RUPT STORED IN T6NEXT. THUS 2.5 MS (7.5 - 5) IS STORED
021388,000947: # IN T6NEXT +1
021389,000948:
021390,000949: # 7) T6NEXTJT +2 IS MADE EQUAL TO THE JETS WHICH ARE TO BE ON
021391,000950: # AFTER THE 75 MS HAS ELAPSED (IN THE CASE HERE IT IS ZERO)
021392,000951:
021393,000952: # THUS FOR THE EXAMPLE CONSIDERED THE JET LIST IS ....
021394,000953:
021395,000954: # JET TIMES JET CODES
021396,000955: # TIME6 = 65MS. T6NEXTJT = 40020 SIGN IS NEGATIVE TO
021397,000956: # T6NEXT = 5 MS. T6NEXTJT +1 = 00226 INDICATES Q-R AXIS
021398,000957: # T6NEXT +1 =2.5 MS. T6NEXTJT +2=, 40000 JETS,POSITIVE TO
021399,000958: # INDICATE P JETS.
021400,000959: # CHANNEL 6 = 00024
021401,000960: # CHANNEL 5 = 00022 SIGN IS LOST ONCE THE JET CODE IS LOADED
021402,000961:
021403,000962: # THIS EXAMPLE AND THE CODING SHOULD ALLOW ONE TO UNDERSTAND THE JET LIST.
021404,000963: # ONE FURTHER COMMENT IS IN ORDER - IF THE JET ON TIMES EXCEED 150 MS,
021405,000964: # THE JETS ARE TURNED ON AND THE JET LIST IS NOT ENTERED. IN 100 MS
021406,000965: # A NEW JET ON TIME IS COMPUTED WHICH WILL RESET THE JETS IF NEEDED.
021407,000966: # WHEN THE JET ON TIME IS LESS THAN 150MS, THE JET LIST IS LOADED AS
021408,000967: # DISCUSSED ABOVE AND THE TJET COMPUTATION IS SKIPPED NEXT TIME, THAT IS
021409,000968: # THE AXIS IS NOT REPEATED AGAIN UNTIL 200 MS HAS ELAPSED. THIS INSURES
021410,000969: # THAT WHEN A NEW JET TIME IS COMPUTED THE JET LIST WILL NOT HAVE
021411,000970: # A TIME STORED WHICH CORRESPONDS TO THE AXIS JUST COMPLETED.
021412,000971:
021413,000972: 16,3402 10031 JTLST CCS TIME6 # TEST CURRENT STATE OF T6.
021414,000973: 16,3403 13426 TCF T6ONNOW # IF T6 IS + THEN CLOCK IS ON.
021415,000974: 16,3404 13410 TCF T6OFFNOW # IF T6 IS + ZERO THEN T6 MUST BE OFF
021416,000975: 16,3405 13426 TCF T6ONNOW # SINCE ALL DINC S LEAD TO MINUS ZERO.
021417,000976: 16,3406 06017 TC T6JOB # WE ARE IN THE UNIQUE STATE WHICH SAYS
021418,000977: 16,3407 13402 TCF JTLST # A T6 INTERRUPT IS WAITING.DO T6 JOB.
021419,000978:
Page 513 |
021421,000980: 16,3410 31475 T6OFFNOW CA TOFJTCHG
021422,000981: 16,3411 54031 TS TIME6 # WE ARE HERE IF T6 CLOCK IS OFF.
021423,000982: 16,3412 37745 CA BIT15
021424,000983: 16,3413 00006 EXTEND # TURN CLOCK PULSE FOR T6 ON AND LOAD T6.
021425,000984: 16,3414 05013 WOR 13
021426,000985: 16,3415 31472 CA JTSATCHG
021427,000986: 16,3416 55004 TS T6NEXTJT
021428,000987: 16,3417 37767 CA ZERO
021429,000988: 16,3420 57474 XCH ADDTLT6 # SET UP NEXT T6 INTERRUPT AFTER THE
021430,000989: 16,3421 55002 TS T6NEXT # CURRENT ONE IS COMPLETE. ADDTLT6 MAY
021431,000990: 16,3422 37767 CA ZERO # BE ZERO IN WHICH CASE NO MORE T6.
021432,000991: 16,3423 57473 XCH ADDT6JTS
021433,000992: 16,3424 55005 TS T6NEXTJT +1
021434,000993: 16,3425 15733 TCF RESUME
021435,000994: 16,3426 11002 T6ONNOW CCS T6NEXT # HERE IF T6 IS NOW ON. SEE IF T6NEXT IS
021436,000995: 16,3427 13507 TCF T6NXT=+ # ZERO OR NOT.
021437,000996: 16,3430 41475 CS TOFJTCHG # T6NEXT IS NEVER NEGATIVE.
021438,000997: 16,3431 60031 AD TIME6 # A CONTAINS T6 - TJET.
021439,000998: 16,3432 10000 CCS A # TEST SIGN OF A (SAVING THE DIFFERENCE).
021440,000999: 16,3433 67763 AD ONE
021441,001000: 16,3434 13451 TCF JTSFIRST # TJET IS LESS THAN T6.
021442,001001: 16,3435 13436 NOOP # IF DIFFERENCE I SNEGATIVE OR ZERO
021443,001002: 16,3436 67763 AD ONE # WE ADD 1 SO ZERO CAN NEVER BE IN LIST.
021444,001003: 16,3437 55002 TS T6NEXT
021445,001004: 16,3440 31472 CA JTSATCHG
021446,001005: 16,3441 55005 TS T6NEXTJT +1 # BEGIN SETTING UP JETS IN THE JET LIST.
021447,001006: 16,3442 37767 CA ZERO
021448,001007: 16,3443 57474 XCH ADDTLT6
021449,001008: 16,3444 55003 TS T6NEXT +1
021450,001009: 16,3445 37767 CA ZERO
021451,001010: 16,3446 57473 XCH ADDT6JTS
021452,001011: 16,3447 55006 TS T6NEXTJT +2
021453,001012: 16,3450 15733 TCF RESUME
021454,001013: 16,3451 55002 JTSFIRST TS T6NEXT # HERE IF TJET IS LESS THAN T6.
021455,001014: 16,3452 31475 CA TOFJTCHG
021456,001015: 16,3453 54031 TS TIME6 # SWITCH T6 AND TJET)
021457,001016: 16,3454 31472 CA JTSATCHG
021458,001017: 16,3455 57004 XCH T6NEXTJT # BEGIN SWITCHING JET WORDS IN JET LIST.
021459,001018: 16,3456 55005 TS T6NEXTJT +1
021460,001019: 16,3457 41474 CS ADDTLT6
021461,001020: 16,3460 00006 EXTEND
021462,001021: 16,3461 15733 BZF RESUME # SEE IF AN ADDITIONAL (QR) JET TIME IS
021463,001022: 16,3462 61002 AD T6NEXT # REQUIRED.
021464,001023: 16,3463 10000 CCS A # IF AN ADDITIONAL T6 IS NEEDEN, COMPARE
021465,001024: 16,3464 67763 AD ONE # IT WITH THE CONTENTS OF T6NEXT.
021466,001025: 16,3465 13476 TCF +11
021467,001026: 16,3466 13467 NOOP
021468,001027: 16,3467 67763 AD ONE
021469,001028: 16,3470 55003 TS T6NEXT +1
021470,001029: 16,3471 37767 CA ZERO
Page 514 |
021472,001031: 16,3472 55474 TS ADDTLT6
021473,001032: 16,3473 57473 XCH ADDT6JTS
021474,001033: 16,3474 55006 TS T6NEXTJT +2
021475,001034: 16,3475 15733 TCF RESUME
021476,001035: 16,3476 55003 +11 TS T6NEXT +1
021477,001036: 16,3477 37767 CA ZERO
021478,001037: 16,3500 57474 XCH ADDTLT6
021479,001038: 16,3501 55002 TS T6NEXT
021480,001039: 16,3502 37767 CA ZERO
021481,001040: 16,3503 57473 XCH ADDT6JTS
021482,001041: 16,3504 57005 XCH T6NEXTJT +1
021483,001042: 16,3505 55006 TS T6NEXTJT +2
021484,001043: 16,3506 15733 TCF RESUME
021485,001044: 16,3507 41475 T6NXT=+ CS TOFJTCHG
021486,001045: 16,3510 60031 AD TIME6
021487,001046: 16,3511 61002 AD T6NEXT
021488,001047: 16,3512 10000 CCS A
021489,001048: 16,3513 67763 AD ONE
021490,001049: 16,3514 13523 TCF +7
021491,001050: 16,3515 13516 NOOP
021492,001051: 16,3516 67763 AD ONE
021493,001052: 16,3517 55003 TS T6NEXT +1
021494,001053: 16,3520 31472 CA JTSATCHG
021495,001054: 16,3521 55006 TS T6NEXTJT +2
021496,001055: 16,3522 15733 TCF RESUME
021497,001056: 16,3523 54001 +7 TS L
021498,001057: 16,3524 41475 CS TOFJTCHG
021499,001058: 16,3525 60031 AD TIME6
021500,001059: 16,3526 10000 CCS A
021501,001060: 16,3527 67763 AD ONE
021502,001061: 16,3530 13540 TCF JTSB4T6
021503,001062: 16,3531 13532 NOOP
021504,001063: 16,3532 67763 AD ONE
021505,001064: 16,3533 55002 TS T6NEXT
021506,001065: 16,3534 30001 CA L
021507,001066: 16,3535 55003 TS T6NEXT +1
021508,001067: 16,3536 31472 CA JTSATCHG
021509,001068: 16,3537 13546 TCF +7
021510,001069: 16,3540 57002 JTSB4T6 XCH T6NEXT
021511,001070: 16,3541 55003 TS T6NEXT +1
021512,001071: 16,3542 31475 CA TOFJTCHG
021513,001072: 16,3543 54031 TS TIME6
021514,001073: 16,3544 31472 CA JTSATCHG
021515,001074: 16,3545 57004 XCH T6NEXTJT
021516,001075: 16,3546 57005 +7 XCH T6NEXTJT +1
021517,001076: 16,3547 57006 XCH T6NEXTJT +2
021518,001077: 16,3550 15733 TCF RESUME
021519,001078: # T-JET LAW FIXED CONSTANTS
021520,001079:
021521,001080: 16,3551 36115 RATEMAX+ DEC 0.94222
Page 515 |
021523,001082: 16,3552 34344 RATEMAX DEC 0.88889
021524,001083: 16,3553 31221 RATEMAX2 DEC 0.79012
021525,001084: 16,3554 77733 -35AT16 DEC -0.00219
021526,001085: 16,3555 77071 -5DEG+1 DEC -.02772 # -5 DEGREES + CCSBIT SCALED AT PI RADIANS
021527,001086: 16,3556 00050 38.7AT16 DEC 0.00242
021528,001087: 16,3557 00010 TMINAT16 DEC 0.00047
021529,001088: 16,3560 00014 PTJMINT6 DEC 0.00073
021530,001089: 16,3561 00044 .1DPS DEC 0.00222
021531,001090: 16,3562 00360 +1.5CSP DEC +0.01465
021532,001091: 16,3563 00232 1.5CSP16 DEC 0.00938
021533,001092: 16,3564 77753 -COM-6.5 DEC -.00122 # -SUM OF 5MS COMP TIME AND 6.5MS DELAY
021534,001093: 16,3565 00013 14-TJMIN DEC 11 B-14
021535,001094: 16,3566 77537 NEGCSP1 DEC -.00977
021536,001095: 16,3567 37775 MS30P OCTAL 37775
021537,001096: 16,3570 34362 0.88975 DEC 0.88975
021538,001097: 16,3571 24366 16/25 DEC 0.64000
021539,001098: 16,3572 77555 -DRATEDB OCTAL 77555 # -0.4 DEG/SEC SCALED AT PI/4 RADIANS/SEC
021540,001099: 16,3573 77001 -D2JTLIM OCTAL 77001 # -1.4 DEG/SEC SCALED AT PI/4
021541,001100: 16,3574 76447 -A2JTLIM OCTAL 76447 # -2.0 DEG/SEC SCALED AT PI/4
021542,001101: 16,3575 77223 -ARATEDB OCTAL 77223 # -1.0 DEG/SEC SCALED AT PI/4
021543,001102: 16,3576 31000 25/32 DEC .78125
021544,001103: 16,3577 77764 -TJMINT6 OCTAL 77764 # -(7.5 MS) + 1 BIT(FOR BZMF), T6 SCALING
021545,001104: 16,3600 00077 DAPLOW6 OCT 00077
021546,001105: 16,3601 00600 BITS8,9 OCTAL 00600
021547,001106: 16,3602 71462 UPM DEC -.2 # TEMPORARY ESTIMATE
021548,001107: 16,3603 03146 CSPAT1P DEC 0.10000 # 100 MS AT 1.
021549,001108: 16,3604 02401 PSKIPADR GENADR SKIPPAXS
021550,001109: 16,3605 37533 JETLWADR CADR TJETLAW
021551,001110:
021552,001111:
021553,001112: 16,3606 22016 SETIDLE LXCH BANKRUPT # FIRST T5RUPT AFTER FRESH START COMES
021554,001113: 16,3607 00006 EXTEND
021555,001114: 16,3610 22012 QXCH QRUPT
021556,001115: 16,3611 33640 CAF T5IDADR # HERE. T5IDLER IS STARTED IN 1 SEC.
021557,001116: 16,3612 55000 TS T5ADR
021558,001117: 16,3613 33636 CAF 1SECRUPT
021559,001118: 16,3614 54030 TS TIME5
021560,001119: 16,3615 05270 TC IBNKCALL
021561,001120: 16,3616 40114 FCADR STOPRATE
021562,001121: 16,3617 05270 TC IBNKCALL
021563,001122: 16,3620 40127 FCADR ALLCOAST
021564,001123: 16,3621 33637 CAF DBWIDE
021565,001124: 16,3622 54375 TS DB
021566,001125: 16,3623 37771 CAF NEGONE
021567,001126: 16,3624 55732 TS AOSCOUNT # MAKES APS CODING INACTIVE
021568,001127: 16,3625 15733 TCF RESUME
021569,001128:
021570,001129: 16,3626 22016 T5IDLER LXCH BANKRUPT # LOOKS FOR GODAPGO TO START THE DAP.
021571,001130: # START CODING FOR MODULE 3 REMAKE, AUGUST 1967***START CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
Page 516 |
021573,001132: 16,3627 00006 T5IDLERI EXTEND
021574,001133: 16,3630 22012 QXCH QRUPT
021575,001134:
021576,001135: 16,3631 30377 CA SMARTFLG # IS SMARTJOB DESIRED?
021577,001136: 16,3632 00006 EXTEND
021578,001137: 16,3633 62544 BZMF MORET5ID # NO. TAKE NO ACTION.
021579,001138:
021580,001139: 16,3634 37751 CAF BIT11 # YES. SEE IF IT IS ALREADY RUNNING.
021581,001140: 16,3635 12524 TCF ADDLT5ID # GO TO ADDITIONAL CODING.
021582,001141:
021583,001142: # **END CODING FOR MODULE 3 REMAKE, AUGUST 1967*****END CODING FOR MODULE 3 REMAKE, AUGUST 1967********************
021584,001143:
021585,001144: 16,3636 37634 1SECRUPT OCTAL 37634 # 1 SECOND SCALED AS TIME5 (100 PULSES)
021586,001145:
021587,001146: 16,3637 00707 DBWIDE DEC 0.02778
021588,001147: 16,3640 E6,1664 EBANK= AOSQTERM
021589,001148: 16,3640 03626 34066 T5IDADR 2CADR T5IDLER
021590,001149:
021591,001150: # DUMMY FILTER RUPT AFTER P-AXIS RUPT.
021592,001151: 16,3642 E6,1664 EBANK= AOSQTERM
021593,001152: 16,3642 33567 DUMMYFIL CAF MS30P # RESET TIMER IMMEDIATELY - DT = 30 MS
021594,001153: 16,3643 54030 TS TIME5
021595,001154: 16,3644 22016 LXCH BANKRUPT # INTERRUPT LEAD-IN (CONTINUED).
021596,001155:
021597,001156: 16,3645 00006 EXTEND # SET UP QRAXIS RUPT.
021598,001157: 16,3646 33756 DCA DFQRAXIS
021599,001158: 16,3647 53001 DXCH T5ADR
021600,001159:
021601,001160: # INCREMENT AOSTERM IN DESCENT MODE TO IMPROVE RATE DERIVATION DURING QRAXIS CONTROL.
021602,001161:
021603,001162: 16,3650 37762 CAF BIT2 # STAGE BIT IS ONE FOR DESCENT.
021604,001163: 16,3651 00006 EXTEND
021605,001164: 16,3652 02030 RAND 30 # READ STAGE BIT
021606,001165: 16,3653 00006 EXTEND
021607,001166: 16,3654 13716 BZF CHKAPS # NOT IN DESCENT. HOW ABOUT APS BURN.
021608,001167: 16,3655 40075 CS FLAGWRD1 # SEE IF ENGINE IS OFF.
021609,001168: 16,3656 77757 MASK ENGINBIT # READ COMPLEMENT OF ENGINE-ON FLAG.
021610,001169: 16,3657 13660 NOOP
021611,001170: 16,3660 00006 EXTEND
021612,001171: 16,3661 13666 BZF DLOOPBGN # ZERO WHEN ENGINE IS NOT OFF.
021613,001172:
021614,001173: 16,3662 37767 CAF ZERO # YES. ENGINE IS OFF.
021615,001174: 16,3663 55664 TS AOSQTERM
021616,001175: 16,3664 55665 TS AOSRTERM
021617,001176: 16,3665 15735 TCF NOQRSM # RESUME.
021618,001177: 16,3666 37763 DLOOPBGN CAF BIT1 # FIRST THE R-AXIS, THEN THE Q-AXIS.
021619,001178: 16,3667 54061 DLOOP TS ITEMP1
021620,001179: 16,3670 60000 DOUBLE
021621,001180: 16,3671 54062 TS ITEMP2
021622,001181: 16,3672 50061 INDEX ITEMP1
Page 517 |
021624,001183: 16,3673 33751 CA PITCHBTS
021625,001184: 16,3674 00006 EXTEND
021626,001185: 16,3675 02012 RAND 12 # IS PITCH(ROLL) GIMBAL MOVING.
021627,001186: 16,3676 00006 EXTEND
021628,001187: 16,3677 13713 BZF DLOOPCHK # ZERO WHEN GIMBAL IS NOT MOVING.
021629,001188:
021630,001189: # FORM ACCDOT*CSP(2)*(1-.5*K) SCALED AT PI/4. THIS IS THE INCREMENT TO BE ADDED TO THE OFFSET ACCELERATION TERM.
021631,001190:
021632,001191: 16,3700 41642 CS (1-K) # (1-K) SCALED AT 1. CS TO COMPENSATE FOR
021633,001192: # INVERTED SIGN OF QACCDOT.
021634,001193: 16,3701 00006 EXTEND
021635,001194: 16,3702 77753 MP BIT9 # .5*(1-K) , SCALED AT 2(5).
021636,001195: 16,3703 63760 AD NEGBIT9 # (1.-.5*K) SCALED AT 2(5).
021637,001196: 16,3704 00006 EXTEND
021638,001197: 16,3705 73753 MP CSPSQ # CSP(2)*(1.-.5*K) AT 2(5)
021639,001198: 16,3706 00006 EXTEND
021640,001199: 16,3707 50062 INDEX ITEMP2 # SELECT THE AXIS .
021641,001200: 16,3710 71533 MP QACCDOT # QACCDOT AT PI/2(7).
021642,001201: 16,3711 50061 INDEX ITEMP1
021643,001202: 16,3712 27664 ADS AOSQTERM # ADD INCREMENT SCALED AT PI/4.
021644,001203: 16,3713 10061 DLOOPCHK CCS ITEMP1
021645,001204: 16,3714 13667 TCF DLOOP # R-AXIS DONE. NOW DO THE Q-AXIS.
021646,001205: 16,3715 15735 TCF NOQRSM # RESUME.
021647,001206: 16,3716 11732 CHKAPS CCS AOSCOUNT # 4 WAY BRANCH EXPLOITED
021648,001207: 16,3717 13737 TCF DECCOUNT # COUNTING DOWN FOR AOSTASK
021649,001208: 16,3720 13741 TCF AOSNEXT # TIME TO DO AOSTASK
021650,001209: 16,3721 15735 TCF NOQRSM # AOSCOUNT NOT IN USE.INACTIVE AOSTASK.
021651,001210: 16,3722 55624 TS SUMRATEQ # MINUS ZERO PUT IN AOSCOUNT BY APSENGON.
021652,001211: 16,3723 55625 TS SUMRATER
021653,001212: 16,3724 55622 TS SAVRATEQ
021654,001213: 16,3725 55623 TS SAVRATER
021655,001214: 16,3726 55650 TS KCOEFCTR
021656,001215: 16,3727 41416 CS OMEGAQ # RECORD -(OLD OMEGA) FOR BOTH AXES FOR
021657,001216: 16,3730 55626 TS OLDWFORQ
021658,001217: 16,3731 41420 CS OMEGAR # THE FIRST PASS OF AOSTASK.
021659,001218: 16,3732 55627 TS OLDWFORR
021660,001219: 16,3733 40077 CS DAPBOOLS
021661,001220: 16,3734 77754 MASK APSGOING
021662,001221: 16,3735 26077 ADS DAPBOOLS
021663,001222: 16,3736 33750 CAF 19DECIML
021664,001223:
021665,001224: 16,3737 55732 DECCOUNT TS AOSCOUNT
021666,001225: 16,3740 15735 TCF NOQRSM
021667,001226:
021668,001227: 16,3741 33750 AOSNEXT CAF 19DECIML
021669,001228: 16,3742 55732 TS AOSCOUNT
021670,001229: 16,3743 00006 EXTEND
021671,001230: 16,3744 33747 DCA TOAOSTSK
021672,001231: 16,3745 52005 DTCF
021673,001232:
Page 518 |
021675,001234: 16,3746 41245 03245 TOAOSTSK 2FCADR AOSTASK
021676,001235:
021677,001236: 16,3750 00023 19DECIML DEC 19 B-14
021678,001237: 16,3751 01400 PITCHBTS OCT 01400 # PITCH GIMBAL BITS (9,10).
021679,001238: 16,3752 06000 OCT 06000 # ROLL GIMBAL BITS, (11,12).
021680,001239: 16,3753 00243 CSPSQ OCT 00243 # .01 SCALED AT 1, FOR CSP(2).
021681,001240: 16,3754 37776 TWENTYMS OCT 37776 # 20 MS FOR T5.
021682,001241: 16,3755 E6,1467 EBANK= QERROR
021683,001242: 16,3755 02002 36066 DFQRAXIS 2CADR QRAXIS
021684,001243:
021685,001244: 16,3757 01330 HULLSLIM DEC 0.04444 # 0.5 DEG/SEC SCALED AT 11.25 DEG/SEC
021686,001245: 16,3760 77377 NEGBIT9 OCT -400
021687,001246: 16,3761 37777 CHKSUM16 OCT 37777
End of include-file P-AXIS_REACTION_CONTROL_SYSTEM_AUTOPILOT.agc. Parent file is MAIN.agc