www.pudn.com > fat32.c51.rar > FAT32MOUNTPARTITION.C


#ifndef _FAT32_DEFINE 
 #include "FAT32.c" 
#endif 
 
BYTE FAT32MountPartition(void); 
 
BYTE FAT32MountPartition(void) 
{ 
	register BYTE i,j,k; 
	xdata DWORD temp[4]={0,0,0,0}; 
 
	IDEReadSector(0);				//读MBR扇区 
 
	//检查MBR扇区标记 
 	if (DiskBuffer[510] != 0x55||DiskBuffer[511] != 0xaa) 
		return(FAT32_ERR_MBR_FLAG);			//不正常的引导扇区标志 
 
	//加载分区表 
	j=0;k=0; 
	for(i=0;i<4;i++) 
	{ 
		DPT[i].LBABegin=MEMSwap32(DPT[i].LBABegin); 
		DPT[i].CntSec=MEMSwap32(DPT[i].CntSec); 
		if (DPT[i].TypeCode==0x0b)			//FAT32 分区 
		{ 
			sDPT[j].TypeCode = DPT[i].TypeCode; 
			sDPT[j].LBABegin = DPT[i].LBABegin; 
			sDPT[j].CntSec = DPT[i].CntSec; 
			j++; 
		} 
		else if (DPT[i].TypeCode==0x05||DPT[i].TypeCode==0x0f)		//扩展分区 
		{ 
			temp[k]=DPT[i].LBABegin; 
			k++; 
		} 
	} 
	 
	for(i=0;i