10 REM > Snowing
   20 :
   30 quit$="":IF(V%DIV1000000)=985:quit$="$.!Boot"
   40 ONERROR:MODE&87:REPORT:IFINKEY-1:END ELSE PROCquit:END
   50 MODE2:VDU19,15,7,0,0,0,23;8202;0;0;0;
   60 REPEATCLS:PROCsnow:UNTILFNsettle:PROCquit:END
   70 :
   80 DEFPROCquit:IFASCquit$=42:OSCLIquit$ ELSE IFquit$<>"":CHAINquit$
   90 ENDPROC
  100 :
  110 DEFPROCsnow:X%=-40:C%=1:REPEAT:X1%=X%
  120   FOR Y%=1023 TO 0 STEP -RND(30)-5
  130     GCOL 0,C%:C%=((C%+1)-2*(C%=14))AND15
  140     X1%=X1%+(RND(16)-8):PLOT 69,X1%,Y%
  150 NEXT:X%=X%+RND(10)+25:UNTILX%>1320:ENDPROC
  160 :
  170 DEFFNsettle:A%=TRUE:Sn=0:GCOL 0,15:REPEAT FOR I%=1 TO 14:*FX19
  180     VDU19,I%,0,0,0,0,19,((I%+1)-2*(I%=14))AND15,7,0,0,0
  190     MOVE0,Sn:DRAW 1279,Sn:Sn=Sn+.15
  200 A%=A% AND INKEY(5):NEXT:UNTILA%>=0 OR Sn>1020
  210 =A%>=0