--- np2/bios/sxsibios.c 2004/01/22 01:10:03 1.1 +++ np2/bios/sxsibios.c 2004/01/22 08:40:30 1.3 @@ -130,6 +130,7 @@ static REG8 sxsibios_format(UINT type, S static REG8 sxsibios_succeed(UINT type, SXSIDEV sxsi) { + (void)type; (void)sxsi; return(0x00); } @@ -200,19 +201,24 @@ static const SXSIFUNC sasifunc[16] = { REG8 sasibios_operate(void) { - SXSIDEV sxsi; UINT type; + SXSIDEV sxsi; - sxsi = sxsi_getptr(CPU_AL); - if (sxsi == NULL) { - return(0x60); + if (pccore.hddif & PCHDD_IDE) { + type = SXSIBIOS_IDE; } - type = SXSIBIOS_IDE; #if defined(SUPPORT_SASI) - if (pccore.hddif & PCHDD_SASI) { + else if (pccore.hddif & PCHDD_SASI) { type = SXSIBIOS_SASI; } #endif + else { + return(0x60); + } + sxsi = sxsi_getptr(CPU_AL); + if (sxsi == NULL) { + return(0x60); + } return((*sasifunc[CPU_AH & 0x0f])(type, sxsi)); } @@ -267,6 +273,7 @@ static REG8 scsibios_sense(UINT type, SX CPU_DH = sxsi->surfaces; CPU_DL = sxsi->sectors; } + (void)type; return(0x00); } @@ -309,6 +316,9 @@ REG8 scsibios_operate(void) { SXSIDEV sxsi; + if (!(pccore.hddif & PCHDD_SCSI)) { + return(0x60); + } sxsi = sxsi_getptr(CPU_AL); if (sxsi == NULL) { return(0x60);