-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy path17_Titrations.bc2
264 lines (263 loc) · 8.32 KB
/
17_Titrations.bc2
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
1000 A=1000:GOTO20:REM TITRATIONS
1010 S=0:T1=0:X=0:GOSUB19000:REM INIT
1020 GOSUB12000
2000 REM --TITLE
2010 D$="*3":GOSUB11000
2020 W=0:HO=18:FORVE=2 TO6:GOSUB16000:NEXTVE
2050 FORVE=8 TO10 STEP2:GOSUB16000:NEXTVE
2060 GOSUB18500:IFA$="y" ORA$="Y" THENGOSUB13000
2070 GOSUB12000:D$="*4":GOSUB11000
2080 HO=14:FORVE=2 TO6 STEP2:GOSUB15000:NEXTVE
2100 GOSUB18500:IFA$="n" ORA$="N" THEN9990
2120 GOSUB12000:D$="*5":GOSUB11000
2200 HO=16:FORVE=2 TO10 STEP2:GOSUB15000:NEXTVE
2210 FORVE=14 TO18 STEP2:HO=16:GOSUB15000
2215 HO=22:GOSUB15000:NEXTVE
2220 VE=21:HO=15:GOSUB15000
3100 GOSUB10900:IFIN$="" THEN3120
3110 A=ASC(IN$)
3120 IFA=32 THEN5000:REM -CLEAR
3130 IFA=83 ORA=115 THENGOSUB10300:REM -STEADY FLOW
3140 IFA=68 ORA=100 THENGOSUB10400:REM -DROPS
3150 GOTO3100
5000 REM -READY
5010 D$="*7":GOSUB11000:GOSUB100
5020 IFX=7 THENS=INT((FD-SD+1)/(FD+SD-1)*100)
5030 W=0:VE=2:HO=2:GOSUB16000:VE=4
5040 W=1:GOSUB16000:READA$
5045 IFX<>7 THENHO=27:GOSUB14000:GOTO5060
5050 PRINT" ";ML/10;" n "
5060 W=0.2:VE=6:HO=2:GOSUB16000
5065 PRINT" ";INT(T/20);:HO=14:GOSUB15000
5070 W=2:VE=8:HO=2:GOSUB16000:PRINTS"%"
5080 W=0.5:VE=10:GOSUB16000
5200 IFX<7 THENV=0:GOTO5300
5210 IFX=8 THENV=1:GOTO5300
5220 IFS<95 THENV=2
5230 IFS<85 THENV=3
5240 IFS<60 THENV=4:GOTO5300
5250 V=5
5300 GOSUB260:VE=12:A$=R$(5*V+5*RV+1):GOSUB14000
5310 W=2:VE=14:GOSUB16000
5320 GOSUB18500:IFA$="y" ORA$="Y" THENRUN
9990 GOSUB100:VE=10:HO=0:GOSUB16000
9999 END
10000 REM -OPEN BURET TAP
10010 HO=4:A$(1)="!=! o":A$(2)="(i)==x":A$(3)=" H o"
10020 FORI=1 TO3:VE=14+I:A$=A$(I)
10025 GOSUB14000:NEXTI:RETURN
10100 REM -SHUT TAP
10110 HO=4:A$(1)="!=! "
10115 A$(2)="(-)==o":A$(3)=" H "
10120 FORI=1 TO3:VE=14+I:A$=A$(I):GOSUB14000:NEXTI
10130 HO=5:FORVE=19 TO20:A$=" "
10135 GOSUB14000:NEXTVE:RETURN
10200 REM -SPLASH
10210 W=0.002:HO=5:VE=21
10215 FORI=1 TO3:GOSUB18000:GOSUB110
10220 PRINTP$(I):NEXTI
10230 RETURN
10300 REM -STREAM
10310 GOSUB10000:DL=0
10320 HO=5:FORVE=19 TO21:A$="!":GOSUB14000:NEXTVE
10330 FD=FD+1:GOSUB10200:GOSUB10500
10340 GOSUB10900:IFIN$="" THEN10330
10350 A=ASC(IN$):IFA=83 ORA=115 THEN10330
10360 GOSUB10100:RETURN
10400 REM -DROPS
10410 GOSUB10000:DL=0.1
10420 SD=SD+1:GOSUB10100
10430 HO=5:FORVE=19 TO21:A$=".":GOSUB14000
10440 A$=" ":GOSUB14000:NEXTVE
10450 GOSUB10200:GOSUB10500:A=0:RETURN
10500 REM -DETERMINE REACTION
10510 M=M+1:IFM=8 THENN=N+1:M=0
10520 IFSS=0 THENSS=1:TS=T1
10530 IFN>15 THENGOSUB10100:RETURN
10540 HO=5
10545 IFM=0 THENVE=N-1:A$=" ":GOSUB14000:GOTO10560
10550 VE=N:A$=MID$(L$,M,1):GOSUB14000
10560 DD=EP-FD-SD
10570 ML=INT((FD+SD)/.16)/100:VE=21:HO=9
10575 GOSUB110:PRINTML
10580 X=8:IFDD=0 THENX=7
10590 IFDD>0 THENX=6
10600 IFDD>1 THENX=5
10610 IFDD>3 THENX=4
10620 IFDD>5 THENX=3
10630 IFDD>8 THENX=2
10640 IFDD>11 THENX=1
10650 IFDD>16 THENX=0
10660 IFDD>25 THEN10700
10700 HO=4:Q=0:I=X*4+1:FORE=I TOI+3:VE=21
10710 IFQ=1 THENVE=22
10720 IFQ=2 THENVE=22
10730 GOSUB110:PRINTE$(E);
10740 Q=Q+1
10750 W=DL:GOSUB18000:NEXTE
10760 RETURN
10900 REM -KEYS + TIME
10910 GOSUB200:T=T+1:RETURN
11000 REM -DATA SEARCH
11010 RESTORE
11020 READA$:IFA$=D$ THENRETURN
11030 GOTO11020
12000 REM --DRAW BURET
12010 GOSUB100:D$="*2":GOSUB11000
12020 HO=0:FORVE=0 TO23:GOSUB15000:NEXTVE
12030 RETURN
13000 REM --INSTRUCTIONS
13010 D$="*6":GOSUB11000
13020 GOSUB100:HO=0:W=0
13030 FORVE=1 TO3 STEP2:GOSUB16000:NEXTVE
13040 VE=12:W=2:GOSUB16000
13050 W=0:HO=4
13060 FORVE=6 TO10:GOSUB16000:NEXTVE
13065 W=2:FORI=1 TO2:VE=12
13070 HO=0:GOSUB16000:VE=10-I:HO=5:GOSUB16000:NEXTI
13080 W=3:VE=12:HO=0:GOSUB16000:HO=5:READA$(1),A$(2)
13090 FORI=1 TO100:VE=8:IFI/2=INT(I/2) THENVE=9
13100 GOSUB260:A=1+INT(RV+0.5)
13105 A$=A$(A):GOSUB14000:NEXTI
13110 W=3:HO=0:VE=14:GOSUB16000
13120 W=4:HO=13:VE=7:GOSUB16000:VE=9
13125 GOSUB16000:GOSUB17000
13130 W=4:HO=0:VE=12:GOSUB16000:FORI=1 TO3
13140 GOSUB17000:HO=0
13145 FORVE=14 TO16 STEP2:GOSUB16000:NEXTVE
13150 HO=5:READA$
13155 FORVE=8 TO9:GOSUB14000:NEXTVE:NEXTI
13200 HO=0:GOSUB17000
13205 FORVE=14 TO16 STEP2:GOSUB16000:NEXTVE
13210 W=5:GOSUB18000:GOSUB100
13220 VE=10:GOSUB15000:GOSUB18000
13230 RETURN
14000 REM PRINTA$;
14010 GOSUB110:PRINTA$;:RETURN
15000 REM -READA$+14000
15010 READA$:GOSUB110:PRINTA$;:RETURN
16000 REM -WAIT +15000
16010 GOSUB18000:READA$:GOSUB110:PRINTA$;:RETURN
17000 REM -ERASE LINES
17005 GOSUB18000
17010 HO=0:FORVE=12 TO19:GOSUB110
17020 PRINT" "
17030 NEXTVE:RETURN
18000 FORW1=0 TOW*800:NEXTW1:RETURN
18500 INPUTA$:A$=LEFT$(A$,1):RETURN
19000 DIMA$(3),E$(36),R$(30),P$(3):READL$
19010 FORI=1 TO3:READP$(I):NEXTI
19020 FORI=1 TO36:READE$(I):NEXTI
19030 FORI=1 TO30:READR$(I):NEXTI
19040 GOSUB260:SS=0:M=4:N=1:FD=0
19050 SD=0:EP=INT(115*RV)
19060 RETURN
25000 DATA"====----","x","+","0"
25010 DATA"o+o","ooo","ooo","ooo"
25020 DATA"o+o","o*o","ooo","ooo"
25030 DATA"+*+","o+o","ooo","ooo"
25040 DATA"+*+","+*+","ooo","ooo"
25050 DATA"***","**+","ooo","ooo"
25060 DATA"***","***","ooo","ooo"
25070 DATA"***","***","ooo","o0o"
25080 DATA"***","***","+++","+++"
25090 DATA"***","***","***","***"
25100 DATA"Endpoint NOT reached","Is that all?","Too quick"
25110 DATA"Sure?","Try again!","Butterfingers!"
25120 DATA"Is your brain working?","You missed it !"
25130 DATA"Sure that was it?","Stop shaking."
25140 DATA"ZZZZ, too slow!","We haven't got all day!"
25150 DATA"Chemist huh?","Tried any other jobs?"
25160 DATA"drip, drip!","Getting better!"
25170 DATA" Keep practising!","Not too bad."
25180 DATA"That's worse.","Feeling ok?","That's it !"
25190 DATA"Good!","Could have been faster.","Nearly perfect"
25200 DATA"Getting better.","Nearly there.","Improving !!"
25210 DATA"Perfect !","Fantastic!","Couldn't be better!"
25220 DATA"*2","I ! !"
25230 DATA"I !=!-0"
25240 DATA"I !=!-"
25250 DATA"I !=!-1"
25260 DATA"I !=!-"
25270 DATA"I !=!-2"
25280 DATA"I===[=]-"
25290 DATA"I !=!-3"
25300 DATA"I !=!-"
25310 DATA"I !=!-4"
25320 DATA"I !=!-"
25330 DATA"I !=!-5"
25340 DATA"I !=!-"
25350 DATA"I !=!-6"
25360 DATA"I !=!-"
25370 DATA"I !=!"
25380 DATA"I (-)==o"
25390 DATA"I H"
25400 DATA"I V"
25410 DATA"I"
25420 DATA"I ! !"
25430 DATA"I !ooo!"
25440 DATA"I !ooo!"
25450 DATA"================"
25460 DATA"*3"," "
25470 DATA"CHIP SHOP "
25480 DATA " "
25490 DATA "Titration "
25500 DATA " "
25510 DATA "Simulator "
25520 DATA "Need instructions"
25530 DATA "*4","Look..I've got"
25540 DATA "the solutions ready."
25550 DATA "Ready to go"
25560 DATA "Alright, lazybones!"
25570 DATA "*5","-----------------"
25580 DATA "Computer Titrator"
25590 DATA " buret control: "
25600 DATA " Press "
25610 DATA "-----------------"
25620 DATA "s","-steady flow"
25630 DATA "d","-single drops"
25640 DATA "space","-when complete"
25650 DATA "ml 1.000 n hcl"
25660 DATA "*6","We want to know the strength of a "
25670 DATA " basic (NaOH) solution. "
25680 DATA "We take a glass beaker.."
25690 DATA "! !"
25700 DATA "! !"
25710 DATA "! !"
25720 DATA "! !"
25730 DATA " ----- "
25740 DATA "and put in 10 ml of base (NaOH)."
25750 DATA "ooooo"
25760 DATA "If we now add acid (HCl)... "
25770 DATA "00000"
25780 DATA "the base reacts with the acid, "
25790 DATA "0o0o0"
25800 DATA "o0o0o"
25810 DATA "to give a salt (NaCl) + water."
25820 DATA "NaOH + HCl--> NaCl + HOH"
25830 DATA "base acid salt water"
25840 DATA "We now add indicator to the solution.. "
25850 DATA "When exactly the right amount of acid "
25860 DATA "has reacted, we get a colour change. "
25870 DATA "+++++"
25880 DATA "But, add too much acid, and we miss "
25890 DATA "the ENDPOINT of the reaction."
25900 DATA "*****"
25910 DATA "The calibrated buret tells us how much "
25920 DATA "acid we used to reach the ENDPOINT."
25930 DATA "+++++"
25940 DATA "We know the strength of the acid..."
25950 DATA "so we can calculate the base strength."
25960 DATA "It isn't all that difficult!"
25970 DATA "*7","Analysis completed."
25980 DATA "The sample is","..ruined !"
25990 DATA "You took"," seconds."
26000 DATA "You score "
26010 DATA "---------------"
26020 DATA "Another go"
26030 DATA "Creep! Just when I was enjoying it."
30000 REM
30010 REM TITRATION SIMULATOR
30020 REM
30030 REM TRANSLATED FOR CHIP SHOP
30040 REM BY JONATHAN MARKS