?? fatnextcluster.c
字號:
#ifndef _FAT_DEFINE
#include "FAT.c"
#endif
void FATNextCluster(DWORD *CurrentCluster);
void FATNextCluster(DWORD *CurrentCluster)
{
pdata BYTE Offset;
pdata DWORD Sector;
switch (sDPT[StorageMedia.CurrentPartition].FATType)
{
case FAT_TYPE_FAT32 :
Sector=(*CurrentCluster)>>7; //等價于CurrentCluster/128
Offset=(BYTE)((*CurrentCluster)&0x0000007f); //等價于CurrentCluster%128
if (Sector!=FATTable.Sector)
{
FATTable.Sector=Sector;
StorageMedia.ReadSector(FAT.FATSec + Sector,FATTable.FAT.F12);
}
*CurrentCluster=MEMSwap32(FATTable.FAT.F32[Offset]);
return;
case FAT_TYPE_FAT16 :
Sector=(*CurrentCluster)>>8; //等價于CurrentCluster/256
Offset=(BYTE)((*CurrentCluster)&0x000000ff); //等價于CurrentCluster%256
if (Sector!=FATTable.Sector)
{
FATTable.Sector=Sector;
StorageMedia.ReadSector(FAT.FATSec + Sector,FATTable.FAT.F12);
}
*CurrentCluster=(DWORD) MEMSwap16(FATTable.FAT.F16[Offset]);
return;
case FAT_TYPE_FAT12 :
break;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -