亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? fat.h

?? 51單片機(jī)掛接硬盤操作源碼
?? H
字號(hào):
/********************************************************/
/*                                                      */
/*  庫   名   稱:FAT文件系統(tǒng)函數(shù)庫                   */
/*  功 能  描 述:提供對(duì)FAT文件系統(tǒng)按文件名存取       */

/********************************************************/

#ifndef _TYPE_DEFINE
 #define _TYPE_DEFINE
 typedef bit BOOL;
 typedef unsigned char BYTE;
 typedef unsigned char CHAR;
 typedef unsigned int WORD;
 typedef unsigned long DWORD;
#endif

#ifndef _FAT_DEFINE
 #define _FAT_DEFINE

#define FAT_MAX_FCB						2

//文件屬性
#define	FAT_ATTR_READ_ONLY				0x01			//文件屬性:只讀
#define	FAT_ATTR_HIDDEN					0x02			//文件屬性:隱含
#define	FAT_ATTR_SYSTEM					0x04			//文件屬性:系統(tǒng)
#define	FAT_ATTR_VOLUME_ID				0x08			//文件屬性:卷ID
#define	FAT_ATTR_DIRECTORY				0x10			//文件屬性:目錄
#define	FAT_ATTR_ARCHIVE				0x20			//文件屬性:歸檔
#define FAT_ATTR_LONG_NAME				FAT_ATTR_READ_ONLY+FAT_ATTR_HIDDEN+FAT_ATTR_SYSTEM+FAT_ATTR_VOLUME_ID	//文件屬性:長文件名
#define FAT_ATTR_LONG_NAME_MASK			FAT_ATTR_READ_ONLY+FAT_ATTR_HIDDEN+FAT_ATTR_SYSTEM+FAT_ATTR_VOLUME_ID+FAT_ATTR_DIRECTORY+FAT_ATTR_ARCHIVE	//文件屬性:長文件名
#define FAT_LAST_LONG_ENTRY				0x40			//長文件名入口標(biāo)記

#define FAT_ERR_MBR_FLAG				0x01			//MBR扇區(qū)標(biāo)志錯(cuò)誤	FATMountPartition
#define FAT_ERR_PARTITION_NOT_FOUND		0x02			//指定分區(qū)沒找到	FATMountVolumeID
#define FAT_ERR_FILE_OPEN_ERROR			FAT_MAX_FCB		//文件打開錯(cuò)誤
#define FAT_ERR_DIR_NOT_FOUND			0x01			//指定的目錄入口沒有找到F	FATChangeDirectory
#define FAT_ERR_NOT_DIR					0x02			//不是一個(gè)目錄入口		FATChangeDirectory

#define FAT_SEEK_BEGIN					0x01
#define FAT_SEEK_CURRENT				0x02
#define FAT_SEEK_END					0x03

#define FAT_TYPE_FAT12					0x01
#define FAT_TYPE_FAT16					0x02
#define FAT_TYPE_FAT32					0x03

#define FAT_MAX_PARTITIONS				0x10
//#define IO_ERROR						0x00				//遇到io錯(cuò)誤
//#define NO_IO_ERROR					0x01				//沒有遇到io錯(cuò)誤

//計(jì)算指定簇的開始扇區(qū)號(hào)
#define ClusterToSector(X)			FAT.ClusSec + (X - 2) * FAT.SecPerClus

struct StorageMediaStr
{
	WORD	BytesPerSec;			//每扇區(qū)字節(jié)數(shù)
	DWORD	TotalSectors;			//總扇區(qū)數(shù)
	BYTE	TotalPartitions;		//分區(qū)數(shù)
	BYTE	CurrentPartition;		//當(dāng)前分區(qū)
	BYTE	(*ReadSector)(DWORD Sector,BYTE *Buffer);
	BYTE	(*WriteSector)(DWORD Sector,BYTE *Buffer);
};

struct BootSecFAT16Str					//引導(dǎo)扇區(qū)   FAT16  擴(kuò)展結(jié)構(gòu)
{
	BYTE	BS_DrvNum;
	BYTE	BS_Reserved1;
	BYTE	BS_BootSig;
	DWORD	BS_VolID;
	char	BS_VolLab[11];
	char	BS_FilSysType[8];
};

struct BootSecFAT32Str					//引導(dǎo)扇區(qū)   FAT  擴(kuò)展結(jié)構(gòu)
{
	DWORD	BPB_FATSz32;			//FAT扇區(qū)總數(shù)
	WORD	BPB_ExtFlags;
	WORD	BPB_FSVer;
	DWORD	BPB_RootClus;			//根目錄開始的簇
	WORD	BPB_FSInfo;
	WORD	BPB_BkBootSec;
	char	BPB_Reserved[12];
	BYTE	BS_DrvNum;
	BYTE	BS_Reserved1;
	BYTE	BS_BootSig;
	DWORD	BS_VolID;
	char	BS_VolLab[11];
	char	BS_FilSysType[8];
};

