1 /DAQUAN MS- DATA ACQUISITION AND ANALYSIS FOR LAB-8E.
2 /
3 /DEC-8E-ADAQA-A-LA
4 /
5 /COPYRIGHT 1972
6 /DIGITAL EQUIPMENT CORPORATION
7 /MAYNARD, MASSACHUSETTS 01754
8 /
9
10 /DAQUAN:
11 /FILE DAQ.5
12 /DAQUAN FOR PS8
13 /COPYRIGHT 1972 DIGITAL EQUIPMENT CORP. MAYNARD, MASS. 01754.
14 /DATA ACQUISITION AND ANALYSIS FOR 8K LAB8/E
15 /THE COMPUTER OF AVERAGE TRANSIENTS AND
16 /USING MANY OF THE CONCEPTS AND CODE AS WAS IN
17 /LORCAP-MADCAP PACKAGES (DECUS #8-237) AND CATACAL
18
19 FIXMRI CALL=4400 /USED TO CALL SUBR'S INDIRECTLY
20 FIXMRI FADD=1000
21 FIXMRI FSUB=2000
22 FIXMRI FMPY=3000
23 FIXMRI FDIV=4000
24 FIXMRI FGET=5000
25 FIXMRI FPUT=6000
26 FEXT= 0000
27
28 CDF= 6201
29 CLZE= 6130
30 CLSK= 6131
31 CLDE= 6132
32 CLAB= 6133
33 CLEN= 6134
34 CLSA= 6135
35 CLBA= 6136
36 CLCA= 6137
37 DBSO= 7000 /NOP
38 DILC= 6050
39 DICD= 6051
40 DISD= 6052
41 DILX= 6053
42 DILY= 6054
43 DIXY= 6055
44 DILE= 6056
45 DIRE= 6057
46 ADCL= 6530
47 ADLM= 6531
48 ADST= 6532
49 ADRB= 6533
50 ADSK= 6534
51 ADSE= 6535
52 ADLE= 6536
53 ADRS= 6537
54 CAF= 6007
55 PCE= 6020
56 KIE= 6035
57 SET1= CLL CLA IAC
58 SET2= SET1 RAL
59 SET3= SET2 STL
60 SET4= SET1 RTL
61 SET6= SET4 STL
62 SETM2= STA CLL RAL
63 SETM3= STA CLL RTL
64
65 /SHORT HAND SUBR. CALLS
66 FIXT= JMS I FIXER
67 FLOAT= JMS I FLOTER
68 INITAR= JMS I INIT
69 HEDIT1= JMS I HEADR1
70 HEDIT2= JMS I HEADR2
71 FLOUT= JMS I 6
72 ENTR= JMS I 7
73 GETNO= JMS I READXY
74 RDTTY= JMS I TELRED
75 ASK= JMS I QUERY
76 CRLFD= JMS I CRTLFD
77 FOUTCM= JMS I FOTCM
78 DISPLAY=JMP I DISM2 /COMMON EXIT TO DISPLAY
79
80 /THE FOLLOWING ARE USED TO CALL CERTAIN
81 /OPERATIONS WHILE IN INTERPRETER MODE.
82
83 SQUARE= 1
84 SQROOT= 2
85 NEGATE= 10 /NEGATE FL. PT. AC
86 READ= 11 /READ FP#, IGNORE NON-NUMERICS
87 OUTPUT= 12 /PRINT FAC. IN E FORMAT
88 FLOT=14
89 HEDIT= 15 /PRINT HEADING WITH 'HEDER2'
90 FNOR= 7000 /NORMALIZE C(FAC)
91
92 /EQUATES TO FLOATING PT. PKG:
93 DNORM=7265
94 FPIN=6200
95 FPNT=7400
96 EW= 44
97 HW= 45
98 LW= 46
99 AC0= 40
100 AC1= 41
101 AC2= 42
102 INPSW=52
103 DP=57
104 EFLG= 56
105 FLDW= 57
106 DADP= 60
107 /THESE DEFINE X-Y DAC RANGE AND PLOTTER
108 /LIMITS AS USED BY THIS PRGM.
109
110 AXR=1750 /X RANGE=1000(10)
111 AYR=1750 /Y RANGE=1000(10)
112 AXL=-764 /LOWER X LIMIT=-500
113 AYL=-764 /LOWER Y LIMIT=-500(10)
114
115 /THESE ARE USED BY 'MARKER' TO SET
116 /UP QUADRANT COORDINATES NEEDED.
117
118 AX1=AXL+372 /1ST X QUAD.,=-250(10)
119 AX2=AXL+764 /2ND " =0
120 AX3=AXL+1356 /3RD " =250(10)
121 AY1=AYL+372 /1ST Y QUAD.,=-250(10)
122 AY2=AYL+764 /2ND " =0
123 AY3=AYL+1356 /3RD " =250(10)
124
125
126 BUF1=-1 /STARTING ADDR.-1 OF FIRST BUFFER
127 DLBUF=4000 /ARRAY SIZE OR OFFSET
128
129 FIELD 0
130 *1 /INTERRUPT FOR CLOCK IN LOOK
131 000001 5402 JMP I .+1
132 000002 4200 STAVR
133
134 *6
135 000006 0763 FOUTX /START OUTPUT CONTROLLER
136 000007 7400 FPNT /START INTERPRETER
137
138 000010 0000 XIND, 0 /AUTO-INDEX REGISTERS
139 000011 0000 YIND, 0
140 000012 0000 ZIND, 0
141 000013 0000 AUTO, 0 /USED FOR TEMPORARY WORK.
142 000014 0000 AUTO2, 0 /TEMP AUTO.
143
144 *20 /SUBROUTINE TABLE
145 000020 2544 FLOTER, FLOATR /FLOAT C(AC) INTO FAC
146 000021 0323 FIXER, FIXR /FIX C(FAC) INTO AC AND LOC'N 45
147 000022 0600 READXY, READER /INPUT A FP #
148 000023 1103 HOLD, STALL /RC CLOCK DELAY SUBR.
149 000024 0555 TELRED, MODTTI /GET & PRINT CHAR. ON ASR
150 000025 3610 INIT, INITIZ /INITIALIZE STORAGE POINTERS
151 000026 0610 OUT, SELECT /OUTPUT CHAR TO ASR OR HSP
152 000027 0565 CRTLFD, MODCR /ISSUE CR-LF
153 000030 1724 HEADR1, HEDER1 /OUTPUT STRIPPED ASCII;ADDR. AFTER JMS
154 000031 1734 HEADR2, HEDER2 /DITTO; NO ADDRESS
155 000032 1066 QUERY, ASKER /ACCEPT Y OR N IN ANSWER TO QUESTION
156 000033 1146 PENUP, UPPEN /CLOSE RELAY ONE TO LIFT PEN
157 000034 1153 PENDN, DNPEN /OPEN " TO DROP PEN
158 000035 1134 DISMOV, RESET /RESET DAC OUTPUT TO NEW COORD'S
159 000036 1427 IOASK, ASKIO /ASK WHICH I/O DEVICE TO USE
160 000037 1125 ADCON, ADCONV /ADC SUBR. FOR GENERAL USE
161
162
163 *63 /MORE SUBR'S AND OPERATIONAL CONTROLS
164 000063 3171 FOTCM, FLTCM /FLOATING OUTPUT OF FAC FOLLOWED BY A COMMA
165 000064 3147 CLKSET, SETCLK /CLOCK CONTROL SUBR.
166 000065 1213 XSET, XSETUP /COMPUTE X AXIS INCREMENT FOR DISPLAY
167 000066 0222 DISM2, BEGDIS /BEGIN OF SCOPE DISPLAY ROUTINE
168 000067 1552 ADINX, ADDMX /SET UP X DISPLAY COORD'S
169 000070 0000 NPTS, 0 /NUMBER OF POINTS
170 000071 1161 HUNDRD, HNDRD /FLOATING 100(10)
171 000072 7014 XLIM, AXL /MIN. X FOR DISPLAY
172 000073 7014 YLIM, AYL /SAME FOR Y
173 000074 1750 XRNG, AXR /X DISPLAY RANGE
174 000075 1750 YRNG, AYR / " FOR Y
175 000076 7777 YONE, BUF1 /STARTING INDEX-1 FOR Y ARRAY
176 000077 4000 OFFSET, DLBUF /ARRAY OFFSET
177 000100 0000 YDIS, 0 /CURRENT DISPLAY COORD. FOR Y
178 000101 0000 XDIS, 0 /CURRENT X COORDINATE FOR DISPLAY
179
180 /XNC AND TXSM HAVE ASSUMED DECIMAL
181 /POINT AFTER BIT 11 OF HI ORDER WORD.
182 000102 0000 XNC, 0 /DOUBLE PRECISION VALUE FOR X
183 000103 0000 0 /INCREMENT FOR DISPLAY
184 000104 0000 TXSM, 0 /IS CURRENT DOUBLE PREC.
185 000105 0000 0 /VALUE FOR X DISPLAY.
186
187
188 000106 0002 FK3, 2;3000;0
000107 3000
000110 0000
189 000111 0027 P27, 27 /A CONSTANT.
190 /THESE 4 LOC'NS ARE USED BY AVERAGER
191 000112 0000 RUN, 0 /NO. OF SCANS
192 000113 0000 MCHAN, 0 /MULTIPLEXOR CHANNEL
193 000114 0000 AVSUM, 0 /NO. OF SAMPLES PER PT. (2'S COMP.)
194 000115 0000 EXPFC, 0 /EXPONENT FACTOR REDUCES ADC SUM
195
196
197 /TABLE OF CONSTANTS, COUNTERS, & TEMP. LOC'NS.
198 000116 0005 FIVE, 5
199 000117 0000 HALF, 0 /THIS IS USED TO AVOID TRUNCATION
200 000120 2000 2000 /WHEN FIXING THE FAC TO AN INTEGER.
201 000121 0000 0
202 000122 7774 NEG4, -4
203 000123 0077 RM77, 77
204 000124 1000 K1000, 1000
205 000125 0000 PCTR, 0
206 000126 0000 CNTR, 0
207 000127 0000 LNCTR, 0
208 000130 0000 MCTR, 0
209 000131 0000 TEMP, 0
210 000132 0000 TEMP1, 0
211 000133 0000 TEM2, 0
212 000134 0000 TEM3, 0
213 000135 0000 MIN, 0
214 000136 0000 MAX, 0
215 000137 0000 MODE, 0
216 000140 0000 BLOCK, 0
217 000141 0000 HIORD, 0
218 FTEM1,
219 000142 0000 CLTM, 0
220 000143 0000 DLATM, 0
221 000144 0000 0
222 FTEM2,
223 000145 0000 LOORD, 0
224 000146 0000 TMXP, 0
225 000147 0000 TMCTR, 0
226 TEMFP,
227 000150 0000 PS1, 0
228 000151 0000 PS2, 0
229 000152 0000 S1C, 0
230 XMIN,
231 000153 0000 S2C, 0
232 000154 0000 MNT, 0
233 000155 0000 MXT, 0
234 YMIN,
235 000156 0000 KMIN, 0
236 000157 0000 KMNT, 0
237 000160 0000 0
238 000161 0000 XSCLFC, 0
239 000162 0000 0
240 000163 0000 0
241 000164 0000 YSCLFC, 0
242 000165 0000 0
243 000166 0000 0
244 /MAIN CALLING ROUTINE AND
245 /DISPLAY LOOP PLUS SMALL SUBR'S.
246 *200
247 000200 4777 JMS M76TF1 /MOVE PS8 7600,FIELD 1 TO FIELD 0
248 /TO MAKE ROOM FOR DATA.
249 /DO NOT RESTART AT 200.
250 000201 5203 JMP START
251 000202 5221 JMP BEGDIS-1 /SA=202 TO RE-ENTER DISPLAY
252 000203 7300 START, CLA CLL
253 000204 6201 CDF 0
254 000205 3054 DCA IOSWT /CLR I/O SWITCH FOR LOW SPD
255 000206 4430 HEDIT1 /DAQUAN LIVES!^TITLE:
256 000207 5131 HD1
257 000210 4424 RDTTY /READ IN TEXT UNTIL CTRL/A
258 000211 1322 TAD MALT /IS ENTERED, THEN GO ON TO INPUT
259 000212 7640 SZA CLA
260 000213 5210 JMP .-3
261 000214 3140 DCA BLOCK /CLEAR FOR CHANNEL 1
262 000215 3137 DCA MODE /NO CURSORS
263 000216 7001 IAC
264 000217 3070 DCA NPTS /SET # PTS TO ONE FOR INITIAL COMMAND
265 000220 4431 HEDIT2 /OK, HIT ME!
266 000221 4433 CALL PENUP /BE SURE PLOTTER PEN IS UP
267
268 /START OF SCOPE DISPLAY ROUTINE:
269 000222 6201 BEGDIS, CDF 0 /NORMAL EXIT POINT FROM ROUTINES
270 000223 4465 CALL XSET
271 000224 3054 DCA IOSWT /CLR FOR LO SPD I/O
272 000225 3056 DCA EFLG /SET FPP E FORMAT.
273 000226 4427 CRLFD
274 000227 6032 KCC /KNOCK DOWN TTY FLAG
275 000230 1137 SCPINT, TAD MODE
276 000231 7640 SZA CLA /WANT CURSORS?
277 000232 4720 CALL DSPTS /YES
278 000233 3131 DCA TEMP /CLR SWITCH USED TO SWAP BLOCKS
279 000234 3132 DCA TEMP1 /IS Y AXIS OFFSET IF BLOCK=2
280 000235 3133 DCA TEM2 /IS X AXIS OFFSET
281 000236 1140 TAD BLOCK
282 000237 7640 SZA CLA /BLOCK 1?
283 000240 1077 STYN, TAD OFFSET /YES, ADD ARRAY OFFSET
284 000241 1076 TAD YONE
285 000242 3011 DCA YIND
286 000243 1070 TAD NPTS
287 000244 7041 CIA
288 000245 3126 DCA CNTR
289 000246 1133 TAD TEM2
290 000247 1072 TAD XLIM
291 000250 3101 DCA XDIS
292 000251 1073 TAD YLIM
293 000252 1132 TAD TEMP1
294 000253 3132 DCA TEMP1
295 000254 3105 DCA TXSM+1
296 000255 6031 KSF /GET CHAR. FROM TTY?
297 000256 7410 SKP
298 000257 5721 JMP I INTRP /YES, GO GET REST AND DECODE.
299 000260 6211 CDF 10
300
301 000261 1411 SCPLOP, TAD I YIND /GET Y VALUE (0-1000)
302 000262 1132 TAD TEMP1
303 000263 3100 DCA YDIS
304 000264 4435 CALL DISMOV
305 000265 1103 TAD XNC+1 /INCR. X DISPLAY SUM
306 000266 1105 TAD TXSM+1
307 000267 3105 DCA TXSM+1
308 000270 7004 RAL
309 000271 1101 TAD XDIS
310 000272 1102 TAD XNC
311 000273 3101 DCA XDIS
312 000274 2126 ISZ CNTR /MORE PTS?
313 000275 5261 JMP SCPLOP /YES
314 000276 6201 CDF 0
315 000277 7240 STA
316 000300 1140 TAD BLOCK
317 000301 7750 SPA SNA CLA /BLOCK #=2?
318 000302 5230 JMP SCPINT /NO, CONTINUE WITH CDA
319 000303 2131 ISZ TEMP /IS SWITCH SET FOR CHANNEL 1?
320 000304 5310 JMP .+4 /NO
321 000305 3133 DCA TEM2 /YES CLEAR X AND Y OFFSET
322 000306 3132 DCA TEMP1
323 000307 5241 JMP STYN+1 /AND RETURN
324 000310 7240 STA /SET SWITCH TO SKIP
325 000311 3131 DCA TEMP
326 000312 7001 IAC
327 000313 4437 CALL ADCON /GET A NEW Y OFFSET FROM KNOB 1
328 000314 3132 DCA TEMP1
329 000315 4437 CALL ADCON /GET NEW X OFFSET FROM KNOB 0
330 000316 3133 DCA TEM2
331 000317 5240 JMP STYN /AND RETURN TO SET CHAN 2
332 000320 3326 DSPTS, DISPTS
333 000321 2000 INTRP, SERVIS /DECODE KBD CHAR'S AND ACT
334 000322 7577 MALT, -201 /-CTRL/A
335
336
337 000323 0000 FIXR, 0 /THIS SUBR. TRUNCATES FAC TO INTEGER
338 000324 7200 CLA /AND LEAVES IT IN THE AC & LOC'N HW.
339 000325 1044 TAD EW
340 000326 7750 SPA SNA CLA /EXPO.<1?
341 000327 5360 JMP DONE-1 /YES; TRUNCATE TO ZERO
342 000330 1044 TAD EW
343 000331 1363 TAD M13
344 000332 7450 SNA /EXPO=13?
345 000333 5361 JMP DONE /YES; C(45) ARE INTEGER PART
346 000334 7500 SMA /EXPO.<13?
347 000335 5353 JMP LRG /NO, IS TOO LARGE
348 000336 3776 DCA FLOATR /USE FLOATR AS TEMP REG.
349 000337 7100 FIXR1, CLL /ROTATE FAC 1 RIGHT;LEAVE
350 000340 1045 TAD HW
351 000341 7510 SPA
352 000342 7120 STL
353 000343 7010 RAR /VALUE AT LW=ADD 46.
354 000344 3045 DCA HW
355 000345 1046 TAD LW
356 000346 7010 RAR
357 000347 3046 DCA LW
358 000350 2776 ISZ FLOATR /FRACTION AS C(46)
359 000351 5337 JMP FIXR1
360 000352 5361 JMP DONE
361 000353 7300 LRG, CLA CLL
362 000354 1045 TAD HW
363 000355 7710 SPA CLA /WAS IT NEG.?
364 000356 7046 CMA RTL /YES; SET AC=7775
365 000357 7050 CMA RAR /IF +,=3777;IF -,=4001
366 000360 3045 DCA HW
367 000361 1045 DONE, TAD HW
368 000362 5723 JMP I FIXR
369 000363 7765 M13, -13
370
371 /THIS IS A SHORT DEBUG AND CORE MODIFIER ROUTINE
372 /THE RETURN LOCATION IS SPECIFIED BY
373 /TYPING 'R' THEN RETURN LOC'N.
374 /TYPE 'N' TO OPEN NEXT LOCATION; TYPE 'C'
375 /AFTER A CORRECTION TO ENTER IT;
376 /AND TYPE 'S' TO REOPEN LAST LOCATION USED.
377 /'RUBOUT' WILL TERMINATE ANY OPERATION
378 /THEN RESTART ROUTINE.
379 /WILL BE CLOBBERED BY PARA'S IF USE CA:
380
381 000376 2544 *400
000377 2336
382 000400 4365 STRTIT, JMS MODCR
383 000401 4272 JMS OCTIN /GET A LOCATION TO OPEN
384 000402 5200 JMP .-2
385 000403 7440 SZA /GET A NUMBER>0?
386 000404 5231 JMP GOTIT /YES
387 000405 1352 TAD LSCHR /IS LAST CHARACTER READ
388 000406 1345 TAD MEN
389 000407 7450 SNA /WAS IT 'N'?
390 000410 5225 JMP NLOC /YES
391 000411 1346 TAD MES
392 000412 7450 SNA /WAS IT 'S'?
393 000413 5226 JMP NLOC+1 /YES
394 000414 7001 IAC
395 000415 7640 SZA CLA /WAS IT 'R'?
396 000416 5200 JMP STRTIT /NO, IGNORE IT
397 000417 4272 JMS OCTIN /YES; GET EXIT LOC'N
398 000420 5200 JMP STRTIT /IF ERROR, RESTART
399 000421 7650 SNA CLA /MUST BE NONZERO ADDR.
400 000422 5200 JMP STRTIT
401 000423 4365 JMS MODCR /WAS OK
402 000424 5753 JMP I VALU /EXIT TO THERE.
403
404 000425 2351 NLOC, ISZ LSLOC
405 000426 1351 TAD LSLOC
406 000427 4252 JMS OCTOUT
407 000430 7410 SKP
408 000431 3351 GOTIT, DCA LSLOC
409 000432 1343 TAD EQUAL
410 000433 4426 CALL OUT
411 000434 1751 TAD I LSLOC /GET CONTENTS OF OPEN LOC'N
412 000435 4252 JMS OCTOUT /PRINT IT
413 000436 1344 TAD COLON
414 000437 4426 CALL OUT
415 000440 4272 JMS OCTIN /GET CORRECTION
416 000441 5200 JMP STRTIT
417 000442 7200 CLA
418 000443 1352 TAD LSCHR
419 000444 1336 TAD MSEE
420 000445 7640 SZA CLA /WAS LAST CHAR. A 'C'?
421 000446 5200 JMP STRTIT /NO, RESTART.
422 000447 1353 TAD VALU /YES
423 000450 3751 DCA I LSLOC /STORE CORRECTION
424 000451 5200 JMP STRTIT
425 000452 0000 OCTOUT, 0
426 000453 7104 CLL RAL /CAME WITH OCTAL # IN AC;
427 000454 3354 DCA DTEM /ROTATE 1ST DIGIT INTO LINK
428 000455 1122 TAD NEG4
429 000456 3350 DCA NCNTR
430 000457 1354 SETIT, TAD DTEM
431 000460 7006 RTL
432 000461 7004 RAL
433 000462 3354 DCA DTEM
434 000463 1354 TAD DTEM
435 000464 0342 AND P7M0 /MASK RIGHTMOST 3 BITS
436 000465 1337 TAD AS260
437 000466 4426 CALL OUT
438 000467 2350 ISZ NCNTR /PRINTED 4 DIGITS?
439 000470 5257 JMP SETIT /NO
440 000471 5652 JMP I OCTOUT /YES, WE'RE DONE.
441
442 000472 0000 OCTIN, 0
443 000473 7200 CLA /OCTAL INPUT ROUTINE
444 000474 3353 DCA VALU /ANY NON OCTAL CHAR TERMINATES
445 000475 3350 DCA NCNTR />4 DIGITS OR RUBOUT GENERATE ERROR RETURN
446 000476 4355 GTCHR, JMS MODTTI /GET A CHARACTER
447 000477 3352 DCA LSCHR
448 000500 1352 TAD LSCHR
449 000501 1341 TAD MN7
450 000502 7540 SMA SZA / ASCII '0'?
454 000506 5323 JMP FNISH /NO, DEFINITELY NOT DIGIT.
455 000507 3354 DCA DTEM /IS DIGIT, KEEP IT.
456 000510 1353 TAD VALU /IS CURRENTLY ASSEMBLED LOC'N
457 000511 7106 CLL RTL
458 000512 7004 RAL
459 000513 1354 TAD DTEM /ADD NEW DIGIT
460 000514 3353 DCA VALU
461 000515 2350 ISZ NCNTR
462 000516 1350 TAD NCNTR /HAVE MORE THAN 4 CHAR'S?
463 000517 1122 TAD NEG4
464 000520 7740 SZA SMA CLA
465 000521 5333 JMP BAD /YES, ERROR
466 000522 5276 JMP GTCHR /NO, GET ANOTHER
467 000523 7200 FNISH, CLA /EXIT HERE WITH OPEN LOC'N IN AC
468 000524 1352 TAD LSCHR
469 000525 1340 TAD MRBT
470 000526 7650 SNA CLA /WAS LAST CHAR A RUBOUT?
471 000527 5333 JMP .+4 /YES, ERROR!
472 000530 2272 ISZ OCTIN /INDEX RETURN IF NO ERROR
473 000531 1353 TAD VALU /AND LEAVE RESULT IN AC
474 000532 5672 JMP I OCTIN
475 000533 1347 BAD, TAD QUEST
476 000534 4426 CALL OUT
477 000535 5672 JMP I OCTIN
478
479 000536 7475 MSEE, -303
480 000537 0260 AS260, 260
481 000540 7401 MRBT, -377
482 000541 7511 MN7, -267
483 000542 0007 P7M0, 267-260
484 000543 0275 EQUAL, 275
485 000544 0272 COLON, 272
486 000545 7462 MEN, -316
487 000546 7773 MES, 316-323
488 000547 0277 QUEST, 277
489 000550 0000 NCNTR, 0
490 000551 0000 LSLOC, 0
491 000552 0000 LSCHR, 0
492 000553 0000 VALU, 0
493 000554 0000 DTEM, 0
494
495 000555 0000 MODTTI, 0
496 000556 6031 KSF
497 000557 5356 JMP .-1
498 000560 6036 KRB
499 000561 6046 TLS
500 000562 6041 TSF
501 000563 5362 JMP .-1
502 000564 5755 JMP I MODTTI
503
504 000565 0000 MODCR, 0
505 000566 7200 CLA
506 000567 1374 TAD MDCR
507 000570 4426 CALL OUT
508 000571 1375 TAD MDLF
509 000572 4426 CALL OUT
510 000573 5765 JMP I MODCR
511 000574 0215 MDCR, 215
512 000575 0212 MDLF, 212
513 *600
514 000600 0000 READER, 0 /FP INPUT SUBR. TO IGNORE NON-NUMERICS.
515 000601 4607 CALL FLIN /GET CONVERSION
516 000602 7000 NOP /LEAVE ROOM FOR DAFFT AND PAFFT TO INSERT
517 / A SWBA INSTRUCTION
518 000603 1052 TAD INPSW
519 000604 7650 SNA CLA /NUMERIC INPUT?
520 000605 5202 JMP .-3 /NO, TRY AGAIN
521 000606 5600 JMP I READER /YES, EXIT.
522 000607 6200 FLIN, FPIN
523
524 000610 0000 SELECT, 0 /OUTPUT SELECTOR ACCORDING TO IOSWT
525 000611 3230 DCA OUTCHR /KEEP CHAR.
526 000612 1054 TAD IOSWT
527 000613 7650 SNA CLA /WAS IT >0?
528 000614 5222 JMP TTOUT /NO, USE TELETYPE
529 000615 1230 TAD OUTCHR
530 000616 6026 PLS
531 000617 6021 PSF
532 000620 5217 JMP .-1
533 000621 5226 JMP .+5
534 000622 1230 TTOUT, TAD OUTCHR
535 000623 6046 TLS
536 000624 6041 TSF
537 000625 5224 JMP .-1
538 000626 7200 CLA
539 000627 5610 JMP I SELECT
540 000630 0000 OUTCHR, 0
541
542 000631 0000 MARKER, 0 /TABLE DRIVEN AXIS MARKER ROUTINE
543 000632 1262 TAD CORTAB /INITIALIZE COORD. TABLE POINTER
544 000633 3013 DCA AUTO
545 000634 1413 LOKIN, TAD I AUTO /GET STATUS WORD
546 000635 3131 DCA TEMP
547 000636 1131 TAD TEMP
548 000637 7001 IAC
549 000640 7650 SNA CLA /END OF TABLE?
550 000641 5631 JMP I MARKER /YES
551 000642 1131 TAD TEMP
552 000643 7700 SMA CLA /NEED X COORD.?
553 000644 5247 JMP .+3 /NO
554 000645 1413 TAD I AUTO
555 000646 3101 DCA XDIS
556 000647 1131 TAD TEMP
557 000650 7004 RAL
558 000651 7700 SMA CLA /NEED Y COORD.?
559 000652 5255 JMP .+3 /NO
560 000653 1413 TAD I AUTO
561 000654 3100 DCA YDIS
562 000655 7201 CLA IAC /IF BIT 11=1, MOVE TO COORD'S
563 000656 0131 AND TEMP /THEN PUT PEN DOWN; IF =0,
564 000657 4661 CALL PLTMV /INCREMENT TO COORD'S W/PEN DOWN.
565 000660 5234 JMP LOKIN /CONTINUE SCANNING TABLE
566 000661 1600 PLTMV, PLTINC
567
568 /THE FOLLOWING TABLE OF COORD'S IS STRUCTURED
569 /THUSLY: 1ST WORD=STATUS, BIT 0=1 MEANS
570 /X COORD. FOLLOWS, BIT 1=1 Y COORD. FOLLOWS,
571 /BOTH SET MEANS X THEN Y COORD'S FOLLOW.
572 /BIT 11 DESCRIBES PEN STATUS: =0
573 /LEAVE PEN AS IS, AND =1 RAISE PEN.
574
575 PX=4000;PY=2000;PU=1
576
577 000662 0662 CORTAB, .
578
579 /THESE DRAW A BOX STARTING FROM AXES ORIGIN
580 000663 6001 PX+PY+PU /GO TO AXES ORIGIN
581 000664 7007 AXL-5
582 000665 7007 AYL-5
583 000666 4000 PX /GO TO RIGHT
584 000667 0771 AXL+AXR+5
585 000670 2000 PY /GO TO TOP
586 000671 0771 AYL+AYR+5
587 000672 4000 PX /GO TO LEFT TOP
588 000673 7007 AXL-5
589 000674 2000 PY /GO TO AXES ORIGIN
590 000675 7007 AYL-5
591
592 /THESE DRAW TICS ON X AXIS
593 000676 4001 PX+PU
594 000677 7014 AXL
595 000700 2000 PY
596 000701 7012 AYL-2
597 000702 6001 PX+PY+PU
598 000703 7406 AX1
599 000704 7007 AYL-5
600 000705 2000 PY
601 000706 7012 AYL-2
602 000707 6001 PX+PY+PU
603 000710 0000 AX2
604 000711 7007 AYL-5
605 000712 2000 PY
606 000713 7012 AYL-2
607 000714 6001 PX+PY+PU
608 000715 0372 AX3
609 000716 7007 AYL-5
610 000717 2000 PY
611 000720 7012 AYL-2
612 000721 6001 PX+PY+PU
613 000722 0764 AXR+AXL
614 000723 7007 AYL-5
615 000724 2000 PY
616 000725 7012 AYL-2
617
618
619
620 /TICS ON Y AXIS
621 000726 6001 PX+PY+PU
622 000727 7007 AXL-5
623 000730 7014 AYL
624 000731 4000 PX
625 000732 7012 AXL-2
626 000733 6001 PX+PY+PU
627 000734 7007 AXL-5
628 000735 7406 AY1
629 000736 4000 PX
630 000737 7012 AXL-2
631 000740 6001 PX+PY+PU
632 000741 7007 AXL-5
633 000742 0000 AY2
634 000743 4000 PX
635 000744 7012 AXL-2
636 000745 6001 PX+PY+PU
637 000746 7007 AXL-5
638 000747 0372 AY3
639 000750 4000 PX
640 000751 7012 AXL-2
641 000752 6001 PX+PY+PU
642 000753 7007 AXL-5
643 000754 0764 AYR+AYL
644 000755 4000 PX
645 000756 7012 AXL-2
646 000757 6001 PX+PY+PU
647 000760 7014 AXL
648 000761 7014 AYL
649 000762 7777 MIN1, -1 /END OF TABLE.
650
651 000763 0000 FOUTX, 0 /ENTRY TO FLOATING OUTPUT.
652 000764 3060 DCA DADP
653 000765 4770 JMS I .+3 /CALL FPP OUTPUT.
654 000766 7000 NOP /LEAVE ROOM FOR DAFFT AND PAFFT TO INSERT
655 / A SWBA INSTRUCTION.
656 000767 5763 JMP I FOUTX
657 000770 5600 5600
658 *1000
659 001000 4430 CALBRT, HEDIT1 /CALIBRATE:^LINE PLOT?
660 001001 5171 HD3
661 001002 4432 ASK
662 001003 3663 DCA I PTPLT /=0 FOR LINE PLOT;=1 FOR POINT
663 001004 4427 CLSTRT, CRLFD
664 001005 4433 CALL PENUP
665 001006 5250 JMP ORGN /START PEN AT ORIGIN OF DATA
666 001007 4435 INSTRK, CALL DISMOV /BEGIN INTERROGATION
667 001010 6031 KSF
668 001011 5207 JMP .-2 /MUST REFRESH DISPLAY
669 001012 6036 KRB
670 001013 6046 TLS
671 001014 1256 TAD YES /LEGAL CHARACTERS ARE
672 001015 7450 SNA /X,Y,O,M, OR G
673 001016 5244 JMP YMAX /WAS Y, GO TO YMAX
674 001017 7001 IAC /WAS IT X?
675 001020 7450 SNA
676 001021 5240 JMP XMAX /YES, GO TO XMAX.
677 001022 1260 TAD MGEE /WAS IT G?
678 001023 7450 SNA
679 001024 5665 JMP I PLTXIT /YES, EXIT.
680 001025 1261 TAD MEM /WAS IT M?
681 001026 7440 SZA
682 001027 5232 JMP .+3 /NO
683 001030 4664 CALL MARKR /YES, MARK COORDINATE AXES.
684 001031 5204 JMP CLSTRT
685 001032 1262 TAD MOH /WAS IT O?
686 001033 7650 SNA CLA
687 001034 5250 JMP ORGN /YES, GO TO DATA MINIMA.
688 001035 1255 TAD QUES /NO, FOUND INVALID CHARACTER
689 001036 4426 CALL OUT
690 001037 5207 JMP INSTRK
691
692 001040 1072 XMAX, TAD XLIM
693 001041 1074 TAD XRNG
694 001042 3101 DCA XDIS
695 001043 5207 JMP INSTRK
696
697 001044 1073 YMAX, TAD YLIM
698 001045 1075 TAD YRNG
699 001046 3100 DCA YDIS
700 001047 5207 JMP INSTRK
701
702 001050 1072 ORGN, TAD XLIM
703 001051 3101 DCA XDIS
704 001052 1073 TAD YLIM
705 001053 3100 DCA YDIS
706 001054 5207 JMP INSTRK
707
708 001055 0277 QUES, 277 /?
709 001056 7447 YES, -331 /-Y
710 001057 0013 NO, 331-316 /Y-N
711 001060 0021 MGEE, 330-307 /X-G
712 001061 7772 MEM, 307-315 /G-M
713 001062 7776 MOH, 315-317 /M-O
714 001063 1363 PTPLT, PNTPLT
715 001064 0631 MARKR, MARKER
716 001065 1335 PLTXIT, PLTINT
717
718 /SUBR. ACCEPTS ONLY 'Y' OR 'N' FROM
719 001066 0000 ASKER, 0 /ASR. GIVES '?' IF NOT. SETS AC=1
720 001067 4424 RDTTY /FOR 'N' ANSWER, AC=0 FOR 'Y'
721 001070 1256 TAD YES
722 001071 7450 SNA
723 001072 5666 JMP I ASKER /=0 FOR YES
724 001073 1257 TAD NO
725 001074 7640 SZA CLA
726 001075 5300 JMP .+3
727 001076 7001 IAC /=1 FOR NO
728 001077 5666 JMP I ASKER
729 001100 1255 TAD QUES
730 001101 4426 CALL OUT
731 001102 5267 JMP ASKER+1
732
733 001103 0000 STALL, 0
734 001104 7300 CLA CLL
735 001105 1321 TAD SET
736 001106 7650 SNA CLA /WANT FAST CLOCK?
737 001107 1324 TAD K100 /NO SET FOR 1KC
738 001110 1323 TAD K5400 /IF SKIPPED SET FOR 10KC
739 001111 3317 DCA CCLDR
740 001112 7325 SET3
741 001113 4437 CALL ADCON /GET VARIABLE COUNT FROM CHAN 3
742 001114 1322 TAD K7000
743 001115 7130 STL RAR /RANGE OF 7000 TO 7777
744 001116 4464 CALL CLKSET /INSERT DELAY TIME
745 001117 0000 CCLDR, 0
746 001120 5703 JMP I STALL
747 001121 0000 SET, 0
748 001122 7000 K7000, 7000
749 001123 5401 K5400, 5401
750 001124 7700 K100, -100
751
752 001125 0000 ADCONV, 0
753 001126 6531 ADLM /LOAD MUX
754 001127 6532 ADST /START CONV
755 001130 6534 ADSK
756 001131 5330 JMP .-1
757 001132 6533 ADRB /READ RESULT
758 001133 5725 JMP I ADCONV
759
760 001134 0000 RESET, 0 /RESET DISPLAY COORD'S
761 001135 7200 CLA
762 001136 6055 DIXY
763 001137 1100 TAD YDIS
764 001140 6054 DILY
765 001141 7200 CLA
766 001142 1101 TAD XDIS
767 001143 6053 DILX
768 001144 7300 CLA CLL
769 001145 5734 JMP I RESET
770
771 /THESE TWO SUBR'S CAN OPEN AND CLOSE A RELAY
772 /USING RELAY DRIVER TIED TO CHANNEL SELECT BIT.
773 001146 0000 UPPEN, 0
774 001147 4423 CALL HOLD
775 001150 6056 DILE
776 001151 4423 CALL HOLD
777 001152 5746 JMP I UPPEN
778
779 001153 0000 DNPEN, 0
780 001154 4423 CALL HOLD
781 001155 7305 SET2
782 001156 6056 DILE
783 001157 4423 CALL HOLD
784 001160 5753 JMP I DNPEN
785
786 001161 0007 HNDRD, 7;3100;0
001162 3100
001163 0000
787
788 *1200
789 001200 0000 LEADER, 0 /OUTPUT 10 INCHES OF LDR-TRLR.
790 001201 4427 CRLFD
791 001202 1211 TAD LNUM
792 001203 3125 DCA PCTR
793 001204 1212 TAD C200
794 001205 4426 CALL OUT
795 001206 2125 ISZ PCTR
796 001207 5204 JMP .-3
797 001210 5600 JMP I LEADER
798 001211 7634 LNUM, -144
799 001212 0200 C200, 200
800
801 001213 0000 XSETUP, 0
802 001214 7240 STA /FOLLOWING ROUTINE COMPUTES
803 001215 1070 TAD NPTS /X DISPLAY INCREMENT SCALED
804 001216 4420 FLOAT /TO THE NO. OF PTS., NPTS.
805 001217 4407 ENTR
806 001220 6161 FPUT XSCLFC
807 001221 5074 FGET XRNG
808 001222 0014 FLOT
809 001223 4161 FDIV XSCLFC /LEAVES X UNITS/PT IN FAC
810 001224 6161 FPUT XSCLFC /AND XSCLFC.
811 001225 0000 FEXT
812 001226 1044 TAD EW
813 001227 7740 SZA SMA CLA /WAS FAC<1?
814 001230 5240 JMP GTZR /NO
815 001231 3102 DCA XNC /YES, CLEAR INTEGER PART
816 001232 1045 TAD HW /ASSUMES FACTOR IS ALWAYS
817 001233 7104 CLL RAL /0.25 OR GREATER;RAL FOR SIGN BIT
818 001234 2044 ISZ EW /WAS C(44)=-1?
819 001235 7410 SKP /NO, WAS 0
820 001236 7110 CLL RAR /YES, DIVIDE BY 2
821 001237 5243 JMP .+4
822 001240 4421 GTZR, FIXT
823 001241 3102 DCA XNC
824 001242 1046 TAD LW
825 001243 3103 DCA XNC+1
826 001244 5613 JMP I XSETUP
827 001245 4307 ISDIG, JMS DATYP
828 001246 4431 HEDIT2 /PTS. TO SKIP:
829 001247 4422 GETNO
830 001250 4421 FIXT
831 001251 7040 CMA /KEEP AS ONE'S COMP.
832 001252 3125 DCA PCTR
833 001253 4430 HEDIT1 /Y RANGE AND MIN.:
834 001254 5307 DIHD1
835 001255 4422 GETNO
836 001256 4324 JMS YSVAL
837 001257 4407 ENTR
838 001260 0011 READ /READ MINIMUM Y
839 001261 6156 FPUT YMIN
840 001262 0000 FEXT
841 001263 4436 CALL IOASK /LOW SPEED I/O?
842 001264 6014 RFC
843 001265 4425 INITAR
844 001266 4407 XYSCAL, ENTR /READ A Y VALUE
845 001267 0011 READ
846 001270 2156 FSUB YMIN
847 001271 3164 FMPY YSCLFC
848 001272 1117 FADD HALF
849 001273 0000 FEXT
850 001274 4421 FIXT
851 001275 6211 CDF 10
852 001276 3411 DCA I YIND
853 001277 6201 CDF 0
854 001300 2125 ISZ PCTR /KEEPING THIS POINT?
855 001301 5265 JMP XYSCAL-1 /NO, RE-INIT. TO IGNORE PTS.
856 001302 7240 STA /AFTER FIRST SKIP, ALWAYS SKIP
857 001303 3125 DCA PCTR
858 001304 2126 ISZ CNTR
859 001305 5266 JMP XYSCAL
860 001306 5466 DISPLAY /EXIT FOR DISPLAY
861
862 001307 0000 DATYP, 0
863 001310 4430 HEDIT1
864 001311 5153 HD2 /NO. PTS=
865 001312 4422 GETNO
866 001313 4421 FIXT
867 001314 7041 CIA
868 001315 1077 TAD OFFSET
869 001316 7710 SPA CLA /LESS THAN ARRAY SIZE?
870 001317 5310 JMP DATYP+1 /NO, TRY AGAIN
871 001320 1045 TAD HW
872 001321 3070 DCA NPTS
873 001322 4465 CALL XSET /SET X DISPLAY INCREMENT
874 001323 5707 JMP I DATYP
875
876 001324 0000 YSVAL, 0
877 001325 4407 ENTR
878 001326 6164 FPUT YSCLFC /DATA RANGE IN FAC ON ENTRY
879 001327 5075 FGET YRNG /FIND YRNG/D.R.=YSCLFC
880 001330 0014 FLOT
881 001331 4164 FDIV YSCLFC / AND LEAVE FACTOR IN FAC
882 001332 6164 FPUT YSCLFC
883 001333 0000 FEXT
884 001334 5724 JMP I YSVAL
885
886 001335 4425 PLTINT, INITAR /INCREMENTAL X-Y ANALOG PLOTTING ROUTINE
887 001336 4433 CALL PENUP /RAISE PEN
888 001337 4465 CALL XSET
889 001340 7001 IAC /SET SWITCH FOR 1 ST PT ONLY
890 001341 3127 DCA LNCTR
891 001342 6211 PLTLOP, CDF 10 /SET UP Y VALUE
892 001343 1411 TAD I YIND
893 001344 6201 CDF 0
894 001345 1073 TAD YLIM
895 001346 3100 DCA YDIS
896 001347 1363 TAD PNTPLT /=0 FOR LINE PLOT; =1 FOR POINT
897 001350 1127 TAD LNCTR
898 001351 4764 CALL PLTMOV /MOVE PEN
899 001352 3127 DCA LNCTR /CLEAR 1 ST PT SWITCH
900 001353 4467 CALL ADINX /INCR. X DISPLAY SUM
901 001354 2126 ISZ CNTR /MORE PTS?
902 001355 5342 JMP PLTLOP /YES
903 001356 4433 CALL PENUP /LIFT PEN + EXIT
904 001357 4430 HEDIT1 /DONE. IS PLOTTER OFF?
905 001360 5217 HD6
906 001361 4432 ASK /IGNORE RESPONSE
907 001362 5466 DISPLAY
908 001363 0000 PNTPLT, 0
909 001364 1600 PLTMOV, PLTINC
910
911 001365 4425 YFLIP, INITAR /INVERT Y AXIS
912 001366 6211 CDF 10 /Y(I)=YRNG-Y(I)
913 001367 1411 FLY, TAD I YIND
914 001370 7041 CIA
915 001371 1075 TAD YRNG
916 001372 3412 DCA I ZIND
917 001373 2126 ISZ CNTR
918 001374 5367 JMP FLY
919 001375 5466 DISPLAY
920
921
922
923
924 *1400
925 /SUBR. PRINTS DEC. NOS. IN 10 COLUMNS
926 001400 4436 FPOUT, CALL IOASK /OF UP TO 4 DIGIT INTEGERS.
927 001401 4626 CALL LEDER
928 001402 4425 INITAR
929 001403 7327 SET6
930 001404 3057 DCA DP /NO. OF DIGITS TO OUTPUT
931 001405 2056 ISZ EFLG /SET F FORMAT.
932 001406 1225 NULINE, TAD NLIN
933 001407 3130 DCA MCTR
934 001410 6211 LOOP6, CDF 10
935 001411 1411 TAD I YIND
936 001412 4420 FLOAT
937 001413 4463 FOUTCM
938 001414 2126 ISZ CNTR
939 001415 7410 SKP
940 001416 5223 JMP DNE
941 001417 2130 ISZ MCTR
942 001420 5210 JMP LOOP6
943 001421 4427 CRLFD
944 001422 5206 JMP NULINE
945 001423 4626 DNE, CALL LEDER
946 001424 5466 DISPLAY
947 001425 7766 NLIN, -12
948 001426 1200 LEDER, LEADER
949
950 /CHECK WHICH I/O DEVICES TO USE
951 001427 0000 ASKIO, 0
952 001430 4430 HEDIT1
953 001431 1440 HDIO
954 001432 4432 ASK
955 001433 7110 CLL RAR /KEEP ANSWER IN LINK
956 001434 4427 CRLFD /MUST HAVE LOW I/O FOR CR-LF
957 001435 7004 RAL /NOW SET UP SWITCH
958 001436 3054 DCA IOSWT /=1,HIGH;=0,LOW
959 001437 5627 JMP I ASKIO
960 001440 2424 HDIO, TEXT \TTY I/O?\
001441 3140
001442 1157
001443 1777
001444 0000
961
962 /SCAN DATA FOR MIN AND MAX:
963 001445 0000 SCANY, 0
964 001446 4425 INITAR
965 001447 6211 CDF 10
966 001450 7132 STL RTR
967 001451 3135 DCA MIN
968 001452 3136 DCA MAX
969 001453 1411 LOOP4, TAD I YIND /FIND YMAX AND YMIN IN DATA
970 001454 3131 DCA TEMP
971 001455 1131 TAD TEMP /SUB Y FROM MIN
972 001456 7041 CIA
973 001457 1135 TAD MIN
974 001460 7700 SMA CLA /MINY?
980 001466 5274 JMP INCR
981 001467 1131 TAD TEMP /NO, SET MAX=Y
982 001470 3136 DCA MAX
983 001471 5274 JMP INCR
984 001472 1131 LOW, TAD TEMP
985 001473 3135 DCA MIN
986 001474 2126 INCR, ISZ CNTR
987 001475 5253 JMP LOOP4
988 001476 6201 CDF 0
989 001477 5645 JMP I SCANY
990
991 001500 4245 SCALY, JMS SCANY /GET YMIN & MAX
992 001501 1135 TAD MIN
993 001502 7041 CIA
994 001503 1136 TAD MAX
995 001504 4420 FLOAT
996 001505 4751 CALL YSCVAL
997 001506 4430 HEDIT1 /^MIN=
998 001507 5206 HD5
999 001510 7327 SET6
1000 001511 3057 DCA DP
1001 001512 2056 ISZ EFLG
1002 001513 1135 TAD MIN
1003 001514 4420 FLOAT
1004 001515 4406 FLOUT /OUTPUT 4 DIGIT INTEGER
1005 001516 4431 HEDIT2 /MAX=
1006 001517 1136 TAD MAX
1007 001520 4420 FLOAT
1008 001521 4406 FLOUT
1009 001522 4407 ENTR
1010 001523 0015 HEDIT /MPY=
1011 001524 5164 FGET YSCLFC
1012 001525 0000 FEXT
1013 001526 2057 ISZ DP /SET FIELD TO 7
1014 001527 7325 SET3 /FOR 3 DEC. PLACES
1015 001530 4406 FLOUT
1016 001531 4425 INITAR
1017 001532 1135 SKL, TAD MIN /SCALE DATA AFTER SUB'G MIN Y.
1018 001533 7041 CIA
1019 001534 6211 CDF 10
1020 001535 1411 TAD I YIND
1021 001536 4420 FLOAT
1022 001537 4407 ENTR
1023 001540 3164 FMPY YSCLFC
1024 001541 1117 FADD HALF /CORRECT FOR TRUNCATION.
1025 001542 0000 FEXT
1026 001543 4421 FIXT
1027 001544 6211 CDF 10
1028 001545 3412 DCA I ZIND
1029 001546 2126 ISZ CNTR
1030 001547 5332 JMP SKL
1031 001550 5466 DISPLAY
1032 001551 1324 YSCVAL, YSVAL
1033
1034 /LOADS CURRENT XDIS AND READYS NEXT.
1035 001552 0000 ADDMX, 0
1036 001553 7300 CLA CLL
1037 001554 1105 TAD TXSM+1 /GET LOW ORDER
1038 001555 7104 CLL RAL /PUT BIT 0 IN 11 FOR ROUNDOFF
1039 001556 7204 CLA RAL
1040 001557 1104 TAD TXSM /GET HIGH ORDER
1041 001560 1072 TAD XLIM
1042 001561 3101 DCA XDIS /IS CURRENT X DISPLAY VALUE.
1043 001562 7100 CLL
1044 001563 1105 TAD TXSM+1 /FOR NEXT TIME: GET FRACTIONS
1045 001564 1103 TAD XNC+1
1046 001565 3105 DCA TXSM+1
1047 001566 7004 RAL /PUT OVERFLOW IN BIT 11
1048 001567 1104 TAD TXSM /GET INTEGER PARTS
1049 001570 1102 TAD XNC
1050 001571 3104 DCA TXSM
1051 001572 5752 JMP I ADDMX
1052
1053
1054 001573 0000 HSR, 0
1055 001574 6011 RSF
1056 001575 5374 JMP .-1
1057 001576 6016 RRB RFC
1058 001577 5773 JMP I HSR
1059 *1600
1060 /ENTER WITH CONTROL VALUE IN AC:
1061 /NEG=SCOPE,0=INCREMENT, & POS=FIRST
1062 /POINT (FOR PLOTTING ONLY, NOT SCOPE)
1063 /OR MAKE A POINT PLOT.
1064
1065 001600 0000 PLTINC, 0
1066 001601 7500 SMA /IS AC NEG?
1067 001602 5205 JMP .+3 /NO
1068 001603 4435 CALL DISMOV /YES, USE FAST JUMP
1069 001604 5314 JMP PLEXT
1070 001605 7650 SNA CLA /WAS AC>0?
1071 001606 5215 JMP GSCAN /NO, USE INCREMENTER
1072 001607 4433 CALL PENUP /YES; GO TO COORD'S AND WAIT
1073 001610 4435 CALL DISMOV
1074 001611 4433 CALL PENUP
1075 001612 4433 CALL PENUP
1076 001613 4434 CALL PENDN /THEN PUT PEN DOWN
1077 001614 5314 JMP PLEXT
1078
1079 001615 1322 GSCAN, TAD OLDX /IS OLD X
1080 001616 7041 CIA
1081 001617 1101 TAD XDIS
1082 001620 3125 DCA PCTR /IS DELTA X
1083 001621 1323 TAD OLDY /IS OLD Y
1084 001622 7041 CIA
1085 001623 1100 TAD YDIS
1086 001624 3132 DCA TEMP1 /IS DELTA Y
1087 001625 1125 TAD PCTR
1088 001626 7510 SPA
1089 001627 7041 CIA
1090 001630 3130 DCA MCTR /IS ABS. VALUE OF DX
1091 001631 1132 TAD TEMP1
1092 001632 7510 SPA
1093 001633 7041 CIA /NOW HAVE ABS(DY)
1094 001634 1130 TAD MCTR /ADD ABS(DX)
1095 001635 3130 DCA MCTR /ABS(DX)+ABS(DY)=# OF MOVES=MCTR
1096 001636 1130 TAD MCTR
1097 001637 7450 SNA /IS MCTR>0?
1098 001640 5314 JMP PLEXT /NO, NO MOVES TO MAKE, EXIT.
1099 001641 7041 CIA
1100 001642 3127 DCA LNCTR
1101 001643 4407 ENTR
1102 001644 5130 FGET MCTR /# MOVES
1103 001645 0014 FLOT
1104 001646 6150 FPUT TEMFP
1105 001647 5322 FGET OLDX
1106 001650 0014 FLOT
1107 001651 6153 FPUT XMIN
1108 001652 5323 FGET OLDY
1109 001653 0014 FLOT
1110 001654 6156 FPUT YMIN
1111 001655 5125 FGET PCTR /DELTA X
1112 001656 0014 FLOT
1113 001657 4150 FDIV TEMFP
1114 001660 6161 FPUT XSCLFC /X UNITS/MOVE
1115 001661 5132 FGET TEMP1 /DELTA Y
1116 001662 0014 FLOT
1117 001663 4150 FDIV TEMFP
1118 001664 6164 FPUT YSCLFC /Y UNITS/MOVE
1119 001665 0000 FEXT
1120 001666 2721 ISZ I CSET /USE FAST CLOCK CYCLE
1121 001667 4407 SCANIT, ENTR
1122 001670 5153 FGET XMIN
1123 001671 1161 FADD XSCLFC
1124 001672 6153 FPUT XMIN
1125 001673 1117 FADD HALF
1126 001674 0000 FEXT
1127 001675 4421 FIXT /TRUNCATE XPOS TO NEAREST INTEGER
1128 001676 3101 DCA XDIS
1129 001677 4407 ENTR
1130 001700 5156 FGET YMIN
1131 001701 1164 FADD YSCLFC
1132 001702 6156 FPUT YMIN
1133 001703 1117 FADD HALF
1134 001704 0000 FEXT
1135 001705 4421 FIXT /DO SAME FOR Y.
1136 001706 3100 DCA YDIS
1137 001707 4435 CALL DISMOV /MOVE PEN TO NEW COORD'S
1138 001710 4423 CALL HOLD /WAIT FOR FAST CLOCK CYCLE
1139 001711 2127 ISZ LNCTR /MORE MOVES?
1140 001712 5267 JMP SCANIT /YES.
1141 001713 3721 DCA I CSET /RESTORE FOR SLOW CLOCK
1142 001714 1101 PLEXT, TAD XDIS
1143 001715 3322 DCA OLDX
1144 001716 1100 TAD YDIS
1145 001717 3323 DCA OLDY
1146 001720 5600 JMP I PLTINC
1147 001721 1121 CSET, SET
1148 001722 0000 OLDX, 0
1149 001723 0000 OLDY, 0
1150
1151 /ENTER HEDER1 WITH MESSAGE ADDRESS IN
1152 /LOCATION FOLLOWING THE JMS (HEDER1).
1153 /ENTER HEDER2 TO CONTINUE ON WITH A
1154 /BROKEN STRING (E.G., SEE 'HD1' BELOW)
1155 /AND DO NOT SUPPLY ADDRESS AFTER THE JMS.
1156 001724 0000 HEDER1, 0 /THESE SUBR'S OUTPUT PACKED ASCII
1157 001725 7301 CLA CLL IAC /AS GENERATED BY MACRO-8 ASSEMBLER.
1158 001726 1324 TAD HEDER1 /A SINGLE CODE,UP ARROW,=CR+LF
1159 001727 3334 DCA HEDER2 /ALWAYS RETURN THRU HEDER2
1160 001730 7240 STA
1161 001731 1724 TAD I HEDER1 /GET MESSAGE ADDRESS-1
1162 001732 3324 DCA HEDER1 /USE HEDER1 AS TEMP REG
1163 001733 7410 SKP
1164 001734 0000 HEDER2, 0 /ENTER HERE IF NO ADDRESS GIVEN
1165 001735 4427 CRLFD /BEGIN ALL MESSAGES WITH THIS
1166 001736 2324 NPR, ISZ HEDER1
1167 001737 1724 TAD I HEDER1
1168 001740 7012 RTR
1169 001741 7012 RTR
1170 001742 7012 RTR /SWAP HALVES
1171 001743 4347 JMS TYPCH /SET UP & TYPE ORIGINAL LEFT HALF
1172 001744 1724 TAD I HEDER1
1173 001745 4347 JMS TYPCH / " RIGHT HALF
1174 001746 5336 JMP NPR
1175
1176 001747 0000 TYPCH, 0
1177 001750 0123 AND RM77 /DELETE CURRENT LEFT HALF
1178 001751 7450 SNA /ZERO IN EITHER HALF SIGNIFIES
1179 001752 5734 JMP I HEDER2 /END OF STRING; RETURN
1180 001753 1370 TAD M36
1181 001754 7510 SPA /CODE 300 SERIES?
1182 001755 5363 JMP PRTT /YES
1183 001756 7440 SZA /SPECIAL CODE?
1184 001757 5362 JMP .+3
1185 001760 4427 CRLFD /YES, CODE 36: CARR.RET.+LN.FEED
1186 001761 5747 JMP I TYPCH
1187 001762 1367 TAD P236
1188 001763 1366 PRTT, TAD P336
1189 001764 4426 CALL OUT
1190 001765 5747 JMP I TYPCH
1191 001766 0336 P336, 336
1192 001767 7700 P236, 236-336
1193 001770 7742 M36, -36
1194
1195 *2000
1196 002000 6036 SERVIS, KRB /DISPLAY INTERRUPT SERVICE ROUTINE
1197 002001 6046 TLS /PRINT LAST CHAR.
1198 002002 6041 TSF
1199 002003 5202 JMP .-1
1200 002004 3131 DCA TEMP
1201 002005 1131 TAD TEMP
1202 002006 1377 TAD (-203 /TEST FOR ^C
1203 002007 7650 SNA CLA
1204 002010 5677 JMP I PS8XJ
1205 002011 1131 TAD TEMP
1206 002012 1271 TAD M300
1207 002013 7550 SPA SNA /WAS IT A LETTER?
1208 002014 5256 JMP NMCHK /NO, MAY BE NEW BLOCK #
1209 002015 7106 CLL RTL
1210 002016 7006 RTL
1211 002017 7006 RTL
1212 002020 3131 DCA TEMP
1213 002021 4424 RDTTY /GET NEXT CHAR
1214 002022 1271 TAD M300
1215 002023 7550 SPA SNA /LETTER?
1216 002024 5240 JMP INVAL /NO, ERROR
1217 002025 1131 TAD TEMP
1218 002026 3131 DCA TEMP /KEEP 6-BIT PR AS 2'S COMP.
1219 002027 1276 TAD CHTAB /SET UP SEARCH TABLE
1220 002030 3013 DCA AUTO
1221 002031 4424 MRRED, RDTTY /GET MORE INPUT
1222 002032 1273 TAD M272
1223 002033 7450 SNA /WAS IT A COLON?
1224 002034 5245 JMP CHLOP+1 /YES, LOOKUP JUMP ADDR.
1225 002035 1274 TAD RUBIT
1226 002036 7640 SZA CLA /RUBOUT?
1227 002037 5231 JMP MRRED /NO, GET MORE
1228 002040 7200 INVAL, CLA
1229 002041 1270 TAD ERRQ /OUTPUT '?'
1230 002042 4426 CALL OUT
1231 002043 5466 DISPLAY /AND EXIT TO DISPLAY
1232 002044 2013 CHLOP, ISZ AUTO
1233 002045 1413 TAD I AUTO /GET 6 BIT PAIR
1234 002046 7450 SNA /END OF TABLE?
1235 002047 5240 JMP INVAL /YES, INVALID COMMAND
1236 002050 1131 TAD TEMP
1237 002051 7640 SZA CLA /GET A MATCH?
1238 002052 5244 JMP CHLOP /NO, TRY NEXT ENTRY
1239 002053 1413 TAD I AUTO /YES, GET TABLE POINTER
1240 002054 3131 DCA TEMP
1241 002055 5531 JMP I TEMP /AND GO THERE
1242
1243 /SET UP BLOCK PARAMETER. 0=BUFFER 1, 1=BUFFER 2
1244 002056 1272 NMCHK, TAD M261 /AND 2= BOTH BUFFERS W/OFFSETS FOR 2
1245 002057 7510 SPA /<261?
1246 002060 5240 JMP INVAL /YES
1247 002061 3140 DCA BLOCK /KEEP IT TEMPORARILY
1248 002062 7346 SETM3
1249 002063 1140 TAD BLOCK
1250 002064 7710 SPA CLA />2?
1251 002065 5675 JMP I CDISPL /NO, EXIT TO DISPLAY W/O CR-LF
1252 002066 3140 DCA BLOCK /YES, CLR BLOCK
1253 002067 5240 JMP INVAL /PRINT '?'
1254 002070 0277 ERRQ, 277
1255 002071 7500 M300, -300
1256 002072 0017 M261, 300-261
1257 002073 7506 M272, -272
1258 002074 7673 RUBIT, 272-377
1259 002075 0227 CDISPL, SCPINT-1
1260 002076 2077 CHTAB, DCTAB-1
1261 002077 3745 PS8XJ, PS8X
1262
1263
1264 002100 5454 DCTAB, -2324 /ST-RIP
1265 002101 3256 STRIPR
1266 002102 5463 -2315 /SM-OOTH
1267 002103 3025 SMOT11
1268 002104 6662 -1116 /IN-TEGRATE
1269 002105 3400 INTEG
1270 002106 6277 -1501 /MA-SS STORAGE
1271 002107 2223 MASS
1272 002110 5453 -2325 /SU-BTRACT CDA FROM OTHER
1273 002111 2213 SUBTRT
1274 002112 6053 -1725 /OU-TPUT
1275 002113 1400 FPOUT
1276 002114 5764 -2014 /PL-OT
1277 002115 1000 CALBRT
1278 002116 5475 -2303 /SC-ALE
1279 002117 1500 SCALY
1280 002120 5451 -2327 /SW-AP
1281 002121 3000 SWAPBL
1282 002122 5573 -2205 /RE-START
1283 002123 0203 START
1284 002124 5777 -2001 /PA-PER TAPE INPUT
1285 002125 1245 ISDIG
1286 002126 7652 -0126 /AV-ERAGER INPUT
1287 002127 4000 ANINPT
1288 002130 5367 -2411 /TI-ME CALIBRATION
1289 002131 4153 CALSET
1290 002132 5457 -2321 /SQ-UEEZE DATA DENSITY
1291 002133 3716 SQEEZE
1292 002134 7674 -0104 /AD-D OTHER TO CDA
1293 002135 3132 ADDTWO
1294 002136 7373 -0405 /DE-RIVATIVE FORMATION
1295 002137 3632 DERIV
1296 002140 4767 -3011 /XI-NVERT
1297 002141 4520 XFLIP
1298 002142 4667 -3111 /YI-NVERT
1299 002143 1365 YFLIP
1300 002144 7461 -0317 /CO-PY CDA INTO OTHER
1301 002145 2204 COPY
1302 002146 7453 -0325 /CU-RSORS
1303 002147 3142 CURSR
1304 002150 6367 -1411 /LI-ST CURSORS
1305 002151 4134 CURLS
1306 002152 6253 -1525 /MU-LTIPLY (SCALE) CDA
1307 002153 4544 MULP
1308 002154 5773 -2005 /PE-AK REPORT ON CDA
1309 002155 4334 REPRT
1310 002156 6261 MZAP, -1517 /MO-DIFIER ROUTINE
1311 002157 0400 STRTIT
1312 002160 0000 0 /END TABLE
1313
1314
1315 002177 7575 *2200
1316
1317 002200 0000 INTFLT, 0 /INTERPERTIVE ENTRY TO FLOAT SUB.
1318 002201 1044 TAD EW
1319 002202 4420 FLOAT
1320 002203 5600 JMP I INTFLT
1321
1322 002204 4612 COPY, CALL SPCIN /COPY DISP. CHAN INTO OTHER
1323 002205 1411 TAD I YIND
1324 002206 3413 DCA I AUTO
1325 002207 2126 ISZ CNTR
1326 002210 5205 JMP .-3
1327 002211 5466 DISPLAY
1328 002212 3014 SPCIN, SPINIT
1329
1330 002213 4612 SUBTRT, CALL SPCIN /SUBTRACT CDA FROM OTHER BUFFER
1331 002214 1411 TAD I YIND /GET CDA
1332 002215 7041 CIA
1333 002216 1413 TAD I AUTO /SUBTRACT FROM OTHER
1334 002217 3412 DCA I ZIND /RESTORE IN CDA
1335 002220 2126 ISZ CNTR /MORE POINTS?
1336 002221 5214 JMP SUBTRT+1 /YES
1337 002222 5466 DISPLAY /EXIT TO DISPLAY
1338 002223 4336 MASS, JMS M76TF1 /MOVE 7600 OF PS8 TO FIELD 1
1339 002224 6201 CDF 0
1340 002225 3777 DCA I (7746 /0 JOB CONTROL WORD.
1341 002226 6212 CIF 10
1342 002227 4776 JMS I (7700 /CALL COMMAND DECODER.
1343 002230 0005 5
1344 002231 0000 0
1345 002232 0000 0
1346
1347 002233 6211 CDF 10
1348 002234 1775 TAD I (7620 /GET INPUT BLOCK #.
1349 002235 3264 DCA MASSA3
1350 002236 1774 TAD I (7617 /TEST IF INPUT.
1351 002237 7650 SNA CLA
1352 002240 5773 JMP MASS1 /NO
1353 002241 6201 CDF 0 /YES
1354 002242 4336 JMS M76TF1 /MOVE 7600 0F PS8 TO FIELD 0.
1355 002243 4772 JMS DATYP /ASK NUMBER OF POINTS.
1356 002244 4431 HEDIT2 /# OF POINTS TO SKIP.
1357 002245 4422 GETNO
1358 002246 4421 FIXT
1359 002247 3125 DCA PCTR
1360
1361 002250 3263 DCA MASSA2
1362 002251 1140 TAD BLOCK /SET LOCATION TO READ INTO.
1363 002252 7640 SZA CLA
1364 002253 1077 TAD OFFSET
1365 002254 1076 TAD YONE
1366 002255 7001 IAC
1367 002256 3263 DCA MASSA2
1368 002257 1070 TAD NPTS /NUMBER OF POINTS TO READ.
1369 002260 3131 DCA TEMP
1370
1371 002261 4771 MASS3, JMS I (7607 /CALL SYSTEM DEVICE HANDLER.
1372 002262 0210 MASSA1, 0210 /READ 2 RECORDS INTO FIELD 0.
1373 002263 0000 MASSA2, 0 /BUFFER ADD.
1374 002264 0000 MASSA3, 0 /BLOCK ADD.
1375 002265 5770 JMP ERRX
1376 002266 1125 TAD PCTR /TEST TO SKIP DATA.
1377 002267 7450 SNA
1378 002270 5322 JMP MASS4
1379 002271 1367 TAD (-400 /TEST FOR MORE THAN A BLOCK
1380 002272 7510 SPA /TO SKIP.
1381 002273 5277 JMP MASS2 /NO, SHIFT WORDS.
1382 002274 3125 MASS6, DCA PCTR /YES
1383 002275 2264 ISZ MASSA3 /READ NEXT BLOCK.
1384 002276 5261 JMP MASS3
1385
1386 002277 3133 MASS2, DCA TEM2 /NUMBER OF WORDS TO MOVE.
1387 002300 7040 CMA
1388 002301 1263 TAD MASSA2
1389 002302 3013 DCA AUTO /ADD. TO MOVE TO.
1390 002303 1013 TAD AUTO
1391 002304 1125 TAD PCTR
1392 002305 3014 DCA AUTO2 /ADD. TO MOVE FROM.
1393 002306 1133 TAD TEM2 /DEPLETE # OF PTS. TO READ.
1394 002307 1131 TAD TEMP
1395 002310 3131 DCA TEMP
1396
1397 002311 6211 CDF 10
1398 002312 1414 MASS5, TAD I AUTO2 /SKIP POINTS.
1399 002313 3413 DCA I AUTO
1400 002314 2263 ISZ MASSA2 /BUMP ADDRESS TO STORE NEXT BLOCK.
1401 002315 2133 ISZ TEM2
1402 002316 5312 JMP MASS5
1403 002317 6201 CDF 0
1404 002320 3125 DCA PCTR /0 SKIP COUNT.
1405 002321 5326 JMP MASS20 /TEST IF DONE.
1406 002322 1263 MASS4, TAD MASSA2 /SET TO NEW BUF.START.
1407 002323 1366 TAD (400
1408 002324 3263 DCA MASSA2
1409 002325 1367 TAD (-400 /DEPLETE # OF PTS. TO READ.
1410 002326 1131 MASS20, TAD TEMP
1411 002327 7550 SPA SNA /TEST IF DONE.
1412 002330 5334 JMP MASS7
1413 002331 3131 DCA TEMP /NO,READ NEXT BLOCK.
1414 002332 2264 ISZ MASSA3
1415 002333 5261 JMP MASS3
1416 002334 7200 MASS7, CLA
1417 002335 5466 DISPLAY
1418 002336 0000 M76TF1, 0 /MOVE 7600 OF PS8 TO FIELD 1.
1419 002337 7200 CLA
1420 002340 1354 TAD M76LOK
1421 002341 7040 CMA
1422 002342 3354 DCA M76LOK
1423 002343 1365 TAD (7600
1424 002344 3132 DCA TEMP1
1425 002345 1364 TAD (PS7600
1426 002346 3133 DCA TEM2
1427 002347 1365 TAD (-200
1428 002350 3131 DCA TEMP
1429 002351 6201 M76T1, CDF 0
1430 002352 5763 JMP 2400
1431 002353 5736 M76T2, JMP I M76TF1
1432 002354 0000 M76LOK, 0
1433
1434 002363 2400 *2400
002364 2600
002365 7600
002366 0400
002367 7400
002370 2535
002371 7607
002372 1307
002373 2417
002374 7617
002375 7620
002376 7700
002377 7746
1435 002400 1533 TAD I TEM2
1436 002401 3013 DCA AUTO
1437 002402 6211 CDF 10
1438 002403 1532 TAD I TEMP1
1439 002404 6201 CDF 0
1440 002405 3533 DCA I TEM2
1441 002406 1013 TAD AUTO
1442 002407 6211 CDF 10
1443 002410 3532 DCA I TEMP1
1444 002411 2132 ISZ TEMP1
1445 002412 2133 ISZ TEM2
1446 002413 2131 ISZ TEMP
1447 002414 5777 JMP M76T1
1448 002415 6201 CDF 0
1449 002416 5776 JMP M76T2
1450 002417 1775 MASS1, TAD I (7600 /TEST FOR OUTPUT COMMAND.
1451 002420 6201 CDF 0
1452 002421 7650 SNA CLA
1453 002422 5335 JMP ERRX
1454 002423 6201 CDF 0
1455 002424 1375 TAD (7600 /OUTPUT DATA.
1456 002425 3013 DCA AUTO
1457 002426 1374 TAD (MSFN-1
1458 002427 3014 DCA AUTO2
1459 002430 1373 TAD (-4
1460 002431 3131 DCA TEMP
1461
1462 002432 1372 TAD (MSFN
1463 002433 3246 DCA MASSA4
1464 002434 6211 MASS8, CDF 10 /MOVE FILE NAME TO FIELD 0.
1465 002435 1413 TAD I AUTO
1466 002436 6201 CDF 0
1467 002437 3414 DCA I AUTO2
1468 002440 2131 ISZ TEMP
1469 002441 5234 JMP MASS8
1470 002442 1371 TAD (201 /MAX. SIZE OF FILE =8.
1471 002443 6212 CIF 10
1472 002444 4770 JMS I (7700 /CALL FILE CREATE.
1473 002445 0003 3
1474 002446 2531 MASSA4, MSFN /RETURN START BLOCK OF FILE.
1475 002447 0000 MASSA5, 0 /RETURN -LENGTH.
1476 002450 5335 JMP ERRX
1477
1478 002451 1140 TAD BLOCK /TEST FOR CHANNEL 2.
1479 002452 7640 SZA CLA
1480 002453 4767 JMS M76TF1 /MOVE 7600 OF PS8 TO FIELD 0.
1481 002454 1070 TAD NPTS /CAL. # OF 128 RECORDS TO WRITE.
1482 002455 0375 AND (7600
1483 002456 7110 CLL RAR
1484 002457 3300 DCA MASSA6
1485 002460 1070 TAD NPTS
1486 002461 0366 AND (177
1487 002462 7640 SZA CLA
1488 002463 1365 TAD (100
1489 002464 1300 TAD MASSA6 /SET UP ARG 1 OF WRITE.
1490 002465 1364 TAD (4010
1491
1492 002466 3300 DCA MASSA6
1493 002467 1140 TAD BLOCK /SET BUFFER START.
1494 002470 7640 SZA CLA
1495 002471 1077 TAD OFFSET
1496 002472 1076 TAD YONE
1497 002473 7001 IAC
1498 002474 3301 DCA MASSA7
1499 002475 1246 TAD MASSA4
1500 002476 3302 DCA MASSA8 /SET BLOCK ADD.
1501 002477 4763 JMS I (7607 /WRITE DATA TO SYSTEM DEVICE.
1502 002500 0000 MASSA6, 0
1503 002501 0000 MASSA7, 0
1504 002502 0000 MASSA8, 0
1505 002503 5335 JMP ERRX
1506
1507 002504 1140 TAD BLOCK /TEST TO 7600 TO FIELD 1.
1508 002505 7640 SZA CLA
1509 002506 4767 JMS M76TF1
1510
1511 002507 1300 TAD MASSA6 /FIND # OF 256 BLOCKS.
1512 002510 7112 CLL RTR
1513 002511 7012 RTR
1514 002512 7012 RTR
1515 002513 7010 RAR
1516 002514 0362 AND (17
1517 002515 7430 SZL
1518 002516 7001 IAC
1519 002517 3325 DCA MASSA9
1520 002520 6212 CIF 10
1521 002521 7001 IAC /CLOSE FILE ON SYS: DEVICE.
1522 002522 4770 JMS I (7700
1523 002523 0004 4
1524 002524 2531 MSFN /FILE NAME.
1525 002525 0000 MASSA9, 0 /#OF BLOCKS.
1526 002526 5335 JMP ERRX
1527 002527 4767 JMS M76TF1 /MOVE 7600 BACK TO FIELD 0.
1528 002530 5466 DISPLAY
1529
1530 002531 0000 MSFN, 0
1531 002532 0000 0
1532 002533 0000 0
1533 002534 0000 0
1534
1535 002535 1761 ERRX, TAD M76LOK /ERROR EXIT.
1536 002536 7640 SZA CLA
1537 002537 4767 JMS M76TF1
1538 002540 6212 CIF 10
1539 002541 4770 JMS I (7700
1540 002542 0007 7
1541 002543 0001 1
1542
1543 002544 0000 FLOATR, 0 /CONVERTS INTEGER IN AC TO F.P.#.
1544 002545 3045 DCA HW /AND LEAVES IT IN FAC.
1545 002546 1357 TAD P13
1546 002547 3044 DCA EW
1547 002550 3046 DCA LW
1548 002551 3041 DCA AC1 /CLEAR OVERFLOW WORD.
1549 002552 6201 CDF 0
1550 002553 4756 CALL FPNORM
1551 002554 7000 NOP /LEAVE ROOM FOR PAFFT AND DAFFT TO INSERT
1552 / A SWBA INSTRUCTION.
1553 002555 5744 JMP I FLOATR
1554 002556 7265 FPNORM, DNORM
1555 002557 0013 P13, 13
1556
1557 002561 2354 *2600
002562 0017
002563 7607
002564 4010
002565 0100
002566 0177
002567 2336
002570 7700
002571 0201
002572 2531
002573 7774
002574 2530
002575 7600
002576 2353
002577 2351
1558
1559 002600 0000 PS7600, 0 /PAGE FOR FIELD 1,7600.
1560 *3000
1561 003000 4214 SWAPBL, JMS SPINIT /SWAP THE TWO BUFFERS
1562 003001 1013 TAD AUTO
1563 003002 3010 DCA XIND
1564 003003 1410 SWLOOP, TAD I XIND
1565 003004 3131 DCA TEMP
1566 003005 1412 TAD I ZIND
1567 003006 3413 DCA I AUTO
1568 003007 1131 TAD TEMP
1569 003010 3411 DCA I YIND
1570 003011 2126 ISZ CNTR /MORE POINTS?
1571 003012 5203 JMP SWLOOP /YES
1572 003013 5466 DISPLAY /NO, EXIT
1573
1574 003014 0000 SPINIT, 0 /SPECIAL INIT. ROUTINE
1575 003015 4425 INITAR /CALL NORMAL INIT THEN SET
1576 003016 1140 TAD BLOCK /AUTO FOR OTHER ARRAY
1577 003017 7650 SNA CLA
1578 003020 1077 TAD OFFSET
1579 003021 1076 TAD YONE
1580 003022 3013 DCA AUTO
1581 003023 6211 CDF 10 /AND EXIT WITH DF=1
1582 003024 5614 JMP I SPINIT
1583
1584 /11 POINT MODIFIED PARABOLIC FILTER
1585 003025 4425 SMOT11, INITAR
1586 003026 1011 TAD YIND /YIND IS INDEX FOR Y(I-X)
1587 003027 1303 TAD PL13 /INDEX FOR Y(I+X)
1588 003030 3133 DCA TEM2
1589 003031 7040 CMA
1590 003032 1126 TAD CNTR
1591 003033 1303 TAD PL13
1592 003034 3126 DCA CNTR /CNTR=-NPTS+11
1593 003035 1306 NEWY, TAD MIN6
1594 003036 3131 DCA TEMP /SET COEF LOOP COUNTER
1595 003037 1307 TAD COTAG
1596 003040 3132 DCA TEMP1 /INDEX FOR COEF'S
1597 003041 3156 DCA YMIN
1598 003042 3157 DCA YMIN+1
1599 003043 3160 DCA YMIN+2
1600 003044 6211 LOOP9, CDF 10 /LOOP OVER 6 COEF'S
1601 003045 1411 TAD I YIND
1602 003046 1533 TAD I TEM2
1603 003047 4420 FLOAT /GET Y(I-X)+Y(I+X)
1604 003050 4407 ENTR
1605 003051 3532 FMPY I TEMP1
1606 003052 1156 FADD YMIN /FORM WEIGHTED SUM
1607 003053 6156 FPUT YMIN
1608 003054 1117 FADD HALF /FOR ROUND OFF AFTER LAST MULT.
1609 003055 0000 FEXT
1610 003056 7325 SET3 /INCR. COEF. INDEX BY 3
1611 003057 1132 TAD TEMP1
1612 003060 3132 DCA TEMP1
1613 003061 7040 CMA /DECR (I+X)
1614 003062 1133 TAD TEM2
1615 003063 3133 DCA TEM2
1616 003064 2131 ISZ TEMP /ANOTHER COEFF?
1617 003065 5244 JMP LOOP9 /YES
1618 003066 4421 FIXT /NO, FIX RESULT
1619 003067 6211 CDF 10
1620 003070 2133 ISZ TEM2
1621 003071 3533 DCA I TEM2 /STORE AS Y(I)
1622 003072 1011 TAD YIND /RESET (I-X)
1623 003073 1305 TAD MNN5
1624 003074 3011 DCA YIND
1625 003075 1133 TAD TEM2 /RESET (I+X)
1626 003076 1304 TAD P6
1627 003077 3133 DCA TEM2
1628 003100 2126 ISZ CNTR /MORE PTS?
1629 003101 5235 JMP NEWY /YES
1630 003102 5466 DISPLAY
1631 003103 0013 PL13, 13
1632 003104 0006 P6, 6
1633 003105 7773 MNN5, -5
1634 003106 7772 MIN6, -6
1635 003107 3110 COTAG, .+1
1636 003110 7773 7773;4121;7270;7773;2540;2031;7774;3077;0501
003111 4121
003112 7270
003113 7773
003114 2540
003115 2031
003116 7774
003117 3077
003120 0501
1637 003121 7776 7776;2445;2141;7776;3102;2657;7775;3244;5214
003122 2445
003123 2141
003124 7776
003125 3102
003126 2657
003127 7775
003130 3244
003131 5214
1638
1639 003132 4214 ADDTWO, JMS SPINIT /ADD DISP. CHAN TO OTHER
1640 003133 1411 TAD I YIND
1641 003134 1413 TAD I AUTO
1642 003135 7111 CLL IAC RAR
1643 003136 3412 DCA I ZIND /RESULTS IN DISP. CHAN.
1644 003137 2126 ISZ CNTR
1645 003140 5333 JMP ADDTWO+1
1646 003141 5466 DISPLAY
1647
1648 003142 1137 CURSR, TAD MODE
1649 003143 7700 SMA CLA /CURSORS ON SCOPE?
1650 003144 7240 STA /NO, PUT THEM UP
1651 003145 3137 DCA MODE
1652 003146 5466 DISPLAY
1653
1654 /GENERAL PURPOSE CLOCK DELAY SUBR.
1655 /AC=CLOCK COUNT, PC+1=CONTROL REGR. SETTING+1
1656 /DISPLAY OF XDIS, YDIS IS REFRESHED WHILE WAITING.
1657 003147 0000 SETCLK, 0
1658 003150 6133 CLAB /SET COUNT BFR FROM AC
1659 003151 7240 STA /CLR CONTROL REG
1660 003152 6130 CLZE
1661 003153 6135 CLSA /AND FLAGS
1662 003154 1747 TAD I SETCLK /LOAD CONTROL REG, START CLOCK
1663 003155 6132 CLDE
1664 003156 6131 CLSK /OVERFLO?
1665 003157 7410 SKP /NO, WAIT FOR IT
1666 003160 5363 JMP .+3 /YES, EXIT AFTER CLEARING CLOCK REG'S
1667 003161 4435 CALL DISMOV /REFRESH DISPLAY
1668 003162 5356 JMP .-4
1669 003163 7240 STA
1670 003164 6130 CLZE /CLR REG TO STOP CLOCK
1671 003165 7300 CLA CLL
1672 003166 6007 CAF /CLR FLAGS!
1673 003167 2347 ISZ SETCLK
1674 003170 5747 JMP I SETCLK
1675
1676 /OUTPUT FAC THEN PRINT A COMMA
1677 003171 0000 FLTCM, 0
1678 003172 4406 FLOUT /AC=NO. OF DECIMAL PLACES
1679 003173 1376 TAD KOMA
1680 003174 4426 CALL OUT
1681 003175 5771 JMP I FLTCM
1682 003176 0254 KOMA, 254
1683
1684 *3200
1685 /CALLED TO COMPUTE SLOPE AND RELEVANT CORE ADDRESSES
1686 /FROM CURSOR COORDINATES STORED IN TABLE AT TPNT TO TPNT+3
1687 /ON EXIT, TPNT+3=DELTA Y, TPNT+2=DELTA X, YMIN=TPNT+1(Y LEFT),
1688 /XMIN=PT SPAN OF CURSORS, CNTR=-XMIN, YSCLFC=SLOPE(Y UNITS/PT),
1689 /YIND & ZIND=ADDR. CORRESPONDING TO LEFT X, AND FAC=FIXED
1690 /VALUE OF NO. PTS TO LEFT X COORDINATE.
1691 003200 0000 SETSTR, 0
1692 003201 4425 INITAR
1693 003202 1310 TAD TPNT+1 /GET LEFT Y
1694 003203 7041 CIA
1695 003204 1312 TAD TPNT+3 /RIGHT Y
1696 003205 3312 DCA TPNT+3 /KEEP DELTA Y
1697 003206 1307 TAD TPNT /GET LEFT X
1698 003207 7041 CIA
1699 003210 1311 TAD TPNT+2 /RIGHT X
1700 003211 3311 DCA TPNT+2 /KEEP DELTA X
1701 003212 4465 CALL XSET /GET X INCREMENT
1702 003213 4407 ENTR
1703 003214 5310 FGET TPNT+1 /GET LEFT Y
1704 003215 0014 FLOT
1705 003216 6156 FPUT YMIN
1706 003217 5311 FGET TPNT+2 /GET DELTA X
1707 003220 0014 FLOT
1708 003221 4161 FDIV XSCLFC /SCALE IT
1709 003222 6153 FPUT XMIN /IS # OF PTS
1710 003223 1117 FADD HALF
1711 003224 0000 FEXT
1712 003225 4421 FIXT
1713 003226 7550 SPA SNA /INSURE CNTR<0!
1714 003227 5253 JMP ERRD
1715 003230 7041 CIA
1716 003231 3126 DCA CNTR /IS # PTS IN RANGE
1717 003232 4407 ENTR
1718 003233 5312 FGET TPNT+3 /GET DELTA Y
1719 003234 0014 FLOT
1720 003235 4153 FDIV XMIN
1721 003236 6164 FPUT YSCLFC /=Y DIS UNITS /PT
1722 003237 5307 FGET TPNT /LEFT X
1723 003240 0014 FLOT
1724 003241 4161 FDIV XSCLFC
1725 003242 1117 FADD HALF
1726 003243 0000 FEXT /FAC=#PTS TO LEFT X
1727 003244 4421 FIXT
1728 003245 1011 TAD YIND
1729 003246 3011 DCA YIND /SETS INDEX
1730 003247 1011 TAD YIND
1731 003250 3012 DCA ZIND
1732 003251 3137 DCA MODE
1733 003252 5600 JMP I SETSTR
1734
1735 003253 4430 ERRD, HEDIT1 /BAD X PTS!
1736 003254 5301 HD26
1737 003255 5466 DISPLAY
1738
1739 003256 4200 STRIPR, JMS SETSTR
1740 003257 4430 HEDIT1 /STRIP PEAK?
1741 003260 5265 HD25
1742 003261 4432 ASK
1743 003262 7640 SZA CLA
1744 003263 5271 JMP STRBS
1745 003264 4313 STRPK, JMS YSTEP /GET NEW Y
1746 003265 3411 DCA I YIND
1747 003266 2126 ISZ CNTR
1748 003267 5264 JMP STRPK
1749 003270 5466 DISPLAY
1750 003271 4431 STRBS, HEDIT2 /FULL BASE STRIP?
1751 003272 4432 ASK
1752 003273 7640 SZA CLA
1753 003274 5277 JMP .+3 /NO
1754 003275 4425 INITAR
1755 003276 4706 CALL EXTRP
1756 003277 4313 REMOV, JMS YSTEP
1757 003300 7041 CIA
1758 003301 1411 TAD I YIND /SUB. FROM Y
1759 003302 3412 DCA I ZIND
1760 003303 2126 ISZ CNTR
1761 003304 5277 JMP REMOV
1762 003305 5466 DISPLAY
1763 003306 3360 EXTRP, EXTRAP
1764
1765 003307 0000 TPNT, 0 /TABLE OF LAST ADC COORD'S
1766 003310 0000 0
1767 003311 0000 0
1768 003312 0000 0
1769
1770 003313 0000 YSTEP, 0 /COMPUTE Y VALUE ON LINE BETWEEN CURSORS
1771 003314 6201 CDF 0
1772 003315 4407 ENTR
1773 003316 5156 FGET YMIN /GET CURRENT Y VALUE ON LINE
1774 003317 1164 FADD YSCLFC /ADD INCR./PT
1775 003320 6156 FPUT YMIN /KEEP IT
1776 003321 1117 FADD HALF
1777 003322 0000 FEXT
1778 003323 4421 FIXT /LEAVE INTEGER IN AC
1779 003324 6211 CDF 10 /EXIT WITH DF=1
1780 003325 5713 JMP I YSTEP
1781
1782 /SUBR. PERFORMS ADC'S AND SETS DAC'S FOR CURSORS.
1783 /COORDINATES STORED IN TPNT-TPNT+3 W/ VALUES=ADC-AYL.
1784 003326 0000 DISPTS, 0
1785 003327 7344 SETM2
1786 003330 3134 DCA TEM3
1787 003331 1357 TAD DPTR /SET UP STORAGE TABLE
1788 003332 3013 DCA AUTO
1789 003333 3133 DCA TEM2 /SET 0 AS FIRST CHANNEL
1790 003334 1133 NXPT, TAD TEM2
1791 003335 4437 CALL ADCON /MAKE ADC ON CHAN'S 0 THEN 2
1792 003336 3101 DCA XDIS
1793 003337 1101 TAD XDIS
1794 003340 4777 JMS CRSAM
1795 003341 1133 TAD TEM2
1796 003342 4437 CALL ADCON /ADC ON CHAN'S 1 THEN 3
1797 003343 3100 DCA YDIS
1798 003344 1100 TAD YDIS
1799 003345 4777 JMS CRSAM
1800 003346 1356 TAD DCT /SET DELAY COUNTER
1801 003347 3130 DCA MCTR
1802 003350 4435 CALL DISMOV /REFRESH DISPLAY
1803 003351 2130 ISZ MCTR
1804 003352 5350 JMP .-2
1805 003353 2134 ISZ TEM3 /NEED 2ND PT THIS TIME?
1806 003354 5334 JMP NXPT /YES
1807 003355 5726 JMP I DISPTS /GOT IT; EXIT
1808 003356 7700 DCT, -100
1809 003357 3306 DPTR, TPNT-1 /STORAGE ADDR.
1810
1811
1812 003360 0000 EXTRAP, 0 /EXTRAPOLATE Y VALUE TO LEFT EXTREME
1813 003361 4407 ENTR
1814 003362 5045 FGET HW /IS INTEGER NO. OF PTS TO LEFT X
1815 003363 0014 FLOT
1816 003364 3164 FMPY YSCLFC /MULT. BY SLOPE (DELTA Y/PT)
1817 003365 0010 NEGATE
1818 003366 1156 FADD YMIN /SUBTRACT FROM LEFT Y
1819 003367 6156 FPUT YMIN /KEEP EXTRAP'D VALUE HERE
1820 003370 0000 FEXT
1821 003371 4421 FIXT
1822 003372 3135 DCA MIN /AND HERE AS INTEGER
1823 003373 5760 JMP I EXTRAP
1824 003377 3600 *3400
1825 003400 4325 INTEG, JMS RDY
1826 003401 4710 CALL CURSET
1827 003402 7240 STA
1828 003403 1161 TAD XSCLFC
1829 003404 3161 DCA XSCLFC
1830 003405 4430 HEDIT1 /SCAN INT'L?
1831 003406 5254 HD15
1832 003407 4432 ASK
1833 003410 7640 SZA CLA
1834 003411 5312 JMP PTINT /NO, BETWEEN CURSORS
1835 003412 4711 CALL SETLY /YES, GET EXTRAP'D LEFT Y
1836 003413 4407 ENTR
1837 003414 5201 FGET INTEG+1 /GET A LARGE NEG # TO START
1838 003415 6142 FPUT FTEM1
1839 003416 5271 FGET CMPINT+3 /GET LRG POS. #
1840 003417 6145 FPUT FTEM2
1841 003420 0000 FEXT
1842 003421 4325 JMS RDY /PREPARE TO SCAN DATA
1843
1844 /THIS LOOP COMPUTES TOTAL INTEGRAL (SUM)
1845 /TO FIND A SCALE DOWN FACTOR.
1846 003422 4350 FNTOT, JMS SCASM /STRIP BASELINE AND ADD ADJ. Y'S
1847 003423 1045 TAD HW
1848 003424 7700 SMA CLA /IS CURRENT SUMCURRENT MAX?
1860 003440 5245 JMP PT2 /NO
1861 003441 4407 ENTR
1862 003442 5150 FGET TEMFP
1863 003443 6142 FPUT FTEM1
1864 003444 0000 FEXT
1865 003445 2126 PT2, ISZ CNTR /MORE POINTS?
1866 003446 5222 JMP FNTOT /YES
1867 003447 4407 ENTR
1868 003450 5142 FGET FTEM1 /FIND INTEGRAL RANGE.
1869 003451 2145 FSUB FTEM2
1870 003452 6142 FPUT FTEM1
1871 003453 5075 FGET YRNG /COMPUTE SCALE-DOWN FACTOR
1872 003454 0014 FLOT
1873 003455 4142 FDIV FTEM1
1874 003456 6142 FPUT FTEM1
1875 003457 3145 FMPY FTEM2 /SCALE MIN VALUE
1876 003460 6145 FPUT FTEM2
1877 003461 5142 FGET FTEM1
1878 003462 3161 FMPY XSCLFC /GET NEW MULT'R INCLUDING SCL-DN
1879 003463 6161 FPUT XSCLFC
1880 003464 0000 FEXT
1881 003465 4325 JMS RDY
1882
1883 /THIS LOOP COMPUTES AND STORES
1884 /SCALED DOWN INTEGRAL VALUE AT EACH POINT,
1885 003466 4350 CMPINT, JMS SCASM /GET INTEGRAL-BASELINE
1886 003467 4421 FIXT
1887 003470 6211 CDF 10
1888 003471 3412 DCA I ZIND
1889 003472 2126 ISZ CNTR /MORE POINTS?
1890 003473 5266 JMP CMPINT /YES
1891 003474 1045 TAD HW /PUT N-1 VALUE INTO NTH
1892 003475 3412 DCA I ZIND
1893 003476 6201 CDF 0
1894 003477 4430 HEDIT1 /Y MULT'D BY'
1895 003500 5214 HD5+6
1896 003501 3056 DCA EFLG
1897 003502 4407 ENTR
1898 003503 5161 FGET XSCLFC
1899 003504 4117 FDIV HALF
1900 003505 0012 OUTPUT
1901 003506 0000 FEXT
1902 003507 5466 DISPLAY /RETURN TO DISPLAY
1903 003510 3200 CURSET, SETSTR
1904 003511 3360 SETLY, EXTRAP
1905
1906 003512 4350 PTINT, JMS SCASM /INTEGRATES BETWEEN CURSORS
1907 003513 2126 ISZ CNTR /AND PRINTS AREA; NO CHANGE
1908 003514 5312 JMP .-2 /IN DATA ARRAY
1909 003515 4431 HEDIT2 /AREA=
1910 003516 3056 DCA EFLG
1911 003517 4407 ENTR
1912 003520 5150 FGET TEMFP
1913 003521 0012 OUTPUT
1914 003522 0000 FEXT
1915 003523 5466 DISPLAY
1916 003524 3310 TPNT+1
1917
1918 003525 0000 RDY, 0
1919 003526 4425 INITAR
1920 003527 2126 ISZ CNTR
1921 003530 4420 FLOAT
1922 003531 4407 ENTR
1923 003532 6150 FPUT TEMFP /CLEAR TEMFP
1924 003533 5135 FGET MIN /SET LEFT Y
1925 003534 0014 FLOT
1926 003535 6156 FPUT YMIN
1927 003536 0000 FEXT
1928 003537 5725 JMP I RDY
1929
1930 003540 0000 CLRR, 0 /CLEAR Y ARRAY
1931 003541 4425 INITAR
1932 003542 6211 CDF 10
1933 003543 3411 DCA I YIND
1934 003544 2126 ISZ CNTR
1935 003545 5343 JMP .-2
1936 003546 6201 CDF 0
1937 003547 5740 JMP I CLRR
1938
1939 003550 0000 SCASM, 0
1940 003551 6211 CDF 10
1941 003552 1411 TAD I YIND
1942 003553 1411 TAD I YIND
1943 003554 4420 FLOAT
1944 003555 4407 ENTR
1945 003556 2156 FSUB YMIN /SUBTRACT PIVOT VALUE
1946 003557 6153 FPUT XMIN /KEEP THIS
1947 003560 5164 FGET YSCLFC /INCR. PIVOT VALUE
1948 003561 1156 FADD YMIN
1949 003562 6156 FPUT YMIN /KEEP FOR NEXT POINT
1950 003563 0010 NEGATE /SUBTRACT FROM PT SUM
1951 003564 1153 FADD XMIN /FAC=Y(I+1)+Y(I)-P(I+1)-P(I)
1952 003565 3161 FMPY XSCLFC /SCALE DOWN
1953 003566 1150 FADD TEMFP
1954 003567 6150 FPUT TEMFP
1955 003570 2145 FSUB FTEM2 /SUBTRACT MIN VALUE
1956 003571 0000 FEXT
1957 003572 7040 CMA /RESET Y POINTER
1958 003573 1011 TAD YIND
1959 003574 3011 DCA YIND
1960 003575 5750 JMP I SCASM
1961 *3600
1962 003600 0000 CRSAM, 0 /SUBR SETS UP CURSOR TABLE STORAGE.
1963 003601 1207 TAD MLIM /SUBTRACT LIM
1964 003602 7510 SPA /RESULT<0?
1965 003603 7200 CLA /YES, SET IT=0
1966 003604 3413 DCA I AUTO /KEEP RESULT
1967 003605 2133 ISZ TEM2 /INCR. CHAN
1968 003606 5600 JMP I CRSAM
1969 003607 0764 MLIM, -AYL /ASSUME YLIM=XLIM!
1970
1971 003610 0000 INITIZ, 0 /SETS UP A COUNTER=-NPTS, INITIALIZES
1972 003611 7300 CLA CLL /X,Y, & Z ARRAY STARTING LOC'NS.
1973 003612 1070 TAD NPTS
1974 003613 7041 CIA
1975 003614 3126 DCA CNTR
1976 003615 1140 TAD BLOCK
1977 003616 7640 SZA CLA /BUFFER 1?
1978 003617 1077 TAD OFFSET /NO, ADD ARRAY OFFSET
1979 003620 1076 TAD YONE
1980 003621 3011 DCA YIND
1981 003622 1070 TAD NPTS /X ARRAY BEGINS AFTER Y'S
1982 003623 1011 TAD YIND
1983 003624 3010 DCA XIND
1984 003625 1011 TAD YIND
1985 003626 3012 DCA ZIND /AUXILIARY AUTO REG. FOR Y ARRAY
1986 003627 3104 DCA TXSM /CLEAR X DISPLAY SUM
1987 003630 3105 DCA TXSM+1
1988 003631 5610 JMP I INITIZ
1989
1990 003632 4425 DERIV, INITAR /FORMS 5TH PT. DIFFERENCES
1991 003633 1314 TAD PLS5
1992 003634 1011 TAD YIND
1993 003635 3011 DCA YIND
1994 003636 1314 TAD PLS5
1995 003637 1126 TAD CNTR
1996 003640 3126 DCA CNTR
1997 003641 1012 TAD ZIND
1998 003642 3010 DCA XIND
1999 003643 6211 CDF 10
2000 003644 1412 DRLOP1, TAD I ZIND /PUT Y(I+5)-Y(I)+SHF INTO Y(I)
2001 003645 7041 CIA
2002 003646 1411 TAD I YIND
2003 003647 1315 TAD SHF /ADD OFFSET FOR CENTERED DISPLAY
2004 003650 3410 DCA I XIND
2005 003651 2126 ISZ CNTR
2006 003652 5244 JMP DRLOP1
2007 003653 1010 TAD XIND
2008 003654 3131 DCA TEMP
2009 003655 1531 TAD I TEMP /PUT Y(N-5) INTO Y(N-4) AND Y(N-3)
2010 003656 3410 DCA I XIND
2011 003657 1531 TAD I TEMP
2012 003660 3410 DCA I XIND
2013 003661 1010 TAD XIND /SET UP TO SHIFT ARRAY UP BY 3
2014 003662 3131 DCA TEMP /SUCH THAT FINAL ARRAY HAS VALUES
2015 003663 7125 STL IAC RAL /Y(I)=Y(I+2)-Y(I-2)+SHF
2016 003664 1131 TAD TEMP /WHERE Y(1)=Y(2)=Y(3) AND
2017 003665 3132 DCA TEMP1 /Y(N-2)=Y(N-1)=Y(N)
2018 003666 7346 CLL STA RTL
2019 003667 1070 TAD NPTS
2020 003670 7041 CIA
2021 003671 3126 DCA CNTR
2022 003672 1531 DRLOP2, TAD I TEMP /PUT Y(I) INTO Y(I+3)
2023 003673 3532 DCA I TEMP1
2024 003674 7240 STA
2025 003675 1131 TAD TEMP
2026 003676 3131 DCA TEMP
2027 003677 7240 STA
2028 003700 1132 TAD TEMP1
2029 003701 3132 DCA TEMP1
2030 003702 2126 ISZ CNTR
2031 003703 5272 JMP DRLOP2
2032 003704 2131 ISZ TEMP /PUT Y(1) INTO Y(2) & Y(3)
2033 003705 7000 NOP /PROTECT AGAINST SKIP!!
2034 003706 1531 TAD I TEMP
2035 003707 3532 DCA I TEMP1
2036 003710 1532 TAD I TEMP1
2037 003711 2131 ISZ TEMP
2038 003712 3531 DCA I TEMP
2039 003713 5466 DISPLAY
2040 003714 0005 PLS5, 5
2041 003715 0764 SHF, 764
2042 003716 1070 SQEEZE, TAD NPTS /COMPRESS ONE OR BOTH BUFFERS
2043 003717 7110 CLL RAR /BY AVERAGING ADJACENT PTS.
2044 003720 3070 DCA NPTS
2045 003721 7240 STA
2046 003722 1140 TAD BLOCK
2047 003723 7750 SPA SNA CLA /BLOCK=2 FOR DOUBLE SQUEEZE?
2048 003724 5327 JMP .+3 /NO
2049 003725 3140 DCA BLOCK /SQUEEZE BUFF. 1 FIRST
2050 003726 7240 STA
2051 003727 3131 DCA TEMP /=-1 FOR DOUBLE SQUEEZE, 0 FOR SINGLE
2052 003730 4425 INITAR
2053 003731 6211 CDF 10
2054 003732 1411 SQLP, TAD I YIND
2055 003733 1411 TAD I YIND
2056 003734 7111 CLL IAC RAR
2057 003735 3412 DCA I ZIND
2058 003736 2126 ISZ CNTR
2059 003737 5332 JMP SQLP
2060 003740 2131 ISZ TEMP /FINISHED?
2061 003741 5466 DISPLAY /YES OR IS SINGLE SQUEEZE
2062 003742 7001 IAC /NO, DO BUFF. 2
2063 003743 3140 DCA BLOCK
2064 003744 5330 JMP SQLP-2
2065
2066 *3745
2067
2068 003745 1777 PS8X, TAD M76LOK /TEST FOR PS8 PAGE 7600/1 IN FIELD 0.
2069 003746 7640 SZA CLA
2070 003747 4776 JMS M76TF1
2071 003750 6203 CDF CIF 0
2072 003751 6002 IOF
2073 003752 5753 JMP I .+1
2074 003753 7600 7600
2075 003776 2336 *4000
003777 2354
2076 /THIS IS THE AVERAGER INPUT ROUTINE
2077 004000 4430 ANINPT, HEDIT1 /CHANNEL=
2078 004001 5226 HD7
2079 004002 4422 GETNO
2080 004003 4421 FIXT
2081 004004 3113 DCA MCHAN
2082 004005 4430 AGO, HEDIT1 /NO. POINTS=
2083 004006 5153 HD2
2084 004007 4422 GETNO
2085 004010 4421 FIXT
2086 004011 3134 DCA TEM3
2087 004012 1134 TAD TEM3
2088 004013 7112 CLL RTR
2089 004014 3070 DCA NPTS /TEMP'LY SET TO # PTS/4
2090 004015 4465 CALL XSET /GET 4*X DISP. INCREMENT
2091 004016 1134 TAD TEM3
2092 004017 3070 DCA NPTS
2093 004020 4430 HEDIT1 /SEC/SCAN=
2094 004021 5233 HD8
2095 004022 4407 ENTR
2096 004023 5070 FGET NPTS
2097 004024 0014 FLOT
2098 004025 6153 FPUT XMIN
2099 004026 0011 READ
2100 004027 4153 FDIV XMIN
2101 004030 6153 FPUT XMIN /=TIME PER POINT (SEC)::=M*2**X
2102 004031 0000 FEXT
2103 004032 1332 TAD PK15 /MIN TIME ALLOWED=2**-13 SEC/PT
2104 004033 1044 TAD EW /OR 122 USEC
2105 004034 7550 SPA SNA /X<-12?
2106 004035 5205 JMP AGO /YES, TOO FAST! REENTER.
2107 004036 3044 DCA EW
2108 004037 7133 STL IAC RTR
2109 004040 3045 DCA HW /SET FAC=-0.5*2**(X+13)
2110 004041 4421 FIXT /IF X+13>11, TRUNCATES FAC TO -0.5*2**11
2111 004042 3114 DCA AVSUM
2112 004043 1114 TAD AVSUM
2113 004044 4420 FLOAT
2114 004045 7240 STA
2115 004046 1044 TAD EW
2116 004047 3115 DCA EXPFC /KEEP 2'S EXP FOR SCALING LATER
2117
2118
2119 004050 4407 ENTR /COMPUTE DEAD TIME LOOP COUNTER, CLTM
2120 004051 6156 FPUT YMIN /-# SAMPLES PER PT
2121 004052 5115 FGET EXPFC
2122 004053 0014 FLOT
2123 004054 3375 FMPY SCNCY /# CYCLE PERLOOP IN SHRGT
2124 004055 1372 FADD NCY /OTHER OVERHEAD
2125 004056 6145 FPUT FTEM2
2126 004057 5153 FGET XMIN /# SECS PER PT
2127 004060 4364 FDIV CYCTM /FAC=TOTAL # CY'S NEEDED PER PT/3
2128 004061 2145 FSUB FTEM2 /OVERHEAD CY'S PER PT/3
2129 004062 4156 FDIV YMIN /DIV BY -# SAMPLES/PT=-#CY'S/SAMPLE
2130 004063 1367 FADD FUGCY /OVERHEAD CY'S PER SAMPLE/3 IN LOOP 'ADDUP'
2131 004064 3117 FMPY HALF /DIV BY TWO TO GET 12 BIT UNSIGNED RESULT
2132 004065 0000 FEXT /FAC=-# DELAY CY'S NEEDED PER SAMPLE/6
2133 004066 4421 FIXT
2134 004067 7500 SMA /RESULT MUST BE NEG.
2135 004070 5205 JMP AGO /TOO FAST!!
2136 004071 7104 CLL RAL /TIMES 2 FOR 12 BIT UNSIGNED RESULT
2137 004072 3142 DCA CLTM
2138 004073 1046 TAD LW /ROUNDOFF?
2139 004074 7710 SPA CLA
2140 004075 2142 ISZ CLTM /YES, SET BIT 11
2141 004076 4431 HEDIT2 /DELAY TIME(SEC)=
2142 004077 4407 ENTR
2143 004100 0011 READ
2144 004101 3471 FMPY I HUNDRD
2145 004102 0000 FEXT
2146 004103 4421 FIXT
2147 004104 7041 CIA
2148 004105 7500 SMA /DELAY>10 MSEC?
2149 004106 7200 CLA /NO, DELAY = 0
2150 004107 3143 DCA DLATM /IS -100*SEC AS ENTERED
2151 004110 4431 HEDIT2 /NO. SCANS=
2152 004111 4422 GETNO
2153 004112 4421 FIXT
2154 004113 7041 CIA
2155 004114 3125 DCA PCTR
2156 004115 3112 DCA RUN
2157 004116 4427 CRLFD
2158 004117 4425 INITAR
2159 004120 1070 TAD NPTS
2160 004121 7144 CLL CMA RAL
2161 004122 3131 DCA TEMP
2162 004123 6211 CDF 10
2163 004124 3411 DCA I YIND
2164 004125 2131 ISZ TEMP /CLEAR THAT ARRAY.
2165 004126 5324 JMP .-2
2166 004127 6007 CAF
2167 004130 3130 DCA MCTR
2168 004131 5733 JMP I ESRNMR /GO WAIT FOR EVENT
2169 004132 0015 PK15, 15
2170 004133 4400 ESRNMR, LOOKER
2171 004134 4427 CURLS, CRLFD /LIST CURSOR VALUES:
2172 004135 1116 TAD FIVE
2173 004136 3057 DCA DP /4 DIGIT INTEGERS
2174 004137 2056 ISZ EFLG
2175 004140 1352 TAD CLPT
2176 004141 3013 DCA AUTO
2177 004142 1122 TAD NEG4
2178 004143 3132 DCA TEMP1
2179 004144 1413 CUR1, TAD I AUTO /PRINT AS X1,Y1,X2,Y2
2180 004145 4420 FLOAT
2181 004146 4406 FLOUT
2182 004147 2132 ISZ TEMP1
2183 004150 5344 JMP CUR1
2184 004151 5466 DISPLAY
2185 004152 3306 CLPT, TPNT-1
2186
2187 /SPECIAL ROUTINE TO RESET
2188 004153 4430 CALSET, HEDIT1 /MACHINE CYCLE TIME FOR
2189 004154 5317 HDSP /ACCURATE CALIBRATION.
2190 004155 4407 ENTR
2191 004156 0011 READ
2192 004157 3106 FMPY FK3
2193 004160 6364 FPUT CYCTM /3*CYCLE TIME
2194 004161 0000 FEXT
2195 004162 4427 CRLFD
2196 004163 5466 DISPLAY /EXIT
2197
2198 /NEXT 4 CONSTANTS SET TIMING FOR AVERAGER
2199 004164 7756 CYCTM, 7756;3614;5704 /IS 3* MACHINE CYCLE TIME
004165 3614
004166 5704
2200 004167 0003 FUGCY, 3;3525;1770 /IS # CYCLES IN LOOP 'ADDUP'/3
004170 3525
004171 1770
2201 004172 0004 NCY, 4;3600;0 /IS # OVERHEAD CYCLES PER PT/3
004173 3600
004174 0000
2202 004175 0003 SCNCY, 3;2125;1770 /# CYCLES IN SCLRT LOOP/3
004176 2125
004177 1770
2203
2204 *4200
2205 004200 7300 STAVR, CLA CLL
2206 004201 1072 TAD XLIM
2207 004202 6053 DILX
2208 004203 3101 DCA XDIS
2209 004204 1143 TAD DLATM
2210 004205 7450 SNA /NEED ANY DELAY?
2211 004206 5211 JMP .+3 /NO
2212 004207 4464 CALL CLKSET
2213 004210 5201 5201 /TICKS AT 100 CPS
2214 004211 1113 TAD MCHAN
2215 004212 6531 ADLM
2216 004213 4425 INITAR
2217 004214 6211 CDF 10
2218 004215 6055 GOSUM, DIXY
2219 004216 1114 TAD AVSUM /THIS ROUTINE TAKES ADC
2220 004217 3127 DCA LNCTR /SAMPLES, -AVSUM IN #, IN A TIME
2221 004220 3141 DCA HIORD /PER SAMPLE VARIED BY CLTM
2222 004221 3145 DCA LOORD /BASE TIME PER SAMPLE=23 CYCLES
2223 004222 6532 ADDUP, ADST /OVERHEAD/PT=49+EXPFC*13 CYCLES
2224 004223 1142 TAD CLTM
2225 004224 3147 DCA TMCTR
2226 004225 2147 ISZ TMCTR
2227 004226 5225 JMP .-1 /ADD SOME TIME BETWEEN SAMPLES
2228 004227 6533 ADRB
2229 004230 6054 DILY
2230 004231 1124 TAD K1000 /MAKE ALL RESULTS POS.
2231 004232 7100 CLL
2232 004233 1145 TAD LOORD /STORED AS DOUBLE PREC. INTEGER
2233 004234 3145 DCA LOORD
2234 004235 7004 RAL /LOORD OVERFLOW SETS LINK
2235 004236 1141 TAD HIORD
2236 004237 3141 DCA HIORD
2237 004240 2127 ISZ LNCTR
2238 004241 5222 JMP ADDUP
2239 004242 1115 TAD EXPFC
2240 004243 7440 SZA /NEED TO SHIFT RIGHT?
2241 004244 4320 JMS SHRGT /YES, DO IT
2242 004245 7201 CLA IAC
2243 004246 1101 TAD XDIS
2244 004247 6053 DILX
2245 004250 3101 DCA XDIS
2246 004251 1145 TAD LOORD
2247 004252 7100 CLL
2248 004253 1411 TAD I YIND /ADD TO CURRENT SCAN SUM
2249 004254 3412 DCA I ZIND
2250 004255 7004 RAL
2251 004256 1411 TAD I YIND
2252 004257 3412 DCA I ZIND
2253 004260 2126 ISZ CNTR
2254 004261 5215 JMP GOSUM
2255 004262 6201 CDF 0
2256 004263 2112 ISZ RUN /IS NO OF SCANS TAKEN
2257 004264 2125 ISZ PCTR /INCR. COUNTER; MORE SCANS?
2258 004265 5717 JMP I LOOK /YES. WAIT FOR NEXT EVENT
2259
2260 004266 4425 AVDON, INITAR /NO, WE'RE FINISHED.
2261 004267 4407 ENTR /PREPARE TO NORMALIZE THE 24
2262 004270 5112 FGET RUN /BIT Y STORAGE DOWN TO 12 BITS
2263 004271 0014 FLOT
2264 004272 6150 FPUT TEMFP /BY DIVIDING BY NO. OF SCANS
2265 004273 0000 FEXT
2266 004274 6211 DIVD, CDF 10
2267 004275 1411 TAD I YIND /FLOAT DUBL PREC INTEGER
2268 004276 3046 DCA LW
2269 004277 1411 TAD I YIND
2270 004300 3045 DCA HW
2271 004301 6201 CDF 0
2272 004302 1111 TAD P27
2273 004303 3044 DCA EW
2274 004304 4407 ENTR
2275 004305 7000 FNOR
2276 004306 4150 FDIV TEMFP /DIVIDE BY # SCANS TAKEN
2277 004307 1117 FADD HALF
2278 004310 0000 FEXT
2279 004311 4421 FIXT
2280 004312 6211 CDF 10
2281 004313 3412 DCA I ZIND /SAVE SINGLE PREC RESULT
2282 004314 2126 ISZ CNTR
2283 004315 5274 JMP DIVD
2284 004316 5466 DISPLAY
2285 004317 4400 LOOK, LOOKER
2286
2287 004320 0000 SHRGT, 0
2288 004321 7141 CIA CLL
2289 004322 3127 DCA LNCTR
2290 004323 1141 SCLRT, TAD HIORD
2291 004324 7110 CLL RAR
2292 004325 3141 DCA HIORD
2293 004326 1145 TAD LOORD
2294 004327 7010 RAR
2295 004330 3145 DCA LOORD
2296 004331 2127 ISZ LNCTR
2297 004332 5323 JMP SCLRT
2298 004333 5720 JMP I SHRGT
2299
2300
2301 /CALLED TO REPORT ON PEAK RESULTS
2302 004334 4430 REPRT, HEDIT1 /X1,XMPY,GATE:=
2303 004335 5177 HD4
2304 004336 4407 ENTR
2305 004337 0011 READ
2306 004340 6164 FPUT YSCLFC
2307 004341 0011 READ
2308 004342 6161 FPUT XSCLFC
2309 004343 0011 READ
2310 004344 0000 FEXT
2311 004345 4421 FIXT
2312 004346 7041 CIA /IS DETECTION SENSITIVITY
2313 004347 4777 CALL PICPK /GET PEAKS
2314 004350 1135 TAD MIN
2315 004351 7041 CIA
2316 004352 1136 TAD MAX
2317 004353 3136 DCA MAX /IS LARGEST PK HGT CORRECTED FOR BASELINE
2318 004354 4430 HEDIT1 /MIN,X,MAX,X,A,I,%A:
2319 004355 4561 HDRP
2320 004356 4436 CALL IOASK /SET UP OUTPUT DEVICE
2321 004357 4425 INITAR
2322 004360 1112 TAD RUN
2323 004361 7041 CIA
2324 004362 3125 DCA PCTR /SET PK CNTR
2325 004363 2010 ISZ XIND /POINT TO LDG MIN X VALUE
2326 004364 6211 CDF 10
2327 004365 1410 TAD I XIND
2328 004366 3131 DCA TEMP
2329 004367 1131 TAD TEMP
2330 004370 1011 TAD YIND
2331 004371 3011 DCA YIND
2332 004372 1131 TAD TEMP
2333 004373 1126 TAD CNTR
2334 004374 3126 DCA CNTR
2335 004375 5776 JMP I .+1
2336 004376 4600 REP1
2337 004377 5000 PICPK, PKPIC
2338 *4400
2339 004400 6035 LOOKER, KIE
2340 004401 6135 CLSA
2341 004402 7240 STA
2342 004403 6130 CLZE
2343 004404 1313 TAD K14
2344 004405 6132 CLDE /ENABLE SCHMIDT TRIGGER EVENT 4
2345 004406 6001 ION
2346 004407 6031 STLOOP, KSF /WANT TO CHANGE SCALE OR STOP?
2347 004410 5236 JMP LOOPIT /NO
2348 004411 6135 CLSA /CLR FLAG
2349 004412 6036 KRB
2350 004413 1314 TAD MD
2351 004414 7450 SNA /'D' TO DECREASE SIZE?
2352 004415 2130 ISZ MCTR
2353 004416 7000 NOP
2354 004417 7001 IAC
2355 004420 7450 SNA /'C' TO CHECK DISPLAY?
2356 004421 6002 IOF /YES, TURN INTERRUPT OFF
2357 004422 1315 TAD MM
2358 004423 7440 SZA /'M' TO INCREASE SIZE?
2359 004424 5230 JMP MORE /NO
2360 004425 7240 STA
2361 004426 1130 TAD MCTR
2362 004427 3130 DCA MCTR
2363 004430 1316 MORE, TAD MS
2364 004431 7450 SNA /'S' FOR STOP?
2365 004432 5276 JMP ENDCHK /YES
2366 004433 1317 TAD MPE
2367 004434 7650 SNA CLA /'P' TO PROCEED?
2368 004435 6001 ION /YES, TURN INTERRUPT ON
2369 004436 4425 LOOPIT, INITAR
2370 004437 6211 CDF 10
2371 004440 1411 TAD I YIND /LOW ORDER
2372 004441 3145 DCA LOORD
2373 004442 1411 TAD I YIND /HIGH ORDER
2374 004443 6201 CDF 0
2375 004444 3141 DCA HIORD
2376 004445 7327 SET6
2377 004446 1011 TAD YIND /GET EVERY 4TH VALUE
2378 004447 3011 DCA YIND
2379 004450 1130 TAD MCTR
2380 004451 7540 SMA SZA /MCTR>0, I.E. NEED DIVIDE?
2381 004452 4712 CALL ISHRT
2382 004453 7500 SMA /MAGNIFY IT?
2383 004454 5263 JMP DSPIT /DO NEITHER
2384 004455 3127 DCA LNCTR /YES
2385 004456 1145 TAD LOORD /VALUE IS ACTUALLY SINGLE PREC.
2386 004457 7104 CLL RAL /MULT. BY 2
2387 004460 2127 ISZ LNCTR
2388 004461 5257 JMP .-2 /MULT. AGAIN
2389 004462 7410 SKP
2390
2391
2392 004463 1145 DSPIT, TAD LOORD
2393 004464 1073 TAD YLIM
2394 004465 3100 DCA YDIS
2395 004466 4435 CALL DISMOV /MOVE POINT ON SCOPE
2396 004467 4467 CALL ADINX /GET & INCR. X COORD
2397 004470 7307 SET4
2398 004471 1126 TAD CNTR
2399 004472 7500 SMA /MORE PTS?
2400 004473 5207 JMP STLOOP /NO
2401 004474 3126 DCA CNTR /YES
2402 004475 5237 JMP LOOPIT+1
2403
2404 004476 6002 ENDCHK, IOF
2405 004477 4430 HEDIT1 /NO. OF SCANS=
2406 004500 5246 HD9
2407 004501 1116 TAD FIVE
2408 004502 3057 DCA DP
2409 004503 2056 ISZ EFLG
2410 004504 1112 TAD RUN
2411 004505 4420 FLOAT
2412 004506 4406 FLOUT
2413 004507 4427 CRLFD
2414 004510 5711 JMP I .+1
2415 004511 4266 AVDON
2416 004512 4320 ISHRT, SHRGT
2417 004513 0015 K14, 14+1
2418 004514 7474 MD, -304
2419 004515 7766 MM, 303-315
2420 004516 7772 MS, 315-323
2421 004517 0003 MPE, 323-320
2422 004520 4425 XFLIP, INITAR /INVERT X AXIS
2423 004521 1011 TAD YIND /Y(I)=Y(NPTS+1-I)
2424 004522 1070 TAD NPTS
2425 004523 3131 DCA TEMP
2426 004524 1126 TAD CNTR
2427 004525 7130 STL RAR
2428 004526 3126 DCA CNTR
2429 004527 6211 CDF 10
2430 004530 1411 FLX, TAD I YIND
2431 004531 3132 DCA TEMP1
2432 004532 1531 TAD I TEMP
2433 004533 3412 DCA I ZIND
2434 004534 1132 TAD TEMP1
2435 004535 3531 DCA I TEMP
2436 004536 7240 STA
2437 004537 1131 TAD TEMP
2438 004540 3131 DCA TEMP
2439 004541 2126 ISZ CNTR
2440 004542 5330 JMP FLX
2441 004543 5466 DISPLAY
2442
2443 004544 4430 MULP, HEDIT1 /MIN=
2444 004545 5206 HD5
2445 004546 4422 GETNO
2446 004547 4421 FIXT
2447 004550 3135 DCA MIN
2448 004551 4430 HEDIT1 /MPY=
2449 004552 5214 HD5+6
2450 004553 4407 ENTR
2451 004554 0011 READ
2452 004555 6164 FPUT YSCLFC
2453 004556 0000 FEXT
2454 004557 5760 JMP I .+1 /EXIT TO SCALING ROUTINE
2455 004560 1531 SKL-1
2456
2457 004561 3615 HDRP, TEXT /^MIN,X,MAX,X,A,I,%A:^/
004562 1116
004563 5430
004564 5415
004565 0130
004566 5430
004567 5401
004570 5411
004571 5445
004572 0172
004573 3600
2458 /CALLED FROM REPRT TO GET AREAS & PRINT OUTPUT
2459 *4600
2460 004600 3145 REP1, DCA FTEM2
2461 004601 3146 DCA FTEM2+1
2462 004602 3147 DCA FTEM2+2
2463 004603 6211 SWL1, CDF 10
2464 004604 7305 SET2
2465 004605 1010 TAD XIND
2466 004606 3012 DCA ZIND /POINT TO AREA
2467 004607 3142 DCA FTEM1
2468 004610 3143 DCA FTEM1+1
2469 004611 3144 DCA FTEM1+2
2470 004612 7327 SET6
2471 004613 1010 TAD XIND
2472 004614 3013 DCA AUTO /GET TRAILING MIN X VALUE
2473 004615 1413 TAD I AUTO
2474 004616 7041 CIA
2475 004617 1070 TAD NPTS
2476 004620 3131 DCA TEMP
2477 004621 1135 INL1, TAD MIN /LOOP TO GET AREA BETWEEN MINIMA
2478 004622 7041 CIA /SUBTRACT MIN FROM Y
2479 004623 1411 TAD I YIND
2480 004624 4420 FLOAT
2481 004625 4407 ENTR
2482 004626 1142 FADD FTEM1
2483 004627 6142 FPUT FTEM1
2484 004630 0000 FEXT
2485 004631 6211 CDF 10
2486 004632 2126 ISZ CNTR
2487 004633 7000 NOP
2488 004634 1126 TAD CNTR
2489 004635 1131 TAD TEMP
2490 004636 7710 SPA CLA /CNTR=TRAILING MIN VALUE?
2491 004637 5221 JMP INL1 /NO
2492 004640 1142 TAD FTEM1 /STORE AREA IN ARRAY
2493 004641 3412 DCA I ZIND
2494 004642 1143 TAD FTEM1+1
2495 004643 3412 DCA I ZIND
2496 004644 1144 TAD FTEM1+2
2497 004645 3412 DCA I ZIND
2498 004646 6201 CDF 0
2499 004647 4407 ENTR
2500 004650 1145 FADD FTEM2 /ADD TO TOTAL AREA
2501 004651 6145 FPUT FTEM2
2502 004652 0000 FEXT
2503 004653 1374 TAD PK7
2504 004654 1010 TAD XIND
2505 004655 3010 DCA XIND
2506 004656 2125 ISZ PCTR /ANOTHER PK?
2507 004657 5203 JMP SWL1 /YES
2508
2509 004660 4425 INITAR /NO, SET UP TO OUTPUT
2510 004661 1112 TAD RUN
2511 004662 7041 CIA
2512 004663 3125 DCA PCTR
2513 004664 4407 ENTR /GET HGT SCALE FACTOR
2514 004665 5136 FGET MAX
2515 004666 0014 FLOT
2516 004667 4471 FDIV I HUNDRD
2517 004670 6150 FPUT TEMFP
2518 004671 0000 FEXT
2519 004672 4427 OLP1, CRLFD
2520 004673 7344 SETM2
2521 004674 3130 DCA MCTR
2522 004675 7327 SET6
2523 004676 3057 DCA DP
2524 004677 2056 ISZ EFLG
2525 004700 7344 SETM2
2526 004701 3133 DCA TEM2
2527 004702 6211 OLP2, CDF 10 /LOOP TO OUTPUT RAW MIN, X VALUE, MAX, X VALUE
2528 004703 1410 TAD I XIND
2529 004704 4420 FLOAT
2530 004705 2133 ISZ TEM2
2531 004706 5320 JMP OLP3
2532 004707 4407 ENTR
2533 004710 3161 FMPY XSCLFC
2534 004711 1164 FADD YSCLFC /ADD X1
2535 004712 0000 FEXT
2536 004713 7305 SET2
2537 004714 4463 FOUTCM
2538 004715 2130 ISZ MCTR
2539 004716 5300 JMP OLP2-2
2540 004717 5322 JMP OLP4
2541 004720 4463 OLP3, FOUTCM /AS INTEGERS
2542 004721 5302 JMP OLP2
2543
2544 004722 6211 OLP4, CDF 10 /LOAD AREA INTO FAC
2545 004723 1410 TAD I XIND
2546 004724 3044 DCA EW
2547 004725 1410 TAD I XIND
2548 004726 3045 DCA HW
2549 004727 1410 TAD I XIND
2550 004730 3046 DCA LW
2551 004731 3056 DCA EFLG /E FORMAT
2552 004732 6201 CDF 0
2553 004733 4407 ENTR
2554 004734 6142 FPUT FTEM1
2555 004735 3161 FMPY XSCLFC
2556 004736 0000 FEXT
2557 004737 4463 FOUTCM /RAW AREA
2558 004740 1373 TAD MK5
2559 004741 1010 TAD XIND
2560 004742 3013 DCA AUTO /PNTR TO HGT
2561 004743 6211 CDF 10
2562 004744 1135 TAD MIN /SUBTRACT BASELINE
2563 004745 7041 CIA
2564 004746 1413 TAD I AUTO
2565 004747 4420 FLOAT
2566 004750 4407 ENTR
2567 004751 4150 FDIV TEMFP /NORMALIZE IT
2568 004752 0000 FEXT
2569 004753 1372 TAD PK10 /8 DIGITS
2570 004754 3057 DCA DP
2571 004755 2056 ISZ EFLG
2572 004756 7305 SET2 /2 DECIMAL PLACES
2573 004757 4463 FOUTCM
2574 004760 4407 ENTR
2575 004761 5142 FGET FTEM1 /GET RAW AREA BACK
2576 004762 4145 FDIV FTEM2 /NORMALIZE IT
2577 004763 3471 FMPY I HUNDRD
2578 004764 0000 FEXT
2579 004765 7307 SET4
2580 004766 4463 FOUTCM /4 DECIMAL PLACES
2581 004767 2125 ISZ PCTR /ANOTHER PK?
2582 004770 5272 JMP OLP1 /YES
2583 004771 5466 DISPLAY /NO, BACK TO DISPLAY
2584
2585 004772 0012 PK10, 12
2586 004773 7773 MK5, -5
2587 004774 0007 PK7, 7
2588 *5000
2589 /ROUTINE TO DO SIMPLE AMPLITUDE PEAK DETECTION AND
2590 /STORE RESULTS IN ARRAY JUST AFTER DATA ARRAY
2591 005000 0000 PKPIC, 0
2592 005001 3114 DCA AVSUM /SAVE AC AS GATE (-N)
2593 005002 3112 DCA RUN /CLR FLAGS, CNTRS
2594 005003 4425 INITAR
2595 005004 7201 INIPK, CLA IAC /START HERE AFTER A PK IS FOUND
2596 005005 3150 DCA PS1
2597 005006 3151 DCA PS2
2598 005007 3152 DCA S1C
2599 005010 3153 DCA S2C
2600 005011 3136 DCA MAX
2601 005012 7132 STL RTR
2602 005013 3135 DCA MIN
2603 005014 6211 CDF 10
2604 005015 1411 SERLP, TAD I YIND /GET DATUM
2605 005016 3131 DCA TEMP
2606 005017 1135 TAD MIN
2607 005020 7041 CIA
2608 005021 1131 TAD TEMP
2609 005022 7500 SMA /YMAX?
2635 005053 5301 JMP SERND /NO
2636 005054 1131 TAD TEMP /YES, SAVE IT
2637 005055 3136 DCA MAX
2638 005056 1126 TAD CNTR /KEEP AS X VALUE
2639 005057 3155 DCA MXT
2640 005060 2153 ISZ S2C /BUMP MAX CNT
2641
2642 005061 1153 TAD S2C
2643 005062 1114 TAD AVSUM
2644 005063 7710 SPA CLA /HAD A GATE'S WORTH?
2645 005064 5301 JMP SERND /NO
2646 005065 3152 DCA S1C /YES
2647 005066 1150 TAD PS1
2648 005067 7650 SNA CLA /HAD PRECEDING MIN?
2649 005070 5277 JMP SERND-2 /NO
2650 005071 2151 ISZ PS2 /YES, SET PS2
2651 005072 3150 DCA PS1
2652 005073 1135 TAD MIN /SAVE LEADING MIN
2653 005074 3156 DCA KMIN
2654 005075 1154 TAD MNT /AND X VALUE
2655 005076 3157 DCA KMNT
2656 005077 1136 TAD MAX /RESET MIN
2657 005100 3135 DCA MIN
2658 005101 2126 SERND, ISZ CNTR /MORE PTS?
2659 005102 5215 JMP SERLP /YES
2660 005103 1154 TAD MNT /SET TRAILING MIN TIME
2661 005104 3157 DCA KMNT
2662 005105 4312 JMS STPEK /NO, SAVE END RUN MIN
2663 005106 6201 CDF 0
2664 005107 4711 CALL YSCAN /GET MIN & MAX IN DATA
2665 005110 5600 JMP I PKPIC
2666 005111 1445 YSCAN, SCANY
2667
2668 /BUFFER PK VALUES IN ARRAY AT END OF DATA
2669 005112 0000 STPEK, 0
2670 005113 1156 TAD KMIN
2671 005114 3410 DCA I XIND
2672 005115 1157 TAD KMNT /ADD NPTS TO X VALUES TO GET PT CNT
2673 005116 1070 TAD NPTS
2674 005117 3410 DCA I XIND
2675 005120 1136 TAD MAX
2676 005121 3410 DCA I XIND
2677 005122 1155 TAD MXT
2678 005123 1070 TAD NPTS
2679 005124 3410 DCA I XIND
2680 005125 7325 SET3 /RESET PNTR TO LEAVE HOLE FOR PK AREA
2681 005126 1010 TAD XIND
2682 005127 3010 DCA XIND
2683 005130 5712 JMP I STPEK
2684 005131 3604 HD1, TEXT /^DAQUAN OS-8 !^TITLE:/
005132 0121
005133 2501
005134 1640
005135 1723
005136 5570
005137 4041
005140 3624
005141 1124
005142 1405
005143 7200
2685 005144 3617 TEXT /^OK, HIT ME!^/
005145 1354
005146 4010
005147 1124
005150 4015
005151 0541
005152 3600
2686 005153 3616 HD2, TEXT /^NO. POINTS= /
005154 1756
005155 4020
005156 1711
005157 1624
005160 2375
005161 4000
2687 005162 2024 TEXT /PTS. TO SKIP=/
005163 2356
005164 4024
005165 1740
005166 2313
005167 1120
005170 7500
2688 005171 1411 HD3, TEXT /LINE PLOT?/
005172 1605
005173 4020
005174 1417
005175 2477
005176 0000
2689 005177 3061 HD4, TEXT /X1,XMPY,GATE:/
005200 5430
005201 1520
005202 3154
005203 0701
005204 2405
005205 7200
2690 005206 3615 HD5, TEXT /^MIN=/
005207 1116
005210 7500
2691 005211 1501 TEXT /MAX=/
005212 3075
005213 0000
2692 005214 1520 TEXT /MPY=/
005215 3175
005216 0000
2693 005217 2014 HD6, TEXT /PLOTTER OFF?/
005220 1724
005221 2405
005222 2240
005223 1706
005224 0677
005225 0000
2694 005226 0310 HD7, TEXT /CHANNEL= /
005227 0116
005230 1605
005231 1475
005232 4000
2695 005233 2305 HD8, TEXT \SEC/SCAN=\
005234 0357
005235 2303
005236 0116
005237 7500
2696 005240 0405 TEXT /DELAY(SEC)=/
005241 1401
005242 3150
005243 2305
005244 0351
005245 7500
2697 005246 1617 HD9, TEXT /NO. SCANS= /
005247 5640
005250 2303
005251 0116
005252 2375
005253 4000
2698 005254 2303 HD15, TEXT /SCAN INT'L?/
005255 0116
005256 4011
005257 1624
005260 4714
005261 7700
2699 005262 0122 TEXT /AREA=/
005263 0501
005264 7500
2700 005265 2324 HD25, TEXT /STRIP PEAK?/
005266 2211
005267 2040
005270 2005
005271 0113
005272 7700
2701 005273 0625 TEXT /FULL BASE?/
005274 1414
005275 4002
005276 0123
005277 0577
005300 0000
2702 005301 0201 HD26, TEXT /BAD X PTS!^/
005302 0440
005303 3040
005304 2024
005305 2341
005306 3600
2703
2704 005307 3631 DIHD1, TEXT /^Y RANGE & MIN:/
005310 4022
005311 0116
005312 0705
005313 4046
005314 4015
005315 1116
005316 7200
2705 005317 1503 HDSP, TEXT /MCT(SEC)=/
005320 2450
005321 2305
005322 0351
005323 7500
2706 /THE FOLLOWING ARE A SET OF OVERLAYS
2707 /FOR FLOATING POINT PKGS. #1,2, & 4
2708 /WHICH ALLOWS INPUT FROM THE HIGH
2709 /OR LOW SPEED READERS. SET IOSWT=1 TO USE
2710 /THE HIGH SPEED READER OR PUNCH.
2711 /HERE ALSO IS AN OVERLAY WHICH ALLOWS
2712 /BLANKS TO FOLLOW A + OR - SIGN ON INPUT.
2713 /PLUS SIGNS ARE DELETED FROM OUTPUT.
2714
2715 *54
2716 000054 0000 IOSWT, 0
2717 000055 0000 0
2718
2719 *6146
2720 006146 4750 JMS I .+2
2721 006147 5351 JMP .+2
2722 006150 0610 SELECT
2723
2724 *6345
2725 006345 0000 INPUT, 0 /THIS IS THE INPUT OVERLAY
2726 006346 1054 TAD IOSWT /CHECK I/O SWITCH
2727 006347 7110 CLL RAR
2728 006350 7630 SZL CLA /SETS LINK FOR HI SPD RDR.
2729 006351 5354 JMP .+3 /USE HI SPD RDR.
2730 006352 4424 RDTTY
2731 006353 7410 SKP
2732 006354 4773 CALL HSRI
2733 006355 3053 CHECK, DCA 53
2734 006356 1053 TAD 53
2735 006357 7450 SNA
2736 006360 5346 JMP INPUT+1
2737 006361 1375 TAD MRBOUT
2738 006362 7640 SZA CLA
2739 006363 5367 JMP GOOD
2740 006364 1374 TAD XCPT /PRINT '!' IF RUBOUT.
2741 006365 4771 CALL OUTPT /NO
2742 006366 5772 JMP I RESTRT
2743 006367 1053 GOOD, TAD 53
2744 006370 5745 JMP I INPUT
2745 006371 0610 OUTPT, SELECT
2746 006372 6201 RESTRT, 6201
2747 006373 1573 HSRI, HSR
2748 006374 0241 XCPT, 241
2749 006375 7401 MRBOUT, -377
2750 *7242
2751 007242 0600 READER
2752 *7245
2753 007245 2200 INTFLT
2754 007246 1734 HEDER2
2755 $
AC0 0040 unreferenced
AC1 0041
AC2 0042 unreferenced
ADCL 6530 unreferenced
ADCON 0037
ADCONV 1125
ADDMX 1552
ADDTWO 3132
ADDUP 4222
ADINX 0067
ADLE 6536 unreferenced
ADLM 6531
ADRB 6533
ADRS 6537 unreferenced
ADSE 6535 unreferenced
ADSK 6534
ADST 6532
AGO 4005
ANINPT 4000
AS260 0537
ASK 4432
ASKER 1066
ASKIO 1427
AUTO 0013
AUTO2 0014
AVDON 4266
AVSUM 0114
AX1 7406
AX2 0000
AX3 0372
AXL 7014
AXR 1750
AY1 7406
AY2 0000
AY3 0372
AYL 7014
AYR 1750
BAD 0533
BEGDIS 0222
BLOCK 0140
BUF1 7777
C200 1212
CAF 6007
CALBRT 1000
CALL 14400
CALSET 4153
CCLDR 1117
CDISPL 2075
CHECK 6355 unreferenced
CHLOP 2044
CHTAB 2076
CLAB 6133
CLBA 6136 unreferenced
CLCA 6137 unreferenced
CLDE 6132
CLEN 6134 unreferenced
CLKSET 0064
CLPT 4152
CLRR 3540
CLSA 6135
CLSK 6131
CLSTRT 1004
CLTM 0142
CLZE 6130
CMPINT 3466
CNTR 0126
COLON 0544
COPY 2204
CORTAB 0662
COTAG 3107
CRLFD 4427
CRSAM 3600
CRTLFD 0027
CSET 1721
CUR1 4144
CURLS 4134
CURSET 3510
CURSR 3142
CYCTM 4164
DADP 0060
DATYP 1307
DBSO 7000 unreferenced
DCT 3356
DCTAB 2100
DERIV 3632
DICD 6051 unreferenced
DIHD1 5307
DILC 6050 unreferenced
DILE 6056
DILX 6053
DILY 6054
DIRE 6057 unreferenced
DISD 6052 unreferenced
DISM2 0066
DISMOV 0035
DISPLA 5466
DISPTS 3326
DIVD 4274
DIXY 6055
DLATM 0143
DLBUF 4000
DNE 1423
DNORM 7265
DNPEN 1153
DONE 0361
DP 0057
DPTR 3357
DRLOP1 3644
DRLOP2 3672
DSPIT 4463
DSPTS 0320
DTEM 0554
EFLG 0056
ENDCHK 4476
ENTR 4407
EQUAL 0543
ERRD 3253
ERRQ 2070
ERRX 2535
ESRNMR 4133
EW 0044
EXPFC 0115
EXTRAP 3360
EXTRP 3306
FADD 11000
FDIV 14000
FEXT 0000
FGET 15000
FIVE 0116
FIXER 0021
FIXR 0323
FIXR1 0337
FIXT 4421
FK3 0106
FLDW 0057 unreferenced
FLIN 0607
FLOAT 4420
FLOATR 2544
FLOT 0014
FLOTER 0020
FLOUT 4406
FLTCM 3171
FLX 4530
FLY 1367
FMPY 13000
FNISH 0523
FNOR 7000
FNTOT 3422
FOTCM 0063
FOUTCM 4463
FOUTX 0763
FPIN 6200
FPNORM 2556
FPNT 7400
FPOUT 1400
FPUT 16000
FSUB 12000
FTEM1 0142
FTEM2 0145
FUGCY 4167
GETNO 4422
GOOD 6367
GOSUM 4215
GOTIT 0431
GSCAN 1615
GTCHR 0476
GTZR 1240
HALF 0117
HD1 5131
HD15 5254
HD2 5153
HD25 5265
HD26 5301
HD3 5171
HD4 5177
HD5 5206
HD6 5217
HD7 5226
HD8 5233
HD9 5246
HDIO 1440
HDRP 4561
HDSP 5317
HEADR1 0030
HEADR2 0031
HEDER1 1724
HEDER2 1734
HEDIT 0015
HEDIT1 4430
HEDIT2 4431
HIORD 0141
HNDRD 1161
HOLD 0023
HSR 1573
HSRI 6373
HUNDRD 0071
HW 0045
INCR 1474
INIPK 5004
INIT 0025
INITAR 4425
INITIZ 3610
INL1 4621
INPSW 0052
INPUT 6345
INSTRK 1007
INTEG 3400
INTFLT 2200
INTRP 0321
INVAL 2040
IOASK 0036
IOSWT 0054
ISDIG 1245
ISHRT 4512
K100 1124
K1000 0124
K14 4513
K5400 1123
K7000 1122
KIE 6035
KMIN 0156
KMNT 0157
KOMA 3176
LEADER 1200
LEDER 1426
LNCTR 0127
LNUM 1211
LOKIN 0634
LOOK 4317
LOOKER 4400
LOOP4 1453
LOOP6 1410
LOOP9 3044
LOOPIT 4436
LOORD 0145
LOW 1472
LRG 0353
LSCHR 0552
LSLOC 0551
LW 0046
M13 0363
M261 2072
M272 2073
M300 2071
M36 1770
M76LOK 2354
M76T1 2351
M76T2 2353
M76TF1 2336
MALT 0322
MARKER 0631
MARKR 1064
MASS 2223
MASS1 2417
MASS2 2277
MASS20 2326
MASS3 2261
MASS4 2322
MASS5 2312
MASS6 2274 unreferenced
MASS7 2334
MASS8 2434
MASSA1 2262 unreferenced
MASSA2 2263
MASSA3 2264
MASSA4 2446
MASSA5 2447 unreferenced
MASSA6 2500
MASSA7 2501
MASSA8 2502
MASSA9 2525
MAX 0136
MCHAN 0113
MCTR 0130
MD 4514
MDCR 0574
MDLF 0575
MEM 1061
MEN 0545
MES 0546
MGEE 1060
MIN 0135
MIN1 0762 unreferenced
MIN6 3106
MK5 4773
MLIM 3607
MM 4515
MN7 0541
MNN5 3105
MNT 0154
MODCR 0565
MODE 0137
MODTTI 0555
MOH 1062
MORE 4430
MPE 4517
MRBOUT 6375
MRBT 0540
MRRED 2031
MS 4516
MSEE 0536
MSFN 2531
MULP 4544
MXT 0155
MZAP 2156 unreferenced
NCNTR 0550
NCY 4172
NEG4 0122
NEGATE 0010
NEWY 3035
NLIN 1425
NLOC 0425
NMCHK 2056
NO 1057
NPR 1736
NPTS 0070
NULINE 1406
NXPT 3334
OCTIN 0472
OCTOUT 0452
OFFSET 0077
OLDX 1722
OLDY 1723
OLP1 4672
OLP2 4702
OLP3 4720
OLP4 4722
ORGN 1050
OUT 0026
OUTCHR 0630
OUTPT 6371
OUTPUT 0012
P13 2557
P236 1767
P27 0111
P336 1766
P6 3104
P7M0 0542
PCE 6020 unreferenced
PCTR 0125
PENDN 0034
PENUP 0033
PICPK 4377
PK10 4772
PK15 4132
PK7 4774
PKPIC 5000
PL13 3103
PLEXT 1714
PLS5 3714
PLTINC 1600
PLTINT 1335
PLTLOP 1342
PLTMOV 1364
PLTMV 0661
PLTXIT 1065
PNTPLT 1363
PRTT 1763
PS1 0150
PS2 0151
PS7600 2600
PS8X 3745
PS8XJ 2077
PT1 3432
PT2 3445
PTINT 3512
PTPLT 1063
PU 0001
PX 4000
PY 2000
QUERY 0032
QUES 1055
QUEST 0547
RDTTY 4424
RDY 3525
READ 0011
READER 0600
READXY 0022
REMOV 3277
REP1 4600
REPRT 4334
RESET 1134
RESTRT 6372
RM77 0123
RUBIT 2074
RUN 0112
S1C 0152
S2C 0153
SCALY 1500
SCANIT 1667
SCANY 1445
SCASM 3550
SCLRT 4323
SCNCY 4175
SCPINT 0230
SCPLOP 0261
SELECT 0610
SERL2 5047
SERLP 5015
SERND 5101
SERVIS 2000
SET 1121
SET1 7301
SET2 7305
SET3 7325
SET4 7307
SET6 7327
SETCLK 3147
SETIT 0457
SETLY 3511
SETM2 7344
SETM3 7346
SETSTR 3200
SHF 3715
SHRGT 4320
SKL 1532
SMOT11 3025
SPCIN 2212
SPINIT 3014
SQEEZE 3716
SQLP 3732
SQROOT 0002 unreferenced
SQUARE 0001 unreferenced
STALL 1103
START 0203
STAVR 4200
STLOOP 4407
STPEK 5112
STRBS 3271
STRIPR 3256
STRPK 3264
STRTIT 0400
STYN 0240
SUBTRT 2213
SWAPBL 3000
SWL1 4603
SWLOOP 3003
TELRED 0024
TEM2 0133
TEM3 0134
TEMFP 0150
TEMP 0131
TEMP1 0132
TMCTR 0147
TMXP 0146 unreferenced
TPNT 3307
TTOUT 0622
TXSM 0104
TYPCH 1747
UPPEN 1146
VALU 0553
XCPT 6374
XDIS 0101
XFLIP 4520
XIND 0010
XLIM 0072
XMAX 1040
XMIN 0153
XNC 0102
XRNG 0074
XSCLFC 0161
XSET 0065
XSETUP 1213
XYSCAL 1266
YDIS 0100
YES 1056
YFLIP 1365
YIND 0011
YLIM 0073
YMAX 1044
YMIN 0156
YONE 0076
YRNG 0075
YSCAN 5111
YSCLFC 0164
YSCVAL 1551
YSTEP 3313
YSVAL 1324
ZIND 0012