#define X 0
#define Y 1
#define VX 2
#define VY 3
#define S 4

dim snow,5,50
randomize

goto *@f

#deffunc newsnow val
mref v,16
rnd r,winx:v.X=r
v.Y=0
v.VX=0
rnd r,4:r++
v.VY=r
rnd r,3
v.S=r
return

*@

repeat 50
newsnow snow.0.cnt
rnd r,winy
snow.Y.cnt=r
loop

repeat
wait 5

redraw 0
color:boxf:color $FF,$FF,$FF

repeat 50
rnd r,3:r-=1
snow.VX.cnt=r

snow.X.cnt+=snow.VX.cnt
snow.Y.cnt+=snow.VY.cnt

if snow.X.cnt<0:newsnow snow.0.cnt
if snow.X.cnt>winx:newsnow snow.0.cnt
if snow.Y.cnt<0:newsnow snow.0.cnt
if snow.Y.cnt>winy:newsnow snow.0.cnt

pos snow.X.cnt,snow.Y.cnt
if snow.S.cnt=0:mes "*"
if snow.S.cnt=1:mes "."
if snow.S.cnt=2:mes "+"
loop
redraw 1
loop