-
Notifications
You must be signed in to change notification settings - Fork 0
/
autoxx26.scr
560 lines (468 loc) · 17.4 KB
/
autoxx26.scr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
\ Electron Drift Instrument 11:03 01-09-91
(
Source Files
WELCOME TO EDI CASS TEAM
DRIVERS FOR HIGH VOLTAGE SYSTEM FOR EDI OPTICS
BY JOE RITTER AND SLOBODAN BEROS AND SCOTT WEISMAN
AUTO26.SCR
AUTOMATED RUNS ARE SUPPORTED IN THIS FILE
ALSO LOOP RUNS CAN BE SENT TO A FILE
)
\ 16:23 01-21-91
\ THIS FILE HAS SUPPORT FOR MULTI-VARIABLE AUTOMATED BLIND
\ TESTS FOR VOLTAGE VALUES. ONE TEST CAN BE PERFORMED AT A
\ TIME ITERATING THROUGH UP TO 14 DIMENSIONS (CHANNELS). THE
\ RESULTS ARE THEN OUTPUT TO A FILE AND OPTIONALLY TO THE
\ PRINTER. THE PARAMETERS ARE SPECIFIED THROUGH 4 PARAMETERS,
\ NAMELY MIDPOINT, +/-RANGE, INCREMENT, AND CHANNEL. THIS
\ ALLOWS THE CHANNELS TO CHANGED IN ANY ORDER, AND PERMITS
\ INTUITIVE SPECIFICATIONS. ONE EXCEPTION IS THAT ANGLE
\ ELEVATION MUST BE THE OUTER LOOP SINCE IT IS TREATED
\ DIFFERENTLY THAN OTHER CHANNELS. WHEN FINISHED WITH THE TEST
\ THE PROGRAM RETURNS TO THE SUBMENU.
\ THE CORE OF THE ROUTINE IS THE AUTO-LOOP CONTRSUCT, WHICH
\ HAS AN OUTER GENERAL PART THAT CAN HANDLE ANGLE LOOPS, AND
\ THE MORE SPECIALIZED INNER-LOOPS THAT CAN ONLY LOOP OVER
\ ELECTRODES.
\ 16:28 01-21-91
VARIABLE R#
: R@ R# @ ;
: R! R# ! ;
\ THESE VARIABLES ARE USED IN RECORD STORAGE ROUTINES. R#
\ REFERS TO THE RECORD NUMBER BEING ACCESSED AND R@ AND R!
\ SIMPLY FETCH AND STORE TO THAT VARIABLE. THIS WAS DONE TO
\ MAKE RECORD ACCESS EASIER TAKE UP LESS SCREEN SPACE, SINCE
\ THERE ARE SO MANY ELEMENTS.
\ THE RECORD ACCESS ROUTINES ON THE NEXT SCREEN ARE FAIRLY
\ STRAIGHTFORWARD. ELEMENTS BELOW 43 ARE REALLY FLOAT, BUT
\ ARE SAVED AS INTEGERS FOR SPACE REASONS. THEY ARE MULT. BY
\ 10^5, AND THUS HAVE FIVE DIGITS AFTER DEC. PLACE. FOR
\ RETRIEVAL THEY ARE DIVIDED BY SAME. ELEMS ABOVE 43 ARE INT.
\ AND THUS POSE NO PROBLEM.
\ 12:37 01-14-91
: REC@ ( ELEM REC --- VAL ) \ FOR ELEM N IN REC M RETURNS VAL
OVER DUP 43 < IF
DROP REC-ARRAY[] @ S>F 1E5 F/
ELSE
DROP REC-ARRAY[] @
THEN
;
: REC! ( VAL ELEM REC --- ) \ FOR ELEM N IN REC M STORES VAL
OVER DUP 43 < IF
DROP REC-ARRAY[] -ROT 1E5 F* F>S SWAP !
ELSE
DROP REC-ARRAY[] !
THEN
;
\ 19:25 01-20-91
: SAVE-REC ( N --- ) \ SAVES COMPLETE RECORD TO INDEX N
R! 14 1 DO I V@ I R@ REC! LOOP \ SAVE TRODES
REAL-ANGLE 14 R@ REC! \ GET ANGLE FROM OPT-ENCODER
1AREA F@ 15 R@ REC! 2AREA F@ 16 R@ REC!
4AREA F@ 17 R@ REC! 8AREA F@ 18 R@ REC!
1FWHM F@ 19 R@ REC! 2FWHM F@ 20 R@ REC!
4FWHM F@ 21 R@ REC! 8FWHM F@ 22 R@ REC!
1AREA/SCAT F@ 23 R@ REC! 2AREA/SCAT F@ 24 R@ REC!
4AREA/SCAT F@ 25 R@ REC! 8AREA/SCAT F@ 26 R@ REC!
1AREA/FWHM F@ 27 R@ REC! 2AREA/FWHM F@ 28 R@ REC!
4AREA/FWHM F@ 29 R@ REC! 8AREA/FWHM F@ 30 R@ REC!
1ANO/FWHM F@ 31 R@ REC! 2ANO/FWHM F@ 32 R@ REC!
4ANO/FWHM F@ 33 R@ REC! 8ANO/FWHM F@ 34 R@ REC!
1ANO/SCAT F@ 35 R@ REC! 2ANO/SCAT F@ 36 R@ REC!
4ANO/SCAT F@ 37 R@ REC! 8ANO/SCAT F@ 38 R@ REC!
\ 17:15 01-22-91
CALIB-AREA F@ 39 R@ REC! CALIB-SUM F@ 40 R@ REC!
SCATTER-CURRENT F@ 41 R@ REC! NORM-SCATTER F@ 42 R@ REC!
\ START INTEGER VALUES
1ANO @ 43 R@ REC! 2ANO @ 44 R@ REC!
4ANO @ 45 R@ REC! 8ANO @ 46 R@ REC!
INNER-COUNTS @ 47 R@ REC! CENTER-COUNTS @ 48 R@ REC!
OUTER-COUNTS @ 49 R@ REC! TOTAL-COUNTS @ 50 R@ REC!
NCAL-RASTERS @ 51 R@ REC!
FRONT-SCATTER @ 52 R@ REC! SIDE-SCATTER @ 53 R@ REC!
TOTAL-SCATTER @ 54 R@ REC!
;
\ 16:01 01-22-91
: LOAD-REC ( N --- ) \ LOADS COMPLETE RECORD FROM INDEX N
R! 15 1 DO I R@ REC@ I V! LOOP \ LOAD TRODES AND ANGLE
15 R@ REC@ 1AREA F! 16 R@ REC@ 2AREA F!
17 R@ REC@ 4AREA F! 18 R@ REC@ 8AREA F!
19 R@ REC@ 1FWHM F! 20 R@ REC@ 2FWHM F!
21 R@ REC@ 4FWHM F! 22 R@ REC@ 8FWHM F!
23 R@ REC@ 1AREA/SCAT F! 24 R@ REC@ 2AREA/SCAT F!
25 R@ REC@ 4AREA/SCAT F! 26 R@ REC@ 8AREA/SCAT F!
27 R@ REC@ 1AREA/FWHM F! 28 R@ REC@ 2AREA/FWHM F!
29 R@ REC@ 4AREA/FWHM F! 30 R@ REC@ 8AREA/FWHM F!
31 R@ REC@ 1ANO/FWHM F! 32 R@ REC@ 2ANO/FWHM F!
33 R@ REC@ 4ANO/FWHM F! 34 R@ REC@ 8ANO/FWHM F!
35 R@ REC@ 1ANO/SCAT F! 36 R@ REC@ 2ANO/SCAT F!
37 R@ REC@ 4ANO/SCAT F! 38 R@ REC@ 8ANO/SCAT F!
\ 17:15 01-22-91
39 R@ REC@ CALIB-AREA F! 40 R@ REC@ CALIB-SUM F!
41 R@ REC@ SCATTER-CURRENT F! 42 R@ REC@ NORM-SCATTER F!
\ START INTEGER VALUES
43 R@ REC@ 1ANO ! 44 R@ REC@ 2ANO !
45 R@ REC@ 4ANO ! 46 R@ REC@ 8ANO !
47 R@ REC@ INNER-COUNTS ! 48 R@ REC@ CENTER-COUNTS !
49 R@ REC@ OUTER-COUNTS ! 50 R@ REC@ TOTAL-COUNTS !
51 R@ REC@ NCAL-RASTERS !
52 R@ REC@ FRONT-SCATTER ! 53 R@ REC@ SIDE-SCATTER !
54 R@ REC@ TOTAL-SCATTER !
;
\ LOAD-REC ONLY LOADS THE VALUES INTO THE CORRECT VARIABLES,
\ BUT DOES NOT OUTPUT THE ELECTRODE VOLTAGES, SO OUTPUT-DATA
\ MUST BE CALLED FOR THAT PURPOSE.
\ 15:04 01-21-91
: ZERO-REC ( N --- ) \ SAVES COMPLETE RECORD TO INDEX N
R! 14 1 DO 0E I R@ REC! LOOP \ SAVE TRODES
233E 14 R@ REC! \ GET ANGLE FROM OPT-ENCODER
0E 15 R@ REC! 0E 16 R@ REC!
0E 17 R@ REC! 0E 18 R@ REC!
0E 19 R@ REC! 0E 20 R@ REC!
0E 21 R@ REC! 0E 22 R@ REC!
0E 23 R@ REC! 0E 24 R@ REC!
0E 25 R@ REC! 0E 26 R@ REC!
0E 27 R@ REC! 0E 28 R@ REC!
0E 29 R@ REC! 0E 30 R@ REC!
0E 31 R@ REC! 0E 32 R@ REC!
0E 33 R@ REC! 0E 34 R@ REC!
0E 35 R@ REC! 0E 36 R@ REC!
0E 37 R@ REC! 0E 38 R@ REC!
\ 16:30 01-21-91
0E 39 R@ REC! 0E 40 R@ REC!
0E 41 R@ REC! 0E 42 R@ REC!
0 43 R@ REC! 0 44 R@ REC!
0 45 R@ REC! 0 46 R@ REC!
0 47 R@ REC! 0 48 R@ REC!
0 49 R@ REC! 0 50 R@ REC!
0 51 R@ REC!
0 52 R@ REC! 0 53 R@ REC!
0 54 R@ REC!
;
0 ZERO-REC
\ ZEROES A RECORD. CURRENTLY RECORD 0 IS USED AS A REFERENCE
\ FOR MAX TESTING.
\ 16:35 01-21-91
\ IN ADDITION TO THE ELECTRODES VARIED DIRECTLY IN THE AUTO-
\ LOOP, THE ROUTINE ALSO SUPPORTS SECONDARY VARIABLES, WHICH
\ BASICALLY ARE DEFINED AS FOLLOWS:
\ SECONDARY-VOLTAGE = C1 * PRIMARY-VOLTAGE + C2
\ C1 IS FLOAT AND C2 IS INTEGER
\ THIS ALLOWS ARE FOR PAIRED VOLTAGE VARIATION FOR COMPLEMENT-
\ ARY ELECTRODES OR WHATEVER PURPOSE. C1 AND C2 MUST BE
\ PROVIDED BY THE USER HERE, ALTHOUGH IN SEARCH, ONE CAN DO
\ A PAIR-FUNCTION-SEARCH TO RETURN COMPUTED VALUES FOR THESE
\ COEFFICIENTS.
\ 08:50 11-29-90
CREATE PRIMARY[] 64 ALLOT
CREATE SECONDARY[] 64 ALLOT
CREATE C1[] FPSIZE 16 * ALLOT
CREATE C2[] 64 ALLOT
: PRIMARY@ ( I --- N ) 4* PRIMARY[] + @ ;
: PRIMARY! ( N I --- ) 4* PRIMARY[] + ! ;
: SECONDARY@ ( I --- N ) 4* SECONDARY[] + @ ;
: SECONDARY! ( N I --- ) 4* SECONDARY[] + ! ;
: C1@ ( I --- F ) FPSIZE * C1[] + F@ ;
: C1! ( F I --- ) FPSIZE * C1[] + F! ;
: C2@ ( I --- N ) 4* C2[] + @ ;
: C2! ( N I --- ) 4* C2[] + ! ;
\ 22:39 11-12-90
CREATE MID[] 64 ALLOT \ MIDPOINT ARRAY
CREATE RANGE[] 64 ALLOT \ +- RANGE ARRAY
CREATE INC[] 64 ALLOT \ LOOP INCREMENT ARRAY
CREATE LOOP-CHAN[] 64 ALLOT \ TRODE# ASSOCIATED W/EA LOOP
: MID@ ( I --- N ) 4* MID[] + @ ;
: MID! ( N I --- ) 4* MID[] + ! ;
: RANGE@ ( I --- N ) 4* RANGE[] + @ ;
: RANGE! ( N I --- ) 4* RANGE[] + ! ;
: INC@ ( I --- N ) 4* INC[] + @ ;
: INC! ( N I --- ) 4* INC[] + ! ;
: LOOP-CHAN@ ( I --- N ) 4* LOOP-CHAN[] + @ ;
: LOOP-CHAN! ( N I --- ) 4* LOOP-CHAN[] + ! ;
\ 17:28 01-22-91
: DISP-AUTO-MENU1 ( --- ) \ DISPLAYS auto-menu 1
61 13 GOTOXY ." B Areas "
61 14 GOTOXY ." C Convolutions "
61 15 GOTOXY ." R Reset index "
61 16 GOTOXY ." P Print sums,volts "
61 17 GOTOXY ." H Print Header "
61 18 GOTOXY ." S Set accum params "
61 19 GOTOXY ." A Auto-Rast-accum "
61 20 GOTOXY ." L Loop-auto-accum "
61 21 GOTOXY ." Z Exit Auto Menu 1 "
;
\ 16:21 11-15-90
: SAVE-RASTER-PARAMS
NRASTERS @ NRASTERS-TEMP ! RASTER-DELAY @ RASTER-DELAY-TEMP !
XMIN @ XMIN-TEMP ! YMIN @ YMIN-TEMP !
XMAX @ XMAX-TEMP ! YMAX @ YMAX-TEMP !
DX @ DX-TEMP ! DY @ DY-TEMP !
;
: RESTORE-RASTER-PARAMS
NRASTERS-TEMP @ NRASTERS ! RASTER-DELAY-TEMP @ RASTER-DELAY !
XMIN-TEMP @ XMIN ! YMIN-TEMP @ YMIN !
XMAX-TEMP @ XMAX ! YMAX-TEMP @ YMAX !
DX-TEMP @ DX ! DY-TEMP @ DY !
;
\ 08:14 11-29-90
: SET-ACCUM-PARAMS
SAVE-RASTER-PARAMS
0 0 GOTOXY
." NUMBER OF RASTERS? " #IN L DUP 0= IF DROP 1 THEN NRASTERS !
." RASTER DELAY? " #IN L DUP 0= IF DROP 0 THEN RASTER-DELAY !
." RASTER DX? " #IN L DUP 0= IF DROP DX @ THEN DX !
." RASTER DY? " #IN L DUP 0= IF DROP DY @ THEN DY !
." XMIN? " #IN L DUP 0= IF DROP XMIN @ THEN XMIN !
." YMIN? " #IN L DUP 0= IF DROP YMIN @ THEN YMIN !
." XMAX? " #IN L DUP 0= IF DROP XMAX @ THEN XMAX !
." YMAX? " #IN L DUP 0= IF DROP YMAX @ THEN YMAX !
TRUE SETUP-DONE !
;
\ 22:51 12-03-90
: 2NDARY-SETUP ( VARY 2ND TRODE AS C1*PRIMARY + C2 )
15 0 DO 0 I PRIMARY! LOOP
CR ." SECONDARY TRODE(S) (1=YES,0=NO)? " #IN L
0<> IF
." ENTER VALUES, 0 FOR PRIMARY TO EXIT." L
15 1 DO
." PRIMARY TRODE? " #IN DUP 0= IF DROP L LEAVE THEN L
I PRIMARY!
." SECONDARY TRODE? " #IN I SECONDARY! L
." MULTIPLIER(FLOAT)? " F#IN I C1! L
." OFFSET? " #IN I C2! L
LOOP
THEN
;
\ 14:45 12-20-90
: 2NDARY-CALC
15 1 DO
I PRIMARY@ 0= IF LEAVE THEN
I PRIMARY@ V@ I C1@ F* I C2@ S>F F+ I SECONDARY@ V!
LOOP
;
\ 16:36 01-21-91
: OUTPUT-AREA-LINE
." 1>" 1AREA F@ 4 F.R ." 2>" 2AREA F@ 4 F.R
." 4>" 4AREA F@ 4 F.R ." 8>" 8AREA F@ 4 F.R
." CALAREA " CALIB-AREA F@ 4 F.R
." CAL CTS " CALIB-SUM F@ 5 F.R
." NRAS " NCAL-RASTERS @ 2 .R
;
: QUOTE 34 EMIT ;
\ THIS ONLY OUTPUTS AREA DATA
\ 16:36 01-21-91
: OUTPUT-LINE
12 1 DO I 3 <> IF I V@ F>S 6 .R THEN LOOP \ PRINT VOLTAGES
." " \ SPACE ANGLE OVER 3 SPACES
REAL-ANGLE 6 F.R \ PRINT DETECTOR ANGLE
." 1>" 1ANO @ 6 .R ." 2>" 2ANO @ 6 .R
." 4>" 4ANO @ 6 .R ." 8>" 8ANO @ 6 .R
." CTR>" CENTER-COUNTS @ 6 .R
." INR>" INNER-COUNTS @ 6 .R
." OTR>" OUTER-COUNTS @ 6 .R
." TOT>" TOTAL-COUNTS @ 6 .R
OUTPUT-AREA-LINE CR
;
: PRINT-LINE
PRINTER OUTPUT-LINE CONSOLE 7 EMIT
; \ THIS OUTPUTS ALL DATA PERTINENT TO TESTING
\ 12:02 01-03-91
: GET-COMMENT
." PLEASE ENTER COMMENTS, FOLLOWED BY A BLANK LINE." L
BEGIN
COMMENT 79 GETSTRING L
FNAME ~>>FILE QUOTE COMMENT COUNT TYPE QUOTE CR
PRINTER-ON @ IF PRINTER COMMENT COUNT TYPE CR THEN
CONSOLE COMMENT C@ 0= \ OUTPUT TO CON, AND GET LEN OF STR
UNTIL \ IF 0 THEN EXIT
;
: GET-BEGIN-COMMENT
." DO YOU WANT STARTING COMMENTS(1=YES,0=NO)? " #IN L
IF GET-COMMENT THEN ;
: GET-END-COMMENT
." DO YOU WANT ENDING COMMENTS(1=YES,0=NO)? " #IN L
IF GET-COMMENT THEN ;
\ 12:08 01-03-91
: OUTPUT-HEADER1
QUOTE ." FILENAME: " FNAME COUNT TYPE QUOTE CR
QUOTE ." TOTAL # OF CASES IN THIS RUN:" TOTAL-LOOPS @ .
." TIME:" .TIME ." DATE:" .DATE ." NRAST " NRASTERS @ .
QUOTE CR
QUOTE ." DX>" DX @ . ." DY>" DY @ . ." DELAY>" RASTER-DELAY @ .
." (XMIN,YMIN)=" XMIN @ 4 .R ." ," YMIN @ 4 .R 1 SPACES
." (XMAX,YMAX)=" XMAX @ 4 .R ." ," YMAX @ 4 .R 1 SPACES
." CENTER-BIN>" ARC-CENTER @ . QUOTE CR CR
QUOTE ." UI LD LI UD IA RC SUP OA "
." EX GUN E ANGLE " QUOTE CR
;
: PRINT-HEADER1
PRINTER-ON @ IF PRINTER OUTPUT-HEADER1 THEN CONSOLE
;
\ 13:50 01-08-91
: AUTO-ACCUM-PRINT
\ RASTER-ACCUM
\ DO-HISTOGRAM
GET-AREAS
PRINT-LINE
;
\ 17:23 01-22-91
: CASE-ACCUM-TO-FILE
DO-AREA @ IF
GET-AREAS \
ELSE
RASTER-ACCUM \
DO-HISTOGRAM \
THEN
DO-AZIM-CONV @ IF COMPUTE-AZIM-ACCEP THEN
FNAME ~>>FILE OUTPUT-LINE
PRINTER-ON @ IF PRINTER OUTPUT-LINE THEN
CONSOLE 7 EMIT ;
\ 13:28 12-17-90
: LOOP-LIMITS ( N --- LOOP-HI LOOP-LOW )
DUP RANGE@ 0= IF
MID@ DUP 1+ SWAP
ELSE
DUP MID@ SWAP RANGE@ 2DUP + 1+ -ROT -
THEN
;
\ 16:05 01-08-91
: CALC-TOTAL-LOOPS
1 15 1 DO
I LOOP-CHAN@ 0= IF LEAVE THEN
I RANGE@ 2* S>F
I LOOP-CHAN@ 14 = IF ANGLE-INC F@ ELSE I INC@ S>F THEN
F/ 0.51E F+ F>S
DUP 0= IF DROP ELSE * THEN
LOOP
TOTAL-LOOPS !
;
: DISP-LOOPS
0 5 GOTOXY ." TOTAL CASES REQUESTED: " TOTAL-LOOPS @ 5 .R
0 6 GOTOXY ." CURRENT CASE: " CURRENT-LOOP @ 5 .R
1 CURRENT-LOOP +!
;
\ 11:52 12-21-90
: INNER-LOOPS
2 LOOP-LIMITS DO I S>F 2 LOOP-CHAN@ V!
3 LOOP-LIMITS DO I S>F 3 LOOP-CHAN@ V!
4 LOOP-LIMITS DO I S>F 4 LOOP-CHAN@ V!
5 LOOP-LIMITS DO I S>F 5 LOOP-CHAN@ V!
6 LOOP-LIMITS DO I S>F 6 LOOP-CHAN@ V!
7 LOOP-LIMITS DO I S>F 7 LOOP-CHAN@ V!
8 LOOP-LIMITS DO I S>F 8 LOOP-CHAN@ V!
9 LOOP-LIMITS DO I S>F 9 LOOP-CHAN@ V!
10 LOOP-LIMITS DO I S>F 10 LOOP-CHAN@ V!
11 LOOP-LIMITS DO I S>F 11 LOOP-CHAN@ V!
12 LOOP-LIMITS DO I S>F 12 LOOP-CHAN@ V!
13 LOOP-LIMITS DO I S>F 13 LOOP-CHAN@ V!
14 LOOP-LIMITS DO I S>F 14 LOOP-CHAN@ V!
DISP-LOOPS 2NDARY-CALC OUTPUT-DATA TRODE-UPDATE-ALL
\ 12:24 12-21-90
PID-ACTIVE? @ IF PID THEN CASE-ACCUM-TO-FILE
REC-INDEX @ DUP SAVE-REC 1+ DUP REC-INDEX ! 74 15 GOTOXY 5 .R
14 INC@ +LOOP
13 INC@ +LOOP
12 INC@ +LOOP
11 INC@ +LOOP
10 INC@ +LOOP
9 INC@ +LOOP
8 INC@ +LOOP
7 INC@ +LOOP
6 INC@ +LOOP
5 INC@ +LOOP
4 INC@ +LOOP
3 INC@ +LOOP
2 INC@ +LOOP CLRSTK ;
\ 13:35 12-17-90
: AUTO-ACCUM-LOOP
1 LOOP-LIMITS S>F LOW-LIMIT F! S>F 0.9E F- HI-LIMIT F!
BEGIN
LOW-LIMIT F@ 1 LOOP-CHAN@ V!
INNER-LOOPS
LOW-LIMIT F@ 1 LOOP-CHAN@ 14 = IF
ANGLE-INC F@
ELSE
1 INC@ S>F
THEN
F+ LOW-LIMIT F!
LOW-LIMIT F@ HI-LIMIT F@ F>
UNTIL
CLRSTK
;
\ 22:34 12-03-90
: GET-LOOP-PARAMS
15 1 DO
BEGIN
." FOR LOOP " I . ." VARY CHANNEL #? " #IN L
DUP 0= IF DROP LEAVE THEN
DUP 14 = I 1 <> AND IF
7 EMIT ." ANGLE MUST BE OUTER LOOP!" L DROP FALSE
ELSE TRUE THEN
UNTIL
I LOOP-CHAN!
." MIDPOINT? " #IN I MID! L
." +/- RANGE? " #IN I RANGE! L
." INCREMENT" I LOOP-CHAN@ 14 = IF
." (FLOAT)? " F#IN ANGLE-INC F! ELSE ." ? " #IN I INC! THEN
L LOOP ;
\ 18:47 12-17-90
: SETUP-AUTO-ACCUM1
1 CURRENT-LOOP !
0 0 GOTOXY 32 SPACES 0 0 GOTOXY
." FILENAME.EXT ? " FNAME 20 GETSTRING L
." OUTPUT TO PRINTER ALSO(1=YES,0=NO)? " #IN L
IF TRUE PRINTER-ON ! ELSE FALSE PRINTER-ON ! THEN
15 1 DO 0 I RANGE! 1 I INC! 0 I MID! 3 I LOOP-CHAN! LOOP
." ANGLE(CH#14) MUST BE OUTER LOOP" L
." LOOP 1 IS OUTER- LOOP 14 IS INNER, ENTER 0 TO EXIT " L
GET-LOOP-PARAMS
2NDARY-SETUP GET-BEGIN-COMMENT CALC-TOTAL-LOOPS ;
\ 11:44 01-14-91
: LOOP-AUTO-ACCUM1
SETUP-DONE @ NOT IF 62 29 GOTOXY ." PLEASE SETUP"
7 EMIT 62 29 GOTOXY 15 SPACES EXIT THEN
SETUP-AUTO-ACCUM1
FNAME ~>>FILE OUTPUT-HEADER1
PRINT-HEADER1
CONSOLE
0 3 GOTOXY CLS ." RUNNING UNDER AUTOMATED CONTROL"
RIGHT-MENU1 AUTO-ACCUM-LOOP
FNAME ~>>FILE QUOTE .TIME QUOTE CR
PRINTER-ON @ IF PRINTER .TIME CR THEN
CONSOLE 7 EMIT
RESTORE-RASTER-PARAMS
CLS 0 0 GOTOXY GET-END-COMMENT CLS
RIGHT-MENU1 TRODE-UPDATE-ALL DISP-AUTO-MENU1 ;
\ 17:38 01-22-91
: DISP-AUTO-MENU1-VALS
REVERSE
76 13 GOTOXY DO-AREA @ IF ." YES" ELSE ." NO" THEN
76 14 GOTOXY DO-AZIM-CONV @ IF ." YES" ELSE ." NO" THEN
REVERSE
74 15 GOTOXY REC-INDEX @ 5 .R
;
\ 17:40 01-22-91
: AUTO-MENU-INPUT1 ( --- ) \ PROCESS AUTO MENU 1 SELECTIONS
BEGIN
BEGIN ?TERMINAL UNTIL KEY \ WAIT FOR KEY
DUP 67 = IF DO-AZIM-CONV @ NOT DO-AZIM-CONV ! THEN \ 'C
DUP 66 = IF DO-AREA @ NOT DO-AREA ! THEN
DUP 82 = IF 0 REC-INDEX ! THEN \ 'R
DUP 76 = IF LOOP-AUTO-ACCUM1 THEN \ 'L
DUP 80 = IF PRINT-LINE THEN \ 'P
DUP 65 = IF AUTO-ACCUM-PRINT THEN \ 'A
DUP 83 = IF SET-ACCUM-PARAMS IMG-CLEAR 0 0 GOTOXY
." SETUP IS COMPLETE " THEN \ 'R
DUP 72 = IF PRINT-HEADER1 THEN \ 'H
DUP 90 = IF DROP EXIT THEN CLRSTK \ 'Z
DISP-AUTO-MENU1 DISP-AUTO-MENU1-VALS
CLRSTK AGAIN ;
\ 17:41 01-22-91
: AUTO-CONTROL1
RMCLEAR RIGHT-MENU1 TRODE-UPDATE-ALL
DISP-AUTO-MENU1 DISP-AUTO-MENU1-VALS
AUTO-MENU-INPUT1
FALSE RASTER-ON !
CLS MENU TRODE-UPDATE-ALL
RESTORE-RASTER-PARAMS
;