Contributor: ERWIN PAGUIO
{
The returned value of FirstDrive is an unsigned integer where 0 = 'A', 1 = 'B',
and so on. So to get the actual drive letter you use:
 FirstDriveLetter := Chr(FirstDrive + Ord('A'));
 LastDriveLetter := Chr(FirstDrive + NumDrives + Ord('A'));
}
Function CheckCDROMDrives(Var FirstDrive, NumDrives : Word):Boolean;Assembler;
ASM
 XOR BX, BX { zero out BX to check availability of function }
 MOV AX, 1500h { get no. of CDROM drive letters }
 INT 2Fh { BX = count, CX = first }
 OR BX, BX { was BX modified? }
 JZ @Error { if not, then no MSCDEX driver installed }
 LES DI, FirstDrive
 MOV ES:[DI], CX { device number of first drive }
 LES DI, NumDrives
 MOV ES:[DI], BX { number of CD drives }
 MOV AL, Byte(True)
 JMP @Exit
 @Error:
 XOR AX, AX
 LES DI, FirstDrive
 MOV ES:[DI], AX
 LES DI, NumDrives
 MOV ES:[DI], AX
 MOV AL, Byte(False)
 @Exit:
 End;


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