--- np2/io/fdc.h 2003/12/08 00:55:32 1.2 +++ np2/io/fdc.h 2005/02/07 14:46:11 1.8 @@ -52,7 +52,10 @@ enum { FDCRLT_DD = 0x200000, FDCRLT_CM = 0x400000, - FDCRLT_EXT = 0x80000000, + FDCRLT_NT = 0x80000000, + FDCRLT_AT = 0x00000040, + FDCRLT_IC = 0x00000080, + FDCRLT_AI = 0x000000c0, FDCSTAT_CB = 0x10, FDCSTAT_NDM = 0x20, @@ -61,6 +64,11 @@ enum { }; typedef struct { + UINT8 equip; + UINT8 support144; + UINT8 ctrlfd; + UINT8 padding; + UINT8 us, hd; UINT8 mt, mf, sk; UINT8 eot, gpl, dtl; @@ -73,8 +81,14 @@ typedef struct { UINT8 lastdata; UINT8 tc; + UINT8 crcn; + UINT8 ctrlreg; + UINT8 chgreg; + UINT8 reg144; + UINT32 stat[4]; UINT8 treg[4]; + UINT8 rpm[4]; int event; int cmdp; @@ -85,18 +99,10 @@ typedef struct { int bufcnt; UINT8 cmd; - BYTE cmds[15]; - BYTE data[16]; - BYTE buf[0x8000]; - - UINT8 ctrlfd; - UINT8 crcn; + UINT8 cmds[15]; + UINT8 data[16]; - UINT8 ctrlreg; - UINT8 busy; - - UINT8 chgreg; - UINT8 rpm; // 1.44 + UINT8 buf[0x8000]; } _FDC, *FDC; @@ -106,18 +112,19 @@ extern "C" { #define CTRL_FDMEDIA fdc.ctrlfd -void fdc_reset(void); -void fdc_bind(void); +void fdc_intwait(NEVENTITEM item); + void fdc_interrupt(void); -void DMACCALL fdc_DataRegWrite(REG8 data); -REG8 DMACCALL fdc_DataRegRead(void); +void DMACCALL fdc_datawrite(REG8 data); +REG8 DMACCALL fdc_dataread(void); REG8 DMACCALL fdc_dmafunc(REG8 func); void fdcsend_error7(void); void fdcsend_success7(void); -void fdcbusy_error7(NEVENTITEM item); +void fdc_reset(void); +void fdc_bind(void); #ifdef __cplusplus }