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 >
Commodore BASIC  |  2022-10-26  |  25KB  |  1,167 lines

  1. 0 if a>1 then return
  2. 1000 rem
  3. 1005 rem
  4. 1010 rem
  5. 1015 rem
  6. 1020 rem
  7. 1025 rem
  8. 1030 rem
  9. 1035 rem
  10. 1040 rem
  11. 1045 rem
  12. 1050 rem
  13. 1055 rem
  14. 1060 rem
  15. 1065 if m=7 then 7665
  16. 1068 if m=7.5 then 7960
  17. 1070 rem
  18. 1075 rem
  19. 1080 ifa=0 thena=.1:load"modulator",8,1
  20. 1082 ifa=.1thena=.2:load"sequencer.obj",8,1
  21. 1084 ifa=.2thena= 1:load"seq.erg.obj",8,1
  22. 1085 rem
  23. 1120 rem
  24. 1130 poke 56,144:clr
  25. 1140 rem
  26. 1150 rem
  27. 1160 dim v%(8,255),tn%(255),th(24)
  28. 1165 dim bf(2),t(2),o(2),of(2),s(2)
  29. 1170 dim c1(2),c(2),ad(2),sr(2)
  30. 1175 dim bl$(6),kv$(3),kf$(6),md$(3)
  31. 1180 dim tn$(11)
  32. 1185 rem
  33. 1190 gosub 8000  :rem initialisierungen
  34. 1200 gosub 4000  :rem hauptmenue
  35. 1210 rem
  36. 1500 rem
  37. 1510 rem
  38. 1520 rem
  39. 1530 get a$:if a$="" then 1530
  40. 1540 a=asc(a$)
  41. 1550 sys gs,v%(m,a) :rem berechn. gosub
  42. 1560 goto 1530
  43. 2000 rem
  44. 2010 rem
  45. 2020 rem
  46. 2025 poke 650,0
  47. 2030 f=th(tn%(a)):ad=mo+72:x=peek(ad)
  48. 2035 if s(0) then sysdo,mo   ,f*bf(0):poke si+4 ,c1(0)
  49. 2040 if s(1) then sysdo,mo+7 ,f*bf(1):poke si+11,c1(1)
  50. 2050 if s(2) then sysdo,mo+14,f*bf(2):poke si+18,c1(2)
  51. 2090 if eg then poke ad,x or 1
  52. 2110 if su then poke 650,128:return
  53. 2120 if peek(203)<>64 and peek(198)=0 then 2120
  54. 2130 poke ad,x and 254
  55. 2140 poke si+4 ,c(0)
  56. 2150 poke si+11,c(1):poke si+18,c(2)
  57. 2160 poke 650,128:return
  58. 2500 rem
  59. 2510 rem
  60. 2520 rem
  61. 2530 rem
  62. 2550 pw=pw+p2:if pw>=pm then pw=pw-pm
  63. 2555 sysgt,pv
  64. 2560 pw=pw+p1:if pw>=pm then pw=pw-pm
  65. 2565 sysgt,pv
  66. 2570 pw=pw-p1:if pw< 0  then pw=pw+pm
  67. 2575 sysgt,pv
  68. 2580 pw=pw-p2:if pw< 0  then pw=pw+pm
  69. 2585 sysgt,pv
  70. 2600 rem
  71. 2605 rem
  72. 2610 sysdo,pa,pw:l=len(str$(pw))
  73. 2620 syspr,3+ln,4,bl$(6-l);f2$;pw
  74. 2625 return
  75. 2630 rem
  76. 2635 rem
  77. 2640 poke pa,pw:l=len(str$(pw))
  78. 2650 syspr,3+ln,11,bl$(4-l);f2$;pw
  79. 2655 return
  80. 2660 rem
  81. 2665 rem
  82. 2670 poke pa,pw:l=len(str$(pw))
  83. 2680 syspr,3+ln,16,bl$(4-l);f2$;pw
  84. 2685 return
  85. 2690 rem
  86. 2695 rem
  87. 2700 if a>136 or a<133 then return
  88. 2705 b=a-133  :rem b=0,1,2,3
  89. 2710 poke pa,(peek(pa)and231)or(b*8)
  90. 2715 syspr,3+ln,21,f2$;kv$(b)
  91. 2717 syspr,6   ,34,f2$;kf$(b):return
  92. 2720 rem
  93. 2725 rem
  94. 2730 if a>135 or a<133 then return
  95. 2735 b=a-132  :rem b=1,2,3
  96. 2740 poke pa,(peek(pa)and249)or(b*2)
  97. 2745 syspr,3+ln,28,f2$;md$(b):return
  98. 2750 rem
  99. 2755 rem
  100. 2760 poke pa,pw:l=len(str$(pw))
  101. 2765 syspr,7,s,bl$(4-l);f2$;pw:return
  102. 2770 rem
  103. 2775 rem
  104. 2780 b=-(a>134):rem f1,f3 b=0 f5,f7 b=1
  105. 2785 poke pa,(peek(pa)and247)or(b*8)
  106. 2790 syspr,7,29,f2$;chr$(43+2*b)
  107. 2795 return
  108. 2810 rem
  109. 2815 rem
  110. 2820 if a>135 or a<133 then return
  111. 2825 b=a-132  :rem b=1,2,3
  112. 2830 poke pa,(peek(pa)and249)or(b*2)
  113. 2835 syspr,7,33,f2$;md$(b):return
  114. 2840 rem
  115. 2845 rem
  116. 2850 poke pa,pwand7:poke pa+1,int(pw/8)
  117. 2855 l=len(str$(pw))
  118. 2860 syspr,5,2,bl$(5-l);f2$;pw:return
  119. 2865 rem
  120. 2870 rem
  121. 2875 rf=(rf and 15)+16*pw:poke pa,rf
  122. 2880 l=len(str$(pw))
  123. 2885 syspr,5,9,bl$(3-l);f2$;pw:return
  124. 2890 rem
  125. 2895 rem
  126. 2900 if a>136 or a<133 then return
  127. 2905 b=a-133  :rem b=0,1,2,3
  128. 2910 x=2^b:x1=255-x:rem masken
  129. 2915 y=rf and x
  130. 2920 rf=(rf and x1)or(x-y):poke pa,rf
  131. 2925 y=-128*(y=0):ad=1024+(5+b)*40+15
  132. 2930 for i=ad to ad+5
  133. 2935 : poke i,(peek(i)and127)or y
  134. 2940 next:return
  135. 2945 rem
  136. 2950 rem
  137. 2955 if a>136 or a<133 then return
  138. 2960 b=a-129  :rem b=4,5,6,7
  139. 2965 x=2^b:x1=255-x:rem masken
  140. 2970 pw=peek(pa):y=pw and x
  141. 2975 poke pa,(pw and x1)or(x-y)
  142. 2980 y=-128*(y=0):ad=1024+(1+b)*40+25
  143. 2985 for i=ad to ad+3
  144. 2990 : poke i,(peek(i)and127)or y
  145. 2995 next:return
  146. 3000 rem
  147. 3005 rem
  148. 3010 poke pa,(peek(pa) and 240) or pw
  149. 3015 l=len(str$(pw))
  150. 3020 syspr,5,31,bl$(3-l);f2$;pw:return
  151. 3050 rem
  152. 3052 rem
  153. 3054 if a<>134 then 3064
  154. 3056 rem
  155. 3058 of=of+1:if of<=50 then 3110
  156. 3062 of=-49:goto 3076
  157. 3064 if a<>135 then 3074
  158. 3066 rem
  159. 3068 of=of-1:if of>=-49 then 3110
  160. 3072 of=50:goto 3084
  161. 3074 if a<>133 then 3082
  162. 3076 rem
  163. 3078 t=t+1:if t<=11 then 3110
  164. 3080 t=0:goto 3090
  165. 3082 if a<>136 then return
  166. 3084 rem
  167. 3086 t=t-1:if t>=0 then 3110
  168. 3088 t=11:goto 3096
  169. 3090 rem
  170. 3092 o=o+1:if o<=5 then 3110
  171. 3094 o=0:goto 3110
  172. 3096 rem
  173. 3098 o=o-1:if o>=0 then 3110
  174. 3100 o=5:t=10
  175. 3110 rem
  176. 3112 if t=11 and o=5 then t=0:o=0
  177. 3114 bf=440*2^(o-4+(t-9)/12+of/1200)
  178. 3116 o(sn)=o:t(sn)=t:of(sn)=of
  179. 3118 bf(sn)=bf*17.0327
  180. 3120 sysdo,mo+7*sn,f*bf(sn)
  181. 3122 rem
  182. 3124 syspr,3+sn,3,f2$;o
  183. 3126 syspr,3+sn,2,tn$(t)
  184. 3128 syspr,3+sn,5,right$(" "+str$(of),3)
  185. 3130 return
  186. 3150 rem
  187. 3155 rem
  188. 3160 sysdo,pa,pw
  189. 3165 syspr,3+sn,9,f2$;right$("  "+str$(pw),4)
  190. 3170 return
  191. 3175 rem
  192. 3180 rem
  193. 3185 ad(sn)=(ad(sn)and15) or pw*16
  194. 3190 poke pa,ad(sn)
  195. 3195 syspr,3+sn,14,f2$;right$(str$(pw),2)
  196. 3200 return
  197. 3205 rem
  198. 3210 rem
  199. 3215 ad(sn)=(ad(sn)and240) or pw
  200. 3220 poke pa,ad(sn)
  201. 3225 syspr,3+sn,17,f2$;right$(str$(pw),2)
  202. 3230 return
  203. 3235 rem
  204. 3240 rem
  205. 3245 sr(sn)=(sr(sn)and15) or pw*16
  206. 3250 poke pa,sr(sn)
  207. 3255 syspr,3+sn,20,f2$;right$(str$(pw),2)
  208. 3260 return
  209. 3265 rem
  210. 3270 rem
  211. 3275 sr(sn)=(sr(sn)and240) or pw
  212. 3280 poke pa,sr(sn)
  213. 3285 syspr,3+sn,23,f2$;right$(str$(pw),2)
  214. 3290 return
  215. 3300 rem
  216. 3305 rem
  217. 3310 if a<>133 and a<>134 then 3335
  218. 3315 rem
  219. 3320 c(sn)=c(sn) or 2^(7-s)
  220. 3325 c1(sn)=c(sn) or 1
  221. 3330 syspr,3+sn,26+s,f2$;"1":goto 3355
  222. 3335 rem
  223. 3340 c(sn)=c(sn) and 255-2^(7-s)
  224. 3345 c1(sn)=c(sn) or 1
  225. 3350 syspr,3+sn,26+s,f2$;"0"
  226. 3355 rem
  227. 3358 poke 50334+sn,c(sn)
  228. 3360 x=c(sn):if su then x=c1(sn)
  229. 3365 poke si+7*sn+4,x:return
  230. 3370 rem
  231. 3375 rem
  232. 3380 poke pa,pw:l=len(str$(pw))
  233. 3385 syspr,3+sn,34,bl$(4-l);f2$;pw
  234. 3390 return
  235. 3400 rem-------------------------------
  236. 3405 rem tempo
  237. 3410 if pw<40  then pw=40
  238. 3415 if pw>480 then pw=480
  239. 3420 te=pw:sysdo,pa,int(6e7/(24*te))
  240. 3425 syspr,6,11,f2$;right$(str$(pw),3)
  241. 3430 return
  242. 3500 rem
  243. 3510 rem
  244. 3520 rem
  245. 3525 syspr,15,10,f2$;"stimme 1,2,3"
  246. 3530 get a$:if a$=""then 3530
  247. 3540 ifa$="1"ora$="2"ora$="3"then 3560
  248. 3550 goto 3590
  249. 3560 i=val(a$)-1 :s(i)=not s(i)
  250. 3570 if s(i) then print chr$(18);
  251. 3580 syspr,21,31+2*i,f1$;a$;chr$(146);
  252. 3590 syspr,15,10,f1$;"stimme 1,2,3"
  253. 3595 return
  254. 3600 rem
  255. 3610 rem
  256. 3620 rem
  257. 3630 poke 650,64
  258. 3640 ad=mo+72:x=peek(ad):poke ad,x or 1
  259. 3650 if peek(203)<>64 and peek(198)=0 then 3650
  260. 3660 poke ad,xand254:poke650,128:return
  261. 3700 rem
  262. 3710 rem
  263. 3720 rem
  264. 3730 eg=not eg
  265. 3740 if eg then print chr$(18);
  266. 3750 syspr,23,31,f1$;"soft-eg[146]":return
  267. 3800 rem
  268. 3810 rem
  269. 3820 rem
  270. 3830 su=not su
  271. 3840 poke 50344,-su:if su then print chr$(18);
  272. 3850 syspr,22,31,f1$;"sustain[146]"
  273. 3860 if not su then 2140
  274. 3870 return
  275. 4000 rem
  276. 4010 rem
  277. 4020 rem
  278. 4030 m=0:pv=0:syscl:print "";f1$
  279. 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]"
  280. 4045 print" [194]         m o d u l a t o r          [146][194]"
  281. 4050 print" [194]     thomas kraetzig       1985     [146][194]"
  282. 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]"
  283. 4100 syspr,6,1,f2$;"sh v";f1$;" stimmen-parameter"
  284. 4105 syspr,7,1,f2$;"   f";f1$;" filter/lautstaerke"
  285. 4110 syspr,8,1,f2$;"   l";f1$;" lfo"
  286. 4115 syspr,9,1,f2$;"   h";f1$;" huellkurve (soft-eg)"
  287. 4120 syspr,10,1,f2$;"   k";f1$;" ksv"
  288. 4125 syspr,11,1,f2$;"sh s";f1$;" sounds"
  289. 4130 syspr,12,1,f2$;"   d";f1$;" disk"
  290. 4132 syspr,13,1,f2$;"   a";f1$;" sequencer"
  291. 4135 return
  292. 4200 rem
  293. 4210 rem
  294. 4220 rem
  295. 4240 syspr,15,1, f2$;"v  1,2,3"
  296. 4245 syspr,15,10,f1$;"stimme 1,2,3
  297. 4250 [158]pr,15,26,f2$;"s"
  298. 4255 [158]pr,15,32,f1$;"sustain"
  299. 4260 [158]pr,16,1, f2$;"sh space"
  300. 4270 [158]pr,16,10,f1$;"eg (ab-)koppeln"
  301. 4280 [158]pr,16,26,f2$;"space"
  302. 4290 [158]pr,16,32,f1$;"eg gate"
  303. 4292 [158]pr,17,1, f2$;"x"
  304. 4294 [158]pr,17,10,f1$;"hauptmenue"
  305. 4300 [158]pr,19,0,f2$;
  306. 4310 [129] i[178]1 [164] 4
  307. 4320 : [153]"  peek peek peek peek peek peek peek peek peek peek peek peek peek peek wait":[130]
  308. 4330 [153]" qpeekwpeekepeekrpeektpeekypeekupeekipeekopeekppeek@peek*peek^peek;peek="
  309. 4340 [158]pr,19,0,;
  310. 4350 [129] i[178]1 [164] 2
  311. 4360 : [153]"           ":[130]
  312. 4370 [153]" 2356790-\c"
  313. 4380 [158]pr,19,31,f1$;"aktiv:"
  314. 4390 [129] i[178]0 [164] 2
  315. 4400 : a$[178][201]([196](i[170]1),1)
  316. 4410 : [141] 3570:[130] i
  317. 4420 [141] 3840:[141] 3740
  318. 4430 [142]
  319. 4500 [143]
  320. 4505 [143]
  321. 4510 [143]
  322. 4515 m[178]1:pv[178]3050:[158]cl:[153]"wait";f1$
  323. 4520 [153]"     f    pw   a  d  s  r control porta"
  324. 4525 [153]" orlenlenlenlenlenlen=lenlenlenlen=lenlen=lenlen=lenlen=lenlen=lenlenlenlenlenlenlen=lenlenlenlen^"
  325. 4530 [129] i[178]1 [164] 3
  326. 4535 [153]" peek      peek    peek  peek  peek  peek  peek       peek    peek"
  327. 4540 [130] i
  328. 4545 [153]" /lenlenlenlenlenlen>lenlenlenlen>lenlen>lenlen>lenlen>lenlen>=======>lenlenlenlenexp"
  329. 4550 [158]pr,7,26,"peekpeekpeekpeekpeekpeek/lenlensync"
  330. 4555 [158]pr,8,26,"peekpeekpeekpeekpeek/lenlenring"
  331. 4560 [158]pr,9,1,f2$;"f1  ++";f1$
  332. 4565 [158]pr,9,26,"peekpeekpeekpeek/lenlentest"
  333. 4570 [158]pr,10,1,f2$;"f3  +";f1$
  334. 4575 [158]pr,10,26,"peekpeekpeek/lenlentrian"
  335. 4580 [158]pr,11,1,f2$;"f5  -";f1$
  336. 4585 [158]pr,11,26,"peekpeek/lenlensawtooth"
  337. 4590 [158]pr,12,1,f2$;"f7  --";f1$
  338. 4595 [158]pr,12,26,"peek/lenlensquare"
  339. 4600 [158]pr,13,26,"/lenlennoise"
  340. 4602 [143]
  341. 4604 a$[178]f2$:f2$[178]f1$
  342. 4606 [129] sn[178]0 [164] 2
  343. 4608 : t[178]t(sn):o[178]o(sn):of[178]of(sn)
  344. 4610 : [141] 3122:[143] f
  345. 4612 : pw[178]([183](mo[170]7[172]sn[170]2)):[141] 3165
  346. 4614 : pw[178][181](ad(sn)[173]16)  :[141] 3195
  347. 4616 : pw[178]ad(sn)[175]15     :[141] 3225
  348. 4618 : pw[178][181](sr(sn)[173]16)  :[141] 3255
  349. 4620 : pw[178]sr(sn)[175]15     :[141] 3285
  350. 4622 : [143] control-byte (7 bit)
  351. 4624 : b[178]c(sn):a[178]128
  352. 4626 : [158]pr,3[170]sn,26,f1$;"0000000"
  353. 4628 : [129] s[178]7 [164] 1 [169] [171]1
  354. 4630 : [139](b[175]a)[167][158]pr,3[170]sn,33[171]s,"1"
  355. 4632 : a[178]a[173]2:[130] s
  356. 4634 : pa[178]mo[170]7[172]sn[170]4:pw[178][194](pa)
  357. 4636 : [141] 3370:[143] porta
  358. 4638 [130] sn
  359. 4640 f2$[178]a$
  360. 4642 sn[178]0:av[178]4700:[158]gs,av:[142]
  361. 4650 [143]
  362. 4652 [143]
  363. 4654 [143]
  364. 4656 sn[178]sn[171]1:[139] sn[179]0 [167] sn[178]2
  365. 4658 [141] 5815:[158]gt,av
  366. 4660 [143]
  367. 4662 sn[178]sn[170]1:[139] sn[177]2 [167] sn[178]0
  368. 4664 [141] 5815:[158]gt,av
  369. 4666 [143]
  370. 4668 [139] av[179][177]4880 [167] 4674
  371. 4670 s[178]s[170]1:[139] s[177]6 [167] av[178]4910
  372. 4672 [137] 4678
  373. 4674 av[178]av[170]30:[139] av[177]4910 [167] av[178]4700
  374. 4676 [139] av[178]4880 [167] s[178]0
  375. 4678 [141] 5815:[158]gt,av
  376. 4680 [143]
  377. 4682 [139] av[179][177]4880 [167] 4688
  378. 4684 s[178]s[171]1:[139] s[179]0 [167] av[178]4850
  379. 4686 [137] 4692
  380. 4688 av[178]av[171]30:[139] av[179]4700 [167] av[178]4910
  381. 4690 [139] av[178]4880 [167] s[178]6
  382. 4692 [141] 5815:[158]gt,av
  383. 4700 [143]
  384. 4702 [143]
  385. 4704 pb[178]fa[170]40[172](sn[170]3)[170]2
  386. 4706 [129] i[178]pb [164] pb[170]5:[151] i,f2:[130]
  387. 4708 t[178]t(sn):o[178]o(sn):of[178]of(sn)
  388. 4710 pa[178]mo[170]7[172]sn:pv[178]3050:[142]
  389. 4730 [143]
  390. 4732 [143]
  391. 4734 pb[178]fa[170]40[172](sn[170]3)[170]9
  392. 4736 [129] i[178]pb [164] pb[170]3:[151] i,f2:[130]
  393. 4738 pa[178]mo[170]7[172]sn[170]2:pw[178][183](pa):pm[178]4096
  394. 4740 p1[178]1:p2[178]50:pv[178]3150:[142]
  395. 4760 [143]
  396. 4762 [143]
  397. 4764 pb[178]fa[170]40[172](sn[170]3)[170]14
  398. 4766 [151] pb,f2:[151] pb[170]1,f2
  399. 4768 pa[178]si[170]7[172]sn[170]5:pw[178][181](ad(sn)[173]16)
  400. 4770 pm[178]16:p1[178]1:p2[178]1:pv[178]3175:[142]
  401. 4790 [143]
  402. 4792 [143]
  403. 4794 pb[178]fa[170]40[172](sn[170]3)[170]17
  404. 4796 [151] pb,f2:[151] pb[170]1,f2
  405. 4798 pa[178]si[170]7[172]sn[170]5:pw[178]ad(sn)[175]15
  406. 4800 pm[178]16:p1[178]1:p2[178]1:pv[178]3205:[142]
  407. 4820 [143]
  408. 4822 [143]
  409. 4824 pb[178]fa[170]40[172](sn[170]3)[170]20
  410. 4826 [151] pb,f2:[151] pb[170]1,f2
  411. 4828 pa[178]si[170]7[172]sn[170]6:pw[178][181](sr(sn)[173]16)
  412. 4830 pm[178]16:p1[178]1:p2[178]1:pv[178]3235:[142]
  413. 4850 [143]
  414. 4852 [143]
  415. 4854 pb[178]fa[170]40[172](sn[170]3)[170]23
  416. 4856 [151] pb,f2:[151] pb[170]1,f2
  417. 4858 pa[178]si[170]7[172]sn[170]6:pw[178]sr(sn)[175]15
  418. 4860 pm[178]16:p1[178]1:p2[178]1:pv[178]3265:[142]
  419. 4880 [143]
  420. 4882 [143]
  421. 4884 pb[178]fa[170]40[172](sn[170]3)[170]26[170]s
  422. 4886 [151] pb,f2
  423. 4888 pa[178]si[170]7[172]sn[170]4:pv[178]3300:[142]
  424. 4910 [143]
  425. 4912 [143]
  426. 4914 pb[178]fa[170]40[172](sn[170]3)[170]35
  427. 4916 [129] i[178]0 [164] 2:[151] pb[170]i,f2:[130]
  428. 4918 pa[178]mo[170]7[172]sn[170]4:pw[178][194](pa):pm[178]256
  429. 4920 p1[178]1:p2[178]10:pv[178]3370:[142]
  430. 5000 [143]
  431. 5005 [143]
  432. 5010 [143]
  433. 5015 m[178]2:pv[178]0:[158]cl:[153]"wait";f1$
  434. 5020 [153]" filter/lautstaerke"
  435. 5025 [153]" orlenlenlenlenlen=lenlenlenlenlen=lenlenlenlenlenlenlenlen=lenlenlenlenlenlenlen=lenlenlenlen^"
  436. 5030 [153]" peekfiltfpeek res peekschalterpeek modus peeklautpeek"
  437. 5035 [153]" -lenlenlenlenlen(NULL)lenlenlenlenlen(NULL)lenlenlenlenlenlenlenlen(NULL)lenlenlenlenlenlenlen(NULL)lenlenlenlen<"
  438. 5040 [153]" peek     peek     peek filt1  peek   lp  peek    peek"
  439. 5045 [153]" -lenlenlenlenlen>lenlenlenlenlen< filt2  peek   bp  -lenlenlenlenexp"
  440. 5050 [153]" peek           peek filt3  peek   hp  peek"
  441. 5055 [153]" peek           peek filtex peek  3off peek"
  442. 5060 [153]" /lenlenlenlenlenlenlenlenlenlenlen>lenlenlenlenlenlenlenlen>lenlenlenlenlenlenlenexp"
  443. 5065 [153] f2$;" f1";f1$;"    ++      filt1      lp    +"
  444. 5070 [153] f2$;" f3";f1$;"    +       filt2      bp    +"
  445. 5075 [153] f2$;" f5";f1$;"    -       filt3      hp    -"
  446. 5080 [153] f2$;" f7";f1$;"    --      filtex    3off   -"
  447. 5085 pw[178]([194](mo[170]21)[175]7)[170]8[172][194](mo[170]22)
  448. 5090 [158]pr,5, 7[171][195]([196](pw)),pw
  449. 5095 pw[178][181](rf[173]16)
  450. 5100 [158]pr,5,12[171][195]([196](pw)),pw
  451. 5102 [139]rf[175]1[167] [158]pr,5,15,"filt1 wait"
  452. 5104 [139]rf[175]2[167] [158]pr,6,15,"filt2 wait"
  453. 5106 [139]rf[175]4[167] [158]pr,7,15,"filt3 wait"
  454. 5108 [139]rf[175]8[167] [158]pr,8,15,"tiltexwait"
  455. 5110 pw[178][194](mo[170]23)
  456. 5112 [139]pw[175] 16[167] [158]pr,5,25," lp wait"
  457. 5114 [139]pw[175] 32[167] [158]pr,6,25," bp wait"
  458. 5116 [139]pw[175] 64[167] [158]pr,7,25," hp wait"
  459. 5118 [139]pw[175]128[167] [158]pr,8,25,"3offwait"
  460. 5120 pw[178][194](mo[170]23)[175]15
  461. 5122 [158]pr,5,34[171][195]([196](pw)),pw
  462. 5125 av[178]5200:[158]gs,av:[142]
  463. 5130 [143]
  464. 5135 [143]
  465. 5140 [143]
  466. 5145 av[178]av[170]50:[139] av[177]5400 [167] av[178]5200
  467. 5150 [137] 5165
  468. 5155 [143]
  469. 5160 av[178]av[171]50:[139] av[179]5200 [167] av[178]5400
  470. 5165 [141] 5815:a[178]pb[171]fa[171]200
  471. 5170 [139] a[179][177]15 [175] a[179][177]25 [167] [158]gt,av
  472. 5175 [129] j[178]1[164]3:pb[178]pb[170]40:[141]5815:[130]
  473. 5180 pb[178]pb[171]120:[158]gt,av
  474. 5200 [143]
  475. 5205 [143]
  476. 5210 pb[178]fa[170]203
  477. 5215 [129] i[178]pb [164] pb[170]3:[151] i,f2:[130]
  478. 5220 pa[178]mo[170]21:pw[178][194](pa)[170]8[172][194](pa[170]1)
  479. 5225 pm[178]2048:p1[178]1:p2[178]50:pv[178]2850:[142]
  480. 5250 [143]
  481. 5255 [143]
  482. 5260 pb[178]fa[170]210
  483. 5265 [151] pb,f2:[151] pb[170]1,f2
  484. 5270 pa[178]si[170]23:pw[178][181](rf[173]16)
  485. 5275 pm[178]16:p1[178]1:p2[178]1:pv[178]2875:[142]
  486. 5300 [143]
  487. 5305 [143]
  488. 5310 pb[178]fa[170]215
  489. 5315 [129] i[178]0 [164] 120 [169]40:[129] j[178]0 [164] 5
  490. 5320 : [151] pb[170]i[170]j,f2:[130]:[130]
  491. 5325 pa[178]si[170]23:pw[178]rf [175] 15
  492. 5330 pv[178]2900:[142]
  493. 5350 [143]
  494. 5355 [143]
  495. 5360 pb[178]fa[170]225
  496. 5365 [129] i[178]0 [164] 120 [169]40:[129] j[178]0 [164] 3
  497. 5370 : [151] pb[170]i[170]j,f2:[130]:[130]
  498. 5375 pa[178]mo[170]23
  499. 5380 pv[178]2955:[142]
  500. 5400 [143]
  501. 5405 [143]
  502. 5410 pb[178]fa[170]232
  503. 5415 [151] pb,f2:[151] pb[170]1,f2
  504. 5420 pa[178]mo[170]23:pw[178][194](pa) [175] 15
  505. 5425 pm[178]16:p1[178]1:p2[178]1:pv[178]3010:[142]
  506. 5500 [143]
  507. 5505 [143]
  508. 5510 [143]
  509. 5515 m[178]3:[158]cl:[153]"wait";f1$;
  510. 5520 [153]"   orlenlenlenlenlenlen=lenlenlenlen=lenlenlenlen=lenlenlenlenlenlen=lenlenlenlenlen^"
  511. 5525 [153]"   peek lfof peeklfoppeeklfoapeekkurve peekmoduspeek"
  512. 5530 [153]" orlen(NULL)lenlenlenlenlenlen(NULL)lenlenlenlen(NULL)lenlenlenlen(NULL)lenlenlenlenlenlen(NULL)lenlenlenlenlen(NULL)lenlenlenlen^"
  513. 5535 [129] z[178]3 [164] 9
  514. 5540 : [158]pr,z,1,"peek peek      peek    peek    peek      peek     peek    peek"
  515. 5545 [130] z
  516. 5550 [158]pr,10,1,"/len>lenlenlenlenlenlen>lenlenlenlen>lenlenlenlen>lenlenlenlenlenlen>lenlenlenlenlen>lenlenlenlenexp
  517. 5555 print f2$;" f1";f1$;"  ++     ++   ++  trian  reset"
  518. 5560 print f2$;" f3";f1$;"  +      +    +   sawup  hold"
  519. 5565 print f2$;" f5";f1$;"  -      -    -   sawdwn run"
  520. 5570 print f2$;" f7";f1$;"  --     --   --  square"
  521. 5575 for ln=0 to 6
  522. 5580 : z=3+ln
  523. 5585 : syspr,z,2,chr$(48+ln)
  524. 5590 : pw=usr(mo+32+5*ln)     :rem lfof
  525. 5595 : syspr,z,10-len(str$(pw)),pw
  526. 5600 : pw=peek(mo+34+5*ln)    :rem lfop
  527. 5605 : syspr,z,15-len(str$(pw)),pw
  528. 5610 : pw=peek(mo+35+5*ln)    :rem lfoa
  529. 5615 : syspr,z,20-len(str$(pw)),pw
  530. 5620 : pw=peek(mo+36+5*ln)    :rem lfoc
  531. 5625 : syspr,z,21,kv$((pw and 24)/8)
  532. 5630 : syspr,z,28,md$((pw and  6)/2)
  533. 5640 next ln
  534. 5645 ln=0:av=5830:sysgs,av:return
  535. 5650 rem
  536. 5655 rem
  537. 5670 rem
  538. 5675 ln=ln-1:if ln<0 then ln=6
  539. 5680 gosub 5815:sysgt,av
  540. 5685 rem
  541. 5690 ln=ln+1:if ln>6 then ln=0
  542. 5695 gosub 5815:sysgt,av
  543. 5700 rem
  544. 5705 av=av+30:if av>5950 then av=5830
  545. 5710 gosub 5810:sysgt,av
  546. 5715 rem
  547. 5720 av=av-30:if av<5830 then av=5950
  548. 5725 gosub 5810:sysgt,av
  549. 5800 rem
  550. 5805 rem
  551. 5810 syspr,6,34,"    "
  552. 5815 fori=pbtopb+6:pokei,f1:next:return
  553. 5820 rem
  554. 5825 rem
  555. 5830 pb=fa+40*(ln+3)+4
  556. 5835 for i=pb to pb+5:poke i,f2:next
  557. 5840 pa=mo+32+5*ln:pw=usr(pa):pm=65536
  558. 5845 p1=1:p2=200:pv=2610:return
  559. 5850 rem
  560. 5855 rem
  561. 5860 pb=fa+40*(ln+3)+11
  562. 5865 for i=pb to pb+3:poke i,f2:next
  563. 5870 pa=mo+34+5*ln:pw=peek(pa):pm=256
  564. 5875 p1=1:p2=10 :pv=2640:return
  565. 5880 rem
  566. 5885 rem
  567. 5890 pb=fa+40*(ln+3)+16
  568. 5895 for i=pb to pb+3:poke i,f2:next
  569. 5900 pa=mo+35+5*ln:pw=peek(pa):pm=256
  570. 5905 p1=1:p2=10 :pv=2670:return
  571. 5910 rem
  572. 5915 rem
  573. 5920 pb=fa+40*(ln+3)+21
  574. 5925 for i=pb to pb+5:poke i,f2:next
  575. 5930 pa=mo+36+5*ln:pv=2700
  576. 5935 b=(peek(pa) and 24)/8:goto 2717
  577. 5940 rem
  578. 5945 rem
  579. 5950 pb=fa+40*(ln+3)+28
  580. 5955 for j=pb to pb+4:poke j,f2:next
  581. 5960 pa=mo+36+5*ln
  582. 5965 pv=2730:return
  583. 6000 rem
  584. 6010 rem
  585. 6020 rem
  586. 6030 m=4:syscl:print"[146]";f1$
  587. 6040 print" software-eg":print:print
  588. 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]"
  589. 6060 print" [194]  a [194]  d [194]  s [194]  r [194] ega[194] form[194]modus[194]"
  590. 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]"
  591. 6080 print" [194]    [194]    [194]    [194]    [194]    [194]     [194]     [194]"
  592. 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]"
  593. 6100 syspr,10,1,f2$;"f1":print" f3"
  594. 6110 print" f5":print" f7";f1$
  595. 6120 syspr,10,13,"++                  reset"
  596. 6130 syspr,11,13,"+               +   hold"
  597. 6140 syspr,12,13,"-               -   run"
  598. 6150 syspr,13,13,"--"
  599. 6160 for i=0 to 4
  600. 6170 : pw=peek(mo+67+i)
  601. 6180 : syspr,7,6+5*i-len(str$(pw)),pw
  602. 6190 next i
  603. 6210 pw=peek(mo+72)
  604. 6220 syspr,7,29,chr$(43+(pw and 8)/4)
  605. 6230 syspr,7,33,md$((pw and 6)/2)
  606. 6240 av=6310:an=0:sysgt,av
  607. 6300 rem
  608. 6305 rem
  609. 6310 pb=fa+282+5*an:s=2+5*an
  610. 6315 for i=pb to pb+3:poke i,f2:next
  611. 6320 pa=mo+67+an  :pw=peek(pa)
  612. 6325 pm=256:if an=0 then pm=129
  613. 6330 p1=1:p2=10:pv=2760:return
  614. 6335 rem
  615. 6340 rem
  616. 6345 pb=fa+280+27:poke pb+2,f2
  617. 6350 pa=mo+72:pv=2780:return
  618. 6370 rem
  619. 6375 rem
  620. 6380 pb=fa+280+33
  621. 6385 for i=pb to pb+4:poke i,f2:next
  622. 6390 pa=mo+72:pv=2820:return
  623. 6395 rem
  624. 6400 rem
  625. 6405 rem
  626. 6410 if av<>6310 then 6420
  627. 6415 an=an-1:if an>=0 then 6430
  628. 6420 av=av-35:an=4
  629. 6425 if av<6310 then av=6380
  630. 6430 gosub 5815:sysgt,av
  631. 6435 rem
  632. 6440 if av<>6310 then 6450
  633. 6445 an=an+1:if an<=4 then 6460
  634. 6450 av=av+35
  635. 6455 if av>6380 then av=6310:an=0
  636. 6460 gosub 5815:sysgt,av
  637. 6500 rem
  638. 6510 rem
  639. 6520 rem
  640. 6530 m=5:pv=0:print"[146]";:syscl
  641. 6540 syspr,1,1,f1$;"kreuzschienen-verteiler"
  642. 6550 syspr,3,1,"e    lfo"
  643. 6560 syspr,4,1,"g6543210"
  644. 6570 syspr,5,1,f2$;"[164][164][164][164][164][164][164][164]"
  645. 6580 a$=f2$+"[167]"+f1$+"        "+f2$+"[212] "+f1$
  646. 6590 print a$;"f1";f2$;"     cursortasten"
  647. 6600 print a$;"f2"
  648. 6610 print a$;"f3"
  649. 6620 print a$;"p1";f2$;"     f1 ";f1$;"verbindung"
  650. 6630 print a$;"p2"
  651. 6640 print a$;"p3";f2$;"     f7 ";f1$;"keine verbindung"
  652. 6650 print a$;"filt"
  653. 6660 print a$;"laut"
  654. 6670 print f2$;" [163][163][163][163][163][163][163][163]"
  655. 6680 for z=0 to 7:gosub 6730:next
  656. 6685 z=0:s=7:poke 55296+40*(6+z)+8-s,f2
  657. 6690 return
  658. 6700 rem
  659. 6710 rem
  660. 6720 rem
  661. 6730 b=peek(mo+24+z):a=128
  662. 6740 syspr,6+z,1,f1$;"00000000"
  663. 6750 if b=0 then return
  664. 6760 for s=7 to 0 step -1
  665. 6770 if(b and a)thensyspr,6+z,8-s,"1";
  666. 6780 a=a/2:next s
  667. 6790 print f1$;:return
  668. 6800 rem
  669. 6810 rem
  670. 6820 rem
  671. 6830 poke 55296+40*(6+z)+8-s,f1:rem aus
  672. 6840 z=(z-1) and 7:goto 6910:rem hoch
  673. 6850 poke 55296+40*(6+z)+8-s,f1
  674. 6860 z=(z+1) and 7:goto 6910:rem runter
  675. 6870 poke 55296+40*(6+z)+8-s,f1
  676. 6880 s=(s+1) and 7:goto 6910:rem links
  677. 6890 poke 55296+40*(6+z)+8-s,f1
  678. 6900 s=(s-1) and 7:goto 6910:rem rechts
  679. 6910 poke 55296+40*(6+z)+8-s,f2:rem an
  680. 6915 return
  681. 6920 rem
  682. 6925 rem
  683. 6930 rem
  684. 6935 ad=mo+24+z
  685. 6940 poke ad,peek(ad) or 2^s
  686. 6950 poke 1024+40*(6+z)+8-s,177:return
  687. 6960 rem
  688. 6965 rem
  689. 6970 rem
  690. 6975 ad=mo+24+z
  691. 6980 poke ad,peek(ad) and (255-2^s)
  692. 6990 poke 1024+40*(6+z)+8-s,176:return
  693. 7000 rem
  694. 7005 rem
  695. 7010 rem
  696. 7015 m=6:pv=0:syscl:print"[146]";f2$
  697. 7020 syspr,1,8,"a           b           c"
  698. 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]"
  699. 7030 for i=1 to 8
  700. 7035 syspr,2+i,1,f2$;chr$(48+i);f1$" [194]"
  701. 7040 syspr,2+i,38,"[194]":next
  702. 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]"
  703. 7050 syspr,12,4,f2$;"a-c 1-8"
  704. 7055 syspr,12,13,f1$;"sound waehlen"
  705. 7060 syspr,13,1,f2$;"_  a-c 1-8"
  706. 7065 syspr,13,13,f1$"sound abspeichern"
  707. 7070 syspr,14,1,f2$;"n"
  708. 7075 syspr,14,13,f1$;"namen eingeben (return)"
  709. 7080 for s=0 to 2:for z=0 to 7
  710. 7085 : syspr,3+z,4+s*12,;
  711. 7090 : sysna,so+107*(8*s+z)+97
  712. 7095 next:next:ifns<0thenz=0:s=0:return
  713. 7100 z=ns and 7:s=int(ns/8):goto 7180
  714. 7110 rem
  715. 7115 rem
  716. 7120 x=a-65 :rem spalte 0,1,2
  717. 7122 syspr,12,13,f2$;"[146]sound waehlen"
  718. 7125 get a$:if a$="" then 7125
  719. 7130 y=asc(a$)-49:rem zeile
  720. 7135 if y<0 or y>7 then 7142
  721. 7140 gosub 7150:gosub 7400
  722. 7142 syspr,12,13,f1$;"[146]sound waehlen"
  723. 7144 return
  724. 7146 rem
  725. 7150 rem
  726. 7155 ns=8*s+z
  727. 7160 : syspr,3+z,4+s*12,f1$;"[146]";
  728. 7165 : sysna,so+107*ns+97
  729. 7170 rem
  730. 7175 s=x:z=y:ns=8*s+z
  731. 7180 : syspr,3+z,4+s*12,f2$;"[146]";
  732. 7185 : sysna,so+107*ns+97
  733. 7190 return
  734. 7200 rem
  735. 7205 rem
  736. 7210 syspr,13,13,f2$;"[146]sound abspeichern"
  737. 7215 get a$:if a$="" then 7215
  738. 7220 x=asc(a$)-65:rem spalte
  739. 7225 if x<0 or x>2 then 7250
  740. 7230 get a$:if a$="" then 7230
  741. 7235 y=asc(a$)-49:rem zeile
  742. 7240 if y<0 or y>7 then 7250
  743. 7245 gosub 7150:gosub 7450:goto 7260
  744. 7250 syspr,13,13,f1$;"[146]sound abspeichern"
  745. 7255 return
  746. 7260 syspr,13,13,f1$;"[146]sound abspeichern"
  747. 7300 rem
  748. 7305 rem
  749. 7310 syspr,14,13,f2$;"namen eingeben (return)"
  750. 7315 x=12*s+4:y=z+3:ad=1024+40*y+x
  751. 7320 sa=so+107*ns+97:i=0
  752. 7325 poke ad+i,peek(ad+i) or 128
  753. 7330 get a$:if a$="" then 7330
  754. 7335 a=asc(a$):if a<32or a>95 then 7370
  755. 7340 rem
  756. 7345 syspr,y,x+i,f2$;a$;:poke sa+i,a
  757. 7350 i=i+1
  758. 7355 if i>9 then i=9:goto 7325
  759. 7360 if i<0 then i=0
  760. 7365 goto 7325
  761. 7370 if a=29 then poke ad+i,peek(ad+i) and 127:goto 7350
  762. 7375 if a=157then poke ad+i,peek(ad+i) and 127:i=i-1:goto 7355
  763. 7380 if a<>13 then 7330
  764. 7385 poke ad+i,peek(ad+i) and 127
  765. 7390 syspr,14,13,f1$;"namen eingeben (return)"
  766. 7395 return
  767. 7400 rem
  768. 7402 rem
  769. 7404 sa=so+ns*107:sysge,sa
  770. 7406 for i=0 to 2
  771. 7408 : ad=sa+7*i
  772. 7410 : bf(i)=usr(ad+73)
  773. 7412 : x=bf(i)/17.0327/440
  774. 7414 : y=log(x)/log(2) :rem x=2^y
  775. 7416 : y=y+4+9/12+49/1200
  776. 7418 : o(i)=int(y):y=(y-o(i))*12
  777. 7420 : t(i)=int(y)
  778. 7422 : of(i)=int((y-t(i))*100-48.5)
  779. 7424 : s(i)=(peek(ad+75)=1)
  780. 7426 : a$=chr$(49+i):gosub 3570
  781. 7428 : c(i)=peek(ad+77) and 254
  782. 7429 : poke 50334+i,c(i)
  783. 7430 : c1(i)=c(i) or 1
  784. 7432 : ad(i)=peek(ad+78)
  785. 7434 : sr(i)=peek(ad+79)
  786. 7436 next i
  787. 7438 rf=peek(sa+94)
  788. 7440 eg=(peek(sa+95)=1):gosub 3740
  789. 7442 su=(peek(sa+96)=1):gosub 3840
  790. 7444 return
  791. 7450 rem
  792. 7452 rem
  793. 7454 sa=so+ns*107:syspu,sa
  794. 7456 for sn=0 to 2
  795. 7458 : ad=sa+7*sn
  796. 7460 : sysdo,ad+73,bf(sn)
  797. 7462 : poke ad+75,-s(sn)
  798. 7464 : poke ad+77,c(sn)
  799. 7466 : poke ad+78,ad(sn)
  800. 7468 : poke ad+79,sr(sn)
  801. 7470 next sn
  802. 7472 poke sa+94,rf
  803. 7474 poke sa+95,-eg
  804. 7476 poke sa+96,-su
  805. 7478 return
  806. 7500 rem
  807. 7505 rem
  808. 7510 rem
  809. 7515 m=7:pv=0:syscl:poke 157,0
  810. 7520 print f1$;" disk"
  811. 7525 syspr,5,4,f2$;"f1"
  812. 7530 syspr,5,7,f1$;"sounds laden"
  813. 7532 syspr,6,4,f2$;"f2"
  814. 7534 syspr,6,7,f1$;"song   laden"
  815. 7535 syspr,7,4,f2$;"f3"
  816. 7540 syspr,7,7,f1$;"sounds abspeichern"
  817. 7545 return
  818. 7600 rem
  819. 7605 rem
  820. 7610 syspr,5,7,f2$;"sounds laden"
  821. 7615 syspr,10,4,f1$;"dateiname ";
  822. 7620 dn$="sounds              "
  823. 7625 syspr,10,16,dn$
  824. 7630 syspr,10,14,;:input dn$
  825. 7632 sys 50198:gosub 2140:rem mod. aus
  826. 7635 open 8,8,8,dn$+",p,r":close 8
  827. 7640 open1,8,15:input#1,a,a$,x,y:close1
  828. 7645 syspr,12,4,"                             "
  829. 7650 if a=0 then 7660
  830. 7655 syspr,12,3,a;a$;x;y:goto 7625
  831. 7660 a=0:loaddn$,8,1
  832. 7665 syspr,5,7,f1$;"sounds laden"
  833. 7670 ns=-1:a=211
  834. 7675 sysdo,56326,int(6e7/(24*te))
  835. 7680 if sr then sys 51093:goto 1550
  836. 7685 sys mo+1033:goto 1550
  837. 7700 rem
  838. 7705 rem
  839. 7710 syspr,7,7,f2$;"sounds abspeichern"
  840. 7715 syspr,10,4,f1$;"dateiname ";
  841. 7720 dn$="sounds              "
  842. 7725 syspr,10,16,dn$
  843. 7730 syspr,10,14,;:input dn$
  844. 7735 sys 50198:gosub 2140:rem mod/seq aus
  845. 7740 rem
  846. 7745 open 1,8,1,"@:"+dn$
  847. 7750 poke 252,0:poke 253,144:rem $9000
  848. 7755 poke 780,252:rem akku
  849. 7760 poke 781,8  :rem x-reg = $08
  850. 7765 poke 782,154:rem y-reg = $9a
  851. 7770 sys 65496   :rem kernal save
  852. 7775 close 1
  853. 7780 open1,8,15:input#1,a,a$,x,y:close1
  854. 7785 if a=0 then 7795
  855. 7790 syspr,12,4,a;a$;x;y:goto 7725
  856. 7795 syspr,12,4,"                              "
  857. 7800 syspr,7,7,f1$;"sounds abspeichern"
  858. 7805 sysdo,56326,int(6e7/(24*te))
  859. 7810 if sr then sys 51093:return
  860. 7815 sys50185:return:rem nur mod. an
  861. 7900 rem-------------------------------
  862. 7905 rem song laden
  863. 7910 syspr,6,7,f2$;"song   laden"
  864. 7915 syspr,10,4,f1$;"dateiname ";
  865. 7920 syspr,10,14,;:input dn$
  866. 7925 sys 50966:gosub 2140
  867. 7930 open 8,8,8,dn$+",p,r":close 8
  868. 7935 open1,8,15:input#1,a,a$,x,y:close1
  869. 7940 syspr,12,4,"                             "
  870. 7945 if a=0 then 7955
  871. 7950 syspr,12,3,a;a$;x;y:goto 7920
  872. 7955 a=0:m=7.5:load dn$,8,1
  873. 7960 syspr,6,7,f1$;"song   laden"
  874. 7965 m=7:sq=-1
  875. 7970 sysdo,56326,int(6e7/(24*te))
  876. 7975 sysdo,50310,usr(39432)
  877. 7980 sys 51001 :rem seq/mod start/init
  878. 7985 if not sr then sys 50966
  879. 7990 a=65:goto 1550
  880. 8000 rem
  881. 8010 rem
  882. 8020 rem
  883. 8030 print"[147]       ";
  884. 8035 print"bitte 30 sekunden warten"
  885. 8040 rem
  886. 8045 rem
  887. 8050 for i=0 to 22   :rem kernal-gosub
  888. 8055 poke 828+i,peek(43139+i):next
  889. 8060 fori=0to129:readx:poke851+i,x:next
  890. 8065 poke785,169:poke 786,3:rem usr
  891. 8070 rem
  892. 8072 rem
  893. 8074 for i=50211 to 50291
  894. 8076 read x:poke i,x:next
  895. 8078 rem
  896. 8080 rem
  897. 8082 for i=0 to 11:read tn$(i):next
  898. 8100 rem
  899. 8110 rem
  900. 8120 read a$:l=len(a$)
  901. 8130 on l goto 8150,8220,8280,8310,8310
  902. 8150 rem
  903. 8160 a=asc(a$)
  904. 8170 if m>=0 then v%(m,a)=zn:goto 8120
  905. 8180 for i=0 to 8:v%(i,a)=zn:next
  906. 8190 goto 8120
  907. 8200 if left$(a$,1)<>"m" then 8120
  908. 8220 rem
  909. 8230 if left$(a$,1)<>"m" then 8120
  910. 8240 a$=right$(a$,1)
  911. 8250 if a$="a" then m=-1 :goto 8120
  912. 8260 m=val(a$)           :goto 8120
  913. 8280 rem
  914. 8290 a=val(a$) :goto 8170
  915. 8310 rem
  916. 8320 if a$="ende" then 8340
  917. 8330 zn=val(a$) :goto 8120
  918. 8340 rem
  919. 8350 rem
  920. 8360 a$="q2w3er5t6y7ui9o0p@-*\^;="
  921. 8370 for i=0 to 24
  922. 8380 : a=asc(mid$(a$,i+1,1))
  923. 8390 : tn%(a)=i
  924. 8400 : for j=0 to 8:v%(j,a)=2000:next
  925. 8410 next i
  926. 8450 rem
  927. 8455 rem
  928. 8460 for i=0 to 24:th(i)=2^(i/12):next
  929. 8465 rem
  930. 8470 rem
  931. 8472 gs=828:gt=857:pr=869:do=897:cl=959
  932. 8474 na=50229:ge=50245:pu=50276
  933. 8480 si=54272:mo=49152:fa=55296
  934. 8482 so=36864:ci=56320
  935. 8484 f1$=chr$(154):f1=14
  936. 8490 f2$=chr$(5)  :f2=1
  937. 8495 kv$(0)="trian ":kf$(0)="[206][205][206][205]"
  938. 8500 kv$(1)="sawup ":kf$(1)="[206][204][206][204]"
  939. 8505 kv$(2)="sawdwn":kf$(2)="[186][205][186][205]"
  940. 8510 kv$(3)="square":kf$(3)="[207][204][207][204]"
  941. 8515 md$(0)="reset" :md$(1)="reset"
  942. 8520 md$(2)="hold " :md$(3)="run  "
  943. 8525 bl$(0)="":bl$(1)=" ":bl$(2)="  "
  944. 8530 bl$(3)="   ":bl$(4)="    "
  945. 8535 bl$(5)="     ":bl$(6)="      "
  946. 8540 rem
  947. 8545 rem
  948. 8550 for sn=0 to 2
  949. 8555 : poke si+7*sn+5,10 :ad(sn)=10
  950. 8560 : poke si+7*sn+6,138:sr(sn)=138
  951. 8565 : o(sn)=3+sn:of(sn)=0:t(sn)=0
  952. 8570 : bf=440*2^(o(sn)-4+(t(sn)-9)/12+of(sn)/1200)
  953. 8572 : bf(sn)=bf*17.0327
  954. 8575 :  c(sn)=64         :c1(sn)=65
  955. 8578 : poke 50334+sn,c(sn)
  956. 8580 :  s(sn)=(sn=0)
  957. 8585 : sysdo,mo+7*sn+2,2048 :rem pw
  958. 8590 : poke  mo+7*sn+4,0    :rem porta
  959. 8595 next sn
  960. 8600 poke  si+23,0:rf=0  :rem res/filt
  961. 8605 sysdo,mo+21,0       :rem filterfr.
  962. 8610 poke  mo+23,15      :rem mod/laut
  963. 8615 for i=24 to 72 :rem ksv,lfo,eg aus
  964. 8620 : poke mo+i,0:next
  965. 8625 eg=0         :rem eg abkoppeln
  966. 8627 poke 50303,0 :rem eg abkoppeln(seq)
  967. 8630 su=0         :rem sustain aus
  968. 8632 te=120       :rem tempo
  969. 8635 rem
  970. 8640 rem
  971. 8645 for ns=0 to 23
  972. 8650 : gosub 7450
  973. 8655 : ad=so+107*ns+97
  974. 8660 : for i=ad to ad+9:poke i,46:next
  975. 8665 next ns:ns=0
  976. 8700 rem
  977. 8870 rem
  978. 8880 poke 53280,14:poke 53281,6
  979. 8890 print f1$;"[146]";:poke 650,128
  980. 8900 gosub 4200 :rem bild zeilen 15-23
  981. 8910 sys mo+1033:rem modulator aktiv
  982. 8920 sq=0:sm=0:sr=0:a=2:return
  983. 9000 rem
  984. 9010 rem
  985. 9020 rem
  986. 9030 rem
  987. 9060 data 032,089,003,076,174,167,032
  988. 9070 data 253,174,032,138,173,032,247
  989. 9080 data 183,076,163,168,032,253,174
  990. 9090 data 032,158,183,138,072,032,253
  991. 9100 data 174,032,158,183,138,168,104
  992. 9110 data 170,024,032,240,255,032,253
  993. 9120 data 174,076,160,170,032,253,174
  994. 9130 data 032,138,173,032,247,183,165
  995. 9140 data 020,133,158,165,021,133,159
  996. 9150 data 032,253,174,032,138,173,032
  997. 9160 data 247,183,160,000,120,165,020
  998. 9170 data 145,158,200,165,021,145,158
  999. 9180 data 088,096,032,247,183,160,000
  1000. 9190 data 120,177,020,133,099,200,177
  1001. 9200 data 020,088,133,098,162,144,056
  1002. 9210 data 076,073,188,169,032,162,000
  1003. 9220 data 157,000,004,157,000,005,202
  1004. 9230 data 208,247,162,087,157,000,006
  1005. 9240 data 202,016,250,096
  1006. 9250 rem
  1007. 9260 rem
  1008. 9270 data 032,253,174,032,138,173,032
  1009. 9280 data 247,183,165,020,133,158,165
  1010. 9290 data 021,133,159,096,032,035,196
  1011. 9300 data 160,000,177,158,032,210,255
  1012. 9310 data 200,192,010,208,246,096,032
  1013. 9320 data 035,196,160,000,177,158,153
  1014. 9330 data 000,192,200,192,073,208,246
  1015. 9340 data 177,158,153,183,211,200,192
  1016. 9350 data 094,208,246,177,158,141,023
  1017. 9360 data 212,096,032,035,196,160,000
  1018. 9370 data 185,000,192,145,158,200,192
  1019. 9380 data 073,208,246,096
  1020. 9400 rem
  1021. 9410 rem
  1022. 9420 data c,c#,d,d#,e,f,f#,g,g#,a,a#,h
  1023. 9500 rem
  1024. 9510 rem
  1025. 9520 data ma,4000,x,3500,v,3600,032
  1026. 9530 data ma,3700,160,3800,s,9990,a
  1027. 9540 data ma,2550,133,2560,134
  1028. 9550 data ma,2570,135,2580,136,4500,214
  1029. 9555 data ma,5500,l,6000,h,6500,k
  1030. 9560 data ma,5000,f,7000,211,7500,d
  1031. 9565 data m1,4654,145,4660,017
  1032. 9570 data m1,4666,029,4680,157
  1033. 9580 data m2,5160,157,5145,029
  1034. 9600 data m3,5675,145,5690,017
  1035. 9610 data m3,5720,157,5705,029
  1036. 9620 data m4,6410,157,6440,029
  1037. 9630 data m5,6830,145,6850,017
  1038. 9640 data m5,6870,157,6890,029
  1039. 9650 data m5,6935,133,134,6975,135,136
  1040. 9700 data m6,7110,a,b,c,7200,_,7300,n
  1041. 9750 data m7,7600,133,7700,134,7900,137
  1042. 9800 data m8,10420,029,10450,157
  1043. 9900 data ende
  1044. 9990 rem
  1045. 10000 rem==============================
  1046. 10010 rem untermenue sequencer
  1047. 10020 rem==============================
  1048. 10030 m=8:pv=0:syscl:print"";f1$;
  1049. 10040 print" sequencer";
  1050. 10045 if not sq then print"  (kein song vorhanden)"
  1051. 10050 syspr,4,10,"tempo modus seqnr  soft-eg"
  1052. 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]"
  1053. 10070 syspr,6,4,"[194]    [194]     [194]     [194]     [194] 1  2  3 [194]"
  1054. 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]"
  1055. 10090 syspr,9,1,f2$;"f1";f1$;"  reset  ++                  1"
  1056. 10100 syspr,10,1,f2$;"f3";f1$;"  stop    +  song    +       2"
  1057. 10110 syspr,11,1,f2$;"f5";f1$;"  run     -  seq     -       3"
  1058. 10120 syspr,12,1,f2$;"f7";f1$;"         --"
  1059. 10130 if sr then 10150
  1060. 10140 syspr,6,5,"stop":goto 10160
  1061. 10150 syspr,6,5,"run "
  1062. 10160 syspr,6,11,right$(str$(te),3)
  1063. 10170 if sm then 10190
  1064. 10180 syspr,6,16,"song":goto 10210
  1065. 10190 syspr,6,16,"seq "
  1066. 10200 syspr,6,22,right$(" "+str$(se),3)
  1067. 10210 rem
  1068. 10220 x=peek(50303)
  1069. 10230 if x and 1 then syspr,6,28," 1 "
  1070. 10240 if x and 2 then syspr,6,31," 2 "
  1071. 10250 if x and 4 then syspr,6,34," 3 "
  1072. 10300 av=10500:sysgs,av:return
  1073. 10400 rem------------------------------
  1074. 10410 rem parameterwahl durch cursor
  1075. 10420 rem rechts
  1076. 10430 av=av+100:ifav>10900then av=10500
  1077. 10440 goto 10470
  1078. 10450 rem links
  1079. 10460 av=av-100:ifav<10500then av=10900
  1080. 10470 for i=pb to pb+8:poke i,f1:next
  1081. 10480 sysgt,av
  1082. 10500 rem------------------------------
  1083. 10510 rem run/stop waehlen
  1084. 10520 pb=fa+245
  1085. 10530 for i=pb to pb+3:poke i,f2:next
  1086. 10540 pa=ci+12:pv=11000:return
  1087. 10600 rem------------------------------
  1088. 10610 rem tempo waehlen
  1089. 10620 pb=fa+250
  1090. 10630 for i=pb to pb+3:poke i,f2:next
  1091. 10640 pa=ci+6:pw=te
  1092. 10650 pm=500:p1=1:p2=10:pv=3400:return
  1093. 10700 rem------------------------------
  1094. 10710 rem modus waehlen
  1095. 10720 pb=fa+256
  1096. 10730 for i=pb to pb+3:poke i,f2:next
  1097. 10740 pa=50345:pw=peek(pa)
  1098. 10750 pv=11100:return
  1099. 10800 rem------------------------------
  1100. 10810 rem seqnr waehlen
  1101. 10820 pb=fa+262
  1102. 10830 for i=pb to pb+2:poke i,f2:next
  1103. 10840 pw=se:p1=1:p2=1:pm=1000
  1104. 10850 pv=11200:return
  1105. 10900 rem------------------------------
  1106. 10910 rem soft-eg waehlen
  1107. 10920 pb=fa+268
  1108. 10930 for i=pb to pb+8:poke i,f2:next
  1109. 10940 pa=50303:pv=11300:return
  1110. 11000 rem------------------------------
  1111. 11010 rem sequencer reset/stop/run
  1112. 11015 if not sq then return
  1113. 11020 if a<133 or a>135 then return
  1114. 11030 on a-132 goto 11040,11060,11080
  1115. 11040 rem reset
  1116. 11042 if sm then sys 51116:return
  1117. 11045 sys 51001
  1118. 11050 if not sr then sys 50966
  1119. 11055 return
  1120. 11060 rem stop
  1121. 11065 sys 50966:syspr,6,5,f2$;"stop"
  1122. 11070 sr=0:if not su then 2140
  1123. 11075 return
  1124. 11080 rem run
  1125. 11085 sys 51093:syspr,6,5,f2$;"run "
  1126. 11090 sr=-1:return
  1127. 11100 rem------------------------------
  1128. 11110 rem sequencer-modus (song/seq)
  1129. 11112 ifnotsqthenreturn
  1130. 11115 if a=134 then 11130
  1131. 11120 if a=135 then 11150
  1132. 11125 return
  1133. 11130 rem song-modus
  1134. 11135 sm=0 :poke pa,0
  1135. 11140 syspr,6,16,f2$;"song"
  1136. 11145 syspr,6,22,"     ":return
  1137. 11150 rem sequenz-modus
  1138. 11155 sm=-1:poke pa,1:syspr,6,16,"seq "
  1139. 11160 syspr,6,16,f2$;"seq "
  1140. 11165 se=(usr(50312)-usr(50310))/3+1
  1141. 11170 syspr,6,22,f1$;right$(" "+str$(se),3)
  1142. 11175 return
  1143. 11200 rem------------------------------
  1144. 11210 rem sequenz-nummer
  1145. 11220 if not sm then return
  1146. 11230 if pw=0 then pw=1:return
  1147. 11240 ad=usr(50310)+(pw-1)*3
  1148. 11250 if usr(ad)=0 then pw=pw-1:return
  1149. 11260 sysdo,50312,ad:se=pw
  1150. 11270 sysdo,50314,usr(ad)
  1151. 11280 sys 51116 :rem nextseq
  1152. 11285 syspr,6,22,f2$;right$(" "+str$(se),3)
  1153. 11290 return
  1154. 11300 rem------------------------------
  1155. 11310 rem sequencer soft-eg-steuerung
  1156. 11320 x=peek(pa)
  1157. 11330 for i=0 to 2
  1158. 11340 : if a<>133+i then 11420
  1159. 11350 : y=2^i
  1160. 11360 : if (x and y) then 11400
  1161. 11370 : x=x or y:poke pa,x
  1162. 11380 : syspr,6,28+3*i,f2$;"";i+1;"[157] "
  1163. 11390 : goto 11420
  1164. 11400 : x=x and (255-y):poke pa,x
  1165. 11410 : syspr,6,28+3*i,f2$;i+1;"[157] "
  1166. 11420 next i:return
  1167.