From c30a547b177030f65843de12ea37f5f9c6d1ec9f Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Mon, 18 Dec 2017 17:53:46 +0000 Subject: [PATCH] Corrected incorrect handling of ATA READ LONG, READ TOC/PMA/ATIP and PIONEER READ CD-DA MSF commands. --- DiscImageChef.Devices/Device/AtaCommands/AtaCHS.cs | 4 ++-- DiscImageChef.Devices/Device/ScsiCommands/MMC.cs | 2 +- DiscImageChef.Devices/Device/ScsiCommands/Pioneer.cs | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/DiscImageChef.Devices/Device/AtaCommands/AtaCHS.cs b/DiscImageChef.Devices/Device/AtaCommands/AtaCHS.cs index ef1e956e..78bad773 100644 --- a/DiscImageChef.Devices/Device/AtaCommands/AtaCHS.cs +++ b/DiscImageChef.Devices/Device/AtaCommands/AtaCHS.cs @@ -202,9 +202,9 @@ namespace DiscImageChef.Devices bool sense; if(retry) - registers.command = (byte)AtaCommands.ReadLong; - else registers.command = (byte)AtaCommands.ReadLongRetry; + else + registers.command = (byte)AtaCommands.ReadLong; registers.sectorCount = 1; registers.cylinderHigh = (byte)((cylinder & 0xFF00) / 0x100); registers.cylinderLow = (byte)((cylinder & 0xFF) / 0x1); diff --git a/DiscImageChef.Devices/Device/ScsiCommands/MMC.cs b/DiscImageChef.Devices/Device/ScsiCommands/MMC.cs index 19c6a727..c70ff8cf 100644 --- a/DiscImageChef.Devices/Device/ScsiCommands/MMC.cs +++ b/DiscImageChef.Devices/Device/ScsiCommands/MMC.cs @@ -292,7 +292,7 @@ namespace DiscImageChef.Devices byte[] tmpBuffer; bool sense; - if(format == 5) + if((format & 0x0F)== 5) tmpBuffer = new byte[32768]; else tmpBuffer = new byte[1024]; diff --git a/DiscImageChef.Devices/Device/ScsiCommands/Pioneer.cs b/DiscImageChef.Devices/Device/ScsiCommands/Pioneer.cs index 580e939a..de9ea032 100644 --- a/DiscImageChef.Devices/Device/ScsiCommands/Pioneer.cs +++ b/DiscImageChef.Devices/Device/ScsiCommands/Pioneer.cs @@ -92,7 +92,7 @@ namespace DiscImageChef.Devices byte[] cdb = new byte[12]; bool sense; - cdb[0] = (byte)ScsiCommands.ReadCdMsf; + cdb[0] = (byte)ScsiCommands.ReadCdDaMsf; cdb[3] = (byte)((startMsf & 0xFF0000) >> 16); cdb[4] = (byte)((startMsf & 0xFF00) >> 8); cdb[5] = (byte)(startMsf & 0xFF);