[Back to MISC SWAG index] [Back to Main SWAG index] [Original]

    {$A+,B+,D+,E+,F-,G+,I+,L+,N+,O-,P-,Q-,R-,S+,T-,V+,X+}
    {$M 5000,0,0}
    Uses dos, crt;
    var ctr, dd, cc : integer;

    Procedure Statbar(fc, bc : char; ft, bk : integer; cn, en, xs, ys : integer;
              tf : boolean);
    var percentage : integer;
    begin
         percentage := round(cn / en * 100 / 2); {/2 changed for shorter bars.}
         Gotoxy(xs,ys);
         textcolor(ft);
         For Ctr := 1 to percentage do write(fc);
         textcolor(bk);
         For Ctr := 1 to 50 - percentage do write(bc);
         if tf = true then
            begin
                 write(#32, percentage * 2,'%');
            end;
    end;

    begin
         textbackground(1); clrscr; textcolor(11);
         gotoxy(1,2); Writeln('    Microsoft Scandisk ');
         gotoxy(5,3); For Ctr := 1 to 70 do Write('Ä');
         gotoxy(5,23); For Ctr := 1 to 70 do Write('Ä');
         {the below is in my mtbwin.inc ... you can convert it to gotoxy etc..
         button(5, 21, 15, 9, 5,'< Paused >');
         button(18, 21, 15, 9, 5,'< More Info >');
         button(34, 21, 15, 9, 5,'< Exit >');}
         textcolor(7);
         gotoxy(1,5); Writeln('    ScanDisk is now checking the following areas of drive c:');
         writeln;          {û X}
         cc := 1;
         {the part that controls the starbar/action(s)... }
         Repeat
               Statbar(#219,#176, 14, 14, cc, 1000, 25, 24, true);
               inc(cc, 1);
               Gotoxy(11, 7); {Pipe('û'); forecolor(7);}
               Case cc of
                    150 : Writeln('    DoubleSpace file header          ');
                    250 : Writeln('    Directory structure              ');
                    330 : Writeln('    File system                      ');
                    430 : Writeln('    DoubleSpace file allocation table');
                    500 : Writeln('    Compression structure            ');
                    750 : Writeln('    Volume signatures                ');
                    850 : Writeln('    Boot sector                      ');
                   1000 : Writeln('    Surface scan                     ');
               end;
    {           for dd := 1 to 34 do write(#8,#32,#8);}
         until cc = 1000
    end.

[Back to MISC SWAG index] [Back to Main SWAG index] [Original]