#include <windows.h>

/****************************************************************************

    IsCDROMDrive - Prüft, ob das gegebene Laufwerk ein durch MSCDEX
    gesteuertes CDROM-Laufwerk ist.

    Parameter
        iDrive = Laufwerkindex (0=A, 1=B, ...)

    Funktionsergebnis
        TRUE, wenn das Laufwerk ein CDROM ist.
        FALSE, wenn das Laufwerk kein MSCDEX CDROM sein kann.

****************************************************************************/

BOOL IsCDROMDrive(WORD iDrive)
{
    BOOL fCdRom;
    fCdRom = FALSE;

    __asm
    {
        mov     ax,1500h /* Anzahl der CD-ROM-Laufwerke */
        xor     bx,bx
        int     2Fh
        or      bx,bx /* Min. 1 Laufwerk vorhanden? */
        jz      fnExit
        mov     ax,150Bh /* CD-ROM-Laufwerk abfragen */
        xor     bx,bx            
        mov     cx,iDrive /* Laufwerkindex */
        int     2Fh
        cmp     bx,0ADADh /* Signatur vorhanden? */
        jne     fnExit
        mov     fCdRom,TRUE /* Ist CD-ROM-Laufwerk? */
        fnExit:
    }
    
    return fCdRom;
}
