forked from virtualagc/virtualagc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTVCRESTARTS.agc
214 lines (189 loc) · 8.25 KB
/
TVCRESTARTS.agc
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
### FILE="Main.annotation"
## Copyright: Public domain.
## Filename: TVCRESTARTS.agc
## Purpose: A section of Skylark revision 048.
## It is part of the source code for the Apollo Guidance Computer (AGC)
## for Skylab-2, Skylab-3, Skylab-4, and ASTP. No original listings of
## this software are available; instead, this file was created via
## disassembly of dumps of the core rope modules actually flown on
## Skylab-2. Access to these modules was provided by the New Mexico
## Museum of Space History.
## Assembler: yaYUL
## Contact: Ron Burkey <[email protected]>.
## Website: www.ibiblio.org/apollo/index.html
## Mod history: 2023-09-04 MAS Created from Artemis 072.
# NAME....TVCRESTART PACKAGE, CONSISTING OF REDOTVC, ENABL1, 2, CMDSOUT, PHSCHK2, ETC.
# LOG SECTION...TVCRESTARTS SUBROUTINE...DAPCSM
# MODIFIED BY SCHLUNDT 21 OCTOBER 1968
# MODIFIED BY BEALS TO ELIMINATE CSMMASS UPDATE LOGIC (NOW DONE IN S40.8)
# FUNCTIONAL DESCRIPTION....
#
# *RESTART-PROOFS THE TVC DAPS, INCLUDING PITCHDAP, YAWDAP,
# TVCEXECUTIVE, ROLLDAP, TVCINIT4, TVCDAPON, AND CSM/.M V46 SWTCHOVR.
# *TVC RESTARTS DESERVE SPECIAL CONSIDERATION IN SEVERAL AREAS.
# RESTART DOWN-TIME IS IMPORTANT BECAUSE OF THE TRANSIENTS INTRODUCED
# BY THE THRUST VECTOR RETURN TO THE ACTUATOR MECHANICAL NULLS
# FOLLOWING TVC- AND OPTICS-ERROR-COUNTER-DISENABLES (CHANNEL 12).
# TVC USES A MIXTURE OF WAITLIST, T5, T6, AND JOB CALLS. THERE IS
# FILTER MEMORY (UP TO 6TH ORDER) TO BE PROTECTED IF WILD TRANSIENTS
# ARE TO BE AVOIDED. COUNTERS ARE INVOLVED FOR ONE-SHOT
# CORRECTIONS AND GAIN UPDATES. THE GIMBAL TRIM ESTIMATORS AND THE
# BODY AXIS ATTITUDE ERROR INTEGRATORS INVOLVE DIGITAL SUMMATION.
# DIGITAL DIFFERENTIATORS ARE INVOLVED IN THE BODY AXIS RATE ESTIMA-
# TIONS AND IN THE OUTPUTTING OF ACTUATOR COMMANDS. THERE IS AN
# OFFSET-TRACKER-FILTER TO PROTECT. ETC., ETC.
# *THOSE QUANTITIES WHICH MUST BE PROTECTED ARE STORED IN TEMPORARY
# REGISTERS AS THEY ARE COMPUTED, FOR UPDATING THE REAL REGISTERS
# DURING COPYCYCLES.
# *THE SEVERAL COPYCYCLES ARE EACH PROTECTED BY PHASE POINTS AT THEIR
# BEGINNING AND AT THEIR TERMINATION. THE PHASE POINTS ARE SIMPLY
# ..INCR.. INSTRUCTIONS, EITHER ..INCR TVCEXPHS.. FOR COPYCYCLES
# IN THE TVCEXECUTIVE, OR ..INCR TVCPHASE.. FOR THE PITCH AND YAW
# COPYCYCLES. INDEXING ON EACH OF THESE POINTERS THEN PERMITS A
# RETURN TO THE APPROPRIATE RESTART POINTS.
# *IF A RESTART OCCURS DURING EITHER COPYCYCLE, THAT COPYCYCLE IS
# COMPLETED. THEN THE NORMAL TVCINIT4....DAPINIT....PITCHDAP STARTUP
# SEQUENCE IS CALLED UPON TO GET THINGS GOING AGAIN.
# *TVC-ENABLE AND OPTICS-ERROR-COUNTER ENABLE MUST BE SET ASAP
# (ALLOWING FOR PROCEDURAL DELAYS). THEN THE ENGINES ARE COMMANDED
# TO THE P,YACTOFF TRIM VALUES. THE DAPS ARE THEN READY TO GO ON THE
# AIR, WITH THE REGULAR STARTUP SEQUENCE, EITHER AT MRCLEAN FOR A
# COMPLETE INITIALIZATION OR AT TVCINIT4 FOR A PARTIAL INITIALIZATION
# *FOR RESTARTS PRIOR TO THE SETTING OF THE T5 BITS AT DOTVCON THE
# PRE40.6 SECTION OF S40.6 TAKES CARE OF RE-ESTABLISHING TRIMS.
# *IF A RESTART OCCURS DURING THE TVCEXEC....TVCEXFIN SEQUENCE THE
# COMPUTATIONS WILL BE COMPLETED, STARTING AT THE APPROPRIATE RESTART
# POINT, AFTER THE DAPS ARE READY TO GO ON THE AIR.
# *IF A RESTART OCCURS PRIOR TO TVCINIT4 (TVCPHASE = -1) E.G. DURING
# THE EARLY DAP INITIALIZATION PHASE, THE DAP STARTUP SEQUENCE IS
# ENTERED AT MRCLEAN FOR A FULL INITIALIZATION.
# *FOR RESTARTS DURING CSM/LM V46 SWITCH-OVER, TVCPHASE IS SET TO -2.
# AND THE RESTART LOGIC GOES BACK TO REDO SWITCH-OVER (AFTER THE
# NORMAL DAP RESTART SEQUENCE IS FOLLOWED).
# *RESTARTS ARE NOT CRITICAL TO THE ROLL DAP PERFORMANCES HENCE THE
# THE ROLL DAP IS MERELY RESTARTED.
# *REDOTVC IS REACHED FOLLOWING ANY RESTART WHICH FINDS THE T5 BITS
# (BITS 15,14 OF FLAGWRD6) SET FOR TVC. DOTVCON SETS TVCPHASE = -1
# AND TVC EXPHS = 0 JUST BEFORE SETTING THESE BITS, JUST BEFORE
# MAKING THE T5 CALL TO TVCDAPON. ON A NORMAL SHUTDOWN DOTVCRCS
# CALLS RCSDAPON, WHICH RESETS THE T5 BITS FOR RCS.
# CALLING SEQUENCE....T5, IN PARTICULAR BY ELRSKIP OF FRESH START/RESTART
#
# NORMAL EXIT MODES....RESUME, NOQRSM, POSTJUMP (TO TVCINIT4 OR MRCLEAN)
#
# ALARM OR ABORT EXIT MODES....NONE
#
# SUBROUTINES CALLED....
#
# *PCOPY+1, YCOPY+1 (PITCH AND YAW COPYCYCLES)
# *ENABLE1,2, CMDSOUT (RE-ESTABLISH ACTUATOR TRIMS)
# *MRCLEAN OR TVCINIT4 (TVCDAP INITIALIZATIONS)
# *SWICHOVR +5 (CSM/LM V46 SWITCH-OVER)
# *EXRSTRT AND TVCEXECUTIVE PHASE POINTS 1 THRU 6
# *WAITLIST, IBNKCALL, POSTJUMP, ISWCALL
#
# OTHER INTERFACES....DOTVCON AND RCSDAPON (T5 BITS), ELRSKIP (CALLS IT)
# ERASABLE INITIALIZATION REQUIRED....
#
# *T5 BITS (1,0), TVCPHASE (-2,-1,0,1,2,3), TVCEXPHS (1 THRU 6)
# *TVC DAP VARIABLES
# *OPERATIONS PERFORMED BY REDOTVC ARE BASED ON THE ASSUMPTION THAT
# THE TVC DAPS ARE RUNNING NORMALLY
#
# OUTPUT....
#
# *PITCH AND YAW TVC DAP COPYCYCLES COMPLETED IF INTERUPTED
# *TVCEXECUTIVE COMPLETED IF INTERUPTED
# *CSM/LM V46 SWITCH-OVER REPEATED IF INTERRUPTED
# *ACTUATOR TRIMS RE-ESTABLISHED (ACTUATORS BACK ON THE AIR)
# *TVC DAP INITIALIZATION AS REQUIRED
# *ALL TVC DAP OPERATIONS ON THE AIR
#
# DEBRIS....TVC TEMPORARIES IN EBANK6
SETLOC DAPROLL
BANK
EBANK= TVCPHASE
COUNT* $$/RSRT
REDOTVC LXCH BANKRUPT # TVC RESTART PACKAGE
EXTEND
QXCH QRUPT # ( ..TCR.. IN ..FINCOPY.. )
EXECPHS CCS TVCEXPHS # CHECK TVCEXECUTIVE PHASE
TCF +2 # MUST RESTART TVCEXECUTIVE
TCF TVCDAPHS # NO NEED TO RESTART TVCEXECUTIVE
CAF NINE # 9CS DELAY TO FORCE EXRSTRT TO OCCUR
TC TWIDDLE # BEFORE PITCHDAP, AFTER CMDSOUT
ADRES EXRSTRT
TVCDAPHS CS OCT37776 # CHECK BITS 15 AND 1 OF TVCPHASE TO SEE
MASK TVCPHASE # DAP RESTART LOCATION (-1,1,2,3)
CCS A
TCF FINCOPY # FINISH THE COPYCYCLE FIRST
TCF ENABL1 # JUST PREPARE THE OUTCOUNTERS AND GO
CS TVCPHASE # TEST FOR TVCPHASE = -2
MASK BIT2 # (THIS INDICATES RESTART OCCURRED
EXTEND # DURING CSM/LM V46 SWITCH-OVER)
BZF TRIM/CMD # NO, TVCPHASE = -1, RSTRT WAS IN TVCINIT
ENABL1 CAF BIT8 # TVC ENABLE, FOLLOWED BY 40 MS (MIN) WAIT
AD BIT11 # SET BIT FOR OPTICS-DAC-ENABLE ALSO
EXTEND # (ENABL1 ENTERED FROM TVCDAPHS / FINCOPY)
WOR CHAN12
CAF TVCADDR # WAIT, CALLING ENABL2 (BBCON THERE)
TS T5LOC
CAF TVCADDR +4 # 60 MS (TVCEXADR)
TS TIME5
TCF RESUME
ENABL2 LXCH BANKRUPT # CONTINUE PREPARATION OF OUTCOUNTERS
CAF BIT2 # OPTICS ERROR CNTR ENABLE, 4MS MIN WAIT
EXTEND
WOR CHAN12
CAF TVCADDR +2 # WAIT, CALLING CMDSOUT (BBCON THERE)
TS T5LOC
CAF OCT37776 # 20MS
TS TIME5
TCF NOQRSM
CMDSOUT LXCH BANKRUPT # CONTINUE PREPARATION OF OUTCOUNTERS
EXTEND
QXCH QRUPT
CS ZERO # MOST RECENT ACTUATOR COMMANDS
AD PCMD # (AVOID +0)
TS TVCPITCH
CS ZERO
AD YCMD
TS TVCYAW
CAF PRIO6 # RELEASE THE COUNTERS (BITS 11,12)
EXTEND
WOR CHAN14
PHSCHK2 CCS TVCPHASE # CHECK TVCPHASE AGAIN
TCF JUMPTVC4
TCF JUMPTVC4
CCS A # A CONTAINS THE DIMINISHED ABSOLUTE OF
TC +3 # TVCPHASE (-2 BECOMES +1. -1 BECOMES +0)
TC POSTJUMP # REPEAT TVC INITIALIZATION
CADR MRCLEAN # (DO NOT RETURN)
+3 TC IBNKCALL # REPEAT CSM/LM V46 SWITCH-OVER
CADR SWICHOVR +5 # (RETURN TO CHECK FOR STROKE TEST)
JUMPTVC4 TC POSTJUMP # IF POSITIVE OR ZERO, RESTART AT
CADR TVCINIT4 # TVCINIT4 (ZEROS TVCPHASE, AND
# CALLS TVC DAPS VIA DAPINIT)
FINCOPY INDEX TVCPHASE # PICK UP THE APPROPRIATE COPYCYCLE
CAF TVCCADR
TCR ISWCALL # RE-ENTER THE COPYCYCLE, RETURN AT END
TCF ENABL1 # NOW PREPARE THE OUTCOUNTERS
TRIM/CMD EXTEND # TVCDAPON INITIALIZATION NOT COMPLETED,
DCA PACTOFF # EG. P,YCMD MAY NOT BE SET. SET...
DXCH PCMD
TCF ENABL1 # NOW PREPARE THE OUTCOUNTERS
EXRSTRT INDEX TVCEXPHS # TVCEXECUTIVE RESTARTS....GO TO
CAF TVCEXADR # APPROPRIATE RESTART POINT
INDEX A
TCF 0
# TVC RESTART TABLES.... ORDER IS REQUIRED. HI-ORDER WORDS ONLY, OF 2CADRS, SINCE BBCON IS ALREADY THERE.
TVCADDR = TVCCADR # TABLE OF CADRS, UNUSED LOCS FOR GENADRS
TVCCADR GENADR ENABL2 # (FOR T5 CALL, UNUSED TABLE LOC)
+1 CADR PCOPY +1 # PITCH COPYCYCLE
+2 GENADR CMDSOUT # (FOR T5 CALL, UNUSED TABLE LOC)
+3 CADR YCOPY +1 # YAW COPYCYCLE
TVCEXADR OCT 37772 # (UNUSED TABLE LOC, FILL WITH 60MS, T5)
+1 GENADR TEMPSET # TVCEXECUTIVE RESTART POINTS (ORDERED)
+2 GENADR CORSETUP
+3 GENADR CORCOPY +1
+4 GENADR CNTRCOPY