--- xmil/io/fdc.h 2004/08/08 16:39:03 1.2 +++ xmil/io/fdc.h 2004/08/11 17:45:06 1.6 @@ -1,28 +1,59 @@ +enum { + FDCDIR_NONE = 0x00, + FDCDIR_IN = 0x01, + FDCDIR_OUT = 0x02 +}; + +enum { + FDC_BUFFERS = 0x3000 +}; + typedef struct { - UINT8 drv; UINT8 cmd; - short skip; - short off; - short crc_off; - UINT8 crc_dat[8]; - UINT8 type; - UINT8 treg; - UINT8 sct_bak; UINT8 data; SINT8 step; + UINT8 drv; UINT8 motor; + UINT8 creg; + UINT8 rreg; UINT8 c; UINT8 h; UINT8 r; UINT8 n; - UINT32 busyclock; - UINT32 busystart; - BYTE media; - BYTE rreg; + UINT8 ctbl[4]; + + UINT8 media; + UINT8 stat; + + UINT8 bufmedia; + UINT8 bufunit; + UINT buftrack; + UINT8 bufsc; + UINT8 bufdir; + UINT8 bufwrite; + UINT8 bufmark; + UINT bufsize; + UINT bufpos; + + UINT8 busy; + UINT8 hole; + UINT8 curtime; + UINT8 padding; + UINT crcnum; + + UINT8 buffer[FDC_BUFFERS]; +} FDCSTAT; + +typedef struct { + UINT dummy; +} FDCEXT; + +typedef struct { + FDCSTAT s; } FDC; @@ -30,7 +61,7 @@ typedef struct { extern "C" { #endif -extern UINT8 fdcdummyread; +void nvitem_fdcbusy(UINT id); void IOOUTCALL fdc_o(UINT port, REG8 value); // x1_fdc_w REG8 IOINPCALL fdc_i(UINT port); // x1_fdc_r