forked from chrislgarry/Apollo-11
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTVCSTROKETEST.s
261 lines (224 loc) · 8.61 KB
/
TVCSTROKETEST.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
# Copyright: Public domain.
# Filename: TVCSTROKETEST.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: 979-983
# 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 979
# NAME STROKE TEST PACKAGE (INCLUDING INITIALIZATION PACKAGE)
# LOG SECTION...TVCSTROKETEST SUBROUTINE...DAPCSM
# MODIFIED BY SCHLUNDT 21 OCTOBER 1968
#
# FUNCTIONAL DESCRIPTION....
# STROKE TEST PACKAGE GENERATES A WAVEFORM DESIGNED TO EXCITE BENDING
# STRKTSTI (STROKE TEST INITIALIZATION) IS CALLED AS A JOB BY VB68.
# IT INITIALIZES ALL ERASABLES REQD FOR A STROKE TEST, AND
# THEN TESTS FOR CSM/LM (BIT 13 OF DAPDATR1). IF CSM/LM,
# IN EITHER HIGH OR LOW-BANDWIDTH MODE, THE TEST IS STARTED
# IMMEDIATELY. IF NOT CSM/LM, PROGRAM EXITS WITH NO ACTION.
# HACK (STROKE TEST) GENERATES THE WAVEFORM BY DUMPING PULSE BURSTS
# OF PROPER SIGN AND IN PROPER SEQUENCE DIRECTLY INTO
# TVCPITCH, WORKING IN CONJUNCITON WITH BOTH PITCH AND YAW
# TVC DAPS, WITH INTERMEDIAT WAITLIST CALLS. NOTE, HOWEVER
# THAT THE STROKE TEST IS PERFORMED ONLY IN THE PITCH AXIS.
# AN EXAMPLE WAVEFORM IS GIVEN BELOW, TO DEMONSTRATE STROKE-
# TEST PARAMETER SELECTION.
# RESTARTS CAUSE TEST TO BE TERMINATED. ANOTHER V68 REQD IF TEST
# IS TO BE RE-RUN.
# PULSE BURST SIZE IS PAD-LOADED (ESTROKER) SO THAT AMPLITUDE OF
# WAVEFORM CAN BE CHANGED. THERE ARE TEN PULSE BURSTS IN
# THE HALF-AMPLITUDE OF THE FIRST FREQUENCY SET IN THE
# STANDARD WAVEFORM. AMPLITUDE IS 10(ESTROKER)(1/42.15),
# NOMINALLY 50/42.15 = 1.185 DEG
#
# CALLING SEQUENCE....
# EXTENDED VERB 68 SETS UP STRKTSTI JOB
# PITCH AND YAW TVCDAPS, FINDING STROKER NON-ZERO, DO A "TC HACK"
# AN INTERNALLY-GENERATED WAITLIST CALL ENTERS AT "HACKWLST"
#
# NORMAL EXIT MODES....
# TC BUNKER ("Q" IF ENTRY FROM DAP, "TCTSKOVR" IF FROM WAITLIST) LIST
#
# SUBROUTINES CALLED....
# WAITLIST
#
# ALARM OR ABORT EXIT MODES....
# NONE
#
# ERASABLE INITIALIZATION REQUIRED....
# ESTROKER (PAD-LOAD)
# STROKER, CADDY, REVS, CARD, N
#
# OUTPUT....
# STRKTSTI...INITIALIZATION FOR STROKE TEST
# HACK, HACKWLST...PULSE BURSTS INTO TVCPITCH VIA "ADS"
# RESETS STROKER = +0 WHEN TEST COMPLETED
#
# DEBRIS....
# N = CADDY = +0, CARD = -0, REVS = -1
# BUNKER
# Page 980
#
# EXAMPLE STROKE TEST WAVE FORM, DEMONSTRATING PARAMETER SELECTION
# NOTE....THIS IS NOT THE OFFICIAL WAVEFORM....
#
# ** **
# ** **
# ** ** EXAMPLE WAVEFORM (EACH * REPRESENTS
# * * * * (85.41 ARCSEC OF ACTUATOR CMD)
# * * * *
# * * * *
# * * * * ** ** ** ** **
# * * * * ** ** ** ** **
# * * * * ** ** ** ** **
# * * * * * * * * * * * * * * ** ** ** ** **
# * * * * * * * * * * * * * * ** ** ** ** **
# * * * * * * * * * * * * * * ** ** ** ** **
# ----------------------------------------------------------------------------------------------------
# * * * * * * * * * * * * * * ** ** ** ** **
# * * * * * * * * * * * * * * ** ** ** ** **
# * * * * * * * * * * * * * * ** ** ** ** **
# * * * * ** ** ** ** **
# * * * * ** ** ** ** **
# * * * * ** ** ** ** **
# * * * *
# * * * *
# * * * *
# ** **
# ** **
# ** **
#
# FOR THIS (UNOFFICIAL, EXAMPLE) WAVEFORM, THE REQUIRED PARAMETERS ARE AS FOLLOWS....
#
# FCARD = +3 (NUMBER OF SETS)
# ESTROKER = +3 (PULSE BURST SIZE, SC.AT 85.41 ARCSEC/BIT)
#
# SET1:
# FREVS = +3 (NUMBER REVERSALS MINUS 1)
# FCADDY = +4 (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
# SET2:
# FCARD1 = +9 (NUMBER REVERSALS MINUS 1)
# FCARD4 = +2 (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
# SET3:
# FCARD2 = +9 (NUMBER REVERSALS MINUS 1)
# FCARD5 = +1 (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
# SET4:
# FCARD3 = +0 (NUMBER OF REVERSALS MINUS 1)
# FCARD6 = +0 (NUMBER OF PULSE BURSTS IN 1/2 AMPLUTUDE)
# Page 981
# STROKE TEST INITIALIZATION PACKAGE (AS A JOB, FROM VERB 68)
BANK 17
SETLOC DAPS2
BANK
COUNT* $$/STRK
EBANK= CADDY
STRKTSTI TCR TSTINIT # STROKE TEST INITIALIZATION PKG (CALLED
# AS A JOB BY VERB68)
STRKCHK INHINT
CAE DAPDATR1 # CHECK FOR CSM/LM CONFIGURATION
MASK BIT14
EXTEND
BZF +3
CAE ESTROKER # BEGIN ON NEXT DAP PASS (PITCH OR YAW)
TS STROKER # (STROKING DONE IN PITCH ONLY, HOWEVER)
TCF ENDOFJOB
TSTINIT CS FCADDY # NORMAL ENTRY FROM STRKTSTI
TS CADDY
TS N # NOTE SGN CHNG FCADDY(+) TO CADDY(-)
CAF FREVS
TS REVS
CS FCARD # NOTE SGN CHNG FCARD(+) TO CARD(-)
TS CARD
TC Q # RETURN TO STRKTSTI+1 (OR CHKSTRK+2 OR +4)
# Page 982
# THE OFFICIAL STROKE TEST WAVEFORM (3 JAN, 1967) CONSISTS OF FOUR STROKE SETS, AS FOLLOWS....
#
# SET 1...10 BURSTS IN 1/2 AMP, 4 REVERSALS
# SET 2... 6 BURSTS IN 1/2 AMP, 6 REVERSALS
# SET 3... 5 BURSTS IN 1/2 AMP, 10 REVERSALS
# SET 4... 4 BURSTS IN 1/2 AMP, 14 REVERSALS
#
# THE PULSE BURST SIZE (ESTROKER) IS PAD-LOADED (5 BITS AS OF 3 JAN, 1967)
# THE REMAINING WAVEFORM-GENERATING PARAMETERS ARE AS FOLLOWS....
FCADDY DEC 10 # NO. PULSE BURSTS IN 1/2 AMP, SET1..(+10)
FREVS DEC 3 # NO. REVERSALS MINUS 1, SET1........( 3)
FCARD DEC 4 # NO. STROKE SETS....................(+ 4)
FCARD1 DEC 5 # NO. REVERSALS MINUS 1, SET2........( 5)
FCARD2 DEC 9 # 3........( 9)
FCARD3 DEC 13 # 4........( 13)
FCARD4 DEC 6 # NO. PULSE BURSTS IN 1/2 AMP, SET2..(+ 6)
FCARD5 DEC 5 # 3..(+ 5)
FCARD6 DEC 4 # 4..(+ 4)
20MS = BIT2
# STROKE TEST PACKAGE PROPER....
EBANK= BUNKER
HACK EXTEND # ENTRY (IN T5 RUPT) FROM TVCDAPS
QXCH BUNKER # SAVE Q FOR DAP RETURN
CAF 20MS # 2DAPSx2(PASSES/DAP)x2(CS/PASS)=8CS=TVCDT
TC WAITLIST
EBANK= BUNKER
2CADR HACKWLST
TCF +3
HACKWLST CAF TCTSKOVR # ENTRY FROM WAITLIST
TS BUNKER # BUNKER IS TC TASKOVER
CA STROKER # STROKE
ADS TVCPITCH
CAF BIT11 # RELEASE THE ERROR COUNTERS
EXTEND
WOR CHAN14
INCR CADDY # COUNT DOWN THE NO. BURSTS, THIS SLOPE
# Page 982
CS CADDY
EXTEND
BZMF +2
TC BUNKER # EXIT, WHILE ON A SLOPE
CCS REVS
TCF REVUP # POSITIVE REVS
TCF REVUP +4 # FINAL REVERSAL, THE SET
INCR CARD # NEGATIVE REVS SET LAST PASS, READY FOR
CS CARD # THE NEXT SET. CHECK IF NO MORE SETS
EXTEND
BZF STROKILL # ALL SETS COMPLETED
INDEX CARD
CAF FCARD +4 # PICK UP NO. REVERSALS (-), NEXT SET
TS REVS # REINITIALIZE
INDEX CARD
CS FCARD +7 # PICK UP NO. BURSTS IN 1/2AMP, NEXT SET
TS N # REINITIALIZE
TS CADDY
TC BUNKER # EXIT, AT END OF SET
STROKILL TS STROKER # RESET (TO +0) TO END TEST
TC BUNKER # EXIT, STROKE TEST FINIS
REVUP TS REVS # ALL REVERSALS EXCEPT LAST OF SET
CA N
DOUBLE # 2 x 1/2AMP
TCF +4
+4 CS ONE # FINAL REVERSAL, THIS SET
TS REVS # PREPARE TO BRANCH TO NEW BURST
CA N # JUST RETURN TO ZERO, FINAL SLOPE OF SET
TS CADDY # CADUP
CS STROKER # CHANGE SIGN OF SLOPE
TS STROKER
TC BUNKER # EXIT AT A REVERSAL (SLOPE CHANGE)