forked from chrislgarry/Apollo-11
-
Notifications
You must be signed in to change notification settings - Fork 3
/
JET_SELECTION_LOGIC.s
932 lines (823 loc) · 21.6 KB
/
JET_SELECTION_LOGIC.s
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
# 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 UNDESIRABLE 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 UNDESIREABLE 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 INTEPRETATION, 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