--- xmil/io/fdc.h 2004/08/13 01:35:59 1.9 +++ xmil/io/fdc.h 2008/06/02 20:07:31 1.14 @@ -1,12 +1,11 @@ -enum { - FDCDIR_NONE = 0x00, - FDCDIR_IN = 0x01, - FDCDIR_OUT = 0x02 -}; +/* #define SUPPORT_MOTORRISEUP */ enum { - FDC_BUFFERS = 0x3000 + FDCDIR_NONE = 0x00, + FDCDIR_TAO = 0x01, + FDCDIR_IN = 0x02, + FDCDIR_OUT = 0x03 }; enum { @@ -18,7 +17,7 @@ enum { typedef struct { UINT8 cmd; - UINT8 type; + UINT8 ctype; UINT8 data; SINT8 step; UINT8 drv; @@ -54,18 +53,36 @@ typedef struct { SINT32 loopclock; +#if defined(SUPPORT_MOTORRISEUP) UINT8 motorevent[4]; SINT32 motorclock[4]; +#endif - UINT8 buffer[FDC_BUFFERS]; +#if !defined(CONST_DISKIMAGE) + UINT8 wt_mode; + UINT8 wt_sectors; + UINT8 wt_padding[2]; + UINT wt_ptr; + UINT wt_datpos; + UINT wt_datsize; + + UINT8 buffer[0x3000]; +#else + UINT8 crcbuf[6]; +#endif } FDCSTAT; +#if defined(CONST_DISKIMAGE) typedef struct { - UINT dummy; + UINT8 *buffer; } FDCEXT; +#endif typedef struct { FDCSTAT s; +#if defined(CONST_DISKIMAGE) + FDCEXT e; +#endif } FDC; @@ -74,10 +91,14 @@ extern "C" { #endif void neitem_fdcbusy(UINT id); +#if defined(SUPPORT_MOTORRISEUP) void fdc_callback(void); +#else +#define fdc_callback() +#endif -void IOOUTCALL fdc_o(UINT port, REG8 value); // x1_fdc_w -REG8 IOINPCALL fdc_i(UINT port); // x1_fdc_r +void IOOUTCALL fdc_o(UINT port, REG8 value); +REG8 IOINPCALL fdc_i(UINT port); void fdc_reset(void);