start bastext 1025 start tok64 d64-DPIkik 10 VOLUME0:VOLUME15:SCREEN1:COLOR1,0:PRINT"{clear}" 15 FORx=0TO39:BLOCKx,0,3,0:BLOCKx,24,4,0:NEXT 16 FORy=8TO24:BLOCK0,y,2,0:BLOCK1,y,14,0:BLOCK2,y,14,0::NEXT 20 CHAR4,15,0:PRINT"{reverse on}adsr demo{down}" 30 PRINT"please enter (attack),(decay),(sustain),(release): all (0-15) ";:b$="" 40 GOSUB 500 50 FORi=1TOLEN(b$):IF MID$(b$,i,1)<>","THEN NEXT:GOTO10 60 at=VAL(LEFT$(b$,i-1)):b$=RIGHT$(b$,LEN(b$)-i) 70 FORi=1TOLEN(b$):IF MID$(b$,i,1)<>","THEN NEXT:GOTO10 80 de=VAL(LEFT$(b$,i-1)):b$=RIGHT$(b$,LEN(b$)-i) 90 FORi=1TOLEN(b$):IF MID$(b$,i,1)<>","THEN NEXT:GOTO10 100 su=VAL(LEFT$(b$,i-1)):b$=RIGHT$(b$,LEN(b$)-i) 120 re=VAL(b$) 125 IF at>15 OR de>15 OR su>15 OR re>15 OR at<0 OR de<0 OR su<0 OR re<0 GOTO10 130 ADSR1,at,de,su,re 140 PRINT"waveform: 1=triangle{space*4}2=sawtooth{space*6}4=noise{space*2}: ";:GOSUB500 150 wv=VAL(b$):IF wv<>1 AND wv<>2 AND wv<>4 GOTO 10 160 PRINT"pitch (0-64335) ";:GOSUB500:p=VAL(b$):IF p>65335GOTO10 170 DRAW 24,64 TO 294,64:DRAW 24,190TO 294,190:DRAW24,64TO24,190 180 DRAW 294,64TO294,190:DRAW295,64TO295,190:DRAW25,64TO25,190 190 CHAR4,0,8:PRINT"v15":CHAR4,0,13:PRINT"v10":CHAR4,0,18:PRINT"v 5":CHAR4,0,23 195 PRINT"v 0":CHAR4,0,24 200 PRINT"{space*5}attack/decay/sustain/release{home}" 210 x=at*4.5+25:DRAWx,64TO24,190:DRAWx,190 220 x=x+de*4.5:DRAWx,127:DRAWx,127TOx,190 230 x=x+su*4.5:DRAWx,127:DRAWx,127TOx,190 240 DRAWx+re*4.5,190 290 PITCH1,p:WAVE 1,wv,0,(at+de+su)*30 300 PRINT"{home}{space*7}{reverse on}press any key to continue." 310 POKE198,0:WAIT198,1:GETa$:GOTO10 500 b$="" 505 PRINT"{cm @}{left}";:FOR f=0TO90 510 GET a$:IF a$="" THEN NEXT:PRINT"*{left}";:FOR r=1TO10:GOTO 505 520 IF a$ ="," GOTO 560 530 IF a$ =CHR$(13)THENPRINT" ":RETURN 540 IF a$ ="{delete}"AND LEN(b$) >0 THEN b$=LEFT$(b$,LEN(b$)-1):PRINT" {left*2}";:GOTO510 550 IFa$>"9"ORa$<"0" THEN510 560 b$=b$+a$:PRINTa$;:GOTO510 stop tok64 (bastext 1.0)