--- xmil/fdd/fddfile.h 2004/08/10 08:28:48 1.4 +++ xmil/fdd/fddfile.h 2005/02/04 06:42:11 1.9 @@ -1,4 +1,7 @@ +#define SUPPORT_DISKEXT + + #include "d88head.h" enum { @@ -33,6 +36,16 @@ enum { FDDSTAT_NOTREADY = 0x80 }; +typedef struct { + UINT8 c; + UINT8 h; + UINT8 r; + UINT8 n; + UINT8 flag; + UINT8 padding; + UINT8 size[2]; +} TAOSEC; + typedef struct _fddfile _FDDFILE; typedef struct _fddfile *FDDFILE; @@ -44,6 +57,17 @@ typedef REG8 (*FDDWRITE)(FDDFILE fdd, RE const UINT8 *ptr, UINT size); typedef REG8 (*FDDCRC)(FDDFILE fdd, REG8 media, UINT track, UINT num, UINT8 *ptr); +#if defined(SUPPORT_DISKEXT) +typedef UINT32 (*FDDSEC)(FDDFILE fdd, REG8 media, UINT track, REG8 sc); +#endif + +typedef struct { + UINT32 headersize; + UINT8 tracks; + UINT8 sectors; + UINT8 n; + UINT8 media; +} _XDFINFO, *XDFINFO; typedef struct { UINT32 fd_size; @@ -55,14 +79,20 @@ struct _fddfile { UINT8 type; UINT8 protect; UINT8 padding[2]; + UINT32 ftype; FDDSEEK seek; FDDREAD read; FDDWRITE write; + FDDWRITE wrtrk; FDDCRC crc; +#if defined(SUPPORT_DISKEXT) + FDDSEC sec; +#endif union { + _XDFINFO xdf; _D88INFO d88; } inf; - OEMCHAR fname[MAX_PATH]; + OEMCHAR fname[MAX_PATH]; };