--- np2/cbus/sasiio.c 2004/01/22 01:54:38 1.2 +++ np2/cbus/sasiio.c 2004/01/28 23:36:13 1.5 @@ -329,6 +329,7 @@ static void IOOUTCALL sasiio_o80(UINT po sasi_datawrite(dat); break; } + (void)port; } static void IOOUTCALL sasiio_o82(UINT port, REG8 dat) { @@ -343,6 +344,7 @@ static void IOOUTCALL sasiio_o82(UINT po TRACEOUT(("SASI reset")); } sasidmac(); + (void)port; } static REG8 IOINPCALL sasiio_i80(UINT port) { @@ -379,12 +381,14 @@ static REG8 IOINPCALL sasiio_i80(UINT po } break; } + (void)port; return(ret); } static REG8 IOINPCALL sasiio_i82(UINT port) { REG8 ret; + SXSIDEV sxsi; if (sasiio.ocr & SASIOCR_NRDSW) { ret = sasiio.isrint; @@ -411,11 +415,26 @@ static REG8 IOINPCALL sasiio_i82(UINT po break; } } - return(ret); } else { - return((6 << 3) + 6); // 256/256/40MB/40MB + ret = 0; + sxsi = sxsi_getptr(0x00); // SASI-1 + if ((sxsi) && ((sxsi->type & SXSITYPE_IFMASK) == SXSITYPE_SASI)) { + ret |= (sxsi->type >> (8 - 3)) & 0x38; + } + else { + ret |= 0x38; + } + sxsi = sxsi_getptr(0x01); // SASI-2 + if ((sxsi) && ((sxsi->type & SXSITYPE_IFMASK) == SXSITYPE_SASI)) { + ret |= (sxsi->type >> 8) & 7; + } + else { + ret |= 7; + } } + (void)port; + return(ret); } @@ -455,6 +474,5 @@ void sasiio_bind(void) { iocore_attachinp(0x0082, sasiio_i82); } } - #endif