struct BootSecStr						//引導(dǎo)扇區(qū)結(jié)構(gòu)
{
	BYTE	BS_jmpBoot[3];
	BYTE	BS_OEMName[8];
	WORD	BPB_BytesPerSec;		//每扇區(qū)字節(jié)數(shù)  512
	BYTE	BPB_SecPerClus;			//每簇扇區(qū)數(shù)	1 2 4 8 16 32 64 128
	WORD	BPB_RsvdSecCnt;			//保留扇區(qū)數(shù)	0x20
	BYTE	BPB_NumFATs;			//FAT表個(gè)數(shù)		2
	WORD	BPB_RootEntCnt;		
	WORD	BPB_TotSec16;
	BYTE	BPB_Media;
	WORD	BPB_FATSz16;
	WORD	BPB_SecPerTrk;
	WORD	BPB_NumHeads;
	DWORD	BPB_HiddSec;
	DWORD	BPB_TotSec32;
	union	FATUni
	{
		struct BootSecFAT32Str	F32;
		struct BootSecFAT16Str	F16;
	}FAT;

};

struct DPTStr				//分區(qū)表結(jié)構(gòu)
{
	BYTE	BootFlag;
	BYTE	CHSBegin[3];
	BYTE	TypeCode;
	BYTE	CHSEnd[3];
	DWORD	LBABegin;
	DWORD	CntSec;
};

struct sDPTStr				//簡化的分區(qū)表
{
	BYTE	FATType;
	DWORD	LBABegin;
	DWORD	CntSec;
};

struct FAT32FSInfoStr		//FAT32擴(kuò)展信息結(jié)構(gòu)
{
	DWORD	LeadSig;
	BYTE	Reserved1[480];
	DWORD	StrucSig;
	DWORD	FreeCount;
	DWORD	NxtFree;
	BYTE	Reserved2[12];
	DWORD	TrailSig;
};

struct FATSDirStr			//FAT目錄結(jié)構(gòu) 短文件名
{
	CHAR	Name[11];
	BYTE	Attr;
	BYTE	NTRes;
	BYTE	CrtTimeTenth;
	WORD	CrtTime;
	WORD	CrtDate;
	WORD	LstAccDate;
	WORD	FstClusHI;
	WORD	WrtTime;
	WORD	WrtDate;
	WORD	FstClusLO;
	DWORD	FileSize;
};

struct FATLDirStr			//FAT目錄結(jié)構(gòu) 長文件名
{
	BYTE	Ord;
	BYTE	Name1[10];
	BYTE	Attr;
	BYTE	Type;
	BYTE	Chksum;
	BYTE	Name2[12];
	WORD	FstClusLO;
	BYTE	Name3[4];
};

struct FATStr					//FAT參數(shù)表
{
//	BYTE	ClusSecCnt;			//當(dāng)前簇扇區(qū)計(jì)數(shù)
	DWORD	CurrentDirectory;	//當(dāng)前目錄入口(簇號(hào))
	BYTE	SecPerClus;			//每簇扇區(qū)數(shù)	1 2 4 8 16 32 64 128
	DWORD	RootClus;			//根目錄開始的簇
	DWORD	ClusSec;			//簇開始的扇區(qū)
	DWORD	FATSz;				//FAT表大小(扇區(qū))
	DWORD	FATSec;				//FAT表開始扇區(qū)
	DWORD	FSISec;				//FSI所在扇區(qū)
	DWORD	FSIFreeCount;		//空閑簇?cái)?shù)
	DWORD	FSINxtFree;			//空閑簇搜索指針
};

struct FCBStr
{
	CHAR	FileName[12];		//文件名
	DWORD	Size;				//文件大小
	DWORD	FirstCluster;		//第一個(gè)簇
	DWORD	LastCluster;		//最近一次讀到的簇號(hào)
	DWORD	ClusSecCnt;			//當(dāng)前簇扇區(qū)計(jì)數(shù)
	DWORD	ByteCnt;			//當(dāng)前字節(jié)計(jì)數(shù)
};

struct FATTableStr
{
	DWORD	Sector;
	DWORD	FAT[128];
};

struct FATClusterStr
{
	BYTE	SecOffset;				//扇區(qū)偏移量
	BYTE	Sector;				//扇區(qū)號(hào)
	DWORD	Cluster;			//簇號(hào)
};

