Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)
4 WINDOW
5 CLS
10 WINDOW 0,23,2,39 :CLS
20 DATA 245,197,237,75,0,2,197,237,75,152
30 DATA 239,197,1,71,79,237,67,152,239,58
40 DATA 191,2,254,0,62,133,202,48,2,203
50 DATA 239,211,128,58,188,2,211,128,1,69
60 DATA 2,237,67,0,2,237,75,189,2,195
70 DATA 66,2,219,136,238,128,211,136,11,251
80 DATA 120,177,202,84,2,237,77,193,193,237
90 DATA 67,152,239,193,237,67,0,2,193,62
100 DATA 3,211,128,219,136,230,127,211,136,241,237,77
110 DIM F(123)
120 FOR A=0 TO 91
130 READ B
140 POKE 529+A,B
150 NEXT A
160 PRINT "START"
170 FOR A=25 TO 69 STEP 4
180 POKE 700,A
190 B=INT(10000/A)
200 DOKE 701,B
210 POKE 703,0
220 PRINT A,B
230 CALL 529
240 DOKE 512,-189
250 NEXT A
260 PRINT:PRINT " 1 KURZE MELODIE"
270 PRINT " 2 LANGE MELODIE":PRINT
280 INPUT " WAHL:";AB
290 IF AB=1 THEN AB=2:ELSE AB=1
300 CLS:WINDOW 15,23,2,19
310 FOR A=1 TO 9 STEP 2
320 PRINT AT(A,0);STRING$(40,"")
330 NEXT A
340 FOR A=0 TO 10 STEP 2
350 PRINT AT(A,0);STRING$(40," ")
360 NEXT A
370 FOR A=0 TO 120 STEP 3
380 F(A)=0
390 NEXT A
400 PRINT AT(15,21);"G GANZE N."
410 PRINT AT(16,21);"H HALBE N."
420 PRINT AT(17,21);"V VIERTEL N."
430 PRINT AT(18,21);"A ACHTEL N."
440 PRINT AT(19,21);"S SECHZEHNTEL"
450 PRINT AT(20,21);"P PAUSE"
460 PRINT AT(21,21);"KURSORTASTEN"
470 PRINT AT(22,21);"DEL STREICHEN-ENDE"
480 PRINT AT(23,21);"ESC NEUE MELODIE"
490 A=1:B=5:P=160
500 PRINT AT(5,1);"*"
510 R$=INKEY$
520 IF LEN(R$)=0 THEN 510
530 R=ASC(R$)
540 C=A:D=B
550 IF R=80 THEN 1130
560 IF R=24 THEN A=39
570 IF R=25 THEN A=1
580 IF R=27 THEN 300
590 IF R=31 THEN 1430
600 IF R=10 THEN B=B+1
610 IF R=11 THEN B=B-1
620 IF R=8 THEN A=A-AB
630 IF R=9 THEN A=A+AB
640 IF A<1 THEN A=1
650 IF A>39 THEN A=39
660 IF B<0 THEN B=0
670 IF B>10 THEN B=10
680 IF R=71 THEN 780
690 IF R=72 THEN 780
700 IF R=86 THEN 780
710 IF R=65 THEN 780
720 IF R=83 THEN 780
730 IF R=29 THEN 1250
740 POKE C+40*D-5120,P
750 P=PEEK(A+40*B-5120)
760 POKE A+40*B-5120,42
770 GOTO 510
780 FOR C=1 TO 9 STEP 2
790 PRINT AT(C,A);""
800 PRINT AT(C-1,A);" "
810 NEXT C
820 PRINT AT(10,A);" "
830 IF R=83 OR R=65 OR R=86 THEN A$="":ELSE A$=""
840 PRINT AT(B,A);A$
850 IF R=71 THEN 870
860 IF B>4 THEN PRINT AT(B-1,A);"":ELSE PRINT AT(B+1,A);""
870 A=A+AB
880 IF A>39 THEN 910
890 P=PEEK(A+40*B-5120)
900 PRINT AT(B,A);"*"
910 IF AB=1 THEN C=3*A-3:ELSE C=3*INT(A/2)
920 D=C+1
930 E=C+2
940 IF B=0 THEN F(C)=25:F(D)=1000:F(E)=0
950 IF B=1 THEN F(C)=28:F(D)=950 :F(E)=0
960 IF B=2 THEN F(C)=30:F(D)=900 :F(E)=0
970 IF B=3 THEN F(C)=33:F(D)=850 :F(E)=0
980 IF B=4 THEN F(C)=37:F(D)=800 :F(E)=0
990 IF B=5 THEN F(C)=40:F(D)=750 :F(E)=0
1000 IF B=6 THEN F(C)=44:F(D)=700 :F(E)=0
1010 IF B=7 THEN F(C)=50:F(D)=650 :F(E)=0
1020 IF B=8 THEN F(C)=56:F(D)=600 :F(E)=0
1030 IF B=9 THEN F(C)=59:F(D)=550 :F(E)=0
1040 IF B=10 THEN F(C)=66:F(D)=500 :F(E)=0
1050 IF R=71 THEN V=8
1060 IF R=72 THEN V=4
1070 IF R=86 THEN V=2
1080 IF R=65 THEN V=1
1090 IF R=83 THEN V=.5
1100 F(D)=F(D)*V
1110 IF A>39 THEN P=PEEK(40*B-5081):A=39:GOTO 1250
1120 GOTO 510
1130 FOR C=1 TO 9 STEP 2
1140 PRINT AT(C,A);""
1150 PRINT AT(C-1,A);" "
1160 NEXT C
1170 PRINT AT(10,A);""
1180 IF AB=1 THEN C=3*A:ELSE C=3*INT(A/2)+3
1190 F(C)=-1
1200 A=A+AB
1210 IF A>39 THEN 1250
1220 P=PEEK(A+40*B-5120)
1230 PRINT AT(B,A);"*"
1240 GOTO 510
1250 D=3:L=1
1260 CLS
1270 IF A>39 THEN A=39
1280 IF L>39 THEN E=0:L=39:GOTO 1310
1290 PRINT AT(11,L);"*"
1300 E=F(D)
1310 IF E=0 THEN PRINT "SOUND OK":PRINT:PRINT AT(11,L);" ":GOTO 510
1320 IF E=-1 THEN 1410
1330 POKE 700,E
1340 DOKE 701,F(D+1)
1350 POKE 703,F(D+2)
1360 CALL 529
1370 DOKE 512,-189
1380 D=D+3
1390 PRINT AT(11,L);" ":L=L+AB
1400 GOTO 1280
1410 PAUSE 3
1420 GOTO 1380
1430 FOR C=1 TO 9 STEP 2
1440 PRINT AT(C,A);""
1450 PRINT AT(C-1,A);" "
1460 NEXT C
1470 PRINT AT(10,A);" "
1480 IF AB=1 THEN F(3*A)=0:ELSE F(3*INT(A/2)+3)=0
1490 A=A-AB
1500 IF A<1 THEN A=1
1510 GOTO 510