randomize timer for i=0 to 4095 poke $8000+i,0 next i bg 1 bg fill 0,0 to 31,31 char 255 bg 0 for x=0 to 19 for y=0 to 7 cell x,y*2,x*8+y tint x,y*2 pal 0 cell x,y*2+1,x*8+y tint x,y*2+1 pal 1 next y next x sub plot(tx,ty,tc) tx1=int(tx/8) tx2=tx mod 8 tad1=$8000+ty+(tx1*128) tpk1=peek(tad1) if (tc and 1)<>0 then poke tad1,tpk1 or (2^(7-tx2)) end if if (tc and 2)<>0 then poke tad1,tpk1 xor (2^(7-tx2)) end if end sub sub line(x1,y1,x2,y2,tc2) dx=x2-x1 dy=y2-y1 l=sqr(dy*dy+dx*dx) t=0 steps=1 fx=dx/(l+0.001) fy=dy/(l+0.001) repeat x=fx*t+x1 y=fy*t+y1 x=x*-(x>0 and x<1024) y=y*-(y>0 and y<1024) call plot(x,y,tc2) add t,steps until t>=l t=0 end sub sub bezier(x0,y0,x1,y1,x2,y2,x3,y3,tc3) xa=(x3)-(3*x2)+(3*x1)-(x0) ya=(y3)-(3*y2)+(3*y1)-(y0) xb=(3*x2)-(6*x1)+(3*x0) yb=(3*y2)-(6*y1)+(3*y0) xc=(3*x1)-(3*x0) yc=(3*y1)-(3*y0) stpv=3+int((x0+x1+x2+x3+y0+y1+y2+y3)/64) for tw=0 to stpv tq=tw/stpv xq=(((((xa*tq)+xb)*tq)+xc)*tq)+x0 yq=(((((ya*tq)+yb)*tq)+yc)*tq)+y0 if tw=0 then xo=xq yo=yq end if call line (xo,yo,xq,yq,tc3) xo=xq yo=yq next tw end sub do call bezier(int(rnd*160),int(rnd*128),int(rnd*160),int(rnd*128),int(rnd*160),int(rnd*128),int(rnd*160),int(rnd*128),1) wait 30 if rnd*100 <3 then fill $8000,2560,0 end if loop #1:MAIN PALETTES FF00FF00FFFF0000FF00FF00FFFF0000 FF00FF00FFFF0000FF00FF00FFFF0000