home *** CD-ROM | disk | FTP | other *** search
/ Assembly 1994 - The 3rd Phase / ASMROM94.mdf / sources / blood.txt < prev    next >
Text File  |  1994-11-12  |  1KB  |  75 lines

  1. {This code is release freely to anyone that wants it. I couldn't care less
  2.  what you do with it. It is being used in my demo so if I see it in yours
  3.  i will find you and kill you. Nemesis 1994}
  4.  
  5. program rain;
  6. var p:integer;
  7.  
  8. function keypressed : boolean; assembler; 
  9. asm
  10.   mov ah,0bh; 
  11.   int 21h; 
  12.   and al,0feh; 
  13. end;
  14.  
  15. Procedure RotatePal;
  16. Var a:Word;
  17. Begin
  18.   inc(p);
  19.   port[968]:=35;
  20.   a:=100;
  21.   while port[$3da] and 8 <> 0 do;
  22.   while port[$3da] and 8 = 0 do;
  23.   while a>1 do
  24.   begin
  25.     port[969]:=1-((a+p) and 60);
  26.     port[969]:=0;
  27.     {If you want a better palette selection and more play then remove
  28.      the above line and replace with the one below. It will allow you
  29.      to get to the blues and greens and yellows but I made mine red so
  30.      did not require those}
  31.     {port[969]:=1-((a+p) and 60);}
  32.     port[969]:=1-((a+p) and 65);
  33.     dec(a);
  34.     end;
  35. end;
  36.  
  37. Procedure makerain;
  38. Var
  39.   x,y,c,d:word;
  40. begin
  41.   d:=1;
  42.   randomize;
  43.   for x:=0 to 320 do
  44.   Begin
  45.     c:=random(65);
  46.     for y:=0 to 200 do
  47.     Begin
  48.       if c>64 then c:=1;
  49.       mem[$a000:x+320*y]:=c+35;
  50.       inc(c,d);
  51.     end;
  52.     d:=random(5)+1;
  53.   end;
  54. end;
  55.  
  56.  
  57. begin
  58.  asm
  59.   mov ax,$0013
  60.   int 10h
  61.  end;
  62.  makerain;
  63.  repeat
  64.   RotatePal;
  65.  until keypressed;
  66.  asm
  67.   mov ax,$0002
  68.   int 10h
  69.  end;
  70. end.
  71.  
  72. {Ok so it isn't the best method but it is small and fast and more than
  73.  sufficent for displaying a graphic in on top of it.}
  74.  
  75.