forked from chrislgarry/Apollo-11
-
Notifications
You must be signed in to change notification settings - Fork 3
/
FRESH_START_AND_RESTART.s
1474 lines (1269 loc) · 31.7 KB
/
FRESH_START_AND_RESTART.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: FRESH_START_AND_RESTART.agc
# Purpose: Part of the source code for Comanche, build 055. It
# is part of the source code for the Command Module's
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
# Assembler: yaYUL
# Reference: pp. 181-210
# Contact: Ron Burkey <[email protected]>,
# Fabrizio Bernardini <[email protected]>
# Website: http://www.ibiblio.org/apollo.
# Mod history: 2009-05-16 FB Transcription Batch 2 Assignment.
# 2009-05-20 RSB Removed an extraneous "TC STARTSUB".
# 2009-05-21 RSB Changed a "TC BANKCALL" to "TC STOPRATE"
# in INITSUB.
#
# The contents of the "Comanche055" files, in general, are transcribed
# from scanned documents.
#
# Assemble revision 055 of AGC program Comanche by NASA
# 2021113-051. April 1, 1969.
#
# This AGC program shall also be referred to as Colossus 2A
#
# Prepared by
# Massachussets Institute of Technology
# 75 Cambridge Parkway
# Cambridge, Massachusetts
#
# under NASA contract NAS 9-4065.
#
# Refer directly to the online document mentioned above for further
# information. Please report any errors to [email protected].
# Page 181
# PROGRAM DESCRIPTION 8 APRIL, 1967
# SUNDISK REV 120
# FUNCTIONAL DESCRIPTION
#
# SLAP1 MAN INITIATED FRESH START
# 1. EXECUTE STARTSUB
# 2. TURN OFF DSKY DISCRETE-LAMPS
# 3. CLEAR FAIL REGISTERS, SELF-CHECK ERROR COUNTER AND RESTART
# COUNTER
# 4. EXECUTE DOFSTART
#
# DOFSTART MACHINE INITIATED FRESH START
#
# 1. CLEAR SELF-CHECK REGISTERS, MODE REGISTER AND CDUZ REGISTER
# 2. CLEAR PHASE TABLE
# 3. INITIALIZE IMU FLAGS
# 4. INITIALIZE FLAGWORDS
# 5. TRANSFER CONTROL TO IDLE LOOP IN DUMMYJOB
#
# GOPROG HARDWARE RESTART
#
# 0. EXECUTE STARTSUB
# 1. TRANSFER CONTROL TO DOFSTART IF ANY OF THE FOLLOWING CONDITIONS
# EXIST.
# A. RESTART OCCURRED DURING EXECUTION OF ERASCHK.
# B. BOTH OSCILLATOR FAIL AND AGC WARNING ARE ON.
# C. MARK REJECT AND EITHER NAV OR MAIN DSKY ERROR LIGHT RESET
# ARE ON.
# 2. SCHEDULE A T5RUPT PROGRAM FOR THE DAP
# 3. SET FLAGWRD5 BITS FOR INTWAKE ROUTINE
# 4. EXTINGUISH ALL DSKY LAMPS, EXCEPT FOR PROGRAM ALARM, GIMBAL LOCK, AND
# NO ATT
# 5. INITIALIZE IMU FLAGS
# 6. IF ENGINE COMMAND IS ON (FLAGWRD5, BIT 7), SET ENGINE ON (CHANNEL
# 11, BIT 13).
# 7. TRANSFER CONTROL TO GOPROG3
#
# ENEMA SOFTWARE RESTART -- INITIATED BY MAJOR MODE CHANGE
#
# 1. EXECUTE STARTSB2
# 2. KILL PROGRAMS THAT WERE INTEGRATING OR WAITING FOR INTEGRATION
# ROUTINE
# 3. TRANSFER CONTROL TO GOPROG3
#
# GOPROG3 SUBROUTINE COMMON TO GOPROG AND ENEMA
#
# 1. TEST PHASE TABLES -- IF INCORRECT, DISPLAY ALARM 1107 AND
# TRANSFER CONTROL TO DOFSTART
# 2. DISPLAY MAJOR MODE
# 3. IF ANY GROUPS WERE ACTIVE UPON RESTART, TRANSFER CONTROL TO THE
# Page 182
# RESTARTS SUBROUTINE TO RESCHEDULE PENDING TASKS, LONGCALLS, AND
# JOBS (P20 IS RESTARTED VIA FINDVAC)
# 4. IF NO GROUPS WERE ACTIVE UPON RESTART, DISPLAY ALARM CODE
# 1110 (RESTART WITH NO ACTIVE GROUPS)
# 5. TRANSFER CONTROL TO IDLE LOOP IN DUMMYJOB
#
# STARTSUB SUBROUTINE COMMON TO SLAP1 AND GOPROG
#
# 1. CLEAR OUTBIT CHANNELS 5 AND 6
# 2. INITIALIZE TIME5, TIME4, TIME3
# 3. TRANSFER CONTROL TO STARTSB2
#
# STARTSB2 SUBROUTINE COMMON TO STARTSUB AND ENEMA
#
# 1. INTIALIZE OUTBIT CHANNELS 11,12,13, AND 14
# 2. REPLACE ALL TASKS ON WAITLIST WITH ENDTASK
# 3. MAKE ALL EXECUTEVE REGISTERS AVAILABLE
# 4. MAKE ALL VAC AREAS AVAILABLE
# 5. CLEAR DSKY REGISTERS
# 6. ZERO NUMEROUS SWITCHES
# 7. INITIALIZE OPTICS FLAGS
# 8. INITIALIZE PIPA AND TELEMETRY FAIL FLAGS
# 9. INITIALIZE DOWN TELEMETRY
#
# INPUT/OUTPUT INITIALIZATION
#
# A. CALLING SEQUENCE
#
# SLAP1 -- TC POSTJUMP OR VERB 36,ENTER
# CADR SLAP1
#
# ENEMA -- TC POSTJUMP *** DO NOT CALL ENEMA WITHOUT ***
# CADR ENEMA *** CONSULTING P00H PEOPLE ***
#
# B. OUTPUT
#
# ERASABLE MEMORY INITIALIZATION
#
# PROGRAM ANALYSIS
#
# A. SUBROUTINES CALLED
#
# MR.KLEAN,WAITLIST,DSPMM,ALARM,RESTARTS,FINDVAC
#
# B. ALARMS
#
# 1107 PHASE TABLE ERROR
# 1110 RESTART WTIH NO ACTIVE GROUPS
# Page 183
BANK 10
SETLOC FRANDRES
BANK
EBANK= LST1
COUNT 05/START
SLAP1 INHINT # FRESH START. COMES HERE FROM PINBALL.
TC STARTSUB # SUBROUTINE DOES MOST OF THE WORK.
STARTSW TCF SKIPSIM # PATCH....TCF STARTSIM...FOR SIMULATION
STARTSIM CAF BIT14
TC FINDVAC
SIM2CADR OCT 77777 # PATCH 2CADR (AND EBANK DESIGNATION) OF
OCT 77777 # SIMULATION START ADDRESS.
SKIPSIM CA DSPTAB +11D
MASK BITS4&6
AD BIT15
TS DSPTAB +11D # REQUESTED FRESH START.
CA ZERO # SAME STORY ON ZEROING FAILREG.
TS ERCOUNT
TS FAILREG
TS FAILREG +1
TS FAILREG +2
TS REDOCTR
CS PRIO12
TS DSRUPTSW
DOFSTART CAF ZERO # DO A FRESH START.
TS ERESTORE # ***** MUST NOT BE REMOVED FROM DOFSTART
TS SMODE # ***** MUST NOT BE REMOVED FROM DOFSTART
TS UPSVFLAG # UPDATE STATE VECTOR REQUEST FLAGWORD
EXTEND
WRITE CHAN5 # TURN OFF RCS JETS
EXTEND
WRITE CHAN6 # TURN OFF RCS JETS
EXTEND
WRITE DSALMOUT # ZERO CHANNEL 11
EXTEND
WRITE CHAN12 # ZERO CHANNEL 12
EXTEND
WRITE CHAN13 # ZERO CHANNEL 13
EXTEND
WRITE CHAN14 # ZERO CHANNEL 14
TS WTOPTION
TS DNLSTCOD
# Page 184
TS NVSAVE
TS EBANKTEM
TS RATEINDX
TS TRKMKCNT
TS VHFCNT
TS EXTVBACT
CS DSPTAB +11D
MASK BITS4&6
CCS A
TC +4
CA BITS4&6
EXTEND # THE IMU WAS IN COARSE ALIGN IN GIMBAL
WOR CHAN12 # LOCK, SO PUT IT BACK INTO COARSE ALIGN.
TC MR.KLEAN
CS ZERO
TS MODREG
CAF PRIO30
TS RESTREG
CAF IM30INIF # FRESH START IMU INITIALIZATION.
TS IMODES30
CAF NEGONE
TS OPTIND # KILL COARSE OPTICS
CAF OPTINITF
TS OPTMODES
CAF IM33INIT
TS IMODES33
EXTEND # LET T5 IDLE.
DCA T5IDLER
DXCH T5LOC
CA SWINIT
TS STATE
CA FLAGWRD1
MASK NOP01BIT # LEAVE NODOP01 FLAG UNTOUCHED
AD SWINIT +1
TS FLAGWRD1
CA SWINIT +2
TS STATE +2
CA FLAGWRD3
# Page 185
MASK BIT13 # REFSMMAT FLAG
AD SWINIT +3
TS FLAGWRD3
EXTEND
DCA SWINIT +4
DXCH STATE +4
EXTEND
DCA SWINIT +6
DXCH STATE +6
CA FLAGWRD8
MASK OCT6200 # CMOONFLG, LMOONFLG, AND SUFFLAG
AD SWINIT +8D
TS FLAGWRD8
CA SWINIT +9D
TS STATE +9D
EXTEND
DCA SWINIT +10D
DXCH STATE +10D
ENDRSTRT TC POSTJUMP
CADR DUMMYJOB +2 # PICKS UP AT RELINT. (IN A SWITCHED BANK.)
MR.KLEAN INHINT
EXTEND
DCA NEG0
DXCH -PHASE2
P00KLEAN EXTEND
DCA NEG0
DXCH -PHASE4
EXTEND
DCA NEG0
DXCH -PHASE1
V37KLEAN EXTEND
DCA NEG0
DXCH -PHASE3
EXTEND
DCA NEG0
DXCH -PHASE5
EXTEND
DCA NEG0
DXCH -PHASE6
TC Q
OCT6200 OCT 6200
# Page 186
# COMES HERE FROM LOCATION 4000, GOJAM, RESTART ANY PROGRAMS WHICH MAY HAVE BEEN RUNNING AT THE TIME.
GOPROG INCR REDOCTR # ADVANCE RESTART COUNTER.
LXCH Q
EXTEND
ROR SUPERBNK
DXCH RSBBQ
TC BANKCALL # STORE ERASABLES FOR DEBUGGING PURPOSES.
CADR VAC5STOR
CA BIT15 # TEST OSC FAIL BIT TO SEE IF WE HAVE
EXTEND # HAD A POWER TRANSIENT. IF SO, ATTEMPT
WAND CHAN33 # A RESTART. IF NOT, CHECK THE PRESENT
EXTEND # STATE OF AGC WARNING BIT.
BZF BUTTONS
CA BIT14 # IF AGC WARNING ON (BIT = 0), DO A
EXTEND # FRESH START ON THE ASSUMPTION THAT
RAND CHAN33 # WE ARE IN A RESTART LOOP.
EXTEND
BZF NONAVKEY +1
BUTTONS TC LIGHTSET # MAKE FRESH START CHECKS BEFORE ERESTORE.
# ERASCHK TEMPORARILY STORES THE CONTENST OF TWO ERASABLE LOCATIONS, X
# AND X+1 INTO SKEEP5 AND SKEEP6. IT ALSO STORES X INTO SKEEP7 AND
# ERESTORE. IF ERASCHK IS INTERRUPTED BY A RESTART, C(ERESTORE) SHOULD
# EQUAL C(SKEEP7), AND SHOULD BE A + NUMBER LESS THAN 2000 OCT. OTHERWISE
# C(ERESTORE) SHOULD EQUAL +0.
CAF HI5
MASK ERESTORE
EXTEND
BZF +2 # IF ERESTORE NOT = +0 OR +N LESS THAN 2K,
TCF NONAVKEY +1 # DOUBT E MEMORY AND DO A FRESH START
CS ERESTORE
EXTEND
BZF ELRSKIP -1
AD SKEEP7
EXTEND
BZF +2 # = SKEEP7, RESTORE E MEMORY.
TCF NONAVKEY +1 # NOT = SKEEP7, DOUBT E MEM, DO FRESH START
CA SKEEP4
TS EBANK # EBANK OF E MEMORY THAT WAS UNDER TEST.
EXTEND # (NOT DXCH SINCE THIS MIGHT HAPPEN AGAIN)
DCA SKEEP5
INDEX SKEEP7
DXCH 0000 # E MEMORY RESTORED
CA ZERO
TS ERESTORE
# Page 187
TC STARTSUB # DO INITIALIZATION AFTER ERASE RESTORE.
ELRSKIP CA FLAGWRD6 # RESTART AUTOPILOTS
EXTEND
MP BIT3 # BITS 15,14 00 T5IDLOC
MASK SIX # 01 REDORCS
EXTEND # 10 REDOTVC
INDEX A # 11 REDOSAT
DCA T5IDLER
DXCH T5LOC
CS INTFLBIT
MASK RASFLAG
TS RASFLAG
CA OPTMODES
MASK OPTINITR
AD BIT7
TS OPTMODES
CAF BIT6
MASK IMODES33
AD IM33INIT
TS IMODES33
CA 9,6,4 # LEAVE PROG ALARM, GIMBAL LOCK, NO ATT
MASK DSPTAB +11D # LAMPS INTACT ON HARDWARE RESTART
AD BIT15
XCH DSPTAB +11D
MASK BIT4 # IF NO ATT LAMP WAS ON, LEAVE ISS IN
EXTEND # COARSE ALIGN
BZF NOCOARSE
TC IBNKCALL # IF NO ATT LAMP ON, RETURN ISS TO
CADR SETCOARS # COARSE ALIGN.
CAF SIX
TC WAITLIST
EBANK= CDUIND
2CADR CA+ECE
NOCOARSE CAF IFAILINH # LEAVE FAILURE INHIBITS INTACT ON
MASK IMODES30 # HARDWARE RESTART. RESET ALL
AD IM30INIR # FAILURE CODES.
TS IMODES30
CS FLAGWRD5
MASK ENGONBIT
CCS A
TCF GOPROG3
CAF BIT13
EXTEND
# Page 188
WOR DSALMOUT # TURN ENGINE ON
TCF GOPROG3
ENEMA INHINT
TC LIGHTSET # EXIT TO DOFSTART IF ERROR RESET AND
TC STARTSB2 # MARK REJECT DEPRESSED SIMULTANEOUSLY
CS INTMASK # RESET INTEGRATION BITS
MASK RASFLAG
TS RASFLAG
CS FLAGWRD6 # IS TVC ON
MASK OCT60000
EXTEND
BZMF GOPROG3 # NO
CAF .5SEC # YES, CALL TVCEXEC TASK WHICH WAS KILLED
TC WAITLIST # IN STARTSB2
EBANK= BZERO
2CADR TVCEXEC
GOPROG3 CAF NUMGRPS # VERIFY PHASE TABLE AGREEMENTS
PCLOOP TS MPAC +5
DOUBLE
EXTEND
INDEX A
DCA -PHASE1 # COMPLEMENT INTO A, DIRECT INTO L.
EXTEND
RXOR LCHAN # RESULT MUST BE -0 FOR AGREEMENT.
CCS A
TCF PTBAD # RESTART FAILURE.
TCF PTBAD
TCF PTBAD
CCS MPAC +5 # PROCESS ALL RESTART GROUPS.
TCF PCLOOP
TS MPAC +6 # SET TO +0.
TC MMDSPLAY # DISPLAY MAJOR MODE
INHINT # RELINT DONE IN MMDSPLAY
CAE FLAGWRD6 # IS RCS DAP RUNNING (BITS 15 14 OF
MASK OCT60000 # FLAGWORD6 = 01)
EXTEND # YES, DO STOPRATE
BZMF NXTRST -1 # NO, SKIP TO NXTRST -1
CAF EBANK6 # STOPRATE IS DONE IN EBANK 6
TS EBANK
TC STOPRATE # ZERO DELCDUS, WBODYS, AND BIASES THUS
# STOPPING AUTOMATIC MANEUVERING
CAF EBANK3
TS EBANK
# Page 189
CAF NUMGRPS # SEE IF ANY GROUPS RUNNING
NXTRST TS MPAC +5
DOUBLE
INDEX A
CCS PHASE1
TCF PACTIVE # PNZ -- GROUP ACTIVE.
TCF PINACT # +0 -- GROUP NOT RUNNING.
PACTIVE TS MPAC
INCR MPAC # ABS OF PHASE.
INCR MPAC +6 # INDICATE GROUP DEMANDS PRESENT.
CA RACTCADR
TC SWCALL # MUST RETURN TO SWRETURN.
PINACT CCS MPAC +5 # PROCESS ALL RESTART GROUPS.
TCF NXTRST
CCS MPAC +6 # NO, CHECK PHASE ACTIVITY FLAG
TCF ENDRSTRT # PHASE ACTIVE
CAF BIT15 # IS MODE -0
MASK MODREG
EXTEND
BZF GOTOP00H # NO
TCF ENDRSTRT # YES
PTBAD TC ALARM # SET ALARM TO SHOW PHASE TABLE FAILURE.
OCT 1107
TCF DOFSTART # IN R21.
# ********* ********* **********
# DO NOT USE GOPROG2 OR ENEMA WITHOUT CONSULTING P00H PEOPLE.
GOPROG2 EQUALS ENEMA
OCT10000 = BIT13
OCT30000 = PRIO30
OCT7777 OCT 7777
RACTCADR CADR RESTARTS
LIGHTSET CAF BIT7 # DOFSTART IF MARK REJECT AND EITHER
EXTEND # ERROR LIGHT RESET BUTTONS ARE DEPRESSED
RAND NAVKEYIN
EXTEND
BZF NONAVKEY # NO MARK REJECT
CAF OCT37
EXTEND
RAND NAVKEYIN # NAV DSKY KEYCODES,MARK,MARK REJECT
AD -ELR
EXTEND
BZF NONAVKEY +1
EXTEND
# Page 190
READ MNKEYIN # MAIN DSKY KEYCODES
AD -ELR
EXTEND
BZF +2
NONAVKEY TC Q
TC STARTSUB
TCF DOFSTART
STARTSUB CAF LDNPHAS1 # SET POINTER SO NEXT 20MS DOWNRUPT WILL
TS DNTMGOTO # CAUSE THE CURRENT DOWNLIST TO BE
# INTERRUPTED AND START SENDING FROM THE
# BEGINNING OF THE CURRENT DOWNLIST.
CAF POSMAX
TS TIME3 # 37777 TO TIME3.
AD MINUS2
TS TIME4 # 37775 TO TIME4.
AD NEGONE
TS TIME5 # 37774 TO TIME5.
STARTSB2 CAF OCT77603 # TURN OFF UPLINK ACTY, TEMP CAUTION, KR,
EXTEND # FLASH, OP. ERROR, LEAVE OTHERS UNCHANGED.
WAND DSALMOUT
CAF OCT74777 # TURN OFF TEST ALARMS, STANDBY ENABLE.
EXTEND
WAND CHAN13
CS PRIO25 # CLEAR R21MARK, P21FLAG, AND SKIPVHF BIT.
MASK FLAGWRD2
AD SKIPVBIT # NOW SET SKIPVHF FLAG.
TS FLAGWRD2
EBANK= LST1
CAF STARTEB
TS EBANK # SET FOR E3
CAF NEG1/2 # INITIALIZE WAITLIST DELTA-TS.
TS LST1 +7
TS LST1 +6
TS LST1 +5
TS LST1 +4
TS LST1 +3
TS LST1 +2
TS LST1 +1
TS LST1
CS ENDTASK
TS LST2
TS LST2 +2
TS LST2 +4
# Page 191
TS LST2 +6
TS LST2 +8D
TS LST2 +10D
TS LST2 +12D
TS LST2 +14D
TS LST2 +16D
CS ENDTASK +1
TS LST2 +1
TS LST2 +3
TS LST2 +5
TS LST2 +7
TS LST2 +9D
TS LST2 +11D
TS LST2 +13D
TS LST2 +15D
TS LST2 +17D
CS ZERO # MAKE ALL EXECUTIVE REGISTER SETS
TS PRIORITY # AVAILABLE.
TS PRIORITY +12D
TS PRIORITY +24D
TS PRIORITY +36D
TS PRIORITY +48D
TS PRIORITY +60D
TS PRIORITY +72D
TS DSRUPTSW
TS NEWJOB # SHOWS NO ACTIVE JOBS.
CAF VAC1ADRC # MAKE ALL VAC AREAS AVAILABLE.
TS VAC1USE
AD LTHVACA
TS VAC2USE
AD LTHVACA
TS VAC3USE
AD LTHVACA
TS VAC4USE
AD LTHVACA
TS VAC5USE
CAF TEN # BLANK DSKY REGISTERS (PROGRAM,VERB,NOUN,
# R1,R2,R3)
DSPOFF TS MPAC
CS BIT12
INDEX MPAC
TS DSPTAB
CCS MPAC
TCF DSPOFF
TS DELAYLOC
# Page 192
TS DELAYLOC +1
TS DELAYLOC +2
TS DELAYLOC +3
TS R1SAVE
TS INLINK
TS DSPCNT
TS CADRSTOR
TS REQRET
TS CLPASS
TS DSPLOCK
TS MONSAVE # KILL MONITOR
TS MONSAVE1
TS VERBREG
TS NOUNREG
TS DSPLIST
TS MARKSTAT
TS IMUCADR
TS OPTCADR
TS RADCADR
TS ATTCADR
TS LGYRO
TS FLAGWRD4 # KILL INTERFACE DISPLAYS
CAF NOUTCON
TS NOUT
CAF BIT14
MASK EXTVBACT
TS EXTVBACT
CAF LESCHK # SELF CHECK GO-TO REGISTER.
TS SELFRET
CS VD1
TS DSPCOUNT
TC Q
T5IDLOC CA L # T5RUPT COMES HERE EVERY 163.84 SECS
TCF NOQRSM +1 # WHEN NOBODY IS USING IT.
EBANK= OGANOW
T5IDLER 2CADR T5IDLOC
EBANK= OGANOW
2CADR REDORCS
EBANK= OGANOW
2CADR REDOTVC
EBANK= OGANOW
2CADR REDOSAT
# Page 193
IFAILINH OCT 435
LDNPHAS1 GENADR DNPHASE1
LESCHK GENADR SELFCHK
VAC1ADRC ADRES VAC1USE
LTHVACA DEC 44
INTMASK OCT 20100
OCT77603 OCT 77603
OCT74777 OCT 74777
STARTEB ECADR LST1
NUMGRPS EQUALS FIVE
-ELR OCT -22 # -ERROR LIGHT RESET KEY CODE.
IM30INIF OCT 37411 # INHIBITS IMU FAIL FOR 5 SEC AND PIP ISSW
IM30INIR OCT 37000
IM33INIT = PRIO16 # NO PIP OR TM FAIL SIGNALS.
9,6,4 OCT 450
OPTINITF OCT 130
OPTINITR OCT 430
SWINIT OCT 0
OCT 0
OCT 0
OCT 0
OCT 0
OCT 00200
OCT 0
OCT 0
OCT 0
OCT 0
OCT 0
OCT 0
# Page 194
# PROGRAM NAME GOTOP00H ASSEMBLY SUNDISK
# LOG SECTION FRESH START AND RESTART
#
# FUNCTIONAL DESCRIPTION
#
# 1. DISPLAY MAJOR MODE NUMBER 00 IN DSKY REGISTER R1 AND R3. FLASH V50N07 ON DSKY. (M M CHANGE REQUEST)
# 2. PERMIT A CURRENT PENDING REQUEST (FLASH ON DSKY) TO BE REPLACED (WITHOUT AN ABORT) BY THE MAJOR MODE
# CHANGE REQUEST.
#
# INPUT/OUTPUT INFORMATION
#
# A. CALLING SEQUENCE TC GOTOP00H
# B. ERASABLE INITIALIZATION NONE
# C. OUTPUT FLASH V 50 NOUN 07 ON DSKY
# D. DEBRIS L
#
# PROGRAM ANALYSIS
#
# A. SUBROUTINES CALLED GOPERF3, LINUS
# B. NORMAL EXIT TCF ENDOFJOB
# C. ALARM AND ABORT EXITS NONE
BLOCK 02
SETLOC FFTAG10
BANK
COUNT 02/P00
GOTOP00H TC PHASCHNG # RESTART GOTOP00H
OCT 14
TC POSTJUMP
CADR GOP00FIX
BANK 10
SETLOC VERB37
BANK
COUNT 04/P00
GOP00FIX TC INITSUB
TC CLEARMRK +2
CAF V37N99
TC BANKCALL
CADR GOFLASH
TCF -3
# Page 195
TCF -4
TCF -5
V37N99 VN 3799
# Page 196
# PROGRAM NAME V37 ASSEMBLY SUNDISK
#
# LOG SECTION FRESH START AND RESTART
#
# FUNCTIONAL DESCRIPTION
#
# 1. CHECK IF NEW PROGRAM ALLOWED. IF BIT 1 OF FLAGWRD2 (NODOFLAG) IS SET, AN ALARM 1520 IS CALLED.
# 2. CHECK FOR VALIDITY OF PROGRAM SELECTED. IF AN INVALID PROGRAM IS SELECTED, THE OPERATOR ERROR LIGHT IS
# SET AND CURRENT ACTIVITY, IF ANY, CONTINUE.
# 3. SERVICER IS TERMINATED IF IT HAS BEEN RUNNING.
# 4. INSTALL IS EXECUTED TO AVOID INTERRUPTING INTEGRATION.
# 5. THE ENGINE IS TURNED OFF AND THE DAP IS INITIALIZED FOR COAST.
# 6. TRACK, UPDATE, AND TARG1 FLAGS ARE SET TO ZERO.
# 7. DISPLAY SYSTEM IS RELEASED.
# 8. THE FOLLOWING ARE PERFORMED FOR EACH OF THE THREE CASES.
# A. PROGRAM SELECTED IS P00.
# 1. RENDEZVOUS FLAG IS RESET. (KILL P20)
# 2. STATINT1 IS SCHEDULED BY SETTING RESTART GROUP 2.
# 3. MAJOR MODE 00 IS STORED IN THE MODE REGISTER (MODREG).
# 4. SUPERBANK 3 IS SELECTED.
# 5. NODOFLAG IS RESET.
# 6. ALL RESTART GROUPS EXCEPT GROUP2 ARE CLEARED. CONTROL IS TRANSFERRED TO RESTART PROGRAM (GOPROG2)
# WHICH CAUSES ALL CURRENT ACTIVITY TO BE DISCONTINUED AND A 9 MINUTE INTEGRATION CYCLE TO BE
# INITIATED.
# B. PROGRAM SELECTES IS P20.
# 1. IF THE CURRENT MAJOR MODE IS THE SAME AS THE SELECTED NEWPROGRAM. THE PROGRAM IS RE-INITIALIZED
# VIA V37XEQ, ALL RESTART GROUPS, EXCEPT GROUP 4 ARE CLEARED.
# 2. IF THE CURRENT MAJOR MODE IS NOT EQUAL TO THE NEW REQUEST, A CHECK IS MADE TO SEE IF THE REQUEST-
# ED MAJOR MODE HAS BEEN RUNNING THE BACKGROUND,
# AND IF IT HAS, NO NEW PROGRAM IS SCHEDULED, THE EXISTING
# P20 IS RESTARTED TO CONTINUE, AND ITS MAJORE MODE IS SET.
# 3. CONTROL IS TRANSFERRED TO GOPROG2.
# C. PROGRAM SELECTED IS NEITHER P00 NOR P20
# 1. V37XEQ IS SCHEDULED (AS A JOB) BY SETTING RESTART GROUP 4
# 2. ALL CURRENT ACTIVITY EXCEPT RENDEZVOUS AND TRACKING IS DISCONTINUED BY CLEARING ALL RESTART
# GROUPS. GROUP 2 IS CLEARED. IF THE RENDEZVOUS FLAG IS ON P20 IS RESTARTED IN GOPROG2 VIA REDOP20,
# TO CONTINUE.
#
# INPUT/OUTPUT INFORMATION
#
# A. CALLING SEQUENCE
# CONTROL IS DIRECTED TO V37 BY THE VERBFAN ROUTINE.
# VERBFAN GOES TO C(VERBTAB+C(VERBREG)). VERB 37 = MMCHANG.
# MMCHANG EXECUTES A TC POSTJUMP, CADR V37.
#
# B. ERASABLE INITIALIZATION NONE
#
# C. OUTPUT
# MAJOR MODE CHANGE
# Page 197
#
# D. DEBRIS
# MMNUMBER, MPAC +1, MINDEX, BASETEMP +C(MINDEX), FLAGWRD0, FLAGWRD1, FLAGWRD2, MODREG, GOLOC -1,
# GOLOC, GOLOC +1, GOLOC +2, BASETEMP, -PHASE2, PHASE2, -PHASE4
#
# PROGRAM ANALYSIS
#
# A. SUBROUTINES CALLED
# ALARM, RELDSP, PINBRNCH, INTSTALL, ENGINOF2, ALLCOAST, V37KLEAN, GOPROG2, FALTON, FINDVAC, SUPERSW,
# DSPMM
#
# B. NORMAL EXIT TC ENDOFJOB
#
# C. ALARMS 1520 (MAJOR MODE CHANGE NOT PERMITTED)
BLOCK 02
SETLOC FFTAG10
BANK
COUNT 02/V37
OCT24 MM 20
OCT31 MM 25
BANK 27
SETLOC VERB37
BANK
COUNT 04/V37
V37 TS MMNUMBER # SAVE MAJOR MODE
CAF PRIO30 # RESTART AT PINBALL PRIORITY
TS RESTREG
CA IMODES30 # IS IMU BEING INITIALIZED
MASK BIT6
CCS A
TCF CANTR00
CAF BIT13 # IS ENGINE ON
EXTEND
RAND DSALMOUT
CCS A
TCF R00TOP00 # YES, SET UP FOR P00
CS FLAGWRD6 # NO, IS TVC DAP ON
MASK OCT60000
EXTEND
BZMF ISITP00 # NO, CONTINUE WITH R00
R00TOP00 INHINT
CAF EBANK6
# Page 198
TS EBANK
EBANK= DAPDATR1
CAE CSMMASS
TS MASSTMP
TC IBNKCALL
CADR SPSOFF
TC IBNKCALL
CADR MASSPROP
CAF 3.1SEC
TC IBNKCALL
CADR RCSDAPON +1
TC IBNKCALL
CADR TVCZAP # DISABLE TVC
CAF ZERO
TS MMNUMBER
RELINT
CAF FIVE
TC BANKCALL
CADR DELAYJOB
CAF ZERO
EXTEND
WRITE 5
EXTEND
WRITE 6
ISITP00 CA MMNUMBER
EXTEND
BZF ISSERVON # YES, CHECK SERVICER STATUS
CS FLAGWRD2 # NO, IS NODO V37 FLAG SET
MASK NODOBIT
CCS A
TCF CHECKTAB # NO
CANTR00 TC ALARM
OCT 1520
V37BAD TC RELDSP # RELEASES DISPLAY FROM ASTRONAUT
TC POSTJUMP # BRING BACK LAST NORMAL DISPLAY IF THERE
CADR PINBRNCH # WAS ONE. OY
CHECKTAB CA NOV37MM # THE NO. OF MM
AGAINMM TS MPAC +1
NDX MPAC +1
CA PREMM1 # OBTAIN WHICH MM THIS IS FOR
MASK LOW7
COM
AD MMNUMBER
CCS A
CCS MPAC +1 # IF GR, SEE IF ANY MORE IN LIST
# Page 199
TCF AGAINMM # YES, GET NEXT ONE
TCF V37NONO # LAST TIME OR PASSED MM
CA MPAC +1
TS MINDEX # SAVE INDEX FOR LATER
ISSERVON CS FLAGWRD7 # V37 FLAG SET -- I.E., IS SERVICER GOING
MASK V37FLBIT
CCS A
TCF CANV37 # NO
INHINT
CS AVEGBIT # YES TURN OFF AVERAGE G FLAG AND WAIT
MASK FLAGWRD1 # FOR SERVICER TO RETURN TO CANV37
TS FLAGWRD1
TCF ENDOFJOB
CANV37 CAF R00AD
TS TEMPFLSH
TC PHASCHNG
OCT 14
ROC TC INTPRET
CALL # WAIT FOR INTEGRATION TO FINISH
INTSTALL
DUMMYAD EXIT
CS OCT1400 # CLEAR CAUTION RESET
EXTEND # AND TEST CONNECTOR OUTBIT
WAND 11
CAF OCT44571 # CLEAR ENABLE OPTICS ERROR COUNTER, STAR
EXTEND # TRAKERS ON BIT, TVC ENABLE, ZERO OPTICS,
WAND 12 # DISENGAGE OPTICS DAP, SIVB IN J SEQUENCE
# START, AND SIVB CUTOFF BIT.
CS OCT600 # CLEAR UNUSED BITS
EXTEND
WAND 13
TC INITSUB
TC CLEARMRK
TC DOWNFLAG
ADRES STIKFLAG
# Page 200
TC BANKCALL
CADR UPACTOFF # TURN OFF UPLINK ACTIV LIGHT
TC DOWNFLAG
ADRES VHFRFLAG
TC DOWNFLAG
ADRES R21MARK
CCS MMNUMBER # IS THIS A P00H REQUEST
TCF NOUVEAU # NO, PICK UP NEW PROGRAM
COUNT 04/P00
P00H TC RELDSP # RELEASE DISPLAY SYSTEM
CAF PRIO5 # SET VARIABLE RESTART REGISTER FOR P00.
TS PHSPRDT2
INHINT
CS NODOBIT # TURN OFF NODOFLAG.
MASK FLAGWRD2
TS FLAGWRD2
CA FIVE # SET 2.5 RESTART FOR STATEINT1
TS L
COM
DXCH -PHASE2
CS BIT7-8 # RESET IMUSE + KILL P20 BY TURNING OFF
MASK FLAGWRD0
TS FLAGWRD0 # RENDFLG
CAF DNLADP00
COUNT 04/V37
SEUDOP00 TS DNLSTCOD # SET UP APPROPRIATE DOWNLIST CODE
# (OLD ONE WILL BE FINISHED FIRST)
CS OCT01120 # TURN OFF TRACK, TARG1, UPDATE FLAGS
TS EBANKTEM
MASK FLAGWRD1
TS FLAGWRD1
GROUPKIL TC IBNKCALL # KILL GROUPS 3,5,6
CADR V37KLEAN
CCS MMNUMBER # IS IT P00H
TCF RENDV00 # NO
# Page 201
TC IBNKCALL
CADR P00KLEAN # REDUNDANT EXCEPT FOR GROUP 4.
GOMOD CA MMNUMBER
TS MODREG
GOGOPROG TC POSTJUMP
CADR GOPROG2
RENDV00 CS MMNUMBER # IS NEW PROG = 20
AD OCT24 # 20
EXTEND
BZF RENDN00 # YES
TCF P00FIZZ
RENDN00 CS MMNUMBER
AD MODREG
EXTEND