CDINFO - 3


BYTE bLowest;

BYTE bHighest;

DWORD dwTotal;

} DiskInfo;

//

// -

typedef struct _TrackInfo

{

BYTE bControl;

BYTE bTrack;

DWORD dwLoc;

BYTE bInfo;

} TrackInfo;

//

// CD-ROM

typedef struct _DeviceStatus

{

BYTE bControl;

DWORD dwParam;

} DeviceStatus;

//

// -

typedef struct _VolumeSize

{

BYTE bControl;

DWORD dwVolumeSize;

} VolumeSize;

#pragma pack()

//

void GetCDLetters(BYTE *bLetters);

void CallCDDriver(void *rh, int nCDUnit);

int GetDiskInfo(int nCDUnit);

int GetDeviceStatus(int nCDUnit);

int GetVolumeSize(int nCDUnit);

int GetTrackInfo(int iTrack, int nCDUnit);

void delay(int ms);

// int86

union REGS rg;

// CD-ROM

int nCDUnits;

// CD-ROM

int nCDStartUnit;

// CD-ROM

int iStatus;

// -

DiskInfo di;

// CD-ROM

DeviceStatus ds;

// -

VolumeSize vs;

//

TrackInfo ti;

BYTE bLetters[26];

// ---------------------------------------------------

// main

//

// ---------------------------------------------------

int main()

{

int iRetry;

int i, j;

printf("CDINFO, (c) A. Frolov, 1997\n\n");

// , MSCDEX

rg.x.ax = 0x1500;

rg.x.bx = 0;

int86(0x2f, &rg, &rg);

if(rg.x.bx == 0)

{

printf("MSCDEX is not installed\n");

return -1;

}

else

{

// CD-ROM