5 MEMORY &3FFF:GOSUB 1000:MODE 2:MOVE 0,200:t=1
10 READ l,af,of,a1,o1,z1,a2,o2,z2,e1,tr,d1,r1
20 FOR p=0 TO l-1:z=p/l:om=z*2*PI:h=a1*SIN(o1*om*EXP(-z*z1)+af*SIN(om*of))-a2*SIN(o2*om*EXP(-z*z2))
60 t=t*(1+2*((RND(1)>z*e1) AND RND(1)>tr)):var=EXP(-z*d1)*h*t+SIN(z*PI)*(RND(1)-0.5)*r1:DRAW p/3,200+var:var=MIN(var+8,15):POKE &4000+p,MAX(var,0):NEXT p 
140 CALL &9000,&4000,l,INT(RND(1)*15)+1:GOTO 140 
1000 DATA FE,03,C0,DD,7E,00,32,39,90,DD,4E,02,DD,46,03,DD,6E,04,DD,66,05,F3,C5,7E,E6
1001 DATA 0F,4F,3E,08,E5,21,00,F6,11,80,C0,06,F4,ED,79,06,F6,ED,51,ED,69,06,F4,ED,49,06,F6,ED,59,ED,69,06,0A,10,FE,E1,23,C1,0B,78,B1,20,D2,FB,C9
1002 FOR i=&9000 TO &9045:READ a$:POKE i,VAL("&"+a$):NEXT:CALL &9000:RETURN
2000 DATA 1000,0,0,50,333,.08,40,333,-.08,0,2,2,4