home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / GFXFX2.ZIP / DOTS1.PAS < prev    next >
Pascal/Delphi Source File  |  1995-02-14  |  1KB  |  45 lines

  1.  
  2. program dots1; { DOTS1.PAS }
  3. { Good ol' c64 effect, by Bas van Gaalen }
  4. uses u_vga,u_pal,u_kb;
  5. const
  6.   dots=75;
  7.   fade=5;
  8.   slen1=600; samp1=49; sofs1=50;
  9.   slen2=300; samp2=39; sofs2=50;
  10.   dx1=2; dy1=3; xspd1=3; yspd1=2;
  11.   dx2=3; dy2=2; xspd2=2; yspd2=3;
  12. var
  13.   stab1:array[0..slen1] of byte;
  14.   stab2:array[0..slen2] of byte;
  15.  
  16. procedure plotter;
  17. var xst1,xst2,yst1,yst2,i,j,offset,onset:word;
  18. begin
  19.   xst1:=50; xst2:=130; yst1:=0; yst2:=70;
  20.   repeat
  21.     vretrace;
  22.     for j:=0 to 9 do
  23.       for i:=0 to dots do begin
  24.         offset:=((stab1[(yst1+i*dy1) mod slen1]+stab2[(yst2+i*dy2) mod slen2])*320)+
  25.           (stab1[(xst1+i*dx1) mod slen1])+(stab2[(xst2+i*dx2) mod slen2])+60;
  26.         onset:=((stab1[(yst1+yspd1*fade*j+i*dy1) mod slen1]+stab2[(yst2+yspd2*fade*j+i*dy2) mod slen2])*320)+
  27.           (stab1[(xst1+xspd1*fade*j+i*dx1) mod slen1])+(stab2[(xst2+xspd2*fade*j+i*dx2) mod slen2])+60;
  28.         mem[u_vidseg:offSet]:=0;
  29.         mem[u_vidseg:onSet]:=18+5*j;
  30.       end;
  31.     xst1:=(xst1+xspd1) mod slen1; yst1:=(yst1+yspd1) mod slen1;
  32.     xst2:=(xst2+xspd2) mod slen2; yst2:=(yst2+yspd2) mod slen2;
  33.   until keypressed;
  34. end;
  35.  
  36. var i:word;
  37. begin
  38.   setvideo($13);
  39.   for i:=0 to slen1 do stab1[i]:=round(sin(i*(4*pi)/slen1)*samp1)+sofs1;
  40.   for i:=0 to slen2 do stab2[i]:=round(sin(i*(4*pi)/slen2)*samp2)+sofs2;
  41.   for i:=0 to 63 do setrgb(i,i div 3,i div 2,i div 2);
  42.   plotter;
  43.   setvideo(u_lm);
  44. end.
  45.