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. |
023218,000002: ## Copyright: Public domain.
023219,000003: ## Filename: Q_R-AXES_JET_SELECT_AND_FAILURE_CONTROL_LOGIC.agc
023220,000004: ## Purpose: A module for revision 0 of BURST120 (Sunburst). It
023221,000005: ## is part of the source code for the Lunar Module's
023222,000006: ## (LM) Apollo Guidance Computer (AGC) for Apollo 5.
023223,000007: ## Assembler: yaYUL
023224,000008: ## Contact: Ron Burkey <info@sandroid.org>.
023225,000009: ## Website: www.ibiblio.org/apollo/index.html
023226,000010: ## Mod history: 2016-09-30 RSB Created draft version.
023227,000011: ## 2016-10-30 HG Transcribed
023228,000012: ## 2016-10-31 RSB Typos
023229,000013: ## 2016-12-06 RSB Comment-proofing with octopus/ProoferComments
023230,000014: ## completed, and fixes made.
023231,000015:
Page 554 |
023233,000017: # PROGRAM: POLTYPEP MOD. NO. 1 DATE: NOVEMBER 14, 1966
023234,000018:
023235,000019: # AUTHOR: JONATHAN D. ADDELSTON (ADAMS ASSOCIATES)
023236,000020:
023237,000021: # THIS PROGRAM IS DESIGNED TO SELECT A POLICY OF JETS (OF WHICH NONE HAVE FAILED) WHICH CAN BE USED TO CREATE THE
023238,000022: # ROTATION AND/OR TRANSLATION WHICH IS REQUIRED BY THE LM DAP. FROM THE INDEX "NETACNDX" (WHICH MUST BE SET WHEN
023239,000023: # ROTATION IS REQUESTED), THE OPTIMAL POLICY IS SELECTED. WHEN FAILURES ARE DETECTED WITHIN A CHOSEN POLICY, AN
023240,000024: # ALTERNATE POLICY IS SELECTED. IF ALL ALTERNATE POLICIES ARE EXHAUSTED WITHOUT FINDING AN UNFAILED POLICY, A JET
023241,000025: # FAILURE ABORT IS INITIATED. WHEN THE ROUTINE IS USE FOR TRANSLATION JETS ONLY, "TRANONLY" MUST BE SET POSITIVE
023242,000026: # (NONZERO) AND THE ENTRY POINT IS "+/-XTRAN".
023243,000027:
023244,000028: # CALLING SEQUENCES:
023245,000029:
023246,000030: # 1. FOR ROTATION (WITH POSSIBLE +X TRANSLATION):
023247,000031:
023248,000032: # CAF RETURN (GENADR OF RETURN)
023249,000033: # TS TJETADR
023250,000034: # ...
023251,000035: # CAF INDEXVAL INDICATE ROT. AXIS, DIRECTION,
023252,000036: # TS NETACNDX AND NUMBER OF JETS.
023253,000037: # EXTEND
023254,000038: # DCA POLADR TRANSFER ACROSS BANKS TO POLTYPEP.
023255,000039: # DTCB
023256,000040:
023257,000041: # 2. FOR TRANSLATION ONLY:
023258,000042:
023259,000043: # CAF POSMAX/NEGMAX INDICATE -X TRANSLATION BY POSMAX.
023260,000044: # TS ANYTRANS +X TRANSLATION BY NEGMAX.
023261,000045: # CAF ZERO ZERO EXTRANEOUS FLAGS FOR ROUTINE
023262,000046: # TS TRANSNOW ...
023263,000047: # TS TRANSAVE ...
023264,000048: # EXTEND
023265,000049: # DCA JTPOLADR TRANSFER ACROSS BANKS TO +/-XTRAN
023266,000050: # TS TRANONLY (AND SET TRANONLY POSITIVE NONZERO.)
023267,000051: # DTCB
023268,000052:
023269,000053: # SUBROUTINES CALLED: NONE.
023270,000054:
023271,000055: # NORMAL RETURN 1. FOR ROTATION, TO ADDRESS IN BANK 17 SPECIFIED BY C(TJETADR).
023272,000056: # 2. FOR TRANSLATION, RESUME.
023273,000057:
023274,000058: # ALARM/ABORT MODE: WHENEVER THERE IS NO USABLE JET POLICY FOUND, TRANSFER TO JETABORT.
023275,000059:
023276,000060: # INPUT: NETACNDX,CH5MASK,1/NETACS.
023277,000061:
023278,000062: # OUTPUT: JETS ON IN CHANNEL 5, JTSATCHG.
023279,000063:
023280,000064: # DEBRIS: A,L,ALLL ITEMPS,ALL RUPTREGS.
023281,000065:
023282,000066: # INITIALIZATION AT ROTATION REQUEST ENTRY POINT:
023283,000067:
Page 555 |
023285,000069: 20,2321 BANK 20
023286,000070: 20,2321 E6,1471 EBANK= JTSONNOW
023287,000071:
023288,000072: 20,2321 37767 POLTYPEP CAF ZERO # SET VOLATILE SWITCHES TO INDICATE
023289,000073: 20,2322 54070 TS TRANONLY # 1) TRANSLATION ENTRY NOT MADE (ROTATION)
023290,000074: 20,2323 54071 TS ANYTRANS # 2) NO TRANSLATION KNOWN YET.
023291,000075: 20,2324 54072 TS TRANSNOW # 3) NO TRANS. DURING ROT. KNOWN YET.
023292,000076: 20,2325 54073 TS TRANSAVE # 4) NO TRANSLATION POLICY SELECTED YET.
023293,000077:
023294,000078: # TEST FOR SENSE OF ROTATION JETS. (MAKE TRANSLATION REQUEST FROM THE ASTRONAUT'S STICK OVERRIDE INTERNAL ULLAGE)
023295,000079:
023296,000080: 20,2326 37755 CAF BIT7 # ASTRONAUT +X TRANSLATION REQUEST TEST.
023297,000081: 20,2327 00006 EXTEND
023298,000082: 20,2330 02031 RAND 31
023299,000083: 20,2331 00006 EXTEND
023300,000084: 20,2332 12415 BZF +XTRANSL
023301,000085:
023302,000086: 20,2333 37754 CAF BIT8 # ASTRONAUT -X TRANSLATION REQUEST TEST.
023303,000087: 20,2334 00006 EXTEND
023304,000088: 20,2335 02031 RAND 31
023305,000089: 20,2336 00006 EXTEND
023306,000090: 20,2337 12422 BZF -XSENSE
023307,000091:
023308,000092: # CHECK FOR ULLAGE OR ASCENT BURN:
023309,000093:
023310,000094: 20,2340 32606 ULL/+X CAF BITS6&8 # CHECK FOR ULLAGE OR ASCENT BURN: (EITHER
023311,000095: 20,2341 70077 MASK DAPBOOLS # BIT REQUIRES +X SENSE FOR ROTATION JETS)
023312,000096: 20,2342 10000 CCS A # BIT6: ULLAGE BIT (+X TRANSLATION ASKED)
023313,000097: 20,2343 12411 TCF +XSELECT # BIT8: ASCENT BURN (NO TRANSLATION ASKED)
023314,000098:
023315,000099: # LM IS EITHER IN POWERED DESCENT OR IN COASTING FLIGHT SELECT JETS WHICH ARE PAIRED IN FORCE COUPLES.
023316,000100:
023317,000101: 20,2344 50061 INDEX NETACNDX # PICK UP FORCE-COUPLE TABLE INDEX AND THE
023318,000102: 20,2345 32626 CAF NORMLPOL # NUMBER OF POLICIES TO CHECK (PACKED).
023319,000103:
023320,000104: # UNPACK THE RELATIVE ADDRESS OF THE BEST POLICY AND THE NUMBER OF ALTERNATE POLICIES TO CHECK WITHIN THE LOOP.
023321,000105:
023322,000106: # THIS BITS ARE PACKED THUSLY 0XYYY, WHERE X BECOMES C(LOOPCTR) AND YYY BECOMES C(POLRELOC). BITS8,9 ARE ZERO.
023323,000107:
023324,000108: 20,2346 54001 NUMBALTS TS L # SAVE FULL WORD TO GET BITS 10-15, LATER.
023325,000109: 20,2347 75342 MASK LOW7 # MASK BITS GIVING INDEX VALUE FOR BEST
023326,000110: 20,2350 54063 TS POLRELOC # POLICY (W.R.T. TOP OF POLTABLE).
023327,000111:
023328,000112: 20,2351 37756 CAF BIT6 # EXTRACT BITS 10-12 OF ORIGINAL WORD:
023329,000113: 20,2352 00006 EXTEND # THIS VALUE IS USED AS A LOOP COUNTER TO
023330,000114: 20,2353 70001 MP L # TEST ALL THE FEASIBLE JET POLICIES FOR
023331,000115: 20,2354 54064 BESTPOLS TS LOOPCTR # THE GIVEN REQUEST. (ALSO TOP 0F LOOP.)
023332,000116:
Page 556 |
023334,000118: # LOOP TP SET UP "TRANSNOW" AND REJECT ALL FAILED POLICIES:
023335,000119:
023336,000120: 20,2355 50063 INDEX POLRELOC # PICK UP NEXT POLICY TO CHECK FOR FAILURE
023337,000121: 20,2356 32704 CAF POLTABLE # (MUST DO A "CAF" THEN "CCS" FOR RANGE.)
023338,000122: 20,2357 10000 CCS A # IF POLICY TABLE ENTRY IS NEGATIVE, THEN
023339,000123: 20,2360 54065 CHKFAILS TS THISPOLY # A FLAG IS SET TO DO SOME TRANSLATION
023340,000124: 20,2361 12364 TCF +3 # WITH THE ROTATION POLICY SELECTED. IF
023341,000125: 20,2362 54072 TS TRANSNOW # REQUESTED. POLTABLE VALUES ARE CCS-ABLE.
023342,000126: 20,2363 12360 TCF CHKFAILS # TRANSNOW (ONCE ON) STAYS ON FOR THIS CSP
023343,000127:
023344,000128: 20,2364 70102 MASK CH5MASK # COMPARE THISPOLY WITH BITS OF FAILED JET
023345,000129: 20,2365 10000 CCS A # IF C(A) = +0, THEN THERE ARE NO FAILURES
023346,000130: 20,2366 12370 TCF +2 # IN THIS POLICY AND THE LM DAP USES IT.
023347,000131: 20,2367 12427 TCF POLFOUND # IF C(A) IS NOT +0, IT IS POSITIVE AND
023348,000132: 20,2370 00006 EXTEND # FIRST THE RELATIVE ADDRESS INDEXER IS
023349,000133: 20,2371 26063 DIM POLRELOC # DECREMENTED BY ONE FOR THE NEXT POLICY,
023350,000134: 20,2372 10064 CCS LOOPCTR # THEN A CHECK IS MADE FOR ANY MORE USABLE
023351,000135: 20,2373 12354 TCF BESTPOLS # POLICIES, IF NO MORE, C(LOOPCTR) = +0.
023352,000136:
023353,000137: # ***** JET FAILURE ABORT SEQUENCE. *****
023354,000138:
023355,000139: 20,2374 37767 ABORTJET CAF ZERO # TURN OFF ALL JETS.
023356,000140: 20,2375 00006 EXTEND
023357,000141: 20,2376 01005 WRITE 5
023358,000142: 20,2377 00006 EXTEND
023359,000143: 20,2400 01006 WRITE 6
023360,000144:
023361,000145: 20,2401 35660 CAF PRIO37 # ABORT PRIORITY.
023362,000146: 20,2402 05505 TC NOVAC # CALL JETABORT THROUGH EXECUTIVE.
023363,000147: 20,2403 E6,1471 EBANK= JTSONNOW
023364,000148: 20,2403 02113 16066 2CADR JETABORT
023365,000149: 20,2405 47751 CS GODAPGO # SET GODAPGO TO TURN LM DAP OFF WHEN THIS
023366,000150: 20,2406 70077 MASK DAPBOOLS # BIT IS CHECKED IN THE NEXT P-AXIS RUPT.
023367,000151: 20,2407 54077 TS DAPBOOLS
023368,000152:
023369,000153: 20,2410 15733 TCF RESUME
023370,000154:
023371,000155: # ***** END JET FAILURE ABORT SEQUENCE. *****
023372,000156:
Page 557 |
023374,000158: # ENTER HERE AFTER ULLAGE/ASCENT DETECTION:
023375,000159:
023376,000160: 20,2411 40077 +XSELECT CS DAPBOOLS # CHECK FOR ULLAGE BIT6/DAPBOOLS =1.
023377,000161: 20,2412 77756 MASK ULLAGER # IF THE ULLAGE BIT IS 0, THEN THE LM IS
023378,000162: 20,2413 10000 CCS A # IN AN ASCENT BURN AND NO +X TRANSLATION
023379,000163: 20,2414 12417 TCF +XSENSE # HAS BEEN REQUESTED (SEE ULL/+X).
023380,000164:
023381,000165: # ENTER HERE FOR +X TRANSLATION:
023382,000166:
023383,000167: 20,2415 37745 +XTRANSL CAF NEGMAX # INDICATE +X TRANSLATION FOR CCS LATER.
023384,000168: 20,2416 54071 TS ANYTRANS # (ANYTRANS IS A VOLATILE SWITCH.)
023385,000169:
023386,000170: # ENTER HERE FOR +X SENSE JETS:
023387,000171:
023388,000172: 20,2417 50061 +XSENSE INDEX NETACNDX # PICK UP +X SENSE TABLE INDEX AND THE
023389,000173: 20,2420 32646 CAF +SENSTAB # NUMBER OF ALTERNATE POLICIES TO CHECK.
023390,000174:
023391,000175: 20,2421 12346 TCF NUMBALTS # GO TO BEGIN FAILURE CHECKING (ROTATION).
023392,000176:
023393,000177: # ENTER HERE FOR -X TRANSLATION:
023394,000178:
023395,000179: 20,2422 37743 -XSENSE CAF POSMAX # INDICATE -X TRANSLATION FOR CCS LATER.
023396,000180: 20,2423 54071 TS ANYTRANS # (ANYTRANS IS A VOLATILE SWITCH.)
023397,000181:
023398,000182: 20,2424 50061 INDEX NETACNDX # PICK UP -X SENSE TABLE INDEX AND THE
023399,000183: 20,2425 32666 CAF -SENSTAB # NUMBER OF ALTERNATE POLICIES TO CHECK.
023400,000184:
023401,000185: 20,2426 12346 TCF NUMBALTS # GO TO BEGIN FAILURE CHECKING (ROTATION).
023402,000186:
023403,000187: # ENTER HERE AFTER A ROTATION POLICY HAS BEEN FOUND:
023404,000188:
023405,000189: 20,2427 30065 POLFOUND CAE THISPOLY # GET POSITIVE-VALUED POLICY TABLE ENTRY
023406,000190: 20,2430 00006 EXTEND # WHICH IS INSURED AGAINST FAILURE.
023407,000191: 20,2431 77760 MP BIT4 # UNPACK BITS 12-14 OF TABLE ENTRY GET THE
023408,000192: 20,2432 50000 INDEX A # NUMBER OF Q-AXIS JETS FROM TORQUE TABLE.
023409,000193: 20,2433 32607 CAF TORKTABL # SAVE FOR TORQUE VECTOR RECONSTRUCTION
023410,000194: 20,2434 55607 TS NO.QJETS # AND FOR DETERMINING 1/NETACC.
023411,000195:
023412,000196: 20,2435 30001 CAE L # UNPACK BITS 9-11 OF TABLE ENTRY WHICH
023413,000197: 20,2436 00006 EXTEND # ARE NOW BITS 12-14 OF THE L-REGISTER.
023414,000198: 20,2437 77760 MP BIT4 # (BIT15 OF L IS 0 DUE TO SIGN AGREEMENT.)
023415,000199: 20,2440 50000 INDEX A # GET NUMBER OF R-AXIS JETS FROM TORQUE
023416,000200: 20,2441 32607 CAF TORKTABL # TABLE. SAVE FOR TORQUE VECTOR RECON-
023417,000201: 20,2442 55610 TS NO.RJETS # STRUCTION AND FOR GETTING 1/NETACC.
023418,000202:
023419,000203: # PICK OUT ROTATION JETS FROM TABLE ENTRY:
023420,000204:
023421,000205: 20,2443 30065 CAE THISPOLY # UNPACK BITS 1-8 OF TABLE ENTRY (DONE
023422,000206: 20,2444 74564 MASK LOW8 # MOST EASILY BY THE MASKING OPERATION).
023423,000207: 20,2445 67745 AD BIT15 # SET SIGN TO INDICATE Q,R-AXES JETS.
023424,000208:
Page 558 |
023426,000210: 20,2446 55471 TS JTSONNOW # SET POLICY UP FOR IMMEDIATE USE.
023427,000211:
Page 559 |
023429,000213:
023430,000214: # ENTRY POINT FOR +X TRANS, OR -X TRANS. REQUEST ALONE:
023431,000215:
023432,000216: # (ALSO CONTINUATION OF TRANSLATION-WITH-ROTATION LOGIC.)
023433,000217:
023434,000218: 20,2447 37762 +/-XTRAN CAF TWO # SET UP LOOP TO TEST ALL THREE POSSIBLE
023435,000219: 20,2450 54064 TS LOOPCTR # TRANSLATION POLICIES, IF 4 JETS ASKED.
023436,000220:
023437,000221: 20,2451 10071 CCS ANYTRANS # TEST FOR TRANSLATION REQUESTS: -0 UNUSED
023438,000222: 20,2452 12456 TCF -XPOLICY # POSMAX: -X TRANSLATION.
023439,000223: 20,2453 12543 TCF LATERJET # +ZERO: NO TRANSLATION.
023440,000224:
023441,000225: # ENTER HERE FOR +X TRANSLATION POLICIES:
023442,000226:
023443,000227: 20,2454 37762 +XPOLICY CAF TWO # NEGMAX: +X TRANSLATION.
023444,000228: 20,2455 12457 TCF +2 # SET POLRELOC FOR +X TRANS. INDEXING.
023445,000229:
023446,000230: # ENTER HERE FOR -X TRANSLATION POLICIES:
023447,000231:
023448,000232: 20,2456 37766 -XPOLICY CAF FIVE # SET POLRELOC FOR -X TRANS. INDEXING.
023449,000233: 20,2457 54063 TS POLRELOC # (INITIAL VALUE ALWAYS FOR 4-JET POLICY.)
023450,000234:
023451,000235: # TEST FOR TRANSLATION TO BE COMBINED WITH ROTATION JETS.
023452,000236:
023453,000237: 20,2460 10072 CCS TRANSNOW # TEST IF TRANSLATION WITH ROTATION IS
023454,000238: 20,2461 12526 TCF TRANCONT # REQUESTED, IF SO, OVER-RIDE 4-JET TEST.
023455,000239:
023456,000240: # DETERMINE IF LM DAP IS IN 2 OR 4 JET TRANSLATION MODE:
023457,000241:
023458,000242: 20,2462 40077 CS DAPBOOLS # TEST FOR 2/4-JET TRANSLATION MODE IN
023459,000243: 20,2463 77760 MASK ACC4OR2X # BIT4/DAPBOOLS (ASTRONAUT DSKY INPUT)
023460,000244: 20,2464 10000 CCS A # 0: 2 JET MODE (SKIP OUT).
023461,000245: 20,2465 12526 TCF TRANCONT # 1: 4 JET MODE (CONTINUE).
023462,000246:
023463,000247: # TEST TRANSLATION POLICIES FOR JET FAILURES:
023464,000248:
023465,000249: 20,2466 50063 TRANNEXT INDEX POLRELOC # PICK UP POLICY FOR +/-X TRANSLATION
023466,000250: 20,2467 32676 CAF TRANPOLY # FROM TABLE (INDEXED WITHIN REQUESTED
023467,000251: 20,2470 54065 TS THISPOLY # RANGE OF POLICIES); TEST FOR FAILURES
023468,000252: 20,2471 70102 MASK CH5MASK # IF NO FAILURES, C(A) = +0. IF POLICY
023469,000253: 20,2472 10000 CCS A # CANNOT BE USED , C(A) IS POSITIVE.
023470,000254: 20,2473 12524 TCF TRANCNTD # IF FAILED, CHECK FOR STORE GOOD TRANS.
023471,000255:
023472,000256: # SPECIAL TESTS ARE NEEDED FOR TRANSLATION DURING ROTATION:
023473,000257:
023474,000258: 20,2474 10072 CCS TRANSNOW # TEST FOR TRANSLATION DURING ROTATION
023475,000259: 20,2475 12514 TCF TRANSTOR # IF SO, GO TEST THIS POLICY FOR USE NOW.
023476,000260:
023477,000261: # TEST FOR ONLY TRANSLATION REQUEST:
023478,000262:
023479,000263: 20,2476 10070 CCS TRANONLY # TEST FOR PURE TRANSLATION REQUEST
023480,000264:
Page 560 |
023482,000266: 20,2477 12510 TCF TRANOROT # IF SO, GIVE TRANSLATION, NO ROTATION
023483,000267:
023484,000268: # SPECIAL TEST FOR GOOD 4-JET TRANSLATION:
023485,000269:
023486,000270: 20,2500 47762 CS TWO # TEST IF POLICY IS USING FOUR JETS (WHICH
023487,000271: 20,2501 60064 AD LOOPCTR # IS EQUIVALENT TO LOOPCTR = 2). IF 4-JET
023488,000272: 20,2502 00006 EXTEND # THIS POLICY MUST BE USED AS JTSATCHG.
023489,000273: 20,2503 12506 BZF TRAN4JET # OTHERWISE, MUST CHECK TRANSAVE FIRST.
023490,000274:
023491,000275: # WHEN NOT 4-JET TRANSLATION, CHECK FOR SAVED POLICY:
023492,000276:
023493,000277: 20,2504 10073 CCS TRANSAVE # TEST FOR SAVED POLICY; IF SAVED, USE IT.
023494,000278: 20,2505 12542 TCF TRANUSED # IF NOT SAVED YET, USE THIS POLICY.
023495,000279:
023496,000280: # USE THIS POLICY (EITHER 4 JETS OR BEST 2 JET):
023497,000281:
023498,000282: 20,2506 30065 TRAN4JET CAE THISPOLY # USE THIS UNFAILED POLICY AS THE TRANS-
023499,000283: 20,2507 12543 TCF LATERJET # LATION POLICY AFTER ROTATION.
023500,000284:
023501,000285: # FOR TRANSLATION WITHOUT ROTATION, TURN JETS ON IMMEDIATELY AND RESUME:
023502,000286:
023503,000287: 20,2510 30065 TRANOROT CAE THISPOLY # TURN ON UNFAILED Q,R-AXES JETS AS A PURE
023504,000288: 20,2511 00006 EXTEND # TRANSLATION POLICY WITHOUT ANY TJETLAW
023505,000289: 20,2512 01005 WRITE 5 # CALCULATIONS (AND NO TIME6 SETTING).
023506,000290:
023507,000291: 20,2513 15733 TCF RESUME # END T5RUPT SINCE JETS ON FOR FULL CSP.
023508,000292:
023509,000293: # TEST THIS TRANSLATION FOR USE DURING ROTATION:
023510,000294:
023511,000295: 20,2514 30065 TRANSTOR CAE THISPOLY # SAVE THIS POLICY FOR LATER USE AS THE
023512,000296: 20,2515 54073 TS TRANSAVE # JTSATCHG POLICY UNLESS IT IS SUPERCEDED.
023513,000297: 20,2516 71471 MASK JTSONNOW # TEST FOR USE WITH ROTATION POLICY MUST
023514,000298: 20,2517 10000 CCS A # HAVE NO JETS IN COMMON WITH JTSONNOW.
023515,000299: 20,2520 12526 TCF TRANCONT # C(A) POSITIVE MEANS POLICIES CONFLICT.
023516,000300:
023517,000301: # COINCIDENT TRANSLATION FOUND, GO FIND PURE TRANSLATION POLICY (FOR USE AFTER ROTATION):
023518,000302:
023519,000303: 20,2521 30065 CAE THISPOLY # USE BOTH ROTATION AND TRANSLATION JETS
023520,000304: 20,2522 27471 ADS JTSONNOW # AT JTSONNOW (BIT 15 IS ALREADY SET).
023521,000305:
023522,000306: 20,2523 12535 TCF TRANSLAT # GO TO START FINDING JTSATCHG POLICY.
023523,000307:
023524,000308: # STOP SEARCH IF GOOD TRANSLATION POLICY ALREADY RECORDED:
023525,000309:
023526,000310: 20,2524 10073 TRANCNTD CCS TRANSAVE # TEST FOR PREVIOUSLY SAVED TRANSLATION
023527,000311: 20,2525 12542 TCF TRANUSED # POLICY, IF IT EXISTS, USE IT.
023528,000312:
023529,000313: # CONTINUE FAILURE CHECKING LOOP:
023530,000314:
023531,000315: 20,2526 00006 TRANCONT EXTEND # CONTINUE THE TRANSLATION-FAIL LOOP
023532,000316:
Page 561 |
023534,000318: 20,2527 26063 DIM POLRELOC # DECREMENT THE TRANSLATION POLICY INDEX
023535,000319: 20,2530 10064 CCS LOOPCTR # AND THEN TEST LOOPCTR FOR CONTINUATION
023536,000320: 20,2531 12540 TCF TRNRESET # OF JET FAILURE TESTING.
023537,000321:
023538,000322: # IF NO TRANSLATION CAN BE FOUND FOR ROTATION POLICY, ALL IS NOT LOST, OTHERWISE, START JET FAILURE ABORT:
023539,000323:
023540,000324: 20,2532 10072 CCS TRANSNOW # IF FAILURES STOP TRANSLATION DURING
023541,000325: 20,2533 12535 TCF TRANSLAT # ROTATION' CONTINUE BY FINDING JTSATCHG.
023542,000326:
023543,000327: 20,2534 12374 TCF ABORTJET # TURN OFF JETS AND ABORT.
023544,000328:
023545,000329: # BEGIN SEARCH FOR JTSATCHG POLICY:
023546,000330:
023547,000331: 20,2535 37767 TRANSLAT CAF ZERO # SET VOLATILE FLAG TO INDICATE SEARCH IS
023548,000332: 20,2536 54072 TS TRANSNOW # FOR JTSATCHG, AFTER TRANSNOW DONE.
023549,000333:
023550,000334: 20,2537 12447 TCF +/-XTRAN # FO TO RE-INITIALIZE LOOP FROM SCRATCH.
023551,000335:
023552,000336: # "TOP OF LOOP" (FOR ALL BUT FIRST PASS):
023553,000337:
023554,000338: 20,2540 54064 TRNRESET TS LOOPCTR # RESET LOOP COUNTER TO CONTINUE LOOPING
023555,000339: 20,2541 12466 TCF TRANNEXT # GO TO CONTINUATION OF LOOP (AT THE TOP).
023556,000340:
023557,000341: # RECONSTRUCT FLAGGED JET POLICY:
023558,000342:
023559,000343: 20,2542 67763 TRANUSED AD ONE # RESET POLICY THAT WAS POSITIVE AND CCSED
023560,000344: 20,2543 67745 LATERJET AD BIT15 # SET BIT 15 TO INDICATE Q,R-AXES POLICY.
023561,000345: 20,2544 55472 TS JTSATCHG # USE FOR JTSATCHG TRANSLATION POLICY.
023562,000346:
023563,000347: # TRANSFORM INITIAL POINTER TO 2-JET POLICY:
023564,000348:
023565,000349: 20,2545 37763 CAF ONE # FROM THE INDEX VALUE INDICATING NUMBER
023566,000350: 20,2546 70061 MASK NETACNDX # OF JETS, DIRECTION, AND AXIS' COMPUTE
023567,000351: 20,2547 10000 CCS A # THE INDEX VALUE FOR 2 JETS ABOUT THAT
023568,000352: 20,2550 12553 TCF +3 # AXIS (IN THAT DIRECTION). CONTRIVANCE
023569,000353: 20,2551 00006 EXTEND # MAKES THIS EQUIVALENT TO IF BIT1 IS ON.
023570,000354: 20,2552 24061 AUG NETACNDX # (INDEP. OF SIGN) AUGMENT NETACNDX.
023571,000355:
023572,000356: # TRANSFORM POINTER TO CORRESPOND TO JETS ACTUALLY CHOSEN.
023573,000357:
023574,000358: 20,2553 11607 CCS NO.QJETS # TRANSFORM INDEX TO APPROPRIATE VALUE FOR
023575,000359: 20,2554 12556 TCF +2 # THE NUMBER OF JETS SELECTED.
023576,000360: 20,2555 12567 TCF ALLRJETS # IF NO.QJETS ZERO, NO.RJETS IS NONZERO.
023577,000361: 20,2556 10000 CCS A # IF NO.QJETS +/-1, NO.RJETS IS +/-1 (BY
023578,000362: 20,2557 12561 TCF +2 # DEFINITION) SO SUBTRACT ONE FROM INDEX.
023579,000363: 20,2560 12564 TCF SMALAXIS # GO TRANSFORM FOR 1 U,V-AXIS JET.
023580,000364: 20,2561 10000 CCS A # IF STILL NONZERO ON THIRD CCS, NO.QJETS
023581,000365: 20,2562 24061 INCR NETACNDX # MUST HAVE BEEN +/-4, SO ADD ONE TO THE
023582,000366: 20,2563 12576 TCF NETACGET # INDEX, OTHERWISE, NO CHANGE (2 JETS).
023583,000367:
Page 562 |
023585,000369: 20,2564 00006 SMALAXIS EXTEND # DECREMENT INDEX FOR 1 JET AROUND EITHER
023586,000370: 20,2565 26061 DIM NETACNDX # THE U- OR V- AXIS.
023587,000371: 20,2566 12576 TCF NETACGET # (GO PICK UP INVERSE OF NET ACCELERATION)
023588,000372:
023589,000373: 20,2567 11610 ALLRJETS CCS NO.RJETS # WHEN NO.QJETS ZERO, TEST NO.RJETS WHICH
023590,000374: 20,2570 77762 MASK TWO # IS ONLY +/-2 OR +/-4. NOTE LAST THREE
023591,000375: 20,2571 12573 TCF +2 # BITS OF THESE AFTER CCS 001 OR 011.
023592,000376: 20,2572 77762 MASK TWO # ONLY BIT2 DISTINGUISHES BETWEEN THE TWO.
023593,000377: 20,2573 00006 EXTEND # IF BIT2 = 0, THEN TWO JETS, NO CHANGE.
023594,000378: 20,2574 12576 BZF +2 # IF BIT2 = 1, THEN FOUR JETS, SO THE
023595,000379: 20,2575 24061 INCR NETACNDX # INDEX MUST BE INCREMENTED.
023596,000380:
023597,000381: # PICK UP AND SAVE 1/NETACC FOR TJETLAW:
023598,000382:
023599,000383: 20,2576 50061 NETACGET INDEX NETACNDX # USE THE INDEX VALUE FOR THE EXACT JETS
023600,000384: 20,2577 31706 CAE 1/NETACS # USED, PICK UP THE APPROPRIATE 1/NETACC
023601,000385: 20,2600 54066 TS 1/NETACC # AND SAVE FOR USE BY THE TJETLAW.
023602,000386:
023603,000387: # RETURN TO APPROPRIATE TJETLAW:
023604,000388:
023605,000389: 20,2601 32605 CAF BBANKSET # ALWAYS RETURN TO THE FIXED BANK OF THE
023606,000390: 20,2602 54001 TS L # Q,R-AXES REACTION CONTROL SYSTEM LM DAP.
023607,000391: 20,2603 30062 CAE TJETADR # USE VARIABLE GENADR WITH WHICH TO
023608,000392: 20,2604 52006 DTCB # CROSS BANKS TO RETURN.
023609,000393:
023610,000394: 20,2605 E6,1416 EBANK= OMEGAQ
023611,000395: 20,2605 36066 BBANKSET BBCON QRAXIS # BBCON OF Q,R-AXES RCS LM DAP.
023612,000396:
023613,000397: 20,2606 00240 BITS6&8 OCTAL 00240 # ULLAGE AND ASCENT BURN DAPBOOLS BITS.
023614,000398:
Page 563 |
023616,000400:
023617,000401: # TABLE OF Q,R-JET NUMBERS AND DIRECTIONS:
023618,000402:
023619,000403: 20,2607 00000 TORKTABL DEC 0 B-14 # FROM THE 3 PACKED BITS IN A WORD FROM
023620,000404: 20,2610 00001 DEC +1 B-14 # POLTABLE, THE POLTYPEP PROGRAM SELECTS
023621,000405: 20,2611 77776 DEC -1 B-14 # THE APPROPRIATE NO.QJETS OR NO.RJETS
023622,000406: 20,2612 00002 DEC +2 B-14 # AS FOLLOWS:
023623,000407: 20,2613 77775 DEC -2 B-14 # 000: NO JETS
023624,000408: 20,2614 00004 DEC +4 B-14 # 001: +1 JET 011: +2 JETS 101: +4 JETS
023625,000409: 20,2615 77773 DEC -4 B-14 # 010: -1 JET 100: -2 JETS 110: -4 JETS
023626,000410:
023627,000411:
023628,000412: # RELATIVE ADDRESSES AND NUMBER OF ALTERNATE POLICIES ARE LISTED IN THE FOLLOWING TABLES. EACH ENTRY HAS THE FORM
023629,000413: # 0XYYY WHERE X INDICATES THE NUMBER OF ALTERNATE POLICIES AND
023630,000414: # YYY IS THE RELATIVE ADDRESS IN POLTABLE OF THE "OPTIMAL" POLICY.
023631,000415:
023632,000416: # FORCE-COUPLE POLICIES:
023633,000417: 20,2616 03003 OCTAL 03003 # +2 Q-AXIS JETS
023634,000418: 20,2617 04004 OCTAL 04004 # +4 Q-AXIS JETS
023635,000419: 20,2620 03010 OCTAL 03010 # -2 Q-AXIS JETS
023636,000420: 20,2621 04011 OCTAL 04011 # -4 Q-AXIS JETS
023637,000421: 20,2622 03015 OCTAL 03015 # +2 R-AXIS JETS
023638,000422: 20,2623 04016 OCTAL 04016 # +4 R-AXIS JETS
023639,000423: 20,2624 03022 OCTAL 03022 # -2 R-AXIS JETS
023640,000424: 20,2625 04023 OCTAL 04023 # -4 R-AXIS JETS
023641,000425: 20,2626 02026 NORMLPOL OCTAL 02026 # +2 U-AXIS JETS
023642,000426: 20,2627 02026 OCTAL 02026 # +2 U-AXIS JETS
023643,000427: 20,2630 02031 OCTAL 02031 # -2 U-AXIS JETS
023644,000428: 20,2631 02031 OCTAL 02031 # -2 U-AXIS JEST
023645,000429: 20,2632 02034 OCTAL 02034 # +2 V-AXIS JETS
023646,000430: 20,2633 02034 OCTAL 02034 # +2 V-AXIS JETS
023647,000431: 20,2634 02037 OCTAL 02037 # -2 V-AXIS JETS
023648,000432: 20,2635 02037 OCTAL 02037 # -2 V-AXIS JETS
023649,000433:
Page 564 |
023651,000435:
023652,000436: # +X SENSE POLICIES:
023653,000437:
023654,000438: 20,2636 03043 OCTAL 03043 # +2 Q-AXIS JETS
023655,000439: 20,2637 04044 OCTAL 04044 # +4 Q-AXIS JETS
023656,000440: 20,2640 03050 OCTAL 03050 # -2 Q-AXIS JETS
023657,000441: 20,2641 04051 OCTAL 04051 # -4 Q-AXIS JETS
023658,000442: 20,2642 03055 OCTAL 03055 # +2 R-AXIS JETS
023659,000443: 20,2643 04056 OCTAL 04056 # +4 R-AXIS JETS
023660,000444: 20,2644 03062 OCTAL 03062 # -2 R-AXIS JETS
023661,000445: 20,2645 04063 OCTAL 04063 # -4 R-AXIS JETS
023662,000446: 20,2646 01025 +SENSTAB OCTAL 01025 # +1 U-AXIS JETS
023663,000447: 20,2647 02026 OCTAL 02026 # +2 U-AXIS JETS
023664,000448: 20,2650 01030 OCTAL 01030 # -1 U-AXIS JETS
023665,000449: 20,2651 02031 OCTAL 02031 # -2 U-AXIS JETS
023666,000450: 20,2652 01033 OCTAL 01033 # +1 V-AXIS JETS
023667,000451: 20,2653 02034 OCTAL 02034 # +2 V-AXIS JETS
023668,000452: 20,2654 01036 OCTAL 01036 # -1 V-AXIS JETS
023669,000453: 20,2655 02037 OCTAL 02037 # -2 V-AXIS JETS
023670,000454:
023671,000455: # -X SENSE POLICIES:
023672,000456:
023673,000457: 20,2656 03067 OCTAL 03067 # +2 Q-AXIS JETS
023674,000458: 20,2657 04070 OCTAL 04070 # +4 Q-AXIS JETS
023675,000459: 20,2660 03074 OCTAL 03074 # -2 Q-AXIS JETS
023676,000460: 20,2661 04075 OCTAL 04075 # -4 Q-AXIS JETS
023677,000461: 20,2662 03101 OCTAL 03101 # +2 R-AXIS JETS
023678,000462: 20,2663 04102 OCTAL 04102 # +4 R-AXIS JETS
023679,000463: 20,2664 03106 OCTAL 03106 # -2 R-AXIS JETS
023680,000464: 20,2665 04107 OCTAL 04107 # -4 R-AXIS JETS
023681,000465: 20,2666 01111 -SENSTAB OCTAL 01111 # +1 U-AXIS JETS
023682,000466: 20,2667 02112 OCTAL 02112 # +2 U-AXIS JETS
023683,000467: 20,2670 01114 OCTAL 01114 # -1 U-AXIS JETS
023684,000468: 20,2671 02115 OCTAL 02115 # -2 U-AXIS JETS
023685,000469: 20,2672 01117 OCTAL 01117 # +1 V-AXIS JETS
023686,000470: 20,2673 02120 OCTAL 02120 # +2 V-AXIS JETS
023687,000471: 20,2674 01122 OCTAL 01122 # -1 V-AXIS JETS
023688,000472: 20,2675 02123 OCTAL 02123 # -2 V AXIS JETS
023689,000473:
Page 565 |
023691,000475:
023692,000476: # X-AXIS TRANSLATION POLICIES:
023693,000477:
023694,000478: 20,2676 00042 TRANPOLY OCTAL +00042 # 2 10 * +X TRANSLATION JETS 0
023695,000479: 20,2677 00210 OCTAL +00210 # 6 14 * 1
023696,000480: 20,2700 00252 OCTAL +00252 # 2 6 10 14 * 2
023697,000481:
023698,000482: 20,2701 00104 OCTAL +00104 # 3 13 * -X TRANSLATION JETS 3
023699,000483: 20,2702 00021 OCTAL +00021 # 1 9 * 4
023700,000484: 20,2703 00125 OCTAL +00125 # 1 5 9 13 * 5
023701,000485:
Page 566 |
023703,000487:
023704,000488: # ROTATION JET POLICIES;
023705,000489:
023706,000490: # FORCE COUPLE POLICIES:
023707,000491:
023708,000492: 20,2704 14025 POLTABLE OCTAL +14025 # 5 9 * +Q-AXIS FORCE COUPLES 0
023709,000493: 20,2705 14203 OCTAL +14203 # 2 14 * 1
023710,000494: 20,2706 14221 OCTAL +14221 # 9 14 * 2
023711,000495: 20,2707 14007 OCTAL +14007 # 2 5 * 3
023712,000496: 20,2710 24227 OCTAL +24227 # 2 5 9 14 * 4
023713,000497:
023714,000498: 20,2711 20051 OCTAL +20051 # 6 10 * -Q-AXIS FORCE-COUPLES 5
023715,000499: 20,2712 20102 OCTAL +20102 # 1 13 * 6
023716,000500: 20,2713 20141 OCTAL +20141 # 10 13 * 7
023717,000501: 20,2714 20012 OCTAL +20012 # 1 6 * 10
023718,000502: 20,2715 30152 OCTAL +30152 # 1 6 10 13 * 11
023719,000503:
023720,000504: 20,2716 01641 OCTAL +01641 # 10 14 * +R-AXIS FORCE-COUPLES 12
023721,000505: 20,2717 01406 OCTAL +01406 # 1 5 * 13
023722,000506: 20,2720 01445 OCTAL +01445 # 5 10 * 14
023723,000507: 20,2721 01602 OCTAL +01602 # 1 14 * 15
023724,000508: 20,2722 02646 OCTAL +02646 # 1 5 10 14 * 16
023725,000509:
023726,000510: 20,2723 02121 OCTAL +02121 # 9 13 * -R-AXIS FORCE-COUPLES 17
023727,000511: 20,2724 02013 OCTAL +02013 # 2 6 * 20
023728,000512: 20,2725 02103 OCTAL +02103 # 2 13 * 21
023729,000513: 20,2726 02031 OCTAL +02031 # 6 9 * 22
023730,000514: 20,2727 03133 OCTAL +03133 # 2 6 9 13 * 23
023731,000515:
023732,000516: # FORCE COUPLE AND +X SENSE POLICIES:
023733,000517:
023734,000518: 20,2730 73372 OCTAL -04405 # 5 * +U-AXIS FORCE-COUPLES 24
023735,000519: 20,2731 73176 OCTAL -04601 # 14 * AND +X SENSE 25
023736,000520: 20,2732 62172 OCTAL -15605 # 5 14 * 26
023737,000521:
023738,000522: 20,2733 66676 OCTAL -11101 # 13 * -U-AXIS FORCE-COUPLES 27
023739,000523: 20,2734 66766 OCTAL -11011 # 6 * AND +X SENSE 30
023740,000524: 20,2735 55666 OCTAL -22111 # 6 13 * 31
023741,000525:
023742,000526: 20,2736 67375 OCTAL -10402 # 1 * +V-AXIS FORCE-COUPLES 32
023743,000527: 20,2737 67336 OCTAL -10441 # 10 * AND +X SENSE 33
023744,000528: 20,2740 56335 OCTAL -21442 # 1 10 * 34
023745,000529:
023746,000530: 20,2741 72756 OCTAL -05021 # 9 * -V-AXIS FORCE-COUPLES 35
023747,000531: 20,2742 72774 OCTAL -05003 # 2 * AND +X SENSE 36
023748,000532: 20,2743 61754 OCTAL -16023 # 2 9 * 37
023749,000533:
Page 567 |
023751,000535:
023752,000536: # +X SENSE POLICIES:
023753,000537:
023754,000538: 20,2744 14025 OCTAL +14025 # 5 9 * +Q-AXIS +X SENSE JETS 40
023755,000539: 20,2745 14221 OCTAL +14221 # 9 14 * 41
023756,000540: 20,2746 14007 OCTAL +14007 # 2 5 * 42
023757,000541: 20,2747 14203 OCTAL +14203 # 2 14 * 43
023758,000542: 20,2750 24227 OCTAL +24227 # 2 5 9 14 * 44
023759,000543:
023760,000544: 20,2751 20102 OCTAL +20102 # 1 13 * -Q-AXIS +X SENSE JETS 45
023761,000545: 20,2752 20141 OCTAL +20141 # 10 13 * 46
023762,000546: 20,2753 20012 OCTAL +20012 # 1 6 * 47
023763,000547: 20,2754 20051 OCTAL +20051 # 6 10 * 50
023764,000548: 20,2755 30152 OCTAL +30152 # 1 6 10 13 * 51
023765,000549:
023766,000550: 20,2756 01406 OCTAL +01406 # 1 5 * +R-AXIS +X SENSE JETS 52
023767,000551: 20,2757 01445 OCTAL +01445 # 5 10 * 53
023768,000552: 20,2760 01602 OCTAL +01602 # 1 14 * 54
023769,000553: 20,2761 01641 OCTAL +01641 # 10 14 * 55
023770,000554: 20,2762 02646 OCTAL +02646 # 1 5 10 14 * 56
023771,000555:
023772,000556: 20,2763 02121 OCTAL +02121 # 9 13 * -R-AXIS +X SENSE JETS 57
023773,000557: 20,2764 02103 OCTAL +02103 # 2 13 * 60
023774,000558: 20,2765 02031 OCTAL +02031 # 6 9 * 61
023775,000559: 20,2766 02013 OCTAL +02013 # 2 6 * 62
023776,000560: 20,2767 03133 OCTAL +03133 # 2 6 9 13 * 63
023777,000561:
Page 568 |
023779,000563:
023780,000564: # -X SENSE POLICIES:
023781,000565:
023782,000566: 20,2770 14203 OCTAL +14203 # 2 14 * +Q-AXIS -X SENSE JETS 64
023783,000567: 20,2771 14221 OCTAL +14221 # 9 14 * 65
023784,000568: 20,2772 14007 OCTAL +14007 # 2 5 * 66
023785,000569: 20,2773 14025 OCTAL +14025 # 5 9 * 67
023786,000570: 20,2774 24227 OCTAL +24227 # 2 5 9 14 * 70
023787,000571:
023788,000572: 20,2775 20051 OCTAL +20051 # 6 10 * -Q-AXIS -X SENSE JETS 71
023789,000573: 20,2776 20141 OCTAL +20141 # 10 13 * 72
023790,000574: 20,2777 20012 OCTAL +20012 # 1 6 * 73
023791,000575: 20,3000 20102 OCTAL +20102 # 1 13 * 74
023792,000576: 20,3001 30152 OCTAL +30152 # 1 6 10 13 * 75
023793,000577:
023794,000578: 20,3002 01641 OCTAL +01641 # 10 14 * +R-AXIS -X SENSE JETS 76
023795,000579: 20,3003 01445 OCTAL +01445 # 5 10 * 77
023796,000580: 20,3004 01602 OCTAL +01602 # 1 14 * 100
023797,000581: 20,3005 01406 OCTAL +01406 # 1 5 * 101
023798,000582: 20,3006 02646 OCTAL +02646 # 1 5 10 14 * 102
023799,000583:
023800,000584: 20,3007 02013 OCTAL +02013 # 2 6 * -R-AXIS -X SENSE JETS 103
023801,000585: 20,3010 02103 OCTAL +02103 # 2 13 * 104
023802,000586: 20,3011 02031 OCTAL +02031 # 6 9 * 105
023803,000587: 20,3012 02121 OCTAL +02121 # 9 13 * 106
023804,000588: 20,3013 03133 OCTAL +03133 # 2 6 9 13 * 107
023805,000589:
023806,000590: 20,3014 73176 OCTAL -04601 # 14 * +U-AXIS -X SENSE JETS 110
023807,000591: 20,3015 73372 OCTAL -04405 # 5 * 111
023808,000592: 20,3016 62172 OCTAL -15605 # 5 14 * 112
023809,000593:
023810,000594: 20,3017 66766 OCTAL -11011 # 6 * -U-AXIS -X SENSE JETS 113
023811,000595: 20,3020 66676 OCTAL -11101 # 13 * 114
023812,000596: 20,3021 55666 OCTAL -22111 # 6 13 * 115
023813,000597:
023814,000598: 20,3022 67336 OCTAL -10441 # 10 * +V-AXIS -X SENSE JETS 116
023815,000599: 20,3023 67375 OCTAL -10402 # 1 * 117
023816,000600: 20,3024 56335 OCTAL -21442 # 1 10 * 120
023817,000601:
023818,000602: 20,3025 72774 OCTAL -05003 # 2 * -V-AXIS -X SENSE JETS 121
023819,000603: 20,3026 72756 OCTAL -05021 # 9 * 122
023820,000604: 20,3027 61754 OCTAL -16023 # 2 9 * 123
End of include-file Q,R-AXES_JET_SELECT_AND_FAILURE_CONTROL_LOGIC.agc. Parent file is MAIN.agc