mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
* DiscImageChef.Decoders/SCSI/MMC/Features.cs:
Correct math priority * DiscImageChef.Devices/Device/ScsiCommands.cs: Correct command size typo * DiscImageChef/Commands/DeviceInfo.cs: Add MMC GET CONFIGURATION
This commit is contained in:
@@ -1,3 +1,8 @@
|
|||||||
|
2015-11-01 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
|
* SCSI/MMC/Features.cs:
|
||||||
|
Correct math priority
|
||||||
|
|
||||||
2015-11-01 Natalia Portillo <claunia@claunia.com>
|
2015-11-01 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
* SCSI/MMC/Features.cs:
|
* SCSI/MMC/Features.cs:
|
||||||
|
|||||||
@@ -2216,7 +2216,7 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
|||||||
decoded.Version = (byte)((feature[2] & 0x3C) >> 2);
|
decoded.Version = (byte)((feature[2] & 0x3C) >> 2);
|
||||||
|
|
||||||
if (decoded.Version >= 0)
|
if (decoded.Version >= 0)
|
||||||
decoded.PhysicalInterfaceStandard = (PhysicalInterfaces)(feature[4] << 24 + feature[5] << 16 + feature[6] << 8 + feature[7]);
|
decoded.PhysicalInterfaceStandard = (PhysicalInterfaces)((feature[4] << 24) + (feature[5] << 16) + (feature[6] << 8) + feature[7]);
|
||||||
|
|
||||||
if (decoded.Version >= 1 && feature.Length >= 12)
|
if (decoded.Version >= 1 && feature.Length >= 12)
|
||||||
decoded.DBE |= (feature[8] & 0x01) == 0x01;
|
decoded.DBE |= (feature[8] & 0x01) == 0x01;
|
||||||
@@ -2358,8 +2358,8 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
|||||||
|
|
||||||
if (decoded.Version >= 0)
|
if (decoded.Version >= 0)
|
||||||
{
|
{
|
||||||
decoded.LogicalBlockSize = (uint)(feature[4] << 24 + feature[5] << 16 + feature[6] << 8 + feature[7]);
|
decoded.LogicalBlockSize = (uint)((feature[4] << 24) + (feature[5] << 16) + (feature[6] << 8) + feature[7]);
|
||||||
decoded.Blocking = (ushort)(feature[8] << 8 + feature[9]);
|
decoded.Blocking = (ushort)((feature[8] << 8) + feature[9]);
|
||||||
decoded.PP |= (feature[10] & 0x01) == 0x01;
|
decoded.PP |= (feature[10] & 0x01) == 0x01;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2483,9 +2483,9 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
|||||||
|
|
||||||
if (decoded.Version >= 1)
|
if (decoded.Version >= 1)
|
||||||
{
|
{
|
||||||
decoded.LastLBA = (uint)(feature[4] << 24 + feature[5] << 16 + feature[6] << 8 + feature[7]);
|
decoded.LastLBA = (uint)((feature[4] << 24) + (feature[5] << 16) + (feature[6] << 8) + feature[7]);
|
||||||
decoded.LogicalBlockSize = (uint)(feature[8] << 24 + feature[9] << 16 + feature[10] << 8 + feature[11]);
|
decoded.LogicalBlockSize = (uint)((feature[8] << 24) + (feature[9] << 16) + (feature[10] << 8) + feature[11]);
|
||||||
decoded.Blocking = (ushort)(feature[12] << 8 + feature[13]);
|
decoded.Blocking = (ushort)((feature[12] << 8) + feature[13]);
|
||||||
decoded.PP |= (feature[14] & 0x01) == 0x01;
|
decoded.PP |= (feature[14] & 0x01) == 0x01;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2516,7 +2516,7 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
|||||||
|
|
||||||
if (decoded.Version >= 1)
|
if (decoded.Version >= 1)
|
||||||
{
|
{
|
||||||
decoded.DataTypeSupported = (ushort)(feature[4] << 8 + feature[5]);
|
decoded.DataTypeSupported = (ushort)((feature[4] << 8) + feature[5]);
|
||||||
decoded.BUF |= (feature[6] & 0x01) == 0x01;
|
decoded.BUF |= (feature[6] & 0x01) == 0x01;
|
||||||
decoded.LinkSizes = new byte[feature[7]];
|
decoded.LinkSizes = new byte[feature[7]];
|
||||||
if (feature.Length > (feature[7] + 8))
|
if (feature.Length > (feature[7] + 8))
|
||||||
@@ -2646,8 +2646,8 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
|||||||
|
|
||||||
if (decoded.Version >= 0)
|
if (decoded.Version >= 0)
|
||||||
{
|
{
|
||||||
decoded.LogicalBlockSize = (uint)(feature[4] << 24 + feature[5] << 16 + feature[6] << 8 + feature[7]);
|
decoded.LogicalBlockSize = (uint)((feature[4] << 24) + (feature[5] << 16) + (feature[6] << 8) + feature[7]);
|
||||||
decoded.Blocking = (ushort)(feature[8] << 8 + feature[9]);
|
decoded.Blocking = (ushort)((feature[8] << 8) + feature[9]);
|
||||||
decoded.PP |= (feature[10] & 0x01) == 0x01;
|
decoded.PP |= (feature[10] & 0x01) == 0x01;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2764,7 +2764,7 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
|||||||
{
|
{
|
||||||
decoded.DRTDM |= (feature[4] & 0x01) == 0x01;
|
decoded.DRTDM |= (feature[4] & 0x01) == 0x01;
|
||||||
decoded.DBICacheZones = feature[5];
|
decoded.DBICacheZones = feature[5];
|
||||||
decoded.Entries = (ushort)(feature[6] << 8 + feature[7]);
|
decoded.Entries = (ushort)((feature[6] << 8) + feature[7]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return decoded;
|
return decoded;
|
||||||
@@ -2892,7 +2892,7 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
|||||||
decoded.TestWrite |= (feature[4] & 0x04) == 0x04;
|
decoded.TestWrite |= (feature[4] & 0x04) == 0x04;
|
||||||
decoded.CDRW |= (feature[4] & 0x02) == 0x02;
|
decoded.CDRW |= (feature[4] & 0x02) == 0x02;
|
||||||
decoded.RWSubchannel |= (feature[4] & 0x01) == 0x01;
|
decoded.RWSubchannel |= (feature[4] & 0x01) == 0x01;
|
||||||
decoded.DataTypeSupported = (ushort)(feature[6] << 8 + feature[7]);
|
decoded.DataTypeSupported = (ushort)((feature[6] << 8) + feature[7]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (decoded.Version >= 2)
|
if (decoded.Version >= 2)
|
||||||
@@ -2935,7 +2935,7 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
|||||||
decoded.TestWrite |= (feature[4] & 0x04) == 0x04;
|
decoded.TestWrite |= (feature[4] & 0x04) == 0x04;
|
||||||
decoded.CDRW |= (feature[4] & 0x02) == 0x02;
|
decoded.CDRW |= (feature[4] & 0x02) == 0x02;
|
||||||
decoded.RW |= (feature[4] & 0x01) == 0x01;
|
decoded.RW |= (feature[4] & 0x01) == 0x01;
|
||||||
decoded.MaxCueSheet = (uint)(feature[5] << 16 + feature[6] << 8 + feature[7]);
|
decoded.MaxCueSheet = (uint)((feature[5] << 16) + (feature[6] << 8) + feature[7]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (decoded.Version >= 1)
|
if (decoded.Version >= 1)
|
||||||
@@ -3541,7 +3541,7 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
|||||||
decoded.Scan |= (feature[4] & 0x04) == 0x04;
|
decoded.Scan |= (feature[4] & 0x04) == 0x04;
|
||||||
decoded.SCM |= (feature[4] & 0x02) == 0x02;
|
decoded.SCM |= (feature[4] & 0x02) == 0x02;
|
||||||
decoded.SV |= (feature[4] & 0x01) == 0x01;
|
decoded.SV |= (feature[4] & 0x01) == 0x01;
|
||||||
decoded.VolumeLevels = (ushort)(feature[6] << 8 + feature[7]);
|
decoded.VolumeLevels = (ushort)((feature[6] << 8) + feature[7]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return decoded;
|
return decoded;
|
||||||
@@ -3600,7 +3600,7 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
|||||||
if (decoded.Version >= 1 && feature.Length >= 8)
|
if (decoded.Version >= 1 && feature.Length >= 8)
|
||||||
{
|
{
|
||||||
decoded.Group3 |= (feature[4] & 0x01) == 0x01;
|
decoded.Group3 |= (feature[4] & 0x01) == 0x01;
|
||||||
decoded.UnitLength = (ushort)(feature[6] << 8 + feature[7]);
|
decoded.UnitLength = (ushort)((feature[6] << 8) + feature[7]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return decoded;
|
return decoded;
|
||||||
@@ -3757,7 +3757,7 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
|||||||
{
|
{
|
||||||
decoded.DCBs = new uint[feature[3] / 4];
|
decoded.DCBs = new uint[feature[3] / 4];
|
||||||
for (int i = 0; i < decoded.DCBs.Length; i++)
|
for (int i = 0; i < decoded.DCBs.Length; i++)
|
||||||
decoded.DCBs[i] = (uint)(feature[0 + 4 + i * 4] << 24 + feature[1 + 4 + i * 4] << 16 + feature[2 + 4 + i * 4] << 8 + feature[3 + 4 + i * 4]);
|
decoded.DCBs[i] = (uint)((feature[0 + 4 + i * 4] << 24) + (feature[1 + 4 + i * 4] << 16) + (feature[2 + 4 + i * 4] << 8) + feature[3 + 4 + i * 4]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return decoded;
|
return decoded;
|
||||||
@@ -3815,13 +3815,13 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
|||||||
|
|
||||||
if (decoded.Version >= 0)
|
if (decoded.Version >= 0)
|
||||||
{
|
{
|
||||||
decoded.Century = (ushort)(feature[4] << 8 + feature[5]);
|
decoded.Century = (ushort)((feature[4] << 8) + feature[5]);
|
||||||
decoded.Year = (ushort)(feature[6] << 8 + feature[7]);
|
decoded.Year = (ushort)((feature[6] << 8) + feature[7]);
|
||||||
decoded.Month = (ushort)(feature[8] << 8 + feature[9]);
|
decoded.Month = (ushort)((feature[8] << 8) + feature[9]);
|
||||||
decoded.Day = (ushort)(feature[10] << 8 + feature[11]);
|
decoded.Day = (ushort)((feature[10] << 8) + feature[11]);
|
||||||
decoded.Hour = (ushort)(feature[12] << 8 + feature[13]);
|
decoded.Hour = (ushort)((feature[12] << 8) + feature[13]);
|
||||||
decoded.Minute = (ushort)(feature[14] << 8 + feature[15]);
|
decoded.Minute = (ushort)((feature[14] << 8) + feature[15]);
|
||||||
decoded.Second = (ushort)(feature[16] << 8 + feature[17]);
|
decoded.Second = (ushort)((feature[16] << 8) + feature[17]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return decoded;
|
return decoded;
|
||||||
@@ -3977,7 +3977,7 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
|||||||
if (feature[5] * 2 + 6 == feature.Length)
|
if (feature[5] * 2 + 6 == feature.Length)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < feature[5]; i++)
|
for (int i = 0; i < feature[5]; i++)
|
||||||
decoded.Profiles[i] = (ushort)(feature[0 + 6 + 2 * i] << 8 + feature[1 + 6 + 2 * i]);
|
decoded.Profiles[i] = (ushort)((feature[0 + 6 + 2 * i] << 8) + feature[1 + 6 + 2 * i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5756,18 +5756,18 @@ namespace DiscImageChef.Decoders.SCSI.MMC
|
|||||||
public static SeparatedFeatures Separate(byte[] response)
|
public static SeparatedFeatures Separate(byte[] response)
|
||||||
{
|
{
|
||||||
SeparatedFeatures dec = new SeparatedFeatures();
|
SeparatedFeatures dec = new SeparatedFeatures();
|
||||||
dec.DataLength = (uint)(response[0] << 24 + response[1] << 16 + response[2] << 8 + response[4]);
|
dec.DataLength = (uint)((response[0] << 24) + (response[1] << 16) + (response[2] << 8) + response[4]);
|
||||||
dec.CurrentProfile = (ushort)(response[6] << 8 + response[7]);
|
dec.CurrentProfile = (ushort)((response[6] << 8) + response[7]);
|
||||||
uint offset = 8;
|
uint offset = 8;
|
||||||
List<FeatureDescriptor> descLst = new List<FeatureDescriptor>();
|
List<FeatureDescriptor> descLst = new List<FeatureDescriptor>();
|
||||||
|
|
||||||
while (offset < response.Length)
|
while (offset < response.Length)
|
||||||
{
|
{
|
||||||
FeatureDescriptor desc = new FeatureDescriptor();
|
FeatureDescriptor desc = new FeatureDescriptor();
|
||||||
desc.Code = (ushort)(response[offset + 0] << 8 + response[offset + 1]);
|
desc.Code = (ushort)((response[offset + 0] << 8) + response[offset + 1]);
|
||||||
desc.Data = new byte[response[offset + 3] + 4];
|
desc.Data = new byte[response[offset + 3] + 4];
|
||||||
Array.Copy(response, offset + 4, desc.Data, 0, desc.Data.Length + 4);
|
Array.Copy(response, offset, desc.Data, 0, desc.Data.Length);
|
||||||
offset += (uint)(4 + desc.Data.Length);
|
offset += (uint)(desc.Data.Length);
|
||||||
|
|
||||||
descLst.Add(desc);
|
descLst.Add(desc);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,8 @@
|
|||||||
|
2015-11-01 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
|
* Device/ScsiCommands.cs:
|
||||||
|
Correct command size typo
|
||||||
|
|
||||||
2015-11-01 Natalia Portillo <claunia@claunia.com>
|
2015-11-01 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
* Enums.cs:
|
* Enums.cs:
|
||||||
|
|||||||
@@ -494,7 +494,7 @@ namespace DiscImageChef.Devices
|
|||||||
if (sense)
|
if (sense)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
ushort confLength = (ushort)(((int)buffer[2] << 8) + buffer[3] + 2);
|
ushort confLength = (ushort)(((int)buffer[2] << 8) + buffer[3] + 4);
|
||||||
buffer = new byte[confLength];
|
buffer = new byte[confLength];
|
||||||
cdb[7] = (byte)((buffer.Length & 0xFF00) >> 8);
|
cdb[7] = (byte)((buffer.Length & 0xFF00) >> 8);
|
||||||
cdb[8] = (byte)(buffer.Length & 0xFF);
|
cdb[8] = (byte)(buffer.Length & 0xFF);
|
||||||
|
|||||||
@@ -1,3 +1,8 @@
|
|||||||
|
2015-11-01 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
|
* Commands/DeviceInfo.cs:
|
||||||
|
Add MMC GET CONFIGURATION
|
||||||
|
|
||||||
2015-10-31 Natalia Portillo <claunia@claunia.com>
|
2015-10-31 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
* Commands/DeviceInfo.cs:
|
* Commands/DeviceInfo.cs:
|
||||||
|
|||||||
@@ -446,6 +446,213 @@ namespace DiscImageChef.Commands
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (devType == DiscImageChef.Decoders.SCSI.PeripheralDeviceTypes.MultiMediaDevice)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
byte[] confBuf;
|
||||||
|
sense = dev.GetConfiguration(out confBuf, out senseBuf, dev.Timeout, out duration);
|
||||||
|
|
||||||
|
if (!sense)
|
||||||
|
{
|
||||||
|
Decoders.SCSI.MMC.Features.SeparatedFeatures ftr = Decoders.SCSI.MMC.Features.Separate(confBuf);
|
||||||
|
|
||||||
|
DicConsole.DebugWriteLine("Device-Info command", "GET CONFIGURATION length is {0} bytes", ftr.DataLength);
|
||||||
|
DicConsole.DebugWriteLine("Device-Info command", "GET CONFIGURATION current profile is 0x{0:X4} bytes", ftr.CurrentProfile);
|
||||||
|
if (ftr.Descriptors != null)
|
||||||
|
{
|
||||||
|
DicConsole.WriteLine("SCSI MMC GET CONFIGURATION Features:");
|
||||||
|
foreach (Decoders.SCSI.MMC.Features.FeatureDescriptor desc in ftr.Descriptors)
|
||||||
|
{
|
||||||
|
DicConsole.DebugWriteLine("Device-Info command", "Feature 0x{0:X4}", desc.Code);
|
||||||
|
|
||||||
|
switch (desc.Code)
|
||||||
|
{
|
||||||
|
case 0x0000:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0000(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0001:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0001(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0002:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0002(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0003:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0003(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0004:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0004(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0010:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0010(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x001D:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_001D(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x001E:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_001E(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x001F:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_001F(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0020:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0020(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0021:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0021(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0022:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0022(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0023:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0023(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0024:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0024(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0025:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0025(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0026:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0026(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0027:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0027(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0028:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0028(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0029:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0029(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x002A:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_002A(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x002B:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_002B(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x002C:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_002C(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x002D:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_002D(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x002E:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_002E(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x002F:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_002F(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0030:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0030(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0031:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0031(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0032:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0032(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0033:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0033(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0035:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0035(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0037:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0037(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0038:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0038(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x003A:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_003A(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x003B:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_003B(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0040:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0040(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0041:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0041(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0042:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0042(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0050:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0050(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0051:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0051(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0080:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0080(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0100:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0100(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0101:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0101(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0102:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0102(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0103:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0103(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0104:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0104(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0105:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0105(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0106:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0106(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0107:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0107(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0108:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0108(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0109:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0109(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x010A:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_010A(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x010B:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_010B(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x010C:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_010C(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x010D:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_010D(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x010E:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_010E(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0110:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0110(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0113:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0113(desc.Data));
|
||||||
|
break;
|
||||||
|
case 0x0142:
|
||||||
|
DicConsole.WriteLine(Decoders.SCSI.MMC.Features.Prettify_0142(desc.Data));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
DicConsole.WriteLine("Found unknown feature code {0:X4}h", desc.Code);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
DicConsole.DebugWriteLine("Device-Info command", "GET CONFIGURATION returned no feature descriptors");
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|||||||
Reference in New Issue
Block a user