00001 00008 #ifndef FAT_H 00009 #define FAT_H 00010 00011 #include "buffer.h" 00012 #include "board.h" 00013 00015 #define IS_FAT_32 UDF 00016 00017 Public extern xdata unsigned long fileSize; 00018 00019 00020 00022 #define MAX_NUMBER_FRAGMENTS 10 00023 00025 xdata extern struct fragmentEntry { 00026 unsigned long start; 00027 unsigned long length; 00028 } fragment[MAX_NUMBER_FRAGMENTS]; 00029 00030 xdata extern struct fragmentEntry midiFragment[MAX_NUMBER_FRAGMENTS]; 00031 xdata extern struct fragmentEntry waveFragment[MAX_NUMBER_FRAGMENTS]; 00032 00034 xdata extern char currentFileName[12]; 00035 00038 unsigned char InitFileSystem(); 00039 00057 unsigned char OpenFile(unsigned int fileNumber, 00058 unsigned char ext1, 00059 unsigned char ext2, 00060 unsigned char ext3); 00061 00069 unsigned char FGetChar(); 00070 00080 unsigned char BuildFragmentTable(void); 00083 unsigned char ScanForFreeSector(); 00085 extern xdata unsigned long freeSector; 00086 extern data unsigned char fatSectorsPerCluster; 00087 extern xdata unsigned long freeStart; 00088 extern xdata unsigned long freeEnd; 00089 void LocateFreeBlock(); 00090 00091 unsigned char SelectDisk (unsigned char n); 00092 extern bit currentDisk; 00093 #endif