[Back to DRIVES SWAG index] [Back to Main SWAG index] [Original]
{
ERIC GIVLER
> about, evidentally), are two different things. The serial
> number is only accessible in Dos v4.0+, and (I think), you
> have to use the FCBs to get it.
No, no FCBs, see:
}
Uses
Dos,
Crt;
Type
MIDRecord = Record
InfoLevel : Word;
SerialNum : LongInt; {This is the serial number...}
VolLabel : Array [1..11] of Char;
FatType : Array [1..8] of Char;
end;
Function Label_Fat(Var Mid : MidRecord; Drive : Word) : Boolean;
Var
Result : Word;
Regs : Registers;
begin
FillChar(Mid,SizeOf(Mid),0);
FillChar(Regs,SizeOf(Regs),0);
With Regs DO
begin
AX := $440D;
BX := Drive;
CX := $0866;
DS := Seg(Mid);
DX := Ofs(Mid);
Intr($21,Regs);
Case AX of
$01 : Label_Fat := False;
$02 : Label_Fat := False;
$05 : Label_Fat := False;
else
Label_Fat := True;
end;
end;
end;
Var
Mid : MidRecord;
begin
ClrScr;
if Label_Fat(Mid,0) Then
With Mid DO
begin
Writeln(SerialNum);
Writeln(VolLabel);
Writeln(FatType);
end
else
Writeln('Error Occured');
end.
[Back to DRIVES SWAG index] [Back to Main SWAG index] [Original]