forked from chrislgarry/Apollo-11
-
Notifications
You must be signed in to change notification settings - Fork 3
/
BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.s
1059 lines (866 loc) · 21.8 KB
/
BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.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: BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.agc
# Purpose: Part of the source code for Luminary 1A build 099.
# It is part of the source code for the Lunar Module's (LM)
# Apollo Guidance Computer (AGC), for Apollo 11.
# Assembler: yaYUL
# Contact: Ron Burkey <[email protected]>.
# Website: www.ibiblio.org/apollo.
# Pages: 731-751
# Mod history: 2009-05-19 RSB Adapted from the corresponding
# Luminary131 file, using page
# images from Luminary 1A.
# 2009-06-07 RSB Corrected 3 typos.
# 2009-07-23 RSB Added Onno's notes on the naming
# of this function, which he got from
# Don Eyles.
#
# 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 [email protected]
# about getting access to the (much) higher-quality images which Paul
# actually created.
#
# Notations on the hardcopy document read, in part:
#
# Assemble revision 001 of AGC program LMY99 by NASA 2021112-61
# 16:27 JULY 14, 1969
# Page 731
## At the get-together of the AGC developers celebrating the 40th anniversary
## of the first moonwalk, Don Eyles (one of the authors of this routine along
## with Peter Adler) has related to us a little interesting history behind the
## naming of the routine.<br>
## <br>
## It traces back to 1965 and the Los Angeles riots, and was inspired
## by disc jockey extraordinaire and radio station owner Magnificent Montague.
## Magnificent Montague used the phrase "Burn, baby! BURN!" when spinning the
## hottest new records. Magnificent Montague was the charismatic voice of
## soul music in Chicago, New York, and Los Angeles from the mid-1950s to
## the mid-1960s.
# BURN, BABY, BURN -- MASTER IGNITION ROUTINE
BANK 36
SETLOC P40S
BANK
EBANK= WHICH
COUNT* $$/P40
# THE MASTER IGNITION ROUTINE IS DESIGNED FOR USE BY THE FOLLOWING LEM PROGRAMS: P12, P40, P42, P61, P63.
# IT PERFORMS ALL FUNCTIONS IMMEDIATELY ASSOCIATED WITH APS OR DPS IGNITION: IN PARTICULAR, EVERYTHING LYING
# BETWEEN THE PRE-IGNITION TIME CHECK -- ARE WE WITHIN 45 SECONDS OF TIG? -- AND TIG + 26 SECONDS, WHEN DPS
# PROGRAMS THROTTLE UP.
#
# VARIATIONS AMONG PROGRAMS ARE ACCOMODATED BY MEANS OF TABLES CONTAINING CONSTANTS (FOR AVEGEXIT, FOR
# WAITLIST, FOR PINBALL) AND TCF INSTRUCTIONS. USERS PLACE THE ADRES OF THE HEAD OF THE APPROPRIATE TABLE
# (OF P61TABLE FOR P61LM, FOR EXAMPLE) IN ERASABLE REGISTER `WHICH' (E4). THE IGNITION ROUTINE THEN INDEXES BY
# WHICH TO OBTAIN OR EXECUTE THE PROPER TABLE ENTRY. THE IGNITION ROUTINE IS INITIATED BY A TCF BURNBABY,
# THROUGH BANKJUMP IF NECESSARY. THERE IS NO RETURN.
#
# THE MASTER IGNITION ROUTINE WAS CONCEIVED AND EXECUTED, AND (NOTA BENE) IS MAINTAINED BY ADLER AND EYLES.
#
# HONI SOIT QUI MAL Y PENSE
#
# ***********************************************
# TABLES FOR THE IGNITION ROUTINE
# ***********************************************
#
# NOLI SE TANGERE
P12TABLE VN 0674 # (0)
TCF ULLGNOT # (1)
TCF COMFAIL3 # (2)
TCF GOCUTOFF # (3)
TCF TASKOVER # (4)
TCF P12SPOT # (5)
DEC 0 # (6) NO ULLAGE
EBANK= WHICH
2CADR SERVEXIT # (7)
TCF DISPCHNG # (11)
TCF WAITABIT # (12)
TCF P12IGN # (13)
P40TABLE VN 0640 # (0)
TCF ULLGNOT # (1)
TCF COMFAIL4 # (2)
TCF GOPOST # (3)
TCF TASKOVER # (4)
TCF P40SPOT # (5)
# Page 732
DEC 2240 # (6)
EBANK= OMEGAQ
2CADR STEERING # (7)
TCF P40SJUNK # (11)
TCF WAITABIT # (12)
TCF P40IGN # (13)
TCF REP40ALM # (14)
P41TABLE TCF P41SPOT # (5)
DEC -1 # (6)
EBANK= OMEGAQ
2CADR CALCN85 # (7)
TCF COMMON # (11)
TCF TIGTASK # (12)
P42TABLE VN 0640 # (0)
TCF WANTAPS # (1)
TCF COMFAIL4 # (2)
TCF GOPOST # (3)
TCF TASKOVER # (4)
TCF P42SPOT # (5)
DEC 2640 # (6)
EBANK= OMEGAQ
2CADR STEERING # (7)
TCF P40SJUNK # (11)
TCF WAITABIT # (12)
TCF P42IGN # (13)
TCF P42STAGE # (14)
P63TABLE VN 0662 # (0)
TCF ULLGNOT # (1)
TCF COMFAIL3 # (2)
TCF V99RECYC # (3)
TCF TASKOVER # (4)
TCF P63SPOT # (5)
DEC 2240 # (6)
EBANK= WHICH
2CADR SERVEXIT # (7)
TCF DISPCHNG # (11)
TCF WAITABIT # (12)
# Page 733
TCF P63IGN # (13)
ABRTABLE VN 0663 # (0)
TCF ULLGNOT # (1)
TCF COMFAIL3 # (2)
TCF GOCUTOFF # (3)
TCF TASKOVER # (4)
NOOP # (5)
NOOP # (6)
NOOP # (7)
NOOP
TCF DISPCHNG # (11)
TCF WAITABIT # (12)
TCF ABRTIGN # (13)
# *********************************
# GENERAL PURPOSE IGNITION ROUTINES
# *********************************
BURNBABY TC PHASCHNG # GROUP 4 RESTARTS HERE
OCT 04024
CAF ZERO # EXTIRPATE JUNK LEFT IN DVTOTAL
TS DVTOTAL
TS DVTOTAL +1
TC BANKCALL # P40AUTO MUST BE BANKCALLED EVEN FROM ITS
CADR P40AUTO # OWN BANK TO SET UP RETURN PROPERLY
B*RNB*B* EXTEND
DCA TIG # STORE NOMINAL TIG FOR OBLATENESS COMP.
DXCH GOBLTIME # AND FOR P70 OR P71.
INHINT
TC IBNKCALL
CADR ENGINOF3
RELINT
INDEX WHICH
TCF 5
P42SPOT = P40SPOT # (5)
P12SPOT = P40SPOT # (5)
P63SPOT = P41SPOT # (5) IN P63 CLOKTASK ALREADY GOING
P40SPOT CS CNTDNDEX # (5)
# Page 734
TC BANKCALL # MUST BE BANKCALLED FOR GENERALIZED
CADR STCLOK2 # RETURN
P41SPOT TC INTPRET # (5)
DLOAD DSU
TIG
D29.9SEC
STCALL TDEC1
INITCDUW
BOFF CALL
MUNFLAG
GOMIDAV
CSMPREC
VLOAD MXV
VATT1
REFSMMAT
VSR1
STOVL V(CSM) # CSM VELOCITY -- M/CS*2(7)
RATT1
VSL4 MXV
REFSMMAT
STCALL R(CSM) # CSM POSITION -- M*2(24)
MUNGRAV
STODL G(CSM) # CSM GRAVITY VEC. -- M/CS*2(7)
TAT
STORE TDEC1 # RELOAD TDEC1 FOR MIDTOAV.
GOMIDAV CALRB
MIDTOAV1
TCF CALLT-35 # MADE IT IN TIME.
EXTEND # TIG WAS SLIPPED, SO RESET TIG TO 29.9
DCA PIPTIME1 # SECONDS AFTER THE TIME TO WHICH WE DID
DXCH TIG # INTEGRATE.
EXTEND
DCA D29.9SEC
DAS TIG
CALLT-35 DXCH MPAC
DXCH SAVET-30 # DELTA-T UNTIL TIG-30
EXTEND
DCS 5SECDP
DAS SAVET-30 # DELTA-T UNTIL TIG-35
EXTEND
DCA SAVET-30
TC LONGCALL
EBANK= TTOGO
2CADR TIG-35
TC PHASCHNG
OCT 20254 # 4.25SPOT FOR TIG-35 RESTART.
# Page 735
TC CHECKMM
DEC 63
TCF ENDOFJOB # NOT P63
CS CNTDNDEX # P63 CAN START DISPLAYING NOW.
TS DISPDEX
TC INTPRET
VLOAD ABVAL
VN1
STORE ABVEL # INITIALIZE ABVEL FOR P63 DISPLAY
EXIT
TCF ENDOFJOB
# ********************************
TIG-35 CAF 5SEC
TC TWIDDLE
ADRES TIG-30
TC PHASCHNG
OCT 40154 # 4.15SPOT FOR TIG-30 RESTART
CS BLANKDEX # BLANK DSKY FOR 5 SECONDS
TS DISPDEX
INDEX WHICH
CS 6 # CHECK ULLAGE TIME.
EXTEND
BZMF TASKOVER
CAF 4.9SEC # SET UP TASK TO RESTORE DISPLAY AT TIG-30
TC TWIDDLE
ADRES TIG-30.1
CAF PRIO17 # A NEGATIVE ULLAGE TIME INDICATES P41, IN
TC NOVAC # WHICH CASE WE HAVE TO SET UP A JOB TO
EBANK= TTOGO # BLANK THE DSKY FOR FIVE SECONDS, SINCE
2CADR P41BLANK # CLOKJOB IS NOT RUNNING DURING P41.
TCF TASKOVER
P41BLANK TC BANKCALL # BLANK DSKY.
CADR CLEANDSP
TCF ENDOFJOB
TIG-30.1 CAF PRIO17 # SET UP JOB TO RESTORE DISPLAY AT TIG-30
TC NOVAC
EBANK= TTOGO
2CADR TIG-30A
TCF TASKOVER
# Page 736
TIG-30A CAF V16N85B
TC BANKCALL # RESTORE DISPLAY.
CADR REGODSP # REGODSP DOES A TCF ENDOFJOB
# ********************************
TIG-30 CAF S24.9SEC
TC TWIDDLE
ADRES TIG-5
CS CNTDNDEX # START UP CLOKTASK AGAIN
TS DISPDEX
INDEX WHICH # PICK UP APPROPRIATE ULLAGE -- ON TIME
CA 6 # Was CAF --- RSB 2009.
EXTEND
BZMF ULLGNOT # DON'T SET UP ULLAGE IF DT IS NEG OR ZERO
TS SAVET-30 # SAVE DELTA-T FOR RESTART
TC TWIDDLE
ADRES ULLGTASK
CA THREE # RESTART PROTECT ULLGTASK (1.3SPOT)
TS L
CS THREE
DXCH -PHASE1
CS TIME1
TS TBASE1
INDEX WHICH
TCF 1
WANTAPS CS FLGWRD10 # (1) FOR P42 ENSURE APSFLAG IS SET. IF IT
MASK APSFLBIT # WASN'T SET, DAP WILL BE INITIALIZED TO
ADS FLGWRD10 # ASCENT VALUES BY 1/ACCS IN 2 SECONDS.
ULLGNOT EXTEND # (1)
INDEX WHICH
DCA 7 # LOAD AVEGEXIT WITH APPROPRIATE 2CADR
DXCH AVEGEXIT
CAF TWO # 4.2SPOT RESTARTS IMMEDIATELY AT REDO4.2
TS L
CS TWO # AND ALSO AT TIG-5 AT THE CORRECT TIME.
DXCH -PHASE4
CS TIME1
TS TBASE4 # SET TBASE4 FOR TIG-5 RESTART
REDO2.17 EXTEND
# Page 737
DCA NEG0 # CLEAR OUT GROUP 2 SO LAMBERT CAN START
DXCH -PHASE2 # IF NEEDED.
REDO4.2 CCS PHASE5 # IF SERVICER GOING?
TCF TASKOVER # YES, DON'T START IT UP AGAIN.
TC POSTJUMP
CADR PREREAD # PREREAD END THIS TASK
# *********************************
ULLGTASK TC ONULLAGE # THIS COMES AT TIG-7.5 OR TIG-3.5
TC PHASCHNG
OCT 1
TCF TASKOVER
# *********************************
TIG-5 EXTEND
DCA NEG0 # INSURE THAT GROUP 3 IS INACTIVE.
DXCH -PHASE3
CAF 5SEC
TC TWIDDLE
ADRES TIG-0
TC DOWNFLAG # RESET IGNFLAG AND ASINFLAG
ADRES IGNFLAG # FOR LIGHT-UP LOGIC.
TC DOWNFLAG
ADRES ASTNFLAG
INDEX WHICH
TCF 11
P40SJUNK CCS PHASE3 # (11) P40 AND P42. S40.13 IN PROGRESS?
TCF DISPCHNG # YES
CAF PRIO20
TC FINDVAC
EBANK= TTOGO
2CADR S40.13
TC PHASCHNG # 3.5SPOT FOR S40.13
OCT 00053
DISPCHNG CS VB99DEX # (11)
TS DISPDEX
# Page 738
COMMON TC PHASCHNG # RESTART TIG-0 (4.7SPOT)
OCT 40074
TCF TASKOVER
# *********************************
TIG-0 CS FLAGWRD7 # SET IGNFLAG SINCE TIG HAS ARRIVED
MASK IGNFLBIT
ADS FLAGWRD7
TC CHECKMM # IN P63 CASE, THROTTLE-UP IS ZOOMTIME
DEC 63 # AFTER NOMINAL IGNITION, NOT ACTUAL
TCF IGNYET?
CA ZOOMTIME
TC WAITLIST
EBANK= DVCNTR
2CADR P63ZOOM
TC 2PHSCHNG
OCT 40033
OCT 05014
OCT 77777
IGNYET? CAF ASTNBIT # CHECK ASTNFLAG: HAS ASTRONAUT RESPONDED
MASK FLAGWRD7 # TO OUR ENGINE ENABLE REQUEST?
EXTEND
INDEX WHICH
BZF 12 # BRANCH IF HE HAS NOT RESPONDED YET
IGNITION CS FLAGWRD5 # INSURE ENGONFLG IS SET.
MASK ENGONBIT
ADS FLAGWRD5
CS PRIO30 # TURN ON THE ENGINE.
EXTEND
RAND DSALMOUT
AD BIT13
EXTEND
WRITE DSALMOUT
EXTEND # SET TEVENT FOR DOWNLINK
DCA TIME2
DXCH TEVENT
EXTEND # UPDATE TIG USING TGO FROM S40.13
DCA TGO
DXCH TIG
EXTEND
DCA TIME2
DAS TIG
# Page 739
CS FLUNDBIT # PERMIT GUIDANCE LOOP DISPLAYS
MASK FLAGWRD8
TS FLAGWRD8
INDEX WHICH
TCF 13
P63IGN EXTEND # (13) INITIATE BURN DISPLAYS
DCA DSP2CADR
DXCH AVGEXIT
CA Z # ASSASSINATE CLOKTASK
TS DISPDEX
CS FLAGWRD9 # SET FLAG FOR P70-P71
MASK LETABBIT
ADS FLAGWRD9
CS FLAGWRD7 # SET SWANDISP TO ENABLE R10.
MASK SWANDBIT
ADS FLAGWRD7
CS PULSES # MAKE SURE DAP IS NOT IN MINIMUM-IMPULSE
MASK DAPBOOLS # MODE, IN CASE OF SWITCH TO P66
TS DAPBOOLS
EXTEND # INITIALIZE TIG FOR P70 AND P71.
DCA TIME2
DXCH TIG
CAF ZERO # INITIALIZE WCHPHASE, AND FLPASS0
TS WCHPHASE
TS WCHPHOLD # ALSO WHCPHOLD
CA TWO
TS FLPASS0
TCF P42IGN
P40IGN CS FLAGWRD5 # (13)
MASK NOTHRBIT
EXTEND
BZF P42IGN
CA ZOOMTIME
TC WAITLIST
EBANK= DVCNTR
2CADR P40ZOOM
P63IGN1 TC 2PHSCHNG
OCT 40033 # 3.3SPOT FOR ZOOM RESTART.
OCT 05014 # TYPE C RESTARTS HERE IMMEDIATELY
OCT 77777
# Page 740
TCF P42IGN
P12IGN CAF EBANK6
TS EBANK
EBANK= AOSQ
CA IGNAOSQ # INITIALIZE DAP BIAS ACCELERATION
TS AOSQ # ESTIMATES AT P12 IGNITION.
CA IGNAOSR
TS AOSR
CAF EBANK7
TS EBANK
EBANK= DVCNTR
ABRTIGN CA Z # (13) KILL CLOKTASK
TS DISPDEX
EXTEND # CONNECT ASCENT GYIDANCE TO SERVICER.
DCA ATMAGADR
DXCH AVGEXIT
CS FLAGWRD7 # ENABLE R10.
MASK SWANDBIT
ADS FLAGWRD7
P42IGN CS DRIFTBIT # ENSURE THAT POWERED-FLIGHT SWITCHING
MASK DAPBOOLS # CURVES ARE USED.
TS DAPBOOLS
CAF IMPULBIT # EXAMINE IMPULSE SWITCH
MASK FLAGWRD2
CCS A
TCF IMPLBURN
DVMONCON TC DOWNFLAG
ADRES IGNFLAG # CONNECT DVMON
TC DOWNFLAG
ADRES ASTNFLAG
TC DOWNFLAG
ADRES IDLEFLAG
TC PHASCHNG
OCT 40054
TC FIXDELAY # TURN ULLAGE OFF HALF A SECOND AFTER
DEC 50 # LIGHT UP.
ULLAGOFF TC NOULLAGE
WAITABIT EXTEND # KILL GROUP 4
DCA NEG0
# Page 741
DXCH -PHASE4
TCF TASKOVER
TIGTASK TC POSTJUMP # (12)
CADR TIGTASK1
# ********************************
BANK 31
SETLOC P40S3
BANK
COUNT* $$/P40
TIGTASK1 CAF PRIO16
TC NOVAC
EBANK= TRKMKCNT
2CADR TIGNOW
TC PHASCHNG
OCT 6 # KILL GROUP 6
TCF TASKOVER
# ********************************
P63ZOOM EXTEND
DCA LUNLANAD
DXCH AVEGEXIT
TC IBNKCALL
CADR FLATOUT
TCF P40ZOOMA
P40ZOOM CAF BIT13
TS THRUST
CAF BIT4
EXTEND
WOR CHAN14
P40ZOOMA TC PHASCHNG
OCT 3
TCF TASKOVER
EBANK= DVCNTR
LUNLANAD 2CADR LUNLAND
# Page 742
ZOOM = P40ZOOMA
BANK 36
SETLOC P40S
BANK
COUNT* $$/P40
# ********************************
COMFAIL TC UPFLAG # (15)
ADRES IDLEFLAG
TC UPFLAG # SET FLAG TO SUPRESS CONFLICTING DISPLAY
ADRES FLUNDISP
CAF FOUR # RESET DVMON
TS DVCNTR
CCS PHASE6 # CLOCKTASK ACTIVE?
TCF +3 # YES
TC BANKCALL # OTHERWISE, START IT UP
CADR STCLOK1
+3 CS VB97DEX
TS DISPDEX
TC PHASCHNG # TURN OFF GROUP 4.
OCT 00004
TCF ENDOFJOB
COMFAIL1 INDEX WHICH
TCF 2
COMFAIL3 CA Z # (15) KILL CLOKTASK USING Z
TCF +2
COMFAIL4 CS CNTDNDEX
TS DISPDEX
TC DOWNFLAG # RECONNECT DV MONITOR
ADRES IDLEFLAG
TC DOWNFLAG # PERMIT GUIDANCE LOOP DISPLAYS
ADRES FLUNDISP
TCF ENDOFJOB
COMFAIL2 TC PHASCHNG # KILL ZOOM RESTART PROTECTION
OCT 00003
INHINT
TC KILLTASK # KILL ZOOM IN CASE IT'S STILL TO COME
CADR ZOOM
TC IBNKCALL # COMMAND ENGINE OFF
CADR ENGINOF4
TC UPFLAG # SET THE DRIFT BIT FOR THE DAP.
ADRES DRIFTDFL
# Page 743
TC INVFLAG # USE OTHER RCS SYSTEM
ADRES AORBTFLG
TC UPFLAG # TURN ON ULLAGE
ADRES ULLAGFLG
CAF BIT1
INHINT
TC TWIDDLE
ADRES TIG-5
TCF ENDOFJOB
# ***********************************
# SUBROUTINES OF THE IGNITION ROUTINE
# ***********************************
INVFLAG CA Q
TC DEBIT
COM
EXTEND
RXOR LCHAN
TCF COMFLAG
# ***********************************
NOULLAGE CS ULLAGER # MUST BE CALLED IN A TASK OR UNDER INHINT
MASK DAPBOOLS
TS DAPBOOLS
TC Q
# ***********************************
ONULLAGE CS DAPBOOLS # TURN ON ULLAGE. MUST BE CALLED IN
MASK ULLAGER # A TASK OR WHILE INHINTED.
ADS DAPBOOLS
TC Q
# ***********************************
STCLOK1 CA ZERO # THIS ROUTINE STARTS THE COUNT-DOWN
STCLOK2 TS DISPDEX # (CLOKTASK AND CLOKJOB). SETTING
STCLOK3 TC MAKECADR # SETTING DISPDEX POSITIVE KILLS IT.
TS TBASE4 # RETURN SAVE (NOT FOR RESTARTS).
EXTEND
DCA TIG
DXCH MPAC
EXTEND
DCS TIME2
# Page 744
DAS MPAC # HAVE TIG -- TIME2, UNDOUBTEDLY A + NUMBER
TC TPAGREE # POSITIVE, SINCE WE PASSED THE
CAF 1SEC # 45 SECOND CHECK.
TS Q
DXCH MPAC
MASK LOW5 # RESTRICT MAGNITUDE OF NUMBER IN A
EXTEND
DV Q
CA L # GET REMAINDER
AD TWO
INHINT
TC TWIDDLE
ADRES CLOKTASK
TC 2PHSCHNG
OCT 40036 # 6.3SPOT FOR CLOKTASK
OCT 05024
OCT 13000
CA TBASE4
TC BANKJUMP
CLOKTASK CS TIME1 # SET TBASE6 FOR GROUP 6 RESTART
TS TBASE6
CCS DISPDEX
TCF KILLCLOK
NOOP
CAF PRIO27
TC NOVAC
EBANK= TTOGO
2CADR CLOKJOB
TC FIXDELAY # WAIT A SECOND BEFORE STARTING OVER
DEC 100
TCF CLOKTASK
KILLCLOK EXTEND # KILL RESTART
DCA NEG0
DXCH -PHASE6
TCF TASKOVER
CLOKJOB EXTEND
DCS TIG
DXCH TTOGO
EXTEND
# Page 745
DCA TIME2
DAS TTOGO
INHINT
CCS DISPDEX # IF DISPDEX HAS BEEN SET POSITIVE BY A
TCF ENDOFJOB # TASK OR A HIGHER PRIORITY JOB SINCE THE
TCF ENDOFJOB # LAST CLOKTASK, AVOID USING IT AS AN
COM # INDEX.
RELINT # ***** DISPDEX MUST NEVER B -0 *****
INDEX A
TCF DISPNOT -1 # (-1 DUE TO EFFECT OF CCS)
VB97DEX = OCT35 # NEGATIVE OF THIS IS PROPER FOR DISPDEX
-35 CS ZERO # INDICATE VERB 97 PASTE
TS NVWORD1
CA NVWORD +2 # NVWORD+2 CONTAINS V06 & APPROPRIATE NOUN
TC BANKCALL
CADR CLOCPLAY
TCF STOPCLOK # TERMINATE CLOKTASK ON THE WAY TO P00H
TCF COMFAIL1
TCF COMFAIL2
# THIS DISPLAY IS CALLED VIA ASTNCLOK
-25 CAF V06N61 # IT IS PRIMARILY USED BY THE CREW IN P63
TC BANKCALL # TO RESET HIS EVENT TIMER TO AGREE WITH
CADR REFLASH # TIG.
TCF STOPCLOK
TCF ASTNRETN
TCF -6
CNTDNDEX = LOW4 # OCT17: NEGATIVE PROPER FOR DISPDEX
-17 INDEX WHICH # THIS DISPLAY COMES UP AT ONE SECOND
# Was CAF --- RSB 2009
CA 0 # INTERVALS. IT IS NORMALLY OPERATED
TC BANKCALL # BETWEEN TIG-30 SECONDS AND TIG-5 SECONDS
CADR REGODSP # REGODSP DOES ITS OWN TCF ENDOFJOB
VB99DEX = ELEVEN # OCT13: NEGATIVE PROPER FOR DISPDEX
V99RECYC EQUALS
-13 CS BIT9 # INDICATE VERB 99 PASTE
TS NVWORD1
INDEX WHICH # THIS IS THE "PLEASE ENABLE ENGINE"
# Was CAF --- RSB 2004
CA 0 # DISPLAY; IT IS INITIATED AT TIG-5 SEC.
TC BANKCALL # THE DISPLAY IS A V99NXX, WHERE XX IS
CADR CLOCPLAY # NOUN THAT HAD PREVIOUSLY BEEN DISPLAYED
TCF STOPCLOK # TERMINATE GOTOP00H TURNS OFF ULLAGE.
TCF *PROCEED
TCF *ENTER
# Page 746
BLANKDEX = TWO # NEGATIVE OF THIS IS PROPER FOR DISPDEX
-2 TC BANKCALL # BLANK DSKY. THE DSKY IS BLANKED FOR
CADR CLEANDSP # 5 SECONDS AT TIG-35 TO INDICATE THAT
DISPNOT TCF ENDOFJOB # AVERAGE G IS STARTING.
STOPCLOK TC NULLCLOK # STOP CLOKTASK & TURN OFF ULLAGE ON THE
TCF GOTOP00H # WAY TO P00 (GOTOP00H RELINTS)
NULLCLOK INHINT
EXTEND
QXCH P40/RET
TC NOULLAGE # TURN OFF ULLAGE ...
TC KILLTASK # DON'T LET IT COME ON, EITHER ...
CADR ULLGTASK
TC PHASCHNG # NOT EVEN IF THERE'S A RESTART.
OCT 1
CA Z # KILL CLOKTASK
TS DISPDEX
TC P40/RET
ASTNRETN TC PHASCHNG
OCT 04024
CAF ZERO # STOP DISPLAYING BUT KEEP RUNNING
TS DISPDEX
CAF PRIO13
TC FINDVAC
EBANK= STARIND
2CADR ASTNRET
TCF ENDOFJOB
*PROCEED TC UPFLAG
ADRES ASTNFLAG
TCF IGNITE
*ENTER INHINT
INDEX WHICH
TCF 3
GOPOST CAF PRIO12 # (3) MUST BE LOWER PRIORITY THAN CLOKJOB
TC FINDVAC
EBANK= TTOGO
2CADR POSTBURN
# Page 747
INHINT # SET UP THE DAP FOR COASTING FLIGHT.
TC IBNKCALL
CADR ALLCOAST
TC NULLCLOK
TC PHASCHNG # 4.13 RESTART FOR POSTBURN
OCT 00134
TCF ENDOFJOB
GOCUTOFF CAF PRIO17 # (3)
TC FINDVAC
EBANK= TGO
2CADR CUTOFF
TC DOWNFLAG
ADRES FLUNDISP
INHINT # SET UP THE DAP FOR COASTING FLIGHT.
TC IBNKCALL
CADR ALLCOAST
TC NULLCLOK
TC PHASCHNG
OCT 07024
OCT 17000
EBANK= TGO
2CADR CUTOFF
TCF ENDOFJOB
IGNITE CS FLAGWRD7 # (2)
MASK IGNFLBIT
CCS A
TCF IGNITE1
CAF BIT1
INHINT
TC TWIDDLE
ADRES IGNITION
CAF OCT23 # IMMEDIATE RESTART AT IGNITION
TS L
COM
DXCH -PHASE4
IGNITE1 CS CNTDNDEX # RESTORE OLD DISPLAY.
TS DISPDEX
TCF ENDOFJOB
# Page 748
# ********************************
P40ALM TC ALARM # PROGRAM SELECTION NOT CONSISTENT WITH
OCT 1706 # VEHICLE CONFIGURATION
REP40ALM CAF V05N09 # (14)
TC BANKCALL
CADR GOFLASH
TCF GOTOP00H # V34E TERMINATE
TCF +2 # PROCEED CHECK FOR P42
TCF REP40ALM # V32E REDISPLAY ALARM
INDEX WHICH # FOR P42, ALLOW CREW TO PRECEED EVEN
TCF 14 # THOUGH VEHICLE IS UNSTAGED.
# ********************************
BANK 31
SETLOC P40S2
BANK
COUNT* $$/P40
P40AUTO TC MAKECADR # HELLO THERE.
TS TEMPR60 # FOR GENERALIZED RETURN TO OTHER BANKS.
P40A/P TC BANKCALL # SUBROUTINE TO CHECK PGNCS CONTROL
CADR G+N,AUTO # AND AUTO STABILIZATION MODES
CCS A # +0 INDICATES IN PGNCS, IN AUTO
TCF TURNITON # + INDICATES NOT IN PGNCS AND/OR AUTO
CAF APSFLBIT # ARE WE ON THE DESCENT STAGE?
MASK FLGWRD10
CCS A
TCF GOBACK # RETURN
CAF BIT5 # YES, CHECK FOR AUTO-THROTTLE MODE
EXTEND
RAND CHAN30
EXTEND
BZF GOBACK # IN AUTO-THROTTLE MODE -- RETURN
TURNITON CAF P40A/PMD # DISPLAYS V50N25 R1=203 PLEASE PERFORM
TC BANKCALL # CHECKLIST 203 TURN ON PGNCS ETC.
CADR GOPERF1
TCF GOTOP00H # V34E TERMINATE
TCF P40A/P # RECYCLE
GOBACK CA TEMPR60
TC BANKJUMP # GOODBYE. COME AGAIN SOON.
P40A/PMD OCT 00203
# Page 749
BANK 36
SETLOC P40S
BANK
COUNT* $$/P40
# **********************************
# CONSTANTS FOR THE IGNITION ROUTINE
# **********************************
SERVCADR = P63TABLE +7
P40ADRES ADRES P40TABLE
P41ADRES ADRES P41TABLE -5
P42ADRES ADRES P42TABLE
EBANK= DVCNTR
DSP2CADR 2CADR P63DISPS -2
EBANK= DVCNTR
ATMAGADR 2CADR ATMAG
? = GOTOP00H
D29.9SEC 2DEC 2990
S24.9SEC DEC 2490
4.9SEC DEC 490
OCT20 = BIT5
V06N61 VN 0661
# Page 750
# KILLTASK
# MOD NO: NEW PROGRAM
# MOD BY: COVELLI
#
# FUNCTIONAL DESCRIPTION:
#
# KILLTASK IS USED TO REMOVE A TASK FROM THE WAITLIST BY SUBSTITUTING A NULL TASK CALLED `NULLTASK' (OF COURSE),
# WHICH MERELY DOES A TC TASKOVER. IF THE SAME TASK IS SCHEDULED MORE THAN ONCE, ONLY THE ONE WHICH WILL OCCUR
# FIRST IS REMOVED. IF THE TASK IS NOT SCHEDULED, KILLTASK TAKES NO ACTION AND RETURNS WITH NO ALARM. KILLTASK
# LEAVES INTERRUPTS INHIBITED SO CALLER MUST RELINT
#
# CALLING SEQUENCE
# L TC KILLTASK # IN FIXED-FIXED
# L+1 CADR ???????? # CADR (NOT 2CADR) OF TASK TO BE REMOVED.
# L+2 (RELINT) # RETURN
#
# EXIT MODE: AT L+2 OF CALLING SEQUENCE.
#
# ERASABLE INITIALIZATION: NONE.
#
# OUTPUT: 2CADR OF NULLTASK IN LST2
#
# DEBRIS: ITEMP1 - ITEMP4, A, L, Q.
EBANK= LST2
BLOCK 3 # KILLTASK MUST BE IN FIXED-FIXED.
SETLOC FFTAG6
BANK
COUNT* $$/KILL
KILLTASK CA KILLBB
INHINT
LXCH A
INDEX Q
CA 0 # GET CADR.