#ifndef _HD_H
#define _HD_H
#define hdData 0x0
#define hdError 0x1
#define hdSecCount 0x2
#define hdSecNum 0x3
#define hdCylLow 0x4
#define hdCylHi 0x5
#define hdHead 0x6
#define hdStat 0x7
#define hdCmd 0x7
struct driveInfo {
char hdSector[512];
char hdEnable;
char hdDev;
char hdFlags;
char hdShift;
long hdMask;
long hdMulti;
long hdPort;
long hdSize;
long hdCalc;
};
void initHardDisk();
int initDrive(struct driveInfo *);
void hdWrite(struct driveInfo *hdd,long startSector,long sectorCount,void *baseAddr);
void hdRead(struct driveInfo *hdd,long startSector,long sectorCount,void *baseAddr);
extern struct driveInfo *hdd0;
extern struct driveInfo *hdd1;
extern struct driveInfo *hdd2;
extern struct driveInfo *hdd3;
#endif