Commit | Line | Data |
---|---|---|
81e70d48 PH |
1 | / A-D CLOCKED, BUFFERED SAMPLING ROUTINE\r |
2 | ADSK=6534\r | |
3 | ADRB=6533\r | |
4 | ADST=6532\r | |
5 | ADLM=6531\r | |
6 | ADLE=6536\r | |
7 | ADCL=6530\r | |
8 | CLZE=6130\r | |
9 | ESF=4\r | |
10 | LINC=6141\r | |
11 | PDP=2\r | |
12 | SAM=100\r | |
13 | CLEN=6134\r | |
14 | FIELD1 SAMPLE\r | |
15 | 0 /INTERRUPT TIME AD SAMPLER\r | |
16 | IFNSW 8 <\r | |
17 | JMS LNCSAM /INITIATE SAMPLE\r | |
18 | NEXTCH, ISZ SAMINS /UPDATE SAM INST FOR NEXT CHAN\r | |
19 | JMS LNCSAM /SAM AND INITIATE NEXT CHANNEL\r | |
20 | >\r | |
21 | TAD SAMPTR /SAVE THE OLD SAM BUFFER POINTER\r | |
22 | DCA OLDPTR\r | |
23 | TAD BUFFLD /AND THE FIELD\r | |
24 | DCA OLDFLD\r | |
25 | ISZ SAMPTR /BUMP BUFFER POINTER\r | |
26 | JMP FLDOK /FIELD IS OK\r | |
27 | TAD BUFFLD /BUMP FIELD\r | |
28 | TAD L10\r | |
29 | DCA BUFFLD\r | |
30 | FLDOK, ISZ SAMCNT /BUMP BUFFER COUNT\r | |
31 | JMP BUFFLD /NOT END OF BUFFER\r | |
32 | TAD ARRAY+2 /RESET POINTER TO START OF BUFFER\r | |
33 | DCA SAMPTR\r | |
34 | TAD FLDBUF /RESET BUFFER FIELD\r | |
35 | DCA BUFFLD\r | |
36 | TAD BUFSIZ /RESET COUNT\r | |
37 | DCA SAMCNT\r | |
38 | BUFFLD, HLT /GET FIELD OF NEW ADB STOP CODE\r | |
39 | TAD% SAMPTR /IS THIS THE SAM STOP CODE ?\r | |
40 | TAD M3776 /(ILLEGAL AS A SAMPLE)\r | |
41 | SZA CLA\r | |
42 | JMP NOERR\r | |
43 | ISZ TOOFAS /SET TOO FAST SWITCH\r | |
44 | SAMPLD, CDF 10\r | |
45 | DCA% XCLINT+1 /STOP SAMPLING\r | |
46 | JMP% SAMPLE\r | |
47 | NOERR, CLL CMA RAR /SET ADB STOP CODE\r | |
48 | DCA% SAMPTR\r | |
49 | OLDFLD, HLT /GET TO FIELD OF SAMPLE\r | |
50 | IFSW 8 <\r | |
51 | ADRB /READ SAMPLE\r | |
52 | >\r | |
53 | IFNSW 8 <\r | |
54 | TAD SAMTMP /GET PREVIOUSLY READ SAMPLE\r | |
55 | >\r | |
56 | DCA% OLDPTR /INTO BUFFER\r | |
57 | ISZ NPOINT+2 /ANY MORE SAMPLES\r | |
58 | SKP /YES\r | |
59 | ISZ NPOINT+1 /MORE THAN 7777 ?\r | |
60 | SKP /YES\r | |
61 | JMP SAMPLD /NO\r | |
62 | ISZ NCHANL+1 /ANY MORE CHANNELS TO SAMPLE ?\r | |
63 | JMP NEXTCH /YES GO START SAMPLING\r | |
64 | TAD CSTART+2 /STARTING CHANNEL\r | |
65 | IFSW 8 <\r | |
66 | ADLM\r | |
67 | >\r | |
68 | IFNSW 8 <\r | |
69 | DCA SAMINS\r | |
70 | JMS LNCSAM /SET CHANNEL TO START\r | |
71 | /IN CASE CLOCK INITIATED\r | |
72 | >\r | |
73 | TAD NCHANL+2 /NUMBER OF CHANNELS\r | |
74 | DCA NCHANL+1 /INTO COUNTER\r | |
75 | CDF 10\r | |
76 | JMP% SAMPLE\r | |
77 | IFSW 8 <\r | |
78 | NEXTCH, ADST /SAMPLE NEXT CHANNEL\r | |
79 | ADSK /WAIT FOR SAMPLE\r | |
80 | JMP .-1\r | |
81 | JMP SAMPLE+1\r | |
82 | >\r | |
83 | IFNSW 8 <\r | |
84 | LNCSAM, 0 /LINC SAM SUBROUTINE\r | |
85 | LINC\r | |
86 | SAMINS, SAM 0 /SAMPLE AND SELECT NEXT CHANNEL\r | |
87 | PDP\r | |
88 | DCA SAMTMP /SAVE IT\r | |
89 | JMP% LNCSAM\r | |
90 | >\r | |
91 | ADSETU, 0 /SET UP ROUTINE\r | |
92 | DCA TOOFAS /CLEAR TOO FAST SWITCH\r | |
93 | TAD ARRAY+1 /GET FIELD OF BUFFER\r | |
94 | AND L7\r | |
95 | CLL RTL\r | |
96 | RAL\r | |
97 | TAD CDF0\r | |
98 | DCA FLDBUF\r | |
99 | TAD FLDBUF\r | |
100 | DCA BUFFLD /SAVE IN SAMPLER CODE\r | |
101 | TAD ARRAY+2 /SET SAMPLER BUFFER POINTER\r | |
102 | IAC\r | |
103 | DCA SAMPTR\r | |
104 | TAD LENGTH+2 /SIZE OF BUFFER\r | |
105 | CLL RAL\r | |
106 | TAD LENGTH+2 /TIMES THREE\r | |
107 | DCA BUFSIZ /SAVE IT\r | |
108 | TAD BUFSIZ /SET INITIAL COUNT\r | |
109 | IAC\r | |
110 | DCA SAMCNT\r | |
111 | TAD NCHANL+2 /SET CHANNEL COUNT\r | |
112 | DCA NCHANL+1\r | |
113 | IFSW 8 <\r | |
114 | CLA CMA /STOP THE CLOCK\r | |
115 | CLZE\r | |
116 | CLA\r | |
117 | ADCL /CLEAR AD LOGIC JUST IN CASE\r | |
118 | TAD L300 /SET AD ENABLE BITS\r | |
119 | ADLE\r | |
120 | TAD CSTART+2 /STARTING CHANNEL NUMBER\r | |
121 | ADLM\r | |
122 | >\r | |
123 | IFNSW 8 <\r | |
124 | CLEN /STOP THE CLOCK\r | |
125 | TAD CSTART+2 /SET UP INITIAL SAM INSTRUCTION\r | |
126 | TAD L100\r | |
127 | DCA CSTART+2\r | |
128 | TAD CSTART+2\r | |
129 | DCA SAMST /STARTING SAM\r | |
130 | TAD SAMST /ALSO INTERRUPT TIME SAM\r | |
131 | DCA SAMINS\r | |
132 | TAD L100 /SET FAST SAM BIT\r | |
133 | IOF /TURN OFF INTERRUPTS IN LINC MODE\r | |
134 | LINC /ENTER LINC MODE\r | |
135 | ESF\r | |
136 | SAMST, SAM 0 /SET INITIAL SAM CHANNEL\r | |
137 | PDP\r | |
138 | ION\r | |
139 | CLA\r | |
140 | >\r | |
141 | CIF CDF\r | |
142 | JMP% ADSETU\r | |
143 | BASEX, FNOP\r | |
144 | M3776, -3776\r | |
145 | L10, 10\r | |
146 | SAMPTR,\r | |
147 | ARRAY, 0;0;0\r | |
148 | LENGTH, 0;0\r | |
149 | BUFSIZ, 0\r | |
150 | SAMCNT,\r | |
151 | CSTART, 0\r | |
152 | OLDPTR, 0;0\r | |
153 | SAMTMP,\r | |
154 | NCHANL, 0;0;0\r | |
155 | NPOINT, 0;0;0\r | |
156 | FLDBUF,\r | |
157 | XCLINT, ADDR #CLINT\r | |
158 | IFSW 8 <\r | |
159 | L300, 300\r | |
160 | >\r | |
161 | IFNSW 8 <\r | |
162 | L100, 100\r | |
163 | >\r | |
164 | SAMXR, 0;0\r | |
165 | TOOFAS, 0\r | |
166 | ORG 10*3+BASEX\r | |
167 | 0\r | |
168 | JA NAME+3\r | |
169 | 0\r | |
170 | SAMRTN, JA .\r | |
171 | CDF0, CDF\r | |
172 | L7, 7\r | |
173 | \f SECT REALTM\r | |
174 | BASE 0\r | |
175 | STARTD\r | |
176 | FLDA 30 /GET RETURN ADDR\r | |
177 | FSTA SAMRTN\r | |
178 | FLDA 0 /GET ARG POINTER\r | |
179 | BASE BASEX\r | |
180 | SETB BASEX\r | |
181 | SETX SAMXR\r | |
182 | FSTA NPOINT /SAVE ARG POINTER\r | |
183 | FCLA\r | |
184 | EXTERN #CLINT\r | |
185 | FSTA #CLINT /STOP ANY SAMPLING NOW!\r | |
186 | LDX 1,1\r | |
187 | FLDA% NPOINT,1 /GET BUFFER ADDRESS\r | |
188 | FSTA ARRAY\r | |
189 | FLDA% NPOINT,1+ /GET ADDR OF LENGTH\r | |
190 | FSTA LENGTH\r | |
191 | FLDA% NPOINT,1+ /ADDR OFHANNEL START\r | |
192 | FSTA CSTART\r | |
193 | FLDA% NPOINT,1+ /ADDR OF # CHANNELS\r | |
194 | FSTA NCHANL\r | |
195 | FLDA% NPOINT,1+ /ADDR OF NUMBER OF POINTS\r | |
196 | FSTA NPOINT\r | |
197 | FLDA ARRAY /CREATE SETX INS\r | |
198 | FADD STXMJA\r | |
199 | FSTA BUFSTX\r | |
200 | FSTA ADBSTX /AND SAVE IT IN TWO PLACES\r | |
201 | STARTF\r | |
202 | FLDA% LENGTH /INTEGERIZE AND NEGATE SOME ARGS\r | |
203 | FNEG\r | |
204 | ALN 0\r | |
205 | FSTA LENGTH\r | |
206 | FNORM\r | |
207 | ATX 1 /SET BUFFER COUNT\r | |
208 | FLDA% CSTART /GET STARTING CHANNEL\r | |
209 | ALN 0\r | |
210 | FSTA CSTART\r | |
211 | FLDA% NCHANL\r | |
212 | FNEG\r | |
213 | ALN 0\r | |
214 | FSTA NCHANL\r | |
215 | FLDA% NPOINT\r | |
216 | FNEG\r | |
217 | ALN 0\r | |
218 | FSTA NPOINT\r | |
219 | LDX -1,2 /SET UP FOR BUFFER CLEAR\r | |
220 | FCLA\r | |
221 | CLRBUF, FSTA% ARRAY,2+\r | |
222 | JXN CLRBUF,1+\r | |
223 | TRAP4 ADSETU /SET UP AD STUFF\r | |
224 | FLDA LENGTH /RE-GET BUFFER SIZE\r | |
225 | FNORM\r | |
226 | ATX 1 /BUT NOW ITS TIMES THREE\r | |
227 | FLDA STPCOD /STORE STOP CODES\r | |
228 | FSTA% ARRAY /INTO FIRST 3 WORD\r | |
229 | STARTD\r | |
230 | FLDA SAMADR /SET UP SAMPLER INTERRUPT HANDLER\r | |
231 | FSTA #CLINT\r | |
232 | STARTF\r | |
233 | JA SAMRTN /RETURN\r | |
234 | NAME, TEXT +RTMADB+\r | |
235 | SAMADR, ADDR SAMPLE\r | |
236 | STPCOD, 3776;3777;0\r | |
237 | STXMJA, 1100-1030;0\r | |
238 | L2047, F 2047.\r | |
239 | L511, F 511.\r | |
240 | \f ENTRY ADB\r | |
241 | ADB, BASE 0 /FETCH SAMPLE FROM BUFFER\r | |
242 | STARTD\r | |
243 | FLDA 30 /SAVE REUTRN\r | |
244 | FSTA SAMRTN\r | |
245 | SETB BASEX\r | |
246 | SETX SAMXR\r | |
247 | BASE BASEX\r | |
248 | JXN SPEEDK,2 /CLOCK TOO FAST\r | |
249 | FLDA ADBSTX /SAVE OLD SETX\r | |
250 | FSTA OLDSTX\r | |
251 | FADD L1 /ADD ONE TO IT\r | |
252 | FSTA ADBSTX /AND SAVE IT BACK\r | |
253 | JXN NORINQ,1+ /END OF BUFFER ?\r | |
254 | FLDA BUFSTX /YES, RESTART\r | |
255 | FSTA ADBSTX\r | |
256 | FLDA LENGTH /RESET COUNT\r | |
257 | ATX 1\r | |
258 | NORINQ, STARTF\r | |
259 | ADBSTX, SETX 0 /SET XR0 TO NEXT SAMPLE\r | |
260 | WAIT, XTA 0 /GET THE NEXT SAMPLE\r | |
261 | FSUB L2047 /IS IT THE STOP CODE\r | |
262 | JEQ WAIT /YES\r | |
263 | XTA 0 /NO, FETCH THE SAMPLE\r | |
264 | LDX 3776,0 /SET SAMPLE STOP CODE\r | |
265 | OLDSTX, SETX 0 /SET XR0 TO PREVIOUS STOP CODE\r | |
266 | LDX 0,0 /NOW ZERO IT\r | |
267 | JA SAMRTN /RETURN\r | |
268 | SPEEDK, EXTERN #WRITO /USE FORTRAN I/O\r | |
269 | TRAP3 #WRITO /TO WRITE A MESSAGE\r | |
270 | JA TTYUNT /ON THE TTY\r | |
271 | JA MESSAG\r | |
272 | EXTERN #RENDO\r | |
273 | TRAP3 #RENDO /CLOSE THE RECORD\r | |
274 | LDX 0,2 /KILL TOO FAST SWITCH\r | |
275 | JA SAMRTN /RETURN FROM ADB\r | |
276 | TTYUNT, F 0.\r | |
277 | MESSAG, TEXT '(" SAMPLING TOO FAST")'\r | |
278 | BUFSTX, SETX 0\r | |
279 | L1, 0;1\r | |
280 | END\r | |
281 | \f\1a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 |