'By Fryer - Please Upload.
'Not much, just a pitch in the rain.

    dim sn(360),cs(360)
    for i=0 to 360
        sn(i)=sin(i/180*pi)
        cs(i)=cos(i/180*pi)
    next i
    dim rx(100),ry(100),rh(100)
    drops=0
    for i=1 to 100
        rx(i)=ran(640)-320
        ry(i)=ran(512)-256
        rh(i)=ran(12)+7
    next i

open window 640,512
x=320:y=250:ss=0
setrgb 0,0,55,0
label loop
cn=mod(cn+1,20)
if cn=0 drops=min(drops+1,38)
    setdispbuf ss
    ss=1-ss
    setdrawbuf ss
    clear window
    j=peek("port1")
    mx=and(j,128)/16-and(j,32)/4
    my=and(j,16)/2-and(j,64)/8
    ox=x
    x=max(min(x+mx,452),188)
    if x=ox mx=0
    oy=y
    y=max(min(y+my,646),-134)
    if y=oy my=0
    circle x,y,100
    line x-400,y to x+400,y
    rectangle x-400,y-600 to x+400,y+600
    rectangle x-250,y-600 to x+250,y-350
    rectangle x-250,y+600 to x+250,y+350
    rectangle x-150,y+600 to x+150,y+520
    rectangle x-150,y-600 to x+150,y-520
'setrgb 0,0,0,0
'clear window
setrgb 1,120,120,180
    for i=1 to drops
        rx=rx(i)+mx
        ry=ry(i)+my
        rh=rh(i)-.5
        if rh<7 then
          rh=rh+12
          rx=ran(640)-320-mx*25
          ry=ran(512)-256-my*25
        fi
        if rh>10 then
            x1=320+rx*rh/10
            y1=256+ry*rh/10
            x2=320+rx*(rh-.3)/10
            y2=256+ry*(rh-.3)/10
            line x1,y1 to x2,y2
        else
            r=(12-rh)*(1+ss)
setrgb 1,0,110-r*5,0

            x1=320+rx
            y1=256+ry
            for a=0 to 300 step 60
                x2=x1+sn(a)*r
                y2=y1+cs(a)*r 
                x3=x1+sn(a+60)*r
                y3=y1+cs(a+60)*r
                line x2,y2 to x3,y3
            next a
setrgb 1,120,120,180

        fi
        rx(i)=rx
        ry(i)=ry
        rh(i)=rh
    next i

goto loop






