-
Notifications
You must be signed in to change notification settings - Fork 0
/
output26.scr
128 lines (99 loc) · 3.39 KB
/
output26.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
\ Electron Drift Instrument 13:19 12-28-90
(
Source Files
FOR THE USER INTERFACE
MULTITASKING SYSTEM FOR HIGH VOLTAGE CONTROL FOR EDI OPTICS
BY JOE RITTER AND SLOBODAN BEROS
MODS BY SCOTT WEISMAN
OUTPUT23.SCR
)
\ 13:22 12-28-90
DECIMAL
FVARIABLE E-GUN-ACTUAL
-1000E E-GUN-ACTUAL F!
: OUTPUT-DELAY ( --- )
17 TICK ! \ 17 * 50 MSEC = .85 SEC
BEGIN
TICK @ 0=
UNTIL
;
\ 10:03 12-28-90
HEX ( NEW IMPLEMENTATION )
: OUTPUT-OLD ( ---, SEND ARRAY TO CARD FOR D/A CONVERSION )
( FIRST MODULE 1 AT CD00:180 )
O[] 2 + ADDR>PTR BOARD-BASE 180 >PTR 10 CMOVEL
( NEXT MODULE 2 AT CD00:280 )
O[] 12 + ADDR>PTR BOARD-BASE 280 >PTR A CMOVEL
LATCH \ REMEMBER HEX VALS ARE USED - EG. 12 ( 18 DEC)
;
: OUTPUT ( --- ) \ SEND OUTPUT ARRAY TO CARD EXCEPT CH#7
( MODULE 1 STARTS AT OFFSET 180; MODULE 2 AT 280 )
O[] 2 + ADDR>PTR BOARD-BASE 180 >PTR C CMOVEL \ CH#1-6
8 O@ BOARD-BASE 18E >PTR W!L \ CH#8
O[] 12 + ADDR>PTR BOARD-BASE 280 >PTR A CMOVEL \ CH#9-13
LATCH \ REMEMBER HEX VALS ARE USED - EG. 12 ( 18 DEC)
; \ CH#7 IS DONE SEPARATELY, SINCE THAT IS MOTOR OUT
\ 09:55 12-28-90
DECIMAL
: SCALE-OLDER ( -- )
( MULTIPLY VALUE ARRAY BY SCALE FACTOR ARRAY THEN )
( STORE RESULT IN OUTPUT ARRAY )
14 1 DO I
I VOUT@ 409.6E0 F*
I S@ F/ FROUND
F>S 2048 + I O!
LOOP
;
\ 09:55 12-28-90
DECIMAL
: SCALE-OLD ( -- ) \ ORIGINAL--NO BEAM ENERGY SCALING
( MULTIPLY VALUE ARRAY BY SCALE FACTOR ARRAY THEN )
( STORE RESULT IN OUTPUT ARRAY )
14 1 DO I
I VOUT@
I 8 = IF 30E F+ THEN \ QUICK FIX FOR OFFSET IN V!
\ FOR BIPOLAR CHANNEL OFFSET
409.6E0 F*
I S@ F/ FROUND
F>S 2048 + I O!
LOOP
;
\ 10:05 12-28-90
DECIMAL
: SCALE ( -- ) \ DOES ELECTRON GUN SCALING AS WELL
( MULTIPLY VALUE ARRAY BY SCALE FACTOR ARRAY THEN )
( STORE RESULT IN OUTPUT ARRAY )
14 1 DO
I 5 = IF E-GUN-ACTUAL F@ ELSE I VOUT@ THEN \ GET EGUN IF CH5
I OFFSET@ F+ \ ADD OFFSET FOR CHANNEL I
\ FOR BIPOLAR CHANNEL OFFSET
I 5 <> IF E-GUN-ACTUAL F@ 5 VOUT@ F/ F* THEN
\ Vout*GUNact/GUNdes
409.6E0 F* \ THESE LINES IMPLEMENT THE VOLTAGE
I S@ F/ FROUND \ TO DAC OUTPUT VALUE AS DOCUMENTED
F>S 2048 + I O! \ IN THE BURR-BROWN MANUAL
LOOP
; \ CH#5 IS CONST & ALL OTHER VALS ARE SCALED TO MIMIC CHANGE
\ 18:30 12-05-90
: OUTPUT-DATA
TRODE-CHANGE @ IF SCALE OUTPUT
FALSE TRODE-CHANGE !
OUTPUT-DELAY
THEN
;
\ 20:42 10-27-90
VARIABLE CAL-CHANNEL
: CALIBRATE
BEGIN L
L ." ENTER CHANNEL TO CALIBRATE: " #IN CAL-CHANNEL !
L ." CURRENT VOLTAGE: " CAL-CHANNEL @ V@ F.
." ENTER VOLTAGE: " #IN S>F CAL-CHANNEL @ V!
L ." CURRENT SCALE FACTOR: " CAL-CHANNEL @ XLT S@ F.
." ENTER SCALE FACTOR: " #IN S>F CAL-CHANNEL @ XLT S!
L ." CURRENT OFFSET VALUE: " CAL-CHANNEL @ XLT OFFSET@ F.
." ENTER OFFSET VALUE: " #IN S>F CAL-CHANNEL @ XLT OFFSET!
TRUE TRODE-CHANGE ! OUTPUT-DATA
L ." AGAIN(Y/N)? "
KEY 89 <>
UNTIL
;