📄 fat.h
字号:
#ifdef fat_h
#define MAXFILES 1 //设置系统中最多同时打开的文件的个数
typedef unsigned char UCHAR;
typedef unsigned int UINT;
typedef unsigned long ULONG;
typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned long ulong;
typedef unsigned char u8;
typedef unsigned short int u16;
typedef unsigned long u32;
typedef unsigned short int WORD;
typedef unsigned char BYTE;
typedef unsigned long DWORD;
// BIOS 参数块
struct bpb710 {
WORD bpbBytesPerSec; // 每扇区字节数 2 0x0b
BYTE bpbSecPerClust; // 每簇扇区数 1 0x0d
WORD bpbResSectors; // 保留区域中的保留扇区数 2 0x0e
BYTE bpbFATs; // FAT表的份数 1 0x10
WORD bpbRootDirEnts; // 根目录项数 2 0x11
WORD bpbSectors; // 此域为存储卷上的扇区总数 2 0x13
BYTE bpbMedia; // 固定存储介质描述 1 0x15
WORD bpbFATsecs; // FAT表所占的扇区数 2 0x16
WORD bpbSecPerTrack; // 每道扇区数
WORD bpbHeads; // 磁头数
DWORD bpbHiddenSecs; // 隐藏扇区数
DWORD bpbHugeSectors; // 总扇区数
DWORD bpbBigFATsecs;// 每个FAT区所占扇区数
WORD bpbExtFlags; // 扩展标志
#define FATNUM 0xf
#define FATMIRROR 0x80
WORD bpbFSVers; // 文件系统版本
#define FSVERS 0
DWORD bpbRootClust; // 根目录簇号
WORD bpbFSInfo; // 文件系统信息扇区号
WORD bpbBackup; // 备份引导扇区
};
typedef struct
{
u8 FileName[11];
u8 FileAttrib;
u8 UnUsed[8];
u16 StartHight;
u8 FileUpdateTime[2];
u8 FileUpdateData[2];
u16 StartLow;
u32 Size;
}FFS; //Fat File struction
typedef struct
{
u32 StartClust; //当不为0 代表这个文件已经被打开
u32 Size;
u32 FatPos; //记录所在FAT 表格中的位置 为以后文件修改做的记录
u32 Seek; //文件操作指针
u32 CurClust;
u32 CurSector;
}FOPT;
#endif
unsigned long FatSetBlock0();
unsigned char FatReadBlock(ULONG addr);
void InitFat32();
unsigned char fopen( const unsigned char *file);
unsigned char fread(void *save,unsigned long len,unsigned char file_number);
unsigned char fclose(unsigned char file_number);
unsigned char fseek(unsigned char file_number,unsigned long addr,unsigned char type); //文件定位 主要设置 clust sector and seek
unsigned long ftell(unsigned char file_number);
void fprtfile(unsigned char file_number);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -