www.pudn.com > 外挂硬盘和FLASH的MP3方案程序下载.rar > IDEIDENTIFIEDDEVICE.C


#ifndef _IDEIO_DEFINE 
 #include "IDEIO.c" 
#endif 
 
BYTE IDEIdentifiedDevice(BYTE DeviceNum); 
 
BYTE IDEIdentifiedDevice(BYTE DeviceNum) 
{ 
	register WORD i; 
	register BYTE status=0xff; 
 
	IDEDevice[DeviceNum].DriverType=0; 
 
	if (DeviceNum) status=0xb0;else status=0xa0; 
 
   	if (!IDEStatus(IDE_STATUS_BSY,IDE_WAIT,FALSE,255)) return(IDE_ERROR_BSY); 
	if (!IDEStatus(IDE_STATUS_DRDY,IDE_WAIT,TRUE,255)) return(IDE_ERROR_DRDY); 
	IDE_WRITE_LSB(IDE_ADDR_CMD_HEAD,status); 
	IDE_WRITE_LSB(IDE_ADDR_CMD_COMMAND,IDE_CMD_IDENTIFYDEV);				//写命令 
	if (!IDEStatus(IDE_STATUS_BSY,IDE_WAIT,FALSE,255)) return(IDE_ERROR_BSY); 
	if (!IDEStatus(IDE_STATUS_DRQ,IDE_WAIT,TRUE,255)) return(IDE_ERROR_DRQ); 
	 
	for(i=0;i<512;) 
	{ 
		IDE_READ_WORD(IDE_ADDR_CMD_DATA,DiskBuffer[i++],DiskBuffer[i++]); 
	} 
	IDEDevice[DeviceNum].TotalSectors=*(DWORD *)(DiskBuffer+120); 
	IDEDevice[DeviceNum].TotalSectors=MEMSwap32(IDEDevice[DeviceNum].TotalSectors); 
	IDEDevice[DeviceNum].DriverType=DRIVER_TYPE_HDD; 
	return(0); 
}