Contributor: JOSE ALMEIDA 
{ Gets the device type.
 Part of the Heartware Toolkit v2.00 (HTdisk.PAS) for Turbo Pascal.
 Author: Jose Almeida. P.O.Box 4185. 1504 Lisboa Codex. Portugal.
 I can also be reached at RIME network, site ->TIB or #5314.
 Feel completely free to use this source code in any way you want, and, if
 you do, please don't forget to mention my name, and, give me and Swag the
 proper credits. }
PROCEDURE dpDevType(Drive : byte;
 var Device_Type : byte;
 var Error_Code : byte);
{ DESCRIPTION:
 Gets the device type.
 SAMPLE CALL:
 dpDevType(1,Device_Type,Error_Code);
 ON ENTRY:
 Drive:
 1 : drive A:
 2 : drive B:
 and so on...
 RETURNS:
 Device_Type :
 0 : 320/360 KBytes floppy
 1 : 1.2 MBytes floppy
 2 : 720 KBytes floppy
 3 : 8" single density floppy
 4 : 8" double density floppy
 5 : hard disk
 6 : tape drive
 7 : 1.44 MBytes floppy
 8 : read/write optiocal disk
 9 : 2.88 MBytes floppy
 else : unknown device type
 Error_Code:
 0 : no error
 else : error number (see The PC Programmers Source Book 3.191)
 NOTES:
 Applies to all DOS versions beginning with v3.3.
 See dpDevType_Text() in order to get a string text. }
var
 TmpA : array[0..31] of byte;
 HTregs : registers;
BEGIN { dpDevType }
 HTregs.AX := 440ドルD;
 HTregs.BX := word(Drive);
 HTregs.CX := 0860ドル;
 HTregs.DX := Ofs(TmpA);
 HTregs.DS := Seg(TmpA);
 MsDos(HTregs);
 if HTregs.Flags and FCarry  0 then
 begin
 Device_Type := $FF; { on error returns unknown device type }
 Error_Code := HTregs.AL
 end
 else
 begin
 Device_Type := TmpA[1];
 Error_Code := 0;
 end;
END; { dpDevType }
 

AltStyle によって変換されたページ (->オリジナル) /