home *** CD-ROM | disk | FTP | other *** search
- {
- KENT BRIGGS
-
- > Does anyone know how to check if a drive is valid Without accessing
- > it to see? For example, if the available drives on a system are: A, B,
- > C, E. How do you check if drive A is installed Without having the
- > floppy drive lights go on. I use TP6, so if you include a sample code,
- > could you make it compatible With it.
- }
-
- Program Show_drives;
-
- Uses
- Dos;
-
- Var
- Drv : Array [1..3] of Byte;
-
- Procedure ReportDrives;
- Var
- Regs : Registers;
- Count : Integer;
- DrvList : String[26];
- Fcb : Array [1..37] of Byte;
- begin
- DrvList := '';
- For Count := 1 to 26 do {Try drives A..Z}
- begin
- Drv[1] := Count + 64; {A=ASCII 65, etc}
- Drv[2] := Ord(':');
- Drv[3] := 0;
- Regs.AX := $2906; {Dos Function 29h = Parse Filename}
- Regs.SI := Ofs(Drv[1]); {Point to drive String}
- Regs.DI := Ofs(Fcb[1]); {Point to File Control Block}
- Regs.DS := DSeg;
- Regs.ES := DSeg;
- MsDos(Regs); {Dos Interrupt}
- if Regs.AL <> $FF then
- DrvList := DrvList + Chr(Count + 64);
- end;
- Writeln('Available drives = ', DrvList);
- end;
-
- begin
- ReportDrives;
- end.
-