#ifndef _LIBRARY_DEFINE
 xdata BYTE DiskBuffer[512];

 xdata struct StorageMediaStr StorageMedia;
 xdata struct sDPTStr sDPT[FAT_MAX_PARTITIONS];
 xdata struct FATStr FAT;
 xdata struct FCBStr FCB[FAT_MAX_FCB];
 xdata CHAR LongFileName[256]; 
 xdata struct FATTableStr FATTable;
 xdata struct DPTStr *DPT;			//分區(qū)表結(jié)構(gòu)指針
 xdata struct BootSecStr *BOOTSEC;		//引導(dǎo)扇區(qū)結(jié)構(gòu)指針
 xdata struct FAT32FSInfoStr *FSI;		//FAT32擴(kuò)展信息
 xdata struct FATSDirStr *sDIR;		//FAT目錄結(jié)構(gòu)指針
 xdata struct FATLDirStr *lDIR;		//FAT目錄結(jié)構(gòu)指針
#endif
#endif

extern xdata BYTE DiskBuffer[512];

extern xdata struct StorageMediaStr StorageMedia;
extern xdata struct sDPTStr sDPT[FAT_MAX_PARTITIONS];
extern xdata struct FATStr FAT;
extern xdata struct FCBStr FCB[FAT_MAX_FCB];
extern xdata CHAR LongFileName[256]; 
extern xdata struct FATTableStr FATTable;
extern xdata struct DPTStr *DPT;		//分區(qū)表結(jié)構(gòu)指針
extern xdata struct BootSecStr *BOOTSEC;	//引導(dǎo)扇區(qū)結(jié)構(gòu)指針
extern xdata struct FAT32FSInfoStr *FSI;	//FAT32擴(kuò)展信息
extern xdata struct FATSDirStr *sDIR;		//FAT目錄結(jié)構(gòu)指針
extern xdata struct FATLDirStr *lDIR;		//FAT目錄結(jié)構(gòu)指針

