1 / A-D CLOCKED, BUFFERED SAMPLING ROUTINE
15 0 /INTERRUPT TIME AD SAMPLER
17 JMS LNCSAM /INITIATE SAMPLE
18 NEXTCH, ISZ SAMINS /UPDATE SAM INST FOR NEXT CHAN
19 JMS LNCSAM /SAM AND INITIATE NEXT CHANNEL
21 TAD SAMPTR /SAVE THE OLD SAM BUFFER POINTER
23 TAD BUFFLD /AND THE FIELD
25 ISZ SAMPTR /BUMP BUFFER POINTER
26 JMP FLDOK /FIELD IS OK
27 TAD BUFFLD /BUMP FIELD
30 FLDOK, ISZ SAMCNT /BUMP BUFFER COUNT
31 JMP BUFFLD /NOT END OF BUFFER
32 TAD ARRAY+2 /RESET POINTER TO START OF BUFFER
34 TAD FLDBUF /RESET BUFFER FIELD
36 TAD BUFSIZ /RESET COUNT
38 BUFFLD, HLT /GET FIELD OF NEW ADB STOP CODE
39 TAD% SAMPTR /IS THIS THE SAM STOP CODE ?
40 TAD M3776 /(ILLEGAL AS A SAMPLE)
43 ISZ TOOFAS /SET TOO FAST SWITCH
45 DCA% XCLINT+1 /STOP SAMPLING
47 NOERR, CLL CMA RAR /SET ADB STOP CODE
49 OLDFLD, HLT /GET TO FIELD OF SAMPLE
54 TAD SAMTMP /GET PREVIOUSLY READ SAMPLE
56 DCA% OLDPTR /INTO BUFFER
57 ISZ NPOINT+2 /ANY MORE SAMPLES
59 ISZ NPOINT+1 /MORE THAN 7777 ?
62 ISZ NCHANL+1 /ANY MORE CHANNELS TO SAMPLE ?
63 JMP NEXTCH /YES GO START SAMPLING
64 TAD CSTART+2 /STARTING CHANNEL
70 JMS LNCSAM /SET CHANNEL TO START
71 /IN CASE CLOCK INITIATED
73 TAD NCHANL+2 /NUMBER OF CHANNELS
74 DCA NCHANL+1 /INTO COUNTER
78 NEXTCH, ADST /SAMPLE NEXT CHANNEL
84 LNCSAM, 0 /LINC SAM SUBROUTINE
86 SAMINS, SAM 0 /SAMPLE AND SELECT NEXT CHANNEL
91 ADSETU, 0 /SET UP ROUTINE
92 DCA TOOFAS /CLEAR TOO FAST SWITCH
93 TAD ARRAY+1 /GET FIELD OF BUFFER
100 DCA BUFFLD /SAVE IN SAMPLER CODE
101 TAD ARRAY+2 /SET SAMPLER BUFFER POINTER
104 TAD LENGTH+2 /SIZE OF BUFFER
106 TAD LENGTH+2 /TIMES THREE
108 TAD BUFSIZ /SET INITIAL COUNT
111 TAD NCHANL+2 /SET CHANNEL COUNT
114 CLA CMA /STOP THE CLOCK
117 ADCL /CLEAR AD LOGIC JUST IN CASE
118 TAD L300 /SET AD ENABLE BITS
120 TAD CSTART+2 /STARTING CHANNEL NUMBER
125 TAD CSTART+2 /SET UP INITIAL SAM INSTRUCTION
129 DCA SAMST /STARTING SAM
130 TAD SAMST /ALSO INTERRUPT TIME SAM
132 TAD L100 /SET FAST SAM BIT
133 IOF /TURN OFF INTERRUPTS IN LINC MODE
134 LINC /ENTER LINC MODE
136 SAMST, SAM 0 /SET INITIAL SAM CHANNEL
176 FLDA 30 /GET RETURN ADDR
178 FLDA 0 /GET ARG POINTER
182 FSTA NPOINT /SAVE ARG POINTER
185 FSTA #CLINT /STOP ANY SAMPLING NOW!
187 FLDA% NPOINT,1 /GET BUFFER ADDRESS
189 FLDA% NPOINT,1+ /GET ADDR OF LENGTH
191 FLDA% NPOINT,1+ /ADDR OFHANNEL START
193 FLDA% NPOINT,1+ /ADDR OF # CHANNELS
195 FLDA% NPOINT,1+ /ADDR OF NUMBER OF POINTS
197 FLDA ARRAY /CREATE SETX INS
200 FSTA ADBSTX /AND SAVE IT IN TWO PLACES
202 FLDA% LENGTH /INTEGERIZE AND NEGATE SOME ARGS
207 ATX 1 /SET BUFFER COUNT
208 FLDA% CSTART /GET STARTING CHANNEL
219 LDX -1,2 /SET UP FOR BUFFER CLEAR
221 CLRBUF, FSTA% ARRAY,2+
223 TRAP4 ADSETU /SET UP AD STUFF
224 FLDA LENGTH /RE-GET BUFFER SIZE
226 ATX 1 /BUT NOW ITS TIMES THREE
227 FLDA STPCOD /STORE STOP CODES
228 FSTA% ARRAY /INTO FIRST 3 WORD
230 FLDA SAMADR /SET UP SAMPLER INTERRUPT HANDLER
241 ADB, BASE 0 /FETCH SAMPLE FROM BUFFER
248 JXN SPEEDK,2 /CLOCK TOO FAST
249 FLDA ADBSTX /SAVE OLD SETX
251 FADD L1 /ADD ONE TO IT
252 FSTA ADBSTX /AND SAVE IT BACK
253 JXN NORINQ,1+ /END OF BUFFER ?
254 FLDA BUFSTX /YES, RESTART
256 FLDA LENGTH /RESET COUNT
259 ADBSTX, SETX 0 /SET XR0 TO NEXT SAMPLE
260 WAIT, XTA 0 /GET THE NEXT SAMPLE
261 FSUB L2047 /IS IT THE STOP CODE
263 XTA 0 /NO, FETCH THE SAMPLE
264 LDX 3776,0 /SET SAMPLE STOP CODE
265 OLDSTX, SETX 0 /SET XR0 TO PREVIOUS STOP CODE
268 SPEEDK, EXTERN #WRITO /USE FORTRAN I/O
269 TRAP3 #WRITO /TO WRITE A MESSAGE
270 JA TTYUNT /ON THE TTY
273 TRAP3 #RENDO /CLOSE THE RECORD
274 LDX 0,2 /KILL TOO FAST SWITCH
275 JA SAMRTN /RETURN FROM ADB
277 MESSAG, TEXT '(" SAMPLING TOO FAST")'