home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er Special 11
/
64er_Magazin_Sonderheft_11_86-11_1986_Markt__Technik_de_Side_A.d64
/
sound-editor
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
25KB
|
1,167 lines
0 if a>1 then return
1000 rem
1005 rem
1010 rem
1015 rem
1020 rem
1025 rem
1030 rem
1035 rem
1040 rem
1045 rem
1050 rem
1055 rem
1060 rem
1065 if m=7 then 7665
1068 if m=7.5 then 7960
1070 rem
1075 rem
1080 ifa=0 thena=.1:load"modulator",8,1
1082 ifa=.1thena=.2:load"sequencer.obj",8,1
1084 ifa=.2thena= 1:load"seq.erg.obj",8,1
1085 rem
1120 rem
1130 poke 56,144:clr
1140 rem
1150 rem
1160 dim v%(8,255),tn%(255),th(24)
1165 dim bf(2),t(2),o(2),of(2),s(2)
1170 dim c1(2),c(2),ad(2),sr(2)
1175 dim bl$(6),kv$(3),kf$(6),md$(3)
1180 dim tn$(11)
1185 rem
1190 gosub 8000 :rem initialisierungen
1200 gosub 4000 :rem hauptmenue
1210 rem
1500 rem
1510 rem
1520 rem
1530 get a$:if a$="" then 1530
1540 a=asc(a$)
1550 sys gs,v%(m,a) :rem berechn. gosub
1560 goto 1530
2000 rem
2010 rem
2020 rem
2025 poke 650,0
2030 f=th(tn%(a)):ad=mo+72:x=peek(ad)
2035 if s(0) then sysdo,mo ,f*bf(0):poke si+4 ,c1(0)
2040 if s(1) then sysdo,mo+7 ,f*bf(1):poke si+11,c1(1)
2050 if s(2) then sysdo,mo+14,f*bf(2):poke si+18,c1(2)
2090 if eg then poke ad,x or 1
2110 if su then poke 650,128:return
2120 if peek(203)<>64 and peek(198)=0 then 2120
2130 poke ad,x and 254
2140 poke si+4 ,c(0)
2150 poke si+11,c(1):poke si+18,c(2)
2160 poke 650,128:return
2500 rem
2510 rem
2520 rem
2530 rem
2550 pw=pw+p2:if pw>=pm then pw=pw-pm
2555 sysgt,pv
2560 pw=pw+p1:if pw>=pm then pw=pw-pm
2565 sysgt,pv
2570 pw=pw-p1:if pw< 0 then pw=pw+pm
2575 sysgt,pv
2580 pw=pw-p2:if pw< 0 then pw=pw+pm
2585 sysgt,pv
2600 rem
2605 rem
2610 sysdo,pa,pw:l=len(str$(pw))
2620 syspr,3+ln,4,bl$(6-l);f2$;pw
2625 return
2630 rem
2635 rem
2640 poke pa,pw:l=len(str$(pw))
2650 syspr,3+ln,11,bl$(4-l);f2$;pw
2655 return
2660 rem
2665 rem
2670 poke pa,pw:l=len(str$(pw))
2680 syspr,3+ln,16,bl$(4-l);f2$;pw
2685 return
2690 rem
2695 rem
2700 if a>136 or a<133 then return
2705 b=a-133 :rem b=0,1,2,3
2710 poke pa,(peek(pa)and231)or(b*8)
2715 syspr,3+ln,21,f2$;kv$(b)
2717 syspr,6 ,34,f2$;kf$(b):return
2720 rem
2725 rem
2730 if a>135 or a<133 then return
2735 b=a-132 :rem b=1,2,3
2740 poke pa,(peek(pa)and249)or(b*2)
2745 syspr,3+ln,28,f2$;md$(b):return
2750 rem
2755 rem
2760 poke pa,pw:l=len(str$(pw))
2765 syspr,7,s,bl$(4-l);f2$;pw:return
2770 rem
2775 rem
2780 b=-(a>134):rem f1,f3 b=0 f5,f7 b=1
2785 poke pa,(peek(pa)and247)or(b*8)
2790 syspr,7,29,f2$;chr$(43+2*b)
2795 return
2810 rem
2815 rem
2820 if a>135 or a<133 then return
2825 b=a-132 :rem b=1,2,3
2830 poke pa,(peek(pa)and249)or(b*2)
2835 syspr,7,33,f2$;md$(b):return
2840 rem
2845 rem
2850 poke pa,pwand7:poke pa+1,int(pw/8)
2855 l=len(str$(pw))
2860 syspr,5,2,bl$(5-l);f2$;pw:return
2865 rem
2870 rem
2875 rf=(rf and 15)+16*pw:poke pa,rf
2880 l=len(str$(pw))
2885 syspr,5,9,bl$(3-l);f2$;pw:return
2890 rem
2895 rem
2900 if a>136 or a<133 then return
2905 b=a-133 :rem b=0,1,2,3
2910 x=2^b:x1=255-x:rem masken
2915 y=rf and x
2920 rf=(rf and x1)or(x-y):poke pa,rf
2925 y=-128*(y=0):ad=1024+(5+b)*40+15
2930 for i=ad to ad+5
2935 : poke i,(peek(i)and127)or y
2940 next:return
2945 rem
2950 rem
2955 if a>136 or a<133 then return
2960 b=a-129 :rem b=4,5,6,7
2965 x=2^b:x1=255-x:rem masken
2970 pw=peek(pa):y=pw and x
2975 poke pa,(pw and x1)or(x-y)
2980 y=-128*(y=0):ad=1024+(1+b)*40+25
2985 for i=ad to ad+3
2990 : poke i,(peek(i)and127)or y
2995 next:return
3000 rem
3005 rem
3010 poke pa,(peek(pa) and 240) or pw
3015 l=len(str$(pw))
3020 syspr,5,31,bl$(3-l);f2$;pw:return
3050 rem
3052 rem
3054 if a<>134 then 3064
3056 rem
3058 of=of+1:if of<=50 then 3110
3062 of=-49:goto 3076
3064 if a<>135 then 3074
3066 rem
3068 of=of-1:if of>=-49 then 3110
3072 of=50:goto 3084
3074 if a<>133 then 3082
3076 rem
3078 t=t+1:if t<=11 then 3110
3080 t=0:goto 3090
3082 if a<>136 then return
3084 rem
3086 t=t-1:if t>=0 then 3110
3088 t=11:goto 3096
3090 rem
3092 o=o+1:if o<=5 then 3110
3094 o=0:goto 3110
3096 rem
3098 o=o-1:if o>=0 then 3110
3100 o=5:t=10
3110 rem
3112 if t=11 and o=5 then t=0:o=0
3114 bf=440*2^(o-4+(t-9)/12+of/1200)
3116 o(sn)=o:t(sn)=t:of(sn)=of
3118 bf(sn)=bf*17.0327
3120 sysdo,mo+7*sn,f*bf(sn)
3122 rem
3124 syspr,3+sn,3,f2$;o
3126 syspr,3+sn,2,tn$(t)
3128 syspr,3+sn,5,right$(" "+str$(of),3)
3130 return
3150 rem
3155 rem
3160 sysdo,pa,pw
3165 syspr,3+sn,9,f2$;right$(" "+str$(pw),4)
3170 return
3175 rem
3180 rem
3185 ad(sn)=(ad(sn)and15) or pw*16
3190 poke pa,ad(sn)
3195 syspr,3+sn,14,f2$;right$(str$(pw),2)
3200 return
3205 rem
3210 rem
3215 ad(sn)=(ad(sn)and240) or pw
3220 poke pa,ad(sn)
3225 syspr,3+sn,17,f2$;right$(str$(pw),2)
3230 return
3235 rem
3240 rem
3245 sr(sn)=(sr(sn)and15) or pw*16
3250 poke pa,sr(sn)
3255 syspr,3+sn,20,f2$;right$(str$(pw),2)
3260 return
3265 rem
3270 rem
3275 sr(sn)=(sr(sn)and240) or pw
3280 poke pa,sr(sn)
3285 syspr,3+sn,23,f2$;right$(str$(pw),2)
3290 return
3300 rem
3305 rem
3310 if a<>133 and a<>134 then 3335
3315 rem
3320 c(sn)=c(sn) or 2^(7-s)
3325 c1(sn)=c(sn) or 1
3330 syspr,3+sn,26+s,f2$;"1":goto 3355
3335 rem
3340 c(sn)=c(sn) and 255-2^(7-s)
3345 c1(sn)=c(sn) or 1
3350 syspr,3+sn,26+s,f2$;"0"
3355 rem
3358 poke 50334+sn,c(sn)
3360 x=c(sn):if su then x=c1(sn)
3365 poke si+7*sn+4,x:return
3370 rem
3375 rem
3380 poke pa,pw:l=len(str$(pw))
3385 syspr,3+sn,34,bl$(4-l);f2$;pw
3390 return
3400 rem-------------------------------
3405 rem tempo
3410 if pw<40 then pw=40
3415 if pw>480 then pw=480
3420 te=pw:sysdo,pa,int(6e7/(24*te))
3425 syspr,6,11,f2$;right$(str$(pw),3)
3430 return
3500 rem
3510 rem
3520 rem
3525 syspr,15,10,f2$;"stimme 1,2,3"
3530 get a$:if a$=""then 3530
3540 ifa$="1"ora$="2"ora$="3"then 3560
3550 goto 3590
3560 i=val(a$)-1 :s(i)=not s(i)
3570 if s(i) then print chr$(18);
3580 syspr,21,31+2*i,f1$;a$;chr$(146);
3590 syspr,15,10,f1$;"stimme 1,2,3"
3595 return
3600 rem
3610 rem
3620 rem
3630 poke 650,64
3640 ad=mo+72:x=peek(ad):poke ad,x or 1
3650 if peek(203)<>64 and peek(198)=0 then 3650
3660 poke ad,xand254:poke650,128:return
3700 rem
3710 rem
3720 rem
3730 eg=not eg
3740 if eg then print chr$(18);
3750 syspr,23,31,f1$;"soft-eg[146]":return
3800 rem
3810 rem
3820 rem
3830 su=not su
3840 poke 50344,-su:if su then print chr$(18);
3850 syspr,22,31,f1$;"sustain[146]"
3860 if not su then 2140
3870 return
4000 rem
4010 rem
4020 rem
4030 m=0:pv=0:syscl:print "";f1$
4040 print" [176][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][174]"
4045 print" [194] m o d u l a t o r [146][194]"
4050 print" [194] thomas kraetzig 1985 [146][194]"
4055 print" [173][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][189]"
4100 syspr,6,1,f2$;"sh v";f1$;" stimmen-parameter"
4105 syspr,7,1,f2$;" f";f1$;" filter/lautstaerke"
4110 syspr,8,1,f2$;" l";f1$;" lfo"
4115 syspr,9,1,f2$;" h";f1$;" huellkurve (soft-eg)"
4120 syspr,10,1,f2$;" k";f1$;" ksv"
4125 syspr,11,1,f2$;"sh s";f1$;" sounds"
4130 syspr,12,1,f2$;" d";f1$;" disk"
4132 syspr,13,1,f2$;" a";f1$;" sequencer"
4135 return
4200 rem
4210 rem
4220 rem
4240 syspr,15,1, f2$;"v 1,2,3"
4245 syspr,15,10,f1$;"stimme 1,2,3
4250 [158]pr,15,26,f2$;"s"
4255 [158]pr,15,32,f1$;"sustain"
4260 [158]pr,16,1, f2$;"sh space"
4270 [158]pr,16,10,f1$;"eg (ab-)koppeln"
4280 [158]pr,16,26,f2$;"space"
4290 [158]pr,16,32,f1$;"eg gate"
4292 [158]pr,17,1, f2$;"x"
4294 [158]pr,17,10,f1$;"hauptmenue"
4300 [158]pr,19,0,f2$;
4310 [129] i[178]1 [164] 4
4320 : [153]" peek peek peek peek peek peek peek peek peek peek peek peek peek peek wait":[130]
4330 [153]" qpeekwpeekepeekrpeektpeekypeekupeekipeekopeekppeek@peek*peek^peek;peek="
4340 [158]pr,19,0,;
4350 [129] i[178]1 [164] 2
4360 : [153]" ":[130]
4370 [153]" 2356790-\c"
4380 [158]pr,19,31,f1$;"aktiv:"
4390 [129] i[178]0 [164] 2
4400 : a$[178][201]([196](i[170]1),1)
4410 : [141] 3570:[130] i
4420 [141] 3840:[141] 3740
4430 [142]
4500 [143]
4505 [143]
4510 [143]
4515 m[178]1:pv[178]3050:[158]cl:[153]"wait";f1$
4520 [153]" f pw a d s r control porta"
4525 [153]" orlenlenlenlenlenlen=lenlenlenlen=lenlen=lenlen=lenlen=lenlen=lenlenlenlenlenlenlen=lenlenlenlen^"
4530 [129] i[178]1 [164] 3
4535 [153]" peek peek peek peek peek peek peek peek peek"
4540 [130] i
4545 [153]" /lenlenlenlenlenlen>lenlenlenlen>lenlen>lenlen>lenlen>lenlen>=======>lenlenlenlenexp"
4550 [158]pr,7,26,"peekpeekpeekpeekpeekpeek/lenlensync"
4555 [158]pr,8,26,"peekpeekpeekpeekpeek/lenlenring"
4560 [158]pr,9,1,f2$;"f1 ++";f1$
4565 [158]pr,9,26,"peekpeekpeekpeek/lenlentest"
4570 [158]pr,10,1,f2$;"f3 +";f1$
4575 [158]pr,10,26,"peekpeekpeek/lenlentrian"
4580 [158]pr,11,1,f2$;"f5 -";f1$
4585 [158]pr,11,26,"peekpeek/lenlensawtooth"
4590 [158]pr,12,1,f2$;"f7 --";f1$
4595 [158]pr,12,26,"peek/lenlensquare"
4600 [158]pr,13,26,"/lenlennoise"
4602 [143]
4604 a$[178]f2$:f2$[178]f1$
4606 [129] sn[178]0 [164] 2
4608 : t[178]t(sn):o[178]o(sn):of[178]of(sn)
4610 : [141] 3122:[143] f
4612 : pw[178]([183](mo[170]7[172]sn[170]2)):[141] 3165
4614 : pw[178][181](ad(sn)[173]16) :[141] 3195
4616 : pw[178]ad(sn)[175]15 :[141] 3225
4618 : pw[178][181](sr(sn)[173]16) :[141] 3255
4620 : pw[178]sr(sn)[175]15 :[141] 3285
4622 : [143] control-byte (7 bit)
4624 : b[178]c(sn):a[178]128
4626 : [158]pr,3[170]sn,26,f1$;"0000000"
4628 : [129] s[178]7 [164] 1 [169] [171]1
4630 : [139](b[175]a)[167][158]pr,3[170]sn,33[171]s,"1"
4632 : a[178]a[173]2:[130] s
4634 : pa[178]mo[170]7[172]sn[170]4:pw[178][194](pa)
4636 : [141] 3370:[143] porta
4638 [130] sn
4640 f2$[178]a$
4642 sn[178]0:av[178]4700:[158]gs,av:[142]
4650 [143]
4652 [143]
4654 [143]
4656 sn[178]sn[171]1:[139] sn[179]0 [167] sn[178]2
4658 [141] 5815:[158]gt,av
4660 [143]
4662 sn[178]sn[170]1:[139] sn[177]2 [167] sn[178]0
4664 [141] 5815:[158]gt,av
4666 [143]
4668 [139] av[179][177]4880 [167] 4674
4670 s[178]s[170]1:[139] s[177]6 [167] av[178]4910
4672 [137] 4678
4674 av[178]av[170]30:[139] av[177]4910 [167] av[178]4700
4676 [139] av[178]4880 [167] s[178]0
4678 [141] 5815:[158]gt,av
4680 [143]
4682 [139] av[179][177]4880 [167] 4688
4684 s[178]s[171]1:[139] s[179]0 [167] av[178]4850
4686 [137] 4692
4688 av[178]av[171]30:[139] av[179]4700 [167] av[178]4910
4690 [139] av[178]4880 [167] s[178]6
4692 [141] 5815:[158]gt,av
4700 [143]
4702 [143]
4704 pb[178]fa[170]40[172](sn[170]3)[170]2
4706 [129] i[178]pb [164] pb[170]5:[151] i,f2:[130]
4708 t[178]t(sn):o[178]o(sn):of[178]of(sn)
4710 pa[178]mo[170]7[172]sn:pv[178]3050:[142]
4730 [143]
4732 [143]
4734 pb[178]fa[170]40[172](sn[170]3)[170]9
4736 [129] i[178]pb [164] pb[170]3:[151] i,f2:[130]
4738 pa[178]mo[170]7[172]sn[170]2:pw[178][183](pa):pm[178]4096
4740 p1[178]1:p2[178]50:pv[178]3150:[142]
4760 [143]
4762 [143]
4764 pb[178]fa[170]40[172](sn[170]3)[170]14
4766 [151] pb,f2:[151] pb[170]1,f2
4768 pa[178]si[170]7[172]sn[170]5:pw[178][181](ad(sn)[173]16)
4770 pm[178]16:p1[178]1:p2[178]1:pv[178]3175:[142]
4790 [143]
4792 [143]
4794 pb[178]fa[170]40[172](sn[170]3)[170]17
4796 [151] pb,f2:[151] pb[170]1,f2
4798 pa[178]si[170]7[172]sn[170]5:pw[178]ad(sn)[175]15
4800 pm[178]16:p1[178]1:p2[178]1:pv[178]3205:[142]
4820 [143]
4822 [143]
4824 pb[178]fa[170]40[172](sn[170]3)[170]20
4826 [151] pb,f2:[151] pb[170]1,f2
4828 pa[178]si[170]7[172]sn[170]6:pw[178][181](sr(sn)[173]16)
4830 pm[178]16:p1[178]1:p2[178]1:pv[178]3235:[142]
4850 [143]
4852 [143]
4854 pb[178]fa[170]40[172](sn[170]3)[170]23
4856 [151] pb,f2:[151] pb[170]1,f2
4858 pa[178]si[170]7[172]sn[170]6:pw[178]sr(sn)[175]15
4860 pm[178]16:p1[178]1:p2[178]1:pv[178]3265:[142]
4880 [143]
4882 [143]
4884 pb[178]fa[170]40[172](sn[170]3)[170]26[170]s
4886 [151] pb,f2
4888 pa[178]si[170]7[172]sn[170]4:pv[178]3300:[142]
4910 [143]
4912 [143]
4914 pb[178]fa[170]40[172](sn[170]3)[170]35
4916 [129] i[178]0 [164] 2:[151] pb[170]i,f2:[130]
4918 pa[178]mo[170]7[172]sn[170]4:pw[178][194](pa):pm[178]256
4920 p1[178]1:p2[178]10:pv[178]3370:[142]
5000 [143]
5005 [143]
5010 [143]
5015 m[178]2:pv[178]0:[158]cl:[153]"wait";f1$
5020 [153]" filter/lautstaerke"
5025 [153]" orlenlenlenlenlen=lenlenlenlenlen=lenlenlenlenlenlenlenlen=lenlenlenlenlenlenlen=lenlenlenlen^"
5030 [153]" peekfiltfpeek res peekschalterpeek modus peeklautpeek"
5035 [153]" -lenlenlenlenlen(NULL)lenlenlenlenlen(NULL)lenlenlenlenlenlenlenlen(NULL)lenlenlenlenlenlenlen(NULL)lenlenlenlen<"
5040 [153]" peek peek peek filt1 peek lp peek peek"
5045 [153]" -lenlenlenlenlen>lenlenlenlenlen< filt2 peek bp -lenlenlenlenexp"
5050 [153]" peek peek filt3 peek hp peek"
5055 [153]" peek peek filtex peek 3off peek"
5060 [153]" /lenlenlenlenlenlenlenlenlenlenlen>lenlenlenlenlenlenlenlen>lenlenlenlenlenlenlenexp"
5065 [153] f2$;" f1";f1$;" ++ filt1 lp +"
5070 [153] f2$;" f3";f1$;" + filt2 bp +"
5075 [153] f2$;" f5";f1$;" - filt3 hp -"
5080 [153] f2$;" f7";f1$;" -- filtex 3off -"
5085 pw[178]([194](mo[170]21)[175]7)[170]8[172][194](mo[170]22)
5090 [158]pr,5, 7[171][195]([196](pw)),pw
5095 pw[178][181](rf[173]16)
5100 [158]pr,5,12[171][195]([196](pw)),pw
5102 [139]rf[175]1[167] [158]pr,5,15,"filt1 wait"
5104 [139]rf[175]2[167] [158]pr,6,15,"filt2 wait"
5106 [139]rf[175]4[167] [158]pr,7,15,"filt3 wait"
5108 [139]rf[175]8[167] [158]pr,8,15,"tiltexwait"
5110 pw[178][194](mo[170]23)
5112 [139]pw[175] 16[167] [158]pr,5,25," lp wait"
5114 [139]pw[175] 32[167] [158]pr,6,25," bp wait"
5116 [139]pw[175] 64[167] [158]pr,7,25," hp wait"
5118 [139]pw[175]128[167] [158]pr,8,25,"3offwait"
5120 pw[178][194](mo[170]23)[175]15
5122 [158]pr,5,34[171][195]([196](pw)),pw
5125 av[178]5200:[158]gs,av:[142]
5130 [143]
5135 [143]
5140 [143]
5145 av[178]av[170]50:[139] av[177]5400 [167] av[178]5200
5150 [137] 5165
5155 [143]
5160 av[178]av[171]50:[139] av[179]5200 [167] av[178]5400
5165 [141] 5815:a[178]pb[171]fa[171]200
5170 [139] a[179][177]15 [175] a[179][177]25 [167] [158]gt,av
5175 [129] j[178]1[164]3:pb[178]pb[170]40:[141]5815:[130]
5180 pb[178]pb[171]120:[158]gt,av
5200 [143]
5205 [143]
5210 pb[178]fa[170]203
5215 [129] i[178]pb [164] pb[170]3:[151] i,f2:[130]
5220 pa[178]mo[170]21:pw[178][194](pa)[170]8[172][194](pa[170]1)
5225 pm[178]2048:p1[178]1:p2[178]50:pv[178]2850:[142]
5250 [143]
5255 [143]
5260 pb[178]fa[170]210
5265 [151] pb,f2:[151] pb[170]1,f2
5270 pa[178]si[170]23:pw[178][181](rf[173]16)
5275 pm[178]16:p1[178]1:p2[178]1:pv[178]2875:[142]
5300 [143]
5305 [143]
5310 pb[178]fa[170]215
5315 [129] i[178]0 [164] 120 [169]40:[129] j[178]0 [164] 5
5320 : [151] pb[170]i[170]j,f2:[130]:[130]
5325 pa[178]si[170]23:pw[178]rf [175] 15
5330 pv[178]2900:[142]
5350 [143]
5355 [143]
5360 pb[178]fa[170]225
5365 [129] i[178]0 [164] 120 [169]40:[129] j[178]0 [164] 3
5370 : [151] pb[170]i[170]j,f2:[130]:[130]
5375 pa[178]mo[170]23
5380 pv[178]2955:[142]
5400 [143]
5405 [143]
5410 pb[178]fa[170]232
5415 [151] pb,f2:[151] pb[170]1,f2
5420 pa[178]mo[170]23:pw[178][194](pa) [175] 15
5425 pm[178]16:p1[178]1:p2[178]1:pv[178]3010:[142]
5500 [143]
5505 [143]
5510 [143]
5515 m[178]3:[158]cl:[153]"wait";f1$;
5520 [153]" orlenlenlenlenlenlen=lenlenlenlen=lenlenlenlen=lenlenlenlenlenlen=lenlenlenlenlen^"
5525 [153]" peek lfof peeklfoppeeklfoapeekkurve peekmoduspeek"
5530 [153]" orlen(NULL)lenlenlenlenlenlen(NULL)lenlenlenlen(NULL)lenlenlenlen(NULL)lenlenlenlenlenlen(NULL)lenlenlenlenlen(NULL)lenlenlenlen^"
5535 [129] z[178]3 [164] 9
5540 : [158]pr,z,1,"peek peek peek peek peek peek peek peek"
5545 [130] z
5550 [158]pr,10,1,"/len>lenlenlenlenlenlen>lenlenlenlen>lenlenlenlen>lenlenlenlenlenlen>lenlenlenlenlen>lenlenlenlenexp
5555 print f2$;" f1";f1$;" ++ ++ ++ trian reset"
5560 print f2$;" f3";f1$;" + + + sawup hold"
5565 print f2$;" f5";f1$;" - - - sawdwn run"
5570 print f2$;" f7";f1$;" -- -- -- square"
5575 for ln=0 to 6
5580 : z=3+ln
5585 : syspr,z,2,chr$(48+ln)
5590 : pw=usr(mo+32+5*ln) :rem lfof
5595 : syspr,z,10-len(str$(pw)),pw
5600 : pw=peek(mo+34+5*ln) :rem lfop
5605 : syspr,z,15-len(str$(pw)),pw
5610 : pw=peek(mo+35+5*ln) :rem lfoa
5615 : syspr,z,20-len(str$(pw)),pw
5620 : pw=peek(mo+36+5*ln) :rem lfoc
5625 : syspr,z,21,kv$((pw and 24)/8)
5630 : syspr,z,28,md$((pw and 6)/2)
5640 next ln
5645 ln=0:av=5830:sysgs,av:return
5650 rem
5655 rem
5670 rem
5675 ln=ln-1:if ln<0 then ln=6
5680 gosub 5815:sysgt,av
5685 rem
5690 ln=ln+1:if ln>6 then ln=0
5695 gosub 5815:sysgt,av
5700 rem
5705 av=av+30:if av>5950 then av=5830
5710 gosub 5810:sysgt,av
5715 rem
5720 av=av-30:if av<5830 then av=5950
5725 gosub 5810:sysgt,av
5800 rem
5805 rem
5810 syspr,6,34," "
5815 fori=pbtopb+6:pokei,f1:next:return
5820 rem
5825 rem
5830 pb=fa+40*(ln+3)+4
5835 for i=pb to pb+5:poke i,f2:next
5840 pa=mo+32+5*ln:pw=usr(pa):pm=65536
5845 p1=1:p2=200:pv=2610:return
5850 rem
5855 rem
5860 pb=fa+40*(ln+3)+11
5865 for i=pb to pb+3:poke i,f2:next
5870 pa=mo+34+5*ln:pw=peek(pa):pm=256
5875 p1=1:p2=10 :pv=2640:return
5880 rem
5885 rem
5890 pb=fa+40*(ln+3)+16
5895 for i=pb to pb+3:poke i,f2:next
5900 pa=mo+35+5*ln:pw=peek(pa):pm=256
5905 p1=1:p2=10 :pv=2670:return
5910 rem
5915 rem
5920 pb=fa+40*(ln+3)+21
5925 for i=pb to pb+5:poke i,f2:next
5930 pa=mo+36+5*ln:pv=2700
5935 b=(peek(pa) and 24)/8:goto 2717
5940 rem
5945 rem
5950 pb=fa+40*(ln+3)+28
5955 for j=pb to pb+4:poke j,f2:next
5960 pa=mo+36+5*ln
5965 pv=2730:return
6000 rem
6010 rem
6020 rem
6030 m=4:syscl:print"[146]";f1$
6040 print" software-eg":print:print
6050 print" [176][195][195][195][195][178][195][195][195][195][178][195][195][195][195][178][195][195][195][195][178][195][195][195][195][178][195][195][195][195][195][178][195][195][195][195][195][174]"
6060 print" [194] a [194] d [194] s [194] r [194] ega[194] form[194]modus[194]"
6070 print" [171][195][195][195][195][219][195][195][195][195][219][195][195][195][195][219][195][195][195][195][219][195][195][195][195][219][195][195][195][195][195][219][195][195][195][195][195][179]"
6080 print" [194] [194] [194] [194] [194] [194] [194] [194]"
6090 print" [173][195][195][195][195][177][195][195][195][195][177][195][195][195][195][177][195][195][195][195][177][195][195][195][195][177][195][195][195][195][195][177][195][195][195][195][195][189]"
6100 syspr,10,1,f2$;"f1":print" f3"
6110 print" f5":print" f7";f1$
6120 syspr,10,13,"++ reset"
6130 syspr,11,13,"+ + hold"
6140 syspr,12,13,"- - run"
6150 syspr,13,13,"--"
6160 for i=0 to 4
6170 : pw=peek(mo+67+i)
6180 : syspr,7,6+5*i-len(str$(pw)),pw
6190 next i
6210 pw=peek(mo+72)
6220 syspr,7,29,chr$(43+(pw and 8)/4)
6230 syspr,7,33,md$((pw and 6)/2)
6240 av=6310:an=0:sysgt,av
6300 rem
6305 rem
6310 pb=fa+282+5*an:s=2+5*an
6315 for i=pb to pb+3:poke i,f2:next
6320 pa=mo+67+an :pw=peek(pa)
6325 pm=256:if an=0 then pm=129
6330 p1=1:p2=10:pv=2760:return
6335 rem
6340 rem
6345 pb=fa+280+27:poke pb+2,f2
6350 pa=mo+72:pv=2780:return
6370 rem
6375 rem
6380 pb=fa+280+33
6385 for i=pb to pb+4:poke i,f2:next
6390 pa=mo+72:pv=2820:return
6395 rem
6400 rem
6405 rem
6410 if av<>6310 then 6420
6415 an=an-1:if an>=0 then 6430
6420 av=av-35:an=4
6425 if av<6310 then av=6380
6430 gosub 5815:sysgt,av
6435 rem
6440 if av<>6310 then 6450
6445 an=an+1:if an<=4 then 6460
6450 av=av+35
6455 if av>6380 then av=6310:an=0
6460 gosub 5815:sysgt,av
6500 rem
6510 rem
6520 rem
6530 m=5:pv=0:print"[146]";:syscl
6540 syspr,1,1,f1$;"kreuzschienen-verteiler"
6550 syspr,3,1,"e lfo"
6560 syspr,4,1,"g6543210"
6570 syspr,5,1,f2$;"[164][164][164][164][164][164][164][164]"
6580 a$=f2$+"[167]"+f1$+" "+f2$+"[212] "+f1$
6590 print a$;"f1";f2$;" cursortasten"
6600 print a$;"f2"
6610 print a$;"f3"
6620 print a$;"p1";f2$;" f1 ";f1$;"verbindung"
6630 print a$;"p2"
6640 print a$;"p3";f2$;" f7 ";f1$;"keine verbindung"
6650 print a$;"filt"
6660 print a$;"laut"
6670 print f2$;" [163][163][163][163][163][163][163][163]"
6680 for z=0 to 7:gosub 6730:next
6685 z=0:s=7:poke 55296+40*(6+z)+8-s,f2
6690 return
6700 rem
6710 rem
6720 rem
6730 b=peek(mo+24+z):a=128
6740 syspr,6+z,1,f1$;"00000000"
6750 if b=0 then return
6760 for s=7 to 0 step -1
6770 if(b and a)thensyspr,6+z,8-s,"1";
6780 a=a/2:next s
6790 print f1$;:return
6800 rem
6810 rem
6820 rem
6830 poke 55296+40*(6+z)+8-s,f1:rem aus
6840 z=(z-1) and 7:goto 6910:rem hoch
6850 poke 55296+40*(6+z)+8-s,f1
6860 z=(z+1) and 7:goto 6910:rem runter
6870 poke 55296+40*(6+z)+8-s,f1
6880 s=(s+1) and 7:goto 6910:rem links
6890 poke 55296+40*(6+z)+8-s,f1
6900 s=(s-1) and 7:goto 6910:rem rechts
6910 poke 55296+40*(6+z)+8-s,f2:rem an
6915 return
6920 rem
6925 rem
6930 rem
6935 ad=mo+24+z
6940 poke ad,peek(ad) or 2^s
6950 poke 1024+40*(6+z)+8-s,177:return
6960 rem
6965 rem
6970 rem
6975 ad=mo+24+z
6980 poke ad,peek(ad) and (255-2^s)
6990 poke 1024+40*(6+z)+8-s,176:return
7000 rem
7005 rem
7010 rem
7015 m=6:pv=0:syscl:print"[146]";f2$
7020 syspr,1,8,"a b c"
7025 print f1$;" [176][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][174]"
7030 for i=1 to 8
7035 syspr,2+i,1,f2$;chr$(48+i);f1$" [194]"
7040 syspr,2+i,38,"[194]":next
7045 syspr,11,3,"[173][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][189]"
7050 syspr,12,4,f2$;"a-c 1-8"
7055 syspr,12,13,f1$;"sound waehlen"
7060 syspr,13,1,f2$;"_ a-c 1-8"
7065 syspr,13,13,f1$"sound abspeichern"
7070 syspr,14,1,f2$;"n"
7075 syspr,14,13,f1$;"namen eingeben (return)"
7080 for s=0 to 2:for z=0 to 7
7085 : syspr,3+z,4+s*12,;
7090 : sysna,so+107*(8*s+z)+97
7095 next:next:ifns<0thenz=0:s=0:return
7100 z=ns and 7:s=int(ns/8):goto 7180
7110 rem
7115 rem
7120 x=a-65 :rem spalte 0,1,2
7122 syspr,12,13,f2$;"[146]sound waehlen"
7125 get a$:if a$="" then 7125
7130 y=asc(a$)-49:rem zeile
7135 if y<0 or y>7 then 7142
7140 gosub 7150:gosub 7400
7142 syspr,12,13,f1$;"[146]sound waehlen"
7144 return
7146 rem
7150 rem
7155 ns=8*s+z
7160 : syspr,3+z,4+s*12,f1$;"[146]";
7165 : sysna,so+107*ns+97
7170 rem
7175 s=x:z=y:ns=8*s+z
7180 : syspr,3+z,4+s*12,f2$;"[146]";
7185 : sysna,so+107*ns+97
7190 return
7200 rem
7205 rem
7210 syspr,13,13,f2$;"[146]sound abspeichern"
7215 get a$:if a$="" then 7215
7220 x=asc(a$)-65:rem spalte
7225 if x<0 or x>2 then 7250
7230 get a$:if a$="" then 7230
7235 y=asc(a$)-49:rem zeile
7240 if y<0 or y>7 then 7250
7245 gosub 7150:gosub 7450:goto 7260
7250 syspr,13,13,f1$;"[146]sound abspeichern"
7255 return
7260 syspr,13,13,f1$;"[146]sound abspeichern"
7300 rem
7305 rem
7310 syspr,14,13,f2$;"namen eingeben (return)"
7315 x=12*s+4:y=z+3:ad=1024+40*y+x
7320 sa=so+107*ns+97:i=0
7325 poke ad+i,peek(ad+i) or 128
7330 get a$:if a$="" then 7330
7335 a=asc(a$):if a<32or a>95 then 7370
7340 rem
7345 syspr,y,x+i,f2$;a$;:poke sa+i,a
7350 i=i+1
7355 if i>9 then i=9:goto 7325
7360 if i<0 then i=0
7365 goto 7325
7370 if a=29 then poke ad+i,peek(ad+i) and 127:goto 7350
7375 if a=157then poke ad+i,peek(ad+i) and 127:i=i-1:goto 7355
7380 if a<>13 then 7330
7385 poke ad+i,peek(ad+i) and 127
7390 syspr,14,13,f1$;"namen eingeben (return)"
7395 return
7400 rem
7402 rem
7404 sa=so+ns*107:sysge,sa
7406 for i=0 to 2
7408 : ad=sa+7*i
7410 : bf(i)=usr(ad+73)
7412 : x=bf(i)/17.0327/440
7414 : y=log(x)/log(2) :rem x=2^y
7416 : y=y+4+9/12+49/1200
7418 : o(i)=int(y):y=(y-o(i))*12
7420 : t(i)=int(y)
7422 : of(i)=int((y-t(i))*100-48.5)
7424 : s(i)=(peek(ad+75)=1)
7426 : a$=chr$(49+i):gosub 3570
7428 : c(i)=peek(ad+77) and 254
7429 : poke 50334+i,c(i)
7430 : c1(i)=c(i) or 1
7432 : ad(i)=peek(ad+78)
7434 : sr(i)=peek(ad+79)
7436 next i
7438 rf=peek(sa+94)
7440 eg=(peek(sa+95)=1):gosub 3740
7442 su=(peek(sa+96)=1):gosub 3840
7444 return
7450 rem
7452 rem
7454 sa=so+ns*107:syspu,sa
7456 for sn=0 to 2
7458 : ad=sa+7*sn
7460 : sysdo,ad+73,bf(sn)
7462 : poke ad+75,-s(sn)
7464 : poke ad+77,c(sn)
7466 : poke ad+78,ad(sn)
7468 : poke ad+79,sr(sn)
7470 next sn
7472 poke sa+94,rf
7474 poke sa+95,-eg
7476 poke sa+96,-su
7478 return
7500 rem
7505 rem
7510 rem
7515 m=7:pv=0:syscl:poke 157,0
7520 print f1$;" disk"
7525 syspr,5,4,f2$;"f1"
7530 syspr,5,7,f1$;"sounds laden"
7532 syspr,6,4,f2$;"f2"
7534 syspr,6,7,f1$;"song laden"
7535 syspr,7,4,f2$;"f3"
7540 syspr,7,7,f1$;"sounds abspeichern"
7545 return
7600 rem
7605 rem
7610 syspr,5,7,f2$;"sounds laden"
7615 syspr,10,4,f1$;"dateiname ";
7620 dn$="sounds "
7625 syspr,10,16,dn$
7630 syspr,10,14,;:input dn$
7632 sys 50198:gosub 2140:rem mod. aus
7635 open 8,8,8,dn$+",p,r":close 8
7640 open1,8,15:input#1,a,a$,x,y:close1
7645 syspr,12,4," "
7650 if a=0 then 7660
7655 syspr,12,3,a;a$;x;y:goto 7625
7660 a=0:loaddn$,8,1
7665 syspr,5,7,f1$;"sounds laden"
7670 ns=-1:a=211
7675 sysdo,56326,int(6e7/(24*te))
7680 if sr then sys 51093:goto 1550
7685 sys mo+1033:goto 1550
7700 rem
7705 rem
7710 syspr,7,7,f2$;"sounds abspeichern"
7715 syspr,10,4,f1$;"dateiname ";
7720 dn$="sounds "
7725 syspr,10,16,dn$
7730 syspr,10,14,;:input dn$
7735 sys 50198:gosub 2140:rem mod/seq aus
7740 rem
7745 open 1,8,1,"@:"+dn$
7750 poke 252,0:poke 253,144:rem $9000
7755 poke 780,252:rem akku
7760 poke 781,8 :rem x-reg = $08
7765 poke 782,154:rem y-reg = $9a
7770 sys 65496 :rem kernal save
7775 close 1
7780 open1,8,15:input#1,a,a$,x,y:close1
7785 if a=0 then 7795
7790 syspr,12,4,a;a$;x;y:goto 7725
7795 syspr,12,4," "
7800 syspr,7,7,f1$;"sounds abspeichern"
7805 sysdo,56326,int(6e7/(24*te))
7810 if sr then sys 51093:return
7815 sys50185:return:rem nur mod. an
7900 rem-------------------------------
7905 rem song laden
7910 syspr,6,7,f2$;"song laden"
7915 syspr,10,4,f1$;"dateiname ";
7920 syspr,10,14,;:input dn$
7925 sys 50966:gosub 2140
7930 open 8,8,8,dn$+",p,r":close 8
7935 open1,8,15:input#1,a,a$,x,y:close1
7940 syspr,12,4," "
7945 if a=0 then 7955
7950 syspr,12,3,a;a$;x;y:goto 7920
7955 a=0:m=7.5:load dn$,8,1
7960 syspr,6,7,f1$;"song laden"
7965 m=7:sq=-1
7970 sysdo,56326,int(6e7/(24*te))
7975 sysdo,50310,usr(39432)
7980 sys 51001 :rem seq/mod start/init
7985 if not sr then sys 50966
7990 a=65:goto 1550
8000 rem
8010 rem
8020 rem
8030 print"[147] ";
8035 print"bitte 30 sekunden warten"
8040 rem
8045 rem
8050 for i=0 to 22 :rem kernal-gosub
8055 poke 828+i,peek(43139+i):next
8060 fori=0to129:readx:poke851+i,x:next
8065 poke785,169:poke 786,3:rem usr
8070 rem
8072 rem
8074 for i=50211 to 50291
8076 read x:poke i,x:next
8078 rem
8080 rem
8082 for i=0 to 11:read tn$(i):next
8100 rem
8110 rem
8120 read a$:l=len(a$)
8130 on l goto 8150,8220,8280,8310,8310
8150 rem
8160 a=asc(a$)
8170 if m>=0 then v%(m,a)=zn:goto 8120
8180 for i=0 to 8:v%(i,a)=zn:next
8190 goto 8120
8200 if left$(a$,1)<>"m" then 8120
8220 rem
8230 if left$(a$,1)<>"m" then 8120
8240 a$=right$(a$,1)
8250 if a$="a" then m=-1 :goto 8120
8260 m=val(a$) :goto 8120
8280 rem
8290 a=val(a$) :goto 8170
8310 rem
8320 if a$="ende" then 8340
8330 zn=val(a$) :goto 8120
8340 rem
8350 rem
8360 a$="q2w3er5t6y7ui9o0p@-*\^;="
8370 for i=0 to 24
8380 : a=asc(mid$(a$,i+1,1))
8390 : tn%(a)=i
8400 : for j=0 to 8:v%(j,a)=2000:next
8410 next i
8450 rem
8455 rem
8460 for i=0 to 24:th(i)=2^(i/12):next
8465 rem
8470 rem
8472 gs=828:gt=857:pr=869:do=897:cl=959
8474 na=50229:ge=50245:pu=50276
8480 si=54272:mo=49152:fa=55296
8482 so=36864:ci=56320
8484 f1$=chr$(154):f1=14
8490 f2$=chr$(5) :f2=1
8495 kv$(0)="trian ":kf$(0)="[206][205][206][205]"
8500 kv$(1)="sawup ":kf$(1)="[206][204][206][204]"
8505 kv$(2)="sawdwn":kf$(2)="[186][205][186][205]"
8510 kv$(3)="square":kf$(3)="[207][204][207][204]"
8515 md$(0)="reset" :md$(1)="reset"
8520 md$(2)="hold " :md$(3)="run "
8525 bl$(0)="":bl$(1)=" ":bl$(2)=" "
8530 bl$(3)=" ":bl$(4)=" "
8535 bl$(5)=" ":bl$(6)=" "
8540 rem
8545 rem
8550 for sn=0 to 2
8555 : poke si+7*sn+5,10 :ad(sn)=10
8560 : poke si+7*sn+6,138:sr(sn)=138
8565 : o(sn)=3+sn:of(sn)=0:t(sn)=0
8570 : bf=440*2^(o(sn)-4+(t(sn)-9)/12+of(sn)/1200)
8572 : bf(sn)=bf*17.0327
8575 : c(sn)=64 :c1(sn)=65
8578 : poke 50334+sn,c(sn)
8580 : s(sn)=(sn=0)
8585 : sysdo,mo+7*sn+2,2048 :rem pw
8590 : poke mo+7*sn+4,0 :rem porta
8595 next sn
8600 poke si+23,0:rf=0 :rem res/filt
8605 sysdo,mo+21,0 :rem filterfr.
8610 poke mo+23,15 :rem mod/laut
8615 for i=24 to 72 :rem ksv,lfo,eg aus
8620 : poke mo+i,0:next
8625 eg=0 :rem eg abkoppeln
8627 poke 50303,0 :rem eg abkoppeln(seq)
8630 su=0 :rem sustain aus
8632 te=120 :rem tempo
8635 rem
8640 rem
8645 for ns=0 to 23
8650 : gosub 7450
8655 : ad=so+107*ns+97
8660 : for i=ad to ad+9:poke i,46:next
8665 next ns:ns=0
8700 rem
8870 rem
8880 poke 53280,14:poke 53281,6
8890 print f1$;"[146]";:poke 650,128
8900 gosub 4200 :rem bild zeilen 15-23
8910 sys mo+1033:rem modulator aktiv
8920 sq=0:sm=0:sr=0:a=2:return
9000 rem
9010 rem
9020 rem
9030 rem
9060 data 032,089,003,076,174,167,032
9070 data 253,174,032,138,173,032,247
9080 data 183,076,163,168,032,253,174
9090 data 032,158,183,138,072,032,253
9100 data 174,032,158,183,138,168,104
9110 data 170,024,032,240,255,032,253
9120 data 174,076,160,170,032,253,174
9130 data 032,138,173,032,247,183,165
9140 data 020,133,158,165,021,133,159
9150 data 032,253,174,032,138,173,032
9160 data 247,183,160,000,120,165,020
9170 data 145,158,200,165,021,145,158
9180 data 088,096,032,247,183,160,000
9190 data 120,177,020,133,099,200,177
9200 data 020,088,133,098,162,144,056
9210 data 076,073,188,169,032,162,000
9220 data 157,000,004,157,000,005,202
9230 data 208,247,162,087,157,000,006
9240 data 202,016,250,096
9250 rem
9260 rem
9270 data 032,253,174,032,138,173,032
9280 data 247,183,165,020,133,158,165
9290 data 021,133,159,096,032,035,196
9300 data 160,000,177,158,032,210,255
9310 data 200,192,010,208,246,096,032
9320 data 035,196,160,000,177,158,153
9330 data 000,192,200,192,073,208,246
9340 data 177,158,153,183,211,200,192
9350 data 094,208,246,177,158,141,023
9360 data 212,096,032,035,196,160,000
9370 data 185,000,192,145,158,200,192
9380 data 073,208,246,096
9400 rem
9410 rem
9420 data c,c#,d,d#,e,f,f#,g,g#,a,a#,h
9500 rem
9510 rem
9520 data ma,4000,x,3500,v,3600,032
9530 data ma,3700,160,3800,s,9990,a
9540 data ma,2550,133,2560,134
9550 data ma,2570,135,2580,136,4500,214
9555 data ma,5500,l,6000,h,6500,k
9560 data ma,5000,f,7000,211,7500,d
9565 data m1,4654,145,4660,017
9570 data m1,4666,029,4680,157
9580 data m2,5160,157,5145,029
9600 data m3,5675,145,5690,017
9610 data m3,5720,157,5705,029
9620 data m4,6410,157,6440,029
9630 data m5,6830,145,6850,017
9640 data m5,6870,157,6890,029
9650 data m5,6935,133,134,6975,135,136
9700 data m6,7110,a,b,c,7200,_,7300,n
9750 data m7,7600,133,7700,134,7900,137
9800 data m8,10420,029,10450,157
9900 data ende
9990 rem
10000 rem==============================
10010 rem untermenue sequencer
10020 rem==============================
10030 m=8:pv=0:syscl:print"";f1$;
10040 print" sequencer";
10045 if not sq then print" (kein song vorhanden)"
10050 syspr,4,10,"tempo modus seqnr soft-eg"
10060 syspr,5,4,"[176][195][195][195][195][178][195][195][195][195][195][178][195][195][195][195][195][178][195][195][195][195][195][178][195][195][195][195][195][195][195][195][195][174]"
10070 syspr,6,4,"[194] [194] [194] [194] [194] 1 2 3 [194]"
10080 syspr,7,4,"[173][195][195][195][195][177][195][195][195][195][195][177][195][195][195][195][195][177][195][195][195][195][195][177][195][195][195][195][195][195][195][195][195][189]"
10090 syspr,9,1,f2$;"f1";f1$;" reset ++ 1"
10100 syspr,10,1,f2$;"f3";f1$;" stop + song + 2"
10110 syspr,11,1,f2$;"f5";f1$;" run - seq - 3"
10120 syspr,12,1,f2$;"f7";f1$;" --"
10130 if sr then 10150
10140 syspr,6,5,"stop":goto 10160
10150 syspr,6,5,"run "
10160 syspr,6,11,right$(str$(te),3)
10170 if sm then 10190
10180 syspr,6,16,"song":goto 10210
10190 syspr,6,16,"seq "
10200 syspr,6,22,right$(" "+str$(se),3)
10210 rem
10220 x=peek(50303)
10230 if x and 1 then syspr,6,28," 1 "
10240 if x and 2 then syspr,6,31," 2 "
10250 if x and 4 then syspr,6,34," 3 "
10300 av=10500:sysgs,av:return
10400 rem------------------------------
10410 rem parameterwahl durch cursor
10420 rem rechts
10430 av=av+100:ifav>10900then av=10500
10440 goto 10470
10450 rem links
10460 av=av-100:ifav<10500then av=10900
10470 for i=pb to pb+8:poke i,f1:next
10480 sysgt,av
10500 rem------------------------------
10510 rem run/stop waehlen
10520 pb=fa+245
10530 for i=pb to pb+3:poke i,f2:next
10540 pa=ci+12:pv=11000:return
10600 rem------------------------------
10610 rem tempo waehlen
10620 pb=fa+250
10630 for i=pb to pb+3:poke i,f2:next
10640 pa=ci+6:pw=te
10650 pm=500:p1=1:p2=10:pv=3400:return
10700 rem------------------------------
10710 rem modus waehlen
10720 pb=fa+256
10730 for i=pb to pb+3:poke i,f2:next
10740 pa=50345:pw=peek(pa)
10750 pv=11100:return
10800 rem------------------------------
10810 rem seqnr waehlen
10820 pb=fa+262
10830 for i=pb to pb+2:poke i,f2:next
10840 pw=se:p1=1:p2=1:pm=1000
10850 pv=11200:return
10900 rem------------------------------
10910 rem soft-eg waehlen
10920 pb=fa+268
10930 for i=pb to pb+8:poke i,f2:next
10940 pa=50303:pv=11300:return
11000 rem------------------------------
11010 rem sequencer reset/stop/run
11015 if not sq then return
11020 if a<133 or a>135 then return
11030 on a-132 goto 11040,11060,11080
11040 rem reset
11042 if sm then sys 51116:return
11045 sys 51001
11050 if not sr then sys 50966
11055 return
11060 rem stop
11065 sys 50966:syspr,6,5,f2$;"stop"
11070 sr=0:if not su then 2140
11075 return
11080 rem run
11085 sys 51093:syspr,6,5,f2$;"run "
11090 sr=-1:return
11100 rem------------------------------
11110 rem sequencer-modus (song/seq)
11112 ifnotsqthenreturn
11115 if a=134 then 11130
11120 if a=135 then 11150
11125 return
11130 rem song-modus
11135 sm=0 :poke pa,0
11140 syspr,6,16,f2$;"song"
11145 syspr,6,22," ":return
11150 rem sequenz-modus
11155 sm=-1:poke pa,1:syspr,6,16,"seq "
11160 syspr,6,16,f2$;"seq "
11165 se=(usr(50312)-usr(50310))/3+1
11170 syspr,6,22,f1$;right$(" "+str$(se),3)
11175 return
11200 rem------------------------------
11210 rem sequenz-nummer
11220 if not sm then return
11230 if pw=0 then pw=1:return
11240 ad=usr(50310)+(pw-1)*3
11250 if usr(ad)=0 then pw=pw-1:return
11260 sysdo,50312,ad:se=pw
11270 sysdo,50314,usr(ad)
11280 sys 51116 :rem nextseq
11285 syspr,6,22,f2$;right$(" "+str$(se),3)
11290 return
11300 rem------------------------------
11310 rem sequencer soft-eg-steuerung
11320 x=peek(pa)
11330 for i=0 to 2
11340 : if a<>133+i then 11420
11350 : y=2^i
11360 : if (x and y) then 11400
11370 : x=x or y:poke pa,x
11380 : syspr,6,28+3*i,f2$;"";i+1;"[157] "
11390 : goto 11420
11400 : x=x and (255-y):poke pa,x
11410 : syspr,6,28+3*i,f2$;i+1;"[157] "
11420 next i:return