unit DetectCD; (* Detects whether or not a system drive is a CD-ROM or not. Use with either version of Delphi. by John Newlin CIS 71535,665 *) interface uses {$IFDEF VER80} WinProcs, WinTypes, {$ELSE} Windows, {$ENDIF} SysUtils, Messages, Classes, Graphics, Controls; function IsCdRom(DriveLetter:char):boolean; implementation {$IFDEF VER80} function IsCdRom(DriveLetter:char):boolean; var DriveNum:integer; begin result := false; DriveNum := ord(UpCase(DriveLetter))-65; ASM MOV AX,1500h { look for MSCDEX } XOR BX,BX INT 2fh OR BX,BX JZ @Finish MOV AX,150Bh { check for using CD driver } MOV CX,DriveNum INT 2fh OR AX,AX @Finish: mov Result,Al END; end; {$ELSE} function IsCdRom(DriveLetter:char):boolean; Const RootPath : pAnsiChar = 'X:\'; begin RootPath[0] := DriveLetter; Result := IsCdRom(RootPath) = DRIVE_CDROM; {5} end; {$ENDIF} end.