forked from chrislgarry/Apollo-11
-
Notifications
You must be signed in to change notification settings - Fork 3
/
P40-P47.s
2429 lines (2130 loc) · 50.2 KB
/
P40-P47.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
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# Copyright: Public domain.
# Filename: P40-P47.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: 684-736
# Mod history: 2009-05-11 RSB Adapted from the Colossus249/ file
# of the same name, using Comanche055 page
# images.
# 2009-05-20 RSB In S20.1, a DMP DDV was corrected to DMPR DDV.
# 2009-05-22 RSB In BESTTRIM, TC PACTOFF corrected to
# TS PACTOFF.
# 2009-05-23 RSB Prior to the 2CADR at T5IDLDAP, added an
# SBANK.
#
# 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 684
# PROGRAM DESCRIPTION ** P40CSM **
EBANK= DAPDATR1
BANK 31
SETLOC P40S
BANK
COUNT 24/P40
P40CSM TC DOWNFLAG
ADRES ENG2FLAG
TC INTPRET
SLOAD BOFF
ECSTEER # IS THIS AN EXTERNAL DELTA V BURN
XDELVFLG
P40S/C # NO CSTEER = ECSTEER
DLOAD # YES CSTEER = ZERO
HI6ZEROS
P40S/C STODL CSTEER
FENG # SET UP THRUST FOR P40 20,000 LBS
P40S/F STODL F # P41 ENTERS HERE
TIG # ORIGINAL TIG MAY BE SLIPPED BY P40S/SV
STORE NOMTIG # SET ORIGINAL TIME OF IGNITION FOR S40.9
EXIT
TC BANKCALL
CADR R02BOTH # IMU STATUS CHECK
P40PVA TC INTPRET
CALL
S40.1 # COMPUTE VGTIG,UT
CALL
S40.2,3 # COMPUTE PREFERRED ATTITUDE
SET EXIT
PFRATFLG
P40SXTY TCR SETMINDB -1 # NARROW DEADBAND FOR MANEUVER (EBANK6)
RELINT
TC BANKCALL
CADR R60CSM # ATTITUDE MANEUVER
CS ONE # FOR UPDATEVG
TS NBRCYCLS
TC UPFLAG
ADRES TIMRFLAG # ALLOW CLOCKTASK
TC P41/P40
TC P41/DSP # P41
P40TTOG CAF V06N40 # INITIALIZE FOR CLOCKTASK WHICH IS CALLED
# Page 685
TS NVWORD1 # BELOW
TC INTPRET
VLOAD ABVAL # FOR R2
VGTIG
STODL VGDISP
HI6ZEROS
STORE DVTOTAL
EXIT
EXTEND
DCA STEERADS # SET FOR UPDATEVG AND TEST FOR STEERING
DXCH AVEGEXIT # AFTER AVERAGE G
P40GMB CAF P40CKLS2 # (4.1 PROTECTION)
TC BANKCALL
CADR GOPERF1
TCF POST41 # V34
TCF TST,TRIM # V33
TRIMONLY CS BIT1 # SET MRKRTEMP FOR GIMBAL TRIM (-1)
+1 TS MRKRTMP # ENTRY FROM TST,TRIM
CAF ZERO # SET CNTR +0 FOR RESTART LOGIC IN S40.6
TS CNTR # +0 SAYS NORMAL ENTRY
# +1 (PRE40.6) SAYS RESTART ENTRY
CAF ONE
TC WAITLIST
EBANK= DAPDATR1
2CADR S40.6
CCS MRKRTMP # TEST TO FIND TIME TO WAIT FOR GIMBAL TEST
CAF 18SEC # PLUS, DELAY FOR 18 SECONDS
TCF +2 # HOLE
CAF 5SEC # DELAY FOR TRIM ONLY TASK
TC BANKCALL
CADR DELAYJOB
TC 2PHSCHNG
OCT 40026 # 6.2 = PRE40.6(-0CS), CLOKTASK(100CS)
OCT 00234 # 4.23 = P40S/SV (PRIO12)
P40S/RS CAF ONE
TC WAITLIST # P41/SDP
EBANK= TIG
2CADR CLOKTASK
RELINT
P40S/SV TCR E7SETTER # JOB, 4.23 PRETECTS, PREO12
EBANK= TIG
# Page 686
TC INTPRET
DLOAD DSU
TIG
SEC29.96
STORE TDEC1
CALRB # RETURN IN BASIC
MIDTOAV1
TCF +2
TC P40SNEWM # INTEGRATION TIME GREATER THAN ALLOWED
P40SET EXTEND
DCA MPAC # DELTA TIME TO PREREAD (INT.INIT.)
DXCH P40TMP
EXTEND
DCS 5SECDP # FOR TIGBLNK
DAS P40TMP
EXTEND
DCA P40TMP
TC LONGCALL
EBANK= TIG
2CADR TIGBLNK
TC PHASCHNG
OCT 20214 # 4.21 = TIGBLNK (P40TMP CS)
TCF ENDOFJOB
P40BLNKR TC BANKCALL
CADR CLEANDSP # REMOVE RESIDUE
TCF ENDOFJOB
EBANK= TIG
P40SNEWM EXTEND
DCA PIPTIME1
DXCH TIG # SET NEW TIG FOR 06 40
EXTEND
DCA SEC29.96
DAS TIG
TCF P40SET # FOR LONGCALL OF TIG-30 (OR -35)
EBANK= DAPDATR1
POSTBURN CAF V16N40
TC BANKCALL
CADR REFLASH
TCF POST41 # V34 GO FINISH
TCF P40RCS # PROCEED
TCF POSTBURN # RECYCLE
P40RCS EXTEND # V99N40 ENTERS HERE ON A P40 BYPASS SPS
DCA ACADN85
DXCH AVEGEXIT
CAF 2SECS # WAIT FOR CALCN85 VIA AVEGEXIT
TC BANKCALL
# Page 687
CADR DELAYJOB
P40MINDB TCR SETMINDB -1
RELINT
TIGNOW TC PHASCHNG
OCT 05024 # TYPE C GROUP 4 BELOW FOR NOUN 85
OCT 20000 # PRIO 20
CAF V16N85B
TC BANKCALL
CADR REFLASH
TCF POST41 # FINISH P40/P41
TCF POST41 # V03 PROCEED WITH REST OF THE CLEAN-UP
TCF TIGNOW # V32 NOT GSOP RESPONSE BUT REDISPLAY N85
POST41 EXTEND
DCA SERVCADR
DXCH AVEGEXIT
TCF GOTOP00H
MINDB DEC 46
MAXDB DEC 455
EBANK= DAPDATR1
-1 INHINT
SETMINDB CA CDUX # ROUTINE FOR SETTING
TS THETADX # THE MINIMUM DEADBAND
EXTEND # IN AUTOPILOT
DCA CDUY
DXCH THETADY
CA MINDB # SHOULD BE CALLED UNDER
TS ADB # INTERRUPT INHIBITED
CS BIT4 # EBANK = E6
MASK DAPDATR1
TS DAPDATR1
TC Q
EBANK= DAPDATR1
-1 INHINT
SETMAXDB CA MAXDB # ROUTINE FOR SETTING
TS ADB # THE MAXIMUM DEADBAND IN AUTOPILOT
CS DAPDATR1
MASK BIT4 # SHOULD BE CALLED UNDER
ADS DAPDATR1 # INTERRUPT INHIBITED
TC Q # EBANK = E6
# Page 688
# PROGRAM DESCRIPTION ** P41CSM **
SETLOC P40S2
BANK
EBANK= DAPDATR1
COUNT 24/P41
P41CSM TC UPFLAG
ADRES ENG2FLAG # SET FOR RCS
TC INTPRET
DLOAD
HI6ZEROS # FOR P41 CSTEER =0
STORE CSTEER
DLOAD BON
FRCS2 # 2JET THRUST FOR S40.1
NJETSFLG
P40S/F # NJETS = 1 2-JET
DAD GOTO # NJETS = 0 4-JET
FRCS2
P40S/F
SETLOC P40S
BANK
P41/P40 CS MODREG
MASK ONE # P41EXITS AT CALL LOC +1
EXTEND
BZF +2 # P41
INCR Q # P40 EXITS AT CALL LOC +2
TC Q
TTG/0 CAF PRIO20 # TASK (4.4 PROTECTS IN P41)
TC NOVAC
EBANK= DAPDATR1
2CADR TIGNOW
P40CLK TC DOWNFLAG
ADRES TIMRFLAG
TCF TASKOVER
P41/DSP CAF V06N85B # SET UP FOR NONFLASH V 06 N85 BY CLOCKJOB
TS NVWORD1
TC INTPRET
# Page 689
CALL # COMPUTE
P40CNV85 # VGTIG IN CTRL COORDS
EXIT
EXTEND # DO CONTROL COORD CALCULATION AFTER AVEG
DCA ACADN85
DXCH AVEGEXIT
TC 2PHSCHNG
OCT 40036 # 6.3=CLOKTASK(100CS)
OCT 234 # 4.23=P40S/SV(PRIO12)
TCF P40S/RS
P41REDSP CAF V16N85B # ENTER FROM P41 SIDE OF TIGAVEG
TS NVWORD1 # REDISPLAY NONFLASHING
CAF SEC29.96 +1
TC WAITLIST
EBANK= DAPDATR1
2CADR TTG/0
CS BIT3
TCF TTGPHS
P40CNV85 STQ SETPD
QTEMP1
0
VLOAD PUSH
VGPREV # EQUALS VGTIG (TARGETTING INPUT)
CALL
S41.1
STCALL VGBODY
QTEMP1
EBANK= DAPDATR1
CALCN85 TC INTPRET
CALL
UPDATEVG # NEW VG, S40.8 (+MAYBE S40.9)
CALL
P40CNV85 # COMPUTE VGBODY
EXIT
TC SERVXT
FENG 2DEC 9.1188544 B-7 # SPS THRUST (20500LBS), SC.AT B+7 NEWT/E4
FRCS2 2DEC .087437837 B-7 # RCS ULLAGE (199.6COS10 LBS), SC.AT
# B+7 NEWTONS/E+4
SEC24.96 DEC 2496
SEC29.96 2DEC 2996
18SEC DEC 1800
P40CKLS2 OCT 204
40CST5 OCT 37730 # 40 CS FOR THE T5 CLOCK
OCT12 = TEN
# Page 690
V1683 VN 1683
V06N85B VN 0685
V16N85B VN 1685
V06N40 VN 0640
V16N40 VN 1640
OCT27/24 OCT 27
OCT53 OCT 53
OCT35 OCT 35
EBANK= DAPDATR1
T5IDL24 2CADR T5IDLOC
3MDOT DEC 86.6175796 B-16 # 3SEC MASS LOSS (63.8 LBS/SEC), SC.AT
# B+16 KB/SEC (NOT, EMDOT IS PAD-LOADED,
# BUT 3MDOT IS NOT A CRITICAL QUANTITY, SO
# IT CAN REMAIN IN FIXED MEMORY)
TST,TRIM CAF BIT1 # SET UP FOR GIMB DRIVE TEST AND TRIM (+1)
TCF TRIMONLY +1
TIGBLNK CAF 5SEC # CALL TIGAVEG IN FIVE SEC AT TIG-30
TC WAITLIST
EBANK= TIG
2CADR TIGAVEG
CAF ZERO # DISABLE HERE, NOT IN P40BLNKR
TS NVWORD1
CAF PRIO14
TC NOVAC
EBANK= TIG
2CADR P40BLNKR # DON'T PROTECT -- RESTARTS BLANK DSKY
CS OCT37 # 4.37 = TIGAVEG (500CS)
P40TSK TC NEWPHASE
OCT 4
TC TASKOVER
EBANK= TIG
ACADN83 2CADR CALCN83
EBANK= TIG
SERVCADR 2CADR SERVEXIT
EBANK= DAPDATR1
ACADN85 2CADR CALCN85
# Page 691
# PROGRAM DESCRIPTION ** P47CSM **
COUNT 24/P47
EBANK= TIG
P47CSM TC BANKCALL # IMU STATUS CHECK
CADR R02BOTH
TC INTPRET
CALRB
MIDTOAV2
CA MPAC +1 # DELTA TIME TO RPEREAD (LESS THAN 100
TS P40TMP # CS, WITH A TPAGREE, INT.INIT.)
TC WAITLIST
EBANK= TIG
2CADR TIGON # TIGON IS REQUIRED TO MATHCHTAT AND AVEG
TC PHASCHNG
OCT 40574 # A, 4.57 = TIGON (P40TMP CS)
TCF ENDOFJOB
EBANK= P40TMP
TIGON EXTEND
DCA ACADN83
DXCH AVEGEXIT
CAF PRIO30 # FORCE ZEROING OF N83 BEFORE SERVICER
TC NOVAC
EBANK= TIG
2CADR P47BODY
CS BIT2 # 4.2 = PRECHECK (-0CS), P47BODY (PRIO30)
TCF TTGPHS
EBANK= TIG
CALCN83 TC INTPRET
SETPD # SET UP PUSHLIST FOR S41.1
0
VLOAD VAD
DELVCTL
DELVREF
STORE DV47TEMP # FOR COPYCYCLE BELOW
PUSH CALL
S41.1
STCALL DELVIMU
S11.1 # CALC. VI, H, HDOT FOR NOUN 62
EXIT
TC PHASCHNG
OCT 10035
# Page 692
CAF FIVE
TC GENTRAN
ADRES DV47TEMP
ADRES DELVCTL
TC SERVXT
P47BODY TC INTPRET
VLOAD
HI6ZEROS
STORE DELVIMU # CLEAR DISPLAY AND ACCUMULATOR STORAGE
STORE DELVCTL # UPON INITIATION OR ENTER RESPONSE
EXIT
P47BOD CAF PRIO15 # LOWER PRIO THAN CALCN83 (20)
TC PRIOCHNG # TO PREVENT INTERRUPTION OF CALCN83
TC PHASCHNG
OCT 05024 # TYPE C GROUP 4 BELOW FOR NOUN 83
OCT 15000 # PRIO 15
P47/DSP CAF V1683
TC BANKCALL
CADR GOFLASH
TC GOTOP00H
TC GOTOP00H
TCF P47BODY # RECYCLE -- CLEAR ACCUMULATED VELOCITY
# Page 693
# ROUTINE ** TIG-30 ** DESCRIPTION
EBANK= TIG
COUNT 24/P40
TIGAVEG TC P41/P40 # TASK (4.37 PROTECTS)
TCF P41REDSP
CAF V06N40 # UNBLANK DISPLAY
TS NVWORD1
CAF SEC24.96
TC WAITLIST
EBANK= TIG
2CADR TIG-5
CS SIX # 4.6 = TIG-5 (2496CS), PRECHECK (-0CS)
TTGPHS TC NEWPHASE # ENTRY FROM P41REDSP (P41) WITH A=-4, OR
OCT 4 # FROM TIGON (P47) WITH A=-1
PRECHECK CCS PHASE5 # HAS SERVICER BEEN RESTARTED
TCF TASKOVER # YES, DON'T START ANOTHER ONE
TC POSTJUMP
CADR PREREAD
# Page 694
# ROUTINE ** TIG-5 ** DESCRIPTION
EBANK= TIG
TIG-5 CAF 5SEC
TC WAITLIST
EBANK= DAPDATR1
2CADR TIG-0
CS BIT9 # WILL CAUSE V99 FLASH
TS NVWORD1
TC 2PHSCHNG
OCT 40074 # A, 4.7 = TIG-0 (500CS)
OCT 00033 # A, 3.3 = S40.13 (PRIO20)
CAF PRIO20
TC FINDVAC
EBANK= TGO
2CADR S40.13
TCF TASKOVER
# Page 695
# ROUTINES ** TIG-0 ** AND ** IGNITION ** DESCRIPTION
EBANK= DAPDATR1 # TASK, 4.7 PHASE, OR 4.77 (-0CS) IN R40
TIG-0 CS FLAGWRD7 # SET IGN FLAG
MASK BIT13
ADS FLAGWRD7
CAE FLAGWRD7 # CHECK ASTN FLAG FOR V99 RESPONSE
MASK BIT12
EXTEND
BZF TASKOVER # WAIT FOR V99P
CAF V06N40 # CLEAR THE V99 (IN CASE OF A RESTART
TS NVWORD1 # DURING THE V99 SEQUENCE)
TC PHASCHNG # V99P HAS COME ALREADY, DO IGNITION NOW
OCT 00614 # A, 4.61 = IGNITION (-0CS) TBASE OLD
IGNITION CAE CDUX # SAVE FOR ROLL DAP REFERENCE OGAD
TS OGAD # V99PJOB (CLOCKJOB) SETS UP IGNITION
EXTEND # TASK (4.61 PROTECTION)
DCA TIME2 # FOR RESTARTS
DXCH TEVENT
CS FLAGWRD5 # SET ENGONFLG
MASK BIT7
ADS FLAGWRD5
SPSON CAF BIT13 # TURN ON SPS ENGINE
EXTEND
WOR DSALMOUT
IMPULCHK CAF BIT9 # CHECK FOR IMPULSIVE BURN
MASK FLAGWRD2
CCS A
TCF IMPLBURN # IMPULSIVE
CS FLAGWRD6 # NON-IMPULSIVE, SET STRULLSW FOR STEERULL
MASK BIT13
ADS FLAGWRD6
PREPTVC CS OCT60000 # RESET T5 BITS
MASK FLAGWRD6
TS FLAGWRD6
EXTEND # KILL RCS
DCA T5IDL24
DXCH T5LOC
CS THREE # 4.3 = DOTVCON (40CS)
TC NEWPHASE
OCT 4
# Page 696
TC FIXDELAY
DEC 40 # 0.4 SECOND DELAY FOR THRUST BUILDUP
DOTVCON CS BIT1 # SET TVCPHASE = TVCDAPON CALL (FRESHDAP)
TS TVCPHASE
CAF ZERO # SET TVCEXECUTIVE PHASE
TS TVCEXPHS
CS OCT60000 # SET T5 BITS TO INDICATE TVC TAKEOVER ....
MASK FLAGWRD6 # BITS 15,14 = 10
AD BIT15
TS FLAGWRD6
CAF THREE # 6.3 = CLOKTASK (100CS), DROPPING PRE40.6
TS L # WHICH IS HANDLED NOW BY REDOTVC
COM
DXCH -PHASE6
EXTEND # STORE RCS ATTITUDE ERRORS FOR USE IN
DCS ERRORY # INITIALIZING TVC ATTITUDE ERRORS
DXCH ERRBTMP
CS FIVE # 4.5 = DOSTRULL (160 CS)
TC NEWPHASE
OCT 4
CAF POSMAX # SET TIME5 FOR STARTING RIGHT AWAY
TS TIME5
EXTEND
DCA TVCON2C # (TVCDAPON)
DXCH T5LOC # (KILLS RCS DAP)
TC FIXDELAY # 0.4 + 1.6 = 2.0 SEC FOR ULLAGE-OFF AND
DEC 160 # STEERING (IF NON-IMPULSIVE)
DOSTRULL CAF BIT13 # CHECK STRULLSW FOR IMPULSIVE BURN
MASK FLAGWRD6
CCS A
TCR STEERULL # NON-IMPULSIVE, STEERING AND ULLAGE OFF
TCR ULAGEOFF # ULLAGE OFF (ONLY, OR AGAIN)
EXTEND
DCA NEG0 # KILL GROUP 4 (DP NEG0 = -0,+0)
DXCH -PHASE4
ENDIGN TCF TASKOVER
STEERULL CS FLAGWRD2 # SET STEERSW
MASK BIT11
ADS FLAGWRD2
# Page 697
ULAGEOFF CAF ZERO
EXTEND
WRITE CHAN5 # ZERO CHANNEL 5
TC Q
IMPLBURN CS BIT13 # RESET STRULLSW (COULD BE AN IMPULSIVE
MASK FLAGWRD6 # ENGINE FAIL)
TS FLAGWRD6
TCR E7SETTER
EBANK= TIG
EXTEND # PREPARE FOR R1 OF V06N40 (CLOCKTASK)
DCA TGO
DXCH TIG
EXTEND
DCA TIME2
DAS TIG
TC 2PHSCHNG
OCT 40153 # A, 3.15 = ENGINOFF (TGO+1) .... NOT GROUP
OCT 07014 # C, DELTAT NEXT, TASK BELOW, IN
DEC -0 # -0 CS
EBANK= DAPDATR1
2CADR IMPLCONT
CAE TGO +1 # (TPAGREE IN S40.13, LESS THAN 600CS)
TC WAITLIST
EBANK= TGO
2CADR ENGINOFF
IMPLCONT CS BIT9 # RESET IMPULSW, ENGINOFF IS NOW SET UP
MASK FLAGWRD2
TS FLAGWRD2
TCR E6SETTER
EBANK= DAPDATR1
CAF ZERO # SET UP V97VCNTR IN CASE ENGINOFF (MASS-=
TS V97VCNTR # BACK) ARRIVES BEFORE TVCDAPON
TCF PREPTVC
EBANK= TGO # E7 FORCED BY 3.15SPOT VARIABLE DELTA-T
ENGINOFF TCR E6SETTER # TASK, 3.15 PHASE (TGO+1 CS) GET E6
EBANK= DAPDATR1
CAE CSMMASS
TS MASSTMP # COPYCYCLE FOR MASSBACK
# Page 698
TC 2PHSCHNG
OCT 00003 # KILL GROUP 3 PROTECTION OF ENGINOFF, DO
OCT 40634 # A, 4.63 = DOSPSOFF (-0CS)
DOSPSOFF TCR SPSOFF # SHUTDOWN SPS, MASS UPDATES, ETC.
CS OCT27/24 # (OCTAL 27)
TC NEWPHASE
OCT 4 # 4.27 = DOTVCRCS (250 CS)
TC FIXDELAY # 2.5 SECOND DELAY FOR SPS TAILOFF
DEC 250
DOTVCRCS TCR SETMAXDB # WIDE DEADBAND FOR CUTOFF TRANSIENT
TC IBNKCALL # SET UP RCS DAP (KILLS TVCDAPS, SETS T5
CADR RCSDAPON # BITS, WAITS 0.6SEC FOR TVCEXEC DIE)
TC IBNKCALL # UPDATE WEIGHT/G AND MASS-PROPERTIES FOR
CADR MASSPROP # RCS DAP STARTUP IN 0.6 SECONDS
TCR TVCZAP # WIPE OUT TVC, TURN OFF CLOKTASK
TC PHASCHNG
OCT 00354 # A, 4.35 = POSTBURN (NOVAC, PRIO12)
CAF PRIO12 # SET UP POSTBURN V16N40 JOB
TC NOVAC
EBANK= DAPDATR1 # (SET MAXDB IN POST41)
2CADR POSTBURN
TCF TASKOVER
EBANK= DAPDATR1
SPSOFF EXTEND # ESTABLISH SPSOFF TEVENT
DCA TIME2
DXCH TEVENT
CS BIT7 # RESET ENGONFLG
MASK FLAGWRD5
TS FLAGWRD5 # (RESTARTS WILL SHUT DOWN SPS NOW)
CS BIT13 # SHUT DOWN SPS ENGINE
EXTEND
WAND DSALMOUT
CAF BIT14 # ISSUE SIV CUTOFF COMMAND
EXTEND # FOR POSSIBLE BACK-UP USE
WOR CHAN12
MASSBACK CAE V97VCNTR # RESTORE PART OF PRE-DECREMENTED MASS
# V97CNTR = VCNTR UNLESS V97 IS
# ACTIVE. ONLY V97CNTR IS THEN RIGHT.
EXTEND # VCNTR COUNTS 1/2-SECONDS IN TVC EXEC
MP EMDOT # MDOT, SC.AT B+3 KG/CS
LXCH A
# Page 699
EXTEND
MP 1SEC # DEC 100
AD MASSTMP # CORRECTION IS ACCURATE TO 5 CS OF FLOW
TS CSMMASS # (1.44 KG OR 0.4 BITS)
CA TVCPHASE # CHECK IF OK FOR TRIM UPDATE
AD ONE # THESE CHECKS ARE ONLY NEEDED
EXTEND # FOR A LESS THAN 0.4 SEC BURN
BZF BTRIMR # NO. INITIALIZATION NOT COMPLETE
CS FLAGWRD6 # YES, CHECK IF TVC
MASK OCT60000
EXTEND
BZMF BTRIMR # NO, NOT TVC YET
BESTTRIM CAE DELPBAR # UPDATE TRIMS WITH DELFILTER VALUES
TS PACTOFF
CAE DELYBAR
TS YACTOFF
BTRIMR TC Q
EBANK= DAPDATR1
STEERADS 2CADR STEERING
.6SECT5 OCT 37703
5SECDP DEC 0 # MAKE DP 5SEC
5SEC DEC 500
OCT02202 OCT 02202 # BITS 2, 8, 11 FOR CHANNEL 12 TVC/OPTICS
EBANK= DAPDATR1
TVCON2C 2CADR TVCDAPON
-1 INHINT
TVCZAP CS OCT02202 # DISABLE TVC AND OPT ERR CNTRLS, REENGAGE
EXTEND # OPTICS DAC
WAND CHAN12
CS BIT1 # ENABLE T4RUPT OPTICS MONITOR .... PERMIT
TS OPTIND # OPTICS-ZERO BUT NOT OPTICS-DRIVE
CAF ZERO # CLEAR NVWORD1 IN CASE CLOCKJOB WAITING
TS NVWORD1
CS BIT11 # CLEAR TIMRFLAG TO STOP CLOKTASK
MASK FLAGWRD7
TS FLAGWRD7
TC Q
EBANK= DAPDATR1
UPDATEVG STQ BON
QTEMP1
XDELVFLG
CALL40.8
SLOAD BMN
NBRCYCLS
SETUP.9
# Page 700
VLOAD VAD
DELVSUM
DELVREF
STORE DELVSUMP
EXIT
CA ONE
AD NBRCYCLS
TS NBRCYCLP
TC PHASCHNG # TYPE B RESTART RESTART BELOW AND 5.3 REREADACCS
OCT 10035
CA NBRCYCLP
TS NBRCYCLS
TC INTPRET
VLOAD
DELVSUMP
STORE DELVSUM
CALL40.8 CALL
S40.8
GOTO
QTEMP1
SETUP.9 BON SLOAD
FIRSTFLG
SURELY.9
NBRCYCLP
NORM VXSC # (NORM HANDLES ZERO PROPERLY)
X1
BDT
VSR* VAD
0 -14D,1
VGTEMP
VSU
DELVSUM
STORE VGPREV
SURELY.9 EXIT
CAF PRIO10
TC FINDVAC
EBANK= DAPDATR1
2CADR S40.9
TC 2PHSCHNG
OCT 00051 # A, 1.5 = REDO40.9, PRIO 10
OCT 10035
TC INTPRET
VLOAD
RN # ACTIVE VEHICLE RADIUS VECTOR AT T1
STOVL RINIT
# Page 701
VN # ACTIVE VEHICLE VELOCITY VECTORY AT T1
STODL VINIT
PIPTIME
STORE TNIT
BDSU
TPASS4
STOVL DELLT4
HI6ZEROS
STODL DELVSUM
HI6ZEROS
STORE NBRCYCLS
GOTO
CALL40.8
EBANK= DAPDATR1
STEERING TC INTPRET
CALL
UPDATEVG
EXIT
CAF BIT9 # CHECK IMPULSW
MASK FLAGWRD2
CCS A
TCF +3 # PRE-IGNITE, REQUEST ENG-OFF, OR POST-OFF
SERVXT TC POSTJUMP
CADR SERVEXIT
CAF BIT13 # CHECK ENGINE-ON/-OFF
EXTEND
RAND DSALMOUT
EXTEND
BZF SERVXT # ENGINE-OFF, SO PRE-IGNITE OR POST-OFF
TCR E7SETTER
EBANK= TIG
INHINT
EXTEND
DCA TIG
DXCH MPAC
EXTEND
DCS TIME2
DAS MPAC
TCR DPAGREE
CAE MPAC +1 # (LESS THAN 6 (OR 4) SECONDS TO GO)
CCS A # PROTECT AGAINST NEG/ZRO W.L. CALL
TCF +3
TCF +2
CAF ZERO
AD ONE
XCH L
CA ZERO
DXCH TGO
CA TGO +1
TC WAITLIST
# Page 702
EBANK= TGO
2CADR ENGINOFF
TC 2PHSCHNG
OCT 40153 # A, 3.15 = ENGINOFF (TGO+1) .... NOTE GROUP
OCT 10035 # B, 5.3 = REREADAC, AND START BELOW
TC DOWNFLAG # CLEAR IMPULSW, ENGINOFF IS NOW SET UP
ADRES IMPULSW # RESTARTS OK
TCF SERVXT
# Page 703
# ROUTINE ** CLOKTASK ** DESCRIPTION
EBANK= TIG
CLOKTASK CAF BIT11 # IS TIMRFLAG SET
MASK FLAGWRD7
CCS A
TCF CLOCKON
TC PHASCHNG
OCT 00006 # KILL RESTART
TC TASKOVER
CLOCKON EXTEND
DCA TIME2
DXCH TTOGO
EXTEND
DCS TIG
DAS TTOGO
SETCLOCK CAF 1SEC
TC WAITLIST
EBANK= TIG
2CADR CLOKTASK
CCS NVWORD1
TCF +3
TCF SETTB6
TCF +1
CS V06N85B # CHECK FOR V06N85B (P41)
AD NVWORD1
EXTEND
BZF SETUPDYN # V06N85, SO UPDATE N85 FOR DYNAMIC DISP
CAF PRIO27
TC NOVAC
EBANK= DAPDATR1
2CADR CLOCKJOB
SETTB6 CS TIME1 # SET GROUP6 TIMEBASE
TS TBASE6
TCF TASKOVER
SETUPDYN CAF PRIO27 # SET UP A JOB TO UPDATE N85 (FOR P41=V06)
TC FINDVAC
EBANK= DAPDATR1
2CADR DYNDISP
TCF SETTB6 # CLOSE OUT CLOCKTASK
# Page 704
DYNDISP TC INTPRET # UPDATE N85 FOR A DYNAMIC V06N85 IN P41.
CALL # PRIOR TO BLANKING AND AVEG (V16N85)
P40CNV85
EXIT
TCF CKNVWRD1
# Page 705
# ROUTINE ** CLOCKJOB ** DESCRIPTION
EBANK= DAPDATR1
CLOCKJOB CA CDUX
TS CDUSPOTX
CA CDUY
TS CDUSPOTY
CA CDUZ
TS CDUSPOTZ
TC BANKCALL
CADR QUICTRIG
CKNVWRD1 INHINT
CCS NVWORD1 # DETERMINE FUNCTION, INDICATED BY NVWORD1
TCF NOFLASH
TCF ENDOFJOB
TCF ENGREQST # SPS ENGINE-ON-ENABLE V99 FLASH
FAILDSP CAF V06N40 # SPS ENGINE-FAILED V97 FLASH
TC BANKCALL
CADR CLOCPLAY
TCF V97T # TERMINATE
TCF V97P # PROCEED
TCF V97E # ENTER
ENGREQST CAF V06N40
TC BANKCALL
CADR CLOCPLAY # LINUS MAKES IT A REDO, INHINT OK
TCF V99T # TERMINATE
TCF V99P # PROCEED
TCF V99E # ENTER
NOFLASH CAE NVWORD1 # DISPLAY NVWORD1 NORMALLY
TC BANKCALL
CADR REGODSP
E7SETTER CAF EBANK7
TS EBANK
EBANK= TIG
TC Q
E6SETTER CAF EBANK6 # SET UP EBANK6
TS EBANK
EBANK= DAPDATR1
TC Q
EBANK= DAPDATR1
V99E TC 2PHSCHNG
OCT 00006 # KILL PRE40.6/CLOKTASK PROTECTION
OCT 05024 # C, PRIORITY NEXT, JOB BELOW
# Page 706
OCT 27000
V99EJOB TCR TVCZAP -1 # WIPE OUT TVC, CLOKTASK
TCF P40RCS # V16N85 POST-BURN OPERATIONS
EBANK= DAPDATR1
V99T TC 2PHSCHNG # (ENTRY FROM V97T FLOW TOO)
OCT 00006 # KILL PRE40.6/CLOKTASK PROTECTION
OCT 05024 # C, PRIORITY NEXT, JOB BELOW
OCT 27000
V99TJOB TCR TVCZAP -1 # WIPE OUT TVC, CLOKTASK
TCF POST41 # AVEGEXIT, SETMAXDB, GOTOP00H
V99P INHINT
CAE FLAGWRD7 # CHECK ASTN FLAG FOR PRIOR V99P
MASK BIT12
CCS A
TCF V99P/TIG # YES, THIS MUST BE A RESTART ENTRY
ASTNV99P CAF BIT12 # SET ASTN FLAG
ADS FLAGWRD7
CAE FLAGWRD7 # CHECK IGN FLAG FOR TIG-0 ARRIVAL
MASK BIT13
EXTEND
BZF V99P/TIG # NO, CLEAR THE V99 AND WAIT FOR TIG-0
ENDV99PI CAF BIT1 # TIG-0 HAS COME ALREADY
TC WAITLIST # SET UP IGNITION HERE
EBANK= DAPDATR1
2CADR IGNITION