Commit | Line | Data |
---|---|---|
81e70d48 PH |
1 | / \ eCLOCK.RA - DK8-EP HANDLER\r |
2 | /\r | |
3 | / TO ASSEMBLE DK8-EP HANDLER FOR FIRST CLOCK: NO SWITCHES\r | |
4 | / TO ASSEMBLE DK8-EP HANDLER FOR 2 ND CLOCK: /1 SWITCH\r | |
5 | / TO ENABLE TIME ROUTINE TO APPROPIATE CLOCK : /2 SWITCH \r | |
6 | / TO ENABLE CLOCK STATUS TO GENERAL RTS ROUTINES: /3 SWITCH\r | |
7 | / SO NORMALLY FOR FIRST CLOCK USE /3 SWITCH!\r | |
8 | / TO ENABLE CLOCK TO SCHMITT TRIGGER EVENT USE /4 SWITCH\r | |
9 | / DO NOT COMBINE /2 AND /4 SWITCHES!\r | |
10 | / THIS GENERATES CLOCK4:\r | |
11 | / NO PRESET TO DK8-EP\r | |
12 | / MODE BITS: 11\r | |
13 | / SELECT RATE: N/4096\r | |
14 | / APPLICABLE FOR BOTH DK8-EP CLOCKS. BUT ONLY FOR ONE PER PROGRAM!\r | |
15 | /\r | |
16 | /\r | |
17 | / 1.0 18-MAR-85 H.A. (COPY OF CLOCK.RA )\r | |
18 | / 1.1 26-JUN-85 H.A.\r | |
19 | /\r | |
20 | EXTERN #DISP /SYSTEM PAGE 0,NEEDED TO\r | |
21 | /PUT CLOCK STATUS ON PG0\r | |
22 | /(CSTAT) FOR USE BY GEN\r | |
23 | /USER CLOCK SERVICE ROUTS\r | |
24 | EXTERN #T812 /RTS CPTYP\r | |
25 | EXTERN ONQI /INTERRUPT QUEUER\r | |
26 | /\r | |
27 | IFNSW 1 <\r | |
28 | ENTRY #CLINT /USER EXTENDED CLOCK ROUTINE\r | |
29 | DEVICE=13*10\r | |
30 | >\r | |
31 | IFSW 3 <\r | |
32 | CSTAT=157 /IDOCLK PUTS CLSA BITS OF FIRST CLOCK\r | |
33 | /IN HERE FOR SOMEBODY ELSE\r | |
34 | >\r | |
35 | IFSW 2 <\r | |
36 | ENTRY TIME / ENABLE TIME ROUTINE TO RTS\r | |
37 | >\r | |
38 | IFSW 1 <\r | |
39 | ENTRY #CLIN1 /USER EXTENDED CLOCK ROUTINE\r | |
40 | DEVICE=17*10\r | |
41 | >\r | |
42 | CLZE=6000!DEVICE /CLOCK IOTS\r | |
43 | CLSK=6001!DEVICE\r | |
44 | CLLR=6002!DEVICE /ALSO CLOE\r | |
45 | CLAB=6003!DEVICE\r | |
46 | CLEN=6004!DEVICE\r | |
47 | CLSA=6005!DEVICE\r | |
48 | \f BASE FTMP0\r | |
49 | INDEX FCNWD\r | |
50 | IFNSW 2 <\r | |
51 | IFSW 1 <\r | |
52 | FIELD1 #SYNC >\r | |
53 | IFSW 4 <\r | |
54 | FIELD1 SYNC4 >\r | |
55 | >\r | |
56 | IFSW 2 <\r | |
57 | FIELD1 SYNC >\r | |
58 | BASE FTMP0\r | |
59 | INDEX FCNWD\r | |
60 | JSA SETUP /HERE TO READ A STRIG\r | |
61 | /INITIALIZE ARGS\r | |
62 | TRAP4 DOSYNC /FCNWD (XR) HOLDS STRIG\r | |
63 | /TO READ\r | |
64 | XTA FCNWD /=ANS=0,1\r | |
65 | FSTA% FTMP1 /GIVE ANS TO CALLER\r | |
66 | JA GOBAK\r | |
67 | FTMP0, F 0.0 /BASE PAGE\r | |
68 | FTMP1, F 0.0\r | |
69 | RPTR, 27;ADDR RTBL /PTR TO RATE TBL, ALSO\r | |
70 | /USED TO FLT OVRCNT (NOTE\r | |
71 | /THAT THE EXPONENT=27)\r | |
72 | MINRAT, F .02 /MIN ALLOWABLE RATE\r | |
73 | TOVR, F 0.0\r | |
74 | IFNSW 4 <\r | |
75 | IFNSW 1 <\r | |
76 | NAME, TEXT +CLOCK + >\r | |
77 | IFSW 1 <\r | |
78 | NAME, TEXT +CLOCK1+ >\r | |
79 | >\r | |
80 | IFSW 4 <\r | |
81 | IFNSW 1 <\r | |
82 | NAME, TEXT +CLOCK4+ >\r | |
83 | IFSW 1 <\r | |
84 | NAME, TEXT +CLOC14+ >\r | |
85 | >\r | |
86 | ORG 10*3+FTMP0\r | |
87 | FNOP\r | |
88 | JA NAME+3\r | |
89 | 0\r | |
90 | GOBAK, JA .\r | |
91 | RTBL, F 16.0 /CONSTANT USED TO CHK FOR\r | |
92 | /EXT CLK BIT IN FCNWD\r | |
93 | /THIS CONST MUST BE NE 0\r | |
94 | MAXRAT,\r | |
95 | F4096, F 4096.0 /USED TO GET OVRFLO COUNT\r | |
96 | F 100000.0 /FASTEST RATE IN HERTZ\r | |
97 | F 10000.0 /NEXT FASTEST RATE\r | |
98 | F 1000.0\r | |
99 | F 100.0 /SLOWEST RATE\r | |
100 | F 1.0 /USED BY TIME FOR EXT CLK\r | |
101 | \f BASE 0\r | |
102 | \r | |
103 | SETUP, 0;0 /HERE TO INIT ALL FPP SUBS\r | |
104 | STARTD\r | |
105 | FLDA 30 /PICK UP RTN TO CALLER\r | |
106 | FSTA GOBAK\r | |
107 | FLDA 0 /GET PTR TO CALLERS ARGS\r | |
108 | SETX FCNWD /CLOCK XR AND BASE\r | |
109 | SETB FTMP0\r | |
110 | BASE FTMP0\r | |
111 | FSTA FTMP1\r | |
112 | FLDA% FTMP1,P1\r | |
113 | FSTA FTMP0 /PTR TO 1ST ARG\r | |
114 | FLDA% FTMP1,P2\r | |
115 | FSTA FTMP1 /PTR TO 2ND ARG\r | |
116 | FLDA #T812 /TELLS PDP8,PDP12\r | |
117 | ATX CPTYP /0=8=DK8ES,1=12=KW12A\r | |
118 | STARTF\r | |
119 | FLDA% FTMP0 /=1ST ARG\r | |
120 | ATX FCNWD /ALWAYS IN FCNWD\r | |
121 | JA SETUP\r | |
122 | \f IFNSW 4 <\r | |
123 | IFNSW 2 <\r | |
124 | IFNSW 1 <\r | |
125 | ENTRY CLOCK\r | |
126 | CLOCK, > >\r | |
127 | IFSW 1 <\r | |
128 | ENTRY CLOCK1\r | |
129 | CLOCK1, >\r | |
130 | >\r | |
131 | IFSW 2 <\r | |
132 | ENTRY CLOCK\r | |
133 | CLOCK, >\r | |
134 | IFSW 4 <\r | |
135 | IFNSW 1 <\r | |
136 | ENTRY CLOCK4\r | |
137 | CLOCK4, >\r | |
138 | IFSW 1 <\r | |
139 | ENTRY CLOC14\r | |
140 | CLOC14, >\r | |
141 | >\r | |
142 | JSA SETUP /HERE FOR CLOCK START\r | |
143 | FLDA% FTMP0\r | |
144 | FSUB RTBL /FCNWD IS IN FAC,IF GE 16\r | |
145 | JGE ITSEXT /(RTBL=16.0) THEN USER IS\r | |
146 | /REQUESTING AN EXTERNAL\r | |
147 | /CLOCK I.E. B8 OF FCNWD\r | |
148 | /IS SET.\r | |
149 | FLDA% FTMP1 /=REQUESTED RATE IN HERTZ\r | |
150 | FSUB MINRAT /.LE. MINUMUM RATE\r | |
151 | JLE GOTR-2 /MEANS STOP CLOCK.\r | |
152 | FADD MINRAT\r | |
153 | FSUB MAXRAT /CHK FOR TOO FAST\r | |
154 | JGT GOTR-2\r | |
155 | LDX -4,OVRFLO /THERE ARE 4 BASIC RATES\r | |
156 | LDX 1,RATE /=INDEX INTO RTBL; UPON\r | |
157 | /TRAP(CLOCK) RATE=(0,\r | |
158 | /2,3,4,5,6) 0=STOP,\r | |
159 | /6=EXTERNAL\r | |
160 | /2-5=PROGRAMMABLE RATES\r | |
161 | LOP0, FLDA% RPTR,RATE+\r | |
162 | /GET NEXT SLOWEST RATE\r | |
163 | FDIV% FTMP1 /=REQUESTED RATE IN HZ.\r | |
164 | /FAC=OVRFLO COUNT;\r | |
165 | FSUB F4096 /MUST BE MODULO 12 BITS.\r | |
166 | JLE GOTR /FOUND IT\r | |
167 | JXN LOP0,OVRFLO+\r | |
168 | LDX 0,RATE /RATE IS TOO SLOW, STOP\r | |
169 | /CLOCK.\r | |
170 | GOTR, FADD F4096 /RESTORE\r | |
171 | FSTA TOVR\r | |
172 | ATX OVRFLO /OVER FLOW COUNT\r | |
173 | TRAP4 SETCLK /GO START CLOCK\r | |
174 | JA GOBAK /RTN TO CALLER\r | |
175 | ITSEXT, LDX 6,RATE /=RATE FOR EXT CLK\r | |
176 | FLDA% FTMP1 /REQUESTED RATE IS\r | |
177 | /INTERPRETED AS OVRFLO\r | |
178 | JA GOTR+1 /WHEN RATE IS EXTERNAL\r | |
179 | \f/MAGIC TABLE USED BY SETCLK TO SET CLOCK ENABLE\r | |
180 | /BITS. EVEN NUMBERED ENTRIES ARE FOR THE DK8ES;\r | |
181 | /ODD NUMBERED ONES ARE FOR THE KW12A.\r | |
182 | \r | |
183 | CLKTBL,\r | |
184 | IFNSW 4 <\r | |
185 | 0675 > /"STANDARD" DK BITS\r | |
186 | IFSW 4 <\r | |
187 | 0670 > / MODE BITS 10\r | |
188 | 300 /STND KW BITS\r | |
189 | 1 /DK STRIG1 BIT\r | |
190 | 60 /KW STRIG1 BITS\r | |
191 | 2 /DK S2\r | |
192 | 14 /KW S2\r | |
193 | 4 /S3\r | |
194 | P3, 3 /S3\r | |
195 | 40 /DK ADC ON OVR BIT\r | |
196 | 400 /KW ADC ON OVR BIT\r | |
197 | \r | |
198 | /IF NOT NEXT PAGE DO ORG\r | |
199 | IFNEG .-200 < ORG .-SYNC&7600+200+SYNC >\r | |
200 | \fSETCLK, 0 /TRAP HERE TO START CLK\r | |
201 | /THIS ROUT HANDLES BOTH\r | |
202 | /DK8ES AND KW12A.\r | |
203 | CLLR /STOP KW AND SET MODE 0;\r | |
204 | /NOP FOR DK.\r | |
205 | CLEN /CLR KW12 ENABLE OR\r | |
206 | /READ DK ENABLE.\r | |
207 | CLA\r | |
208 | TAD P7540 /TOGGLE KW MODE 0 TO 1 TO\r | |
209 | CLLR /CLR CLK COUNTER, OR SET\r | |
210 | /DK ENABLE BITS, RATE FOR\r | |
211 | CLA CMA /BOTH NOW=7=STOP.\r | |
212 | CLZE /CLR ALL DK ENABLE BITS,\r | |
213 | CLSA /CLR STATUS OF BOTH, ALL \r | |
214 | CLA /IS NOW CLEAR.\r | |
215 | TAD FCNTBL+1 /SET PTR TO CLKTBL FOR\r | |
216 | /SETTING OF ENABLE REGS.\r | |
217 | TAD CPTYP /=0 IF PDP8 =1 IF PDP12\r | |
218 | DCA FCNPTR /TBL ENTRIES ALTERNATE\r | |
219 | /FOR 8 AND 12. CPTYP SETS\r | |
220 | /PTR TO 1ST 8 OR 1ST 12\r | |
221 | /ENTRY\r | |
222 | TAD IDOCLK /(AC=JMP AROUND). THE\r | |
223 | /FOLLOWING IS ONCE ONLY\r | |
224 | /CODE. THESE LOCS ARE\r | |
225 | /SUBSEQUENTLY USED AS\r | |
226 | /OPERANDS\r | |
227 | DCA .-1\r | |
228 | /THE TAG "ISVBIT" MUST BE\r | |
229 | /IN FRONT OF THE STRIG\r | |
230 | /FLAGS (STFLG) TO COVER\r | |
231 | /THE ILLEGAL CASE OF\r | |
232 | /STRIG 0 IN A FORT CALL\r | |
233 | /TO SYNC.\r | |
234 | ISVBIT, TAD CPTYP /(AC=0,1) MAKE THE INST\r | |
235 | /RAR CLL (FOR DK) OR THE\r | |
236 | /INST RTR CLL FOR IDOCLK;\r | |
237 | STFLG, RAL CLL /BECAUSE STATUS BITS FOR\r | |
238 | TAD RARCLL /STRIGS DIFFER ON DK,KW.\r | |
239 | DCA LOP2+1 /SEE SUB IDOCLK.\r | |
240 | /THE ABOVE 3 LOCS ARE\r | |
241 | /SCHMITT TRIGGER FLAGS.\r | |
242 | /THE ORDER IS S1,S2,S3\r | |
243 | /FOR PDP8 AND S3,S2,S1\r | |
244 | /FOR PDP12. THE MAIN\r | |
245 | /REASON FOR REVERSING\r | |
246 | /THE ORDER IS BECAUSE\r | |
247 | /ENGINEERS NEVER CONSULT\r | |
248 | /PROGRAMMERS WHEN THEY\r | |
249 | /ARE BUILDING NEW \r | |
250 | /HARDWARE (CHK THE STATUS\r | |
251 | /BITS FOR DK AND KW).\r | |
252 | JMS% KONQI+1 /PUT CLOCK ON THE\r | |
253 | ITMP0, CLSK /INTERRUPT QUE\r | |
254 | /VIA ONQI.\r | |
255 | CLENAB, ADDR IDOCLK /THIS LOC WILL HOLD THE\r | |
256 | /ENABLE BITS FOR DK,KW\r | |
257 | AROUND, TAD RATE /(AC=0,2,3,4,5,6) RATE IS\r | |
258 | /SET BY FPP\r | |
259 | RTR CLL /START TO POSITION RATE\r | |
260 | RAR /BITS. B3-B5 FOR DK\r | |
261 | /B0-B2 FOR KW\r | |
262 | TAD CPTYP /(THIS IS TRICKY) NEED\r | |
263 | RAR /CPTYP IN LNK BECAUSE\r | |
264 | /POSITION OF RATE BITS\r | |
265 | /DIFFER FOR DK KW.\r | |
266 | TAD% FCNPTR /AC="STANDARD"\r | |
267 | /ENABLE BITS FOR DK,KW.\r | |
268 | SZL /IF ITS A KW THE RATE AND\r | |
269 | /AND STND BITS ARE ALREADY\r | |
270 | /POSITIONED AS FOLLOWS:\r | |
271 | /RRR011000000\r | |
272 | /B0-B3 AND B5 WILL GO TO\r | |
273 | /KW CONTROL. B4,B5 WILL\r | |
274 | /GO TO ENABLE. B3 IS ADC\r | |
275 | /ON OVRFLO AND MAY BE SET\r | |
276 | /BELOW. B5 ON CONTROL IS\r | |
277 | /MODE 1. B4 AND B5 ON\r | |
278 | /ENABLE ARE BUFF PRESET TO\r | |
279 | /CLOCK COUNTER AND INTRUPT\r | |
280 | /ON OVRFLO RESPECTIVELY.\r | |
281 | JMP NOBIT-1 /ITS KW GO PUT IN CLENAB.\r | |
282 | RAR STL /ITS DK; POSITION RATE TO\r | |
283 | RTR /B3-B5. NOTE THAT THE LNK\r | |
284 | /(CPTYP=0) IS BEING USED.\r | |
285 | CMA /NOTE ALSO THAT THE RATE\r | |
286 | /AND STND BITS ARE THE 1S\r | |
287 | /COMP. OF WHAT THEY SHOULD\r | |
288 | /BE, IE CPTYP=LNK=0\r | |
289 | /BECOMES\r | |
290 | /B2=1 OF ENABLE=BUFF\r | |
291 | /PRESET TO CLK CNTR ON\r | |
292 | /OVERFLO. LOOK AT THE RATE\r | |
293 | /BITS IN THE HANDBOOK FOR\r | |
294 | /BOTH DK,KW. R2,R5\r | |
295 | /FOR DK IS 100HZ, 100KHZ\r | |
296 | /RESPECTIVELY. R2,R5 FOR\r | |
297 | /KW IS 100KHZ,100HZ.\r | |
298 | /1S COMP.OF 2=5 ETC.\r | |
299 | /SMARTEN UP STEVE!\r | |
300 | /THE FINAL VALUE OF THE\r | |
301 | /STND DK ENABLE BITS (1ST\r | |
302 | /ENTRY IN CLKTBL) IS LEFT\r | |
303 | /AS AN EXERCISE FOR THE\r | |
304 | /PROGRAMMER.\r | |
305 | JMP NOBIT-1 /GO PUT IN CLENAB\r | |
306 | LOP1, RAR CLL /ROT 1 FCN BIT INTO LNK.\r | |
307 | /B7=EXT CLK AND IS\r | |
308 | /IGNORED HERE. B8=ADC ON\r | |
309 | /OVRFLO, B9-B11 ARE STRIG3\r | |
310 | /-STRIG1 RESP. BX=1=ENABLE\r | |
311 | /FCN. 0=DISABLE\r | |
312 | DCA FCNWD /PUT IT BACK (FCNWD IS\r | |
313 | /SET BY FPP)\r | |
314 | SNL /ENABLE FCN ?\r | |
315 | JMP NOBIT /NO\r | |
316 | TAD% FCNPTR /GET BITS FROM THE MAGIC\r | |
317 | TAD CLENAB /TABLE.\r | |
318 | DCA CLENAB /UPDATE ENABLE WORD.\r | |
319 | NOBIT, ISZ FCNPTR /ADV TO NEXT\r | |
320 | ISZ FCNPTR /TBL ENTRY.\r | |
321 | TAD FCNWD /WHEN FCNWD GOES TO 0\r | |
322 | AND P17 /WE ARE ALL DONE.\r | |
323 | /THE "AND" IS DONE TO\r | |
324 | /PROTECT AGAINST A BAD\r | |
325 | /ARG FROM THE FORT CALL.\r | |
326 | /IN A FRIENDLY ENIVORN,\r | |
327 | /ITS NOT NECESSARY.\r | |
328 | /NEVER TRUST A FORTRAN\r | |
329 | /"PROGRAMMER".\r | |
330 | P7540, SMA SZA /SMA IS SUPERFLOUS TO\r | |
331 | /THE ROUT; BUT IT\r | |
332 | /CREATES A NICE CONST.\r | |
333 | JMP LOP1 /MORE TO DO\r | |
334 | DCA STFLG /CLR THE SCHMITT\r | |
335 | DCA STFLG+1 /TRIGGER FLAGS.\r | |
336 | DCA STFLG+2\r | |
337 | TAD OVRFLO /SET BUFF PRESET\r | |
338 | CIA /(FPP SET THIS ARG)\r | |
339 | IFNSW 4 <\r | |
340 | CLAB > / SET PRESET COUNTER\r | |
341 | CLA\r | |
342 | IFSW 4 < / ZERO PRESET COUNTER\r | |
343 | CLAB >\r | |
344 | TAD CLENAB /THIS IS FOR KW ONLY.\r | |
345 | AND P377 /AC=3XX. 3= OR BUFF PRE\r | |
346 | /INTO CLK CNTR AND ENAB\r | |
347 | /INT ON OVRFLO.\r | |
348 | /XX ARE THE STRIGS.\r | |
349 | CLEN /SET KW ENABLE OR\r | |
350 | CLA /READ DK ENABLE.\r | |
351 | DCA OVRCNT+1 /CLR NUM OF CLK OVRFLOS\r | |
352 | DCA OVRCNT /SINCE TIME 0.\r | |
353 | TAD CPTYP /NEED TYPE IN ORDER TO\r | |
354 | RARCLL, RAR CLL /ISOLATE CONTROL\r | |
355 | TAD CLENAB /BITS FOR\r | |
356 | SZL /KW ?\r | |
357 | AND P7540 /YES, B0-B2 IS RATE,\r | |
358 | /B3 IS ADC, B5 IS BUFF\r | |
359 | /PRE TO CLK CNTR ON\r | |
360 | /OVRFLO, B6 IS MOX NIX.\r | |
361 | /IF DK ALL BITS MAY HAVE\r | |
362 | /MEANING\r | |
363 | CLLR /START THE CLOCK\r | |
364 | CLA\r | |
365 | CIF CDF\r | |
366 | JMP% SETCLK /RTN TO RTS\r | |
367 | \fDOSYNC, 0 /HERE TO DISPOSITION A\r | |
368 | /A SCHMITT TRIGGER.\r | |
369 | TAD CPTYP /DK AND KW FLAGS ARE IN\r | |
370 | RAR CLL /REVERSE ORDER. IF DK\r | |
371 | /ARG IS OK; IF KW THEN\r | |
372 | /MUST SET 1=3, 2=2, 3=1\r | |
373 | /TO GET INDEX TO\r | |
374 | /CORRECT FLAG.\r | |
375 | TAD FCNWD /=REQUESTED STRIG=1,2,3\r | |
376 | /(SET BY FPP)\r | |
377 | SZL /DK ?\r | |
378 | CIA /NO KW\r | |
379 | AND P3 /IE 1 GOES TO -1 GOES\r | |
380 | /TO 3 ETC. "AND" ALSO\r | |
381 | /INSURES RANGE IS 0-3.\r | |
382 | /IF ARG IS 0 RESULT IS\r | |
383 | /ALWAYS 0.\r | |
384 | TAD KSTFLG+1 /GET PTR TO FLAG\r | |
385 | DCA SETCLK\r | |
386 | TAD% SETCLK /FLAG=0 IF TRIG HAS NOT\r | |
387 | /TRIPPED SINCE THE LAST\r | |
388 | /CALL TO SYNC; =1\r | |
389 | /OTHERWISE IE RTN 0=FALSE\r | |
390 | DCA FCNWD /,1=TRUE (FPP WILL PICK\r | |
391 | / UP FCNWD)\r | |
392 | DCA% SETCLK /CLR FLAG ANYWAY\r | |
393 | CIF CDF\r | |
394 | JMP% DOSYNC /RTN TO RTS\r | |
395 | \f/ INTERRUPT SERVICE ROUTINE\r | |
396 | /\r | |
397 | IDOCLK, JMP AROUND /HERE ON CLOCK INTERRUPT\r | |
398 | /(JMP AROUND IS A ONCE\r | |
399 | /ONLY CONSTANT).\r | |
400 | TAD KSTFLG+1 /SET PTR TO STRIG FLAGS.\r | |
401 | DCA ITMP0\r | |
402 | CLSA /GET CLOCK BITS.\r | |
403 | IFREF CSTAT <\r | |
404 | DCAZ CSTAT /SAVE THEM FOR SOME\r | |
405 | TADZ CSTAT /BODY ELSE.\r | |
406 | >\r | |
407 | IFNDEF CSTAT <\r | |
408 | JMP .+2 / WE DO NOT SAVE STATUS OF SECOND CLOCK\r | |
409 | NOP >\r | |
410 | SPA /OVER FLOW ?\r | |
411 | ISZ OVRCNT+1 /YES BUMP LO ORD CNTR\r | |
412 | SKP\r | |
413 | ISZ OVRCNT /BUMP HI ORD\r | |
414 | JMP DOTRIG /(HI ORD ISZ SKP IS\r | |
415 | /HARMLESS)\r | |
416 | LOP2, ISZ ITMP0 /ADV STRIG FLAG PTR.\r | |
417 | RAR CLL /(OR RTR CLL IF KW)\r | |
418 | /IE PUT STRIG BIT IN LNK.\r | |
419 | /IF DK THE ORDER OF\r | |
420 | /INTERROGATION IS S1,S2,S3\r | |
421 | /IF KW THE ORDER IS S3,\r | |
422 | /S2,S1. THE STATUS BITS\r | |
423 | /FOR DK ARE ADJACENT IE\r | |
424 | / B9(S3),B10(S2),B11(S1)\r | |
425 | /FOR KW ITS EVERY OTHER,\r | |
426 | /B6(S1),B8(S2),B10(S3).\r | |
427 | DCA ISVBIT /SAVE WHATS LEFT.\r | |
428 | / RAL /COPY LNK INTO FLAG IF=1\r | |
429 | / SZA /IE DONT CLR FLAG WHEN\r | |
430 | / DCA% ITMP0 /ITS SET.\r | |
431 | /\r | |
432 | SZL / HERE WE COUNT THE NUMBER OF EVENTS BETWEEN\r | |
433 | ISZ% ITMP0 / CALL TO SYNC ROUTINE (NO OVERFLOW PROTECTION!)\r | |
434 | ISZ% ITMP0 / HERE TO PROTECT ISZ\r | |
435 | /\r | |
436 | TAD ISVBIT\r | |
437 | DOTRIG, AND P377 /THE "AND" INSURES THAT\r | |
438 | /THE HI ORD BITS ARE\r | |
439 | /CLRED SO THAT ISVBIT\r | |
440 | /GOES TO 0 WHEN ALL\r | |
441 | /STRIGS HAVE BEEN\r | |
442 | /DISPOSITIONED. IE\r | |
443 | /CLR OVRFLO BIT FOR DK,KW\r | |
444 | /AND CLR PRE-EVENT BIT\r | |
445 | /ON KW IF IT IS SET\r | |
446 | SZA /DONE ?\r | |
447 | JMP LOP2 /NO\r | |
448 | TAD CLINT /CALL USER EXTENDED\r | |
449 | SZA CLA /CLOCK ROUT ?\r | |
450 | JMS% CLINT+1 /YES\r | |
451 | JMP% IDOCLK /RTN TO IHANDL\r | |
452 | \fFCNPTR,\r | |
453 | OVRCNT,\r | |
454 | KONQI, ADDR ONQI\r | |
455 | P17, 17\r | |
456 | P377, 377\r | |
457 | FCNWD, 0 /FPP XRS\r | |
458 | CPTYP, 0\r | |
459 | RATE, 0\r | |
460 | P1, 1\r | |
461 | P2, 2\r | |
462 | OVRFLO,\r | |
463 | FCNTBL, ADDR CLKTBL\r | |
464 | KSTFLG, ADDR STFLG-1\r | |
465 | IFNSW 1 <\r | |
466 | #CLINT, 0;0\r | |
467 | CLINT= #CLINT >\r | |
468 | IFSW 1 <\r | |
469 | #CLIN1, 0;0\r | |
470 | CLINT= #CLIN1 >\r | |
471 | IFNSW 4 <\r | |
472 | IFSW 2 <\r | |
473 | / ENTRY TIME /FIGURE WHAT TIME IT IS\r | |
474 | TIME, >\r | |
475 | >\r | |
476 | JSA SETUP\r | |
477 | FLDA RPTR /=27;X;X IS USED TO FLOAT\r | |
478 | STARTD\r | |
479 | FLDA# OVRCNT /NUM OF CLK OVRFLOS SINCE\r | |
480 | STARTF /TIME 0\r | |
481 | FNORM\r | |
482 | FMUL TOVR /=NUM OF BASIC TICKS PER\r | |
483 | /CLOCK OVER FLOW.\r | |
484 | /FAC=NUM OF TICKS SINCE\r | |
485 | /TIME 0.\r | |
486 | FDIV% RPTR,RATE /DIV BY BASIC RATE IN HZ\r | |
487 | /OR 1 IF EXTERNAL CLK.\r | |
488 | FSTA% FTMP0 /GIVE ANS TO CALLER, ALSO\r | |
489 | /LEAVE ANS IN FAC IN\r | |
490 | /CASE TIME WAS A FCN\r | |
491 | /CALL. ANS=ELAPSED TIME IN\r | |
492 | /SECONDS SINCE TIME 0 OR\r | |
493 | /NUM OF EXTERNAL UNIT\r | |
494 | JA GOBAK /TICKS\r | |
495 | \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 |