00001
00002
00003
00004
00005
00006
00007
00008
00015 #ifndef FAT16_H
00016 #define FAT16_H
00017
00018
00019
00020 #include "xbasic_types.h"
00021 #include "microsd.h"
00022 #include "fat16.h"
00023
00024
00025
00026 #define SECTOR_SIZE 512 // ASSUME 1 sector = 512 bytes
00027
00028 #define FAT_FILENAME 0x00
00029 #define FAT_EXTENSION 0x08
00030 #define FAT_DIR_UNUSED 0xE5
00031 #define FAT_DIR_LAST 0x00
00032
00033
00034
00035 typedef struct {
00036 Microsd *SDPtr;
00037 Xuint32 FAT1SectorNum;
00038 Xuint32 RootDirSectorNum;
00039 Xuint32 Cluster0SectorNum;
00040 Xuint32 CurrDirSectorNum;
00041 Xuint16 RootMaxDir;
00042 Xuint16 SectPerCluster;
00043 Xuint16 SectPerFAT;
00044 } Fat16;
00045
00046
00047
00048 int Fat16_InitializeLoadBoot(Fat16 *fp, Microsd *SDPtr);
00049 int Fat16_SDLoadRootDir(Fat16 *fp);
00050 void Fat16_SDPrintDir(Fat16 *fp);
00051 int Fat16_SDReadFile(Fat16 *fp, char *FileName);
00052 int Fat16_SDWriteFile(Fat16 *fp, char *FileName);
00053
00054 #endif