Added the NCR 53C810 PCI SCSI controller;
Fixed the behavior of the CD-ROM GET CONFIGURATION command when unimplemented features are requested; Fixed the behavior of the CD-ROM READ DVD STRUCTURE command in some situations and made it correctly report 05/30/02 for incompatible format; Reworked the PS/2 Model 80 Type 2 memory handling a bit; The emulator now allocates the few MB of space needed for pages for the entire 4 GB RAM space at the startup and only memset's it to 0 on hard reset - should make sure DMA page reads from/writes to memory-mapped devices no longer crash the emulator on invalidating the memory range; Applied app applicable PCem patches; The PS/1 Model 2133 now also applies PS/2-style NMI mask handling - fixes the 486 recompiler on this machine; Added the missing #include of "cpu/cpu.h" in io.c, fixes compiling when I/O tracing is enabled.
This commit is contained in:
@@ -34,6 +34,7 @@
|
||||
#include "scsi_aha154x.h"
|
||||
#include "scsi_buslogic.h"
|
||||
#include "scsi_ncr5380.h"
|
||||
#include "scsi_ncr53c810.h"
|
||||
#include "scsi_x54x.h"
|
||||
|
||||
|
||||
@@ -73,6 +74,7 @@ static SCSI_CARD scsi_cards[] = {
|
||||
{ "[MCA] Adaptec AHA-1640", "aha1640", &aha1640_device, x54x_device_reset },
|
||||
{ "[MCA] BusLogic BT-640A", "bt640a", &buslogic_640a_device,BuslogicDeviceReset },
|
||||
{ "[PCI] BusLogic BT-958D", "bt958d", &buslogic_pci_device, BuslogicDeviceReset },
|
||||
{ "[PCI] NCR 53C810", "ncr53c810", &ncr53c810_pci_device,NULL },
|
||||
{ "[VLB] BusLogic BT-445S", "bt445s", &buslogic_445s_device,BuslogicDeviceReset },
|
||||
{ "", "", NULL, NULL },
|
||||
};
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
* 1 - BT-545S ISA;
|
||||
* 2 - BT-958D PCI
|
||||
*
|
||||
* Version: @(#)scsi_buslogic.c 1.0.30 2017/12/09
|
||||
* Version: @(#)scsi_buslogic.c 1.0.31 2017/12/10
|
||||
*
|
||||
* Authors: TheCollector1995, <mariogplayer@gmail.com>
|
||||
* Miran Grca, <mgrca8@gmail.com>
|
||||
@@ -1215,7 +1215,7 @@ BuslogicPCIWrite(int func, int addr, uint8_t val, void *p)
|
||||
}
|
||||
if (valxor & PCI_COMMAND_MEM) {
|
||||
x54x_mem_disable(dev);
|
||||
if ((bl->MMIOBase != 0) & (val & PCI_COMMAND_MEM)) {
|
||||
if ((bl->MMIOBase != 0) && (val & PCI_COMMAND_MEM)) {
|
||||
x54x_mem_set_addr(dev, bl->MMIOBase);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1927,11 +1927,18 @@ void scsi_hd_command(uint8_t id, uint8_t *cdb)
|
||||
shdc[id].temp_buffer[2] = 0x02; /*SCSI-2 compliant*/
|
||||
shdc[id].temp_buffer[3] = 0x02;
|
||||
shdc[id].temp_buffer[4] = 31;
|
||||
shdc[id].temp_buffer[6] = 1; /* 16-bit transfers supported */
|
||||
shdc[id].temp_buffer[7] = 0x20; /* Wide bus supported */
|
||||
|
||||
ide_padstr8(shdc[id].temp_buffer + 8, 8, EMU_NAME); /* Vendor */
|
||||
ide_padstr8(shdc[id].temp_buffer + 16, 16, device_identify); /* Product */
|
||||
ide_padstr8(shdc[id].temp_buffer + 32, 4, EMU_VERSION); /* Revision */
|
||||
idx = 36;
|
||||
|
||||
if (max_len == 96) {
|
||||
shdc[id].temp_buffer[4] = 91;
|
||||
idx = 96;
|
||||
}
|
||||
}
|
||||
|
||||
atapi_out:
|
||||
|
||||
Reference in New Issue
Block a user