extern void FATInit(void);
extern BYTE FATSelectMedia(BYTE Media);
extern BYTE FATFindPartitions(void);
extern BYTE FATMountPartition(void);
extern BYTE FATMountVolumeID(BYTE Partition);
extern void FATGetPartLongName(struct FATLDirStr *ldp,CHAR *name);
extern DWORD FATDiskSize(void);
extern DWORD FATDiskFreeSize(void);
extern BYTE FATFindDIREntry(CHAR *DirName);
void FATReadCluster(struct FATClusterStr *Cluster,BYTE *Buffer);
extern BYTE FATChangeDirectory(CHAR *DirName);
extern BYTE FATListDirectory(void);
extern DWORD FATNextCluster(DWORD CurrentCluster);
extern BYTE FATGetDirName(WORD SecNum);
extern BYTE FATOpenFile(CHAR *filename);
extern void FATCloseFile(BYTE fp);
extern WORD FATReadFile(BYTE fp);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲无人区一区| 丝袜a∨在线一区二区三区不卡| 99久久久久免费精品国产| 亚洲一级二级在线| 久久老女人爱爱| 在线亚洲免费视频| 美腿丝袜在线亚洲一区| 亚洲欧洲日韩综合一区二区| 欧美一区二区三区四区久久| 成人一区二区三区视频在线观看 | 久久五月婷婷丁香社区| 91一区二区在线| 狠狠色狠狠色综合日日91app| 最新久久zyz资源站| 欧美mv日韩mv国产| 欧美伦理影视网| 色综合久久天天综合网| 国产曰批免费观看久久久| 亚洲成人精品一区| 亚洲精品欧美激情| 国产精品免费av| 久久夜色精品国产欧美乱极品| 欧美日韩精品欧美日韩精品一 | 狠狠色丁香久久婷婷综合_中| 一级日本不卡的影视| 国产精品福利av| 久久久精品欧美丰满| 欧美大黄免费观看| 欧美一区二区在线观看| 91久久精品一区二区| 99视频在线观看一区三区| 国产高清在线精品| 国产乱人伦偷精品视频不卡| 蜜臀av性久久久久av蜜臀妖精| 亚洲国产精品久久人人爱蜜臀| 成人欧美一区二区三区视频网页| 欧美国产丝袜视频| 国产亚洲精品aa| 久久精品视频免费| 亚洲国产精品成人综合色在线婷婷| 国产三级精品在线| 日本一区二区三区四区在线视频| 精品国产免费一区二区三区香蕉| 日韩精品一区二区三区中文不卡| 91精品国产综合久久香蕉的特点| 欧美日韩精品一区二区三区四区| 欧美日韩一区三区| 91精品国产色综合久久ai换脸 | 国产精品美女久久久久aⅴ | 国产一区二区三区免费| 精品在线视频一区| 欧美成人国产一区二区| 69堂亚洲精品首页| 欧美一区二区福利在线| 日韩一级免费观看| 欧美精品一区二区三| 精品国免费一区二区三区| 久久综合色天天久久综合图片| 欧美精品一区二区三区在线播放| xvideos.蜜桃一区二区| 久久日韩精品一区二区五区| 国产婷婷一区二区| 国产精品麻豆99久久久久久| 亚洲激情中文1区| 午夜欧美电影在线观看| 日本欧美一区二区三区乱码| 精品一区二区三区免费视频| 国产激情一区二区三区四区| av电影在线观看一区| 欧美体内she精高潮| 日韩一区二区电影网| 久久久综合精品| 一区二区三区欧美久久| 亚洲成人1区2区| 国内偷窥港台综合视频在线播放| 福利一区二区在线| 日本道色综合久久| 日韩欧美电影一区| 中文字幕av一区二区三区高 | 狠狠久久亚洲欧美| 99re成人在线| 777久久久精品| 国产日韩v精品一区二区| 亚洲综合丝袜美腿| 国产精品夜夜嗨| 在线免费亚洲电影| 精品久久久久一区| 亚洲欧美日韩国产中文在线| 美国精品在线观看| 色综合色综合色综合色综合色综合| 在线成人av网站| 国产精品麻豆欧美日韩ww| 舔着乳尖日韩一区| av综合在线播放| 日韩精品在线看片z| 亚洲精品久久久蜜桃| 久久99精品久久久久久| 色88888久久久久久影院野外 | 亚洲欧美日韩国产手机在线| 蜜臀久久99精品久久久久宅男| av亚洲精华国产精华精华| 欧美一区二区三区男人的天堂| 国产精品久久久久9999吃药| 奇米影视在线99精品| 91色乱码一区二区三区| 久久精品一区二区三区不卡牛牛| 亚洲国产一区二区视频| 99re视频精品| 国产亚洲精品bt天堂精选| 日韩电影免费在线| 色综合久久99| 国产精品卡一卡二卡三| 另类调教123区| 欧美男女性生活在线直播观看| 日韩一区中文字幕| 国产成人精品免费一区二区| 欧美一区二区视频观看视频| 亚洲免费观看高清在线观看| 粉嫩av一区二区三区粉嫩| 日韩欧美不卡一区| 日韩av中文字幕一区二区| 91久久线看在观草草青青| 亚洲欧美综合在线精品| 国产成人在线影院| 国产丝袜美腿一区二区三区| 九九视频精品免费| 日韩视频免费观看高清在线视频| 亚洲国产综合视频在线观看| 在线观看日韩电影| 亚洲色图视频网站| youjizz久久| 国产欧美一区二区精品久导航 | 成人动漫av在线| 国产欧美一二三区| 国产精品18久久久久久久网站| 日韩欧美一区二区不卡| 美女在线视频一区| 精品久久久久久久久久久久久久久 | 精品精品欲导航| 日本欧美一区二区| 欧美一区二区精品在线| 人人爽香蕉精品| 日韩欧美电影一二三| 国产在线不卡一区| 国产日韩欧美在线一区| 成人精品高清在线| 中文字幕日本乱码精品影院| 成人av在线播放网址| 中文字幕在线不卡国产视频| av成人动漫在线观看| 亚洲人吸女人奶水| 91福利精品第一导航| 亚洲超丰满肉感bbw| 91精品国产91久久综合桃花| 久久不见久久见中文字幕免费| 精品国产乱码91久久久久久网站| 国内精品免费在线观看| 欧美国产激情一区二区三区蜜月| www.欧美日韩| 亚洲小说欧美激情另类| 91精品久久久久久蜜臀| 激情图片小说一区| 国产精品久久精品日日| 色综合天天综合网国产成人综合天| 亚洲免费观看在线观看| 欧美日韩免费视频| 九色综合狠狠综合久久| 中文字幕 久热精品 视频在线| 91美女片黄在线观看91美女| 亚洲图片一区二区| 久久综合九色综合欧美98| 成人免费精品视频| 亚洲成人av一区二区| 久久久亚洲国产美女国产盗摄| www.日韩大片| 日本在线观看不卡视频| 精品国产91亚洲一区二区三区婷婷| 成人激情校园春色| 亚洲成人www| 国产亚洲自拍一区| 欧美日韩国产在线观看| 国产成人综合自拍| 日日摸夜夜添夜夜添亚洲女人| 久久久久久97三级| 在线观看av一区二区| 精品一区二区三区日韩| 亚洲激情图片qvod| 精品国产凹凸成av人导航| 91偷拍与自偷拍精品| 美国毛片一区二区三区| 亚洲美女视频在线| 久久综合九色综合久久久精品综合| 91性感美女视频| 黑人巨大精品欧美一区| 一区二区三区不卡在线观看| 精品国产乱码久久久久久图片| 欧美亚洲综合色| 懂色一区二区三区免费观看| 免费人成精品欧美精品| 一区二区三区免费在线观看|