```Contributor: CHRIS EVANS

{\$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(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.
```