open window 640,512

dim x(7),y(7),z(7),xa(7),ya(7)

for a=1 to 7
 read x(a),y(a),z(a),xa(a),ya(a)
next a

scr=650

repeat mm=mm+.05
scr=scr-3
c=peek("port1")
gosub bg
gosub ci
gosub scroll
gosub detect
gosub db
clear window
until (and(c,16384)<>0)
end

label bg
 red=200*sin(mm/2)
 grn=200*sin(mm/3)
 blu=200*sin(mm/4)
 setrgb 1,red,0,0
 setrgb 2,0,grn,0
 setrgb 3,0,0,blu
 gtriangle 0,0 to 320,0 to 320,256
 gtriangle 0,0 to 0,256 to 320,256
 gtriangle 640,0 to 320,0 to 320,256
 gtriangle 640,0 to 640,256 to 320,256
 gtriangle 0,512 to 0,256 to 320,256
 gtriangle 0,512 to 320,512 to 320,256
 gtriangle 640,512 to 320,512 to 320,256
 gtriangle 640,512 to 640,256 to 320,256
return

label ci
 for a=1 to 7
  setrgb 1,240,200,255
  fill circle x(a),y(a),z(a)
  x(a)=x(a)+xa(a)
  y(a)=y(a)+ya(a)
  if x(a)>640-z(a) xa(a)=-xa(a)
  if x(a)<0+z(a) xa(a)=-xa(a)
  if y(a)>512-z(a) ya(a)=-ya(a)
  if ya(a)<0+z(a) ya(a)=-ya(a)
 next a
return

label scroll
 setrgb 1,200,200,255
 fill rect 0,480 to 640,512
 setrgb 1,0,0,0
 text scr,500,"By Aaron Cunnington","lc"
return

label detect
 if scr<-200 scr=650
return

label db
 setdispbuf dw
 dw=1-dw
 setdrawbuf dw
return

data 20,20,5,2,2
data 20,20,7,3,3
data 20,20,9,4,4
data 20,20,11,5,5
data 20,20,13,6,6
data 20,20,15,7,7
data 20,20,17,8,8

