home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of Shareware - Software Farm 2
/
wosw_2.zip
/
wosw_2
/
PASCAL
/
INFOP125.ZIP
/
PAGE_15.INC
< prev
next >
Wrap
Text File
|
1990-08-10
|
4KB
|
168 lines
procedure page_15;
var
i : byte;
j : 0..3;
k : byte;
part : array[0..secsiz + 3] of byte;
xbool1 : boolean;
xbool2 : boolean;
xbool3 : boolean;
xbool4 : boolean;
xbyte : byte;
xlong : longint;
xword : word;
begin
caption2('Partition table data');
i:=$80;
xbool1:=false;
xbool2:=false;
repeat
with regs do
begin
AX:=$0201;
CX:=$0001;
DX:=i;
ES:=seg(part);
BX:=ofs(part);
intr($13, regs);
if nocarry then
begin
xbool1:=true;
xbool2:=true
end
else
if i < $99 then
inc(i)
else
xbool1:=true
end
until xbool1;
if xbool2 then
begin
writeln;
caption3('Unit');
writeln;
caption3('Partition');
writeln;
caption3('Bootable');
writeln;
caption3('Starting head');
writeln;
caption3('Starting sector');
writeln;
caption3('Starting cylinder');
writeln;
caption3('System ID');
writeln;
caption3('Ending head');
writeln;
caption3('Ending sector');
writeln;
caption3('Ending cylinder');
writeln;
caption3('First partition sector');
writeln;
caption3('Sectors in partition');
writeln;
xbool3:=false;
repeat
window(9, 4, twidth, tlength - 2);
writeln(i);
window(27, 5, twidth, tlength - 2);
clrscr;
for j:=0 to 3 do
begin
window(27 + 12 * j, 5, 38 + 12 * j, tlength - 2);
writeln(j + 1);
xword:=$01BE + j shl 4;
xbyte:=part[xword];
case xbyte of
$00 : writeln('no');
$80 : writeln('yes')
else
writeln('(', hex(xbyte, 2), ')')
end;
xbyte:=part[xword + 4];
if xbyte > $00 then
begin
writeln(part[xword + 1]);
writeln(part[xword + 2] and $3F);
writeln(part[xword + 3] +
word(part[xword + 2] shr 6 * 256));
case xbyte of
$01 : writeln('DOS-12');
$02,$03 : Writeln('XENIX');
$04 : writeln('DOS-16');
$05 : writeln('Ext DOS-16');
$06 : Writeln('Big DOS-16');
$07 : Writeln('QNX');
$08 : Writeln('Split');
$09 : Writeln('AIX data');
$51 : Writeln('Dsk Managr');
$56 : Writeln('GB');
$61 : Writeln('Speedstor');
$63 : Writeln('SysV/386');
$64 : Writeln('NOVELL');
$75 : Writeln('PC/IX');
$80 : Writeln('Minix v1.3-');
$81 : Writeln('Minix v1.5+');
$DB : Writeln('CP/M');
$E1 : Writeln('SpdStr-12');
$E4 : Writeln('SpdStr-16');
$FF : Writeln('BBT')
else
writeln('(', hex(xbyte, 2), ')')
end;
writeln(part[xword + 5]);
xbyte:=part[xword + 6];
writeln(xbyte and $3F);
writeln(cbw(part[xword + 7], xbyte shr 6));
xlong:=0;
for k:=11 downto 8 do
xlong:=xlong shl 8 + part[xword + k];
writeln(xlong);
xlong:=0;
for k:=15 downto 12 do
xlong:=xlong shl 8 + part[xword + k];
writeln(xlong)
end
else
for k:=1 to 9 do
writeln('-')
end;
xbool4:=false;
repeat
if i < $99 then
begin
inc(i);
with regs do
begin
AX:=$0201;
CX:=$0001;
DX:=i;
ES:=seg(part);
BX:=ofs(part);
intr($13, regs);
if nocarry then
begin
xbool4:=true;
pause1;
if endit then
Exit;
end
end
end
else
begin
xbool3:=true;
xbool4:=true
end
until xbool4
until xbool3
end
else
writeln('(no fixed disks)')
end;