home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 18 / CD_ASCQ_18_111294_W.iso / dos / prg / pas / gfxfx / copper7.pas < prev    next >
Pascal/Delphi Source File  |  1994-06-20  |  1KB  |  51 lines

  1.  
  2. program copper;
  3. { bar-fade in, copper v7.0, by Bas van Gaalen, Holland, PD }
  4. uses crt;
  5. const size=20;
  6. var pal:array[0..3*size-1] of byte;
  7.  
  8. procedure incbars;
  9. var i:word;
  10. begin
  11.   if pal[0]<63 then inc(pal[0]);
  12.   for i:=3*size-2 downto 0 do pal[i+1]:=pal[i];
  13. end;
  14.  
  15. procedure copperbars;
  16. var cc,l,j:word;
  17. begin
  18.   asm cli end;
  19.   while (port[$3da] and 8)<>0 do;
  20.   while (port[$3da] and 8)=0 do;
  21.   cc:=0;
  22.   for l:=0 to size-1 do begin
  23.     port[$3c8]:=1;
  24.     port[$3c9]:=pal[cc];
  25.     port[$3c9]:=pal[cc+1];
  26.     for j:=0 to 15 do begin
  27.       while (port[$3da] and 1)<>0 do;
  28.       while (port[$3da] and 1)=0 do;
  29.     end;
  30.     port[$3c9]:=pal[cc+2];
  31.     inc(cc,3);
  32.   end;
  33.   asm sti end;
  34. end;
  35.  
  36. var i:byte;
  37. begin
  38.   textmode(co80);
  39.   fillchar(pal,sizeof(pal),0);
  40.   copperbars; { default = black -> otherwise flash of blue will appear }
  41.   textcolor(1);
  42.   writeln;
  43.   writeln('Is this what you mean?'); writeln;
  44.   for i:=1 to 15 do writeln('Test line ',i);
  45.   repeat
  46.     incbars;
  47.     copperbars;
  48.   until keypressed;
  49.   textmode(lastmode);
  50. end.
  51.