-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy path14R_Valuta.bc2
272 lines (271 loc) · 8.67 KB
/
14R_Valuta.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
265
266
267
268
269
270
271
272
1000 A=1000:GOTO20:REM VALUTA
1010 RT$=CHR$(13):REM INVOERTOETS
1020 V=ASC("a")-ASC("A")
1030 GOSUB100:REM SCHERM SCHOON
1040 PRINT"VALUTA ";
1050 PRINT"door: HANS van DONGEN"
1052 PRINT"(uitleg in tijdschrift";
1054 PRINT" Aarde & Kosmos"
1056 PRINT"no.6 1987)"
1060 PRINT:T=0:REM TELLER
1070 PRINT"U kunt het programma";
1080 PRINT" sturen met:"
1090 VE=8:HO=15:GOSUB110:REM POSITIE
1100 PRINT"I=omhoog"
1110 VE=13:HO=3:GOSUB110:REM POSITIE
1120 PRINT"J=links W=wistoets";
1130 PRINT" K=rechts"
1140 VE=18:HO=15:GOSUB110:REM POSITIE
1150 PRINT"M=omlaag":PRINT:PRINT:PRINT
1160 READC$:READM$:READK
1170 IFC$<>"." THENT=T+1:GOTO1160
1180 T=T-1:DIMC$(T):DIMM$(T):DIMK(T)
1190 RESTORE:FORX=0 TOT
1200 READC$(X):READM$(X):READK(X)
1210 NEXTX:REM LAND MUNT KOERS
1220 PRINT"Druk op de invoertoets."
1230 GOSUB10000:REM INVOER
1240 IFIN$<>RT$ THEN1230
1250 REM INLEIDING
1260 REM ******************************
2000 GOSUB100:REM SCHERM SCHOON
2010 PRINT" REKENEN KOERSEN EENHE";
2020 PRINT"ID STOPPEN":PRINT
2030 PRINT" Land Munt";
2040 PRINT" Koers"
2050 FORX=0 TOT
2060 HO=0:VE=X+4:GOSUB110:REM POSITIE
2070 PRINT" ";C$(X):REM LAND
2080 HO=19:GOSUB110:REM POSITIE
2090 PRINTM$(X):REM MUNT
2100 GOSUB11000:REM MAAK K$ VAN KOERS
2110 PRINTK$:NEXTX:REM LIJSTJE
2120 HO=1:VE=1:GOSUB110:REM POSITIE
2130 PRINT"-------":P=1:D=0:REM KEUZE
2140 GOSUB10000:REM INVOER
2150 IFIN$="J" THENP=P-1
2160 IFIN$="K" THENP=P+1
2170 IFP=0 THENP=4
2180 IFP=5 THENP=1:REM VERANDER POS.
2190 HO=1:GOSUB110:REM POSITIE
2200 PRINT" ";
2210 PRINT" ":REM WIS LIJN
2220 HO=9*P-8:GOSUB110:REM POSITIE
2230 PRINT"-------":REM ONDERSTREEP
2240 IFIN$<>RT$ THEN2140:REM VERDER
2250 IFP=1 THEN3000
2260 IFP=2 THEND=3:GOTO4000:REM VLAG
2270 IFP=3 THEN5000
2280 GOTO9920:REM KEUZE UIT MENU
2290 REM KOERSEN EN KEUZE MENU
2300 REM ******************************
3000 HO=0:VE=0:GOSUB110:REM POSITIE
3010 FORX=1 TO40:PRINT" ";:NEXTX
3012 VE=1:GOSUB110:REM POSITIE
3014 FORX=1 TO40:PRINT" ";:NEXTX
3020 VE=0:GOSUB110:REM POSITIE
3030 PRINT"Wijs het land aan waarvan";
3040 PRINT" u uit gaat."
3042 VE=1:GOSUB110:REM POSITIE
3044 FORX=1 TO40:PRINT" ";:NEXTX
3050 GOSUB12000:REM KIES LAND
3060 VE=0:HO=0:GOSUB110:REM POSITIE
3070 FORX=1 TO40:PRINT" ";:NEXTX
3080 GOSUB110:REM POSITIE
3090 PRINT"Typ het bedrag: ";M$(P);
3100 PRINT" ";
3110 GOSUB13000:B=VAL(IV$):REM INVOER
3120 IFB=0 THEN3060
3130 VE=0:HO=0:GOSUB110:REM POSITIE
3140 FORX=1 TO40:PRINT" ";:NEXTX
3150 HO=24:VE=2:GOSUB110:REM POSITIE
3160 PRINT" Bedrag"
3170 FORX=0 TOT
3180 VE=X+4:GOSUB110:REM POSITIE
3190 PRINT" "
3200 GOSUB110:REM POSITIE
3210 SR=B*K(P)/K(X):CT=15:CN=2
3220 GOSUB310:REM FORMATTEER SR$
3230 PRINTSR$:REM OMGEREKEND BEDRAG
3240 NEXTX:REM LIJSTJE BEDRAGEN
3250 HO=0:VE=4+P:GOSUB110:REM POSITIE
3260 PRINT"*";:REM LAND VAN UITGAAND
3270 VE=0:GOSUB110:REM POSITIE
3280 PRINT"Druk op de invoertoets."
3290 GOSUB10000:REM INVOER
3300 IFIN$<>RT$ THEN3290
3310 GOTO2000:REM TERUG NAAR MENU
3320 REM REKEN BEDRAG OM
3330 REM ******************************
4000 VE=0:HO=0:GOSUB110:REM POSITIE
4010 FORX=1 TO40:PRINT" ";:NEXTX
4012 VE=1:GOSUB110:REM POSITIE
4014 FORX=1 TO40:PRINT" ";:NEXTX
4020 VE=0:GOSUB110:REM POSITIE
4030 PRINT"Typ de nieuwe koersen in."
4032 VE=1:GOSUB110:REM POSITIE
4034 FORX=1 TO40:PRINT" ";:NEXTX
4040 HO=24:VE=2:GOSUB110:REM POSITIE
4050 PRINT"Nieuwe koers"
4060 FORX=0 TOT
4070 IFK(X)=1 THEN4180:REM SLA OVER
4080 VE=X+4:GOSUB110:REM POSITIE
4090 PRINT" "
4100 GOSUB110:REM POSITIE
4110 GOSUB13000:K(X)=VAL(IV$):REM INV.
4120 IFK(X)=0 THENHO=24:GOTO4080
4130 HO=24:GOSUB110:REM POSITIE
4140 PRINT" "
4150 GOSUB11000:REM MAAK K$ VAN KOERS
4160 GOSUB110:REM POSITIE
4170 PRINTK$:REM NETTE NIEUWE KOERS
4180 NEXTX:REM LOOP NIEUWE KOERSEN AF
4190 VE=2:GOSUB110:REM POSITIE
4200 PRINT"Koers "
4210 VE=0:HO=0:GOSUB110:REM POSITIE
4220 PRINT" REKENEN KOERSEN EENHE";
4230 PRINT"ID STOPPEN":PRINT
4240 GOTO2120:REM TERUG IN MENU
4250 REM INVOER NIEUWE KOERSEN
4260 REM ******************************
5000 HO=0:VE=0:GOSUB110:REM POSITIE
5010 FORX=1 TO40:PRINT" ";:NEXTX
5012 VE=1:GOSUB110:REM POSITIE
5014 FORX=1 TO40:PRINT" ";:NEXTX
5020 VE=0:GOSUB110:REM POSITIE
5030 PRINT"Wijs met het pijltje het";
5040 PRINT" land aan waar-"
5050 VE=1:GOSUB110:REM POSITIE
5060 PRINT"van de munt als eenheid";
5070 PRINT" moet dienen."
5080 GOSUB12000:REM KIES LAND
5090 F=K(P):REM OMREKENFACTOR
5100 FORX=0 TOT
5110 K(X)=K(X)/F:REM NIEUWE KOERS
5120 NEXTX:REM KOERSEN NIEUWE EENHEID
5130 GOTO2000:REM NIEUWE LIJST EN MENU
5140 REM VERANDER EENHEIDSMUNT
5150 REM ******************************
9920 GOSUB100:REM SCHERM SCHOON
9930 PRINT"Wilt u echt stoppen (j/n)?"
9940 GOSUB10000:REM INVOER
9950 IFIN$<>"J" THEN2000:REM MENU
9960 PRINT:PRINT"JA":PRINT
9970 END
9980 REM SLUIT PROGRAMMA AF
9990 REM ******************************
10000 GOSUB210:REM WACHT OP TOETS
10010 IN=ASC(IN$):REM GETAL VOOR INVOER
10012 AA=ASC("a"):ZZ=ASC("z")
10020 IF(IN<AA) OR(IN>ZZ) THEN10030
10022 IN=IN-V:REM MAAK STANDAARD ASCII
10024 IN$=CHR$(IN):REM MAAK HOOFDLETTER
10030 RETURN:REM MAAK INVOER STANDAARD
10040 REM *****************************
11000 SR=K(X):CT=4:CN=2:K=0:REM FORMAAT
11010 IFSR>=10 THENSR=SR/10:K=K+1
11020 IFSR<1 THENSR=SR*10:K=K-1
11030 IF(SR>=10) OR(SR<1) THEN11010
11040 GOSUB310:REM FORMATTEER SR$
11050 K$=SR$:CN=0:IFK=0 THEN11100
11060 CT=K+1:IFK<0 THENCN=-K:CT=2-K
11070 SR=10^K:GOSUB310:REM FORMAT SR$
11080 IFLEN(SR$)>8 THENSR$="***"
11090 K$=K$+" ("+SR$+")"
11100 HO=24:GOSUB110:REM POSITIE
11110 RETURN:REM MAAK NETTE KOERS
11120 REM *****************************
12000 VE=4:HO=0:GOSUB110:REM POSITIE
12010 P=4:PRINT">";:REM WIJS LAND AAN
12020 GOSUB10000:REM INVOER
12030 IFIN$="M" THENP=P+1
12040 IFIN$="I" THENP=P-1
12050 IFP=3 THENP=4+T
12060 IFP=5+T THENP=4
12070 GOSUB110:REM POSITIE
12080 PRINT" ";:REM WIS PIJL
12090 VE=P:GOSUB110:REM POSITIE
12100 PRINT">";:REM WIJS NIEUW LAND
12110 IFIN$<>RT$ THEN12020:REM VERDER
12120 P=P-4:REM NUMMER VAN LAND
12130 GOSUB110:REM POSITIE
12140 PRINT" ";:REM WIS PIJL
12150 RETURN:REM KIES LAND
12160 REM *****************************
13000 GOSUB120:REM BEPAAL POSITIE
13010 PRINT"?":REM GEEF VRAAG AAN
13020 GOSUB110:REM POSITIE
13030 S=0:IV$="":REM TELLER EN INVOER
13040 GOSUB10000:REM INVOER
13050 IF(IN$=RT$) AND(S>0) THEN13200
13060 IF(IN$=RT$) AND(D=3) THEN13180
13070 IF(IN$="W") AND(S>0) THEN13140
13080 IFS>10-D THEN13040
13090 IFIN$="." THEN13120
13100 IFASC(IN$)<ASC("0") THEN13040
13110 IFASC(IN$)>ASC("9") THEN13040
13120 PRINTIN$;:HO=HO+1:S=S+1
13130 IV$=IV$+IN$:GOTO13040:REM TOETS
13140 HO=HO-1:GOSUB110:REM POSITIE
13150 PRINT" ":GOSUB110:REM POSITIE
13160 S=S-1:IFS=0 THENIV$=""
13162 IFS>0 THENIV$=LEFT$(IV$,S)
13170 GOTO13040:REM WISTOETS
13180 SR=K(X):GOSUB300:REM MAAK SR$
13190 IV$=SR$:REM BEHOUD OUDE KOERS
13200 PU=0:REM AANTAL PUNTEN IN INVOER
13210 FORPT=1 TOLEN(IV$)
13220 IFMID$(IV$,PT,1)="." THENPU=PU+1
13230 NEXTPT
13240 IFPU>1 THENIV$="0"
13250 RETURN:REM INVOER BEDRAG OF KOERS
13260 REM *****************************
25000 DATA "Nederland","fl",1
25010 DATA "Verenigde Staten","$",1.96
25020 DATA "Groot Brittannie","P",3.51
25030 DATA "Belgie","Fr",0.0552
25040 DATA "West-Duitsland","DM",1.1425
25050 DATA "Italie","L",0.00162
25060 DATA "Portugal","Esc",0.0155
25070 DATA "Canada","$",1.5
25080 DATA "Frankrijk","Fr",0.3475
25090 DATA "Zwitserland","Fr",1.3975
25100 DATA "Zweden","Kr",0.325
25110 DATA "Noorwegen","Kr",0.3075
25120 DATA "Denemarken","Kr",0.305
25130 DATA "Oostenrijk","oS",0.1625
25140 DATA "Spanje","Ptas",0.018
25150 DATA "Griekenland","Dr",0.015
25160 DATA "Finland","FM",0.4725
25170 DATA "Joegoslavie","Din",0.002
25180 DATA "Ierland","P",3.12
25190 DATA ".",".",0
25200 REM GEGEVENS OVER KOERSEN
25210 REM *****************************
30000 REM 1000 VERPLICHTE REGEL
30010 REM 1010- INLEIDING
30020 REM 2000- KOERSEN EN KEUZE MENU
30030 REM 3000- REKEN BEDRAG OM
30040 REM 4000- INVOER NIEUWE KOERSEN
30050 REM 5000- VERANDER EENHEIDSMUNT
30060 REM 9920- SLUIT PROGRAMMA AF
30070 REM 10000- MAAK INVOER STANDAARD
30080 REM 11000- MAAK NETTE KOERS
30090 REM 12000- KIES LAND
30100 REM 13000- INVOER BEDRAG OF KOERS
30110 REM 25000- GEGEVENS OVER KOERSEN
30120 REM 30000- INDELING PROGRAMMA
30130 REM 32000- GEGEVENS AUTEUR
30140 REM *****************************
32000 REM
32010 REM VALUTA
32020 REM
32030 REM EEN BASICODE-2 PROGRAMMA DOOR
32040 REM
32050 REM HANS VAN DONGEN
32060 REM HENDRIK VAN VELDEKESTRAAT 34
32070 REM 6367 SB VOERENDAAL
32080 REM
32090 REM (C) 22-11-1987
32100 REM
32110 REM COPYRIGHT NOS HILVERSUM