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