home *** CD-ROM | disk | FTP | other *** search
/ Chip 1999 September / Chip_1999-09_cd.bin / internet / Jeremy / tp / downloads / snowfall.pas < prev    next >
Pascal/Delphi Source File  |  1999-08-03  |  1KB  |  51 lines

  1. Program SnowFall;
  2. Uses crt;                                 
  3.  
  4. const
  5.   Flakes = 100;          
  6.  
  7. Procedure vidMode(mode : byte);assembler;
  8.   asm mov ah,$00;  mov al,mode; int 10h; end;
  9.  
  10. Procedure setPixel(pixPos : word; color : byte);
  11. begin
  12.     mem[$A000:pixPos] := color;
  13. end;
  14.  
  15. var
  16.   CurFlake : integer;                  
  17.   i : longint;                       
  18.   x,y, newPos: array[0..Flakes] of word;
  19.  
  20. BEGIN
  21.   randomize;
  22.   for curFlake:=0 to Flakes do        
  23.   begin
  24.     x[curFlake]:=random(319);
  25.     y[curFlake]:=random(199);
  26.   end;
  27.  
  28.   vidMode($13);                       
  29.  
  30.   i := 0; 
  31.  
  32.   repeat
  33.     inc(i);
  34.  
  35.     for curFlake:=0 to Flakes do
  36.       begin
  37.         setPixel(newPos[curFlake], 0); 
  38.         newPos[curFlake] :=      
  39.           round(x[curFlake]*(i*0.01)) +                  
  40.           round(y[curFlake]*(i*0.01)) * 320;             
  41.         setPixel(newPos[curFlake], (curFlake mod 13) + 19);
  42.       end;
  43.  
  44.     while (port[$3da] and $08) = $08 do;  
  45.     while (port[$3da] and $08) = $00 do;  
  46.   until keypressed;
  47.  
  48.   vidMode($03);                       
  49. end.
  50.  
  51.