|
|
| version 1.2, 2004/08/02 13:38:46 | version 1.7, 2004/08/15 14:56:15 |
|---|---|
| Line 1 | Line 1 |
| #define MAX_FDDFILE 4 | #define SUPPORT_DISKEXT |
| #include "d88head.h" | #include "d88head.h" |
| enum { | enum { |
| MAX_FDDFILE = 4 | |
| }; | |
| enum { | |
| DISKTYPE_NOTREADY = 0, | DISKTYPE_NOTREADY = 0, |
| DISKTYPE_BETA, | DISKTYPE_BETA, |
| DISKTYPE_D88 | DISKTYPE_D88 |
| Line 15 enum { | Line 20 enum { |
| DISKTYPE_2HD | DISKTYPE_2HD |
| }; | }; |
| enum { | |
| FDDSTAT_BUSY = 0x01, | |
| FDDSTAT_INDEX = 0x02, | |
| FDDSTAT_DRQ = 0x02, | |
| FDDSTAT_TRACK00 = 0x04, | |
| FDDSTAT_LOSTDATA = 0x04, | |
| FDDSTAT_CRCERR = 0x08, | |
| FDDSTAT_SEEKERR = 0x10, | |
| FDDSTAT_RECNFND = 0x10, | |
| FDDSTAT_HEADENG = 0x20, | |
| FDDSTAT_RECTYPE = 0x20, | |
| FDDSTAT_WRITEFAULT = 0x20, | |
| FDDSTAT_WRITEP = 0x40, | |
| FDDSTAT_NOTREADY = 0x80 | |
| }; | |
| typedef struct _fddfile _FDDFILE; | |
| typedef struct _fddfile *FDDFILE; | |
| typedef REG8 (*FDDSEEK)(FDDFILE fdd, REG8 media, UINT track); | |
| typedef REG8 (*FDDREAD)(FDDFILE fdd, REG8 media, UINT track, REG8 sc, | |
| UINT8 *ptr, UINT *size); | |
| typedef REG8 (*FDDWRITE)(FDDFILE fdd, REG8 media, UINT track, REG8 sc, | |
| 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 { | typedef struct { |
| OEMCHAR fname[MAX_PATH]; | UINT32 headersize; |
| UINT8 type; | UINT8 tracks; |
| UINT8 protect; | UINT8 sectors; |
| UINT8 padding[2]; | UINT8 n; |
| } _FDDFILE, *FDDFILE; | UINT8 media; |
| } _XDFINFO, *XDFINFO; | |
| typedef struct { | |
| UINT32 fd_size; | |
| _D88HEAD head; | |
| UINT32 ptr[D88_TRACKMAX]; | |
| } _D88INFO, *D88INFO; | |
| struct _fddfile { | |
| UINT8 type; | |
| UINT8 protect; | |
| UINT8 padding[2]; | |
| UINT32 ftype; | |
| FDDSEEK seek; | |
| FDDREAD read; | |
| FDDWRITE write; | |
| FDDCRC crc; | |
| #if defined(SUPPORT_DISKEXT) | |
| FDDSEC sec; | |
| #endif | |
| union { | |
| _XDFINFO xdf; | |
| _D88INFO d88; | |
| } inf; | |
| OEMCHAR fname[MAX_PATH]; | |
| }; | |
| #ifdef __cplusplus | #ifdef __cplusplus |
| Line 32 extern _FDDFILE fddfile[MAX_FDDFILE]; | Line 93 extern _FDDFILE fddfile[MAX_FDDFILE]; |
| void fddfile_initialize(void); | void fddfile_initialize(void); |
| const OEMCHAR *fdd_diskname(REG8 drv); | const OEMCHAR *fddfile_diskname(REG8 drv); |
| BRESULT fdd_diskready(REG8 drv); | BRESULT fddfile_diskready(REG8 drv); |
| BRESULT fdd_diskprotect(REG8 drv); | BRESULT fddfile_diskprotect(REG8 drv); |
| BRESULT fdd_set(REG8 drv, const OEMCHAR *fname, UINT ftype, int ro); | BRESULT fddfile_set(REG8 drv, const OEMCHAR *fname, UINT ftype, int ro); |
| BRESULT fdd_eject(REG8 drv); | void fddfile_eject(REG8 drv); |
| #ifdef __cplusplus | #ifdef __cplusplus |
| } | } |