Fixed some bugs in cdrom.c;

Fixed (hopefully) pass through in the Windows CD-ROM IOCtl code;
Fixed the legacy I/O address handling on the BT-958D, now it behaves correctly - legacy I/O address disabled by default, can be enabled in AutoSCSI (removed the setting from the device config struct);
The BT-958D PCI-configured I/O space now correctly gets 32 ports and not 4.
This commit is contained in:
OBattler
2017-10-23 01:36:00 +02:00
parent 5155dc605e
commit bffc39ddbf
6 changed files with 97 additions and 118 deletions

View File

@@ -2569,8 +2569,8 @@ cdrom_readtoc_fallback:
case GPCMD_READ_HEADER:
SCSIPhase = SCSI_PHASE_DATA_IN;
alloc_length = ((cdb[7] << 8) | cdb[8]) << 3;
cdrom_buf_alloc(id, 65536);
alloc_length = ((cdb[7] << 8) | cdb[8]);
cdrom_buf_alloc(id, 8);
if (cdrom_drives[id].handler->pass_through)
{
@@ -2582,7 +2582,7 @@ cdrom_readtoc_fallback:
}
else
{
cdrom[id].sector_len = (cdb[7] << 8) | cdb[8];
cdrom[id].sector_len = 1;
cdrom[id].sector_pos = (cdb[2] << 24) | (cdb[3] << 16) | (cdb[4]<<8) | cdb[5];
if (msf)
{