mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Corrected incorrect handling of ATA READ LONG, READ TOC/PMA/ATIP and PIONEER READ CD-DA MSF commands.
This commit is contained in:
@@ -202,9 +202,9 @@ namespace DiscImageChef.Devices
|
|||||||
bool sense;
|
bool sense;
|
||||||
|
|
||||||
if(retry)
|
if(retry)
|
||||||
registers.command = (byte)AtaCommands.ReadLong;
|
|
||||||
else
|
|
||||||
registers.command = (byte)AtaCommands.ReadLongRetry;
|
registers.command = (byte)AtaCommands.ReadLongRetry;
|
||||||
|
else
|
||||||
|
registers.command = (byte)AtaCommands.ReadLong;
|
||||||
registers.sectorCount = 1;
|
registers.sectorCount = 1;
|
||||||
registers.cylinderHigh = (byte)((cylinder & 0xFF00) / 0x100);
|
registers.cylinderHigh = (byte)((cylinder & 0xFF00) / 0x100);
|
||||||
registers.cylinderLow = (byte)((cylinder & 0xFF) / 0x1);
|
registers.cylinderLow = (byte)((cylinder & 0xFF) / 0x1);
|
||||||
|
|||||||
@@ -292,7 +292,7 @@ namespace DiscImageChef.Devices
|
|||||||
byte[] tmpBuffer;
|
byte[] tmpBuffer;
|
||||||
bool sense;
|
bool sense;
|
||||||
|
|
||||||
if(format == 5)
|
if((format & 0x0F)== 5)
|
||||||
tmpBuffer = new byte[32768];
|
tmpBuffer = new byte[32768];
|
||||||
else
|
else
|
||||||
tmpBuffer = new byte[1024];
|
tmpBuffer = new byte[1024];
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ namespace DiscImageChef.Devices
|
|||||||
byte[] cdb = new byte[12];
|
byte[] cdb = new byte[12];
|
||||||
bool sense;
|
bool sense;
|
||||||
|
|
||||||
cdb[0] = (byte)ScsiCommands.ReadCdMsf;
|
cdb[0] = (byte)ScsiCommands.ReadCdDaMsf;
|
||||||
cdb[3] = (byte)((startMsf & 0xFF0000) >> 16);
|
cdb[3] = (byte)((startMsf & 0xFF0000) >> 16);
|
||||||
cdb[4] = (byte)((startMsf & 0xFF00) >> 8);
|
cdb[4] = (byte)((startMsf & 0xFF00) >> 8);
|
||||||
cdb[5] = (byte)(startMsf & 0xFF);
|
cdb[5] = (byte)(startMsf & 0xFF);
|
||||||
|
|||||||
Reference in New Issue
Block a user