home *** CD-ROM | disk | FTP | other *** search
- unit PCXCDU3;
-
- { CDX_GetLetterNumber bugfixed, Dec 28, 1994 }
-
- interface
-
- var
- CDR_Status : Word; { Status }
- CD_Letters : Byte; { Number of CD-ROM devices }
- CD_StartLetter : Byte; { Number of 1st CDR device }
- CD_Current : Word; { Current CDR device used }
- CD_Drives : array [1..26] of Byte; { All CD-ROM devices }
-
- implementation
-
- uses DOS;
-
- (**************************************************************)
- (* CDX_GetLetterNumber
- (*
- (* Get Number of CD-ROM drive letters
- (*
- (* Input:
- (* AX = $1500
- (* Output:
- (* BL = Number of CD-ROM drive letters
- (* CL = Starting drive letter of CD-ROM dirve (A=0, B=1, ...)
- (**************************************************************)
-
- procedure CDX_GetLetterNumber;
-
- var
- r : Registers;
-
- begin
- r.AX:=$1500;
- r.BX:=$0000; { Bugfixed }
- r.CX:=$0000; { Bugfixed }
- Intr($2f,r);
- CD_Letters:=r.BL;
- CD_StartLetter:=r.CL;
- CD_Current:=CD_StartLetter;
- end;
-
- (**************************************************************)
- (* CDX_GetCDROMDriveLetters
- (*
- (* Get Number of CD-ROM drive letters
- (*
- (* Input:
- (* AX = $150D
- (* ES:BX = Device list buffer
- (**************************************************************)
-
- procedure CDX_GetCDROMDriveLetters (var CDBuf);
-
- var
- r : Registers;
-
- begin
- r.AX:=$150D;
- r.ES:=Seg(CDBuf);
- r.BX:=Ofs(CDBuf);
- Intr($2f,r);
- end;
- {==============================================================}
-
- type
-
- TReqHdr = record { Request Header Type }
- HdrLen : Byte; { Header Length in Bytes }
- SubUnit : Byte; { SubUnit for minor devices }
- CmdCode : Byte; { Command Code }
- Status : Word; { Status }
- Resrvd : array [1..8] of Byte; { Reserved }
- end;
-
- {--------------------------------------------------------------}
-
- begin
- CDR_Status:=0;
- CDX_GetLetterNumber;
- CDX_GetCDROMDriveLetters(CD_Drives);
- end.