-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathB08_Notenbalk.bc3
478 lines (477 loc) · 15.2 KB
/
B08_Notenbalk.bc3
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
1000 A=2000:GOTO20:REM NOTENBALK
1010 DIMTN$(14),NO$(96),TE$(96)
1020 GOSUB9480:REM --- tonentabel ---
1030 NT$=" ":FG$=" ":KM$=" ":W$=" "
1040 PT$=" ":MP=0:NO$(0)="X"
1050 P$="":D$="":V$="4":VG$="4":M$="4"
1060 FG=0:T=0:U=0:VM=0:VA=0
1070 GOSUB8010:REM --- titel ---
1080 GOSUB600:CN=0
1090 GOSUB5540:REM --- muziekscherm ---
1100 REM
1110 REM === HOOFDPROGRAMMA ===
1120 IFNO$(0)="X" THENNO$(0)="Y":GOSUB9260
1130 IFIN$="#" THEN GOSUB9290:GOTO1170
1140 IFIN=66 THENIN$="b":GOSUB9290:GOTO1170
1150 GOTO1210
1160 REM --- 1e toets kiest subr.---
1170 GOSUB210
1180 IFIN=72 THEN GOSUB8120:IN=84
1190 REM -- Cursor,spatiebalk,delete --
1200 IFIN=32 THENIN=29
1210 IF(IN>27)AND(IN<32) THEN GOSUB1530:GOTO1170
1220 IFIN=127 THENIN=28:GOSUB1530:GOSUB3250
1230 REM -- verlengnoot --
1240 IFIN=43 THENT=2:GOSUB1740:GOTO1500
1250 REM --- Noot ---
1260 IF(IN$>="A")AND(IN$<"H") THENFG=0:GOSUB1740:GOTO1500
1270 IF(IN$>="a")AND(IN$<"h") THENFG=1:GOSUB1740:GOTO1500
1280 REM --- Maataanduiding ---
1290 IFIN=47 THEN GOSUB9400:GOTO1170
1300 REM --- Invoegen ---
1310 IFIN=73 THEN GOSUB7010:GOTO1170
1320 REM --- Maatstreep ---
1330 IFIN=77 THENIN$="M":GOSUB2660:GOSUB1590:GOTO1170
1340 REM --- Rust ---
1350 IFIN=82 THENIN$="R":GOSUB2730:GOSUB1590:GOTO1200
1360 REM --- Speel ---
1370 IFIN=83 THEN GOSUB5010:GOTO1170
1380 REM --- Teken opnieuw ---
1390 IFIN=84 THEN GOSUB600:GOSUB5540:GOSUB5820:GOTO1480
1400 REM --- Uithalen ---
1410 IFIN=85 THEN GOSUB7010:GOTO1170
1420 REM --- Volume ---
1430 IFIN=86 THEN GOSUB3200:GOTO1170
1440 REM --- Wis op cursor ---
1450 IFIN=87 THEN GOSUB3250:GOTO1170
1460 REM --- Load/Save ---
1470 IFIN$="*" THEN GOSUB5210:IN=84:GOTO1390
1480 IFNO$(0)="X" THEN1120
1490 GOTO1170
1500 GOSUB1590:GOTO1170
1510 REM
1520 REM === CURSOR ===
1530 CU=IN-27:ONCU GOTO1540,1590,1640,1680
1540 IFNO=1 THENRETURN
1550 CN=1:GOSUB1710:REM wis
1560 NO=NO-1:HC=HC-.04
1570 IF(HC<.05)AND(VC>.2) THENHC=.98:VC=VC-.24
1580 GOTO1710:REM print opnieuw
1590 IFNO=96 THENRETURN
1600 CN=1:GOSUB1710:REM wis
1610 NO=NO+1:HC=HC+.04
1620 IF(HC>.99)AND(VC<.9) THENHC=.06:VC=VC+.24
1630 GOTO1710:REM print opnieuw
1640 IFNO>72 THENRETURN
1650 CN=1:GOSUB1710:REM wis
1660 NO=NO+24:VC=VC+.24
1670 GOTO1710:REM print opnieuw
1680 IFNO<25 THENRETURN
1690 CN=1:GOSUB1710:REM wis
1700 NO=NO-24:VC=VC-.24
1710 HO=HC-.02:VE=VC-.01:SR$=".":GOSUB650:CN=0
1720 RETURN
1730 REM === NOOT ===
1740 P$="":IFT<2 THEN1770
1750 IFVA=0 THENT=0:RETURN
1760 VN=VA:GOTO1870
1770 SR=FG:GOSUB300:FG$=SR$
1780 SR=IN-65:GOSUB300:NT$=SR$
1790 REM --- hulplijntjes --
1800 IF(FG=1)OR(IN>67) THEN1850
1810 HO=HC-.03:VE=VC-.03:GOSUB620
1820 HO=HC:GOSUB630
1830 IFIN>65 THEN1850
1840 HO=HC-.03:VE=VC:GOSUB620:HO=HC:GOSUB630
1850 P=IN-65:VN=VC-(FG*.105)-(P*.015)
1860 P$=TN$(1+P+7*FG):VA=VN
1870 HN=HC:IFT<2 THEN1950
1880 REM --- verlengboogje ---
1890 HN=HC:HO=HN:VE=VN+.02:GOSUB620
1900 HO=HO-.02:VE=VE+.02:GOSUB630
1910 HO=HO-.02:GOSUB630
1920 HO=HO-.02:VE=VE-.02:GOSUB630
1930 IFD$="+" THENRETURN
1940 REM --- teken noot ---
1950 HO=HN:VE=VN-.01:GOSUB620
1960 HO=HN-.01:GOSUB630
1970 HO=HO-.01:VE=VE+.01:GOSUB630
1980 VE=VE+.01:GOSUB630
1990 HO=HO+.01:GOSUB630
2000 HO=HO+.01:VE=VE-.01:GOSUB630
2010 VE=VE-.01:GOSUB630
2020 IFT=1 THENRETURN
2030 KM$=" "
2040 GOSUB210
2050 IFIN$="#" THENKM$=IN$:GOSUB2540:GOTO2040
2060 IFIN=66 THENKM$="b":GOSUB2550:GOTO2040
2070 IFIN$="1" THENW$=IN$:D$="16":GOTO2340
2080 IFIN$="2" THEND$="08":GOTO2140
2090 IFIN$="4" THEND$="04":GOTO2140
2100 IFIN$="8" THEND$="02":GOTO2140
2110 IFIN$="6" THEND$="01":GOTO2140
2120 GOSUB250:GOTO2040
2130 REM ---stokje---
2140 W$=IN$:HO=HN:VE=VN-.06:GOSUB620
2150 VE=VE+.06:GOSUB630
2160 IFIN$="2" THEN2340
2170 REM ---vullen---
2180 HZ=HN-.01:VE=VN-.01
2190 HO=HN:VE=VE+1/VG:GOSUB620
2200 HZ=HZ-1/VG:HO=HZ:GOSUB630
2210 IFVE<VN THEN2190
2220 HZ=HN-.01:VE=VN+.01
2230 HO=HN-.02:VE=VE-1/VG:GOSUB620
2240 HZ=HZ+1/VG:HO=HZ:GOSUB630
2250 IFVE>VN THEN2230
2260 IFIN$="4" THEN2340
2270 REM 1e vlag
2280 HO=HN:VE=VN-.06:GOSUB620
2290 HO=HO+.01:VE=VE+.02:GOSUB630
2300 IFIN$="8" THEN2340
2310 REM 2e vlag
2320 HO=HO-.01:GOSUB620
2330 HO=HO+.01:VE=VE+.02:GOSUB630
2340 IFT=1 THENRETURN
2350 GOSUB210
2360 REM --- EVT punt of maatstreep ---
2370 IFIN$="." THEN2410
2380 IFIN=77 THEN2490:REM M
2390 PT$=" ":GOTO2510
2400 REM --- verleng-punt ---
2410 HO=HN+3/HG:VE=VN-2/VG:GOSUB620
2420 HO=HO+1/HG:GOSUB620
2430 IFD$="02" THEND$="03"
2440 IFD$="04" THEND$="06"
2450 IFD$="08" THEND$="12"
2460 IFD$="16" THEND$="24"
2470 PT$=".":GOTO2510
2480 REM --- compacte maatstreep ---
2490 VM=.015:GOSUB2660:VM=0
2500 PT$="M"
2510 IFT=1 THENRETURN
2520 GOSUB3060:RETURN
2530 REM === kruis of mol ===
2540 IFIN$="#" THENSR=VAL(P$)+1:GOSUB300:P$=SR$:GOTO2560
2550 IFIN=66 THENIN$="b":SR=VAL(P$)-1:GOSUB300:P$=SR$
2560 HO=HN-.05:VE=VN-.02:SR$=IN$
2570 IFIN$="#" THEN GOSUB650
2580 IFIN$="b" THEN GOSUB2610
2590 HO=HN:VE=VN-.01:RETURN
2600 REM === teken mol ===
2610 GOSUB620:VE=VE+.04:GOSUB630
2620 HO=HO+.015:VE=VE-.01:GOSUB630
2630 VE=VE-.01:GOSUB630
2640 HO=HO-.015:GOSUB630:RETURN
2650 REM === MAATSTREEP ===
2660 HO=HC+VM
2670 VE=VC-.06:GOSUB620:VE=VE-.12:GOSUB630
2680 IFVM>0 THENRETURN
2690 IFT=1 THENRETURN
2700 NO$(NO)="":TE$(NO)="M ":IFNO>MP THENMP=NO
2710 RETURN
2720 REM === RUST ===
2730 NT$=IN$:M$=V$
2740 GOSUB210:IF(IN<49)OR(IN>56) THEN GOSUB250:GOTO2730
2750 IF(IN=51)OR(IN=53)OR(IN=55) THEN GOSUB250:GOTO2730
2760 V$="0":W$=IN$
2770 IFIN>49 THEN2830:REM 1/1
2780 VR=VC-.12:HR=HC-.02
2790 VR=VR+1/VG:HO=HC:VE=VR:GOSUB620
2800 HO=HR:GOSUB630
2810 IFVE<VC-.11 THEN2790
2820 D$="16":GOTO3020
2830 IFIN>50 THEN2890:REM 1/2
2840 VR=VC-.12:HR=HC-.02
2850 VR=VR-1/VG:HO=HC:VE=VR:GOSUB620
2860 HO=HR:GOSUB630
2870 IFVE>VC-.13 THEN2850
2880 D$="08":GOTO3020
2890 IFIN>52 THEN2960:REM 1/4
2900 VE=VC-.16:HO=HC-.02:GOSUB620
2910 VE=VE+.02:HO=HO+.02:GOSUB630
2920 VE=VE+.01:HO=HO-.01:GOSUB630
2930 VE=VE+.02:GOSUB630
2940 VE=VE+.01:HO=HO-.01:GOSUB630
2950 D$="04":GOTO3020
2960 HO=HC-.01:VE=VC-.1:REM 1/8
2970 GOSUB620:HO=HO+.02:VE=VE-.04:GOSUB630
2980 HO=HO-.02:GOSUB630
2990 IFIN>54 THEND$="02":GOTO3020
3000 VE=VE+.03:GOSUB620:REM 1/16
3010 HO=HO+.015:GOSUB630:D$="01"
3020 IFT=1 THENRETURN
3030 GOSUB3060:RETURN
3040 REM === OPSLAG ===
3050 REM --- muziektoon ---
3060 IFT<2 THEN3090
3070 X=VAL(NO$(LA))+10*VAL(D$)
3080 SR=X:GOSUB300:NO$(LA)=SR$:GOTO3140
3090 LA=NO:NX$=NT$:FX$=FG$
3100 NO$(NO)=P$+D$+V$:IFV$="0" THENVA=0
3110 V$=M$
3120 N=NO:GOSUB5110
3130 REM --- tekendata ---
3140 IFT=2 THENNT$=NX$:FG$=FX$:KM$="+"
3150 TE$(NO)=NT$+FG$+KM$+W$+PT$
3160 NT$=" ":KM$=" ":W$=" ":PT$=" ":T=0
3170 IFNO>MP THENMP=NO
3180 RETURN
3190 REM === VOLUME ===
3200 GOSUB210:IF(IN<49)OR(IN>55) THEN GOSUB250:GOTO3200
3210 CN=1:HO=0:VE=0:SR$=VG$:GOSUB650
3220 CN=0:VG$=IN$:SR$=IN$:GOSUB650
3230 V$=IN$:M$=IN$:RETURN
3240 REM === WIS OP CURSORPOSITIE ===
3250 TE$(NO)="":NO$(NO)=""
3260 HW=HC-.03:VW=VC+.01:TW=VC-.26
3270 CN=1:HW=HW+1/HG:HO=HW
3280 VE=VW:GOSUB620:VE=TW:GOSUB630
3290 CN=0
3300 VE=VC-.18:GOSUB620
3310 VE=VC-.15:GOSUB620
3320 VE=VC-.12:GOSUB620
3330 VE=VC-.09:GOSUB620
3340 VE=VC-.06:GOSUB620
3350 IFHW<HC+.02 THEN3270
3360 RETURN
5000 REM === SPEEL MUZIEK ===
5010 FORN=0 TOMP
5020 IFNO$(N)="" THEN5040
5030 GOSUB5110
5040 NEXTN
5050 RETURN
5100 REM === SPEEL 1 NOOT ===
5110 SP=VAL(MID$(NO$(N),1,2))
5120 SD=VAL(MID$(NO$(N),3,2))
5130 SV=VAL(MID$(NO$(N),5,1))*2
5140 GOSUB400
5150 RETURN
5200 REM === * MENU ===
5210 GOSUB100:PRINT
5220 SR$="M E N U":GOSUB150:PRINT:PRINT
5230 PRINT" 1 = UITLEG":PRINT
5240 PRINT" 2 = TERUG NAAR MUZIEKSCHERM":PRINT
5250 PRINT" 3 = EEN NAAM PLAATSEN":PRINT
5260 PRINT" 4 = SAVEN VAN MUZIEK (CASSETTE)":PRINT
5270 PRINT" 5 = SAVEN VAN MUZIEK (DISK)":PRINT
5280 PRINT" 6 = LADEN VAN MUZIEK (CASSETTE)":PRINT
5290 PRINT" 7 = LADEN VAN MUZIEK (DISK)":PRINT
5300 PRINT" 8 = MUZIEKGEHEUGEN WISSEN":PRINT
5310 PRINT" 9 = STOPPEN MET DIT PROGRAMMA":PRINT
5320 PRINT" Tik een cijfer ";:GOSUB210
5330 IF(IN<49)OR(IN>57) THEN5320
5340 GOSUB100:PRINT:PRINT" MOMENT"
5350 IFIN=49 THEN GOSUB8120:GOTO5210
5360 IFIN=50 THENRETURN
5370 IFIN=56 THEN GOSUB9480:NO=1:NO$(0)="X":MP=0:RETURN
5380 IFIN=57 THEN950
5390 ONIN-50 GOSUB5510,9040,9010,9160,9130
5400 RETURN
5500 REM === NAAM ===
5510 GOSUB100:PRINT"GEEF DE NAAM":PRINT
5520 INPUTA$:TE$(0)=A$:RETURN
5530 REM === NOTENBALKEN ===
5540 FORN=.08 TO.81 STEP.24:HO=0
5550 VE=N:GOSUB620:VE=VE+.12:GOSUB630
5560 FORM=0 TO.121 STEP.03
5570 HO=0:VE=M+N:GOSUB620
5580 HO=.999:GOSUB630
5590 NEXTM:VE=VE-.12:GOSUB630:NEXTN
5600 IFU=1 THENU=0:RETURN
5610 REM --- sleutels ---
5620 FORN=.23 TO.95 STEP.24
5630 HO=.02:VE=N:GOSUB620
5640 HO=HO+6E-3:VE=VE-4E-3:GOSUB630
5650 HO=HO-8E-3:VE=VE-.15:GOSUB630
5660 HO=HO+8E-3:VE=VE-5E-3:GOSUB630
5670 HO=HO+8E-3:VE=VE+8E-3:GOSUB630
5680 HO=HO-.03:VE=VE+.09:GOSUB630
5690 VE=VE+.02:GOSUB630
5700 HO=HO+.01:VE=VE+.02:GOSUB630
5710 HO=HO+.02:GOSUB630
5720 HO=HO+.01:VE=VE-.02:GOSUB630
5730 VE=VE-.02:GOSUB630
5740 HO=HO-.01:VE=VE-.01:GOSUB630
5750 HO=HO-.01:GOSUB630
5760 HO=HO-.01:VE=VE+.02:GOSUB630
5770 NEXTN
5780 REM ---init. cursor ---
5790 HC=.06:VC=.26:NO=1:GOSUB1710
5800 RETURN
5810 REM === TEKEN MUZIEK UIT TE$() ==
5820 HO=.3:VE=0:SR$=TE$(0):GOSUB650
5830 T=1:D$=NO$(0):IFLEN(D$)=1 THENIN$=D$:GOTO5860
5840 A$=MID$(D$,2,1):B$=MID$(D$,3,1):C$=MID$(D$,1,1)
5850 IN$="/":GOSUB9400:IN$=C$
5860 IF(IN$="#")OR(IN$="b") THEN GOSUB9290
5870 IFMP=0 THENT=0:RETURN
5880 AA=1:BB=MP
5890 FORX=AA TOBB:A$=TE$(X)
5900 IFTE$(X)="" THEN5920
5910 GOSUB6010
5920 GOSUB1590:NEXTX:T=0
5930 RETURN
6000 REM === NOTEN TEKEN ROUTINE ===
6010 B$=MID$(A$,1,1):C$=MID$(A$,2,1)
6020 D$=MID$(A$,3,1):E$=MID$(A$,4,1):F$=MID$(A$,5,1)
6030 IFB$="M" THEN GOSUB2660:RETURN
6040 IFB$="R" THENIN=VAL(E$)+48:GOSUB2770:RETURN
6050 IF(B$<"0")OR(B$>"7") THENRETURN
6060 IN=VAL(B$)+65:FG=VAL(C$):GOSUB1800
6070 IFD$="#" THENIN$="#":GOSUB2540
6080 IFD$="b" THENIN$="b":GOSUB2550
6090 IFD$="+" THEN GOSUB1890
6100 IN$=E$:IFE$>"1" THEN GOSUB2140
6110 IN$=F$:IFIN$="M" THENIN=77
6120 GOSUB2370
6130 RETURN
7000 REM === INVOEGEN/UITHALEN ===
7010 IFNO=72 THENRETURN
7020 BA=INT((NO+23)/24):TP=24*BA:MM=NO:VV=VC:HH=HC
7030 CN=1:VE=VC-.26:REM --wis notenb.--
7040 HO=HC-.03:GOSUB620
7050 HO=1:GOSUB630:VE=VE+1/VG
7060 IFVE<VC+.02 THEN7040
7070 CN=0:U=1:GOSUB5540:REM teken nb.--
7080 IFIN=85 THEN7140
7090 FORX=TP TOMM+1 STEP-1:REM --arrays
7100 TE$(X)=TE$(X-1):NO$(X)=NO$(X-1)
7110 NEXTX:TE$(MM)="":NO$(MM)=""
7120 IFMP<TP THENMP=MP+1
7130 GOTO7180
7140 FORX=MM TOTP-1
7150 TE$(X)=TE$(X+1):NO$(X)=NO$(X+1)
7160 NEXTX:TE$(TP)="":NO$(TP)=""
7170 IFMP<TP+1 THENMP=MP-1
7180 AA=MM:BB=TP:T=1:GOSUB5890
7190 CN=1:GOSUB1710:CN=0
7200 NO=MM:HC=HH:VC=VV:GOSUB1710:RETURN
8000 REM === TITEL EN UITLEG ===
8010 GOSUB100:PRINT:PRINT:PRINT
8020 A$=" "
8030 SR$=A$:GOSUB150:PRINT
8040 SR$="N O T E N B A L K":GOSUB150:PRINT
8050 SR$=A$:GOSUB150:PRINT
8060 PRINT:PRINT:PRINT
8070 PRINT" MUZIEKNOTEN-PROGRAMMA":PRINT:PRINT
8080 PRINT" IN BASICODE-3 FORMAAT"
8090 PRINT:PRINT:PRINT:PRINT:PRINT
8100 PRINT" WIL JE UITLEG? J/N";
8110 GOSUB210:IFIN<>74 THENRETURN
8120 GOSUB100:PRINT
8130 PRINT"Tik muzieknoten als volgt: eerst":PRINT
8140 PRINT"een van de letters ABCDEFGabcdefg":PRINT
8150 PRINT"daarna EVENTUEEL een # of een b":PRINT
8160 PRINT"daarna de waarde met EEN cijfer":PRINT
8170 PRINT"1 2 4 8 of 6 voor resp. een hele,":PRINT
8180 PRINT"een halve, een kwart, een achtste":PRINT
8190 PRINT"of een zestiende noot.":PRINT
8200 PRINT"Daarna kan nog een PUNT ingetikt":PRINT
8210 PRINT"worden (verlenging), of een M (=":PRINT
8220 PRINT"maatstreep),tik anders 'n spatie":PRINT
8230 PRINT"Een + maakt een verlengnoot >>";
8240 GOSUB210:GOSUB100:PRINT
8250 PRINT"De CURSOR gaat vanzelf naar de":PRINT
8260 PRINT"volgende positie. De cursor kan":PRINT
8270 PRINT"ook met de cursortoetsen worden":PRINT
8280 PRINT"verplaatst.":PRINT
8290 PRINT"Een RUST wordt geplaatst met de":PRINT
8300 PRINT"letter R en een cijfer 1 2 4 8 6":PRINT
8310 PRINT"De M plaatst een MAATSTREEP":PRINT
8320 PRINT"/ en 2 cijfers plaatst een maat-":PRINT
8330 PRINT"aanduiding voor aan de balk":PRINT
8340 PRINT"De S laat de muziek spelen en de":PRINT
8350 PRINT"T tekent alles netjes opnieuw >>";
8360 GOSUB210:GOSUB100:PRINT
8370 PRINT"Aan het begin kun je een # of b":PRINT
8380 PRINT"invoeren als voortekening.":PRINT
8390 PRINT"Het volume (geluidssterkte) van":PRINT
8400 PRINT"de muziek kun je veranderen met":PRINT
8410 PRINT"de V en een cijfer van 1 t/m 7.":PRINT
8420 PRINT"Dat geldt dan voor alle noten":PRINT
8430 PRINT"die je daarna intikt.":PRINT
8440 PRINT"DOOR EEN * TE TIKKEN KRIJG JE":PRINT
8450 PRINT"ALLE INSTRUCTIES VOOR HET SAVEN":PRINT
8460 PRINT"EN LADEN VAN MUZIEK NAAR EN VAN":PRINT
8470 PRINT"CASSETTE OF DISK >>";
8480 GOSUB210:GOSUB100
8490 PRINT
8500 PRINT"Met de W kun je een noot wissen":PRINT
8510 PRINT"die je met de cursor aanwijst.":PRINT
8520 PRINT"Met de I kun je boven de cursor":PRINT
8530 PRINT"ruimte maken om een noot in te":PRINT
8540 PRINT"voegen, en met de U kun je een":PRINT
8550 PRINT"noot uitnemen en al wat verder":PRINT
8560 PRINT"op de balk staat naar links aan":PRINT
8570 PRINT"schuiven. Zo kun je achteraf de":PRINT
8580 PRINT"muziek nog gemakkelijk wijzigen":PRINT:PRINT
8590 PRINT"DIT KOMT WEER ALS JE EEN H TIKT"
8600 GOSUB210:IFIN=72 THEN8120
8610 RETURN
9000 REM === SAVE ===
9010 NF=5:PRINT:PRINT
9020 PRINT" Geef file naam";:INPUTNF$
9030 GOTO9050
9040 NF=1:NF$="MUZDAT"
9050 IFMP=0 THEN GOSUB250:RETURN
9060 GOSUB500
9070 FORX=0 TOMP
9080 SR$=TE$(X):GOSUB560
9090 SR$=NO$(X):GOSUB560
9100 NEXTX:GOSUB580
9110 RETURN
9120 REM === LOAD ===
9130 NF=4:PRINT:PRINT:PRINT
9140 PRINT" Geef file naam";:INPUTNF$
9150 GOTO9170
9160 NF=0:NF$="MUZDAT"
9170 GOSUB9480
9180 GOSUB500:MP=0
9190 GOSUB540:TE$(MP)=IN$
9200 GOSUB540:NO$(MP)=IN$
9210 MP=MP+1
9220 IFIN=0 THEN9190
9230 GOSUB580:MP=MP-1
9240 RETURN
9250 REM === VOORTEKENING ===
9260 GOSUB9270:GOSUB210:CN=1
9270 HO=0:VE=0:SR$="# of b":GOSUB650:CN=0
9280 RETURN
9290 SR$=IN$:VN=.12:HO=.04:VE=VN
9300 IFIN$="b" THEN9330
9310 IFIN$<>"#" THENRETURN
9320 VN=VN-.055:VE=VE-.055:TN$(6)="66":TN$(13)="78":GOTO9340
9330 TN$(2)="58":TN$(9)="70"
9340 IFIN$="b" THEN GOSUB2610
9350 IFIN$="#" THEN GOSUB650
9360 VN=VN+.24:VE=VN:IFVN<1 THEN9340
9370 IFT=1 THENRETURN
9380 NO$(0)=IN$:RETURN
9390 REM === MAATAANDUIDING ===
9400 HO=.06:VE=.13:SR$=IN$:GOSUB650:IFT=1 THEN9420
9410 GOSUB210:A$=IN$:IF(IN<49)OR(IN>57) THEN9410
9420 VE=VE-.04:SR$=A$:GOSUB650:IFT=1 THEN9440
9430 GOSUB210:B$=IN$:IF(IN<49)OR(IN>57) THEN9430
9440 VE=VE+.08:SR$=B$:GOSUB650:IFT=1 THENRETURN
9450 NO$(0)=MID$(NO$(0),1,1)+A$+B$
9460 RETURN
9470 REM === VUL TONENTABEL ===
9480 RESTORE
9490 FORN=1 TO14:READA$:TN$(N)=A$:NEXTN
9500 REM --- en leeg de arrays ---
9510 FORN=0 TO96:NO$(N)="":TE$(N)="":NEXTN
9520 RETURN
25000 DATA"57","59","60","62","64"
25010 DATA"65","67","69","71","72"
25020 DATA"74","76","77","79"
25030 REM=============================
32000 REM GEMAAKT OP BBC B COMPUTER
32010 REM SEPTEMBER 1987
32020 REM
32030 REM Ch.W.Brederode
32040 REM Von Bonninghausenlaan 33
32050 REM 2161 ES LISSE
32060 REM
32070 REM TROS-RADIO dd 871209
32080 REM incl corr. dd 880301