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 := $440D; 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 }