#ifndef _FAT12_H_
#define _FAT12_H_
#include "math.h"
#include "type.h"
typedef struct
{
WORD BytesPerSector;
BYTE SectorsPerCluster;
WORD ReservedSectors;
BYTE NumberOfFATs;
WORD RootEntries;
WORD TotalSectors;
BYTE Media;
WORD SectorsPerFAT;
WORD SectorsPerTrack;
WORD HeadsPerCylinder;
DWORD HiddenSectors;
DWORD TotalSectorsBig;
} BPB_FAT12;
typedef struct
{
BYTE Jmp[3];
BYTE OemName[8];
BPB_FAT12 Fat12;
BYTE DriveNumber;
BYTE Unused;
BYTE ExtBootSignature;
DWORD SerialNumber;
BYTE VolumeLabel[11];
BYTE FileSystem[8];
BYTE BootCode[450];
}BS_FAT12;
typedef struct
{
BYTE Name[8];
BYTE Ext[3];
BYTE Attrib;
BYTE Res;
BYTE Ms10;
WORD CreationTime;
WORD CreationDate;
WORD AccessDate;
WORD ClusterHigh;
WORD UpdateTime;
WORD UpdateDate;
WORD ClusterLow;
DWORD Size;
} FAT_ENTRY;
extern int find_entry(char *c);
extern BYTE read_sector_chs(BYTE cylinder,BYTE head,BYTE sector,char far* buffer);
extern BYTE read_sector(WORD lba,char far* buffer);
extern WORD get_next_sector(WORD sector);
extern int load_12();
extern BYTE move_block(BYTE off,WORD size);
#endif