📄 filesys.h
字号:
#ifndef FILESYS_H#define FILESYS_H#define DEVNAME "/dev/fd0H1440"#define DIR_ENTRY_SIZE 32 #define SECTOR_SIZE 512#define FAT_ONE_OFFSET 0x200 #define FAT_TWO_OFFSET 0x1400 #define ROOTDIR_OFFSET 0x2600 #define DATA_OFFSET 0x4200 /* mask for the entry attribute */ #define ATTR_READONLY 0x01 #define ATTR_HIDDEN 0x02#define ATTR_SYSTEM 0x04#define ATTR_VLABEL 0x08#define ATTR_SUBDIR 0x10#define ATTR_ARCHIVE 0x20/* mask for time 5:6:5*/#define MASK_HOUR 0xf800#define MASK_MIN 0x07e0#define MASK_SEC 0x001f/* mask for date 7:4:5*/#define MASK_YEAR 0xfe00#define MASK_MONTH 0x01e0#define MASK_DAY 0x001fstruct BootDescriptor_t { unsigned char Oem_name[9]; int BytesPerSector; int SectorsPerCluster; int ReservedSectors; int FATs; int RootDirEntries; int LogicSectors; int MediaType; int SectorsPerFAT; int SectorsPerTrack; int Heads; int HiddenSectors; };struct Entry { unsigned char short_name[12]; unsigned char long_name[27]; unsigned short hour,min,sec; unsigned short year,month,day; unsigned short FirstCluster; unsigned int size; unsigned char readonly:1; unsigned char hidden:1; unsigned char system:1; unsigned char vlabel:1; unsigned char subdir:1; unsigned char archive:1; };int fd_load();int fd_ls();int fd_cd(char *dir);int fd_rm(char *file_name);void findDate(unsigned short *year,unsigned short *month,unsigned short *day,unsigned char info[2]);void findTime(unsigned short *hour,unsigned short *min,unsigned short *sec,unsigned char info[2]);int ReadFat();int WriteFat();void ScanBootSector();void ScanRootEntry();int ScanEntry(char *entryname,struct Entry *pentry,int mode); int GetEntry(struct Entry *entry);void FileNameFormat(unsigned char *name);unsigned short GetFatCluster(unsigned short prev);void ClearFatCluster(unsigned short cluster);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -