933 lines
22 KiB
Plaintext
933 lines
22 KiB
Plaintext
# Copyright: Public domain.
|
|
# Filename: JET_SELECTION_LOGIC.agc
|
|
# Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
|
|
# It is part of the source code for the Command Module's (CM)
|
|
# Apollo Guidance Computer (AGC), for Apollo 11.
|
|
# Assembler: yaYUL
|
|
# Contact: Ron Burkey <info@sandroid.org>.
|
|
# Website: www.ibiblio.org/apollo.
|
|
# Pages: 1039-1062
|
|
# Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
|
|
# same name, using Comanche055 page images.
|
|
#
|
|
# This source code has been transcribed or otherwise adapted from digitized
|
|
# images of a hardcopy from the MIT Museum. The digitization was performed
|
|
# by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
|
|
# thanks to both. The images (with suitable reduction in storage size and
|
|
# consequent reduction in image quality as well) are available online at
|
|
# www.ibiblio.org/apollo. If for some reason you find that the images are
|
|
# illegible, contact me at info@sandroid.org about getting access to the
|
|
# (much) higher-quality images which Paul actually created.
|
|
#
|
|
# Notations on the hardcopy document read, in part:
|
|
#
|
|
# Assemble revision 055 of AGC program Comanche by NASA
|
|
# 2021113-051. 10:28 APR. 1, 1969
|
|
#
|
|
# This AGC program shall also be referred to as
|
|
# Colossus 2A
|
|
|
|
# Page 1039
|
|
BANK 21
|
|
SETLOC DAPS4
|
|
BANK
|
|
|
|
COUNT 17/DAPJS
|
|
|
|
EBANK= KMPAC
|
|
|
|
# EXAMINE CHANNEL 31 FOR TRANSLATION COMMANDS
|
|
|
|
JETSLECT LXCH BANKRUPT
|
|
CAF DELTATT3 # = 60 MS RESET TO EXECUTIVE PHASE1
|
|
AD T5TIME
|
|
TS TIME5
|
|
TCF +3
|
|
CAF DELATT20 # = 20 MS TO ASSURE A T5RUPT
|
|
TS TIME5
|
|
CAF =14MS # RESET T6 TO INITIALIZE THE JET CHANNELS
|
|
TS TIME6 # IN 14 MS
|
|
CAF NEGMAX
|
|
EXTEND
|
|
WOR CHAN13
|
|
EXTEND
|
|
QXCH QRUPT
|
|
CAF XLNMASK # = 7700 OCT
|
|
EXTEND # EXAMINE THE TRANSLATION
|
|
RXOR CHAN31 # HAND CONTROLLER
|
|
MASK XLNMASK
|
|
EXTEND
|
|
BZF NOXLNCMD
|
|
TS T5TEMP
|
|
EXTEND
|
|
MP BIT9
|
|
MASK THREE
|
|
TS XNDX1 # AC QUAD X-TRANSLATION INDEX
|
|
TS XNDX2 # BD QUAD X-TRANSLATION INDEX
|
|
CA T5TEMP
|
|
EXTEND # 1 = + XLN
|
|
MP BIT7 # 2 = - XLN
|
|
MASK THREE # 3 = NO XLN
|
|
TS YNDX # Y-TRANSLATION INDEX
|
|
|
|
CA T5TEMP
|
|
EXTEND
|
|
MP BIT5
|
|
MASK THREE
|
|
TS ZNDX # Z-TRANSLATION INDEX
|
|
|
|
CA DAPDATR1 # SET ATTKALMN TO PICK UP FILTER GAINS FOR
|
|
MASK BIT14 # TRANSLATIONS.
|
|
EXTEND # CHECK DAPDATR1 BIT 14 FOR LEM ATTACHED.
|
|
# Page 1040
|
|
BZF NOLEM
|
|
CS THREE # IF LEM IS ON, SET ATTKALMN = -3
|
|
TCF +2
|
|
NOLEM CS TWO # IF LEM IS OFF, SET ATTKALMN = -2.
|
|
TS ATTKALMN
|
|
CCS XTRANS # (+, -1, 0)
|
|
TS XNDX1 # USING BD-X ZERO XNDX1
|
|
TCF PWORD
|
|
TS XNDX2 # USING AC-X ZERO XNDX2
|
|
TCF PWORD
|
|
XLNMASK OCT 7700
|
|
|
|
DELTATT3 DEC 16378 # = 60 MS
|
|
DELATT20 DEC 16382 # = 20 MS
|
|
|
|
NOXLNCMD TS XNDX1 # ZERO ALL REQUESTS FOR TRANSLATION
|
|
TS XNDX2
|
|
TS YNDX
|
|
TS ZNDX
|
|
|
|
# PITCH COMMANDS TIMING(NO X-TRANS, NO QUAD FAILS) 32MCT
|
|
|
|
PWORD CCS TAU1 # CHECK FOR PITCH COMMANDS
|
|
CAF ONE
|
|
TCF +2 # 0 = NO PITCH
|
|
CAF TWO # +1 = + PITCH
|
|
TS PINDEX # +2 = - PITCH
|
|
|
|
CCS RACFAIL # FLAG FOR REAL AC QUAD FAILURES
|
|
TCF AFAILP
|
|
TCF TABPCOM # 0 = NO REAL AC FAILURES
|
|
TCF CFAILP # + = A QUAD FAILED
|
|
TCF TABPCOM # - = C QUAD FAILED
|
|
# IF FAILURES ARE PRESENT IGNORE
|
|
# X-TRANSLATIONS ON THIS AXIS
|
|
|
|
AFAILP CAF NINE # IF FAILURE IS PRESENT 1JET OPERATION
|
|
TCF TABPCOM +2 # IS ASSUMED. IGNORE X-TRANSLATION
|
|
CFAILP CAF TWELVE
|
|
TCF TABPCOM +2
|
|
|
|
XLNNDX DEC 0 # INDICES FOR TRANSLATION COMMANDS
|
|
DEC 3 # FOR USE IN TABLE LOOK UP
|
|
DEC 6
|
|
DEC 0
|
|
|
|
TWELVE = OCT14
|
|
|
|
# TABLE LOOK UP FOR PITCH COMMANDS WITH AND WITHOUT X-TRANSLATION AND AC QUAD FAILURES PRESENT.
|
|
# BITS 9, 10 CONTAIN THE NUMBER OF PITCH JETS USED TO PERFORM THE PITCH ROTATION
|
|
# Page 1041
|
|
|
|
TABPCOM INDEX XNDX1
|
|
CA XLNNDX
|
|
AD PINDEX
|
|
INDEX A
|
|
CA PYTABLE
|
|
MASK PJETS # =1417 OCT
|
|
TS PWORD1
|
|
EXTEND
|
|
MP BIT7
|
|
TS NPJETS # = NO. OF PITCH JETS
|
|
|
|
# YAW JET COMMANDS TIMING(N X-TRANS, NO QUAD FAILURES) 32MCT
|
|
|
|
YWORD CCS TAU2 # CHECK FOR YAW COMMANDS
|
|
CAF ONE
|
|
TCF +2
|
|
CAF TWO
|
|
TS YINDEX # YAW ROTATION INDEX
|
|
|
|
CCS RBDFAIL # FLAG FOR B OR D QUAD FAILURES
|
|
TCF BFAILY # 0 = NO BD FAILURE
|
|
TCF TABYCOM # + - B QUAD FAILED
|
|
TCF DFAILY # - = D QUAD FAILED
|
|
TCF TABYCOM
|
|
|
|
BFAILY CAF NINE
|
|
TCF TABYCOM +2
|
|
DFAILY CAF TWELVE
|
|
TCF TABYCOM +2
|
|
|
|
# Page 1042
|
|
# TABLE FOR PITCH(YAW) COMMANDS
|
|
# BITS 4,3,2,1 = PITCH, X-TRANSLATION JETS SELECTED
|
|
# BITS 10,9 = NO. PITCH JETS USED TO PERFORM ROTATION
|
|
# BITS 8,7,6,5 = YAW, X-TRANSLATION JETS SELECTED
|
|
# BITS 12,11: NO. YAW JETS USED TO PERFORM ROTATION
|
|
|
|
# ROT TRANS QUAD BIAS
|
|
PYTABLE OCT 0 # 0 0 0
|
|
OCT 5125 # + 0 0
|
|
OCT 5252 # - 0 0
|
|
OCT 0231 # 0 + 3
|
|
OCT 2421 # + + 3
|
|
OCT 2610 # - + 3
|
|
OCT 0146 # 0 - 6
|
|
OCT 2504 # + - 6
|
|
OCT 2442 # - - 6
|
|
OCT 0 # 0 A(B) 9
|
|
OCT 2421 # + A(B) 9
|
|
OCT 2442 # - A(B) 9
|
|
OCT 0 # 0 C(D) 12
|
|
OCT 2504 # + C(D) 12
|
|
OCT 2610 # - C(D) 12
|
|
|
|
# MASKS FOR PITCH AND YAW COMMANDS
|
|
|
|
PJETS OCT 1417
|
|
YJETS OCT 6360
|
|
|
|
# TABLE LOOK UP FOR YAW COMMANDS WITH AND WITHOUT X-TRANSLATION AND AC QUAD FAILURES PRESENT
|
|
# BITS 11, 12 CONTAIN THE NUMBER OF YAW JETS USED TO PERFORM THE YAW ROTATION
|
|
|
|
TABYCOM INDEX XNDX2
|
|
CA XLNNDX
|
|
AD YINDEX
|
|
INDEX A
|
|
CA PYTABLE
|
|
MASK YJETS # = 6360 OCT
|
|
TS YWORD1
|
|
EXTEND
|
|
MP BIT5
|
|
TS NYJETS # NO. OF YAW JETS USED TO PERFORM ROTATION
|
|
|
|
# Page 1043
|
|
# ROLL COMMANDS TIMING(NO Y,Z TRANS, NO QUAD FAILS) 45MCT
|
|
|
|
RWORD CCS TAU # CHECK FOR ROLL COMMANDS
|
|
CAF ONE
|
|
TCF +2
|
|
CAF TWO
|
|
TS RINDEX
|
|
|
|
CCS ACORBD # FLAG FOR AC OR BD QUAD SELECTION FOR
|
|
TCF BDROLL # ROLL COMMANDS
|
|
TCF BDROLL # +, +0 = BD ROLL
|
|
TCF +1 # -, -0 = AC ROLL
|
|
|
|
ACROLL CCS RACFAIL # CHECK FOR REAL FAILURES
|
|
TCF RAFAIL # ON AC QUADS
|
|
TCF RXLNS
|
|
TCF RCFAIL
|
|
TCF RXLNS
|
|
|
|
RAFAIL CAF NINE # QUAD FAILURE WILL GET
|
|
TCF TABRCOM # 1-JET OPERATION
|
|
RCFAIL CAF TWELVE
|
|
TCF TABRCOM
|
|
|
|
XLN1NDX DEC 0
|
|
DEC 1 # INDICES FOR TRANSLATION
|
|
DEC 2
|
|
DEC 0
|
|
|
|
# TABLE LOOK UP FOR AC-ROLL COMMANDS WITH AND WITHOUT Y-TRANSLATION AND ACQUAD FAILURES PRESENT
|
|
# BITS 9,10,11 CONTAIN THE MAGNITUDE AND DIRECTION OF THE ROLL
|
|
|
|
RXLNS INDEX YNDX # NO AC QUAD FAILURES
|
|
CA XLNNDX # INCLUDE +,-,0, Y-TRANSLATION
|
|
TABRCOM AD RINDEX
|
|
INDEX A
|
|
CA RTABLE
|
|
MASK ACRJETS # = 3760 OCT
|
|
TS RWORD1
|
|
|
|
# CHECK FOR Z-TRANSLATIONS ON BD
|
|
|
|
BDZCHECK CA ZNDX
|
|
EXTEND
|
|
BZMF NOBDZ # NO Z-TRANSLATION
|
|
|
|
# Page 1044
|
|
# TABLE LOOK UP FOR BD Z-TRANSLATION WITH AND WITHOUT REAL BD QUAD FAILURES. Z-TRANSLATION WILL BE POSS-
|
|
# IBLE AS LONG AS ROLL COMMANDS CAN BE SATISFIED WITH THE AC ROLL JETS. CRITERION: IF THE RESULTANT NET ROLL
|
|
# COMMANDS = 0 (WITH Z-TRANSLATION) AND IF TAU = 0, THEN INCLUDE THE BD Z-TRANSLATION COMMANDS. IF THE RESULTANT
|
|
# ROLL COMMAND = 0, AND IF TAU NZ, THEN IGNORE THE BD Z-TRANSLATION
|
|
|
|
CCS RBDFAIL
|
|
CAF THREE
|
|
TCF +2
|
|
CAF SIX
|
|
INDEX ZNDX
|
|
AD XLN1NDX
|
|
INDEX A
|
|
CA YZTABLE
|
|
MASK BDZJETS # = 3417 OCT
|
|
AD RWORD1 # ADD TO ROLL COMMANDS
|
|
TS T5TEMP # IF POSSIBLE. MUST CHECK TAU FIRST
|
|
|
|
EXTEND
|
|
MP BIT7 # DETERMINE THE NET ROLL COMMAND WITH
|
|
AD =-4 # Z-TRANSLATION ADDED ON
|
|
TS NRJETS # NET NO. OF +,- ROLL JETS ON
|
|
EXTEND
|
|
BZF TAUCHECK
|
|
|
|
ACRBDZ CA T5TEMP # Z-TRANSLATION ACCEPTED EVEN THO WE MAY
|
|
TS RWORD1 # HAVE INTRODUCED AN UNDESIREABLE ROLL
|
|
TCF ROLLTIME # BRANCH TO JET ON-TIME CALCULATIONS
|
|
|
|
TAUCHECK CCS TAU
|
|
TCF NOBDZ
|
|
TCF ACRBDZ
|
|
TCF NOBDZ
|
|
TCF ACRBDZ
|
|
|
|
NOBDZ CA RWORD1 # Z-TRANSLATION NOT ACCEPTED
|
|
EXTEND
|
|
MP BIT7
|
|
AD =-2
|
|
TS NRJETS
|
|
TCF ROLLTIME # BRANCH TO JET ON-TIME CALCULATION
|
|
|
|
# Page 1045
|
|
# BD QUAD SELECTION FOR ROLL COMMANDS
|
|
|
|
BDROLL CCS RBDFAIL
|
|
TCF RBFAIL
|
|
TCF RZXLNS
|
|
TCF RDFAIL
|
|
TCF RZXLNS
|
|
RBFAIL CAF NINE
|
|
TCF TABRZCMD
|
|
RDFAIL CAF TWELVE
|
|
TCF TABRZCMD
|
|
|
|
RZXLNS INDEX ZNDX # NO BD FAILURES
|
|
CA XLNNDX # +,-,0 Z-TRANSLATION PRESENT
|
|
TABRZCMD AD RINDEX
|
|
INDEX A
|
|
CA RTABLE
|
|
MASK BDRJETS # = 34017 OCT
|
|
TS RWORD1
|
|
|
|
ACYCHECK CA YNDX # ANY Y-TRANSLATION
|
|
EXTEND
|
|
BZF NOACY # NO Y-TRANSLATION
|
|
CCS RACFAIL
|
|
CAF THREE
|
|
TCF +2
|
|
CAF SIX
|
|
INDEX YNDX
|
|
AD XLN1NDX
|
|
INDEX A
|
|
CA YZTABLE
|
|
MASK ACYJETS # = 34360 OCT
|
|
AD RWORD1
|
|
TS T5TEMP
|
|
EXTEND # FOR EXPLANATION SEE CODING ON RTABLE
|
|
MP BIT4
|
|
AD =-4
|
|
TS NRJETS # NO. OF NET ROLL JETS
|
|
EXTEND
|
|
BZF TAUCHCK # IF NRJETS = 0
|
|
|
|
BDRACZ CA T5TEMP # Y-TRANSLATION ACCEPTED
|
|
TS RWORD1
|
|
TCF ROLLTIME # BRANCH TO JET ON-TIME CALCULATIONS
|
|
|
|
TAUCHCK CCS TAU
|
|
TCF NOACY
|
|
TCF BDRACZ
|
|
TCF NOACY
|
|
TCF BDRACZ
|
|
|
|
# Page 1046
|
|
NOACY CA RWORD1 # Y-TRANSLATION NOT ACCEPTED
|
|
EXTEND
|
|
MP BIT4
|
|
AD =-2
|
|
TS NRJETS
|
|
TCF ROLLTIME
|
|
|
|
# Page 1047
|
|
# TABLE FOR ROLL, Y AND Z-TRANSLATION COMMANDS
|
|
#
|
|
# EITHER AC OR BD ROLL MAY BE SELECTED. IF AC ROLL IS SELECTED, Y-TRANSLATIONS MAY BE SATISFIED SIMULTANEOUSLY
|
|
# PROVIDED THAT THERE ARE NO AC QUAD FAILURES. IF THERE ARE AC FAILURES, Y-TRANSLATION COMMANDS WILL BE IGNORED,
|
|
# IN WHICH CASE THE ASTRONAUT SHOULD SWITCH TO BD ROLL.
|
|
#
|
|
# IF BDROLL IS SELECTED, Z-TRANSLATIONS MAY BE SATISFIED SIMULTANEOUSLY PROVIDED THAT THERE ARE NO BD QUAD
|
|
# FAILURES. IF THERE ARE BD FAILURES, Z-TRANSLATION COMMANDS WILL BE IGNORED, IN WHICH CASE THE ASTRONAUT SHOULD
|
|
# SWITCH TO AC ROLL.
|
|
#
|
|
# NOTE THAT IF ONE QUAD FAILS (E.G. B FAILED), Z-TRANSLATION IS STILL POSSIBLE AND THAT THE UNDESIRABLE ROLL
|
|
# INTRODUCED BY THIS TRANSLATION WILL BE COMPENSATED BY THE TWO AC ROLL JETS ACTUATED BY THE AUTOPILOT LOGIC.
|
|
#
|
|
# WORD MAKE UP....RTABLE
|
|
#
|
|
# TWO WORDS, CORRESPONDING TO AC OR BD ROLL SELECTION, HAVE BEEN COMBINED INTO ONE TABLE. THE WORD CORRESPONDING
|
|
# TO AC ROLL HAS THE FOLLOWING INTERPRETATION:
|
|
#
|
|
# BITS 9,10,11 ARE CODED TO GIVE THE NET ROLL TORQUE FOR THE WORD SELECTED. THE CODING IS:
|
|
#
|
|
# BIT NO. 11 10 9 NO. OF ROLL JETS
|
|
#
|
|
# 0 0 0 -2
|
|
# 0 0 1 -1
|
|
# 0 1 0 0
|
|
# 0 1 1 +1
|
|
# 1 0 0 +2
|
|
#
|
|
# THIS WORD MAY THEN BE ADDED TO THE WORD SELECTED FROM THE YZ-TRANSLATION TABLE, WHICH HAS THE SAME TYPE OF
|
|
# CODING AS ABOVE, AND THE NET ROLL DETERMINED BY SHIFTING THE RESULTANT WORD RIGHT 8 PLACES AND SUBTRACTING FOUR.
|
|
#
|
|
# THE WORD CORRESPONDING TO THE BD ROLL HAS A SIMILAR INTERPRETATION, EXCEPT THAT BITS 12, 13, 14 ARE CODED
|
|
# (AS ABOVE) TO GIVE THE NET ROLL TORQUE.
|
|
|
|
# ROLL TRANS QUADFAIL BIAS
|
|
|
|
RTABLE OCT 11000 # 0 0
|
|
OCT 22125 # + 0
|
|
OCT 00252 # - 0
|
|
OCT 11231 # 0 +Y(+Z) 3
|
|
OCT 15421 # + +Y(+Z) 3
|
|
OCT 04610 # - +Y(+Z) 3
|
|
OCT 11146 # 0 -Y(-Z) 6
|
|
OCT 15504 # + -Y(-Z) 6
|
|
OCT 04442 # - -Y(-Z) 6
|
|
OCT 11000 # 0 A(B) 9
|
|
OCT 15504 # + A(B) 9
|
|
OCT 04610 # - A(B) 9
|
|
OCT 11000 # 0 C(D) 12
|
|
OCT 15421 # + C(D) 12
|
|
OCT 04442 # - C(D) 12
|
|
|
|
# Page 1048
|
|
# RTABLE MASKS:
|
|
|
|
ACRJETS OCT 03760
|
|
BDRJETS OCT 34017
|
|
|
|
# Page 1049
|
|
# Y, Z TRANSLATION TABLE
|
|
#
|
|
# ONCE AC OR BD ROLL IS SELECTED THE QUAD PAIR WHICH IS NOT BEING USED TO SATISFY THE ROLL COMMANDS MAY BE
|
|
# USED TO SATISFY THE REMAINING TRANSLATION COMMANDS. HOWEVER, WE MUST MAKE SURE THAT ROLL COMMANDS ARE SATISFIED
|
|
# WHEN THEY OCCUR. THEREFORE, THE Y-Z TRANSLATIONS FROM THIS TABLE WILL BE IGNORED IF THE NET ROLL TORQUE OF THE
|
|
# COMBINED WORD IS ZERO AND THE ROLL COMMANDS ARE NON-ZERO. THIS SITUATION WOULD OCCUR, FOR EXAMPLE, IF WE EN-
|
|
# COUNTER SIMULTANEOUS +R +Y -Z COMMANDS AND A QUAD D FAILURE WHILE USING AC FOR ROLL.
|
|
#
|
|
# TO FACILITATE THE LOGIC, THE Y-Z TRANSLATION TABLE HAS BEEN CODED IN A MANNER SIMILAR TO THE ROLL TABLE
|
|
# ABOVE.
|
|
#
|
|
# BITS 9,10,11 ARE CODED TO GIVE THE NET ROLL TORQUE INCURRED BY Z-TRANSLATIONS. THE WORD SELECTED CAN THEN BE
|
|
# ADDED TO THE AC-ROLL WORD AND THE RESULTANT ROLL TORQUE DETERMINED FROM THE COMBINED WORD. SIMILARLY BITS
|
|
# 12,13,14 ARE CODED TO GIVE THE NET ROLL TORQUE INCURRED BY Y-TRANSLATIONS WHEN BD-ROLL IS SELECTED.
|
|
|
|
# TRANSLATION QUADFAIL BIAS
|
|
#
|
|
YZTABLE OCT 11000 # 0 0
|
|
OCT 11231 # +Z(+Y) 0
|
|
OCT 11146 # -Z(-Y) 0
|
|
OCT 11000 # 0 B(A) 3
|
|
OCT 04610 # +Z(+Y) B(A) 3
|
|
OCT 15504 # -Z(-Y) B(A) 3
|
|
OCT 11000 # 0 D(C) 6
|
|
OCT 15421 # +Z(+Y) D(C) 6
|
|
OCT 04442 # -Z(-Y) D(C) 6
|
|
|
|
# YZ-TABLE MASKS:
|
|
|
|
BDZJETS OCT 03417
|
|
ACYJETS OCT 34360
|
|
|
|
# ADDITIONAL CONSTANTS
|
|
|
|
=-2 = NEG2
|
|
=-4 = NEG4
|
|
|
|
# Page 1050
|
|
# CALCULATION OF JET ON-TIMES
|
|
#
|
|
# THE ROTATION COMMANDS (TAU'S), WHICH WERE DETERMINED FROM THE JET SWITCHING LOGIC ON THE BASIS OF SINGLE JET
|
|
# OPERATION, MUST NOW BE UPDATED BY THE ACTUAL NUMBER OF JETS TO BE USED IN SATISFYING THESE COMMANDS. TAU MUST
|
|
# ALSO BE DECREMENTED ACCORDING TO THE EXPECTED TORQUE GENERATED BY THE NEW COMMANDS ACTING OVER THE NEXT T5
|
|
# INTERVAL.
|
|
#
|
|
# IN ORDER TO MAINTAIN ACCURATE KNOWLEDGE OF VEHICLE ANGULAR RATES, WE MUST ALSO PROVIDE EXPECTED FIRING TIMES
|
|
# (DFT'S, ALSO IN TERMS OF 1-JET OPERATION) FOR THE RATE FILTER.
|
|
#
|
|
# NOTE THAT TRANSLATIONS CAN PRODUCE ROTATIONS EVEN THOUGH NO ROTATIONS WERE CALLED FOR. NEVERTHELESS, WE MUST
|
|
# UPDATE DFT.
|
|
#
|
|
# WHEN THE ROTATIONS HAVE FINISHED, WE MUST PROVIDE CHANNEL INFORMATION TO THE T6 PROGRAM TO CONTINUE ON WITH
|
|
# THE TRANSLATIONS. THIS WILL BE DONE IN THE NEXT SECTION. HOWEVER, TO INSURE THAT JETS ARE NOT FIRED FOR LESS
|
|
# THAN A MINIMUM IMPULSE (14MS), ALL JET CHANNEL COMMANDS WILL BE HELD FIXED FROM THE START OF THE T5 PROGRAM FOR
|
|
# AT LEAST 14MS UNTIL THE INITIALIZATION OF NEW COMMANDS. MOREOVER, A 14MS ON-TIME WILL BE ADDED TO ANY ROTATIONAL
|
|
# COMMANDS GENERATED BY THE MANUAL CONTROLS OR THE JET SWITCHING LOGIC, AND ALL TRANSLATION COMMANDS WILL BE
|
|
# ACTIVE FOR AT LEAST ONE CYCLE OF THE T5 PROGRAM (.1SEC)
|
|
|
|
# PITCH JET ON-TIME CALCULATION
|
|
|
|
PITCHTIM CCS TAU1
|
|
TCF PTAUPOS
|
|
TCF +2
|
|
TCF PTAUNEG
|
|
TS DFT1 # NO PITCH ROTATION
|
|
TCF PBYPASS # COMMANDS
|
|
|
|
PTAUNEG CS NPJETS
|
|
TS NPJETS
|
|
PTAUPOS CA TAU1
|
|
EXTEND
|
|
INDEX NPJETS
|
|
MP NJET
|
|
TS BLAST1
|
|
AD =-.1SEC
|
|
EXTEND
|
|
BZMF AD14MSP
|
|
INDEX NPJETS
|
|
CA DFTMAX # THE PITCH ON-TIME IS GREATER THAN .1 SEC
|
|
TS DFT1
|
|
COM
|
|
ADS TAU1 # UPDATE TAU1
|
|
CAF =+.1SEC # LIMIT THE LENGTH OF PITCH ROTATION
|
|
TS BLAST1 # COMMANDS TO 0.1 SEC SO THAT ONLY
|
|
TCF ASMBLWP # X-TRANSLATIONS WILL CONTINUE ON SWITCH
|
|
# OVER TO TVC
|
|
AD14MSP CS BLAST1 # SEE IF JET ON TIME IS LESS THAN
|
|
AD =14MS # MINIMUM IMPULSE TIME
|
|
EXTEND
|
|
BZMF PBLASTOK # IF SO LIMIT MINIMUM ON TIME TO 14 MS
|
|
CAF =14MS
|
|
# Page 1051
|
|
TS BLAST1
|
|
PBLASTOK CA BLAST1
|
|
EXTEND # THE PITCH COMMANDS WILL BE COMPLETED
|
|
MP NPJETS # WITHIN THE TS-CYCLE TIME
|
|
LXCH DFT1 # FOR USE IN UPDATING RATE FILTER
|
|
TS TAU1 # ZERO TAU1 (ACC CONTAINS ZERO)
|
|
TCF ASMBLWP
|
|
|
|
# Page 1052
|
|
# YAW JET ON-TIME CALCULATION
|
|
|
|
YAWTIME CCS TAU2
|
|
TCF YTAUPOS
|
|
TCF +2
|
|
TCF YTAUNEG
|
|
TS DFT2 # NO YAW ROTATION COMMANDS
|
|
TCF YBYPASS
|
|
|
|
YTAUNEG CS NYJETS
|
|
TS NYJETS
|
|
YTAUPOS CA TAU2
|
|
EXTEND
|
|
INDEX NYJETS
|
|
MP NJET
|
|
TS BLAST2
|
|
AD =-.1SEC
|
|
EXTEND
|
|
BZMF AD14MSY
|
|
INDEX NYJETS
|
|
CA DFTMAX # YAW COMMANDS WILL LAST LONGER THAN .1SEC
|
|
TS DFT2
|
|
COM
|
|
ADS TAU2 # DECREMENT TAU2
|
|
CAF =+.1SEC # LIMIT THE LENGTH OF YAW ROTATION COMMAND
|
|
TS BLAST2 # TO 0.1 SEC SO THAT ONLY X-TRANSLATION
|
|
TCF ASMBLWY # WILL CONTINUE ON SWITCH OVER TO TVC
|
|
|
|
AD14MSY CS BLAST2 # SEE IF JET ON-TIME LESS THAN
|
|
AD =14MS # MINIMUM IMPULSE TIME
|
|
EXTEND
|
|
BZMF YBLASTOK # IF SO, LIMIT MINIMUM ON-TIME TO 14 MS
|
|
CAF =14MS
|
|
TS BLAST2
|
|
YBLASTOK CA BLAST2 # YAW COMMANDS WILL BE COMPLETED WITHIN
|
|
EXTEND # THE T5CYCLE TIME
|
|
MP NYJETS
|
|
LXCH DFT2
|
|
TS TAU2 # ZERO TAU2
|
|
TCF ASMBLWY
|
|
|
|
# Page 1053
|
|
# ROLL ON-TIME CALCULATION:
|
|
|
|
ROLLTIME CCS TAU
|
|
TCF RBLAST
|
|
TCF +2
|
|
TCF RBLAST
|
|
INDEX NRJETS
|
|
CA DFTMAX # UPDATE DFT EVEN THO NO ROLL COMMANDS ARE
|
|
TS DFT # PRESENT
|
|
TCF RBYPASS
|
|
|
|
DEC -480 # =-.3SEC
|
|
DEC -320 # =-.2SEC
|
|
=-.1SEC DEC -160 # =-.1SEC
|
|
DFTMAX DEC 0 # 0
|
|
=+.1SEC DEC 160 # =+.1SEC
|
|
DEC 320 # =+.2SEC
|
|
DEC 480 # =+.3SEC
|
|
=14MS DEC 23 # =14MS
|
|
|
|
RBLAST CA TAU
|
|
EXTEND
|
|
INDEX NRJETS
|
|
MP NJET
|
|
TS BLAST # BLAST IS AN INTERMEDIATE VARIABLE
|
|
# USED IN DETERMINING THE JET ON-TIMES
|
|
AD =-.1SEC
|
|
EXTEND
|
|
BZMF AD14MSR
|
|
INDEX NRJETS # THE ROLL ROTATION WILL LAST LONGER
|
|
CA DFTMAX # THAN THE T5 CYCLE TIME
|
|
TS DFT
|
|
COM
|
|
ADS TAU
|
|
CAF =+.1SEC # LIMIT THE LENGTH OF ROLL ROTATION
|
|
TS BLAST # COMMANDS TO 0.1 SEC SO THAT ONLY Y-Z
|
|
TCF ASMBLWR # TRANSLATION COMMANDS CONTINUE
|
|
|
|
AD14MSR CS BLAST # SEE IF THE JET ON-TIME LESS THAN
|
|
AD =14MS # MINIMUM IMPULSE TIME
|
|
EXTEND
|
|
BZMF RBLASTOK
|
|
CAF =14MS # IF SO, LIMIT MINIMUM ON-TIME TO 14 MS
|
|
TS BLAST
|
|
RBLASTOK CA BLAST
|
|
EXTEND
|
|
MP NRJETS
|
|
LXCH DFT
|
|
TS TAU # ZERO TAU
|
|
TCF ASMBLWR
|
|
|
|
# Page 1054
|
|
DEC -.333333 # = -1/3
|
|
DEC -.500000 # = -1.2
|
|
DEC -.999999 # = -1 (NEGMAX)
|
|
NJET DEC 0
|
|
DEC .999999 # = +1 (POSMAX)
|
|
DEC .500000 # = +1/2
|
|
DEC .333333 # = +1/3
|
|
|
|
# Page 1055
|
|
# WHEN THE ROTATION COMMANDS ARE COMPLETED, IT IS NECESSARY TO REPLACE THESE COMMANDS BY NEW COMMANDS WHICH
|
|
# CONTINUE ON WITH THE TRANSLATIONS IF ANY ARE PRESENT.
|
|
#
|
|
# IN THIS SECTION THESE NEW COMMANDS ARE GENERATED AND STORED FOR REPLACEMENT OF THE CHANNEL COMMANDS WHEN THE
|
|
# CORRESPONDING ROTATIONS ARE COMPLETED.
|
|
#
|
|
# GENERATION OF THE SECOND PITCH(X-TRANS) WORD...PWORD2
|
|
|
|
ASMBLWP CCS RACFAIL
|
|
TCF FPX2 # IF FAILURE ON AC IGNORE X-TRANSLATION
|
|
TCF +2
|
|
TCF FPX2
|
|
INDEX XNDX1
|
|
CA XLNNDX
|
|
INDEX A
|
|
FPX2 CA PYTABLE
|
|
MASK PJETS
|
|
TS PWORD2
|
|
TCF YAWTIME
|
|
|
|
PBYPASS CA PWORD1 # THE T6 PROGRAM WILL LOAD PWORD2
|
|
TS PWORD2 # UPON ENTRY
|
|
CAF ZERO
|
|
TS BLAST1 # THERE IS NO PWORD2
|
|
TCF YAWTIME
|
|
|
|
# Page 1056
|
|
# GENERATION OF THE SECOND ROLL (Y,Z) WORD (RWORD2)
|
|
|
|
ASMBLWR CCS YNDX # CHECK FOR Y-TRANS
|
|
TCF ACBD2Y
|
|
NO2Y CAF ZERO
|
|
TS RWORD2
|
|
CCS ZNDX # CHECK FOR Z-TRANS
|
|
TCF ACBD2Z
|
|
NO2Z CAF ZERO
|
|
ADS RWORD2
|
|
TCF PITCHTIM # RWORD2 ASSEMBLED
|
|
|
|
ACBD2Y CCS ACORBD
|
|
TCF AC2Y # CAN DO Y-TRANS
|
|
TCF AC2Y
|
|
TCF +1 # USING AC FOR ROLL
|
|
CCS RACFAIL
|
|
TCF NO2Y # USING AC AND AC HAS FAILED
|
|
TCF +2
|
|
TCF NO2Y # DITTO
|
|
|
|
INDEX YNDX # NO FAILURES, CAN DO Y
|
|
CA XLNNDX
|
|
INDEX A
|
|
CA RTABLE
|
|
MASK ACRJETS
|
|
TCF NO2Y +1
|
|
|
|
AC2Y CCS RACFAIL
|
|
CAF THREE
|
|
TCF +2
|
|
CAF SIX
|
|
INDEX YNDX
|
|
AD XLN1NDX
|
|
INDEX A
|
|
CA YZTABLE
|
|
MASK ACYJETS
|
|
TS RWORD2
|
|
EXTEND
|
|
MP BIT4
|
|
AD =-2
|
|
TS NRJETS
|
|
CS BLAST
|
|
AD =+.1SEC
|
|
EXTEND
|
|
MP NRJETS
|
|
CA L
|
|
ADS DFT
|
|
TCF NO2Y +2
|
|
# Page 1057
|
|
ACBD2Z CCS ACORBD
|
|
TCF BDF2Z # USING BD-ROLL
|
|
TCF BDF2Z # MUST CHECK FOR BD FAILURES
|
|
TCF +1
|
|
CCS RBDFAIL # USING AC FOR ROLL, CAN DO Z-TRANS
|
|
CAF THREE
|
|
TCF +2
|
|
CAF SIX
|
|
INDEX ZNDX
|
|
AD XLN1NDX
|
|
INDEX A
|
|
CA YZTABLE
|
|
MASK BDZJETS
|
|
ADS RWORD2
|
|
EXTEND
|
|
MP BIT7
|
|
AD =-2
|
|
TS NRJETS
|
|
CS BLAST
|
|
AD =+.1SEC
|
|
EXTEND
|
|
MP NRJETS
|
|
CA L
|
|
ADS DFT
|
|
TCF PITCHTIM
|
|
|
|
BDF2Z CCS RBDFAIL
|
|
TCF NO2Z # USING BD-ROLL AND BD HAS FAILED
|
|
TCF +2
|
|
TCF NO2Z # DITTO
|
|
INDEX ZNDX
|
|
CA XLNNDX
|
|
INDEX A
|
|
CA RTABLE
|
|
MASK BDRJETS
|
|
TCF NO2Z +1
|
|
|
|
RBYPASS CA RWORD1
|
|
TS RWORD2
|
|
CAF ZERO
|
|
TS BLAST
|
|
TCF PITCHTIM
|
|
|
|
# Page 1058
|
|
# GENERATION OF THE SECOND YAW (X-TRANS) WORD...YWORD2
|
|
|
|
ASMBLWY CCS RBDFAIL
|
|
TCF FYX2 # IF FAILURE ON BD IGNORE X-TRANSLATION
|
|
TCF +2
|
|
TCF FYX2
|
|
INDEX XNDX2
|
|
CA XLNNDX
|
|
INDEX A
|
|
FYX2 CA PYTABLE
|
|
MASK YJETS
|
|
TS YWORD2
|
|
TCF T6SETUP
|
|
|
|
YBYPASS CA YWORD1
|
|
TS YWORD2
|
|
CAF ZERO
|
|
TS BLAST2
|
|
|
|
# Page 1059
|
|
# SORT THE JET ON-TIMES
|
|
#
|
|
# AT THIS POINT ALL THE CHANNEL COMMANDS AND JET ON-TIMES HAVE BEEN DETERMINED. IN SUMMARY THESE ARE:
|
|
#
|
|
# RWORD1
|
|
# RWORD2 BLAST
|
|
#
|
|
# PWORD1
|
|
# PWORD2 BLAST1
|
|
#
|
|
# YWORD1
|
|
# YWORD2 BLAST2
|
|
#
|
|
# IN THIS SECTION THE JET ON-TIMES ARE SORTED AND THE SEQUENCE OF T6 INTERRUPTS IS DETERMINED. TO FACILITATE
|
|
# THE SORTING PROCESS AND THE T6 PROGRAM, THE VARIABLES BLAST, BLAST1, BLAST2, ARE RESERVED AS DOUBLE PRECISION
|
|
# WORDS. THE LOWER PART OF THESE WORDS CONTAIN A BRANCH INDEX ASSOCIATED WITH THE ROTATION AXIS OF THE HIGHER
|
|
# ORDER WORD.
|
|
|
|
T6SETUP CAF ZERO # BRANCH INDEX FOR ROLL
|
|
TS BLAST +1
|
|
CAF FOUR # BRANCH INDEX FOR PITCH
|
|
TS BLAST1 +1
|
|
CAF ELEVEN # BRANCH INDEX FOR YAW
|
|
TS BLAST2 +1
|
|
|
|
CS BLAST
|
|
AD BLAST1
|
|
EXTEND
|
|
BZMF DXCHT12 # T1 OR T2
|
|
CHECKT23 CS BLAST1
|
|
AD BLAST2
|
|
EXTEND
|
|
BZMF DXCHT23
|
|
CALCDT6 CS BLAST1
|
|
ADS BLAST2
|
|
CS BLAST
|
|
ADS BLAST1 # END OF SORTING PROCEDURE
|
|
EXTEND # RESET T5LOC TO BEGIN PHASE1
|
|
DCA RCS2CADR
|
|
DXCH T5LOC
|
|
ENDJETS CS BIT1 # RESET BIT1 FOR INITIALIZATION OF
|
|
MASK RCSFLAGS # T6 PROGRAM
|
|
TS RCSFLAGS
|
|
CS ZERO # RESET T5PHASE FOR PHASE1
|
|
TS T5PHASE
|
|
TCF RESUME # RESUME INTERRUPTED PROGRAM
|
|
|
|
EBANK= KMPAC
|
|
RCS2CADR 2CADR RCSATT
|
|
|
|
# Page 1060
|
|
DXCHT12 DXCH BLAST
|
|
DXCH BLAST1
|
|
DXCH BLAST
|
|
TCF CHECKT23
|
|
|
|
DXCHT23 DXCH BLAST1
|
|
DXCH BLAST2
|
|
DXCH BLAST1
|
|
CS BLAST
|
|
AD BLAST1
|
|
EXTEND
|
|
BZMF +2
|
|
TCF CALCDT6
|
|
DXCH BLAST
|
|
DXCH BLAST1
|
|
DXCH BLAST
|
|
TCF CALCDT6
|
|
|
|
# Page 1061
|
|
# T6 PROGRAM AND CHANNEL SETUP
|
|
|
|
BANK 21
|
|
SETLOC DAPS5
|
|
BANK
|
|
|
|
T6START LXCH BANKRUPT
|
|
EXTEND
|
|
QXCH QRUPT
|
|
CCS TIME6 # CHECK TO SEE IF TIME6 WAS RESET
|
|
TCF RESUME # AFTER T6RUPT OCCURRED (IN T5RUPT)
|
|
TCF +2 # IF SO WAIT FOR NEXT T6RUPT BEFORE
|
|
TCF RESUME # TAKING ACTION
|
|
|
|
CS RCSFLAGS
|
|
MASK BIT1 # IF BIT1 IS 0 RESET TO 1
|
|
EXTEND # AND INITIALIZE CHANNEL
|
|
BZF T6RUPTOR
|
|
ADS RCSFLAGS
|
|
CA RWORD1
|
|
EXTEND # INITIALIZE CHANNELS 5,6 WITH WORD1
|
|
WRITE CHAN6
|
|
CA PWORD1
|
|
AD YWORD1
|
|
EXTEND
|
|
WRITE CHAN5
|
|
|
|
T6RUPTOR CCS BLAST
|
|
TCF ZBLAST # ZERO BLAST1
|
|
TCF REPLACE # REPLACE WORD1
|
|
TCF +2
|
|
TCF REPLACE
|
|
T6L1 CCS BLAST1
|
|
TCF ZBLAST1
|
|
TCF REPLACE1
|
|
TCF +2
|
|
TCF REPLACE1
|
|
T6L2 CCS BLAST2
|
|
TCF ZBLAST2
|
|
TCF REPLACE2
|
|
TCF RESUME
|
|
TCF REPLACE2
|
|
|
|
REPLACE INDEX BLAST +1
|
|
TC REPLACER
|
|
CS ONE
|
|
TS BLAST
|
|
TCF T6L1
|
|
|
|
REPLACE1 INDEX BLAST1 +1
|
|
# Page 1062
|
|
TC REPLACER
|
|
CS ONE
|
|
TS BLAST1
|
|
TCF T6L2
|
|
|
|
REPLACE2 INDEX BLAST2 +1
|
|
TC REPLACER
|
|
CS ONE
|
|
TS BLAST2
|
|
TCF RESUME
|
|
|
|
REPLACER CA RWORD2 # INITIALIZE CHANNELS 5,6 WITH WORD2
|
|
EXTEND
|
|
WRITE CHAN6
|
|
TC Q
|
|
|
|
REPLACEP CA YJETS
|
|
EXTEND
|
|
RAND CHAN5
|
|
AD PWORD2
|
|
EXTEND
|
|
WRITE CHAN5
|
|
TC Q
|
|
|
|
REPLACEY CA PJETS
|
|
EXTEND
|
|
RAND CHAN5
|
|
AD YWORD2
|
|
EXTEND
|
|
WRITE CHAN5
|
|
TC Q
|
|
|
|
ZBLAST CAF ZERO
|
|
XCH BLAST
|
|
TCF ENABT6
|
|
ZBLAST1 CAF ZERO
|
|
XCH BLAST1
|
|
TCF ENABT6
|
|
ZBLAST2 CAF ZERO
|
|
XCH BLAST2
|
|
ENABT6 TS TIME6
|
|
CAF NEGMAX
|
|
EXTEND
|
|
WOR CHAN13 # ENABLE T6RUPT
|
|
TCF RESUME
|
|
|
|
# END OF T6 INTERRUPT
|
|
|
|
ENDSLECT EQUALS
|
|
|