--- np2/io/fdc.c 2004/04/14 16:35:53 1.11 +++ np2/io/fdc.c 2005/02/12 12:40:39 1.17 @@ -84,9 +84,9 @@ void fdcsend_error7(void) { fdc.event = FDCEVENT_BUFSEND; fdc.bufp = 0; fdc.bufcnt = 7; - fdc.buf[0] = (BYTE)(fdc.stat[fdc.us] >> 0); - fdc.buf[1] = (BYTE)(fdc.stat[fdc.us] >> 8); - fdc.buf[2] = (BYTE)(fdc.stat[fdc.us] >> 16); + fdc.buf[0] = (UINT8)(fdc.stat[fdc.us] >> 0); + fdc.buf[1] = (UINT8)(fdc.stat[fdc.us] >> 8); + fdc.buf[2] = (UINT8)(fdc.stat[fdc.us] >> 16); fdc.buf[3] = fdc.C; fdc.buf[4] = fdc.H; fdc.buf[5] = fdc.R; @@ -267,7 +267,7 @@ static void FDC_SenseDeviceStatus(void) } } -static BOOL writesector(void) { +static BRESULT writesector(void) { fdc.stat[fdc.us] = (fdc.hd << 2) | fdc.us; if (!FDC_DriveCheck(TRUE)) { @@ -430,7 +430,7 @@ static void FDC_SenceintStatus(void) { if (fdc_isfdcinterrupt()) { i = 0; if (fdc.stat[fdc.us]) { - fdc.buf[0] = (BYTE)fdc.stat[fdc.us]; + fdc.buf[0] = (UINT8)fdc.stat[fdc.us]; fdc.buf[1] = fdc.treg[fdc.us]; fdc.bufcnt = 2; fdc.stat[fdc.us] = 0; @@ -439,7 +439,7 @@ static void FDC_SenceintStatus(void) { else { for (; i<4; i++) { if (fdc.stat[i]) { - fdc.buf[0] = (BYTE)fdc.stat[i]; + fdc.buf[0] = (UINT8)fdc.stat[i]; fdc.buf[1] = fdc.treg[i]; fdc.bufcnt = 2; fdc.stat[i] = 0; @@ -771,7 +771,12 @@ static REG8 IOINPCALL fdc_i94(UINT port) if (((port >> 4) ^ fdc.chgreg) & 1) { return(0xff); } - return(0x40); + if (port & 0x10) { // 94 + return(0x40); + } + else { // CC + return(0x70); // readyを立てるるる + } }