The WIN_DRIVE_DIAGNOSTICS command now behaves correctly (but I'm redoing the IDE emulation anyway);

The IBM PS/2 Model 486 now uses its own rom set ID;
The AHA-154x and Buslogic SCSI controllers no longer stop scanning for mailboxes when in aggressive round robin mode;
PIC interrupt processing fixes - no more IRQ-caused triple faults in Windows 98 SE.
This commit is contained in:
OBattler
2017-09-08 00:17:49 +02:00
parent 17d9c5c463
commit 40e7a0efab
10 changed files with 240 additions and 156 deletions

View File

@@ -1489,7 +1489,7 @@ BuslogicWrite(uint16_t Port, uint8_t Val, void *p)
bl->scan_restart = 0;
}
else {
bl->scan_restart = 1;
bl->scan_restart = bl->LocalRAM.structured.autoSCSIData.fAggressiveRoundRobinMode ? 0 : 1;
}
}
return;
@@ -2571,8 +2571,18 @@ BuslogicEventRestart:
bl->evt = thread_create_event();
BuslogicScanRestart:
while (BuslogicProcessMailbox(bl) && bl->MailboxCount)
if (bl->LocalRAM.structured.autoSCSIData.fAggressiveRoundRobinMode)
{
while (bl->MailboxCount)
{
BuslogicProcessMailbox(bl);
}
}
else
{
while (BuslogicProcessMailbox(bl) && bl->MailboxCount)
{
}
}
if (!bl->MailboxCount)