diff --git a/ATA/Identify.cs b/ATA/Identify.cs
index 22e3076..9f850b0 100644
--- a/ATA/Identify.cs
+++ b/ATA/Identify.cs
@@ -70,7 +70,8 @@ namespace Aaru.Decoders.ATA
CommonTypes.Structs.Devices.ATA.Identify.IdentifyDevice ATAID = IdentifyDeviceResponse.Value;
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.NonMagnetic))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.GeneralConfigurationBit.NonMagnetic))
if((ushort)ATAID.GeneralConfiguration != 0x848A)
atapi = true;
else
@@ -120,8 +121,10 @@ namespace Aaru.Decoders.ATA
{
// Obsolete in ATA-2, if present, device supports ATA-1
ata1 |=
- ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.FastIDE) ||
- ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.SlowIDE) ||
+ ATAID.GeneralConfiguration.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.GeneralConfigurationBit.FastIDE) ||
+ ATAID.GeneralConfiguration.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.GeneralConfigurationBit.SlowIDE) ||
ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
UltraFastIDE);
@@ -656,65 +659,81 @@ namespace Aaru.Decoders.ATA
else if(!cfa)
{
if(minatalevel >= 5)
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
- IncompleteResponse))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ IncompleteResponse))
sb.AppendLine("Incomplete identify response");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.NonMagnetic))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.GeneralConfigurationBit.NonMagnetic))
sb.AppendLine("Device uses non-magnetic media");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.Removable))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.GeneralConfigurationBit.Removable))
sb.AppendLine("Device is removable");
if(minatalevel <= 5)
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.Fixed))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.GeneralConfigurationBit.Fixed))
sb.AppendLine("Device is fixed");
if(ata1)
{
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.SlowIDE))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.GeneralConfigurationBit.SlowIDE))
sb.AppendLine("Device transfer rate is <= 5 Mb/s");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.FastIDE))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.GeneralConfigurationBit.FastIDE))
sb.AppendLine("Device transfer rate is > 5 Mb/s but <= 10 Mb/s");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
- UltraFastIDE))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ UltraFastIDE))
sb.AppendLine("Device transfer rate is > 10 Mb/s");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
- SoftSector))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ SoftSector))
sb.AppendLine("Device is soft sectored");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
- HardSector))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ HardSector))
sb.AppendLine("Device is hard sectored");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.NotMFM))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.GeneralConfigurationBit.NotMFM))
sb.AppendLine("Device is not MFM encoded");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
- FormatGapReq))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ FormatGapReq))
sb.AppendLine("Format speed tolerance gap is required");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
- TrackOffset))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ TrackOffset))
sb.AppendLine("Track offset option is available");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
- DataStrobeOffset))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ DataStrobeOffset))
sb.AppendLine("Data strobe offset option is available");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
- RotationalSpeedTolerance))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ RotationalSpeedTolerance))
sb.AppendLine("Rotational speed tolerance is higher than 0,5%");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
- SpindleControl))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ SpindleControl))
sb.AppendLine("Spindle motor control is implemented");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
- HighHeadSwitch))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ HighHeadSwitch))
sb.AppendLine("Head switch time is bigger than 15 µs.");
}
}
@@ -971,7 +990,8 @@ namespace Aaru.Decoders.ATA
if(ATAID.Capabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CapabilitiesBit2.MustBeSet) &&
!ATAID.Capabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CapabilitiesBit2.MustBeClear))
- if(ATAID.Capabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CapabilitiesBit2.SpecificStandbyTimer))
+ if(ATAID.Capabilities2.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CapabilitiesBit2.SpecificStandbyTimer))
sb.AppendLine().Append("Device indicates a specific minimum standby timer value");
if(ATAID.Capabilities3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CapabilitiesBit3.MultipleValid))
@@ -984,13 +1004,15 @@ namespace Aaru.Decoders.ATA
ATAID.MultipleMaxSectors);
}
- if(ATAID.Capabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CapabilitiesBit.PhysicalAlignment1) ||
+ if(ATAID.Capabilities.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CapabilitiesBit.PhysicalAlignment1) ||
ATAID.Capabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CapabilitiesBit.PhysicalAlignment0))
sb.AppendLine().AppendFormat("Long Physical Alignment setting is {0}",
(ushort)ATAID.Capabilities & 0x03);
if(ata1)
- if(ATAID.TrustedComputing.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.TrustedComputingBit.TrustedComputing))
+ if(ATAID.TrustedComputing.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.TrustedComputingBit.TrustedComputing))
sb.AppendLine().Append("Device supports doubleword I/O");
if(atapi)
@@ -1005,7 +1027,8 @@ namespace Aaru.Decoders.ATA
)
sb.AppendLine().Append("ATAPI device supports overlapped operations");
- if(ATAID.Capabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CapabilitiesBit.RequiresATASoftReset))
+ if(ATAID.Capabilities.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CapabilitiesBit.RequiresATASoftReset))
sb.AppendLine().Append("ATAPI device requires ATA software reset");
}
@@ -1278,35 +1301,44 @@ namespace Aaru.Decoders.ATA
{
if(!ATAID.SATACapabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit.Clear))
{
- if(ATAID.SATACapabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit.Gen1Speed))
+ if(ATAID.SATACapabilities.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATACapabilitiesBit.Gen1Speed))
sb.AppendLine().Append("SATA 1.5Gb/s is supported");
- if(ATAID.SATACapabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit.Gen2Speed))
+ if(ATAID.SATACapabilities.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATACapabilitiesBit.Gen2Speed))
sb.AppendLine().Append("SATA 3.0Gb/s is supported");
- if(ATAID.SATACapabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit.Gen3Speed))
+ if(ATAID.SATACapabilities.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATACapabilitiesBit.Gen3Speed))
sb.AppendLine().Append("SATA 6.0Gb/s is supported");
- if(ATAID.SATACapabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit.PowerReceipt))
+ if(ATAID.SATACapabilities.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATACapabilitiesBit.PowerReceipt))
sb.AppendLine().Append("Receipt of host initiated power management requests is supported");
- if(ATAID.SATACapabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit.PHYEventCounter))
+ if(ATAID.SATACapabilities.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATACapabilitiesBit.PHYEventCounter))
sb.AppendLine().Append("PHY Event counters are supported");
- if(ATAID.SATACapabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit.HostSlumbTrans))
+ if(ATAID.SATACapabilities.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATACapabilitiesBit.HostSlumbTrans))
sb.AppendLine().Append("Supports host automatic partial to slumber transitions is supported");
- if(ATAID.SATACapabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit.DevSlumbTrans))
+ if(ATAID.SATACapabilities.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATACapabilitiesBit.DevSlumbTrans))
sb.AppendLine().Append("Supports device automatic partial to slumber transitions is supported");
if(ATAID.SATACapabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit.NCQ))
{
sb.AppendLine().Append("NCQ is supported");
- if(ATAID.SATACapabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit.NCQPriority))
+ if(ATAID.SATACapabilities.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATACapabilitiesBit.NCQPriority))
sb.AppendLine().Append("NCQ priority is supported");
- if(ATAID.SATACapabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit.UnloadNCQ))
+ if(ATAID.SATACapabilities.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATACapabilitiesBit.UnloadNCQ))
sb.AppendLine().Append("Unload is supported with outstanding NCQ commands");
}
}
@@ -1314,24 +1346,29 @@ namespace Aaru.Decoders.ATA
if(!ATAID.SATACapabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit2.Clear)
)
{
- if(!ATAID.SATACapabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit.Clear) &&
+ if(!ATAID.SATACapabilities.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATACapabilitiesBit.Clear) &&
ATAID.SATACapabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit.NCQ))
{
- if(ATAID.SATACapabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit2.NCQMgmt))
+ if(ATAID.SATACapabilities2.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATACapabilitiesBit2.NCQMgmt))
sb.AppendLine().Append("NCQ queue management is supported");
- if(ATAID.SATACapabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit2.NCQStream))
+ if(ATAID.SATACapabilities2.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATACapabilitiesBit2.NCQStream))
sb.AppendLine().Append("NCQ streaming is supported");
}
if(atapi)
{
- if(ATAID.SATACapabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit2.
- HostEnvDetect))
+ if(ATAID.SATACapabilities2.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATACapabilitiesBit2.
+ HostEnvDetect))
sb.AppendLine().Append("ATAPI device supports host environment detection");
- if(ATAID.SATACapabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit2.
- DevAttSlimline))
+ if(ATAID.SATACapabilities2.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATACapabilitiesBit2.
+ DevAttSlimline))
sb.AppendLine().Append("ATAPI device supports attention on slimline connected devices");
}
@@ -1482,7 +1519,8 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("Power management is supported");
- if(ATAID.EnabledCommandSet.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit.PowerManagement))
+ if(ATAID.EnabledCommandSet.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit.PowerManagement))
sb.Append(" and enabled");
}
@@ -1490,7 +1528,8 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("Removable media feature set is supported");
- if(ATAID.EnabledCommandSet.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit.RemovableMedia))
+ if(ATAID.EnabledCommandSet.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit.RemovableMedia))
sb.Append(" and enabled");
}
@@ -1520,7 +1559,8 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("FLUSH CACHE is supported");
- if(ATAID.EnabledCommandSet2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit2.FlushCache))
+ if(ATAID.EnabledCommandSet2.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit2.FlushCache))
sb.Append(" and enabled");
}
@@ -1528,7 +1568,8 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("FLUSH CACHE EXT is supported");
- if(ATAID.EnabledCommandSet2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit2.FlushCacheExt))
+ if(ATAID.EnabledCommandSet2.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit2.FlushCacheExt))
sb.Append(" and enabled");
}
@@ -1557,7 +1598,8 @@ namespace Aaru.Decoders.ATA
sb.Append(" and enabled");
}
- if(ATAID.CommandSet2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit2.AddressOffsetReservedAreaBoot))
+ if(ATAID.CommandSet2.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit2.AddressOffsetReservedAreaBoot))
{
sb.AppendLine().Append("Address Offset Reserved Area Boot is supported");
@@ -1566,18 +1608,21 @@ namespace Aaru.Decoders.ATA
sb.Append(" and enabled");
}
- if(ATAID.CommandSet2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit2.SetFeaturesRequired))
+ if(ATAID.CommandSet2.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit2.SetFeaturesRequired))
sb.AppendLine().Append("SET FEATURES is required before spin-up");
if(ATAID.CommandSet2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit2.PowerUpInStandby))
{
sb.AppendLine().Append("Power-up in standby is supported");
- if(ATAID.EnabledCommandSet2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit2.PowerUpInStandby))
+ if(ATAID.EnabledCommandSet2.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit2.PowerUpInStandby))
sb.Append(" and enabled");
}
- if(ATAID.CommandSet2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit2.RemovableNotification))
+ if(ATAID.CommandSet2.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit2.RemovableNotification))
{
sb.AppendLine().Append("Removable Media Status Notification is supported");
@@ -1598,7 +1643,8 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("CompactFlash feature set is supported");
- if(ATAID.EnabledCommandSet2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit2.CompactFlash))
+ if(ATAID.EnabledCommandSet2.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit2.CompactFlash))
sb.Append(" and enabled");
}
@@ -1606,7 +1652,8 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("READ DMA QUEUED and WRITE DMA QUEUED are supported");
- if(ATAID.EnabledCommandSet2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit2.RWQueuedDMA))
+ if(ATAID.EnabledCommandSet2.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit2.RWQueuedDMA))
sb.Append(" and enabled");
}
@@ -1614,7 +1661,8 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("DOWNLOAD MICROCODE is supported");
- if(ATAID.EnabledCommandSet2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit2.DownloadMicrocode))
+ if(ATAID.EnabledCommandSet2.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit2.DownloadMicrocode))
sb.Append(" and enabled");
}
}
@@ -1627,7 +1675,8 @@ namespace Aaru.Decoders.ATA
sb.Append(" and enabled");
}
- if(ATAID.SCTCommandTransport.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SCTCommandTransportBit.Supported))
+ if(ATAID.SCTCommandTransport.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SCTCommandTransportBit.Supported))
sb.AppendLine().Append("S.M.A.R.T. Command Transport is supported");
if(ATAID.CommandSet3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit3.MustBeSet) &&
@@ -1637,7 +1686,8 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("S.M.A.R.T. self-testing is supported");
- if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit3.SMARTSelfTest))
+ if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit3.SMARTSelfTest))
sb.Append(" and enabled");
}
@@ -1645,7 +1695,8 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("S.M.A.R.T. error logging is supported");
- if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit3.SMARTLog))
+ if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit3.SMARTLog))
sb.Append(" and enabled");
}
@@ -1653,7 +1704,8 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("IDLE IMMEDIATE with UNLOAD FEATURE is supported");
- if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit3.IdleImmediate))
+ if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit3.IdleImmediate))
sb.Append(" and enabled");
}
@@ -1670,7 +1722,8 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("WRITE DMA QUEUED FUA EXT is supported");
- if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit3.FUAWriteQ))
+ if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit3.FUAWriteQ))
sb.Append(" and enabled");
}
@@ -1678,7 +1731,8 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("WRITE DMA FUA EXT and WRITE MULTIPLE FUA EXT are supported");
- if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit3.FUAWrite))
+ if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit3.FUAWrite))
sb.Append(" and enabled");
}
@@ -1694,7 +1748,8 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("Streaming feature set is supported");
- if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit3.Streaming))
+ if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit3.Streaming))
sb.Append(" and enabled");
}
@@ -1710,7 +1765,8 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("Media Serial is supported");
- if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit3.MediaSerial))
+ if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit3.MediaSerial))
sb.Append(" and valid");
}
}
@@ -1738,7 +1794,8 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("Extended Power Conditions are supported");
- if(ATAID.EnabledCommandSet4.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit4.ExtPowerCond))
+ if(ATAID.EnabledCommandSet4.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit4.ExtPowerCond))
sb.Append(" and enabled");
}
@@ -1746,7 +1803,8 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("Extended Status Reporting is supported");
- if(ATAID.EnabledCommandSet4.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit4.ExtStatusReport))
+ if(ATAID.EnabledCommandSet4.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit4.ExtStatusReport))
sb.Append(" and enabled");
}
@@ -1754,11 +1812,13 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("Free-fall control feature set is supported");
- if(ATAID.EnabledCommandSet4.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit4.FreeFallControl))
+ if(ATAID.EnabledCommandSet4.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit4.FreeFallControl))
sb.Append(" and enabled");
}
- if(ATAID.CommandSet4.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit4.SegmentedDownloadMicrocode))
+ if(ATAID.CommandSet4.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit4.SegmentedDownloadMicrocode))
{
sb.AppendLine().Append("Segmented feature in DOWNLOAD MICROCODE is supported");
@@ -1771,7 +1831,8 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("READ/WRITE DMA EXT GPL are supported");
- if(ATAID.EnabledCommandSet4.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit4.RWDMAExtGpl))
+ if(ATAID.EnabledCommandSet4.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit4.RWDMAExtGpl))
sb.Append(" and enabled");
}
@@ -1779,7 +1840,8 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("WRITE UNCORRECTABLE is supported");
- if(ATAID.EnabledCommandSet4.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit4.WriteUnc))
+ if(ATAID.EnabledCommandSet4.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CommandSetBit4.WriteUnc))
sb.Append(" and enabled");
}
@@ -1867,36 +1929,43 @@ namespace Aaru.Decoders.ATA
sb.AppendLine().Append("Sanitize feature set is supported");
sb.AppendLine().
- Append(ATAID.Capabilities3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CapabilitiesBit3.SanitizeCommands)
+ Append(ATAID.Capabilities3.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CapabilitiesBit3.SanitizeCommands)
? "Sanitize commands are specified by ACS-3 or higher"
: "Sanitize commands are specified by ACS-2");
- if(ATAID.Capabilities3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CapabilitiesBit3.SanitizeAntifreeze))
+ if(ATAID.Capabilities3.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.CapabilitiesBit3.SanitizeAntifreeze))
sb.AppendLine().Append("SANITIZE ANTIFREEZE LOCK EXT is supported");
}
if(!ata1 &&
maxatalevel >= 8)
if(ATAID.TrustedComputing.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.TrustedComputingBit.Set) &&
- !ATAID.TrustedComputing.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.TrustedComputingBit.Clear) &&
- ATAID.TrustedComputing.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.TrustedComputingBit.TrustedComputing))
+ !ATAID.TrustedComputing.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.TrustedComputingBit.Clear) &&
+ ATAID.TrustedComputing.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.TrustedComputingBit.TrustedComputing))
sb.AppendLine().Append("Trusted Computing feature set is supported");
if((ATAID.TransportMajorVersion & 0xF000) >> 12 == 0x1 ||
(ATAID.TransportMajorVersion & 0xF000) >> 12 == 0xE)
{
if(!ATAID.SATACapabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit.Clear))
- if(ATAID.SATACapabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit.ReadLogDMAExt))
+ if(ATAID.SATACapabilities.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATACapabilitiesBit.ReadLogDMAExt))
sb.AppendLine().Append("READ LOG DMA EXT is supported");
if(!ATAID.SATACapabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit2.Clear)
)
- if(ATAID.SATACapabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit2.FPDMAQ))
+ if(ATAID.SATACapabilities2.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATACapabilitiesBit2.FPDMAQ))
sb.AppendLine().Append("RECEIVE FPDMA QUEUED and SEND FPDMA QUEUED are supported");
if(!ATAID.SATAFeatures.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATAFeaturesBit.Clear))
{
- if(ATAID.SATAFeatures.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATAFeaturesBit.NonZeroBufferOffset))
+ if(ATAID.SATAFeatures.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATAFeaturesBit.NonZeroBufferOffset))
{
sb.AppendLine().Append("Non-zero buffer offsets are supported");
@@ -1909,11 +1978,13 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("DMA Setup auto-activation is supported");
- if(ATAID.EnabledSATAFeatures.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATAFeaturesBit.DMASetup))
+ if(ATAID.EnabledSATAFeatures.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATAFeaturesBit.DMASetup))
sb.Append(" and enabled");
}
- if(ATAID.SATAFeatures.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATAFeaturesBit.InitPowerMgmt))
+ if(ATAID.SATAFeatures.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATAFeaturesBit.InitPowerMgmt))
{
sb.AppendLine().Append("Device-initiated power management is supported");
@@ -1926,7 +1997,8 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("In-order data delivery is supported");
- if(ATAID.EnabledSATAFeatures.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATAFeaturesBit.InOrderData))
+ if(ATAID.EnabledSATAFeatures.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATAFeaturesBit.InOrderData))
sb.Append(" and enabled");
}
@@ -1936,22 +2008,26 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine().Append("Hardware Feature Control is supported");
- if(ATAID.EnabledSATAFeatures.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATAFeaturesBit.
- HardwareFeatureControl))
+ if(ATAID.EnabledSATAFeatures.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATAFeaturesBit.
+ HardwareFeatureControl))
sb.Append(" and enabled");
}
if(atapi)
- if(ATAID.SATAFeatures.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATAFeaturesBit.AsyncNotification))
+ if(ATAID.SATAFeatures.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATAFeaturesBit.AsyncNotification))
{
sb.AppendLine().Append("Asynchronous notification is supported");
- if(ATAID.EnabledSATAFeatures.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATAFeaturesBit.
- AsyncNotification))
+ if(ATAID.EnabledSATAFeatures.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATAFeaturesBit.
+ AsyncNotification))
sb.Append(" and enabled");
}
- if(ATAID.SATAFeatures.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATAFeaturesBit.SettingsPreserve))
+ if(ATAID.SATAFeatures.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATAFeaturesBit.SettingsPreserve))
{
sb.AppendLine().Append("Software Settings Preservation is supported");
@@ -1964,7 +2040,8 @@ namespace Aaru.Decoders.ATA
)
sb.AppendLine().Append("NCQ Autosense is supported");
- if(ATAID.EnabledSATAFeatures.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATAFeaturesBit.EnabledSlumber))
+ if(ATAID.EnabledSATAFeatures.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SATAFeaturesBit.EnabledSlumber))
sb.AppendLine().Append("Automatic Partial to Slumber transitions are enabled");
}
}
@@ -1993,16 +2070,20 @@ namespace Aaru.Decoders.ATA
{
sb.AppendLine("Security is enabled");
- sb.AppendLine(ATAID.SecurityStatus.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SecurityStatusBit.Locked)
+ sb.AppendLine(ATAID.SecurityStatus.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SecurityStatusBit.Locked)
? "Security is locked" : "Security is not locked");
- sb.AppendLine(ATAID.SecurityStatus.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SecurityStatusBit.Frozen)
+ sb.AppendLine(ATAID.SecurityStatus.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SecurityStatusBit.Frozen)
? "Security is frozen" : "Security is not frozen");
- sb.AppendLine(ATAID.SecurityStatus.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SecurityStatusBit.Expired)
+ sb.AppendLine(ATAID.SecurityStatus.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SecurityStatusBit.Expired)
? "Security count has expired" : "Security count has notexpired");
- sb.AppendLine(ATAID.SecurityStatus.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SecurityStatusBit.Maximum)
+ sb.AppendLine(ATAID.SecurityStatus.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SecurityStatusBit.Maximum)
? "Security level is maximum" : "Security level is high");
}
else
@@ -2032,7 +2113,8 @@ namespace Aaru.Decoders.ATA
sb.AppendFormat("Streaming performance granularity is {0}", ATAID.StreamPerformanceGranularity);
}
- if(ATAID.SCTCommandTransport.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SCTCommandTransportBit.Supported))
+ if(ATAID.SCTCommandTransport.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SCTCommandTransportBit.Supported))
{
sb.AppendLine().AppendLine("S.M.A.R.T. Command Transport (SCT):");
@@ -2040,7 +2122,8 @@ namespace Aaru.Decoders.ATA
LongSectorAccess))
sb.AppendLine("SCT Long Sector Address is supported");
- if(ATAID.SCTCommandTransport.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SCTCommandTransportBit.WriteSame))
+ if(ATAID.SCTCommandTransport.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SCTCommandTransportBit.WriteSame))
sb.AppendLine("SCT Write Same is supported");
if(ATAID.SCTCommandTransport.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SCTCommandTransportBit.
@@ -2051,7 +2134,8 @@ namespace Aaru.Decoders.ATA
FeaturesControl))
sb.AppendLine("SCT Features Control is supported");
- if(ATAID.SCTCommandTransport.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SCTCommandTransportBit.DataTables))
+ if(ATAID.SCTCommandTransport.HasFlag(CommonTypes.
+ Structs.Devices.ATA.Identify.SCTCommandTransportBit.DataTables))
sb.AppendLine("SCT Data Tables are supported");
}
diff --git a/Blu-ray/BCA.cs b/Blu-ray/BCA.cs
index 3612f12..18a5d79 100644
--- a/Blu-ray/BCA.cs
+++ b/Blu-ray/BCA.cs
@@ -68,7 +68,7 @@ namespace Aaru.Decoders.Bluray
if(BCAResponse.Length != 68)
{
AaruConsole.DebugWriteLine("BD BCA decoder", "Found incorrect Blu-ray BCA size ({0} bytes)",
- BCAResponse.Length);
+ BCAResponse.Length);
return null;
}
diff --git a/Blu-ray/Cartridge.cs b/Blu-ray/Cartridge.cs
index cda37e5..3ea25f7 100644
--- a/Blu-ray/Cartridge.cs
+++ b/Blu-ray/Cartridge.cs
@@ -83,8 +83,8 @@ namespace Aaru.Decoders.Bluray
if(CSResponse.Length != 8)
{
AaruConsole.DebugWriteLine("BD Cartridge Status decoder",
- "Found incorrect Blu-ray Cartridge Status size ({0} bytes)",
- CSResponse.Length);
+ "Found incorrect Blu-ray Cartridge Status size ({0} bytes)",
+ CSResponse.Length);
return null;
}
diff --git a/Blu-ray/DDS.cs b/Blu-ray/DDS.cs
index e023a36..04577f8 100644
--- a/Blu-ray/DDS.cs
+++ b/Blu-ray/DDS.cs
@@ -123,7 +123,7 @@ namespace Aaru.Decoders.Bluray
if(decoded.Signature != DDSIdentifier)
{
AaruConsole.DebugWriteLine("BD DDS decoder", "Found incorrect DDS signature (0x{0:X4})",
- decoded.Signature);
+ decoded.Signature);
return null;
}
diff --git a/Blu-ray/DI.cs b/Blu-ray/DI.cs
index a163191..aa58c88 100644
--- a/Blu-ray/DI.cs
+++ b/Blu-ray/DI.cs
@@ -50,23 +50,28 @@ namespace Aaru.Decoders.Bluray
public enum BluSize : byte
{
/// 120mm
- OneTwenty = 0, /// 80mm
+ OneTwenty = 0,
+ /// 80mm
Eighty = 1
}
public enum ChannelLength : byte
{
/// 74.5nm channel or 25Gb/layer
- Seventy = 1, /// 69.0nm channel or 27Gb/layer
+ Seventy = 1,
+ /// 69.0nm channel or 27Gb/layer
Sixty = 2
}
public enum HybridLayer : byte
{
/// No hybrid layer
- None = 0, /// -ROM layer
- ReadOnly = 1, /// -R layer
- Recordable = 2, /// -RW layer
+ None = 0,
+ /// -ROM layer
+ ReadOnly = 1,
+ /// -R layer
+ Recordable = 2,
+ /// -RW layer
Rewritable = 3
}
@@ -88,8 +93,8 @@ namespace Aaru.Decoders.Bluray
if(DIResponse.Length != 4100)
{
AaruConsole.DebugWriteLine("BD Disc Information decoder",
- "Found incorrect Blu-ray Disc Information size ({0} bytes)",
- DIResponse.Length);
+ "Found incorrect Blu-ray Disc Information size ({0} bytes)",
+ DIResponse.Length);
return null;
}
@@ -178,8 +183,8 @@ namespace Aaru.Decoders.Bluray
default:
{
AaruConsole.DebugWriteLine("BD Disc Information decoder",
- "Found unknown disc type identifier \"{0}\"",
- Encoding.ASCII.GetString(unit.DiscTypeIdentifier));
+ "Found unknown disc type identifier \"{0}\"",
+ Encoding.ASCII.GetString(unit.DiscTypeIdentifier));
break;
}
diff --git a/Blu-ray/Spare.cs b/Blu-ray/Spare.cs
index 6a15d55..0050a73 100644
--- a/Blu-ray/Spare.cs
+++ b/Blu-ray/Spare.cs
@@ -71,8 +71,8 @@ namespace Aaru.Decoders.Bluray
if(SAIResponse.Length != 16)
{
AaruConsole.DebugWriteLine("BD Spare Area Information decoder",
- "Found incorrect Blu-ray Spare Area Information size ({0} bytes)",
- SAIResponse.Length);
+ "Found incorrect Blu-ray Spare Area Information size ({0} bytes)",
+ SAIResponse.Length);
return null;
}
diff --git a/CD/ATIP.cs b/CD/ATIP.cs
index 3cfc116..9cffe6f 100644
--- a/CD/ATIP.cs
+++ b/CD/ATIP.cs
@@ -57,8 +57,8 @@ namespace Aaru.Decoders.CD
CDATIPResponse.Length != 28)
{
AaruConsole.DebugWriteLine("CD ATIP decoder",
- "Expected CD ATIP size (32 bytes) is not received size ({0} bytes), not decoding",
- CDATIPResponse.Length);
+ "Expected CD ATIP size (32 bytes) is not received size ({0} bytes), not decoding",
+ CDATIPResponse.Length);
return null;
}
@@ -322,169 +322,169 @@ namespace Aaru.Decoders.CD
case 15:
switch(frm)
{
- case 00: return"TDK Corporation";
- case 10: return"Ritek Co.";
- case 20: return"Mitsubishi Chemical Corporation";
- case 30: return"NAN-YA Plastics Corporation";
+ case 00: return "TDK Corporation";
+ case 10: return "Ritek Co.";
+ case 20: return "Mitsubishi Chemical Corporation";
+ case 30: return "NAN-YA Plastics Corporation";
}
break;
case 16:
switch(frm)
{
- case 20: return"Shenzen SG&Gast Digital Optical Discs";
- case 30: return"Grand Advance Technology Ltd.";
+ case 20: return "Shenzen SG&Gast Digital Optical Discs";
+ case 30: return "Grand Advance Technology Ltd.";
}
break;
case 17:
if(frm == 00)
- return"Moser Baer India Limited";
+ return "Moser Baer India Limited";
break;
case 18:
switch(frm)
{
- case 10: return"Wealth Fair Investment Ltd.";
- case 60: return"Taroko International Co. Ltd.";
+ case 10: return "Wealth Fair Investment Ltd.";
+ case 60: return "Taroko International Co. Ltd.";
}
break;
case 20:
if(frm == 10)
- return"CDA Datenträger Albrechts GmbH";
+ return "CDA Datenträger Albrechts GmbH";
break;
case 21:
switch(frm)
{
- case 10: return"Grupo Condor S.L.";
- case 30: return"Bestdisc Technology Corporation";
- case 40: return"Optical Disc Manufacturing Equipment";
- case 50: return"Sound Sound Multi-Media Development Ltd.";
+ case 10: return "Grupo Condor S.L.";
+ case 30: return "Bestdisc Technology Corporation";
+ case 40: return "Optical Disc Manufacturing Equipment";
+ case 50: return "Sound Sound Multi-Media Development Ltd.";
}
break;
case 22:
switch(frm)
{
- case 00: return"Woongjin Media Corp.";
- case 10: return"Seantram Technology Inc.";
- case 20: return"Advanced Digital Media";
- case 30: return"EXIMPO";
- case 40: return"CIS Technology Inc.";
- case 50: return"Hong Kong Digital Technology Co., Ltd.";
- case 60: return"Acer Media Technology, Inc.";
+ case 00: return "Woongjin Media Corp.";
+ case 10: return "Seantram Technology Inc.";
+ case 20: return "Advanced Digital Media";
+ case 30: return "EXIMPO";
+ case 40: return "CIS Technology Inc.";
+ case 50: return "Hong Kong Digital Technology Co., Ltd.";
+ case 60: return "Acer Media Technology, Inc.";
}
break;
case 23:
switch(frm)
{
- case 00: return"Matsushita Electric Industrial Co., Ltd.";
- case 10: return"Doremi Media Co., Ltd.";
- case 20: return"Nacar Media s.r.l.";
- case 30: return"Audio Distributors Co., Ltd.";
- case 40: return"Victor Company of Japan, Ltd.";
- case 50: return"Optrom Inc.";
- case 60: return"Customer Pressing Oosterhout";
+ case 00: return "Matsushita Electric Industrial Co., Ltd.";
+ case 10: return "Doremi Media Co., Ltd.";
+ case 20: return "Nacar Media s.r.l.";
+ case 30: return "Audio Distributors Co., Ltd.";
+ case 40: return "Victor Company of Japan, Ltd.";
+ case 50: return "Optrom Inc.";
+ case 60: return "Customer Pressing Oosterhout";
}
break;
case 24:
switch(frm)
{
- case 00: return"Taiyo Yuden Company Ltd.";
- case 10: return"SONY Corporation";
- case 20: return"Computer Support Italy s.r.l.";
- case 30: return"Unitech Japan Inc.";
- case 40: return"kdg mediatech AG";
- case 50: return"Guann Yinn Co., Ltd.";
- case 60: return"Harmonic Hall Optical Disc Ltd.";
+ case 00: return "Taiyo Yuden Company Ltd.";
+ case 10: return "SONY Corporation";
+ case 20: return "Computer Support Italy s.r.l.";
+ case 30: return "Unitech Japan Inc.";
+ case 40: return "kdg mediatech AG";
+ case 50: return "Guann Yinn Co., Ltd.";
+ case 60: return "Harmonic Hall Optical Disc Ltd.";
}
break;
case 25:
switch(frm)
{
- case 00: return"MPO";
- case 20: return"Hitachi Maxell, Ltd.";
- case 30: return"Infodisc Technology Co. Ltd.";
- case 40: return"Vivastar AG";
- case 50: return"AMS Technology Inc.";
- case 60: return"Xcitec Inc.";
+ case 00: return "MPO";
+ case 20: return "Hitachi Maxell, Ltd.";
+ case 30: return "Infodisc Technology Co. Ltd.";
+ case 40: return "Vivastar AG";
+ case 50: return "AMS Technology Inc.";
+ case 60: return "Xcitec Inc.";
}
break;
case 26:
switch(frm)
{
- case 00: return"Fornet International Pte Ltd.";
- case 10: return"POSTECH Corporation";
- case 20: return"SKC Co., Ltd.";
- case 30: return"Optical Disc Corporation";
- case 40: return"FUJI Photo Film Co., Ltd.";
- case 50: return"Lead Data Inc.";
- case 60: return"CMC Magnetics Corporation";
+ case 00: return "Fornet International Pte Ltd.";
+ case 10: return "POSTECH Corporation";
+ case 20: return "SKC Co., Ltd.";
+ case 30: return "Optical Disc Corporation";
+ case 40: return "FUJI Photo Film Co., Ltd.";
+ case 50: return "Lead Data Inc.";
+ case 60: return "CMC Magnetics Corporation";
}
break;
case 27:
switch(frm)
{
- case 00: return"Digital Storage Technology Co., Ltd.";
- case 10: return"Plasmon Data systems Ltd.";
- case 20: return"Princo Corporation";
- case 30: return"Pioneer Video Corporation";
- case 40: return"Kodak Japan Ltd.";
- case 50: return"Mitsui Chemicals, Inc.";
- case 60: return"Ricoh Company Ltd.";
+ case 00: return "Digital Storage Technology Co., Ltd.";
+ case 10: return "Plasmon Data systems Ltd.";
+ case 20: return "Princo Corporation";
+ case 30: return "Pioneer Video Corporation";
+ case 40: return "Kodak Japan Ltd.";
+ case 50: return "Mitsui Chemicals, Inc.";
+ case 60: return "Ricoh Company Ltd.";
}
break;
case 28:
switch(frm)
{
- case 00: return"Opti.Me.S. S.p.A.";
- case 10: return"Gigastore Corporation";
- case 20: return"Multi Media Masters & Machinary SA";
- case 30: return"Auvistar Industry Co., Ltd.";
- case 40: return"King Pro Mediatek Inc.";
- case 50: return"Delphi Technology Inc.";
- case 60: return"Friendly CD-Tek Co.";
+ case 00: return "Opti.Me.S. S.p.A.";
+ case 10: return "Gigastore Corporation";
+ case 20: return "Multi Media Masters & Machinary SA";
+ case 30: return "Auvistar Industry Co., Ltd.";
+ case 40: return "King Pro Mediatek Inc.";
+ case 50: return "Delphi Technology Inc.";
+ case 60: return "Friendly CD-Tek Co.";
}
break;
case 29:
switch(frm)
{
- case 00: return"Taeil Media Co., Ltd.";
- case 10: return"Vanguard Disc Inc.";
- case 20: return"Unidisc Technology Co., Ltd.";
- case 30: return"Hile Optical Disc Technology Corp.";
- case 40: return"Viva Magnetics Ltd.";
- case 50: return"General Magnetics Ltd.";
+ case 00: return "Taeil Media Co., Ltd.";
+ case 10: return "Vanguard Disc Inc.";
+ case 20: return "Unidisc Technology Co., Ltd.";
+ case 30: return "Hile Optical Disc Technology Corp.";
+ case 40: return "Viva Magnetics Ltd.";
+ case 50: return "General Magnetics Ltd.";
}
break;
case 30:
if(frm == 10)
- return"CDA Datenträger Albrechts GmbH";
+ return "CDA Datenträger Albrechts GmbH";
break;
case 31:
switch(frm)
{
- case 00: return"Ritek Co.";
- case 30: return"Grand Advance Technology Ltd.";
+ case 00: return "Ritek Co.";
+ case 30: return "Grand Advance Technology Ltd.";
}
break;
case 32:
switch(frm)
{
- case 00: return"TDK Corporation";
- case 10: return"Prodisc Technology Inc.";
+ case 00: return "TDK Corporation";
+ case 10: return "Prodisc Technology Inc.";
}
break;
@@ -492,97 +492,97 @@ namespace Aaru.Decoders.CD
switch(frm)
{
case 20:
- case 22: return"Mitsubishi Chemical Corporation";
+ case 22: return "Mitsubishi Chemical Corporation";
}
break;
case 42:
if(frm == 20)
- return"Advanced Digital Media";
+ return "Advanced Digital Media";
break;
case 45:
switch(frm)
{
- case 00: return"Fornet International Pte Ltd.";
- case 10: return"Unitech Japan Inc.";
- case 20: return"Acer Media Technology, Inc.";
- case 40: return"CIS Technology Inc.";
- case 50: return"Guann Yinn Co., Ltd.";
- case 60: return"Xcitec Inc.";
+ case 00: return "Fornet International Pte Ltd.";
+ case 10: return "Unitech Japan Inc.";
+ case 20: return "Acer Media Technology, Inc.";
+ case 40: return "CIS Technology Inc.";
+ case 50: return "Guann Yinn Co., Ltd.";
+ case 60: return "Xcitec Inc.";
}
break;
case 46:
switch(frm)
{
- case 00: return"Taiyo Yuden Company Ltd.";
- case 10: return"Hong Kong Digital Technology Co., Ltd.";
- case 20: return"Multi Media Masters & Machinary SA";
- case 30: return"Computer Support Italy s.r.l.";
- case 40: return"FUJI Photo Film Co., Ltd.";
- case 50: return"Auvistar Industry Co., Ltd.";
- case 60: return"CMC Magnetics Corporation";
+ case 00: return "Taiyo Yuden Company Ltd.";
+ case 10: return "Hong Kong Digital Technology Co., Ltd.";
+ case 20: return "Multi Media Masters & Machinary SA";
+ case 30: return "Computer Support Italy s.r.l.";
+ case 40: return "FUJI Photo Film Co., Ltd.";
+ case 50: return "Auvistar Industry Co., Ltd.";
+ case 60: return "CMC Magnetics Corporation";
}
break;
case 47:
switch(frm)
{
- case 10: return"Hitachi Maxell, Ltd.";
- case 20: return"Princo Corporation";
- case 40: return"POSTECH Corporation";
- case 50: return"Ritek Co.";
- case 60: return"Prodisc Technology Inc.";
+ case 10: return "Hitachi Maxell, Ltd.";
+ case 20: return "Princo Corporation";
+ case 40: return "POSTECH Corporation";
+ case 50: return "Ritek Co.";
+ case 60: return "Prodisc Technology Inc.";
}
break;
case 48:
switch(frm)
{
- case 00: return"Ricoh Company Ltd.";
- case 10: return"Kodak Japan Ltd.";
- case 20: return"Plasmon Data systems Ltd.";
- case 30: return"Pioneer Video Corporation";
- case 40: return"Digital Storage Technology Co., Ltd.";
- case 50: return"Mitsui Chemicals, Inc.";
- case 60: return"Lead Data Inc.";
+ case 00: return "Ricoh Company Ltd.";
+ case 10: return "Kodak Japan Ltd.";
+ case 20: return "Plasmon Data systems Ltd.";
+ case 30: return "Pioneer Video Corporation";
+ case 40: return "Digital Storage Technology Co., Ltd.";
+ case 50: return "Mitsui Chemicals, Inc.";
+ case 60: return "Lead Data Inc.";
}
break;
case 49:
switch(frm)
{
- case 00: return"TDK Corporation";
- case 10: return"Gigastore Corporation";
- case 20: return"King Pro Mediatek Inc.";
- case 30: return"Opti.Me.S. S.p.A.";
- case 40: return"Victor Company of Japan, Ltd.";
- case 60: return"Matsushita Electric Industrial Co., Ltd.";
+ case 00: return "TDK Corporation";
+ case 10: return "Gigastore Corporation";
+ case 20: return "King Pro Mediatek Inc.";
+ case 30: return "Opti.Me.S. S.p.A.";
+ case 40: return "Victor Company of Japan, Ltd.";
+ case 60: return "Matsushita Electric Industrial Co., Ltd.";
}
break;
case 50:
switch(frm)
{
- case 10: return"Vanguard Disc Inc.";
- case 20: return"Mitsubishi Chemical Corporation";
- case 30: return"CDA Datenträger Albrechts GmbH";
+ case 10: return "Vanguard Disc Inc.";
+ case 20: return "Mitsubishi Chemical Corporation";
+ case 30: return "CDA Datenträger Albrechts GmbH";
}
break;
case 51:
switch(frm)
{
- case 10: return"Grand Advance Technology Ltd.";
- case 20: return"Infodisc Technology Co. Ltd.";
- case 50: return"Hile Optical Disc Technology Corp.";
+ case 10: return "Grand Advance Technology Ltd.";
+ case 20: return "Infodisc Technology Co. Ltd.";
+ case 50: return "Hile Optical Disc Technology Corp.";
}
break;
}
- return"";
+ return "";
}
public struct CDATIP
diff --git a/CD/CDTextOnLeadIn.cs b/CD/CDTextOnLeadIn.cs
index edb2ce0..4baead9 100644
--- a/CD/CDTextOnLeadIn.cs
+++ b/CD/CDTextOnLeadIn.cs
@@ -49,21 +49,36 @@ namespace Aaru.Decoders.CD
public enum PackTypeIndicator : byte
{
/// Title of the track (or album if track == 0)
- Title = 0x80, /// Performer
- Performer = 0x81, /// Songwriter
- Songwriter = 0x82, /// Composer
- Composer = 0x83, /// Arranger
- Arranger = 0x84, /// Message from the content provider or artist
- Message = 0x85, /// Disc identification information
- DiscIdentification = 0x86, /// Genre identification
- GenreIdentification = 0x87, /// Table of content information
- TOCInformation = 0x88, /// Second table of content information
- SecondTOCInformation = 0x89, /// Reserved
- Reserved1 = 0x8A, /// Reserved
- Reserved2 = 0x8B, /// Reserved
- Reserved3 = 0x8C, /// Reserved for content provider only
- ReservedForContentProvider = 0x8D, /// UPC of album or ISRC of track
- UPCorISRC = 0x8E, /// Size information of the block
+ Title = 0x80,
+ /// Performer
+ Performer = 0x81,
+ /// Songwriter
+ Songwriter = 0x82,
+ /// Composer
+ Composer = 0x83,
+ /// Arranger
+ Arranger = 0x84,
+ /// Message from the content provider or artist
+ Message = 0x85,
+ /// Disc identification information
+ DiscIdentification = 0x86,
+ /// Genre identification
+ GenreIdentification = 0x87,
+ /// Table of content information
+ TOCInformation = 0x88,
+ /// Second table of content information
+ SecondTOCInformation = 0x89,
+ /// Reserved
+ Reserved1 = 0x8A,
+ /// Reserved
+ Reserved2 = 0x8B,
+ /// Reserved
+ Reserved3 = 0x8C,
+ /// Reserved for content provider only
+ ReservedForContentProvider = 0x8D,
+ /// UPC of album or ISRC of track
+ UPCorISRC = 0x8E,
+ /// Size information of the block
BlockSizeInformation = 0x8F
}
@@ -86,23 +101,23 @@ namespace Aaru.Decoders.CD
if(decoded.DataLength + 2 != CDTextResponse.Length)
{
AaruConsole.DebugWriteLine("CD-TEXT decoder",
- "Expected CD-TEXT size ({0} bytes) is not received size ({1} bytes), not decoding",
- decoded.DataLength + 2, CDTextResponse.Length);
+ "Expected CD-TEXT size ({0} bytes) is not received size ({1} bytes), not decoding",
+ decoded.DataLength + 2, CDTextResponse.Length);
return null;
}
for(int i = 0; i < (decoded.DataLength - 2) / 18; i++)
{
- decoded.DataPacks[i].HeaderID1 = CDTextResponse[0 + i * 18 + 4];
- decoded.DataPacks[i].HeaderID2 = CDTextResponse[1 + i * 18 + 4];
- decoded.DataPacks[i].HeaderID3 = CDTextResponse[2 + i * 18 + 4];
- decoded.DataPacks[i].DBCC = Convert.ToBoolean(CDTextResponse[3 + i * 18 + 4] & 0x80);
- decoded.DataPacks[i].BlockNumber = (byte)((CDTextResponse[3 + i * 18 + 4] & 0x70) >> 4);
- decoded.DataPacks[i].CharacterPosition = (byte)(CDTextResponse[3 + i * 18 + 4] & 0x0F);
+ decoded.DataPacks[i].HeaderID1 = CDTextResponse[0 + (i * 18) + 4];
+ decoded.DataPacks[i].HeaderID2 = CDTextResponse[1 + (i * 18) + 4];
+ decoded.DataPacks[i].HeaderID3 = CDTextResponse[2 + (i * 18) + 4];
+ decoded.DataPacks[i].DBCC = Convert.ToBoolean(CDTextResponse[3 + (i * 18) + 4] & 0x80);
+ decoded.DataPacks[i].BlockNumber = (byte)((CDTextResponse[3 + (i * 18) + 4] & 0x70) >> 4);
+ decoded.DataPacks[i].CharacterPosition = (byte)(CDTextResponse[3 + (i * 18) + 4] & 0x0F);
decoded.DataPacks[i].TextDataField = new byte[12];
- Array.Copy(CDTextResponse, 4 + i * 18 + 4, decoded.DataPacks[i].TextDataField, 0, 12);
- decoded.DataPacks[i].CRC = BigEndianBitConverter.ToUInt16(CDTextResponse, 16 + i * 18 + 4);
+ Array.Copy(CDTextResponse, 4 + (i * 18) + 4, decoded.DataPacks[i].TextDataField, 0, 12);
+ decoded.DataPacks[i].CRC = BigEndianBitConverter.ToUInt16(CDTextResponse, 16 + (i * 18) + 4);
}
return decoded;
diff --git a/CD/Enums.cs b/CD/Enums.cs
index 130eb2f..ec5b843 100644
--- a/CD/Enums.cs
+++ b/CD/Enums.cs
@@ -38,24 +38,36 @@ namespace Aaru.Decoders.CD
public enum TocAdr : byte
{
/// Q Sub-channel mode information not supplied
- NoInformation = 0x00, /// Q Sub-channel encodes current position data
- CurrentPosition = 0x01, /// Q Sub-channel encodes the media catalog number
- MediaCatalogNumber = 0x02, /// Q Sub-channel encodes the ISRC
- ISRC = 0x03, /// Q Sub-channel encodes the start of an audio/data track (if found in TOC)
- TrackPointer = 0x01, /// Q Sub-channel encodes the start of a video track (if found in TOC) for CD-V
+ NoInformation = 0x00,
+ /// Q Sub-channel encodes current position data
+ CurrentPosition = 0x01,
+ /// Q Sub-channel encodes the media catalog number
+ MediaCatalogNumber = 0x02,
+ /// Q Sub-channel encodes the ISRC
+ ISRC = 0x03,
+ /// Q Sub-channel encodes the start of an audio/data track (if found in TOC)
+ TrackPointer = 0x01,
+ /// Q Sub-channel encodes the start of a video track (if found in TOC) for CD-V
VideoTrackPointer = 0x04
}
public enum TocControl : byte
{
/// Stereo audio, no pre-emphasis
- TwoChanNoPreEmph = 0x00, /// Stereo audio with pre-emphasis
- TwoChanPreEmph = 0x01, /// If mask applied, track can be copied
- CopyPermissionMask = 0x02, /// Data track, recorded uninterrumpted
- DataTrack = 0x04, /// Data track, recorded incrementally
- DataTrackIncremental = 0x05, /// Quadraphonic audio, no pre-emphasis
- FourChanNoPreEmph = 0x08, /// Quadraphonic audio with pre-emphasis
- FourChanPreEmph = 0x09, /// Reserved mask
+ TwoChanNoPreEmph = 0x00,
+ /// Stereo audio with pre-emphasis
+ TwoChanPreEmph = 0x01,
+ /// If mask applied, track can be copied
+ CopyPermissionMask = 0x02,
+ /// Data track, recorded uninterrumpted
+ DataTrack = 0x04,
+ /// Data track, recorded incrementally
+ DataTrackIncremental = 0x05,
+ /// Quadraphonic audio, no pre-emphasis
+ FourChanNoPreEmph = 0x08,
+ /// Quadraphonic audio with pre-emphasis
+ FourChanPreEmph = 0x09,
+ /// Reserved mask
ReservedMask = 0x0C
}
}
\ No newline at end of file
diff --git a/CD/FullTOC.cs b/CD/FullTOC.cs
index 4388db3..8ced7a4 100644
--- a/CD/FullTOC.cs
+++ b/CD/FullTOC.cs
@@ -69,28 +69,28 @@ namespace Aaru.Decoders.CD
if(decoded.DataLength + 2 != CDFullTOCResponse.Length)
{
AaruConsole.DebugWriteLine("CD full TOC decoder",
- "Expected CDFullTOC size ({0} bytes) is not received size ({1} bytes), not decoding",
- decoded.DataLength + 2, CDFullTOCResponse.Length);
+ "Expected CDFullTOC size ({0} bytes) is not received size ({1} bytes), not decoding",
+ decoded.DataLength + 2, CDFullTOCResponse.Length);
return null;
}
for(int i = 0; i < (decoded.DataLength - 2) / 11; i++)
{
- decoded.TrackDescriptors[i].SessionNumber = CDFullTOCResponse[0 + i * 11 + 4];
- decoded.TrackDescriptors[i].ADR = (byte)((CDFullTOCResponse[1 + i * 11 + 4] & 0xF0) >> 4);
- decoded.TrackDescriptors[i].CONTROL = (byte)(CDFullTOCResponse[1 + i * 11 + 4] & 0x0F);
- decoded.TrackDescriptors[i].TNO = CDFullTOCResponse[2 + i * 11 + 4];
- decoded.TrackDescriptors[i].POINT = CDFullTOCResponse[3 + i * 11 + 4];
- decoded.TrackDescriptors[i].Min = CDFullTOCResponse[4 + i * 11 + 4];
- decoded.TrackDescriptors[i].Sec = CDFullTOCResponse[5 + i * 11 + 4];
- decoded.TrackDescriptors[i].Frame = CDFullTOCResponse[6 + i * 11 + 4];
- decoded.TrackDescriptors[i].Zero = CDFullTOCResponse[7 + i * 11 + 4];
- decoded.TrackDescriptors[i].HOUR = (byte)((CDFullTOCResponse[7 + i * 11 + 4] & 0xF0) >> 4);
- decoded.TrackDescriptors[i].PHOUR = (byte)(CDFullTOCResponse[7 + i * 11 + 4] & 0x0F);
- decoded.TrackDescriptors[i].PMIN = CDFullTOCResponse[8 + i * 11 + 4];
- decoded.TrackDescriptors[i].PSEC = CDFullTOCResponse[9 + i * 11 + 4];
- decoded.TrackDescriptors[i].PFRAME = CDFullTOCResponse[10 + i * 11 + 4];
+ decoded.TrackDescriptors[i].SessionNumber = CDFullTOCResponse[0 + (i * 11) + 4];
+ decoded.TrackDescriptors[i].ADR = (byte)((CDFullTOCResponse[1 + (i * 11) + 4] & 0xF0) >> 4);
+ decoded.TrackDescriptors[i].CONTROL = (byte)(CDFullTOCResponse[1 + (i * 11) + 4] & 0x0F);
+ decoded.TrackDescriptors[i].TNO = CDFullTOCResponse[2 + (i * 11) + 4];
+ decoded.TrackDescriptors[i].POINT = CDFullTOCResponse[3 + (i * 11) + 4];
+ decoded.TrackDescriptors[i].Min = CDFullTOCResponse[4 + (i * 11) + 4];
+ decoded.TrackDescriptors[i].Sec = CDFullTOCResponse[5 + (i * 11) + 4];
+ decoded.TrackDescriptors[i].Frame = CDFullTOCResponse[6 + (i * 11) + 4];
+ decoded.TrackDescriptors[i].Zero = CDFullTOCResponse[7 + (i * 11) + 4];
+ decoded.TrackDescriptors[i].HOUR = (byte)((CDFullTOCResponse[7 + (i * 11) + 4] & 0xF0) >> 4);
+ decoded.TrackDescriptors[i].PHOUR = (byte)(CDFullTOCResponse[7 + (i * 11) + 4] & 0x0F);
+ decoded.TrackDescriptors[i].PMIN = CDFullTOCResponse[8 + (i * 11) + 4];
+ decoded.TrackDescriptors[i].PSEC = CDFullTOCResponse[9 + (i * 11) + 4];
+ decoded.TrackDescriptors[i].PFRAME = CDFullTOCResponse[10 + (i * 11) + 4];
}
return decoded;
@@ -111,8 +111,8 @@ namespace Aaru.Decoders.CD
sb.AppendFormat("Last complete session number: {0}", response.LastCompleteSession).AppendLine();
foreach(TrackDataDescriptor descriptor in response.TrackDescriptors)
- if((descriptor.CONTROL & 0x08) == 0x08 ||
- descriptor.ADR != 1 && descriptor.ADR != 5 && descriptor.ADR != 4 && descriptor.ADR != 6 ||
+ if((descriptor.CONTROL & 0x08) == 0x08 ||
+ (descriptor.ADR != 1 && descriptor.ADR != 5 && descriptor.ADR != 4 && descriptor.ADR != 6) ||
descriptor.TNO != 0)
{
sb.AppendLine("Unknown TOC entry format, printing values as-is");
diff --git a/CD/PMA.cs b/CD/PMA.cs
index b931d5a..816516e 100644
--- a/CD/PMA.cs
+++ b/CD/PMA.cs
@@ -61,27 +61,27 @@ namespace Aaru.Decoders.CD
if(decoded.DataLength + 2 != CDPMAResponse.Length)
{
AaruConsole.DebugWriteLine("CD PMA decoder",
- "Expected CDPMA size ({0} bytes) is not received size ({1} bytes), not decoding",
- decoded.DataLength + 2, CDPMAResponse.Length);
+ "Expected CDPMA size ({0} bytes) is not received size ({1} bytes), not decoding",
+ decoded.DataLength + 2, CDPMAResponse.Length);
return null;
}
for(int i = 0; i < (decoded.DataLength - 2) / 11; i++)
{
- decoded.PMADescriptors[i].Reserved = CDPMAResponse[0 + i * 11 + 4];
- decoded.PMADescriptors[i].ADR = (byte)((CDPMAResponse[1 + i * 11 + 4] & 0xF0) >> 4);
- decoded.PMADescriptors[i].CONTROL = (byte)(CDPMAResponse[1 + i * 11 + 4] & 0x0F);
- decoded.PMADescriptors[i].TNO = CDPMAResponse[2 + i * 11 + 4];
- decoded.PMADescriptors[i].POINT = CDPMAResponse[3 + i * 11 + 4];
- decoded.PMADescriptors[i].Min = CDPMAResponse[4 + i * 11 + 4];
- decoded.PMADescriptors[i].Sec = CDPMAResponse[5 + i * 11 + 4];
- decoded.PMADescriptors[i].Frame = CDPMAResponse[6 + i * 11 + 4];
- decoded.PMADescriptors[i].HOUR = (byte)((CDPMAResponse[7 + i * 11 + 4] & 0xF0) >> 4);
- decoded.PMADescriptors[i].PHOUR = (byte)(CDPMAResponse[7 + i * 11 + 4] & 0x0F);
- decoded.PMADescriptors[i].PMIN = CDPMAResponse[8 + i * 11 + 4];
- decoded.PMADescriptors[i].PSEC = CDPMAResponse[9 + i * 11 + 4];
- decoded.PMADescriptors[i].PFRAME = CDPMAResponse[10 + i * 11 + 4];
+ decoded.PMADescriptors[i].Reserved = CDPMAResponse[0 + (i * 11) + 4];
+ decoded.PMADescriptors[i].ADR = (byte)((CDPMAResponse[1 + (i * 11) + 4] & 0xF0) >> 4);
+ decoded.PMADescriptors[i].CONTROL = (byte)(CDPMAResponse[1 + (i * 11) + 4] & 0x0F);
+ decoded.PMADescriptors[i].TNO = CDPMAResponse[2 + (i * 11) + 4];
+ decoded.PMADescriptors[i].POINT = CDPMAResponse[3 + (i * 11) + 4];
+ decoded.PMADescriptors[i].Min = CDPMAResponse[4 + (i * 11) + 4];
+ decoded.PMADescriptors[i].Sec = CDPMAResponse[5 + (i * 11) + 4];
+ decoded.PMADescriptors[i].Frame = CDPMAResponse[6 + (i * 11) + 4];
+ decoded.PMADescriptors[i].HOUR = (byte)((CDPMAResponse[7 + (i * 11) + 4] & 0xF0) >> 4);
+ decoded.PMADescriptors[i].PHOUR = (byte)(CDPMAResponse[7 + (i * 11) + 4] & 0x0F);
+ decoded.PMADescriptors[i].PMIN = CDPMAResponse[8 + (i * 11) + 4];
+ decoded.PMADescriptors[i].PSEC = CDPMAResponse[9 + (i * 11) + 4];
+ decoded.PMADescriptors[i].PFRAME = CDPMAResponse[10 + (i * 11) + 4];
}
return decoded;
diff --git a/CD/Session.cs b/CD/Session.cs
index ad5babd..8cd7d59 100644
--- a/CD/Session.cs
+++ b/CD/Session.cs
@@ -61,22 +61,22 @@ namespace Aaru.Decoders.CD
if(decoded.DataLength + 2 != CDSessionInfoResponse.Length)
{
AaruConsole.DebugWriteLine("CD Session Info decoder",
- "Expected CDSessionInfo size ({0} bytes) is not received size ({1} bytes), not decoding",
- decoded.DataLength + 2, CDSessionInfoResponse.Length);
+ "Expected CDSessionInfo size ({0} bytes) is not received size ({1} bytes), not decoding",
+ decoded.DataLength + 2, CDSessionInfoResponse.Length);
return null;
}
for(int i = 0; i < (decoded.DataLength - 2) / 8; i++)
{
- decoded.TrackDescriptors[i].Reserved1 = CDSessionInfoResponse[0 + i * 8 + 4];
- decoded.TrackDescriptors[i].ADR = (byte)((CDSessionInfoResponse[1 + i * 8 + 4] & 0xF0) >> 4);
- decoded.TrackDescriptors[i].CONTROL = (byte)(CDSessionInfoResponse[1 + i * 8 + 4] & 0x0F);
- decoded.TrackDescriptors[i].TrackNumber = CDSessionInfoResponse[2 + i * 8 + 4];
- decoded.TrackDescriptors[i].Reserved2 = CDSessionInfoResponse[3 + i * 8 + 4];
+ decoded.TrackDescriptors[i].Reserved1 = CDSessionInfoResponse[0 + (i * 8) + 4];
+ decoded.TrackDescriptors[i].ADR = (byte)((CDSessionInfoResponse[1 + (i * 8) + 4] & 0xF0) >> 4);
+ decoded.TrackDescriptors[i].CONTROL = (byte)(CDSessionInfoResponse[1 + (i * 8) + 4] & 0x0F);
+ decoded.TrackDescriptors[i].TrackNumber = CDSessionInfoResponse[2 + (i * 8) + 4];
+ decoded.TrackDescriptors[i].Reserved2 = CDSessionInfoResponse[3 + (i * 8) + 4];
decoded.TrackDescriptors[i].TrackStartAddress =
- BigEndianBitConverter.ToUInt32(CDSessionInfoResponse, 4 + i * 8 + 4);
+ BigEndianBitConverter.ToUInt32(CDSessionInfoResponse, 4 + (i * 8) + 4);
}
return decoded;
diff --git a/CD/TOC.cs b/CD/TOC.cs
index 7abbdd2..4a6fffb 100644
--- a/CD/TOC.cs
+++ b/CD/TOC.cs
@@ -62,22 +62,22 @@ namespace Aaru.Decoders.CD
if(decoded.DataLength + 2 != CDTOCResponse.Length)
{
AaruConsole.DebugWriteLine("CD TOC decoder",
- "Expected CDTOC size ({0} bytes) is not received size ({1} bytes), not decoding",
- decoded.DataLength + 2, CDTOCResponse.Length);
+ "Expected CDTOC size ({0} bytes) is not received size ({1} bytes), not decoding",
+ decoded.DataLength + 2, CDTOCResponse.Length);
return null;
}
for(int i = 0; i < (decoded.DataLength - 2) / 8; i++)
{
- decoded.TrackDescriptors[i].Reserved1 = CDTOCResponse[0 + i * 8 + 4];
- decoded.TrackDescriptors[i].ADR = (byte)((CDTOCResponse[1 + i * 8 + 4] & 0xF0) >> 4);
- decoded.TrackDescriptors[i].CONTROL = (byte)(CDTOCResponse[1 + i * 8 + 4] & 0x0F);
- decoded.TrackDescriptors[i].TrackNumber = CDTOCResponse[2 + i * 8 + 4];
- decoded.TrackDescriptors[i].Reserved2 = CDTOCResponse[3 + i * 8 + 4];
+ decoded.TrackDescriptors[i].Reserved1 = CDTOCResponse[0 + (i * 8) + 4];
+ decoded.TrackDescriptors[i].ADR = (byte)((CDTOCResponse[1 + (i * 8) + 4] & 0xF0) >> 4);
+ decoded.TrackDescriptors[i].CONTROL = (byte)(CDTOCResponse[1 + (i * 8) + 4] & 0x0F);
+ decoded.TrackDescriptors[i].TrackNumber = CDTOCResponse[2 + (i * 8) + 4];
+ decoded.TrackDescriptors[i].Reserved2 = CDTOCResponse[3 + (i * 8) + 4];
decoded.TrackDescriptors[i].TrackStartAddress =
- BigEndianBitConverter.ToUInt32(CDTOCResponse, 4 + i * 8 + 4);
+ BigEndianBitConverter.ToUInt32(CDTOCResponse, 4 + (i * 8) + 4);
}
return decoded;
diff --git a/DVD/DDS.cs b/DVD/DDS.cs
index bf43bff..e2a6465 100644
--- a/DVD/DDS.cs
+++ b/DVD/DDS.cs
@@ -69,11 +69,9 @@ namespace Aaru.Decoders.DVD
dds.UserCertification |= (response[7] & 0x02) == 0x02;
dds.ManufacturerCertification |= (response[7] & 0x01) == 0x01;
- dds.UpdateCount =
- (uint)((response[8] << 24) + (response[9] << 16) + (response[10] << 8) + response[11]);
+ dds.UpdateCount = (uint)((response[8] << 24) + (response[9] << 16) + (response[10] << 8) + response[11]);
- dds.Groups =
- (ushort)((response[12] << 8) + response[13]);
+ dds.Groups = (ushort)((response[12] << 8) + response[13]);
// ECMA-272
if(dds.Groups == 24)
@@ -110,8 +108,8 @@ namespace Aaru.Decoders.DVD
dds.StartLSNForZone = new uint[dds.Zones];
for(int i = 0; i < dds.Zones; i++)
- dds.StartLSNForZone[i] = (uint)((response[260 + i * 4 + 1] << 16) +
- (response[260 + i * 4 + 2] << 8) + response[260 + i * 4 + 3]);
+ dds.StartLSNForZone[i] = (uint)((response[260 + (i * 4) + 1] << 16) +
+ (response[260 + (i * 4) + 2] << 8) + response[260 + (i * 4) + 3]);
}
return dds;
diff --git a/DVD/Enums.cs b/DVD/Enums.cs
index e312402..f5e5b46 100644
--- a/DVD/Enums.cs
+++ b/DVD/Enums.cs
@@ -39,19 +39,32 @@ namespace Aaru.Decoders.DVD
public enum DiskCategory : byte
{
/// DVD-ROM. Version 1 is ECMA-267 and ECMA-268.
- DVDROM = 0, /// DVD-RAM. Version 1 is ECMA-272. Version 6 is ECMA-330.
- DVDRAM = 1, /// DVD-R. Version 1 is ECMA-279. Version 5 is ECMA-359. Version 6 is ECMA-382.
- DVDR = 2, /// DVD-RW. Version 2 is ECMA-338. Version 3 is ECMA-384.
- DVDRW = 3, /// HD DVD-ROM
- HDDVDROM = 4, /// HD DVD-RAM
- HDDVDRAM = 5, /// HD DVD-R
- HDDVDR = 6, /// HD DVD-RW
- HDDVDRW = 7, /// UMD. Version 0 is ECMA-365.
- UMD = 8, /// DVD+RW. Version 1 is ECMA-274. Version 2 is ECMA-337. Version 3 is ECMA-371.
- DVDPRW = 9, /// DVD+R. Version 1 is ECMA-349.
- DVDPR = 10, /// DVD+RW DL. Version 1 is ECMA-374.
- DVDPRWDL = 13, /// DVD+R DL. Version 1 is ECMA-364.
- DVDPRDL = 14, /// According to standards this value is reserved. It's used by Nintendo GODs and WODs.
+ DVDROM = 0,
+ /// DVD-RAM. Version 1 is ECMA-272. Version 6 is ECMA-330.
+ DVDRAM = 1,
+ /// DVD-R. Version 1 is ECMA-279. Version 5 is ECMA-359. Version 6 is ECMA-382.
+ DVDR = 2,
+ /// DVD-RW. Version 2 is ECMA-338. Version 3 is ECMA-384.
+ DVDRW = 3,
+ /// HD DVD-ROM
+ HDDVDROM = 4,
+ /// HD DVD-RAM
+ HDDVDRAM = 5,
+ /// HD DVD-R
+ HDDVDR = 6,
+ /// HD DVD-RW
+ HDDVDRW = 7,
+ /// UMD. Version 0 is ECMA-365.
+ UMD = 8,
+ /// DVD+RW. Version 1 is ECMA-274. Version 2 is ECMA-337. Version 3 is ECMA-371.
+ DVDPRW = 9,
+ /// DVD+R. Version 1 is ECMA-349.
+ DVDPR = 10,
+ /// DVD+RW DL. Version 1 is ECMA-374.
+ DVDPRWDL = 13,
+ /// DVD+R DL. Version 1 is ECMA-364.
+ DVDPRDL = 14,
+ /// According to standards this value is reserved. It's used by Nintendo GODs and WODs.
Nintendo = 15
}
@@ -59,10 +72,14 @@ namespace Aaru.Decoders.DVD
public enum MaximumRateField : byte
{
/// 2.52 Mbps
- TwoMbps = 0x00, /// 5.04 Mbps
- FiveMbps = 0x01, /// 10.08 Mbps
- TenMbps = 0x02, /// 20.16 Mbps
- TwentyMbps = 0x03, /// 30.24 Mbps
+ TwoMbps = 0x00,
+ /// 5.04 Mbps
+ FiveMbps = 0x01,
+ /// 10.08 Mbps
+ TenMbps = 0x02,
+ /// 20.16 Mbps
+ TwentyMbps = 0x03,
+ /// 30.24 Mbps
ThirtyMbps = 0x04, Unspecified = 0x0F
}
@@ -77,12 +94,18 @@ namespace Aaru.Decoders.DVD
public enum LinearDensityField : byte
{
/// 0.267 μm/bit
- TwoSix = 0x00, /// 0.293 μm/bit
- TwoNine = 0x01, /// 0.409 to 0.435 μm/bit
- FourZero = 0x02, /// 0.280 to 0.291 μm/bit
- TwoEight = 0x04, /// 0.153 μm/bit
- OneFive = 0x05, /// 0.130 to 0.140 μm/bit
- OneThree = 0x06, /// 0.353 μm/bit
+ TwoSix = 0x00,
+ /// 0.293 μm/bit
+ TwoNine = 0x01,
+ /// 0.409 to 0.435 μm/bit
+ FourZero = 0x02,
+ /// 0.280 to 0.291 μm/bit
+ TwoEight = 0x04,
+ /// 0.153 μm/bit
+ OneFive = 0x05,
+ /// 0.130 to 0.140 μm/bit
+ OneThree = 0x06,
+ /// 0.353 μm/bit
ThreeFive = 0x08
}
@@ -90,10 +113,14 @@ namespace Aaru.Decoders.DVD
public enum TrackDensityField : byte
{
/// 0.74 μm/track
- Seven = 0x00, /// 0.80 μm/track
- Eight = 0x01, /// 0.615 μm/track
- Six = 0x02, /// 0.40 μm/track
- Four = 0x03, /// 0.34 μm/track
+ Seven = 0x00,
+ /// 0.80 μm/track
+ Eight = 0x01,
+ /// 0.615 μm/track
+ Six = 0x02,
+ /// 0.40 μm/track
+ Four = 0x03,
+ /// 0.34 μm/track
Three = 0x04
}
@@ -101,9 +128,12 @@ namespace Aaru.Decoders.DVD
public enum CopyrightType : byte
{
/// There is no copy protection
- NoProtection = 0x00, /// Copy protection is CSS/CPPM
- CSS = 0x01, /// Copy protection is CPRM
- CPRM = 0x02, /// Copy protection is AACS
+ NoProtection = 0x00,
+ /// Copy protection is CSS/CPPM
+ CSS = 0x01,
+ /// Copy protection is CPRM
+ CPRM = 0x02,
+ /// Copy protection is AACS
AACS = 0x10
}
@@ -111,7 +141,8 @@ namespace Aaru.Decoders.DVD
public enum WPDiscTypes : byte
{
/// Should not write without a cartridge
- DoNotWrite = 0x00, /// Can write without a cartridge
+ DoNotWrite = 0x00,
+ /// Can write without a cartridge
CanWrite = 0x01, Reserved1 = 0x02, Reserved2 = 0x03
}
@@ -119,7 +150,8 @@ namespace Aaru.Decoders.DVD
public enum DVDSize
{
/// 120 mm
- OneTwenty = 0, /// 80 mm
+ OneTwenty = 0,
+ /// 80 mm
Eighty = 1
}
@@ -127,7 +159,8 @@ namespace Aaru.Decoders.DVD
public enum DVDRAMDiscType
{
/// Shall not be recorded without a case
- Cased = 0, /// May be recorded without a case or within one
+ Cased = 0,
+ /// May be recorded without a case or within one
Uncased = 1
}
diff --git a/DVD/PFI.cs b/DVD/PFI.cs
index a5deb8f..d08379c 100644
--- a/DVD/PFI.cs
+++ b/DVD/PFI.cs
@@ -99,8 +99,7 @@ namespace Aaru.Decoders.DVD
pfi.DataAreaEndPSN =
(uint)((response[12] << 24) + (response[13] << 16) + (response[14] << 8) + response[15]);
- pfi.Layer0EndPSN =
- (uint)((response[16] << 24) + (response[17] << 16) + (response[18] << 8) + response[19]);
+ pfi.Layer0EndPSN = (uint)((response[16] << 24) + (response[17] << 16) + (response[18] << 8) + response[19]);
pfi.BCA |= (response[20] & 0x80) == 0x80;
diff --git a/Floppy/Apple2.cs b/Floppy/Apple2.cs
index be5f2bf..1bea904 100644
--- a/Floppy/Apple2.cs
+++ b/Floppy/Apple2.cs
@@ -168,16 +168,16 @@ namespace Aaru.Decoders.Floppy
for(int i = 0; i < 51; i++)
{
- byte b1 = buffer[51 * 3 - i];
- byte b2 = buffer[51 * 2 - i];
- byte b3 = buffer[51 - i];
+ byte b1 = buffer[(51 * 3) - i];
+ byte b2 = buffer[(51 * 2) - i];
+ byte b3 = buffer[51 - i];
byte b4 = (byte)((((b1 & 2) << 1) | (b2 & 2) | ((b3 & 2) >> 1)) & 0xFF);
byte b5 = (byte)((((b1 & 1) << 2) | ((b2 & 1) << 1) | (b3 & 1)) & 0xFF);
- output[250 - 5 * i] = (byte)(((buffer[i + 51 * 3 + 1] << 3) | ((b1 >> 2) & 0x7)) & 0xFF);
- output[251 - 5 * i] = (byte)(((buffer[i + 51 * 4 + 1] << 3) | ((b2 >> 2) & 0x7)) & 0xFF);
- output[252 - 5 * i] = (byte)(((buffer[i + 51 * 5 + 1] << 3) | ((b3 >> 2) & 0x7)) & 0xFF);
- output[253 - 5 * i] = (byte)(((buffer[i + 51 * 6 + 1] << 3) | b4) & 0xFF);
- output[254 - 5 * i] = (byte)(((buffer[i + 51 * 7 + 1] << 3) | b5) & 0xFF);
+ output[250 - (5 * i)] = (byte)(((buffer[i + (51 * 3) + 1] << 3) | ((b1 >> 2) & 0x7)) & 0xFF);
+ output[251 - (5 * i)] = (byte)(((buffer[i + (51 * 4) + 1] << 3) | ((b2 >> 2) & 0x7)) & 0xFF);
+ output[252 - (5 * i)] = (byte)(((buffer[i + (51 * 5) + 1] << 3) | ((b3 >> 2) & 0x7)) & 0xFF);
+ output[253 - (5 * i)] = (byte)(((buffer[i + (51 * 6) + 1] << 3) | b4) & 0xFF);
+ output[254 - (5 * i)] = (byte)(((buffer[i + (51 * 7) + 1] << 3) | b5) & 0xFF);
}
output[255] = (byte)(((buffer[409] << 3) | (buffer[0] & 0x7)) & 0xFF);
@@ -220,8 +220,8 @@ namespace Aaru.Decoders.Floppy
}
else
{
- output[i] |= (byte)(((buffer[i - 86 * 2] & 0x10) >> 3) & 0xFF);
- output[i] |= (byte)(((buffer[i - 86 * 2] & 0x20) >> 5) & 0xFF);
+ output[i] |= (byte)(((buffer[i - (86 * 2)] & 0x10) >> 3) & 0xFF);
+ output[i] |= (byte)(((buffer[i - (86 * 2)] & 0x20) >> 5) & 0xFF);
}
}
@@ -306,24 +306,24 @@ namespace Aaru.Decoders.Floppy
};
AaruConsole.DebugWriteLine("Apple ][ GCR Decoder", "Volume {0}",
- (((sector.addressField.volume[0] & 0x55) << 1) |
- (sector.addressField.volume[1] & 0x55)) & 0xFF);
+ (((sector.addressField.volume[0] & 0x55) << 1) |
+ (sector.addressField.volume[1] & 0x55)) & 0xFF);
AaruConsole.DebugWriteLine("Apple ][ GCR Decoder", "Track {0}",
- (((sector.addressField.track[0] & 0x55) << 1) |
- (sector.addressField.track[1] & 0x55)) & 0xFF);
+ (((sector.addressField.track[0] & 0x55) << 1) |
+ (sector.addressField.track[1] & 0x55)) & 0xFF);
AaruConsole.DebugWriteLine("Apple ][ GCR Decoder", "Sector {0}",
- (((sector.addressField.sector[0] & 0x55) << 1) |
- (sector.addressField.sector[1] & 0x55)) & 0xFF);
+ (((sector.addressField.sector[0] & 0x55) << 1) |
+ (sector.addressField.sector[1] & 0x55)) & 0xFF);
AaruConsole.DebugWriteLine("Apple ][ GCR Decoder", "Checksum {0}",
- (((sector.addressField.checksum[0] & 0x55) << 1) |
- (sector.addressField.checksum[1] & 0x55)) & 0xFF);
+ (((sector.addressField.checksum[0] & 0x55) << 1) |
+ (sector.addressField.checksum[1] & 0x55)) & 0xFF);
AaruConsole.DebugWriteLine("Apple ][ GCR Decoder", "Epilogue {0:X2}{1:X2}{2:X2}",
- sector.addressField.epilogue[0], sector.addressField.epilogue[1],
- sector.addressField.epilogue[2]);
+ sector.addressField.epilogue[0], sector.addressField.epilogue[1],
+ sector.addressField.epilogue[2]);
position += 14;
int syncCount = 0;
@@ -351,7 +351,7 @@ namespace Aaru.Decoders.Floppy
sector.dataField = new RawDataField();
AaruConsole.DebugWriteLine("Apple ][ GCR Decoder", "Inner gap has {0} bytes",
- sector.innerGap.Length);
+ sector.innerGap.Length);
AaruConsole.DebugWriteLine("Apple ][ GCR Decoder", "Prologue found at {0}", position);
sector.dataField.prologue = new byte[3];
@@ -377,7 +377,7 @@ namespace Aaru.Decoders.Floppy
sector.dataField.data = gaps.ToArray();
AaruConsole.DebugWriteLine("Apple ][ GCR Decoder", "Data has {0} bytes",
- sector.dataField.data.Length);
+ sector.dataField.data.Length);
sector.dataField.checksum = data[position];
sector.dataField.epilogue = new byte[3];
@@ -519,10 +519,10 @@ namespace Aaru.Decoders.Floppy
}
AaruConsole.DebugWriteLine("Apple ][ GCR Decoder", "Adding sector {0} of track {1}",
- (((sector.addressField.sector[0] & 0x55) << 1) |
- (sector.addressField.sector[1] & 0x55)) & 0xFF,
- (((sector.addressField.track[0] & 0x55) << 1) |
- (sector.addressField.track[1] & 0x55)) & 0xFF);
+ (((sector.addressField.sector[0] & 0x55) << 1) |
+ (sector.addressField.sector[1] & 0x55)) & 0xFF,
+ (((sector.addressField.track[0] & 0x55) << 1) |
+ (sector.addressField.track[1] & 0x55)) & 0xFF);
sectors.Add(sector);
}
diff --git a/Floppy/Enums.cs b/Floppy/Enums.cs
index 0243438..927b1a9 100644
--- a/Floppy/Enums.cs
+++ b/Floppy/Enums.cs
@@ -39,13 +39,20 @@ namespace Aaru.Decoders.Floppy
public enum IBMSectorSizeCode : byte
{
/// 128 bytes/sector
- EighthKilo = 0, /// 256 bytes/sector
- QuarterKilo = 1, /// 512 bytes/sector
- HalfKilo = 2, /// 1024 bytes/sector
- Kilo = 3, /// 2048 bytes/sector
- TwiceKilo = 4, /// 4096 bytes/sector
- FriceKilo = 5, /// 8192 bytes/sector
- TwiceFriceKilo = 6, /// 16384 bytes/sector
+ EighthKilo = 0,
+ /// 256 bytes/sector
+ QuarterKilo = 1,
+ /// 512 bytes/sector
+ HalfKilo = 2,
+ /// 1024 bytes/sector
+ Kilo = 3,
+ /// 2048 bytes/sector
+ TwiceKilo = 4,
+ /// 4096 bytes/sector
+ FriceKilo = 5,
+ /// 8192 bytes/sector
+ TwiceFriceKilo = 6,
+ /// 16384 bytes/sector
FricelyFriceKilo = 7
}
@@ -60,9 +67,12 @@ namespace Aaru.Decoders.Floppy
public enum AppleEncodedFormat : byte
{
/// Disk is an Apple II 3.5" disk
- AppleII = 0x96, /// Disk is an Apple Lisa 3.5" disk
- Lisa = 0x97, /// Disk is an Apple Macintosh single-sided 3.5" disk
- MacSingleSide = 0x9A, /// Disk is an Apple Macintosh double-sided 3.5" disk
+ AppleII = 0x96,
+ /// Disk is an Apple Lisa 3.5" disk
+ Lisa = 0x97,
+ /// Disk is an Apple Macintosh single-sided 3.5" disk
+ MacSingleSide = 0x9A,
+ /// Disk is an Apple Macintosh double-sided 3.5" disk
MacDoubleSide = 0xD9
}
}
\ No newline at end of file
diff --git a/MMC/ExtendedCSD.cs b/MMC/ExtendedCSD.cs
index c9ca50d..84cb6a9 100644
--- a/MMC/ExtendedCSD.cs
+++ b/MMC/ExtendedCSD.cs
@@ -221,8 +221,8 @@ namespace Aaru.Decoders.MMC
if(response.Length != 512)
return null;
- GCHandle handle = GCHandle.Alloc(response, GCHandleType.Pinned);
- var csd = (ExtendedCSD)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(ExtendedCSD));
+ var handle = GCHandle.Alloc(response, GCHandleType.Pinned);
+ var csd = (ExtendedCSD)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(ExtendedCSD));
handle.Free();
return csd;
@@ -473,7 +473,7 @@ namespace Aaru.Decoders.MMC
sb.AppendFormat("\tDevice has a {0} KiB boot partition", csd.BootPartitionSize * 128).AppendLine();
if((csd.AccessSize & 0x0F) > 0)
- sb.AppendFormat("\tDevice has a page size of {0} KiB", (csd.AccessSize & 0x0F) * 512.0 / 1024.0).
+ sb.AppendFormat("\tDevice has a page size of {0} KiB", ((csd.AccessSize & 0x0F) * 512.0) / 1024.0).
AppendLine();
if(csd.HighCapacityEraseUnitSize > 0)
diff --git a/MMC/VendorString.cs b/MMC/VendorString.cs
index c867045..784e5d0 100644
--- a/MMC/VendorString.cs
+++ b/MMC/VendorString.cs
@@ -38,9 +38,9 @@ namespace Aaru.Decoders.MMC
{
switch(mmcVendorId)
{
- case 0x15: return"Samsung";
- case 0x2C: return"extreMEmory";
- default: return$"Unknown manufacturer ID 0x{mmcVendorId:X2}";
+ case 0x15: return "Samsung";
+ case 0x2C: return "extreMEmory";
+ default: return $"Unknown manufacturer ID 0x{mmcVendorId:X2}";
}
}
}
diff --git a/PCMCIA/Enums.cs b/PCMCIA/Enums.cs
index c0488a6..138dfae 100644
--- a/PCMCIA/Enums.cs
+++ b/PCMCIA/Enums.cs
@@ -39,45 +39,84 @@ namespace Aaru.Decoders.PCMCIA
public enum TupleCodes : byte
{
/// Checksum control
- CISTPL_CHECKSUM = 0x10, /// End-of-chain
- CISTPL_END = 0xFF, /// Indirect access PC Card memory
- CISTPL_INDIRECT = 0x03, /// Link-target-control
- CISTPL_LINKTARGET = 0x13, /// Longlink to attribute memory
- CISTPL_LONGLINK_A = 0x11, /// Longlink to common memory
- CISTPL_LONGLINK_C = 0x12, /// Longlink to next chain on a Cardbus PC Card
- CISTPL_LONGLINK_CB = 0x02, /// Longlink to function specific chains
- CISTPL_LONGLINK_MFC = 0x06, /// No-link to common memory
- CISTPL_NO_LINK = 0x14, /// Null tuple
- CISTPL_NULL = 0x00, /// Alternate language string
- CISTPL_ALTSTR = 0x16, /// Common memory device information
- CISTPL_DEVICE = 0x01, /// Attribute memory device information
- CISTPL_DEVICE_A = 0x17, /// Other operating conditions information for attribute memory
- CISTPL_DEVICE_OA = 0x1D, /// Other operating conditions information for common memory
- CISTPL_DEVICE_OC = 0x1C, /// Device geometry information for common memory
- CISTPL_DEVICEGEO = 0x1E, /// Device geometry information for attribute memory
- CISTPL_DEVICEGEO_A = 0x1F, /// Extended common memory device information
- CISTPL_EXTDEVIC = 0x09, /// Function extensions
- CISTPL_FUNCE = 0x22, /// Function class identification
- CISTPL_FUNCID = 0x21, /// JEDEC programming information for attribute memory
- CISTPL_JEDEC_A = 0x19, /// JEDEC programming information for common memory
- CISTPL_JEDEC_C = 0x18, /// Manufacturer identification string
- CISTPL_MANFID = 0x20, /// Level 1 version/product information
- CISTPL_VERS_1 = 0x15, /// BAR for a CardBus PC Card
- CISTPL_BAR = 0x07, /// Configuration-table-entry
- CISTPL_CFTABLE_ENTRY = 0x1B, /// Configuration-table-entry for a CardBus PC Card
- CISTPL_CFTABLE_ENTRY_CB = 0x05, /// Configuration tuple for a 16-bit PC Card
- CISTPL_CONFIG = 0x1A, /// Configuration tuple for a CardBus PC Card
- CISTPL_CONFIG_CB = 0x04, /// Function state save/restore definition
- CISTPL_PWR_MGMNT = 0x08, /// Battery replacement date
- CISTPL_BATTERY = 0x45, /// Card initialization date
- CISTPL_DATE = 0x44, /// Level 2 version/product information
- CISTPL_VERS_2 = 0x40, /// Byte ordering for disk-like partitions
- CISTPL_BYTEORDER = 0x43, /// Data recording format for common memory
- CISTPL_FORMAT = 0x41, /// Data recording format for attribute memory
- CISTPL_FORMAT_A = 0x47, /// Partition geometry
- CISTPL_GEOMETRY = 0x42, /// Software interleaving
- CISTPL_SWIL = 0x23, /// Partition organization
- CISTPL_ORG = 0x46, /// Special purpose
+ CISTPL_CHECKSUM = 0x10,
+ /// End-of-chain
+ CISTPL_END = 0xFF,
+ /// Indirect access PC Card memory
+ CISTPL_INDIRECT = 0x03,
+ /// Link-target-control
+ CISTPL_LINKTARGET = 0x13,
+ /// Longlink to attribute memory
+ CISTPL_LONGLINK_A = 0x11,
+ /// Longlink to common memory
+ CISTPL_LONGLINK_C = 0x12,
+ /// Longlink to next chain on a Cardbus PC Card
+ CISTPL_LONGLINK_CB = 0x02,
+ /// Longlink to function specific chains
+ CISTPL_LONGLINK_MFC = 0x06,
+ /// No-link to common memory
+ CISTPL_NO_LINK = 0x14,
+ /// Null tuple
+ CISTPL_NULL = 0x00,
+ /// Alternate language string
+ CISTPL_ALTSTR = 0x16,
+ /// Common memory device information
+ CISTPL_DEVICE = 0x01,
+ /// Attribute memory device information
+ CISTPL_DEVICE_A = 0x17,
+ /// Other operating conditions information for attribute memory
+ CISTPL_DEVICE_OA = 0x1D,
+ /// Other operating conditions information for common memory
+ CISTPL_DEVICE_OC = 0x1C,
+ /// Device geometry information for common memory
+ CISTPL_DEVICEGEO = 0x1E,
+ /// Device geometry information for attribute memory
+ CISTPL_DEVICEGEO_A = 0x1F,
+ /// Extended common memory device information
+ CISTPL_EXTDEVIC = 0x09,
+ /// Function extensions
+ CISTPL_FUNCE = 0x22,
+ /// Function class identification
+ CISTPL_FUNCID = 0x21,
+ /// JEDEC programming information for attribute memory
+ CISTPL_JEDEC_A = 0x19,
+ /// JEDEC programming information for common memory
+ CISTPL_JEDEC_C = 0x18,
+ /// Manufacturer identification string
+ CISTPL_MANFID = 0x20,
+ /// Level 1 version/product information
+ CISTPL_VERS_1 = 0x15,
+ /// BAR for a CardBus PC Card
+ CISTPL_BAR = 0x07,
+ /// Configuration-table-entry
+ CISTPL_CFTABLE_ENTRY = 0x1B,
+ /// Configuration-table-entry for a CardBus PC Card
+ CISTPL_CFTABLE_ENTRY_CB = 0x05,
+ /// Configuration tuple for a 16-bit PC Card
+ CISTPL_CONFIG = 0x1A,
+ /// Configuration tuple for a CardBus PC Card
+ CISTPL_CONFIG_CB = 0x04,
+ /// Function state save/restore definition
+ CISTPL_PWR_MGMNT = 0x08,
+ /// Battery replacement date
+ CISTPL_BATTERY = 0x45,
+ /// Card initialization date
+ CISTPL_DATE = 0x44,
+ /// Level 2 version/product information
+ CISTPL_VERS_2 = 0x40,
+ /// Byte ordering for disk-like partitions
+ CISTPL_BYTEORDER = 0x43,
+ /// Data recording format for common memory
+ CISTPL_FORMAT = 0x41,
+ /// Data recording format for attribute memory
+ CISTPL_FORMAT_A = 0x47,
+ /// Partition geometry
+ CISTPL_GEOMETRY = 0x42,
+ /// Software interleaving
+ CISTPL_SWIL = 0x23,
+ /// Partition organization
+ CISTPL_ORG = 0x46,
+ /// Special purpose
CISTPL_SPCL = 0x90
}
@@ -85,15 +124,24 @@ namespace Aaru.Decoders.PCMCIA
public enum DeviceTypeCodes : byte
{
/// No device, used to designate a hole
- DTYPE_NULL = 0, /// Masked ROM
- DTYPE_ROM = 1, /// One-type-programmable ROM
- DTYPE_OTPROM = 2, /// UV-Erasable Programmable ROM
- DTYPE_EPROM = 3, /// Electronically-Erasable Programmable ROM
- DTYPE_EEPROM = 4, /// Flash memory
- DTYPE_FLASH = 5, /// Static RAM
- DTYPE_SRAM = 6, /// Dynamic RAM
- DTYPE_DRAM = 7, /// Function-specific memory address range
- DTYPE_FUNCSPEC = 13, /// Extended type follows
+ DTYPE_NULL = 0,
+ /// Masked ROM
+ DTYPE_ROM = 1,
+ /// One-type-programmable ROM
+ DTYPE_OTPROM = 2,
+ /// UV-Erasable Programmable ROM
+ DTYPE_EPROM = 3,
+ /// Electronically-Erasable Programmable ROM
+ DTYPE_EEPROM = 4,
+ /// Flash memory
+ DTYPE_FLASH = 5,
+ /// Static RAM
+ DTYPE_SRAM = 6,
+ /// Dynamic RAM
+ DTYPE_DRAM = 7,
+ /// Function-specific memory address range
+ DTYPE_FUNCSPEC = 13,
+ /// Extended type follows
DTYPE_EXTEND = 14
}
@@ -101,11 +149,16 @@ namespace Aaru.Decoders.PCMCIA
public enum DeviceSpeedCodes : byte
{
/// No device
- DSPEED_NULL = 0, /// 250 ns
- DSPEED_250NS = 1, /// 200 ns
- DSPEED_200NS = 2, /// 150 ns
- DSPEED_150NS = 3, /// 100 ns
- DSPEED_100NS = 4, /// Extended speed follows
+ DSPEED_NULL = 0,
+ /// 250 ns
+ DSPEED_250NS = 1,
+ /// 200 ns
+ DSPEED_200NS = 2,
+ /// 150 ns
+ DSPEED_150NS = 3,
+ /// 100 ns
+ DSPEED_100NS = 4,
+ /// Extended speed follows
DSPEED_EXT = 7
}
diff --git a/PCMCIA/VendorCode.cs b/PCMCIA/VendorCode.cs
index 01077f9..0b90845 100644
--- a/PCMCIA/VendorCode.cs
+++ b/PCMCIA/VendorCode.cs
@@ -42,321 +42,321 @@ namespace Aaru.Decoders.PCMCIA
switch(id)
{
#region JEDEC
- case 0x01: return"AMD";
- case 0x02: return"AMI";
- case 0x83: return"Fairchild";
- case 0x04: return"Fujitsu";
- case 0x85: return"GTE";
- case 0x86: return"Harris";
- case 0x07: return"Hitachi";
- case 0x08: return"Inmos";
- case 0x89: return"Intel";
- case 0x8A: return"I.T.T.";
- case 0x0B: return"Intersil";
- case 0x8C: return"Monolithic Memories";
- case 0x0D: return"Mostek";
- case 0x0E: return"Freescale";
- case 0x8F: return"National";
- case 0x10: return"NEC";
- case 0x91: return"RCA";
- case 0x92: return"Raytheon";
- case 0x13: return"Conexant";
- case 0x94: return"Seeq";
- case 0x15: return"NXP";
- case 0x16: return"Synertek";
- case 0x97: return"Texas Instruments";
- case 0x98: return"Toshiba";
- case 0x19: return"Xicor";
- case 0x1A: return"Zilog";
- case 0x9B: return"Eurotechnique";
- case 0x1C: return"Mitsubishi2";
- case 0x9D: return"Lucent";
- case 0x9E: return"Exel";
- case 0x1F: return"Atmel";
- case 0x20: return"SGS/Thomson";
- case 0xA1: return"Lattice Semiconductor";
- case 0xA2: return"NCR";
- case 0x23: return"Wafer Scale Integration";
- case 0xA4: return"International Business Machines";
- case 0x25: return"Tristar";
- case 0x26: return"Visic";
- case 0xA7: return"International CMOS Technology";
- case 0xA8: return"SSSI";
- case 0x29: return"Microchip Technology";
- case 0x2A: return"Ricoh";
- case 0xAB: return"VLSI";
- case 0x2C: return"Micron Technology";
- case 0xAD: return"Hynix Semiconductor";
- case 0xAE: return"OKI Semiconductor";
- case 0x2F: return"ACTEL";
- case 0xB0: return"Sharp";
- case 0x31: return"Catalyst";
- case 0x32: return"Panasonic";
- case 0xB3: return"IDT";
- case 0x34: return"Cypress";
- case 0xB5: return"Digital Equipment Corporation";
- case 0xB6: return"LSI Logic";
- case 0x37: return"Zarlink";
- case 0x38: return"UTMC";
- case 0xB9: return"Thinking Machine";
- case 0xBA: return"Thomson CSF";
- case 0x3B: return"Integrated CMOS";
- case 0xBC: return"Honeywell";
- case 0x3D: return"Tektronix";
- case 0x3E: return"Oracle Corporation";
- case 0xBF: return"Silicon Storage Technology";
- case 0x40: return"ProMos";
- case 0xC1: return"Infineon";
- case 0xC2: return"Macronix";
- case 0x43: return"Xerox";
- case 0xC4: return"Plus Logic";
- case 0x45: return"SanDisk Corporation";
- case 0x46: return"Elan Circuit Technology";
- case 0xC7: return"European Silicon";
- case 0xC8: return"Apple";
- case 0x49: return"Xilinx";
- case 0x4A: return"Compaq";
- case 0xCB: return"Protocol Engines";
- case 0x4C: return"SCI";
- case 0xCD: return"Seiko Instruments";
- case 0xCE: return"Samsung";
- case 0x4F: return"I3 Design System";
- case 0xD0: return"Klic";
- case 0x51: return"Crosspoint Solutions";
- case 0x52: return"Alliance Semiconductor";
- case 0xD3: return"Tandem";
- case 0x54: return"Hewlett-Packard";
- case 0xD5: return"Integrated Silicon Solutions";
- case 0xD6: return"Brooktree";
- case 0x57: return"New Media";
- case 0x58: return"MHS Electronic";
- case 0xD9: return"Performance Semiconductors";
- case 0xDA: return"Winbond Electronic";
- case 0x5B: return"Kawasaki Steel";
- case 0x5D: return"TECMAR";
- case 0x5E: return"Exar";
- case 0xDF: return"PCMCIA";
- case 0xE0: return"LG Semiconductor";
- case 0x61: return"Northern Telecom";
- case 0x62: return"Sanyo2";
- case 0xE3: return"Array Microsystems";
- case 0x64: return"Crystal Semiconductor";
- case 0xE5: return"Analog Devices";
- case 0xE6: return"PMC-Sierra";
- case 0x67: return"Asparix";
- case 0x68: return"Convex Computer";
- case 0xE9: return"Nimbus Technology";
- case 0x6B: return"Transwitch";
- case 0xEC: return"Micronas";
- case 0x6D: return"Canon";
- case 0x6E: return"Altera";
- case 0xEF: return"NEXCOM";
- case 0x70: return"Qualcomm";
- case 0xF1: return"Sony";
- case 0xF2: return"Cray Research";
- case 0x73: return"AMS";
- case 0xF4: return"Vitesse";
- case 0x75: return"Aster Electronics";
- case 0x76: return"Bay Networks";
- case 0xF7: return"Zentrum";
- case 0xF8: return"TRW";
- case 0x79: return"Thesys";
- case 0x7A: return"Solbourne Computer";
- case 0xFB: return"Allied-Signal";
- case 0x7C: return"Dialog Semiconductor";
- case 0xFD: return"Media Vision";
- case 0xFE: return"Numonyx Corporation";
- case 0x7F01: return"Cirrus Logic";
- case 0x7F02: return"National Instruments";
- case 0x7F04: return"Alcatel Mietec";
- case 0x7F07: return"JTAG Technologies";
- case 0x7F08: return"Loral";
- case 0x7F0B: return"Bestlink Systems";
- case 0x7F0D: return"GENNUM";
- case 0x7F0E: return"VideoLogic";
- case 0x7F10: return"Chip Express";
- case 0x7F13: return"TCSI";
- case 0x7F15: return"Hughes Aircraft";
- case 0x7F16: return"Lanstar Semiconductor";
- case 0x7F19: return"Music Semi";
- case 0x7F1A: return"Ericsson Components";
- case 0x7F1C: return"Eon Silicon Devices";
- case 0x7F1F: return"Integ.Memories Tech.";
- case 0x7F20: return"Corollary Inc.";
- case 0x7F23: return"EIV(Switzerland)";
- case 0x7F25: return"Zarlink(formerly Mitel)";
- case 0x7F26: return"Clearpoint";
- case 0x7F29: return"Vanguard";
- case 0x7F2A: return"Hagiwara Sys-Com";
- case 0x7F2C: return"Celestica";
- case 0x7F2F: return"Rohm Company Ltd.";
- case 0x7F31: return"Libit Signal Processing";
- case 0x7F32: return"Enhanced Memories Inc.";
- case 0x7F34: return"Adaptec Inc.";
- case 0x7F37: return"AMIC Technology";
- case 0x7F38: return"Adobe Systems";
- case 0x7F3B: return"Newport Digital";
- case 0x7F3D: return"T Square";
- case 0x7F3E: return"Seiko Epson";
- case 0x7F40: return"Viking Components";
- case 0x7F43: return"Suwa Electronics";
- case 0x7F45: return"Micron CMS";
- case 0x7F46: return"American Computer &Digital Components Inc";
- case 0x7F49: return"CPU Design";
- case 0x7F4A: return"Price Point";
- case 0x7F4C: return"Tellabs";
- case 0x7F4F: return"Transcend Information";
- case 0x7F51: return"CKD Corporation Ltd.";
- case 0x7F52: return"Capital Instruments, Inc.";
- case 0x7F54: return"Linvex Technology";
- case 0x7F57: return"Dynamem, Inc.";
- case 0x7F58: return"NERA ASA";
- case 0x7F5B: return"Acorn Computers";
- case 0x7F5D: return"Oak Technology, Inc.";
- case 0x7F5E: return"Itec Memory";
- case 0x7F61: return"Wintec Industries";
- case 0x7F62: return"Super PC Memory";
- case 0x7F64: return"Galvantech";
- case 0x7F67: return"GateField";
- case 0x7F68: return"Integrated Memory System";
- case 0x7F6B: return"Goldenram";
- case 0x7F6D: return"Cimaron Communications";
- case 0x7F6E: return"Nippon Steel Semi.Corp.";
- case 0x7F70: return"AMCC";
- case 0x7F73: return"Digital Microwave";
- case 0x7F75: return"MIMOS Semiconductor";
- case 0x7F76: return"Advanced Fibre";
- case 0x7F79: return"Acbel Polytech Inc.";
- case 0x7F7A: return"Apacer Technology";
- case 0x7F7C: return"FOXCONN";
- case 0x7F83: return"ILC Data Device";
- case 0x7F85: return"Micro Linear";
- case 0x7F86: return"Univ.Of NC";
- case 0x7F89: return"Nchip";
- case 0x7F8A: return"Galileo Tech";
- case 0x7F8C: return"Graychip";
- case 0x7F8F: return"Robert Bosch";
- case 0x7F91: return"DATARAM";
- case 0x7F92: return"United Microelec Corp.";
- case 0x7F94: return"Smart Modular";
- case 0x7F97: return"Qlogic";
- case 0x7F98: return"Kingston";
- case 0x7F9B: return"SpaSE";
- case 0x7F9D: return"Programmable Micro Corp";
- case 0x7F9E: return"DoD";
- case 0x7FA1: return"Dallas Semiconductor";
- case 0x7FA2: return"Omnivision";
- case 0x7FA4: return"Novatel Wireless";
- case 0x7FA7: return"Cabletron";
- case 0x7FA8: return"Silicon Technology";
- case 0x7FAB: return"Vantis";
- case 0x7FAD: return"Century";
- case 0x7FAE: return"Hal Computers";
- case 0x7FB0: return"Juniper Networks";
- case 0x7FB3: return"Tundra Semiconductor";
- case 0x7FB5: return"LightSpeed Semi.";
- case 0x7FB6: return"ZSP Corp.";
- case 0x7FB9: return"Dynachip";
- case 0x7FBA: return"PNY Electronics";
- case 0x7FBC: return"MMC Networks";
- case 0x7FBF: return"Broadcom";
- case 0x7FC1: return"V3 Semiconductor";
- case 0x7FC2: return"Flextronics(formerly Orbit)";
- case 0x7FC4: return"Transmeta";
- case 0x7FC7: return"Enhance 3000 Inc";
- case 0x7FC8: return"Tower Semiconductor";
- case 0x7FCB: return"Maxim Integrated Product";
- case 0x7FCD: return"Centaur Technology";
- case 0x7FCE: return"Unigen Corporation";
- case 0x7FD0: return"Memory Card Technology";
- case 0x7FD3: return"Aica Kogyo, Ltd.";
- case 0x7FD5: return"MSC Vertriebs GmbH";
- case 0x7FD6: return"AKM Company, Ltd.";
- case 0x7FD9: return"GSI Technology";
- case 0x7FDA: return"Dane-Elec (C Memory)";
- case 0x7FDC: return"Lara Technology";
- case 0x7FDF: return"Tanisys Technology";
- case 0x7FE0: return"Truevision";
- case 0x7FE3: return"MGV Memory";
- case 0x7FE5: return"Gadzoox Networks";
- case 0x7FE6: return"Multi Dimensional Cons.";
- case 0x7FE9: return"Triscend";
- case 0x7FEA: return"XaQti";
- case 0x7FEC: return"Clear Logic";
- case 0x7FEF: return"Advantage Memory";
- case 0x7FF1: return"LeCroy";
- case 0x7FF2: return"Yamaha Corporation";
- case 0x7FF4: return"NetLogic Microsystems";
- case 0x7FF7: return"BF Goodrich Data.";
- case 0x7FF8: return"Epigram";
- case 0x7FFB: return"Admor Memory";
- case 0x7FFD: return"Quadratics Superconductor";
- case 0x7FFE: return"3COM";
+ case 0x01: return "AMD";
+ case 0x02: return "AMI";
+ case 0x83: return "Fairchild";
+ case 0x04: return "Fujitsu";
+ case 0x85: return "GTE";
+ case 0x86: return "Harris";
+ case 0x07: return "Hitachi";
+ case 0x08: return "Inmos";
+ case 0x89: return "Intel";
+ case 0x8A: return "I.T.T.";
+ case 0x0B: return "Intersil";
+ case 0x8C: return "Monolithic Memories";
+ case 0x0D: return "Mostek";
+ case 0x0E: return "Freescale";
+ case 0x8F: return "National";
+ case 0x10: return "NEC";
+ case 0x91: return "RCA";
+ case 0x92: return "Raytheon";
+ case 0x13: return "Conexant";
+ case 0x94: return "Seeq";
+ case 0x15: return "NXP";
+ case 0x16: return "Synertek";
+ case 0x97: return "Texas Instruments";
+ case 0x98: return "Toshiba";
+ case 0x19: return "Xicor";
+ case 0x1A: return "Zilog";
+ case 0x9B: return "Eurotechnique";
+ case 0x1C: return "Mitsubishi2";
+ case 0x9D: return "Lucent";
+ case 0x9E: return "Exel";
+ case 0x1F: return "Atmel";
+ case 0x20: return "SGS/Thomson";
+ case 0xA1: return "Lattice Semiconductor";
+ case 0xA2: return "NCR";
+ case 0x23: return "Wafer Scale Integration";
+ case 0xA4: return "International Business Machines";
+ case 0x25: return "Tristar";
+ case 0x26: return "Visic";
+ case 0xA7: return "International CMOS Technology";
+ case 0xA8: return "SSSI";
+ case 0x29: return "Microchip Technology";
+ case 0x2A: return "Ricoh";
+ case 0xAB: return "VLSI";
+ case 0x2C: return "Micron Technology";
+ case 0xAD: return "Hynix Semiconductor";
+ case 0xAE: return "OKI Semiconductor";
+ case 0x2F: return "ACTEL";
+ case 0xB0: return "Sharp";
+ case 0x31: return "Catalyst";
+ case 0x32: return "Panasonic";
+ case 0xB3: return "IDT";
+ case 0x34: return "Cypress";
+ case 0xB5: return "Digital Equipment Corporation";
+ case 0xB6: return "LSI Logic";
+ case 0x37: return "Zarlink";
+ case 0x38: return "UTMC";
+ case 0xB9: return "Thinking Machine";
+ case 0xBA: return "Thomson CSF";
+ case 0x3B: return "Integrated CMOS";
+ case 0xBC: return "Honeywell";
+ case 0x3D: return "Tektronix";
+ case 0x3E: return "Oracle Corporation";
+ case 0xBF: return "Silicon Storage Technology";
+ case 0x40: return "ProMos";
+ case 0xC1: return "Infineon";
+ case 0xC2: return "Macronix";
+ case 0x43: return "Xerox";
+ case 0xC4: return "Plus Logic";
+ case 0x45: return "SanDisk Corporation";
+ case 0x46: return "Elan Circuit Technology";
+ case 0xC7: return "European Silicon";
+ case 0xC8: return "Apple";
+ case 0x49: return "Xilinx";
+ case 0x4A: return "Compaq";
+ case 0xCB: return "Protocol Engines";
+ case 0x4C: return "SCI";
+ case 0xCD: return "Seiko Instruments";
+ case 0xCE: return "Samsung";
+ case 0x4F: return "I3 Design System";
+ case 0xD0: return "Klic";
+ case 0x51: return "Crosspoint Solutions";
+ case 0x52: return "Alliance Semiconductor";
+ case 0xD3: return "Tandem";
+ case 0x54: return "Hewlett-Packard";
+ case 0xD5: return "Integrated Silicon Solutions";
+ case 0xD6: return "Brooktree";
+ case 0x57: return "New Media";
+ case 0x58: return "MHS Electronic";
+ case 0xD9: return "Performance Semiconductors";
+ case 0xDA: return "Winbond Electronic";
+ case 0x5B: return "Kawasaki Steel";
+ case 0x5D: return "TECMAR";
+ case 0x5E: return "Exar";
+ case 0xDF: return "PCMCIA";
+ case 0xE0: return "LG Semiconductor";
+ case 0x61: return "Northern Telecom";
+ case 0x62: return "Sanyo2";
+ case 0xE3: return "Array Microsystems";
+ case 0x64: return "Crystal Semiconductor";
+ case 0xE5: return "Analog Devices";
+ case 0xE6: return "PMC-Sierra";
+ case 0x67: return "Asparix";
+ case 0x68: return "Convex Computer";
+ case 0xE9: return "Nimbus Technology";
+ case 0x6B: return "Transwitch";
+ case 0xEC: return "Micronas";
+ case 0x6D: return "Canon";
+ case 0x6E: return "Altera";
+ case 0xEF: return "NEXCOM";
+ case 0x70: return "Qualcomm";
+ case 0xF1: return "Sony";
+ case 0xF2: return "Cray Research";
+ case 0x73: return "AMS";
+ case 0xF4: return "Vitesse";
+ case 0x75: return "Aster Electronics";
+ case 0x76: return "Bay Networks";
+ case 0xF7: return "Zentrum";
+ case 0xF8: return "TRW";
+ case 0x79: return "Thesys";
+ case 0x7A: return "Solbourne Computer";
+ case 0xFB: return "Allied-Signal";
+ case 0x7C: return "Dialog Semiconductor";
+ case 0xFD: return "Media Vision";
+ case 0xFE: return "Numonyx Corporation";
+ case 0x7F01: return "Cirrus Logic";
+ case 0x7F02: return "National Instruments";
+ case 0x7F04: return "Alcatel Mietec";
+ case 0x7F07: return "JTAG Technologies";
+ case 0x7F08: return "Loral";
+ case 0x7F0B: return "Bestlink Systems";
+ case 0x7F0D: return "GENNUM";
+ case 0x7F0E: return "VideoLogic";
+ case 0x7F10: return "Chip Express";
+ case 0x7F13: return "TCSI";
+ case 0x7F15: return "Hughes Aircraft";
+ case 0x7F16: return "Lanstar Semiconductor";
+ case 0x7F19: return "Music Semi";
+ case 0x7F1A: return "Ericsson Components";
+ case 0x7F1C: return "Eon Silicon Devices";
+ case 0x7F1F: return "Integ.Memories Tech.";
+ case 0x7F20: return "Corollary Inc.";
+ case 0x7F23: return "EIV(Switzerland)";
+ case 0x7F25: return "Zarlink(formerly Mitel)";
+ case 0x7F26: return "Clearpoint";
+ case 0x7F29: return "Vanguard";
+ case 0x7F2A: return "Hagiwara Sys-Com";
+ case 0x7F2C: return "Celestica";
+ case 0x7F2F: return "Rohm Company Ltd.";
+ case 0x7F31: return "Libit Signal Processing";
+ case 0x7F32: return "Enhanced Memories Inc.";
+ case 0x7F34: return "Adaptec Inc.";
+ case 0x7F37: return "AMIC Technology";
+ case 0x7F38: return "Adobe Systems";
+ case 0x7F3B: return "Newport Digital";
+ case 0x7F3D: return "T Square";
+ case 0x7F3E: return "Seiko Epson";
+ case 0x7F40: return "Viking Components";
+ case 0x7F43: return "Suwa Electronics";
+ case 0x7F45: return "Micron CMS";
+ case 0x7F46: return "American Computer &Digital Components Inc";
+ case 0x7F49: return "CPU Design";
+ case 0x7F4A: return "Price Point";
+ case 0x7F4C: return "Tellabs";
+ case 0x7F4F: return "Transcend Information";
+ case 0x7F51: return "CKD Corporation Ltd.";
+ case 0x7F52: return "Capital Instruments, Inc.";
+ case 0x7F54: return "Linvex Technology";
+ case 0x7F57: return "Dynamem, Inc.";
+ case 0x7F58: return "NERA ASA";
+ case 0x7F5B: return "Acorn Computers";
+ case 0x7F5D: return "Oak Technology, Inc.";
+ case 0x7F5E: return "Itec Memory";
+ case 0x7F61: return "Wintec Industries";
+ case 0x7F62: return "Super PC Memory";
+ case 0x7F64: return "Galvantech";
+ case 0x7F67: return "GateField";
+ case 0x7F68: return "Integrated Memory System";
+ case 0x7F6B: return "Goldenram";
+ case 0x7F6D: return "Cimaron Communications";
+ case 0x7F6E: return "Nippon Steel Semi.Corp.";
+ case 0x7F70: return "AMCC";
+ case 0x7F73: return "Digital Microwave";
+ case 0x7F75: return "MIMOS Semiconductor";
+ case 0x7F76: return "Advanced Fibre";
+ case 0x7F79: return "Acbel Polytech Inc.";
+ case 0x7F7A: return "Apacer Technology";
+ case 0x7F7C: return "FOXCONN";
+ case 0x7F83: return "ILC Data Device";
+ case 0x7F85: return "Micro Linear";
+ case 0x7F86: return "Univ.Of NC";
+ case 0x7F89: return "Nchip";
+ case 0x7F8A: return "Galileo Tech";
+ case 0x7F8C: return "Graychip";
+ case 0x7F8F: return "Robert Bosch";
+ case 0x7F91: return "DATARAM";
+ case 0x7F92: return "United Microelec Corp.";
+ case 0x7F94: return "Smart Modular";
+ case 0x7F97: return "Qlogic";
+ case 0x7F98: return "Kingston";
+ case 0x7F9B: return "SpaSE";
+ case 0x7F9D: return "Programmable Micro Corp";
+ case 0x7F9E: return "DoD";
+ case 0x7FA1: return "Dallas Semiconductor";
+ case 0x7FA2: return "Omnivision";
+ case 0x7FA4: return "Novatel Wireless";
+ case 0x7FA7: return "Cabletron";
+ case 0x7FA8: return "Silicon Technology";
+ case 0x7FAB: return "Vantis";
+ case 0x7FAD: return "Century";
+ case 0x7FAE: return "Hal Computers";
+ case 0x7FB0: return "Juniper Networks";
+ case 0x7FB3: return "Tundra Semiconductor";
+ case 0x7FB5: return "LightSpeed Semi.";
+ case 0x7FB6: return "ZSP Corp.";
+ case 0x7FB9: return "Dynachip";
+ case 0x7FBA: return "PNY Electronics";
+ case 0x7FBC: return "MMC Networks";
+ case 0x7FBF: return "Broadcom";
+ case 0x7FC1: return "V3 Semiconductor";
+ case 0x7FC2: return "Flextronics(formerly Orbit)";
+ case 0x7FC4: return "Transmeta";
+ case 0x7FC7: return "Enhance 3000 Inc";
+ case 0x7FC8: return "Tower Semiconductor";
+ case 0x7FCB: return "Maxim Integrated Product";
+ case 0x7FCD: return "Centaur Technology";
+ case 0x7FCE: return "Unigen Corporation";
+ case 0x7FD0: return "Memory Card Technology";
+ case 0x7FD3: return "Aica Kogyo, Ltd.";
+ case 0x7FD5: return "MSC Vertriebs GmbH";
+ case 0x7FD6: return "AKM Company, Ltd.";
+ case 0x7FD9: return "GSI Technology";
+ case 0x7FDA: return "Dane-Elec (C Memory)";
+ case 0x7FDC: return "Lara Technology";
+ case 0x7FDF: return "Tanisys Technology";
+ case 0x7FE0: return "Truevision";
+ case 0x7FE3: return "MGV Memory";
+ case 0x7FE5: return "Gadzoox Networks";
+ case 0x7FE6: return "Multi Dimensional Cons.";
+ case 0x7FE9: return "Triscend";
+ case 0x7FEA: return "XaQti";
+ case 0x7FEC: return "Clear Logic";
+ case 0x7FEF: return "Advantage Memory";
+ case 0x7FF1: return "LeCroy";
+ case 0x7FF2: return "Yamaha Corporation";
+ case 0x7FF4: return "NetLogic Microsystems";
+ case 0x7FF7: return "BF Goodrich Data.";
+ case 0x7FF8: return "Epigram";
+ case 0x7FFB: return "Admor Memory";
+ case 0x7FFD: return "Quadratics Superconductor";
+ case 0x7FFE: return "3COM";
#endregion JEDEC
- case 0x0100: return"Digital Equipment Corporation";
- case 0x0101: return"3Com Corporation";
- case 0x0102: return"Megahertz Corporation";
- case 0x0104: return"Socket Communications";
- case 0x0105: return"TDK Corporation";
- case 0x0108: return"Standard Microsystems Corporation";
- case 0x0109: return"Motorola Corporation";
- case 0x010b: return"National Instruments";
- case 0x0115: return"US Robotics Corporation";
- case 0x0121: return"Olicom";
- case 0x0126: return"Proxim";
- case 0x0128: return"Megahertz Corporation";
- case 0x012F: return"Adaptec Corporation";
- case 0x0137: return"Quatech";
- case 0x0138: return"Compaq";
- case 0x0140: return"Ositech";
- case 0x0143: return"D-Link";
- case 0x0149: return"Netgear";
- case 0x014D: return"Simple Technology";
- case 0x0156: return"Lucent Technologies";
- case 0x015F: return"Aironet Wireless Communications";
- case 0x016B: return"Ericsson";
- case 0x016C: return"Psion";
- case 0x0183: return"Compaq";
- case 0x0186: return"Kingston";
- case 0x0192: return"Sierra Wireless";
- case 0x0194: return"Dayna Corporation";
- case 0x01a6: return"Raytheon";
- case 0x01BF: return"Belkin";
- case 0x01EB: return"Bay Networks";
- case 0x0200: return"Farallon Communications";
- case 0x021B: return"Telecom Device";
- case 0x023D: return"Nokia Communications";
- case 0x0250: return"Samsung";
- case 0x0264: return"Anycom";
- case 0x0268: return"Alvarion Ltd.";
- case 0x026C: return"Symbol";
- case 0x026F: return"BUFFALO";
- case 0x0274: return"The Linksys Group";
- case 0x0288: return"NEC Infrontia";
- case 0x028A: return"I-O DATA";
- case 0x02AA: return"Asustek Computer";
- case 0x02AC: return"Siemens";
- case 0x02D2: return"Microsoft Corporation";
- case 0x02DF: return"AmbiCom Inc";
- case 0x0a02: return"BreezeCOM";
- case 0x10CD: return"NewMedia";
- case 0x1668: return"ACTIONTEC";
- case 0x3401: return"Lasat Communications A/S";
- case 0x4E01: return"Lexar Media";
- case 0x5241: return"Archos";
- case 0x890F: return"Dual";
- case 0x8A01: return"Compex Corporation";
- case 0xC001: return"Contec";
- case 0xC00B: return"MACNICA";
- case 0xC00C: return"Roland";
- case 0xC00F: return"Corega K.K.";
- case 0xC012: return"Hagiwara SYS-COM";
- case 0xC015: return"RATOC System Inc.";
- case 0xC020: return"NextCom K.K.";
- case 0xC250: return"EMTAC Technology Corporation";
- case 0xD601: return"Elsa";
- default: return$"Unknown vendor id 0x{id:X4}";
+ case 0x0100: return "Digital Equipment Corporation";
+ case 0x0101: return "3Com Corporation";
+ case 0x0102: return "Megahertz Corporation";
+ case 0x0104: return "Socket Communications";
+ case 0x0105: return "TDK Corporation";
+ case 0x0108: return "Standard Microsystems Corporation";
+ case 0x0109: return "Motorola Corporation";
+ case 0x010b: return "National Instruments";
+ case 0x0115: return "US Robotics Corporation";
+ case 0x0121: return "Olicom";
+ case 0x0126: return "Proxim";
+ case 0x0128: return "Megahertz Corporation";
+ case 0x012F: return "Adaptec Corporation";
+ case 0x0137: return "Quatech";
+ case 0x0138: return "Compaq";
+ case 0x0140: return "Ositech";
+ case 0x0143: return "D-Link";
+ case 0x0149: return "Netgear";
+ case 0x014D: return "Simple Technology";
+ case 0x0156: return "Lucent Technologies";
+ case 0x015F: return "Aironet Wireless Communications";
+ case 0x016B: return "Ericsson";
+ case 0x016C: return "Psion";
+ case 0x0183: return "Compaq";
+ case 0x0186: return "Kingston";
+ case 0x0192: return "Sierra Wireless";
+ case 0x0194: return "Dayna Corporation";
+ case 0x01a6: return "Raytheon";
+ case 0x01BF: return "Belkin";
+ case 0x01EB: return "Bay Networks";
+ case 0x0200: return "Farallon Communications";
+ case 0x021B: return "Telecom Device";
+ case 0x023D: return "Nokia Communications";
+ case 0x0250: return "Samsung";
+ case 0x0264: return "Anycom";
+ case 0x0268: return "Alvarion Ltd.";
+ case 0x026C: return "Symbol";
+ case 0x026F: return "BUFFALO";
+ case 0x0274: return "The Linksys Group";
+ case 0x0288: return "NEC Infrontia";
+ case 0x028A: return "I-O DATA";
+ case 0x02AA: return "Asustek Computer";
+ case 0x02AC: return "Siemens";
+ case 0x02D2: return "Microsoft Corporation";
+ case 0x02DF: return "AmbiCom Inc";
+ case 0x0a02: return "BreezeCOM";
+ case 0x10CD: return "NewMedia";
+ case 0x1668: return "ACTIONTEC";
+ case 0x3401: return "Lasat Communications A/S";
+ case 0x4E01: return "Lexar Media";
+ case 0x5241: return "Archos";
+ case 0x890F: return "Dual";
+ case 0x8A01: return "Compex Corporation";
+ case 0xC001: return "Contec";
+ case 0xC00B: return "MACNICA";
+ case 0xC00C: return "Roland";
+ case 0xC00F: return "Corega K.K.";
+ case 0xC012: return "Hagiwara SYS-COM";
+ case 0xC015: return "RATOC System Inc.";
+ case 0xC020: return "NextCom K.K.";
+ case 0xC250: return "EMTAC Technology Corporation";
+ case 0xD601: return "Elsa";
+ default: return $"Unknown vendor id 0x{id:X4}";
}
}
}
diff --git a/SCSI/EVPD.cs b/SCSI/EVPD.cs
index 7a3c172..df2bae2 100644
--- a/SCSI/EVPD.cs
+++ b/SCSI/EVPD.cs
@@ -252,12 +252,12 @@ namespace Aaru.Decoders.SCSI
{
switch(definition)
{
- case ScsiDefinitions.Current: return"";
- case ScsiDefinitions.CCS: return"CCS";
- case ScsiDefinitions.SCSI1: return"SCSI-1";
- case ScsiDefinitions.SCSI2: return"SCSI-2";
- case ScsiDefinitions.SCSI3: return"SCSI-3";
- default: return$"Unknown definition code {(byte)definition}";
+ case ScsiDefinitions.Current: return "";
+ case ScsiDefinitions.CCS: return "CCS";
+ case ScsiDefinitions.SCSI1: return "SCSI-1";
+ case ScsiDefinitions.SCSI2: return "SCSI-2";
+ case ScsiDefinitions.SCSI3: return "SCSI-3";
+ default: return $"Unknown definition code {(byte)definition}";
}
}
diff --git a/SCSI/MMC/AACS.cs b/SCSI/MMC/AACS.cs
index ca24862..ad2839d 100644
--- a/SCSI/MMC/AACS.cs
+++ b/SCSI/MMC/AACS.cs
@@ -295,9 +295,9 @@ namespace Aaru.Decoders.SCSI.MMC
for(int i = 0; i < (AACSLBAExtsResponse.Length - 4) / 16; i++)
{
decoded.Extents[i].Reserved = new byte[8];
- Array.Copy(AACSLBAExtsResponse, 0 + i * 16 + 4, decoded.Extents[i].Reserved, 0, 8);
- decoded.Extents[i].StartLBA = BigEndianBitConverter.ToUInt32(AACSLBAExtsResponse, 8 + i * 16 + 4);
- decoded.Extents[i].LBACount = BigEndianBitConverter.ToUInt32(AACSLBAExtsResponse, 12 + i * 16 + 4);
+ Array.Copy(AACSLBAExtsResponse, 0 + (i * 16) + 4, decoded.Extents[i].Reserved, 0, 8);
+ decoded.Extents[i].StartLBA = BigEndianBitConverter.ToUInt32(AACSLBAExtsResponse, 8 + (i * 16) + 4);
+ decoded.Extents[i].LBACount = BigEndianBitConverter.ToUInt32(AACSLBAExtsResponse, 12 + (i * 16) + 4);
}
return decoded;
diff --git a/SCSI/MMC/DiscInformation.cs b/SCSI/MMC/DiscInformation.cs
index d041bc9..65fc1b8 100644
--- a/SCSI/MMC/DiscInformation.cs
+++ b/SCSI/MMC/DiscInformation.cs
@@ -96,16 +96,17 @@ namespace Aaru.Decoders.SCSI.MMC
decoded.OPCTablesNumber = response[33];
if(decoded.OPCTablesNumber <= 0 ||
- response.Length != decoded.OPCTablesNumber * 8 + 34)
+ response.Length != (decoded.OPCTablesNumber * 8) + 34)
return decoded;
decoded.OPCTables = new OPCTable[decoded.OPCTablesNumber];
for(int i = 0; i < decoded.OPCTablesNumber; i++)
{
- decoded.OPCTables[i].Speed = (ushort)((response[34 + i * 8 + 0] << 16) + response[34 + i * 8 + 1]);
+ decoded.OPCTables[i].Speed = (ushort)((response[34 + (i * 8) + 0] << 16) + response[34 + (i * 8) + 1]);
+
decoded.OPCTables[i].OPCValues = new byte[6];
- Array.Copy(response, 34 + i * 8 + 2, decoded.OPCTables[i].OPCValues, 0, 6);
+ Array.Copy(response, 34 + (i * 8) + 2, decoded.OPCTables[i].OPCValues, 0, 6);
}
return decoded;
diff --git a/SCSI/MMC/Hybrid.cs b/SCSI/MMC/Hybrid.cs
index d227494..95a5478 100644
--- a/SCSI/MMC/Hybrid.cs
+++ b/SCSI/MMC/Hybrid.cs
@@ -64,7 +64,7 @@ namespace Aaru.Decoders.SCSI.MMC
};
for(int i = 0; i < (FormatLayersResponse.Length - 6) / 2; i++)
- decoded.FormatLayers[i] = BigEndianBitConverter.ToUInt16(FormatLayersResponse, i * 2 + 6);
+ decoded.FormatLayers[i] = BigEndianBitConverter.ToUInt16(FormatLayersResponse, (i * 2) + 6);
return decoded;
}
@@ -83,7 +83,7 @@ namespace Aaru.Decoders.SCSI.MMC
for(int i = 0; i < response.FormatLayers.Length; i++)
switch(response.FormatLayers[i])
{
- case(ushort)FormatLayerTypeCodes.BDLayer:
+ case (ushort)FormatLayerTypeCodes.BDLayer:
{
sb.AppendFormat("Layer {0} is of type Blu-ray", i).AppendLine();
@@ -96,7 +96,7 @@ namespace Aaru.Decoders.SCSI.MMC
break;
}
- case(ushort)FormatLayerTypeCodes.CDLayer:
+ case (ushort)FormatLayerTypeCodes.CDLayer:
{
sb.AppendFormat("Layer {0} is of type CD", i).AppendLine();
@@ -109,7 +109,7 @@ namespace Aaru.Decoders.SCSI.MMC
break;
}
- case(ushort)FormatLayerTypeCodes.DVDLayer:
+ case (ushort)FormatLayerTypeCodes.DVDLayer:
{
sb.AppendFormat("Layer {0} is of type DVD", i).AppendLine();
@@ -122,7 +122,7 @@ namespace Aaru.Decoders.SCSI.MMC
break;
}
- case(ushort)FormatLayerTypeCodes.HDDVDLayer:
+ case (ushort)FormatLayerTypeCodes.HDDVDLayer:
{
sb.AppendFormat("Layer {0} is of type HD DVD", i).AppendLine();
diff --git a/SCSI/Modes/01_MMC.cs b/SCSI/Modes/01_MMC.cs
index 2e0bc30..be90d55 100644
--- a/SCSI/Modes/01_MMC.cs
+++ b/SCSI/Modes/01_MMC.cs
@@ -139,8 +139,7 @@ namespace Aaru.Decoders.SCSI
string UnrecECCNotAbort = "\tUnrecovered ECC errors will not abort the transfer.";
string UnrecCIRCNotAbort = "\tUnrecovered CIRC errors will not abort the transfer.";
- string UnrecECCAbortData =
- "\tUnrecovered ECC errors will return CHECK CONDITION and the uncorrected data.";
+ string UnrecECCAbortData = "\tUnrecovered ECC errors will return CHECK CONDITION and the uncorrected data.";
string UnrecCIRCAbortData =
"\tUnrecovered CIRC errors will return CHECK CONDITION and the uncorrected data.";
diff --git a/SCSI/Modes/04.cs b/SCSI/Modes/04.cs
index dd44351..f065901 100644
--- a/SCSI/Modes/04.cs
+++ b/SCSI/Modes/04.cs
@@ -86,11 +86,9 @@ namespace Aaru.Decoders.SCSI
decoded.Heads = pageResponse[5];
decoded.WritePrecompCylinder = (uint)((pageResponse[6] << 16) + (pageResponse[7] << 8) + pageResponse[8]);
- decoded.WriteReduceCylinder =
- (uint)((pageResponse[9] << 16) + (pageResponse[10] << 8) + pageResponse[11]);
+ decoded.WriteReduceCylinder = (uint)((pageResponse[9] << 16) + (pageResponse[10] << 8) + pageResponse[11]);
- decoded.DriveStepRate =
- (ushort)((pageResponse[12] << 8) + pageResponse[13]);
+ decoded.DriveStepRate = (ushort)((pageResponse[12] << 8) + pageResponse[13]);
decoded.LandingCylinder = (pageResponse[14] << 16) + (pageResponse[15] << 8) + pageResponse[16];
decoded.RPL = (byte)(pageResponse[17] & 0x03);
diff --git a/SCSI/Modes/07_MMC.cs b/SCSI/Modes/07_MMC.cs
index 779ab1f..94a8d1b 100644
--- a/SCSI/Modes/07_MMC.cs
+++ b/SCSI/Modes/07_MMC.cs
@@ -104,8 +104,7 @@ namespace Aaru.Decoders.SCSI
string UnrecECCNotAbort = "\tUnrecovered ECC errors will not abort the transfer.";
string UnrecCIRCNotAbort = "\tUnrecovered CIRC errors will not abort the transfer.";
- string UnrecECCAbortData =
- "\tUnrecovered ECC errors will return CHECK CONDITION and the uncorrected data.";
+ string UnrecECCAbortData = "\tUnrecovered ECC errors will return CHECK CONDITION and the uncorrected data.";
string UnrecCIRCAbortData =
"\tUnrecovered CIRC errors will return CHECK CONDITION and the uncorrected data.";
diff --git a/SCSI/Modes/11.cs b/SCSI/Modes/11.cs
index d3b6793..fe4ef48 100644
--- a/SCSI/Modes/11.cs
+++ b/SCSI/Modes/11.cs
@@ -44,18 +44,24 @@ namespace Aaru.Decoders.SCSI
public enum PartitionSizeUnitOfMeasures : byte
{
/// Partition size is measures in bytes
- Bytes = 0, /// Partition size is measures in Kilobytes
- Kilobytes = 1, /// Partition size is measures in Megabytes
- Megabytes = 2, /// Partition size is 10eUNITS bytes
+ Bytes = 0,
+ /// Partition size is measures in Kilobytes
+ Kilobytes = 1,
+ /// Partition size is measures in Megabytes
+ Megabytes = 2,
+ /// Partition size is 10eUNITS bytes
Exponential = 3
}
public enum MediumFormatRecognitionValues : byte
{
/// Logical unit is incapable of format or partition recognition
- Incapable = 0, /// Logical unit is capable of format recognition only
- FormatCapable = 1, /// Logical unit is capable of partition recognition only
- PartitionCapable = 2, /// Logical unit is capable of both format and partition recognition
+ Incapable = 0,
+ /// Logical unit is capable of format recognition only
+ FormatCapable = 1,
+ /// Logical unit is capable of partition recognition only
+ PartitionCapable = 2,
+ /// Logical unit is capable of both format and partition recognition
Capable = 3
}
diff --git a/SCSI/Modes/1A.cs b/SCSI/Modes/1A.cs
index 499ab09..4dd94bb 100644
--- a/SCSI/Modes/1A.cs
+++ b/SCSI/Modes/1A.cs
@@ -140,8 +140,8 @@ namespace Aaru.Decoders.SCSI
if(page.PS)
sb.AppendLine("\tParameters can be saved");
- if(page.Standby && page.StandbyTimer > 0 ||
- page.Standby_Y && page.StandbyTimer_Y > 0)
+ if((page.Standby && page.StandbyTimer > 0) ||
+ (page.Standby_Y && page.StandbyTimer_Y > 0))
{
if(page.Standby &&
page.StandbyTimer > 0)
@@ -154,9 +154,9 @@ namespace Aaru.Decoders.SCSI
else
sb.AppendLine("\tDrive will not enter standy mode");
- if(page.Idle && page.IdleTimer > 0 ||
- page.Idle_B && page.IdleTimer_B > 0 ||
- page.Idle_C && page.IdleTimer_C > 0)
+ if((page.Idle && page.IdleTimer > 0) ||
+ (page.Idle_B && page.IdleTimer_B > 0) ||
+ (page.Idle_C && page.IdleTimer_C > 0))
{
if(page.Idle &&
page.IdleTimer > 0)
diff --git a/SCSI/Modes/Headers.cs b/SCSI/Modes/Headers.cs
index d6cfeee..364c9e9 100644
--- a/SCSI/Modes/Headers.cs
+++ b/SCSI/Modes/Headers.cs
@@ -51,7 +51,7 @@ namespace Aaru.Decoders.SCSI
return
"ECMA-59 & ANSI X3.121-1984: 200 mm Flexible Disk Cartridge using Two-Frequency Recording at 13262 ftprad on Both Sides";
case MediumTypes.ECMA69:
- return"ECMA-69: 200 mm Flexible Disk Cartridge using MFM Recording at 13262 ftprad on Both Sides";
+ return "ECMA-69: 200 mm Flexible Disk Cartridge using MFM Recording at 13262 ftprad on Both Sides";
case MediumTypes.ECMA66:
return
"ECMA-66: 130 mm Flexible Disk Cartridge using Two-Frequency Recording at 7958 ftprad on One Side";
@@ -75,16 +75,16 @@ namespace Aaru.Decoders.SCSI
case MediumTypes.Unspecified_DS:
return "Unspecified double sided flexible disk";
*/
- case MediumTypes.X3_73: return"ANSI X3.73-1980: 200 mm, 6631 ftprad, 1,9 Tracks per mm, 1 side";
- case MediumTypes.X3_73_DS: return"ANSI X3.73-1980: 200 mm, 6631 ftprad, 1,9 Tracks per mm, 2 sides";
- case MediumTypes.X3_82: return"ANSI X3.80-1980: 130 mm, 3979 ftprad, 1,9 Tracks per mm, 1 side";
+ case MediumTypes.X3_73: return "ANSI X3.73-1980: 200 mm, 6631 ftprad, 1,9 Tracks per mm, 1 side";
+ case MediumTypes.X3_73_DS: return "ANSI X3.73-1980: 200 mm, 6631 ftprad, 1,9 Tracks per mm, 2 sides";
+ case MediumTypes.X3_82: return "ANSI X3.80-1980: 130 mm, 3979 ftprad, 1,9 Tracks per mm, 1 side";
case MediumTypes.Type3Floppy:
- return"3.5-inch, 135 tpi, 12362 bits/radian, double-sided MFM (aka 1.25Mb)";
- case MediumTypes.HDFloppy: return"3.5-inch, 135 tpi, 15916 bits/radian, double-sided MFM (aka 1.44Mb)";
- case MediumTypes.ReadOnly: return"a Read-only optical";
- case MediumTypes.WORM: return"a Write-once Read-many optical";
- case MediumTypes.Erasable: return"a Erasable optical";
- case MediumTypes.RO_WORM: return"a combination of read-only and write-once optical";
+ return "3.5-inch, 135 tpi, 12362 bits/radian, double-sided MFM (aka 1.25Mb)";
+ case MediumTypes.HDFloppy: return "3.5-inch, 135 tpi, 15916 bits/radian, double-sided MFM (aka 1.44Mb)";
+ case MediumTypes.ReadOnly: return "a Read-only optical";
+ case MediumTypes.WORM: return "a Write-once Read-many optical";
+ case MediumTypes.Erasable: return "a Erasable optical";
+ case MediumTypes.RO_WORM: return "a combination of read-only and write-once optical";
// These magneto-opticals were never manufactured
/*
@@ -94,9 +94,9 @@ namespace Aaru.Decoders.SCSI
case MediumTypes.WORM_RW:
return "a combination of write-once and erasable optical";
*/
- case MediumTypes.DOW: return"a direct-overwrite optical";
- case MediumTypes.HiMD: return"a Sony Hi-MD disc";
- default: return$"Unknown medium type 0x{(byte)type:X2}";
+ case MediumTypes.DOW: return "a direct-overwrite optical";
+ case MediumTypes.HiMD: return "a Sony Hi-MD disc";
+ default: return $"Unknown medium type 0x{(byte)type:X2}";
}
}
diff --git a/SCSI/Sense.cs b/SCSI/Sense.cs
index 1f0c858..98e3ac4 100644
--- a/SCSI/Sense.cs
+++ b/SCSI/Sense.cs
@@ -64,21 +64,36 @@ namespace Aaru.Decoders.SCSI
public enum SenseKeys : byte
{
/// No information to be reported, but bits should be checked
- NoSense = 0, /// Target performed some recovery to successfully complete last command
- RecoveredError = 1, /// Target is not ready
- NotReady = 2, /// Non-recoverable medium error occurred
- MediumError = 3, /// Non-recoverable hardware error occurred
- HardwareError = 4, /// Target has received an illegal request
- IllegalRequest = 5, /// Target requires initiator attention
- UnitAttention = 6, /// A protected command has been denied
- DataProtect = 7, /// A blank block has been tried to read or a non-rewritable one to write
- BlankCheck = 8, /// For private/vendor usage
- PrivateUse = 9, /// COPY command aborted
- CopyAborted = 0xA, /// Command aborted
- AbortedCommand = 0xB, /// SEARCH command has been satisfied
- Equal = 0xC, /// End-of-medium reached with data remaining in buffer
- VolumeOverflow = 0xD, /// COMPARE failed
- Miscompare = 0xE, /// Complated
+ NoSense = 0,
+ /// Target performed some recovery to successfully complete last command
+ RecoveredError = 1,
+ /// Target is not ready
+ NotReady = 2,
+ /// Non-recoverable medium error occurred
+ MediumError = 3,
+ /// Non-recoverable hardware error occurred
+ HardwareError = 4,
+ /// Target has received an illegal request
+ IllegalRequest = 5,
+ /// Target requires initiator attention
+ UnitAttention = 6,
+ /// A protected command has been denied
+ DataProtect = 7,
+ /// A blank block has been tried to read or a non-rewritable one to write
+ BlankCheck = 8,
+ /// For private/vendor usage
+ PrivateUse = 9,
+ /// COPY command aborted
+ CopyAborted = 0xA,
+ /// Command aborted
+ AbortedCommand = 0xB,
+ /// SEARCH command has been satisfied
+ Equal = 0xC,
+ /// End-of-medium reached with data remaining in buffer
+ VolumeOverflow = 0xD,
+ /// COMPARE failed
+ Miscompare = 0xE,
+ /// Complated
Completed = 0xF
}
@@ -518,22 +533,22 @@ namespace Aaru.Decoders.SCSI
{
switch(key)
{
- case SenseKeys.AbortedCommand: return"ABORTED COMMAND";
- case SenseKeys.BlankCheck: return"BLANK CHECK";
- case SenseKeys.CopyAborted: return"COPY ABORTED";
- case SenseKeys.DataProtect: return"DATA PROTECT";
- case SenseKeys.Equal: return"EQUAL";
- case SenseKeys.HardwareError: return"HARDWARE ERROR";
- case SenseKeys.IllegalRequest: return"ILLEGAL REQUEST";
- case SenseKeys.MediumError: return"MEDIUM ERROR";
- case SenseKeys.Miscompare: return"MISCOMPARE";
- case SenseKeys.NoSense: return"NO SENSE";
- case SenseKeys.PrivateUse: return"PRIVATE USE";
- case SenseKeys.RecoveredError: return"RECOVERED ERROR";
- case SenseKeys.Completed: return"COMPLETED";
- case SenseKeys.UnitAttention: return"UNIT ATTENTION";
- case SenseKeys.VolumeOverflow: return"VOLUME OVERFLOW";
- default: return"UNKNOWN";
+ case SenseKeys.AbortedCommand: return "ABORTED COMMAND";
+ case SenseKeys.BlankCheck: return "BLANK CHECK";
+ case SenseKeys.CopyAborted: return "COPY ABORTED";
+ case SenseKeys.DataProtect: return "DATA PROTECT";
+ case SenseKeys.Equal: return "EQUAL";
+ case SenseKeys.HardwareError: return "HARDWARE ERROR";
+ case SenseKeys.IllegalRequest: return "ILLEGAL REQUEST";
+ case SenseKeys.MediumError: return "MEDIUM ERROR";
+ case SenseKeys.Miscompare: return "MISCOMPARE";
+ case SenseKeys.NoSense: return "NO SENSE";
+ case SenseKeys.PrivateUse: return "PRIVATE USE";
+ case SenseKeys.RecoveredError: return "RECOVERED ERROR";
+ case SenseKeys.Completed: return "COMPLETED";
+ case SenseKeys.UnitAttention: return "UNIT ATTENTION";
+ case SenseKeys.VolumeOverflow: return "VOLUME OVERFLOW";
+ default: return "UNKNOWN";
}
}
@@ -545,1370 +560,1370 @@ namespace Aaru.Decoders.SCSI
case 0x00:
switch(ASCQ)
{
- case 0x00: return"NO ADDITIONAL SENSE INFORMATION";
- case 0x01: return"FILEMARK DETECTED";
- case 0x02: return"END-OF-PARTITION/MEDIUM DETECTED";
- case 0x03: return"SETMARK DETECTED";
- case 0x04: return"BEGINNING-OF-PARTITION/MEDIUM DETECTED";
- case 0x05: return"END-OF-DATA DETECTED";
- case 0x06: return"I/O PROCESS TERMINATED";
- case 0x07: return"PROGRAMMABLE EARLY WARNING DETECTED";
- case 0x11: return"AUDIO PLAY OPERATION IN PROGRESS";
- case 0x12: return"AUDIO PLAY OPERATION PAUSED";
- case 0x13: return"AUDIO PLAY OPERATION SUCCESSFULLY COMPLETED";
- case 0x14: return"AUDIO PLAY OPERATION STOPPED DUE TO ERROR";
- case 0x15: return"NO CURRENT AUDIO STATUS TO RETURN";
- case 0x16: return"OPERATION IN PROGRESS";
- case 0x17: return"CLEANING REQUESTED";
- case 0x18: return"ERASE OPERATION IN PROGRESS";
- case 0x19: return"LOCATE OPERATION IN PROGRESS";
- case 0x1A: return"REWIND OPERATION IN PROGRESS";
- case 0x1B: return"SET CAPACITY OPERATION IN PROGRESS";
- case 0x1C: return"VERIFY OPERATION IN PROGRESS";
- case 0x1D: return"ATA PASS THROUGH INFORMATION AVAILABLE";
- case 0x1E: return"CONFLICTING SA CREATION REQUEST";
- case 0x1F: return"LOGICAL UNIT TRANSITIONING TO ANOTHER POWER CONDITION";
- case 0x20: return"EXTENDED COPY INFORMATION AVAILABLE";
- case 0x21: return"ATOMIC COMMAND ABORTED DUE TO ACA";
+ case 0x00: return "NO ADDITIONAL SENSE INFORMATION";
+ case 0x01: return "FILEMARK DETECTED";
+ case 0x02: return "END-OF-PARTITION/MEDIUM DETECTED";
+ case 0x03: return "SETMARK DETECTED";
+ case 0x04: return "BEGINNING-OF-PARTITION/MEDIUM DETECTED";
+ case 0x05: return "END-OF-DATA DETECTED";
+ case 0x06: return "I/O PROCESS TERMINATED";
+ case 0x07: return "PROGRAMMABLE EARLY WARNING DETECTED";
+ case 0x11: return "AUDIO PLAY OPERATION IN PROGRESS";
+ case 0x12: return "AUDIO PLAY OPERATION PAUSED";
+ case 0x13: return "AUDIO PLAY OPERATION SUCCESSFULLY COMPLETED";
+ case 0x14: return "AUDIO PLAY OPERATION STOPPED DUE TO ERROR";
+ case 0x15: return "NO CURRENT AUDIO STATUS TO RETURN";
+ case 0x16: return "OPERATION IN PROGRESS";
+ case 0x17: return "CLEANING REQUESTED";
+ case 0x18: return "ERASE OPERATION IN PROGRESS";
+ case 0x19: return "LOCATE OPERATION IN PROGRESS";
+ case 0x1A: return "REWIND OPERATION IN PROGRESS";
+ case 0x1B: return "SET CAPACITY OPERATION IN PROGRESS";
+ case 0x1C: return "VERIFY OPERATION IN PROGRESS";
+ case 0x1D: return "ATA PASS THROUGH INFORMATION AVAILABLE";
+ case 0x1E: return "CONFLICTING SA CREATION REQUEST";
+ case 0x1F: return "LOGICAL UNIT TRANSITIONING TO ANOTHER POWER CONDITION";
+ case 0x20: return "EXTENDED COPY INFORMATION AVAILABLE";
+ case 0x21: return "ATOMIC COMMAND ABORTED DUE TO ACA";
}
break;
case 0x01:
switch(ASCQ)
{
- case 0x00: return"NO INDEX/SECTOR SIGNAL";
+ case 0x00: return "NO INDEX/SECTOR SIGNAL";
}
break;
case 0x02:
switch(ASCQ)
{
- case 0x00: return"NO SEEK COMPLETE";
+ case 0x00: return "NO SEEK COMPLETE";
}
break;
case 0x03:
switch(ASCQ)
{
- case 0x00: return"PERIPHERAL DEVICE WRITE FAULT";
- case 0x01: return"NO WRITE CURRENT";
- case 0x02: return"EXCESSIVE WRITE ERRORS";
+ case 0x00: return "PERIPHERAL DEVICE WRITE FAULT";
+ case 0x01: return "NO WRITE CURRENT";
+ case 0x02: return "EXCESSIVE WRITE ERRORS";
}
break;
case 0x04:
switch(ASCQ)
{
- case 0x00: return"LOGICAL UNIT NOT READY, CAUSE NOT REPORTABLE";
- case 0x01: return"LOGICAL UNIT IS IN PROCESS OF BECOMING READY";
- case 0x02: return"LOGICAL UNIT NOT READY, INITIALIZING COMMAND REQUIRED";
- case 0x03: return"LOGICAL UNIT NOT READY, MANUAL INTERVENTION REQUIRED";
- case 0x04: return"LOGICAL UNIT NOT READY, FORMAT IN PROGRESS";
- case 0x05: return"LOGICAL UNIT NOT READY, REBUILD IN PROGRESS";
- case 0x06: return"LOGICAL UNIT NOT READY, RECALCULATION IN PROGRESS";
- case 0x07: return"LOGICAL UNIT NOT READY, OPERATION IN PROGRESS";
- case 0x08: return"LOGICAL UNIT NOT READY, LONG WRITE IN PROGRESS";
- case 0x09: return"LOGICAL UNIT NOT READY, SELF-TEST IN PROGRESS";
- case 0x0A: return"LOGICAL UNIT NOT ACCESSIBLE, ASYMMETRIC ACCESS STATE TRANSITION";
- case 0x0B: return"LOGICAL UNIT NOT ACCESSIBLE, TARGET IN STANDBY STATE";
- case 0x0C: return"LOGICAL UNIT NOT ACCESSIBLE, TARGET PORT IN UNAVAILABLE STATE";
- case 0x0D: return"LOGICAL UNIT NOT READY, STRUCTURE CHECK REQUIRED";
- case 0x0E: return"LOGICAL UNIT NOT READY, SECURITY SESSION IN PROGRESS";
- case 0x10: return"LOGICAL UNIT NOT READY, AUXILIARY MEMORY NOT ACCESSIBLE";
- case 0x11: return"LOGICAL UNIT NOT READY, NOTIFY (ENABLE SPINUP) REQUIRED";
- case 0x12: return"LOGICAL UNIT NOT READY, OFFLINE";
- case 0x13: return"LOGICAL UNIT NOT READY, SA CREATION IN PROGRESS";
- case 0x14: return"LOGICAL UNIT NOT READY, SPACE ALLOCATION IN PROGRESS";
- case 0x15: return"LOGICAL UNIT NOT READY, ROBOTICS DISABLED";
- case 0x16: return"LOGICAL UNIT NOT READY, CONFIGURATION REQUIRED";
- case 0x17: return"LOGICAL UNIT NOT READY, CALIBRATION REQUIRED";
- case 0x18: return"LOGICAL UNIT NOT READY, A DOOR IS OPEN";
- case 0x19: return"LOGICAL UNIT NOT READY, OPERATING IN SEQUENTIAL MODE";
- case 0x1A: return"LOGICAL UNIT NOT READY, START STOP UNIT IN PROGRESS";
- case 0x1B: return"LOGICAL UNIT NOT READY, SANITIZE IN PROGRESS";
- case 0x1C: return"LOGICAL UNIT NOT READY, ADDITIONAL POWER USE NOT YET GRANTED";
- case 0x1D: return"LOGICAL UNIT NOT READY, CONFIGURATION IN PROGRESS";
- case 0x1E: return"LOGICAL UNIT NOT READY, MICROCODE ACTIVATION REQUIRED";
- case 0x1F: return"LOGICAL UNIT NOT READY, MICROCODE DOWNLOAD REQUIRED";
- case 0x20: return"LOGICAL UNIT NOT READY, LOGICAL UNIT RESET REQUIRED";
- case 0x21: return"LOGICAL UNIT NOT READY, HARD RESET REQUIRED";
- case 0x22: return"LOGICAL UNIT NOT READY, POWER CYCLE REQUIRED";
+ case 0x00: return "LOGICAL UNIT NOT READY, CAUSE NOT REPORTABLE";
+ case 0x01: return "LOGICAL UNIT IS IN PROCESS OF BECOMING READY";
+ case 0x02: return "LOGICAL UNIT NOT READY, INITIALIZING COMMAND REQUIRED";
+ case 0x03: return "LOGICAL UNIT NOT READY, MANUAL INTERVENTION REQUIRED";
+ case 0x04: return "LOGICAL UNIT NOT READY, FORMAT IN PROGRESS";
+ case 0x05: return "LOGICAL UNIT NOT READY, REBUILD IN PROGRESS";
+ case 0x06: return "LOGICAL UNIT NOT READY, RECALCULATION IN PROGRESS";
+ case 0x07: return "LOGICAL UNIT NOT READY, OPERATION IN PROGRESS";
+ case 0x08: return "LOGICAL UNIT NOT READY, LONG WRITE IN PROGRESS";
+ case 0x09: return "LOGICAL UNIT NOT READY, SELF-TEST IN PROGRESS";
+ case 0x0A: return "LOGICAL UNIT NOT ACCESSIBLE, ASYMMETRIC ACCESS STATE TRANSITION";
+ case 0x0B: return "LOGICAL UNIT NOT ACCESSIBLE, TARGET IN STANDBY STATE";
+ case 0x0C: return "LOGICAL UNIT NOT ACCESSIBLE, TARGET PORT IN UNAVAILABLE STATE";
+ case 0x0D: return "LOGICAL UNIT NOT READY, STRUCTURE CHECK REQUIRED";
+ case 0x0E: return "LOGICAL UNIT NOT READY, SECURITY SESSION IN PROGRESS";
+ case 0x10: return "LOGICAL UNIT NOT READY, AUXILIARY MEMORY NOT ACCESSIBLE";
+ case 0x11: return "LOGICAL UNIT NOT READY, NOTIFY (ENABLE SPINUP) REQUIRED";
+ case 0x12: return "LOGICAL UNIT NOT READY, OFFLINE";
+ case 0x13: return "LOGICAL UNIT NOT READY, SA CREATION IN PROGRESS";
+ case 0x14: return "LOGICAL UNIT NOT READY, SPACE ALLOCATION IN PROGRESS";
+ case 0x15: return "LOGICAL UNIT NOT READY, ROBOTICS DISABLED";
+ case 0x16: return "LOGICAL UNIT NOT READY, CONFIGURATION REQUIRED";
+ case 0x17: return "LOGICAL UNIT NOT READY, CALIBRATION REQUIRED";
+ case 0x18: return "LOGICAL UNIT NOT READY, A DOOR IS OPEN";
+ case 0x19: return "LOGICAL UNIT NOT READY, OPERATING IN SEQUENTIAL MODE";
+ case 0x1A: return "LOGICAL UNIT NOT READY, START STOP UNIT IN PROGRESS";
+ case 0x1B: return "LOGICAL UNIT NOT READY, SANITIZE IN PROGRESS";
+ case 0x1C: return "LOGICAL UNIT NOT READY, ADDITIONAL POWER USE NOT YET GRANTED";
+ case 0x1D: return "LOGICAL UNIT NOT READY, CONFIGURATION IN PROGRESS";
+ case 0x1E: return "LOGICAL UNIT NOT READY, MICROCODE ACTIVATION REQUIRED";
+ case 0x1F: return "LOGICAL UNIT NOT READY, MICROCODE DOWNLOAD REQUIRED";
+ case 0x20: return "LOGICAL UNIT NOT READY, LOGICAL UNIT RESET REQUIRED";
+ case 0x21: return "LOGICAL UNIT NOT READY, HARD RESET REQUIRED";
+ case 0x22: return "LOGICAL UNIT NOT READY, POWER CYCLE REQUIRED";
}
break;
case 0x05:
switch(ASCQ)
{
- case 0x00: return"LOGICAL UNIT DOES NOT RESPOND TO SELECTION";
+ case 0x00: return "LOGICAL UNIT DOES NOT RESPOND TO SELECTION";
}
break;
case 0x06:
switch(ASCQ)
{
- case 0x00: return"NO REFERENCE POSITION FOUND";
+ case 0x00: return "NO REFERENCE POSITION FOUND";
}
break;
case 0x07:
switch(ASCQ)
{
- case 0x00: return"MULTIPLE PERIPHERAL DEVICES SELECTED";
+ case 0x00: return "MULTIPLE PERIPHERAL DEVICES SELECTED";
}
break;
case 0x08:
switch(ASCQ)
{
- case 0x00: return"LOGICAL UNIT COMMUNICATION FAILURE";
- case 0x01: return"LOGICAL UNIT COMMUNICATION TIME-OUT";
- case 0x02: return"LOGICAL UNIT COMMUNICATION PARITY ERROR";
- case 0x03: return"LOGICAL UNIT COMMUNICATION CRC ERROR";
- case 0x04: return"UNREACHABLE COPY TARGET";
+ case 0x00: return "LOGICAL UNIT COMMUNICATION FAILURE";
+ case 0x01: return "LOGICAL UNIT COMMUNICATION TIME-OUT";
+ case 0x02: return "LOGICAL UNIT COMMUNICATION PARITY ERROR";
+ case 0x03: return "LOGICAL UNIT COMMUNICATION CRC ERROR";
+ case 0x04: return "UNREACHABLE COPY TARGET";
}
break;
case 0x09:
switch(ASCQ)
{
- case 0x00: return"TRACK FLOLLOWING ERROR";
- case 0x01: return"TRACKING SERVO FAILURE";
- case 0x02: return"FOCUS SERVO FAILURE";
- case 0x03: return"SPINDLE SERVO FAILURE";
- case 0x04: return"HEAD SELECT FAULT";
- case 0x05: return"VIBRATION INDUCED TRACKING ERROR";
+ case 0x00: return "TRACK FLOLLOWING ERROR";
+ case 0x01: return "TRACKING SERVO FAILURE";
+ case 0x02: return "FOCUS SERVO FAILURE";
+ case 0x03: return "SPINDLE SERVO FAILURE";
+ case 0x04: return "HEAD SELECT FAULT";
+ case 0x05: return "VIBRATION INDUCED TRACKING ERROR";
}
break;
case 0x0A:
switch(ASCQ)
{
- case 0x00: return"ERROR LOG OVERFLOW";
+ case 0x00: return "ERROR LOG OVERFLOW";
}
break;
case 0x0B:
switch(ASCQ)
{
- case 0x00: return"WARNING";
- case 0x01: return"WARNING - SPECIFIED TEMPERATURE EXCEEDED";
- case 0x02: return"WARNING - ENCLOSURE DEGRADED";
- case 0x03: return"WARNING - BACKGROUND SELF-TEST FAILED";
- case 0x04: return"WARNING - BACKGROUND PRE-SCAN DETECTED MEDIUM ERROR";
- case 0x05: return"WARNING - BACKGROUND MEDIUM SCAN DETECTED MEDIUM ERROR";
- case 0x06: return"WARNING - NON-VOLATILE CACHE NOW VOLATILE";
- case 0x07: return"WARNING - DEGRADED POWER TO NON-VOLATILE CACHE";
- case 0x08: return"WARNING - POWER LOSS EXPECTED";
- case 0x09: return"WARNING - DEVICE STATISTICS NOTIFICATION ACTIVE";
- case 0x0A: return"WARNING - HIGH CRITICAL TEMPERATURE LIMIT EXCEEDED";
- case 0x0B: return"WARNING - LOW CRITICAL TEMPERATURE LIMIT EXCEEDED";
- case 0x0C: return"WARNING - HIGH OPERATING TEMPERATURE LIMIT EXCEEDED";
- case 0x0D: return"WARNING - LOW OPERATING TEMPERATURE LIMIT EXCEEDED";
- case 0x0E: return"WARNING - HIGH CRITICAL HUMIDITY LIMIT EXCEEDED";
- case 0x0F: return"WARNING - LOW CRITICAL HUMIDITY LIMIT EXCEEDED";
- case 0x10: return"WARNING - HIGH OPERATING HUMIDITY LIMIT EXCEEDED";
- case 0x11: return"WARNING - LOW OPERATING HUMIDITY LIMIT EXCEEDED";
+ case 0x00: return "WARNING";
+ case 0x01: return "WARNING - SPECIFIED TEMPERATURE EXCEEDED";
+ case 0x02: return "WARNING - ENCLOSURE DEGRADED";
+ case 0x03: return "WARNING - BACKGROUND SELF-TEST FAILED";
+ case 0x04: return "WARNING - BACKGROUND PRE-SCAN DETECTED MEDIUM ERROR";
+ case 0x05: return "WARNING - BACKGROUND MEDIUM SCAN DETECTED MEDIUM ERROR";
+ case 0x06: return "WARNING - NON-VOLATILE CACHE NOW VOLATILE";
+ case 0x07: return "WARNING - DEGRADED POWER TO NON-VOLATILE CACHE";
+ case 0x08: return "WARNING - POWER LOSS EXPECTED";
+ case 0x09: return "WARNING - DEVICE STATISTICS NOTIFICATION ACTIVE";
+ case 0x0A: return "WARNING - HIGH CRITICAL TEMPERATURE LIMIT EXCEEDED";
+ case 0x0B: return "WARNING - LOW CRITICAL TEMPERATURE LIMIT EXCEEDED";
+ case 0x0C: return "WARNING - HIGH OPERATING TEMPERATURE LIMIT EXCEEDED";
+ case 0x0D: return "WARNING - LOW OPERATING TEMPERATURE LIMIT EXCEEDED";
+ case 0x0E: return "WARNING - HIGH CRITICAL HUMIDITY LIMIT EXCEEDED";
+ case 0x0F: return "WARNING - LOW CRITICAL HUMIDITY LIMIT EXCEEDED";
+ case 0x10: return "WARNING - HIGH OPERATING HUMIDITY LIMIT EXCEEDED";
+ case 0x11: return "WARNING - LOW OPERATING HUMIDITY LIMIT EXCEEDED";
}
break;
case 0x0C:
switch(ASCQ)
{
- case 0x00: return"WRITE ERROR";
- case 0x01: return"WRITE ERROR - RECOVERED WITH AUTO REALLOCATION";
- case 0x02: return"WRITE ERROR - AUTO REALLOCATION FAILED";
- case 0x03: return"WRITE ERROR - RECOMMENDED REASSIGNMENT";
- case 0x04: return"COMPRESSION CHECK MISCOMPARE ERROR";
- case 0x05: return"DATA EXPANSION OCCURRED DURING COMPRESSION";
- case 0x06: return"BLOCK NOT COMPRESSIBLE";
- case 0x07: return"WRITE ERROR - RECOVERY NEEDED";
- case 0x08: return"WRITE ERROR - RECOVERY FAILED";
- case 0x09: return"WRITE ERROR - LOSS OF STREAMING";
- case 0x0A: return"WRITE ERROR - PADDING BLOCKS ADDED";
- case 0x0B: return"AUXILIARY MEMORY WRITE ERROR";
- case 0x0C: return"WRITE ERROR - UNEXPECTED UNSOLICITED DATA";
- case 0x0D: return"WRITE ERROR - NOT ENOUGH UNSOLICITED DATA";
- case 0x0E: return"MULTIPLE WRITE ERRORS";
- case 0x0F: return"DEFECTS IN ERROR WINDOW";
- case 0x10: return"INCOMPLETE MULTIPLE ATOMIC WRITE OPERATIONS";
- case 0x11: return"WRITE ERROR - RECOVERY SCAN NEEDED";
- case 0x12: return"WRITE ERROR - INSUFFICIENT ZONE RESOURCES";
+ case 0x00: return "WRITE ERROR";
+ case 0x01: return "WRITE ERROR - RECOVERED WITH AUTO REALLOCATION";
+ case 0x02: return "WRITE ERROR - AUTO REALLOCATION FAILED";
+ case 0x03: return "WRITE ERROR - RECOMMENDED REASSIGNMENT";
+ case 0x04: return "COMPRESSION CHECK MISCOMPARE ERROR";
+ case 0x05: return "DATA EXPANSION OCCURRED DURING COMPRESSION";
+ case 0x06: return "BLOCK NOT COMPRESSIBLE";
+ case 0x07: return "WRITE ERROR - RECOVERY NEEDED";
+ case 0x08: return "WRITE ERROR - RECOVERY FAILED";
+ case 0x09: return "WRITE ERROR - LOSS OF STREAMING";
+ case 0x0A: return "WRITE ERROR - PADDING BLOCKS ADDED";
+ case 0x0B: return "AUXILIARY MEMORY WRITE ERROR";
+ case 0x0C: return "WRITE ERROR - UNEXPECTED UNSOLICITED DATA";
+ case 0x0D: return "WRITE ERROR - NOT ENOUGH UNSOLICITED DATA";
+ case 0x0E: return "MULTIPLE WRITE ERRORS";
+ case 0x0F: return "DEFECTS IN ERROR WINDOW";
+ case 0x10: return "INCOMPLETE MULTIPLE ATOMIC WRITE OPERATIONS";
+ case 0x11: return "WRITE ERROR - RECOVERY SCAN NEEDED";
+ case 0x12: return "WRITE ERROR - INSUFFICIENT ZONE RESOURCES";
}
break;
case 0x0D:
switch(ASCQ)
{
- case 0x00: return"ERROR DETECTED BY THIRD PARTY TEMPORARY INITIATOR";
- case 0x01: return"THIRD PARTY DEVICE FAILURE";
- case 0x02: return"COPY TARGET DEVICE NOT REACHABLE";
- case 0x03: return"INCORRECT COPY TARGET DEVICE TYPE";
- case 0x04: return"COPY TARGET DEVICE DATA UNDERRUN";
- case 0x05: return"COPY TARGET DEVICE DATA OVERRUN";
+ case 0x00: return "ERROR DETECTED BY THIRD PARTY TEMPORARY INITIATOR";
+ case 0x01: return "THIRD PARTY DEVICE FAILURE";
+ case 0x02: return "COPY TARGET DEVICE NOT REACHABLE";
+ case 0x03: return "INCORRECT COPY TARGET DEVICE TYPE";
+ case 0x04: return "COPY TARGET DEVICE DATA UNDERRUN";
+ case 0x05: return "COPY TARGET DEVICE DATA OVERRUN";
}
break;
case 0x0E:
switch(ASCQ)
{
- case 0x00: return"INVALID INFORMATION UNIT";
- case 0x01: return"INFORMATION UNIT TOO SHORT";
- case 0x02: return"INFORMATION UNIT TOO LONG";
- case 0x03: return"INVALID FIELD IN COMMAND INFORMATION UNIT";
+ case 0x00: return "INVALID INFORMATION UNIT";
+ case 0x01: return "INFORMATION UNIT TOO SHORT";
+ case 0x02: return "INFORMATION UNIT TOO LONG";
+ case 0x03: return "INVALID FIELD IN COMMAND INFORMATION UNIT";
}
break;
case 0x10:
switch(ASCQ)
{
- case 0x00: return"ID CRC OR ECC ERROR";
- case 0x01: return"LOGICAL BLOCK GUARD CHECK FAILED";
- case 0x02: return"LOGICAL BLOCK APPLICATION TAG CHECK FAILED";
- case 0x03: return"LOGICAL BLOCK REFERENCE TAG CHECK FAILED";
- case 0x04: return"LOGICAL BLOCK PROTECTION ERROR ON RECOVER BUFFERED DATA";
- case 0x05: return"LOGICAL BLOCK PROTECTION METHOD ERROR";
+ case 0x00: return "ID CRC OR ECC ERROR";
+ case 0x01: return "LOGICAL BLOCK GUARD CHECK FAILED";
+ case 0x02: return "LOGICAL BLOCK APPLICATION TAG CHECK FAILED";
+ case 0x03: return "LOGICAL BLOCK REFERENCE TAG CHECK FAILED";
+ case 0x04: return "LOGICAL BLOCK PROTECTION ERROR ON RECOVER BUFFERED DATA";
+ case 0x05: return "LOGICAL BLOCK PROTECTION METHOD ERROR";
}
break;
case 0x11:
switch(ASCQ)
{
- case 0x00: return"UNRECOVERED READ ERROR";
- case 0x01: return"READ RETRIES EXHAUSTED";
- case 0x02: return"ERROR TOO LONG TO CORRECT";
- case 0x03: return"MULTIPLE READ ERRORS";
- case 0x04: return"UNRECOVERED READ ERROR - AUTO REALLOCATE FAILED";
- case 0x05: return"L-EC UNCORRECTABLE ERROR";
- case 0x06: return"CIRC UNRECOVERED ERROR";
- case 0x07: return"DATA RESYNCHRONIZATION ERROR";
- case 0x08: return"INCOMPLETE BLOCK READ";
- case 0x09: return"NO GAP FOUND";
- case 0x0A: return"MISCORRECTED ERROR";
- case 0x0B: return"UNRECOVERED READ ERROR - RECOMMENDED REASSIGNMENT";
- case 0x0C: return"UNRECOVERED READ ERROR - RECOMMENDED REWRITE THE DATA";
- case 0x0D: return"DE-COMPRESSION CRC ERROR";
- case 0x0E: return"CANNOT DECOMPRESS USING DECLARED ALGORITHM";
- case 0x0F: return"ERROR READING UPC/EAN NUMBER";
- case 0x10: return"ERROR READING ISRC NUMBER";
- case 0x11: return"READ ERROR - LOSS OF STREAMING";
- case 0x12: return"AUXILIARY MEMORY READ ERROR";
- case 0x13: return"READ ERROR - FAILED RETRANSMISSITION REQUEST";
- case 0x14: return"READ ERROR - LBA MARKED BAD BY APPLICATION CLIENT";
- case 0x15: return"WRITE AFTER SANITIZE REQUIRED";
+ case 0x00: return "UNRECOVERED READ ERROR";
+ case 0x01: return "READ RETRIES EXHAUSTED";
+ case 0x02: return "ERROR TOO LONG TO CORRECT";
+ case 0x03: return "MULTIPLE READ ERRORS";
+ case 0x04: return "UNRECOVERED READ ERROR - AUTO REALLOCATE FAILED";
+ case 0x05: return "L-EC UNCORRECTABLE ERROR";
+ case 0x06: return "CIRC UNRECOVERED ERROR";
+ case 0x07: return "DATA RESYNCHRONIZATION ERROR";
+ case 0x08: return "INCOMPLETE BLOCK READ";
+ case 0x09: return "NO GAP FOUND";
+ case 0x0A: return "MISCORRECTED ERROR";
+ case 0x0B: return "UNRECOVERED READ ERROR - RECOMMENDED REASSIGNMENT";
+ case 0x0C: return "UNRECOVERED READ ERROR - RECOMMENDED REWRITE THE DATA";
+ case 0x0D: return "DE-COMPRESSION CRC ERROR";
+ case 0x0E: return "CANNOT DECOMPRESS USING DECLARED ALGORITHM";
+ case 0x0F: return "ERROR READING UPC/EAN NUMBER";
+ case 0x10: return "ERROR READING ISRC NUMBER";
+ case 0x11: return "READ ERROR - LOSS OF STREAMING";
+ case 0x12: return "AUXILIARY MEMORY READ ERROR";
+ case 0x13: return "READ ERROR - FAILED RETRANSMISSITION REQUEST";
+ case 0x14: return "READ ERROR - LBA MARKED BAD BY APPLICATION CLIENT";
+ case 0x15: return "WRITE AFTER SANITIZE REQUIRED";
}
break;
case 0x12:
switch(ASCQ)
{
- case 0x00: return"ADDRESS MARK NOT FOUND FOR ID FIELD";
+ case 0x00: return "ADDRESS MARK NOT FOUND FOR ID FIELD";
}
break;
case 0x13:
switch(ASCQ)
{
- case 0x00: return"ADDRESS MARK NOT FOUND FOR DATA FIELD";
+ case 0x00: return "ADDRESS MARK NOT FOUND FOR DATA FIELD";
}
break;
case 0x14:
switch(ASCQ)
{
- case 0x00: return"RECORDED ENTITY NOT FOUND";
- case 0x01: return"RECORD NOT FOUND";
- case 0x02: return"FILEMARK OR SETMARK NOT FOUND";
- case 0x03: return"END-OF-DATA NOT FOUND";
- case 0x04: return"BLOCK SEQUENCE ERROR";
- case 0x05: return"RECORD NOT FOUND - RECOMMENDAD REASSIGNMENT";
- case 0x06: return"RECORD NOT FOUND - DATA AUTO-REALLOCATED";
- case 0x07: return"LOCATE OPERATION FAILURE";
+ case 0x00: return "RECORDED ENTITY NOT FOUND";
+ case 0x01: return "RECORD NOT FOUND";
+ case 0x02: return "FILEMARK OR SETMARK NOT FOUND";
+ case 0x03: return "END-OF-DATA NOT FOUND";
+ case 0x04: return "BLOCK SEQUENCE ERROR";
+ case 0x05: return "RECORD NOT FOUND - RECOMMENDAD REASSIGNMENT";
+ case 0x06: return "RECORD NOT FOUND - DATA AUTO-REALLOCATED";
+ case 0x07: return "LOCATE OPERATION FAILURE";
}
break;
case 0x15:
switch(ASCQ)
{
- case 0x00: return"RANDOM POSITIONING ERROR";
- case 0x01: return"MECHANICAL POSITIONING ERROR";
- case 0x02: return"POSITIONING ERROR DETECTED BY READ OF MEDIUM";
+ case 0x00: return "RANDOM POSITIONING ERROR";
+ case 0x01: return "MECHANICAL POSITIONING ERROR";
+ case 0x02: return "POSITIONING ERROR DETECTED BY READ OF MEDIUM";
}
break;
case 0x16:
switch(ASCQ)
{
- case 0x00: return"DATA SYNCHRONIZATION MARK ERROR";
- case 0x01: return"DATA SYNC ERROR - DATA REWRITTEN";
- case 0x02: return"DATA SYNC ERROR - RECOMMENDED REWRITE";
- case 0x03: return"DATA SYNC ERROR - DATA AUTO-REALLOCATED";
- case 0x04: return"DATA SYNC ERROR - RECOMMENDED REASSIGNMENT";
+ case 0x00: return "DATA SYNCHRONIZATION MARK ERROR";
+ case 0x01: return "DATA SYNC ERROR - DATA REWRITTEN";
+ case 0x02: return "DATA SYNC ERROR - RECOMMENDED REWRITE";
+ case 0x03: return "DATA SYNC ERROR - DATA AUTO-REALLOCATED";
+ case 0x04: return "DATA SYNC ERROR - RECOMMENDED REASSIGNMENT";
}
break;
case 0x17:
switch(ASCQ)
{
- case 0x00: return"RECOVERED DATA WITH NO ERROR CORRECTION APPLIED";
- case 0x01: return"RECOVERED DATA WITH RETRIES";
- case 0x02: return"RECOVERED DATA WITH POSITIVE HEAD OFFSET";
- case 0x03: return"RECOVERED DATA WITH NEGATIVE HEAD OFFSET";
- case 0x04: return"RECOVERED DATA WITH RETRIES AND/OR CIRC APPLIED";
- case 0x05: return"RECOVERED DATA USING PREVIOUS SECTOR ID";
- case 0x06: return"RECOVERED DATA WITHOUT ECC - DATA AUTO-REALLOCATED";
- case 0x07: return"RECOVERED DATA WITHOUT ECC - RECOMMENDED REASSIGNMENT";
- case 0x08: return"RECOVERED DATA WITHOUT ECC - RECOMMENDED REWRITE";
- case 0x09: return"RECOVERED DATA WITHOUT ECC - DATA REWRITTEN";
+ case 0x00: return "RECOVERED DATA WITH NO ERROR CORRECTION APPLIED";
+ case 0x01: return "RECOVERED DATA WITH RETRIES";
+ case 0x02: return "RECOVERED DATA WITH POSITIVE HEAD OFFSET";
+ case 0x03: return "RECOVERED DATA WITH NEGATIVE HEAD OFFSET";
+ case 0x04: return "RECOVERED DATA WITH RETRIES AND/OR CIRC APPLIED";
+ case 0x05: return "RECOVERED DATA USING PREVIOUS SECTOR ID";
+ case 0x06: return "RECOVERED DATA WITHOUT ECC - DATA AUTO-REALLOCATED";
+ case 0x07: return "RECOVERED DATA WITHOUT ECC - RECOMMENDED REASSIGNMENT";
+ case 0x08: return "RECOVERED DATA WITHOUT ECC - RECOMMENDED REWRITE";
+ case 0x09: return "RECOVERED DATA WITHOUT ECC - DATA REWRITTEN";
}
break;
case 0x18:
switch(ASCQ)
{
- case 0x00: return"RECOVERED DATA WITH ERROR CORRECTION APPLIED";
- case 0x01: return"RECOVERED DATA WITH ERROR CORRECTION & RETRIES APPLIED";
- case 0x02: return"RECOVERED DATA - DATA AUTO-REALLOCATED";
- case 0x03: return"RECOVERED DATA WITH CIRC";
- case 0x04: return"RECOVERED DATA WITH L-EC";
- case 0x05: return"RECOVERED DATA - RECOMMENDED REASSIGNMENT";
- case 0x06: return"RECOVERED DATA - RECOMMENDED REWRITE";
- case 0x07: return"RECOVERED DATA WITH ECC - DATA REWRITTEN";
- case 0x08: return"RECOVERED DATA WITH LINKING";
+ case 0x00: return "RECOVERED DATA WITH ERROR CORRECTION APPLIED";
+ case 0x01: return "RECOVERED DATA WITH ERROR CORRECTION & RETRIES APPLIED";
+ case 0x02: return "RECOVERED DATA - DATA AUTO-REALLOCATED";
+ case 0x03: return "RECOVERED DATA WITH CIRC";
+ case 0x04: return "RECOVERED DATA WITH L-EC";
+ case 0x05: return "RECOVERED DATA - RECOMMENDED REASSIGNMENT";
+ case 0x06: return "RECOVERED DATA - RECOMMENDED REWRITE";
+ case 0x07: return "RECOVERED DATA WITH ECC - DATA REWRITTEN";
+ case 0x08: return "RECOVERED DATA WITH LINKING";
}
break;
case 0x19:
switch(ASCQ)
{
- case 0x00: return"DEFECT LIST ERROR";
- case 0x01: return"DEFECT LIST NOT AVAILABLE";
- case 0x02: return"DEFECT LIST ERROR IN PRIMARY LIST";
- case 0x03: return"DEFECT LIST ERROR IN GROWN LIST";
+ case 0x00: return "DEFECT LIST ERROR";
+ case 0x01: return "DEFECT LIST NOT AVAILABLE";
+ case 0x02: return "DEFECT LIST ERROR IN PRIMARY LIST";
+ case 0x03: return "DEFECT LIST ERROR IN GROWN LIST";
}
break;
case 0x1A:
switch(ASCQ)
{
- case 0x00: return"PARAMETER LIST LENGTH ERROR";
+ case 0x00: return "PARAMETER LIST LENGTH ERROR";
}
break;
case 0x1B:
switch(ASCQ)
{
- case 0x00: return"SYNCHRONOUS DATA TRANSFER ERROR";
+ case 0x00: return "SYNCHRONOUS DATA TRANSFER ERROR";
}
break;
case 0x1C:
switch(ASCQ)
{
- case 0x00: return"DEFECT LIST NOT FOUND";
- case 0x01: return"PRIMARY DEFECT LIST NOT FOUND";
- case 0x02: return"GROWN DEFECT LIST NOT FOUND";
+ case 0x00: return "DEFECT LIST NOT FOUND";
+ case 0x01: return "PRIMARY DEFECT LIST NOT FOUND";
+ case 0x02: return "GROWN DEFECT LIST NOT FOUND";
}
break;
case 0x1D:
switch(ASCQ)
{
- case 0x00: return"MISCOMPARE DURING VERIFY OPERATION";
- case 0x01: return"MISCOMPARE VERIFY OF UNMAPPED LBA";
+ case 0x00: return "MISCOMPARE DURING VERIFY OPERATION";
+ case 0x01: return "MISCOMPARE VERIFY OF UNMAPPED LBA";
}
break;
case 0x1E:
switch(ASCQ)
{
- case 0x00: return"RECOVERED ID WITH ECC CORRECTION";
+ case 0x00: return "RECOVERED ID WITH ECC CORRECTION";
}
break;
case 0x1F:
switch(ASCQ)
{
- case 0x00: return"PARTIAL DEFECT LIST TRANSFER";
+ case 0x00: return "PARTIAL DEFECT LIST TRANSFER";
}
break;
case 0x20:
switch(ASCQ)
{
- case 0x00: return"INVALID COMMAND OPERATION CODE";
- case 0x01: return"ACCESS DENIED - INITIATOR PENDING-ENROLLED";
- case 0x02: return"ACCESS DENIED - NO ACCESS RIGHTS";
- case 0x03: return"ACCESS DENIED - INVALID MGMT ID KEY";
- case 0x04: return"ILLEGAL COMMAND WHILE IN WRITE CAPABLE STATE";
- case 0x05: return"ILLEGAL COMMAND WHILE IN READ CAPABLE STATE";
- case 0x06: return"ILLEGAL COMMAND WHILE IN EXPLICIT ADDRESS MODE";
- case 0x07: return"ILLEGAL COMMAND WHILE IN IMPLICIT ADDRESS MODE";
- case 0x08: return"ACCESS DENIED - ENROLLMENT CONFLICT";
- case 0x09: return"ACCESS DENIED - INVALID LUN IDENTIFIER";
- case 0x0A: return"ACCESS DENIED - INVALID PROXY TOKEN";
- case 0x0B: return"ACCESS DENIED - ACL LUN CONFLICT";
- case 0x0C: return"ILLEGAL COMMAND WHEN NOT IN APPEND-ONLY MODE";
+ case 0x00: return "INVALID COMMAND OPERATION CODE";
+ case 0x01: return "ACCESS DENIED - INITIATOR PENDING-ENROLLED";
+ case 0x02: return "ACCESS DENIED - NO ACCESS RIGHTS";
+ case 0x03: return "ACCESS DENIED - INVALID MGMT ID KEY";
+ case 0x04: return "ILLEGAL COMMAND WHILE IN WRITE CAPABLE STATE";
+ case 0x05: return "ILLEGAL COMMAND WHILE IN READ CAPABLE STATE";
+ case 0x06: return "ILLEGAL COMMAND WHILE IN EXPLICIT ADDRESS MODE";
+ case 0x07: return "ILLEGAL COMMAND WHILE IN IMPLICIT ADDRESS MODE";
+ case 0x08: return "ACCESS DENIED - ENROLLMENT CONFLICT";
+ case 0x09: return "ACCESS DENIED - INVALID LUN IDENTIFIER";
+ case 0x0A: return "ACCESS DENIED - INVALID PROXY TOKEN";
+ case 0x0B: return "ACCESS DENIED - ACL LUN CONFLICT";
+ case 0x0C: return "ILLEGAL COMMAND WHEN NOT IN APPEND-ONLY MODE";
}
break;
case 0x21:
switch(ASCQ)
{
- case 0x00: return"LOGICAL BLOCK ADDRESS OUT OF RANGE";
- case 0x01: return"INVALID ELEMENT ADDRESS";
- case 0x02: return"INVALID ADDRESS FOR WRITE";
- case 0x03: return"INVALID WRITE CROSSING LAYER JUMP";
- case 0x04: return"UNALIGNED WRITE COMMAND";
- case 0x05: return"WRITE BOUNDARY VIOLATION";
- case 0x06: return"ATTEMPT TO READ INVALID DATA";
- case 0x07: return"READ BOUNDARY VIOLATION";
+ case 0x00: return "LOGICAL BLOCK ADDRESS OUT OF RANGE";
+ case 0x01: return "INVALID ELEMENT ADDRESS";
+ case 0x02: return "INVALID ADDRESS FOR WRITE";
+ case 0x03: return "INVALID WRITE CROSSING LAYER JUMP";
+ case 0x04: return "UNALIGNED WRITE COMMAND";
+ case 0x05: return "WRITE BOUNDARY VIOLATION";
+ case 0x06: return "ATTEMPT TO READ INVALID DATA";
+ case 0x07: return "READ BOUNDARY VIOLATION";
}
break;
case 0x22:
switch(ASCQ)
{
- case 0x00: return"ILLEGAL FUNCTION";
+ case 0x00: return "ILLEGAL FUNCTION";
}
break;
case 0x23:
switch(ASCQ)
{
- case 0x00: return"INVALID TOKEN OPERATION, CAUSE NOT REPORTABLE";
- case 0x01: return"INVALID TOKEN OPERATION, UNSUPPORTED TOKEN TYPE";
- case 0x02: return"INVALID TOKEN OPERATION, REMOTE TOKEN USAGE NOT SUPPORTED";
- case 0x03: return"INVALID TOKEN OPERATION, REMOTE ROD TOKEN CREATION NOT SUPPORTED";
- case 0x04: return"INVALID TOKEN OPERATION, TOKEN UNKNOWN";
- case 0x05: return"INVALID TOKEN OPERATION, TOKEN CORRUPT";
- case 0x06: return"INVALID TOKEN OPERATION, TOKEN REVOKED";
- case 0x07: return"INVALID TOKEN OPERATION, TOKEN EXPIRED";
- case 0x08: return"INVALID TOKEN OPERATION, TOKEN CANCELLED";
- case 0x09: return"INVALID TOKEN OPERATION, TOKEN DELETED";
- case 0x0A: return"INVALID TOKEN OPERATION, INVALID TOKEN LENGTH";
+ case 0x00: return "INVALID TOKEN OPERATION, CAUSE NOT REPORTABLE";
+ case 0x01: return "INVALID TOKEN OPERATION, UNSUPPORTED TOKEN TYPE";
+ case 0x02: return "INVALID TOKEN OPERATION, REMOTE TOKEN USAGE NOT SUPPORTED";
+ case 0x03: return "INVALID TOKEN OPERATION, REMOTE ROD TOKEN CREATION NOT SUPPORTED";
+ case 0x04: return "INVALID TOKEN OPERATION, TOKEN UNKNOWN";
+ case 0x05: return "INVALID TOKEN OPERATION, TOKEN CORRUPT";
+ case 0x06: return "INVALID TOKEN OPERATION, TOKEN REVOKED";
+ case 0x07: return "INVALID TOKEN OPERATION, TOKEN EXPIRED";
+ case 0x08: return "INVALID TOKEN OPERATION, TOKEN CANCELLED";
+ case 0x09: return "INVALID TOKEN OPERATION, TOKEN DELETED";
+ case 0x0A: return "INVALID TOKEN OPERATION, INVALID TOKEN LENGTH";
}
break;
case 0x24:
switch(ASCQ)
{
- case 0x00: return"ILLEGAL FIELD IN CDB";
- case 0x01: return"CDB DECRYPTION ERROR";
- case 0x02: return"INVALID CDB FIELD WHILE IN EXPLICIT BLOCK ADDRESS MODEL";
- case 0x03: return"INVALID CDB FIELD WHILE IN IMPLICIT BLOCK ADDRESS MODEL";
- case 0x04: return"SECURITY AUDIT VALUE FROZEN";
- case 0x05: return"SECURITY WORKING KEY FROZEN";
- case 0x06: return"NONCE NOT UNIQUE";
- case 0x07: return"NONCE TIMESTAMP OUT OF RANGE";
- case 0x08: return"INVALID XCDB";
+ case 0x00: return "ILLEGAL FIELD IN CDB";
+ case 0x01: return "CDB DECRYPTION ERROR";
+ case 0x02: return "INVALID CDB FIELD WHILE IN EXPLICIT BLOCK ADDRESS MODEL";
+ case 0x03: return "INVALID CDB FIELD WHILE IN IMPLICIT BLOCK ADDRESS MODEL";
+ case 0x04: return "SECURITY AUDIT VALUE FROZEN";
+ case 0x05: return "SECURITY WORKING KEY FROZEN";
+ case 0x06: return "NONCE NOT UNIQUE";
+ case 0x07: return "NONCE TIMESTAMP OUT OF RANGE";
+ case 0x08: return "INVALID XCDB";
}
break;
case 0x25:
switch(ASCQ)
{
- case 0x00: return"LOGICAL UNIT NOT SUPPORTED";
+ case 0x00: return "LOGICAL UNIT NOT SUPPORTED";
}
break;
case 0x26:
switch(ASCQ)
{
- case 0x00: return"INVALID FIELD IN PARAMETER LIST";
- case 0x01: return"PARAMETER NOT SUPPORTED";
- case 0x02: return"PARAMETER VALUE INVALID";
- case 0x03: return"THRESHOLD PARAMETERS NOT SUPPORTED";
- case 0x04: return"INVALID RELEASE OF PERSISTENT RESERVATION";
- case 0x05: return"DATA DECRYPTION ERROR";
- case 0x06: return"TOO MANY TARGET DESCRIPTORS";
- case 0x07: return"UNSUPPORTED TARGET DESCRIPTOR TYPE CODE";
- case 0x08: return"TOO MANY SEGMENT DESCRIPTORS";
- case 0x09: return"UNSUPPORTED SEGMENT DESCRIPTOR TYPE CODE";
- case 0x0A: return"UNEXPECTED INEXACT SEGMENT";
- case 0x0B: return"INLINE DATA LENGTH EXCEEDED";
- case 0x0C: return"INVALID OPERATION FOR COPY SOURCE OR DESTINATION";
- case 0x0D: return"COPY SEGMENT GRANULARITY VIOLATION";
- case 0x0E: return"INVALID PARAMETER WHILE PORT IS ENABLED";
- case 0x0F: return"INVALID DATA-OUT BUFFER INTEGRITY CHECK VALUE";
- case 0x10: return"DATA DECRYPTION KEY FAIL LIMIT REACHED";
- case 0x11: return"INCOMPLETE KEY-ASSOCIATED DATA SET";
- case 0x12: return"VENDOR SPECIFIC KEY REFERENCE NOT FOUND";
- case 0x13: return"APPLICATION TAG MODE PAGE IS INVALID";
+ case 0x00: return "INVALID FIELD IN PARAMETER LIST";
+ case 0x01: return "PARAMETER NOT SUPPORTED";
+ case 0x02: return "PARAMETER VALUE INVALID";
+ case 0x03: return "THRESHOLD PARAMETERS NOT SUPPORTED";
+ case 0x04: return "INVALID RELEASE OF PERSISTENT RESERVATION";
+ case 0x05: return "DATA DECRYPTION ERROR";
+ case 0x06: return "TOO MANY TARGET DESCRIPTORS";
+ case 0x07: return "UNSUPPORTED TARGET DESCRIPTOR TYPE CODE";
+ case 0x08: return "TOO MANY SEGMENT DESCRIPTORS";
+ case 0x09: return "UNSUPPORTED SEGMENT DESCRIPTOR TYPE CODE";
+ case 0x0A: return "UNEXPECTED INEXACT SEGMENT";
+ case 0x0B: return "INLINE DATA LENGTH EXCEEDED";
+ case 0x0C: return "INVALID OPERATION FOR COPY SOURCE OR DESTINATION";
+ case 0x0D: return "COPY SEGMENT GRANULARITY VIOLATION";
+ case 0x0E: return "INVALID PARAMETER WHILE PORT IS ENABLED";
+ case 0x0F: return "INVALID DATA-OUT BUFFER INTEGRITY CHECK VALUE";
+ case 0x10: return "DATA DECRYPTION KEY FAIL LIMIT REACHED";
+ case 0x11: return "INCOMPLETE KEY-ASSOCIATED DATA SET";
+ case 0x12: return "VENDOR SPECIFIC KEY REFERENCE NOT FOUND";
+ case 0x13: return "APPLICATION TAG MODE PAGE IS INVALID";
}
break;
case 0x27:
switch(ASCQ)
{
- case 0x00: return"WRITE PROTECTED";
- case 0x01: return"HARDWARE WRITE PROTECTED";
- case 0x02: return"LOGICAL UNIT SOFTWARE WRITE PROTECTED";
- case 0x03: return"ASSOCIATED WRITE PROTECT";
- case 0x04: return"PERSISTENT WRITE PROTECT";
- case 0x05: return"PERMANENT WRITE PROTECT";
- case 0x06: return"CONDITIONAL WRITE PROTECT";
- case 0x07: return"SPACE ALLOCATION FAILED WRITE PROTECT";
- case 0x08: return"ZONE IS READ ONLY";
+ case 0x00: return "WRITE PROTECTED";
+ case 0x01: return "HARDWARE WRITE PROTECTED";
+ case 0x02: return "LOGICAL UNIT SOFTWARE WRITE PROTECTED";
+ case 0x03: return "ASSOCIATED WRITE PROTECT";
+ case 0x04: return "PERSISTENT WRITE PROTECT";
+ case 0x05: return "PERMANENT WRITE PROTECT";
+ case 0x06: return "CONDITIONAL WRITE PROTECT";
+ case 0x07: return "SPACE ALLOCATION FAILED WRITE PROTECT";
+ case 0x08: return "ZONE IS READ ONLY";
}
break;
case 0x28:
switch(ASCQ)
{
- case 0x00: return"NOT READY TO READY CHANGE (MEDIUM MAY HAVE CHANGED)";
- case 0x01: return"IMPORT OR EXPORT ELEMENT ACCESSED";
- case 0x02: return"FORMAT-LAYER MAY HAVE CHANGED";
- case 0x03: return"IMPORT/EXPORT ELEMENT ACCESSED, MEDIUM CHANGED";
+ case 0x00: return "NOT READY TO READY CHANGE (MEDIUM MAY HAVE CHANGED)";
+ case 0x01: return "IMPORT OR EXPORT ELEMENT ACCESSED";
+ case 0x02: return "FORMAT-LAYER MAY HAVE CHANGED";
+ case 0x03: return "IMPORT/EXPORT ELEMENT ACCESSED, MEDIUM CHANGED";
}
break;
case 0x29:
switch(ASCQ)
{
- case 0x00: return"POWER ON, RESET, OR BUS DEVICE RESET OCCURRED";
- case 0x01: return"POWER ON OCCURRED";
- case 0x02: return"SCSI BUS RESET OCCURRED";
- case 0x03: return"BUS DEVICE RESET FUNCTION OCCURRED";
- case 0x04: return"DEVICE INTERNAL RESET";
- case 0x05: return"TRANSCEIVER MODE CHANGED TO SINGLE-ENDED";
- case 0x06: return"TRANSCEIVER MODE CHANGED TO LVD";
- case 0x07: return"I_T NEXUS LOSS OCCURRED";
+ case 0x00: return "POWER ON, RESET, OR BUS DEVICE RESET OCCURRED";
+ case 0x01: return "POWER ON OCCURRED";
+ case 0x02: return "SCSI BUS RESET OCCURRED";
+ case 0x03: return "BUS DEVICE RESET FUNCTION OCCURRED";
+ case 0x04: return "DEVICE INTERNAL RESET";
+ case 0x05: return "TRANSCEIVER MODE CHANGED TO SINGLE-ENDED";
+ case 0x06: return "TRANSCEIVER MODE CHANGED TO LVD";
+ case 0x07: return "I_T NEXUS LOSS OCCURRED";
}
break;
case 0x2A:
switch(ASCQ)
{
- case 0x00: return"PARAMETERS CHANGED";
- case 0x01: return"MODE PARAMETERS CHANGED";
- case 0x02: return"LOG PARAMETERS CHANGED";
- case 0x03: return"RESERVATIONS PREEMPTED";
- case 0x04: return"RESERVATIONS RELEASED";
- case 0x05: return"REGISTRATIONS PREEMPTED";
- case 0x06: return"ASYMMETRIC ACCESS STATE CHANGED";
- case 0x07: return"IMPLICIT ASYMMETRIC ACCESS STATE TRANSITION FAILED";
- case 0x08: return"PRIORITY CHANGED";
- case 0x09: return"CAPACITY DATA HAS CHANGED";
- case 0x0A: return"ERROR HISTORY I_T NEXUS CLEARED";
- case 0x0B: return"ERROR HISTORY SNAPSHOT RELEASED";
- case 0x0C: return"ERROR RECOVERY ATTRIBUTES HAVE CHANGED";
- case 0x0D: return"DATA ENCRYPTION CAPABILITIES CHANGED";
- case 0x10: return"TIMESTAMP CHANGED";
- case 0x11: return"DATA ENCRYPTION PARAMETERS CHANGED BY ANOTHER I_T NEXUS";
- case 0x12: return"DATA ENCRYPTION PARAMETERS CHANGED BY VENDOR SPECIFIC EVENT";
- case 0x13: return"DATA ENCRYPTION KEY INSTANCE COUNTER HAS CHANGED";
- case 0x14: return"SA CREATION CAPABILITIES DATA HAS CHANGED";
- case 0x15: return"MEDIUM REMOVAL PREVENTION PREEMPTED";
+ case 0x00: return "PARAMETERS CHANGED";
+ case 0x01: return "MODE PARAMETERS CHANGED";
+ case 0x02: return "LOG PARAMETERS CHANGED";
+ case 0x03: return "RESERVATIONS PREEMPTED";
+ case 0x04: return "RESERVATIONS RELEASED";
+ case 0x05: return "REGISTRATIONS PREEMPTED";
+ case 0x06: return "ASYMMETRIC ACCESS STATE CHANGED";
+ case 0x07: return "IMPLICIT ASYMMETRIC ACCESS STATE TRANSITION FAILED";
+ case 0x08: return "PRIORITY CHANGED";
+ case 0x09: return "CAPACITY DATA HAS CHANGED";
+ case 0x0A: return "ERROR HISTORY I_T NEXUS CLEARED";
+ case 0x0B: return "ERROR HISTORY SNAPSHOT RELEASED";
+ case 0x0C: return "ERROR RECOVERY ATTRIBUTES HAVE CHANGED";
+ case 0x0D: return "DATA ENCRYPTION CAPABILITIES CHANGED";
+ case 0x10: return "TIMESTAMP CHANGED";
+ case 0x11: return "DATA ENCRYPTION PARAMETERS CHANGED BY ANOTHER I_T NEXUS";
+ case 0x12: return "DATA ENCRYPTION PARAMETERS CHANGED BY VENDOR SPECIFIC EVENT";
+ case 0x13: return "DATA ENCRYPTION KEY INSTANCE COUNTER HAS CHANGED";
+ case 0x14: return "SA CREATION CAPABILITIES DATA HAS CHANGED";
+ case 0x15: return "MEDIUM REMOVAL PREVENTION PREEMPTED";
}
break;
case 0x2B:
switch(ASCQ)
{
- case 0x00: return"COPY CANNOT EXECUTE SINCE HOST CANNOT DISCONNECT";
+ case 0x00: return "COPY CANNOT EXECUTE SINCE HOST CANNOT DISCONNECT";
}
break;
case 0x2C:
switch(ASCQ)
{
- case 0x00: return"COMMAND SEQUENCE ERROR";
- case 0x01: return"TOO MANY WINDOWS SPECIFIED";
- case 0x02: return"INVALID COMBINATION OF WINDOWS SPECIFIED";
- case 0x03: return"CURRENT PROGRAM AREA IS NOT EMPTY";
- case 0x04: return"CURRENT PROGRAM AREA IS EMPTY";
- case 0x05: return"ILLEGAL POWER CONDITION REQUEST";
- case 0x06: return"PERSISTENT PREVENT CONFLICT";
- case 0x07: return"PREVIOUS BUSY STATUS";
- case 0x08: return"PREVIOUS TASK SET FULL STATUS";
- case 0x09: return"PREVIOUS RESERVATION CONFLICT STATUS";
- case 0x0A: return"PARTITION OR COLLECTION CONTAINS USER OBJECTS";
- case 0x0B: return"NOT RESERVED";
- case 0x0C: return"ORWRITE GENERATION DOES NOT MATCH";
- case 0x0D: return"RESET WRITE POINTER NOT ALLOWED";
- case 0x0E: return"ZONE IS OFFLINE";
- case 0x0F: return"STREAM NOT OPEN";
- case 0x10: return"UNWRITTEN DATA IN ZONE";
+ case 0x00: return "COMMAND SEQUENCE ERROR";
+ case 0x01: return "TOO MANY WINDOWS SPECIFIED";
+ case 0x02: return "INVALID COMBINATION OF WINDOWS SPECIFIED";
+ case 0x03: return "CURRENT PROGRAM AREA IS NOT EMPTY";
+ case 0x04: return "CURRENT PROGRAM AREA IS EMPTY";
+ case 0x05: return "ILLEGAL POWER CONDITION REQUEST";
+ case 0x06: return "PERSISTENT PREVENT CONFLICT";
+ case 0x07: return "PREVIOUS BUSY STATUS";
+ case 0x08: return "PREVIOUS TASK SET FULL STATUS";
+ case 0x09: return "PREVIOUS RESERVATION CONFLICT STATUS";
+ case 0x0A: return "PARTITION OR COLLECTION CONTAINS USER OBJECTS";
+ case 0x0B: return "NOT RESERVED";
+ case 0x0C: return "ORWRITE GENERATION DOES NOT MATCH";
+ case 0x0D: return "RESET WRITE POINTER NOT ALLOWED";
+ case 0x0E: return "ZONE IS OFFLINE";
+ case 0x0F: return "STREAM NOT OPEN";
+ case 0x10: return "UNWRITTEN DATA IN ZONE";
}
break;
case 0x2D:
switch(ASCQ)
{
- case 0x00: return"OVERWRITE ERROR ON UPDATE IN PLACE";
+ case 0x00: return "OVERWRITE ERROR ON UPDATE IN PLACE";
}
break;
case 0x2E:
switch(ASCQ)
{
- case 0x00: return"INSUFFICIENT TIME FOR OPERATION";
- case 0x01: return"COMMAND TIMEOUT BEFORE PROCESSING";
- case 0x02: return"COMMAND TIMEOUT DURING PROCESSING";
- case 0x03: return"COMMAND TIMEOUT DURING PROCESSING DUE TO ERROR RECOVERY";
+ case 0x00: return "INSUFFICIENT TIME FOR OPERATION";
+ case 0x01: return "COMMAND TIMEOUT BEFORE PROCESSING";
+ case 0x02: return "COMMAND TIMEOUT DURING PROCESSING";
+ case 0x03: return "COMMAND TIMEOUT DURING PROCESSING DUE TO ERROR RECOVERY";
}
break;
case 0x2F:
switch(ASCQ)
{
- case 0x00: return"COMMANDS CLEARED BY ANOTHER INITIATOR";
- case 0x01: return"COMMANDS CLEARED BY POWER LOSS NOTIFICATION";
- case 0x02: return"COMMANDS CLEARED BY DEVICE SERVER";
- case 0x03: return"SOME COMMANDS CLEARED BY QUEUING LAYER EVENT";
+ case 0x00: return "COMMANDS CLEARED BY ANOTHER INITIATOR";
+ case 0x01: return "COMMANDS CLEARED BY POWER LOSS NOTIFICATION";
+ case 0x02: return "COMMANDS CLEARED BY DEVICE SERVER";
+ case 0x03: return "SOME COMMANDS CLEARED BY QUEUING LAYER EVENT";
}
break;
case 0x30:
switch(ASCQ)
{
- case 0x00: return"INCOMPATIBLE MEDIUM INSTALLED";
- case 0x01: return"CANNOT READ MEDIUM - UNKNOWN FORMAT";
- case 0x02: return"CANNOT READ MEDIUM - INCOMPATIBLE FORMAT";
- case 0x03: return"CLEANING CARTRIDGE INSTALLED";
- case 0x04: return"CANNOT WRITE MEDIUM - UNKNOWN FORMAT";
- case 0x05: return"CANNOT WRITE MEDIUM - INCOMPATIBLE FORMAT";
- case 0x06: return"CANNOT FORMAT MEDIUM - INCOMPATIBLE MEDIUM";
- case 0x07: return"CLEANING FAILURE";
- case 0x08: return"CANNOT WRITE - APPLICATION CODE MISMATCH";
- case 0x09: return"CURRENT SESSION NOT FIXATED FOR APPEND";
- case 0x0A: return"CLEANING REQUEST REJECTED";
- case 0x0C: return"WORM MEDIUM - OVERWRITE ATTEMPTED";
- case 0x0D: return"WORM MEDIUM - INTEGRITY CHECK";
- case 0x10: return"MEDIUM NOT FORMATTED";
- case 0x11: return"INCOMPATIBLE VOLUME TYPE";
- case 0x12: return"INCOMPATIBLE VOLUME QUALIFIER";
- case 0x13: return"CLEANING VOLUME EXPIRED";
+ case 0x00: return "INCOMPATIBLE MEDIUM INSTALLED";
+ case 0x01: return "CANNOT READ MEDIUM - UNKNOWN FORMAT";
+ case 0x02: return "CANNOT READ MEDIUM - INCOMPATIBLE FORMAT";
+ case 0x03: return "CLEANING CARTRIDGE INSTALLED";
+ case 0x04: return "CANNOT WRITE MEDIUM - UNKNOWN FORMAT";
+ case 0x05: return "CANNOT WRITE MEDIUM - INCOMPATIBLE FORMAT";
+ case 0x06: return "CANNOT FORMAT MEDIUM - INCOMPATIBLE MEDIUM";
+ case 0x07: return "CLEANING FAILURE";
+ case 0x08: return "CANNOT WRITE - APPLICATION CODE MISMATCH";
+ case 0x09: return "CURRENT SESSION NOT FIXATED FOR APPEND";
+ case 0x0A: return "CLEANING REQUEST REJECTED";
+ case 0x0C: return "WORM MEDIUM - OVERWRITE ATTEMPTED";
+ case 0x0D: return "WORM MEDIUM - INTEGRITY CHECK";
+ case 0x10: return "MEDIUM NOT FORMATTED";
+ case 0x11: return "INCOMPATIBLE VOLUME TYPE";
+ case 0x12: return "INCOMPATIBLE VOLUME QUALIFIER";
+ case 0x13: return "CLEANING VOLUME EXPIRED";
}
break;
case 0x31:
switch(ASCQ)
{
- case 0x00: return"MEDIUM FORMAT CORRUPTED";
- case 0x01: return"FORMAT COMMAND FAILED";
- case 0x02: return"ZONED FORMATTING FAILED DUE TO SPARE LINKING";
- case 0x03: return"SANITIZE COMMAND FAILED";
+ case 0x00: return "MEDIUM FORMAT CORRUPTED";
+ case 0x01: return "FORMAT COMMAND FAILED";
+ case 0x02: return "ZONED FORMATTING FAILED DUE TO SPARE LINKING";
+ case 0x03: return "SANITIZE COMMAND FAILED";
}
break;
case 0x32:
switch(ASCQ)
{
- case 0x00: return"NO DEFECT SPARE LOCATION AVAILABLE";
- case 0x01: return"DEFECT LIST UPDATE FAILURE";
+ case 0x00: return "NO DEFECT SPARE LOCATION AVAILABLE";
+ case 0x01: return "DEFECT LIST UPDATE FAILURE";
}
break;
case 0x33:
switch(ASCQ)
{
- case 0x00: return"TAPE LENGTH ERROR";
+ case 0x00: return "TAPE LENGTH ERROR";
}
break;
case 0x34:
switch(ASCQ)
{
- case 0x00: return"ENCLOSURE FAILURE";
+ case 0x00: return "ENCLOSURE FAILURE";
}
break;
case 0x35:
switch(ASCQ)
{
- case 0x00: return"ENCLOSURE SERVICES FAILURE";
- case 0x01: return"UNSUPPORTED ENCLOSURE FUNCTION";
- case 0x02: return"ENCLOSURE SERVICES UNAVAILABLE";
- case 0x03: return"ENCLOSURE SERVICES TRANSFER FAILURE";
- case 0x04: return"ENCLOSURE SERVICES TRANSFER REFUSED";
- case 0x05: return"ENCLOSURE SERVICES CHECKSUM ERROR";
+ case 0x00: return "ENCLOSURE SERVICES FAILURE";
+ case 0x01: return "UNSUPPORTED ENCLOSURE FUNCTION";
+ case 0x02: return "ENCLOSURE SERVICES UNAVAILABLE";
+ case 0x03: return "ENCLOSURE SERVICES TRANSFER FAILURE";
+ case 0x04: return "ENCLOSURE SERVICES TRANSFER REFUSED";
+ case 0x05: return "ENCLOSURE SERVICES CHECKSUM ERROR";
}
break;
case 0x36:
switch(ASCQ)
{
- case 0x00: return"RIBBON, INK, OR TONER FAILURE";
+ case 0x00: return "RIBBON, INK, OR TONER FAILURE";
}
break;
case 0x37:
switch(ASCQ)
{
- case 0x00: return"ROUNDED PARAMETER";
+ case 0x00: return "ROUNDED PARAMETER";
}
break;
case 0x38:
switch(ASCQ)
{
- case 0x00: return"EVENT STATUS NOTIFICATION";
- case 0x02: return"ESN - POWER MANAGEMENT CLASS EVENT";
- case 0x04: return"ESN - MEDIA CLASS EVENT";
- case 0x06: return"ESN - DEVICE BUSY CLASS EVENT";
- case 0x07: return"THIN PROVISIONING SOFT THRESHOLD REACHED";
+ case 0x00: return "EVENT STATUS NOTIFICATION";
+ case 0x02: return "ESN - POWER MANAGEMENT CLASS EVENT";
+ case 0x04: return "ESN - MEDIA CLASS EVENT";
+ case 0x06: return "ESN - DEVICE BUSY CLASS EVENT";
+ case 0x07: return "THIN PROVISIONING SOFT THRESHOLD REACHED";
}
break;
case 0x39:
switch(ASCQ)
{
- case 0x00: return"SAVING PARAMETERS NOT SUPPORTED";
+ case 0x00: return "SAVING PARAMETERS NOT SUPPORTED";
}
break;
case 0x3A:
switch(ASCQ)
{
- case 0x00: return"MEDIUM NOT PRESENT";
- case 0x01: return"MEDIUM NOT PRESENT - TRAY CLOSED";
- case 0x02: return"MEDIUM NOT PRESENT - TRAY OPEN";
- case 0x03: return"MEDIUM NOT PRESENT - LOADABLE";
- case 0x04: return"MEDIUM NOT PRESENT - MEDIUM AUXILIARY MEMORY ACCESSIBLE";
+ case 0x00: return "MEDIUM NOT PRESENT";
+ case 0x01: return "MEDIUM NOT PRESENT - TRAY CLOSED";
+ case 0x02: return "MEDIUM NOT PRESENT - TRAY OPEN";
+ case 0x03: return "MEDIUM NOT PRESENT - LOADABLE";
+ case 0x04: return "MEDIUM NOT PRESENT - MEDIUM AUXILIARY MEMORY ACCESSIBLE";
}
break;
case 0x3B:
switch(ASCQ)
{
- case 0x00: return"SEQUENTIAL POSITIONING ERROR";
- case 0x01: return"TAPE POSITION ERROR AT BEGINNING-OF-MEDIUM";
- case 0x02: return"TAPE POSITION ERROR AT END-OF-MEDIUM";
- case 0x03: return"TAPE OR ELECTRONIC VERTICAL FORMS UNIT NOT READY";
- case 0x04: return"SLEW FAILURE";
- case 0x05: return"PAPER JAM";
- case 0x06: return"FAILED TO SENSE TOP-OF-FORM";
- case 0x07: return"FAILED TO SENSE BOTTOM-OF-FORM";
- case 0x08: return"REPOSITION ERROR";
- case 0x09: return"READ PAST END OF MEDIUM";
- case 0x0A: return"READ PAST BEGINNING OF MEDIUM";
- case 0x0B: return"POSITION PAST END OF MEDIUM";
- case 0x0C: return"POSITION PAST BEGINNING OF MEDIUM";
- case 0x0D: return"MEDIUM DESTINATION ELEMENT FULL";
- case 0x0E: return"MEDIUM SOURCE ELEMENT EMPTY";
- case 0x0F: return"END OF MEDIUM REACHED";
- case 0x11: return"MEDIUM MAGAZINE NOT ACCESSIBLE";
- case 0x12: return"MEDIUM MAGAZINE REMOVED";
- case 0x13: return"MEDIUM MAGAZINE INSERTED";
- case 0x14: return"MEDIUM MAGAZINE LOCKED";
- case 0x15: return"MEDIUM MAGAZINE UNLOCKED";
- case 0x16: return"MECHANICAL POSITIONING OR CHANGER ERROR";
- case 0x17: return"READ PAST END OF USER OBJECT";
- case 0x18: return"ELEMENT DISABLED";
- case 0x19: return"ELEMENT ENABLED";
- case 0x1A: return"DATA TRANSFER DEVICE REMOVED";
- case 0x1B: return"DATA TRANSFER DEVICE INSERTED";
- case 0x1C: return"TOO MANY LOGICAL OBJECTS ON PARTITION TO SUPPORT OPERATION";
+ case 0x00: return "SEQUENTIAL POSITIONING ERROR";
+ case 0x01: return "TAPE POSITION ERROR AT BEGINNING-OF-MEDIUM";
+ case 0x02: return "TAPE POSITION ERROR AT END-OF-MEDIUM";
+ case 0x03: return "TAPE OR ELECTRONIC VERTICAL FORMS UNIT NOT READY";
+ case 0x04: return "SLEW FAILURE";
+ case 0x05: return "PAPER JAM";
+ case 0x06: return "FAILED TO SENSE TOP-OF-FORM";
+ case 0x07: return "FAILED TO SENSE BOTTOM-OF-FORM";
+ case 0x08: return "REPOSITION ERROR";
+ case 0x09: return "READ PAST END OF MEDIUM";
+ case 0x0A: return "READ PAST BEGINNING OF MEDIUM";
+ case 0x0B: return "POSITION PAST END OF MEDIUM";
+ case 0x0C: return "POSITION PAST BEGINNING OF MEDIUM";
+ case 0x0D: return "MEDIUM DESTINATION ELEMENT FULL";
+ case 0x0E: return "MEDIUM SOURCE ELEMENT EMPTY";
+ case 0x0F: return "END OF MEDIUM REACHED";
+ case 0x11: return "MEDIUM MAGAZINE NOT ACCESSIBLE";
+ case 0x12: return "MEDIUM MAGAZINE REMOVED";
+ case 0x13: return "MEDIUM MAGAZINE INSERTED";
+ case 0x14: return "MEDIUM MAGAZINE LOCKED";
+ case 0x15: return "MEDIUM MAGAZINE UNLOCKED";
+ case 0x16: return "MECHANICAL POSITIONING OR CHANGER ERROR";
+ case 0x17: return "READ PAST END OF USER OBJECT";
+ case 0x18: return "ELEMENT DISABLED";
+ case 0x19: return "ELEMENT ENABLED";
+ case 0x1A: return "DATA TRANSFER DEVICE REMOVED";
+ case 0x1B: return "DATA TRANSFER DEVICE INSERTED";
+ case 0x1C: return "TOO MANY LOGICAL OBJECTS ON PARTITION TO SUPPORT OPERATION";
}
break;
case 0x3D:
switch(ASCQ)
{
- case 0x00: return"INVALID BITS IN IDENTIFY MESSAGE";
+ case 0x00: return "INVALID BITS IN IDENTIFY MESSAGE";
}
break;
case 0x3E:
switch(ASCQ)
{
- case 0x00: return"LOGICAL UNIT HAS NOT SELF-CONFIGURED YET";
- case 0x01: return"LOGICAL UNIT FAILURE";
- case 0x02: return"TIMEOUT ON LOGICAL UNIT";
- case 0x03: return"LOGICAL UNIT FAILED SELF-TEST";
- case 0x04: return"LOGICAL UNIT UNABLE TO UPDATE SELF-TEST LOG";
+ case 0x00: return "LOGICAL UNIT HAS NOT SELF-CONFIGURED YET";
+ case 0x01: return "LOGICAL UNIT FAILURE";
+ case 0x02: return "TIMEOUT ON LOGICAL UNIT";
+ case 0x03: return "LOGICAL UNIT FAILED SELF-TEST";
+ case 0x04: return "LOGICAL UNIT UNABLE TO UPDATE SELF-TEST LOG";
}
break;
case 0x3F:
switch(ASCQ)
{
- case 0x00: return"TARGET OPERATING CONDITIONS HAVE CHANGED";
- case 0x01: return"MICROCODE HAS BEEN CHANGED";
- case 0x02: return"CHANGED OPERATING DEFINITION";
- case 0x03: return"INQUIRY DATA HAS CHANGED";
- case 0x04: return"COMPONENT DEVICE ATTACHED";
- case 0x05: return"DEVICE IDENTIFIED CHANGED";
- case 0x06: return"REDUNDANCY GROUP CREATED OR MODIFIED";
- case 0x07: return"REDUNDANCY GROUP DELETED";
- case 0x08: return"SPARE CREATED OR MODIFIED";
- case 0x09: return"SPARE DELETED";
- case 0x0A: return"VOLUME SET CREATED OR MODIFIED";
- case 0x0B: return"VOLUME SET DELETED";
- case 0x0C: return"VOLUME SET DEASSIGNED";
- case 0x0D: return"VOLUME SET REASSIGNED";
- case 0x0E: return"REPORTED LUNS DATA HAS CHANGED";
- case 0x0F: return"ECHO BUFFER OVERWRITTEN";
- case 0x10: return"MEDIUM LOADABLE";
- case 0x11: return"MEDIUM AUXILIARY MEMORY ACCESSIBLE";
- case 0x12: return"iSCSI IP ADDRESS ADDED";
- case 0x13: return"iSCSI IP ADDRESS REMOVED";
- case 0x14: return"iSCSI IP ADDRESS CHANGED";
- case 0x15: return"INSPECT REFERRALS SENSE DESCRIPTORS";
- case 0x16: return"MICROCODE HAS BEEN CHANGED WITHOUT RESET";
- case 0x17: return"ZONE TRANSITION TO FULL";
+ case 0x00: return "TARGET OPERATING CONDITIONS HAVE CHANGED";
+ case 0x01: return "MICROCODE HAS BEEN CHANGED";
+ case 0x02: return "CHANGED OPERATING DEFINITION";
+ case 0x03: return "INQUIRY DATA HAS CHANGED";
+ case 0x04: return "COMPONENT DEVICE ATTACHED";
+ case 0x05: return "DEVICE IDENTIFIED CHANGED";
+ case 0x06: return "REDUNDANCY GROUP CREATED OR MODIFIED";
+ case 0x07: return "REDUNDANCY GROUP DELETED";
+ case 0x08: return "SPARE CREATED OR MODIFIED";
+ case 0x09: return "SPARE DELETED";
+ case 0x0A: return "VOLUME SET CREATED OR MODIFIED";
+ case 0x0B: return "VOLUME SET DELETED";
+ case 0x0C: return "VOLUME SET DEASSIGNED";
+ case 0x0D: return "VOLUME SET REASSIGNED";
+ case 0x0E: return "REPORTED LUNS DATA HAS CHANGED";
+ case 0x0F: return "ECHO BUFFER OVERWRITTEN";
+ case 0x10: return "MEDIUM LOADABLE";
+ case 0x11: return "MEDIUM AUXILIARY MEMORY ACCESSIBLE";
+ case 0x12: return "iSCSI IP ADDRESS ADDED";
+ case 0x13: return "iSCSI IP ADDRESS REMOVED";
+ case 0x14: return "iSCSI IP ADDRESS CHANGED";
+ case 0x15: return "INSPECT REFERRALS SENSE DESCRIPTORS";
+ case 0x16: return "MICROCODE HAS BEEN CHANGED WITHOUT RESET";
+ case 0x17: return "ZONE TRANSITION TO FULL";
}
break;
case 0x40:
switch(ASCQ)
{
- case 0x00: return"RAM FAILURE";
- default: return$"DIAGNOSTIC FAILURE ON COMPONENT {ASCQ:X2}h";
+ case 0x00: return "RAM FAILURE";
+ default: return $"DIAGNOSTIC FAILURE ON COMPONENT {ASCQ:X2}h";
}
case 0x41:
switch(ASCQ)
{
- case 0x00: return"DATA PATH FAILURE";
+ case 0x00: return "DATA PATH FAILURE";
}
break;
case 0x42:
switch(ASCQ)
{
- case 0x00: return"POWER-ON OR SELF-TEST FAILURE";
+ case 0x00: return "POWER-ON OR SELF-TEST FAILURE";
}
break;
case 0x43:
switch(ASCQ)
{
- case 0x00: return"MESSAGE ERROR";
+ case 0x00: return "MESSAGE ERROR";
}
break;
case 0x44:
switch(ASCQ)
{
- case 0x00: return"INTERNAL TARGET FAILURE";
- case 0x01: return"PERSISTENT RESERVATION INFORMATION LOST";
- case 0x71: return"ATA DEVICE FAILED SET FEATURES";
+ case 0x00: return "INTERNAL TARGET FAILURE";
+ case 0x01: return "PERSISTENT RESERVATION INFORMATION LOST";
+ case 0x71: return "ATA DEVICE FAILED SET FEATURES";
}
break;
case 0x45:
switch(ASCQ)
{
- case 0x00: return"SELECT OR RESELECT FAILURE";
+ case 0x00: return "SELECT OR RESELECT FAILURE";
}
break;
case 0x46:
switch(ASCQ)
{
- case 0x00: return"UNSUCCESSFUL SOFT RESET";
+ case 0x00: return "UNSUCCESSFUL SOFT RESET";
}
break;
case 0x47:
switch(ASCQ)
{
- case 0x00: return"SCSI PARITY ERROR";
- case 0x01: return"DATA PHASE CRC ERROR DETECTED";
- case 0x02: return"SCSI PARITY ERROR DETECTED DURING ST DATA PHASE";
- case 0x03: return"INFORMATION UNIT iuCRC ERROR DETECTED";
- case 0x04: return"ASYNCHRONOUS INFORMATION PROTECTION ERROR DETECTED";
- case 0x05: return"PROTOCOL SERVICE CRC ERROR";
- case 0x06: return"PHY TEST FUNCTION IN PROGRESS";
- case 0x7F: return"SOME COMMANDS CLEARED BY iSCSI PROTOCOL EVENT";
+ case 0x00: return "SCSI PARITY ERROR";
+ case 0x01: return "DATA PHASE CRC ERROR DETECTED";
+ case 0x02: return "SCSI PARITY ERROR DETECTED DURING ST DATA PHASE";
+ case 0x03: return "INFORMATION UNIT iuCRC ERROR DETECTED";
+ case 0x04: return "ASYNCHRONOUS INFORMATION PROTECTION ERROR DETECTED";
+ case 0x05: return "PROTOCOL SERVICE CRC ERROR";
+ case 0x06: return "PHY TEST FUNCTION IN PROGRESS";
+ case 0x7F: return "SOME COMMANDS CLEARED BY iSCSI PROTOCOL EVENT";
}
break;
case 0x48:
switch(ASCQ)
{
- case 0x00: return"INITIATOR DETECTED ERROR MESSAGE RECEIVED";
+ case 0x00: return "INITIATOR DETECTED ERROR MESSAGE RECEIVED";
}
break;
case 0x49:
switch(ASCQ)
{
- case 0x00: return"INVALID MESSAGE ERROR";
+ case 0x00: return "INVALID MESSAGE ERROR";
}
break;
case 0x4A:
switch(ASCQ)
{
- case 0x00: return"COMMAND PHASE ERROR";
+ case 0x00: return "COMMAND PHASE ERROR";
}
break;
case 0x4B:
switch(ASCQ)
{
- case 0x00: return"DATA PHASE ERROR";
- case 0x01: return"INVALID TARGET PORT TRANSFER TAG RECEIVED";
- case 0x02: return"TOO MUCH WRITE DATA";
- case 0x03: return"ACK/NAK TIMEOUT";
- case 0x04: return"NAK RECEIVED";
- case 0x05: return"DATA OFFSET ERROR";
- case 0x06: return"INITIATOR RESPONSE TIMEOUT";
- case 0x07: return"CONNECTION LOST";
- case 0x08: return"DATA-IN BUFFER OVERFLOW - DATA BUFFER SIZE";
- case 0x09: return"DATA-IN BUFFER OVERFLOW - DATA BUFFER DESCRIPTOR AREA";
- case 0x0A: return"DATA-IN BUFFER ERROR";
- case 0x0B: return"DATA-OUT BUFFER OVERFLOW - DATA BUFFER SIZE";
- case 0x0C: return"DATA-OUT BUFFER OVERFLOW - DATA BUFFER DESCRIPTOR AREA";
- case 0x0D: return"DATA-OUT BUFFER ERROR";
- case 0x0E: return"PCIe FABRIC ERROR";
- case 0x0F: return"PCIe COMPLETION TIMEOUT";
- case 0x10: return"PCIe COMPLETION ABORT";
- case 0x11: return"PCIe POISONED TLP RECEIVED";
- case 0x12: return"PCIe ECRC CHECK FAILED";
- case 0x13: return"PCIe UNSUPPORTED REQUEST";
- case 0x14: return"PCIe ACS VIOLATION";
- case 0x15: return"PCIe TLP PREFIX BLOCKED";
+ case 0x00: return "DATA PHASE ERROR";
+ case 0x01: return "INVALID TARGET PORT TRANSFER TAG RECEIVED";
+ case 0x02: return "TOO MUCH WRITE DATA";
+ case 0x03: return "ACK/NAK TIMEOUT";
+ case 0x04: return "NAK RECEIVED";
+ case 0x05: return "DATA OFFSET ERROR";
+ case 0x06: return "INITIATOR RESPONSE TIMEOUT";
+ case 0x07: return "CONNECTION LOST";
+ case 0x08: return "DATA-IN BUFFER OVERFLOW - DATA BUFFER SIZE";
+ case 0x09: return "DATA-IN BUFFER OVERFLOW - DATA BUFFER DESCRIPTOR AREA";
+ case 0x0A: return "DATA-IN BUFFER ERROR";
+ case 0x0B: return "DATA-OUT BUFFER OVERFLOW - DATA BUFFER SIZE";
+ case 0x0C: return "DATA-OUT BUFFER OVERFLOW - DATA BUFFER DESCRIPTOR AREA";
+ case 0x0D: return "DATA-OUT BUFFER ERROR";
+ case 0x0E: return "PCIe FABRIC ERROR";
+ case 0x0F: return "PCIe COMPLETION TIMEOUT";
+ case 0x10: return "PCIe COMPLETION ABORT";
+ case 0x11: return "PCIe POISONED TLP RECEIVED";
+ case 0x12: return "PCIe ECRC CHECK FAILED";
+ case 0x13: return "PCIe UNSUPPORTED REQUEST";
+ case 0x14: return "PCIe ACS VIOLATION";
+ case 0x15: return "PCIe TLP PREFIX BLOCKED";
}
break;
case 0x4C:
switch(ASCQ)
{
- case 0x00: return"LOGICAL UNIT FAILED SELF-CONFIGURATION";
+ case 0x00: return "LOGICAL UNIT FAILED SELF-CONFIGURATION";
}
break;
- case 0x4E: return$"OVERLAPPED COMMANDS ATTEMPTED FOR TASK TAG {ASCQ:X2}h";
+ case 0x4E: return $"OVERLAPPED COMMANDS ATTEMPTED FOR TASK TAG {ASCQ:X2}h";
case 0x50:
switch(ASCQ)
{
- case 0x00: return"WRITE APPEND ERROR";
- case 0x01: return"WRITE APPEND POSITION ERROR";
- case 0x02: return"POSITION ERROR RELATED TO TIMING";
+ case 0x00: return "WRITE APPEND ERROR";
+ case 0x01: return "WRITE APPEND POSITION ERROR";
+ case 0x02: return "POSITION ERROR RELATED TO TIMING";
}
break;
case 0x51:
switch(ASCQ)
{
- case 0x00: return"ERASE FAILURE";
- case 0x01: return"ERASE FAILURE - INCOMPLETE ERASE OPERATION DETECTED";
+ case 0x00: return "ERASE FAILURE";
+ case 0x01: return "ERASE FAILURE - INCOMPLETE ERASE OPERATION DETECTED";
}
break;
case 0x52:
switch(ASCQ)
{
- case 0x00: return"CARTRIDGE FAULT";
+ case 0x00: return "CARTRIDGE FAULT";
}
break;
case 0x53:
switch(ASCQ)
{
- case 0x00: return"MEDIA LOAD OR EJECT FAILED";
- case 0x01: return"UNLOAD TAPE FAILURE";
- case 0x02: return"MEDIUM REMOVAL PREVENTED";
- case 0x03: return"MEDIUM REMOVAL PREVENTED BY DATA TRANSFER ELEMENT";
- case 0x04: return"MEDIUM THREAD OR UNTHREAD FAILURE";
- case 0x05: return"VOLUME IDENTIFIER INVALID";
- case 0x06: return"VOLUME IDENTIFIED MISSING";
- case 0x07: return"DUPLICATE VOLUME IDENTIFIER";
- case 0x08: return"ELEMENT STATUS UNKNOWN";
- case 0x09: return"DATA TRANSFER DEVICE ERROR - LOAD FAILED";
- case 0x0A: return"DATA TRANSFER DEVICE ERROR - UNLOAD FAILED";
- case 0x0B: return"DATA TRANSFER DEVICE ERROR - UNLOAD MISSING";
- case 0x0C: return"DATA TRANSFER DEVICE ERROR - EJECT FAILED";
- case 0x0D: return"DATA TRANSFER DEVICE ERROR - LIBRARY COMMUNICATION FAILED";
+ case 0x00: return "MEDIA LOAD OR EJECT FAILED";
+ case 0x01: return "UNLOAD TAPE FAILURE";
+ case 0x02: return "MEDIUM REMOVAL PREVENTED";
+ case 0x03: return "MEDIUM REMOVAL PREVENTED BY DATA TRANSFER ELEMENT";
+ case 0x04: return "MEDIUM THREAD OR UNTHREAD FAILURE";
+ case 0x05: return "VOLUME IDENTIFIER INVALID";
+ case 0x06: return "VOLUME IDENTIFIED MISSING";
+ case 0x07: return "DUPLICATE VOLUME IDENTIFIER";
+ case 0x08: return "ELEMENT STATUS UNKNOWN";
+ case 0x09: return "DATA TRANSFER DEVICE ERROR - LOAD FAILED";
+ case 0x0A: return "DATA TRANSFER DEVICE ERROR - UNLOAD FAILED";
+ case 0x0B: return "DATA TRANSFER DEVICE ERROR - UNLOAD MISSING";
+ case 0x0C: return "DATA TRANSFER DEVICE ERROR - EJECT FAILED";
+ case 0x0D: return "DATA TRANSFER DEVICE ERROR - LIBRARY COMMUNICATION FAILED";
}
break;
case 0x54:
switch(ASCQ)
{
- case 0x00: return"SCSI TO HOST SYSTEM INTERFACE FAILURE";
+ case 0x00: return "SCSI TO HOST SYSTEM INTERFACE FAILURE";
}
break;
case 0x55:
switch(ASCQ)
{
- case 0x00: return"SYSTEM RESOURCE FAILURE";
- case 0x01: return"SYSTEM BUFFER FULL";
- case 0x02: return"INSUFFICIENT RESERVATION RESOURCES";
- case 0x03: return"INSUFFICIENT RESOURCES";
- case 0x04: return"INSUFFICIENT REGISTRATION RESOURCES";
- case 0x05: return"INSUFFICIENT ACCESS CONTROL RESOURCES";
- case 0x06: return"AUXILIARY MEMORY OUT OF SPACE";
- case 0x07: return"QUOTA ERROR";
- case 0x08: return"MAXIMUM NUMBER OF SUPPLEMENTAL DECRYPTION KEYS EXCEEDED";
- case 0x09: return"MEDIUM AUXILIARY MEMORY NOT ACCESSIBLE";
- case 0x0A: return"DATA CURRENTLY UNAVAILABLE";
- case 0x0B: return"INSUFFICIENT POWER FOR OPERATION";
- case 0x0C: return"INSUFFICIENT RESOURCES TO CREATE ROD";
- case 0x0D: return"INSUFFICIENT RESOURCES TO CREATE ROD TOKEN";
- case 0x0E: return"INSUFFICIENT ZONE RESOURCES";
- case 0x0F: return"INSUFFICIENT ZONE RESOURCES TO COMPLETE WRITE";
- case 0x10: return"MAXIMUM NUMBER OF STREAMS OPEN";
+ case 0x00: return "SYSTEM RESOURCE FAILURE";
+ case 0x01: return "SYSTEM BUFFER FULL";
+ case 0x02: return "INSUFFICIENT RESERVATION RESOURCES";
+ case 0x03: return "INSUFFICIENT RESOURCES";
+ case 0x04: return "INSUFFICIENT REGISTRATION RESOURCES";
+ case 0x05: return "INSUFFICIENT ACCESS CONTROL RESOURCES";
+ case 0x06: return "AUXILIARY MEMORY OUT OF SPACE";
+ case 0x07: return "QUOTA ERROR";
+ case 0x08: return "MAXIMUM NUMBER OF SUPPLEMENTAL DECRYPTION KEYS EXCEEDED";
+ case 0x09: return "MEDIUM AUXILIARY MEMORY NOT ACCESSIBLE";
+ case 0x0A: return "DATA CURRENTLY UNAVAILABLE";
+ case 0x0B: return "INSUFFICIENT POWER FOR OPERATION";
+ case 0x0C: return "INSUFFICIENT RESOURCES TO CREATE ROD";
+ case 0x0D: return "INSUFFICIENT RESOURCES TO CREATE ROD TOKEN";
+ case 0x0E: return "INSUFFICIENT ZONE RESOURCES";
+ case 0x0F: return "INSUFFICIENT ZONE RESOURCES TO COMPLETE WRITE";
+ case 0x10: return "MAXIMUM NUMBER OF STREAMS OPEN";
}
break;
case 0x57:
switch(ASCQ)
{
- case 0x00: return"UNABLE TO RECOVER TABLE-OF-CONTENTS";
+ case 0x00: return "UNABLE TO RECOVER TABLE-OF-CONTENTS";
}
break;
case 0x58:
switch(ASCQ)
{
- case 0x00: return"GENERATION DOES NOT EXIST";
+ case 0x00: return "GENERATION DOES NOT EXIST";
}
break;
case 0x59:
switch(ASCQ)
{
- case 0x00: return"UPDATED BLOCK READ";
+ case 0x00: return "UPDATED BLOCK READ";
}
break;
case 0x5A:
switch(ASCQ)
{
- case 0x00: return"OPERATOR REQUEST OR STATE CHANGE INPUT";
- case 0x01: return"OPERATOR MEDIUM REMOVAL REQUEST";
- case 0x02: return"OPERATOR SELECTED WRITE PROTECT";
- case 0x03: return"OPERATOR SELECTED WRITE PERMIT";
+ case 0x00: return "OPERATOR REQUEST OR STATE CHANGE INPUT";
+ case 0x01: return "OPERATOR MEDIUM REMOVAL REQUEST";
+ case 0x02: return "OPERATOR SELECTED WRITE PROTECT";
+ case 0x03: return "OPERATOR SELECTED WRITE PERMIT";
}
break;
case 0x5B:
switch(ASCQ)
{
- case 0x00: return"LOG EXCEPTION";
- case 0x01: return"THRESHOLD CONDITION MET";
- case 0x02: return"LOG COUNTER AT MAXIMUM";
- case 0x03: return"LOG LIST CODES EXHAUSTED";
+ case 0x00: return "LOG EXCEPTION";
+ case 0x01: return "THRESHOLD CONDITION MET";
+ case 0x02: return "LOG COUNTER AT MAXIMUM";
+ case 0x03: return "LOG LIST CODES EXHAUSTED";
}
break;
case 0x5C:
switch(ASCQ)
{
- case 0x00: return"RPL STATUS CHANGE";
- case 0x01: return"SPINDLES SYNCHRONIZED";
- case 0x02: return"SPINDLES NOT SYNCHRONIZED";
- case 0x03: return"SPARE AREA EXHAUSTION PREDICTION THRESHOLD EXCEEDED";
- case 0x10: return"HARDWARE IMPENDING FAILURE GENERAL HARD DRIVE FAILURE";
- case 0x11: return"HARDWARE IMPENDING FAILURE DRIVE ERROR RATE TOO HIGH";
- case 0x12: return"HARDWARE IMPENDING FAILURE DATA ERROR RATE TOO HIGH";
- case 0x13: return"HARDWARE IMPENDING FAILURE SEEK ERROR RATE TOO HIGH";
- case 0x14: return"HARDWARE IMPENDING FAILURE TOO MANY BLOCK REASSIGNS";
- case 0x15: return"HARDWARE IMPENDING FAILURE ACCESS TIME TOO HIGH";
- case 0x16: return"HARDWARE IMPENDING FAILURE START UNIT TIMES TOO HIGH";
- case 0x17: return"HARDWARE IMPENDING FAILURE CHANNEL PARAMETRICS";
- case 0x18: return"HARDWARE IMPENDING FAILURE CONTROLLER DETECTED";
- case 0x19: return"HARDWARE IMPENDING FAILURE THROUGHPUT PERFORMANCE";
- case 0x1A: return"HARDWARE IMPENDING FAILURE SEEK TIME PERFORMANCE";
- case 0x1B: return"HARDWARE IMPENDING FAILURE SPIN-UP RETRY COUNT";
- case 0x1C: return"HARDWARE IMPENDING FAILURE DRIVE CALIBRATION RETRY COUNT";
- case 0x20: return"CONTROLLER IMPENDING FAILURE GENERAL HARD DRIVE FAILURE";
- case 0x21: return"CONTROLLER IMPENDING FAILURE DRIVE ERROR RATE TOO HIGH";
- case 0x22: return"CONTROLLER IMPENDING FAILURE DATA ERROR RATE TOO HIGH";
- case 0x23: return"CONTROLLER IMPENDING FAILURE SEEK ERROR RATE TOO HIGH";
- case 0x24: return"CONTROLLER IMPENDING FAILURE TOO MANY BLOCK REASSIGNS";
- case 0x25: return"CONTROLLER IMPENDING FAILURE ACCESS TIME TOO HIGH";
- case 0x26: return"CONTROLLER IMPENDING FAILURE START UNIT TIMES TOO HIGH";
- case 0x27: return"CONTROLLER IMPENDING FAILURE CHANNEL PARAMETRICS";
- case 0x28: return"CONTROLLER IMPENDING FAILURE CONTROLLER DETECTED";
- case 0x29: return"CONTROLLER IMPENDING FAILURE THROUGHPUT PERFORMANCE";
- case 0x2A: return"CONTROLLER IMPENDING FAILURE SEEK TIME PERFORMANCE";
- case 0x2B: return"CONTROLLER IMPENDING FAILURE SPIN-UP RETRY COUNT";
- case 0x2C: return"CONTROLLER IMPENDING FAILURE DRIVE CALIBRATION RETRY COUNT";
- case 0x30: return"DATA CHANNEL IMPENDING FAILURE GENERAL HARD DRIVE FAILURE";
- case 0x31: return"DATA CHANNEL IMPENDING FAILURE DRIVE ERROR RATE TOO HIGH";
- case 0x32: return"DATA CHANNEL IMPENDING FAILURE DATA ERROR RATE TOO HIGH";
- case 0x33: return"DATA CHANNEL IMPENDING FAILURE SEEK ERROR RATE TOO HIGH";
- case 0x34: return"DATA CHANNEL IMPENDING FAILURE TOO MANY BLOCK REASSIGNS";
- case 0x35: return"DATA CHANNEL IMPENDING FAILURE ACCESS TIME TOO HIGH";
- case 0x36: return"DATA CHANNEL IMPENDING FAILURE START UNIT TIMES TOO HIGH";
- case 0x37: return"DATA CHANNEL IMPENDING FAILURE CHANNEL PARAMETRICS";
- case 0x38: return"DATA CHANNEL IMPENDING FAILURE DATA CHANNEL DETECTED";
- case 0x39: return"DATA CHANNEL IMPENDING FAILURE THROUGHPUT PERFORMANCE";
- case 0x3A: return"DATA CHANNEL IMPENDING FAILURE SEEK TIME PERFORMANCE";
- case 0x3B: return"DATA CHANNEL IMPENDING FAILURE SPIN-UP RETRY COUNT";
- case 0x3C: return"DATA CHANNEL IMPENDING FAILURE DRIVE CALIBRATION RETRY COUNT";
- case 0x40: return"SERVO IMPENDING FAILURE GENERAL HARD DRIVE FAILURE";
- case 0x41: return"SERVO IMPENDING FAILURE DRIVE ERROR RATE TOO HIGH";
- case 0x42: return"SERVO IMPENDING FAILURE DATA ERROR RATE TOO HIGH";
- case 0x43: return"SERVO IMPENDING FAILURE SEEK ERROR RATE TOO HIGH";
- case 0x44: return"SERVO IMPENDING FAILURE TOO MANY BLOCK REASSIGNS";
- case 0x45: return"SERVO IMPENDING FAILURE ACCESS TIME TOO HIGH";
- case 0x46: return"SERVO IMPENDING FAILURE START UNIT TIMES TOO HIGH";
- case 0x47: return"SERVO IMPENDING FAILURE CHANNEL PARAMETRICS";
- case 0x48: return"SERVO IMPENDING FAILURE SERVO DETECTED";
- case 0x49: return"SERVO IMPENDING FAILURE THROUGHPUT PERFORMANCE";
- case 0x4A: return"SERVO IMPENDING FAILURE SEEK TIME PERFORMANCE";
- case 0x4B: return"SERVO IMPENDING FAILURE SPIN-UP RETRY COUNT";
- case 0x4C: return"SERVO IMPENDING FAILURE DRIVE CALIBRATION RETRY COUNT";
- case 0x50: return"SPINDLE IMPENDING FAILURE GENERAL HARD DRIVE FAILURE";
- case 0x51: return"SPINDLE IMPENDING FAILURE DRIVE ERROR RATE TOO HIGH";
- case 0x52: return"SPINDLE IMPENDING FAILURE DATA ERROR RATE TOO HIGH";
- case 0x53: return"SPINDLE IMPENDING FAILURE SEEK ERROR RATE TOO HIGH";
- case 0x54: return"SPINDLE IMPENDING FAILURE TOO MANY BLOCK REASSIGNS";
- case 0x55: return"SPINDLE IMPENDING FAILURE ACCESS TIME TOO HIGH";
- case 0x56: return"SPINDLE IMPENDING FAILURE START UNIT TIMES TOO HIGH";
- case 0x57: return"SPINDLE IMPENDING FAILURE CHANNEL PARAMETRICS";
- case 0x58: return"SPINDLE IMPENDING FAILURE SPINDLE DETECTED";
- case 0x59: return"SPINDLE IMPENDING FAILURE THROUGHPUT PERFORMANCE";
- case 0x5A: return"SPINDLE IMPENDING FAILURE SEEK TIME PERFORMANCE";
- case 0x5B: return"SPINDLE IMPENDING FAILURE SPIN-UP RETRY COUNT";
- case 0x5C: return"SPINDLE IMPENDING FAILURE DRIVE CALIBRATION RETRY COUNT";
- case 0x60: return"FIRMWARE IMPENDING FAILURE GENERAL HARD DRIVE FAILURE";
- case 0x61: return"FIRMWARE IMPENDING FAILURE DRIVE ERROR RATE TOO HIGH";
- case 0x62: return"FIRMWARE IMPENDING FAILURE DATA ERROR RATE TOO HIGH";
- case 0x63: return"FIRMWARE IMPENDING FAILURE SEEK ERROR RATE TOO HIGH";
- case 0x64: return"FIRMWARE IMPENDING FAILURE TOO MANY BLOCK REASSIGNS";
- case 0x65: return"FIRMWARE IMPENDING FAILURE ACCESS TIME TOO HIGH";
- case 0x66: return"FIRMWARE IMPENDING FAILURE START UNIT TIMES TOO HIGH";
- case 0x67: return"FIRMWARE IMPENDING FAILURE CHANNEL PARAMETRICS";
- case 0x68: return"FIRMWARE IMPENDING FAILURE FIRMWARE DETECTED";
- case 0x69: return"FIRMWARE IMPENDING FAILURE THROUGHPUT PERFORMANCE";
- case 0x6A: return"FIRMWARE IMPENDING FAILURE SEEK TIME PERFORMANCE";
- case 0x6B: return"FIRMWARE IMPENDING FAILURE SPIN-UP RETRY COUNT";
- case 0x6C: return"FIRMWARE IMPENDING FAILURE DRIVE CALIBRATION RETRY COUNT";
- case 0xFF: return"FAILURE PREDICTION THRESHOLD EXCEEDED (FALSE)";
+ case 0x00: return "RPL STATUS CHANGE";
+ case 0x01: return "SPINDLES SYNCHRONIZED";
+ case 0x02: return "SPINDLES NOT SYNCHRONIZED";
+ case 0x03: return "SPARE AREA EXHAUSTION PREDICTION THRESHOLD EXCEEDED";
+ case 0x10: return "HARDWARE IMPENDING FAILURE GENERAL HARD DRIVE FAILURE";
+ case 0x11: return "HARDWARE IMPENDING FAILURE DRIVE ERROR RATE TOO HIGH";
+ case 0x12: return "HARDWARE IMPENDING FAILURE DATA ERROR RATE TOO HIGH";
+ case 0x13: return "HARDWARE IMPENDING FAILURE SEEK ERROR RATE TOO HIGH";
+ case 0x14: return "HARDWARE IMPENDING FAILURE TOO MANY BLOCK REASSIGNS";
+ case 0x15: return "HARDWARE IMPENDING FAILURE ACCESS TIME TOO HIGH";
+ case 0x16: return "HARDWARE IMPENDING FAILURE START UNIT TIMES TOO HIGH";
+ case 0x17: return "HARDWARE IMPENDING FAILURE CHANNEL PARAMETRICS";
+ case 0x18: return "HARDWARE IMPENDING FAILURE CONTROLLER DETECTED";
+ case 0x19: return "HARDWARE IMPENDING FAILURE THROUGHPUT PERFORMANCE";
+ case 0x1A: return "HARDWARE IMPENDING FAILURE SEEK TIME PERFORMANCE";
+ case 0x1B: return "HARDWARE IMPENDING FAILURE SPIN-UP RETRY COUNT";
+ case 0x1C: return "HARDWARE IMPENDING FAILURE DRIVE CALIBRATION RETRY COUNT";
+ case 0x20: return "CONTROLLER IMPENDING FAILURE GENERAL HARD DRIVE FAILURE";
+ case 0x21: return "CONTROLLER IMPENDING FAILURE DRIVE ERROR RATE TOO HIGH";
+ case 0x22: return "CONTROLLER IMPENDING FAILURE DATA ERROR RATE TOO HIGH";
+ case 0x23: return "CONTROLLER IMPENDING FAILURE SEEK ERROR RATE TOO HIGH";
+ case 0x24: return "CONTROLLER IMPENDING FAILURE TOO MANY BLOCK REASSIGNS";
+ case 0x25: return "CONTROLLER IMPENDING FAILURE ACCESS TIME TOO HIGH";
+ case 0x26: return "CONTROLLER IMPENDING FAILURE START UNIT TIMES TOO HIGH";
+ case 0x27: return "CONTROLLER IMPENDING FAILURE CHANNEL PARAMETRICS";
+ case 0x28: return "CONTROLLER IMPENDING FAILURE CONTROLLER DETECTED";
+ case 0x29: return "CONTROLLER IMPENDING FAILURE THROUGHPUT PERFORMANCE";
+ case 0x2A: return "CONTROLLER IMPENDING FAILURE SEEK TIME PERFORMANCE";
+ case 0x2B: return "CONTROLLER IMPENDING FAILURE SPIN-UP RETRY COUNT";
+ case 0x2C: return "CONTROLLER IMPENDING FAILURE DRIVE CALIBRATION RETRY COUNT";
+ case 0x30: return "DATA CHANNEL IMPENDING FAILURE GENERAL HARD DRIVE FAILURE";
+ case 0x31: return "DATA CHANNEL IMPENDING FAILURE DRIVE ERROR RATE TOO HIGH";
+ case 0x32: return "DATA CHANNEL IMPENDING FAILURE DATA ERROR RATE TOO HIGH";
+ case 0x33: return "DATA CHANNEL IMPENDING FAILURE SEEK ERROR RATE TOO HIGH";
+ case 0x34: return "DATA CHANNEL IMPENDING FAILURE TOO MANY BLOCK REASSIGNS";
+ case 0x35: return "DATA CHANNEL IMPENDING FAILURE ACCESS TIME TOO HIGH";
+ case 0x36: return "DATA CHANNEL IMPENDING FAILURE START UNIT TIMES TOO HIGH";
+ case 0x37: return "DATA CHANNEL IMPENDING FAILURE CHANNEL PARAMETRICS";
+ case 0x38: return "DATA CHANNEL IMPENDING FAILURE DATA CHANNEL DETECTED";
+ case 0x39: return "DATA CHANNEL IMPENDING FAILURE THROUGHPUT PERFORMANCE";
+ case 0x3A: return "DATA CHANNEL IMPENDING FAILURE SEEK TIME PERFORMANCE";
+ case 0x3B: return "DATA CHANNEL IMPENDING FAILURE SPIN-UP RETRY COUNT";
+ case 0x3C: return "DATA CHANNEL IMPENDING FAILURE DRIVE CALIBRATION RETRY COUNT";
+ case 0x40: return "SERVO IMPENDING FAILURE GENERAL HARD DRIVE FAILURE";
+ case 0x41: return "SERVO IMPENDING FAILURE DRIVE ERROR RATE TOO HIGH";
+ case 0x42: return "SERVO IMPENDING FAILURE DATA ERROR RATE TOO HIGH";
+ case 0x43: return "SERVO IMPENDING FAILURE SEEK ERROR RATE TOO HIGH";
+ case 0x44: return "SERVO IMPENDING FAILURE TOO MANY BLOCK REASSIGNS";
+ case 0x45: return "SERVO IMPENDING FAILURE ACCESS TIME TOO HIGH";
+ case 0x46: return "SERVO IMPENDING FAILURE START UNIT TIMES TOO HIGH";
+ case 0x47: return "SERVO IMPENDING FAILURE CHANNEL PARAMETRICS";
+ case 0x48: return "SERVO IMPENDING FAILURE SERVO DETECTED";
+ case 0x49: return "SERVO IMPENDING FAILURE THROUGHPUT PERFORMANCE";
+ case 0x4A: return "SERVO IMPENDING FAILURE SEEK TIME PERFORMANCE";
+ case 0x4B: return "SERVO IMPENDING FAILURE SPIN-UP RETRY COUNT";
+ case 0x4C: return "SERVO IMPENDING FAILURE DRIVE CALIBRATION RETRY COUNT";
+ case 0x50: return "SPINDLE IMPENDING FAILURE GENERAL HARD DRIVE FAILURE";
+ case 0x51: return "SPINDLE IMPENDING FAILURE DRIVE ERROR RATE TOO HIGH";
+ case 0x52: return "SPINDLE IMPENDING FAILURE DATA ERROR RATE TOO HIGH";
+ case 0x53: return "SPINDLE IMPENDING FAILURE SEEK ERROR RATE TOO HIGH";
+ case 0x54: return "SPINDLE IMPENDING FAILURE TOO MANY BLOCK REASSIGNS";
+ case 0x55: return "SPINDLE IMPENDING FAILURE ACCESS TIME TOO HIGH";
+ case 0x56: return "SPINDLE IMPENDING FAILURE START UNIT TIMES TOO HIGH";
+ case 0x57: return "SPINDLE IMPENDING FAILURE CHANNEL PARAMETRICS";
+ case 0x58: return "SPINDLE IMPENDING FAILURE SPINDLE DETECTED";
+ case 0x59: return "SPINDLE IMPENDING FAILURE THROUGHPUT PERFORMANCE";
+ case 0x5A: return "SPINDLE IMPENDING FAILURE SEEK TIME PERFORMANCE";
+ case 0x5B: return "SPINDLE IMPENDING FAILURE SPIN-UP RETRY COUNT";
+ case 0x5C: return "SPINDLE IMPENDING FAILURE DRIVE CALIBRATION RETRY COUNT";
+ case 0x60: return "FIRMWARE IMPENDING FAILURE GENERAL HARD DRIVE FAILURE";
+ case 0x61: return "FIRMWARE IMPENDING FAILURE DRIVE ERROR RATE TOO HIGH";
+ case 0x62: return "FIRMWARE IMPENDING FAILURE DATA ERROR RATE TOO HIGH";
+ case 0x63: return "FIRMWARE IMPENDING FAILURE SEEK ERROR RATE TOO HIGH";
+ case 0x64: return "FIRMWARE IMPENDING FAILURE TOO MANY BLOCK REASSIGNS";
+ case 0x65: return "FIRMWARE IMPENDING FAILURE ACCESS TIME TOO HIGH";
+ case 0x66: return "FIRMWARE IMPENDING FAILURE START UNIT TIMES TOO HIGH";
+ case 0x67: return "FIRMWARE IMPENDING FAILURE CHANNEL PARAMETRICS";
+ case 0x68: return "FIRMWARE IMPENDING FAILURE FIRMWARE DETECTED";
+ case 0x69: return "FIRMWARE IMPENDING FAILURE THROUGHPUT PERFORMANCE";
+ case 0x6A: return "FIRMWARE IMPENDING FAILURE SEEK TIME PERFORMANCE";
+ case 0x6B: return "FIRMWARE IMPENDING FAILURE SPIN-UP RETRY COUNT";
+ case 0x6C: return "FIRMWARE IMPENDING FAILURE DRIVE CALIBRATION RETRY COUNT";
+ case 0xFF: return "FAILURE PREDICTION THRESHOLD EXCEEDED (FALSE)";
}
break;
case 0x5E:
switch(ASCQ)
{
- case 0x00: return"LOW POWER CONDITION ON";
- case 0x01: return"IDLE CONDITION ACTIVATED BY TIMER";
- case 0x02: return"STANDBY CONDITION ACTIVATED BY TIMER";
- case 0x03: return"IDLE CONDITION ACTIVATED BY COMMAND";
- case 0x04: return"STANDBY CONDITION ACTIVATED BY COMMAND";
- case 0x05: return"IDLE_B CONDITION ACTIVATED BY TIMER";
- case 0x06: return"IDLE_B CONDITION ACTIVATED BY COMMAND";
- case 0x07: return"IDLE_C CONDITION ACTIVATED BY TIMER";
- case 0x08: return"IDLE_C CONDITION ACTIVATED BY COMMAND";
- case 0x09: return"STANDBY_Y CONDITION ACTIVATED BY TIMER";
- case 0x0A: return"STANDBY_Y CONDITION ACTIVATED BY COMMAND";
- case 0x41: return"POWER STATE CHANGED TO ACTIVE";
- case 0x42: return"POWER STATE CHANGED TO IDLE";
- case 0x43: return"POWER STATE CHANGED TO STANDBY";
- case 0x45: return"POWER STATE CHANGED TO SLEEP";
- case 0x47: return"POWER STATE CHANGED TO DEVICE CONTROL";
+ case 0x00: return "LOW POWER CONDITION ON";
+ case 0x01: return "IDLE CONDITION ACTIVATED BY TIMER";
+ case 0x02: return "STANDBY CONDITION ACTIVATED BY TIMER";
+ case 0x03: return "IDLE CONDITION ACTIVATED BY COMMAND";
+ case 0x04: return "STANDBY CONDITION ACTIVATED BY COMMAND";
+ case 0x05: return "IDLE_B CONDITION ACTIVATED BY TIMER";
+ case 0x06: return "IDLE_B CONDITION ACTIVATED BY COMMAND";
+ case 0x07: return "IDLE_C CONDITION ACTIVATED BY TIMER";
+ case 0x08: return "IDLE_C CONDITION ACTIVATED BY COMMAND";
+ case 0x09: return "STANDBY_Y CONDITION ACTIVATED BY TIMER";
+ case 0x0A: return "STANDBY_Y CONDITION ACTIVATED BY COMMAND";
+ case 0x41: return "POWER STATE CHANGED TO ACTIVE";
+ case 0x42: return "POWER STATE CHANGED TO IDLE";
+ case 0x43: return "POWER STATE CHANGED TO STANDBY";
+ case 0x45: return "POWER STATE CHANGED TO SLEEP";
+ case 0x47: return "POWER STATE CHANGED TO DEVICE CONTROL";
}
break;
case 0x60:
switch(ASCQ)
{
- case 0x00: return"LAMP FAILURE";
+ case 0x00: return "LAMP FAILURE";
}
break;
case 0x61:
switch(ASCQ)
{
- case 0x00: return"VIDEO ACQUISTION ERROR";
- case 0x01: return"UNABLE TO ACQUIRE VIDEO";
- case 0x02: return"OUT OF FOCUS";
+ case 0x00: return "VIDEO ACQUISTION ERROR";
+ case 0x01: return "UNABLE TO ACQUIRE VIDEO";
+ case 0x02: return "OUT OF FOCUS";
}
break;
case 0x62:
switch(ASCQ)
{
- case 0x00: return"SCAN HEAD POSITIONING ERROR";
+ case 0x00: return "SCAN HEAD POSITIONING ERROR";
}
break;
case 0x63:
switch(ASCQ)
{
- case 0x00: return"END OF USER AREA ENCOUNTERED ON THIS TRACK";
- case 0x01: return"PACKET DOES NOT FIT IN AVAILABLE SPACE";
+ case 0x00: return "END OF USER AREA ENCOUNTERED ON THIS TRACK";
+ case 0x01: return "PACKET DOES NOT FIT IN AVAILABLE SPACE";
}
break;
case 0x64:
switch(ASCQ)
{
- case 0x00: return"ILLEGAL MODE FOR THIS TRACK";
- case 0x01: return"INVALID PACKET SIZE";
+ case 0x00: return "ILLEGAL MODE FOR THIS TRACK";
+ case 0x01: return "INVALID PACKET SIZE";
}
break;
case 0x65:
switch(ASCQ)
{
- case 0x00: return"VOLTAGE FAULT";
+ case 0x00: return "VOLTAGE FAULT";
}
break;
case 0x66:
switch(ASCQ)
{
- case 0x00: return"AUTOMATIC DOCUMENT FEEDER COVER UP";
- case 0x01: return"AUTOMATIC DOCUMENT FEEDER LIFT UP";
- case 0x02: return"DOCUMENT JAM IN AUTOMATIC DOCUMENT FEEDER";
- case 0x03: return"DOCUMENT MISS FEED AUTOMATIC IN DOCUMENT FEEDER";
+ case 0x00: return "AUTOMATIC DOCUMENT FEEDER COVER UP";
+ case 0x01: return "AUTOMATIC DOCUMENT FEEDER LIFT UP";
+ case 0x02: return "DOCUMENT JAM IN AUTOMATIC DOCUMENT FEEDER";
+ case 0x03: return "DOCUMENT MISS FEED AUTOMATIC IN DOCUMENT FEEDER";
}
break;
case 0x67:
switch(ASCQ)
{
- case 0x00: return"CONFIGURATION FAILURE";
- case 0x01: return"CONFIGURATION OF INCAPABLE LOGICAL UNITS FAILED";
- case 0x02: return"ADD LOGICAL UNIT FAILED";
- case 0x03: return"MODIFICATION OF LOGICAL UNIT FAILED";
- case 0x04: return"EXCHANGE OF LOGICAL UNIT FAILED";
- case 0x05: return"REMOVE OF LOGICAL UNIT FAILED";
- case 0x06: return"ATTACHMENT OF LOGICAL UNIT FAILED";
- case 0x07: return"CREATION OF LOGICAL UNIT FAILED";
- case 0x08: return"ASSIGN FAILURE OCCURRED";
- case 0x09: return"MULTIPLY ASSIGNED LOGICAL UNIT";
- case 0x0A: return"SET TARGET PORT GROUPS COMMAND FAILED";
- case 0x0B: return"ATA DEVICE FEATURE NOT ENABLED";
+ case 0x00: return "CONFIGURATION FAILURE";
+ case 0x01: return "CONFIGURATION OF INCAPABLE LOGICAL UNITS FAILED";
+ case 0x02: return "ADD LOGICAL UNIT FAILED";
+ case 0x03: return "MODIFICATION OF LOGICAL UNIT FAILED";
+ case 0x04: return "EXCHANGE OF LOGICAL UNIT FAILED";
+ case 0x05: return "REMOVE OF LOGICAL UNIT FAILED";
+ case 0x06: return "ATTACHMENT OF LOGICAL UNIT FAILED";
+ case 0x07: return "CREATION OF LOGICAL UNIT FAILED";
+ case 0x08: return "ASSIGN FAILURE OCCURRED";
+ case 0x09: return "MULTIPLY ASSIGNED LOGICAL UNIT";
+ case 0x0A: return "SET TARGET PORT GROUPS COMMAND FAILED";
+ case 0x0B: return "ATA DEVICE FEATURE NOT ENABLED";
}
break;
case 0x68:
switch(ASCQ)
{
- case 0x00: return"LOGICAL UNIT NOT CONFIGURED";
- case 0x01: return"SUBSIDIARY LOGICAL UNIT NOT CONFIGURED";
+ case 0x00: return "LOGICAL UNIT NOT CONFIGURED";
+ case 0x01: return "SUBSIDIARY LOGICAL UNIT NOT CONFIGURED";
}
break;
case 0x69:
switch(ASCQ)
{
- case 0x00: return"DATA LOSS ON LOGICAL UNIT";
- case 0x01: return"MULTIPLE LOGICAL UNIT FAILURES";
- case 0x02: return"PARITY/DATA MISMATCH";
+ case 0x00: return "DATA LOSS ON LOGICAL UNIT";
+ case 0x01: return "MULTIPLE LOGICAL UNIT FAILURES";
+ case 0x02: return "PARITY/DATA MISMATCH";
}
break;
case 0x6A:
switch(ASCQ)
{
- case 0x00: return"INFORMATIONAL, REFER TO LOG";
+ case 0x00: return "INFORMATIONAL, REFER TO LOG";
}
break;
case 0x6B:
switch(ASCQ)
{
- case 0x00: return"STATE CHANGE HAS OCCURRED";
- case 0x01: return"REDUNDANCY LEVEL GOT BETTER";
- case 0x02: return"REDUNDANCY LEVEL GOT WORSE";
+ case 0x00: return "STATE CHANGE HAS OCCURRED";
+ case 0x01: return "REDUNDANCY LEVEL GOT BETTER";
+ case 0x02: return "REDUNDANCY LEVEL GOT WORSE";
}
break;
case 0x6C:
switch(ASCQ)
{
- case 0x00: return"REBUILD FAILURE OCCURRED";
+ case 0x00: return "REBUILD FAILURE OCCURRED";
}
break;
case 0x6D:
switch(ASCQ)
{
- case 0x00: return"RECALCULATE FAILURE OCCURRED";
+ case 0x00: return "RECALCULATE FAILURE OCCURRED";
}
break;
case 0x6E:
switch(ASCQ)
{
- case 0x00: return"COMMAND TO LOGICAL UNIT FAILED";
+ case 0x00: return "COMMAND TO LOGICAL UNIT FAILED";
}
break;
case 0x6F:
switch(ASCQ)
{
- case 0x00: return"COPY PROTECTION KEY EXCHANGE FAILURE - AUTHENTICATION FAILURE";
- case 0x01: return"COPY PROTECTION KEY EXCHANGE FAILURE - KEY NOT PRESENT";
- case 0x02: return"COPY PROTECTION KEY EXCHANGE FAILURE - KEY NOT ESTABLISHED";
- case 0x03: return"READ OF SCRAMBLED SECTOR WITHOUT AUTHENTICATION";
- case 0x04: return"MEDIA REGION CODE IS MISMATCHED TO LOGICAL UNIT REGION";
- case 0x05: return"DRIVE REGION MUST BE PERMANENT/REGION RESET COUNT ERROR";
- case 0x06: return"INSUFFICIENT BLOCK COUNT FOR BINDING NONCE RECORDING";
- case 0x07: return"CONFLICT IN BINDING NONCE RECORDING";
+ case 0x00: return "COPY PROTECTION KEY EXCHANGE FAILURE - AUTHENTICATION FAILURE";
+ case 0x01: return "COPY PROTECTION KEY EXCHANGE FAILURE - KEY NOT PRESENT";
+ case 0x02: return "COPY PROTECTION KEY EXCHANGE FAILURE - KEY NOT ESTABLISHED";
+ case 0x03: return "READ OF SCRAMBLED SECTOR WITHOUT AUTHENTICATION";
+ case 0x04: return "MEDIA REGION CODE IS MISMATCHED TO LOGICAL UNIT REGION";
+ case 0x05: return "DRIVE REGION MUST BE PERMANENT/REGION RESET COUNT ERROR";
+ case 0x06: return "INSUFFICIENT BLOCK COUNT FOR BINDING NONCE RECORDING";
+ case 0x07: return "CONFLICT IN BINDING NONCE RECORDING";
}
break;
- case 0x70: return$"DECOMPRESSION EXCEPTION SHORT ALGORITHM ID OF {ASCQ:X2}h";
+ case 0x70: return $"DECOMPRESSION EXCEPTION SHORT ALGORITHM ID OF {ASCQ:X2}h";
case 0x71:
switch(ASCQ)
{
- case 0x00: return"DECOMPRESSIONG EXCEPTION LONG ALGORITHM ID";
+ case 0x00: return "DECOMPRESSIONG EXCEPTION LONG ALGORITHM ID";
}
break;
case 0x72:
switch(ASCQ)
{
- case 0x00: return"SESSION FIXATION ERROR";
- case 0x01: return"SESSION FIXATION ERROR WRITING LEAD-IN";
- case 0x02: return"SESSION FIXATION ERROR WRITING LEAD-OUT";
- case 0x03: return"SESSION FIXATION ERROR - INCOMPLETE TRACK IN SESSION";
- case 0x04: return"EMPTY OR PARTIALLY WRITTEN RESERVED TRACK";
- case 0x05: return"NO MORE TRACK RESERVATIONS ALLOWED";
- case 0x06: return"RMZ EXTENSION IS NOT ALLOWED";
- case 0x07: return"NO MORE TEST ZONE EXTENSIONS ARE ALLOWED";
+ case 0x00: return "SESSION FIXATION ERROR";
+ case 0x01: return "SESSION FIXATION ERROR WRITING LEAD-IN";
+ case 0x02: return "SESSION FIXATION ERROR WRITING LEAD-OUT";
+ case 0x03: return "SESSION FIXATION ERROR - INCOMPLETE TRACK IN SESSION";
+ case 0x04: return "EMPTY OR PARTIALLY WRITTEN RESERVED TRACK";
+ case 0x05: return "NO MORE TRACK RESERVATIONS ALLOWED";
+ case 0x06: return "RMZ EXTENSION IS NOT ALLOWED";
+ case 0x07: return "NO MORE TEST ZONE EXTENSIONS ARE ALLOWED";
}
break;
case 0x73:
switch(ASCQ)
{
- case 0x00: return"CD CONTROL ERROR";
- case 0x01: return"POWER CALIBRATION AREA ALMOST FULL";
- case 0x02: return"POWER CALIBRATION AREA IS FULL";
- case 0x03: return"POWER CALIBRATION AREA ERROR";
- case 0x04: return"PROGRAM MEMORY AREA UPDATE FAILURE";
- case 0x05: return"PROGRAM MEMORY AREA IS FULL";
- case 0x06: return"RMA/PMA IS ALMOST FULL";
- case 0x10: return"CURRENT POWER CALIBRATION AREA ALMOST FULL";
- case 0x11: return"CURRENT POWER CALIBRATION AREA IS FULL";
- case 0x17: return"RDZ IS FULL";
+ case 0x00: return "CD CONTROL ERROR";
+ case 0x01: return "POWER CALIBRATION AREA ALMOST FULL";
+ case 0x02: return "POWER CALIBRATION AREA IS FULL";
+ case 0x03: return "POWER CALIBRATION AREA ERROR";
+ case 0x04: return "PROGRAM MEMORY AREA UPDATE FAILURE";
+ case 0x05: return "PROGRAM MEMORY AREA IS FULL";
+ case 0x06: return "RMA/PMA IS ALMOST FULL";
+ case 0x10: return "CURRENT POWER CALIBRATION AREA ALMOST FULL";
+ case 0x11: return "CURRENT POWER CALIBRATION AREA IS FULL";
+ case 0x17: return "RDZ IS FULL";
}
break;
case 0x74:
switch(ASCQ)
{
- case 0x00: return"SECURITY ERROR";
- case 0x01: return"UNABLE TO DECRYPT DATA";
- case 0x02: return"UNENCRYPTED DATA ENCOUNTERED WHILE DECRYPTING";
- case 0x03: return"INCORRECT DATA ENCRYPTION KEY";
- case 0x04: return"CRYPTOGRAPHIC INTEGRITY VALIDATION FAILED";
- case 0x05: return"ERROR DECRYPTING DATA";
- case 0x06: return"UNKNOWN SIGNATURE VERIFICATION KEY";
- case 0x07: return"ENCRYPTION PARAMETERS NOT USEABLE";
- case 0x08: return"DIGITAL SIGNATURE VALIDATION FAILURE";
- case 0x09: return"ENCRYPTION MODE MISMATCH ON READ";
- case 0x0A: return"ENCRYPTED BLOCK NOT RAW READ ENABLED";
- case 0x0B: return"INCORRECT ENCRYPTION PARAMETERS";
- case 0x0C: return"UNABLE TO DECRYPT PARAMETER LIST";
- case 0x0D: return"ENCRYPTION ALGORITHM DISABLED";
- case 0x10: return"SA CREATION PARAMETER VALUE INVALID";
- case 0x11: return"SA CREATION PARAMETER VALUE REJECTED";
- case 0x12: return"INVALID SA USAGE";
- case 0x21: return"DATA ENCRYPTION CONFIGURATION PREVENTED";
- case 0x30: return"SA CREATION PARAMETER NOT SUPPORTED";
- case 0x40: return"AUTHENTICATION FAILED";
- case 0x61: return"EXTERNAL DATA ENCRYPTION KEY MANAGER ACCESS ERROR";
- case 0x62: return"EXTERNAL DATA ENCRYPTION KEY MANAGER ERROR";
- case 0x63: return"EXTERNAL DATA ENCRYPTION KEY NOT FOUND";
- case 0x64: return"EXTERNAL DATA ENCRYPTION REQUEST NOT AUTHORIZED";
- case 0x6E: return"EXTERNAL DATA ENCRYPTION CONTROL TIMEOUT";
- case 0x6F: return"EXTERNAL DATA ENCRYPTION CONTROL ERROR";
- case 0x71: return"LOGICAL UNIT ACCESS NOT AUTHORIZED";
- case 0x79: return"SECURITY CONFLICT IN TRANSLATED DEVICE";
+ case 0x00: return "SECURITY ERROR";
+ case 0x01: return "UNABLE TO DECRYPT DATA";
+ case 0x02: return "UNENCRYPTED DATA ENCOUNTERED WHILE DECRYPTING";
+ case 0x03: return "INCORRECT DATA ENCRYPTION KEY";
+ case 0x04: return "CRYPTOGRAPHIC INTEGRITY VALIDATION FAILED";
+ case 0x05: return "ERROR DECRYPTING DATA";
+ case 0x06: return "UNKNOWN SIGNATURE VERIFICATION KEY";
+ case 0x07: return "ENCRYPTION PARAMETERS NOT USEABLE";
+ case 0x08: return "DIGITAL SIGNATURE VALIDATION FAILURE";
+ case 0x09: return "ENCRYPTION MODE MISMATCH ON READ";
+ case 0x0A: return "ENCRYPTED BLOCK NOT RAW READ ENABLED";
+ case 0x0B: return "INCORRECT ENCRYPTION PARAMETERS";
+ case 0x0C: return "UNABLE TO DECRYPT PARAMETER LIST";
+ case 0x0D: return "ENCRYPTION ALGORITHM DISABLED";
+ case 0x10: return "SA CREATION PARAMETER VALUE INVALID";
+ case 0x11: return "SA CREATION PARAMETER VALUE REJECTED";
+ case 0x12: return "INVALID SA USAGE";
+ case 0x21: return "DATA ENCRYPTION CONFIGURATION PREVENTED";
+ case 0x30: return "SA CREATION PARAMETER NOT SUPPORTED";
+ case 0x40: return "AUTHENTICATION FAILED";
+ case 0x61: return "EXTERNAL DATA ENCRYPTION KEY MANAGER ACCESS ERROR";
+ case 0x62: return "EXTERNAL DATA ENCRYPTION KEY MANAGER ERROR";
+ case 0x63: return "EXTERNAL DATA ENCRYPTION KEY NOT FOUND";
+ case 0x64: return "EXTERNAL DATA ENCRYPTION REQUEST NOT AUTHORIZED";
+ case 0x6E: return "EXTERNAL DATA ENCRYPTION CONTROL TIMEOUT";
+ case 0x6F: return "EXTERNAL DATA ENCRYPTION CONTROL ERROR";
+ case 0x71: return "LOGICAL UNIT ACCESS NOT AUTHORIZED";
+ case 0x79: return "SECURITY CONFLICT IN TRANSLATED DEVICE";
}
break;
diff --git a/SCSI/VendorString.cs b/SCSI/VendorString.cs
index 3ac34a9..878d1bb 100644
--- a/SCSI/VendorString.cs
+++ b/SCSI/VendorString.cs
@@ -38,805 +38,805 @@ namespace Aaru.Decoders.SCSI
{
switch(scsiVendorString)
{
- case"0B4C": return"MOOSIK Ltd.";
- case"13FE": return"PHISON";
- case"2AI": return"2AI (Automatisme et Avenir Informatique)";
- case"3M": return"3M Company";
- case"3nhtech": return"3NH Technologies";
- case"3PARdata": return"3PARdata, Inc.";
- case"A-Max": return"A-Max Technology Co., Ltd";
- case"ABSOLUTE": return"Absolute Analysis";
- case"ACARD": return"ACARD Technology Corp.";
- case"Accusys": return"Accusys INC.";
- case"Acer": return"Acer, Inc.";
- case"ACL": return"Automated Cartridge Librarys, Inc.";
- case"Actifio": return"Actifio";
- case"Acuid": return"Acuid Corporation Ltd.";
- case"AcuLab": return"AcuLab, Inc. (Tulsa, OK)";
- case"ADAPTEC": return"Adaptec";
- case"ADIC": return"Advanced Digital Information Corporation";
- case"ADSI": return"Adaptive Data Systems, Inc. (a Western Digital subsidiary)";
- case"ADTX": return"ADTX Co., Ltd.";
- case"ADVA": return"ADVA Optical Networking AG";
- case"AEM": return"AEM Performance Electronics";
- case"AERONICS": return"Aeronics, Inc.";
- case"AGFA": return"AGFA";
- case"Agilent": return"Agilent Technologies";
- case"AIC": return"Advanced Industrial Computer, Inc.";
- case"AIPTEK": return"AIPTEK International Inc.";
- case"Alcohol": return"Alcohol Soft";
- case"ALCOR": return"Alcor Micro, Corp.";
- case"AMCC": return"Applied Micro Circuits Corporation";
- case"AMCODYNE": return"Amcodyne";
- case"Amgeon": return"Amgeon LLC";
- case"AMI": return"American Megatrends, Inc.";
- case"AMPEX": return"Ampex Data Systems";
- case"Amphenol": return"Amphenol";
- case"Amtl": return"Tenlon Technology Co.,Ltd";
- case"ANAMATIC": return"Anamartic Limited (England)";
- case"Ancor": return"Ancor Communications, Inc.";
- case"ANCOT": return"ANCOT Corp.";
- case"ANDATACO": return"Andataco";
- case"andiamo": return"Andiamo Systems, Inc.";
- case"ANOBIT": return"Anobit";
- case"ANRITSU": return"Anritsu Corporation";
- case"ANTONIO": return"Antonio Precise Products Manufactory Ltd.";
- case"AoT": return"Art of Technology AG";
- case"APPLE": return"Apple Computer, Inc.";
- case"ARCHIVE": return"Archive";
- case"ARDENCE": return"Ardence Inc";
- case"Areca": return"Areca Technology Corporation";
- case"Arena": return"MaxTronic International Co., Ltd.";
- case"Argent": return"Argent Data Systems, Inc.";
- case"ARIO": return"Ario Data Networks, Inc.";
- case"ARISTOS": return"Aristos Logic Corp.";
- case"ARK": return"ARK Research Corporation";
- case"ARL:UT@A": return"Applied Research Laboratories : University of Texas at Austin";
- case"ARTECON": return"Artecon Inc.";
- case"Artistic": return"Artistic Licence (UK) Ltd";
- case"ARTON": return"Arton Int.";
- case"ASACA": return"ASACA Corp.";
- case"ASC": return"Advanced Storage Concepts, Inc.";
- case"ASPEN": return"Aspen Peripherals";
- case"AST": return"AST Research";
- case"ASTEK": return"Astek Corporation";
- case"ASTK": return"Alcatel STK A/S";
- case"AStor": return"AccelStor, Inc.";
- case"ASTUTE": return"Astute Networks, Inc.";
- case"AT&T": return"AT&T";
- case"ATA": return"SCSI / ATA Translator Software (Organization Not Specified)";
- case"ATARI": return"Atari Corporation";
- case"ATech": return"ATech electronics";
- case"ATG CYG": return"ATG Cygnet Inc.";
- case"ATL": return"Quantum|ATL Products";
- case"ATTO": return"ATTO Technology Inc.";
- case"ATTRATEC": return"Attratech Ltd liab. Co";
- case"ATX": return"Alphatronix";
- case"AURASEN": return"Aurasen Limited";
- case"Avago": return"Avago Technologies";
- case"AVC": return"AVC Technology Ltd";
- case"AVIDVIDR": return"AVID Technologies, Inc.";
- case"AVR": return"Advanced Vision Research";
- case"AXSTOR": return"AXSTOR";
- case"Axxana": return"Axxana Ltd.";
- case"B*BRIDGE": return"Blockbridge Networks LLC";
- case"BALLARD": return"Ballard Synergy Corp.";
- case"Barco": return"Barco";
- case"BAROMTEC": return"Barom Technologies Co., Ltd.";
- case"Bassett": return"Bassett Electronic Systems Ltd";
- case"BC Hydro": return"BC Hydro";
- case"BDT": return"BDT AG";
- case"BECEEM": return"Beceem Communications, Inc";
- case"BENQ": return"BENQ Corporation.";
- case"BERGSWD": return"Berg Software Design";
- case"BEZIER": return"Bezier Systems, Inc.";
- case"BHTi": return"Breece Hill Technologies";
- case"biodata": return"Biodata Devices SL";
- case"BIOS": return"BIOS Corporation";
- case"BIR": return"Bio-Imaging Research, Inc.";
- case"BiT": return"BiT Microsystems";
- case"BITMICRO": return"BiT Microsystems, Inc.";
- case"Blendlgy": return"Blendology Limited";
- case"BLOOMBAS": return"Bloombase Technologies Limited";
- case"BlueArc": return"BlueArc Corporation";
- case"bluecog": return"bluecog";
- case"BME-HVT": return"Broadband Infocommunicatons and Electromagnetic Theory Department";
- case"BNCHMARK": return"Benchmark Tape Systems Corporation";
- case"Bosch": return"Robert Bosch GmbH";
- case"Botman": return"Botmanfamily Electronics";
- case"BoxHill": return"Box Hill Systems Corporation";
- case"BRDGWRKS": return"Bridgeworks Ltd.";
- case"BREA": return"BREA Technologies, Inc.";
- case"BREECE": return"Breece Hill LLC";
- case"BreqLabs": return"BreqLabs Inc.";
- case"Broadcom": return"Broadcom Corporation";
- case"BROCADE": return"Brocade Communications Systems, Incorporated";
- case"BUFFALO": return"BUFFALO INC.";
- case"BULL": return"Bull Peripherals Corp.";
- case"BUSLOGIC": return"BusLogic Inc.";
- case"BVIRTUAL": return"B-Virtual N.V.";
- case"CACHEIO": return"CacheIO LLC";
- case"CalComp": return"CalComp, A Lockheed Company";
- case"CALCULEX": return"CALCULEX, Inc.";
- case"CALIPER": return"Caliper (California Peripheral Corp.)";
- case"CAMBEX": return"Cambex Corporation";
- case"CAMEOSYS": return"Cameo Systems Inc.";
- case"CANDERA": return"Candera Inc.";
- case"CAPTION": return"CAPTION BANK";
- case"CAST": return"Advanced Storage Tech";
- case"CATALYST": return"Catalyst Enterprises";
- case"CCDISK": return"iSCSI Cake";
- case"CDC": return"Control Data or MPI";
- case"CDP": return"Columbia Data Products";
- case"Celsia": return"A M Bromley Limited";
- case"CenData": return"Central Data Corporation";
- case"Cereva": return"Cereva Networks Inc.";
- case"CERTANCE": return"Certance";
- case"Chantil": return"Chantil Technology";
- case"CHEROKEE": return"Cherokee Data Systems";
- case"CHINON": return"Chinon";
- case"CHRISTMA": return"Christmann Informationstechnik + Medien GmbH & Co KG";
- case"CIE&YED": return"YE Data, C.Itoh Electric Corp.";
- case"CIPHER": return"Cipher Data Products";
- case"Ciprico": return"Ciprico, Inc.";
- case"CIRRUSL": return"Cirrus Logic Inc.";
- case"CISCO": return"Cisco Systems, Inc.";
- case"CLEARSKY": return"ClearSky Data, Inc.";
- case"CLOVERLF": return"Cloverleaf Communications, Inc";
- case"CLS": return"Celestica";
- case"CMD": return"CMD Technology Inc.";
- case"CMTechno": return"CMTech";
- case"CNGR SFW": return"Congruent Software, Inc.";
- case"CNSi": return"Chaparral Network Storage, Inc.";
- case"CNT": return"Computer Network Technology";
- case"COBY": return"Coby Electronics Corporation, USA";
- case"COGITO": return"Cogito";
- case"COMAY": return"Corerise Electronics";
- case"COMPAQ": return"Compaq Computer Corporation";
- case"COMPELNT": return"Compellent Technologies, Inc.";
- case"COMPORT": return"Comport Corp.";
- case"COMPSIG": return"Computer Signal Corporation";
- case"COMPTEX": return"Comptex Pty Limited";
- case"CONNER": return"Conner Peripherals";
- case"COPANSYS": return"COPAN SYSTEMS INC";
- case"CORAID": return"Coraid, Inc";
- case"CORE": return"Core International, Inc.";
- case"CORERISE": return"Corerise Electronics";
- case"COVOTE": return"Covote GmbH & Co KG";
- case"COWON": return"COWON SYSTEMS, Inc.";
- case"CPL": return"Cross Products Ltd";
- case"CPU TECH": return"CPU Technology, Inc.";
- case"CREO": return"Creo Products Inc.";
- case"CROSFLD": return"Crosfield Electronics";
- case"CROSSRDS": return"Crossroads Systems, Inc.";
- case"crosswlk": return"Crosswalk, Inc.";
- case"CSCOVRTS": return"Cisco - Veritas";
- case"CSM, INC": return"Computer SM, Inc.";
- case"Cunuqui": return"CUNUQUI SLU";
- case"CYBERNET": return"Cybernetics";
- case"Cygnal": return"Dekimo";
- case"CYPRESS": return"Cypress Semiconductor Corp.";
- case"D Bit": return"Digby's Bitpile, Inc. DBA D Bit";
- case"DALSEMI": return"Dallas Semiconductor";
- case"DANEELEC": return"Dane-Elec";
- case"DANGER": return"Danger Inc.";
- case"DAT-MG": return"DAT Manufacturers Group";
- case"Data Com": return"Data Com Information Systems Pty. Ltd.";
- case"DATABOOK": return"Databook, Inc.";
- case"DATACOPY": return"Datacopy Corp.";
- case"DataCore": return"DataCore Software Corporation";
- case"DataG": return"DataGravity";
- case"DATAPT": return"Datapoint Corp.";
- case"DATARAM": return"Dataram Corporation";
- case"DATC": return"Datum Champion Technology Co., Ltd";
- case"DAVIS": return"Daviscomms (S) Pte Ltd";
- case"DCS": return"ShenZhen DCS Group Co.,Ltd";
- case"DDN": return"DataDirect Networks, Inc.";
- case"DDRDRIVE": return"DDRdrive LLC";
- case"DE": return"Dimension Engineering LLC";
- case"DEC": return"Digital Equipment Corporation";
- case"DEI": return"Digital Engineering, Inc.";
- case"DELL": return"Dell, Inc.";
- case"Dell(tm)": return"Dell, Inc";
- case"DELPHI": return"Delphi Data Div. of Sparks Industries, Inc.";
- case"DENON": return"Denon/Nippon Columbia";
- case"DenOptix": return"DenOptix, Inc.";
- case"DEST": return"DEST Corp.";
- case"DFC": return"DavioFranke.com";
- case"DFT": return"Data Fault Tolerance System CO.,LTD.";
- case"DGC": return"Data General Corp.";
- case"DIGIDATA": return"Digi-Data Corporation";
- case"DigiIntl": return"Digi International";
- case"Digital": return"Digital Equipment Corporation";
- case"DILOG": return"Distributed Logic Corp.";
- case"DISC": return"Document Imaging Systems Corp.";
- case"DiscSoft": return"Disc Soft Ltd";
- case"DLNET": return"Driveline";
- case"DNS": return"Data and Network Security";
- case"DNUK": return"Digital Networks Uk Ltd";
- case"DotHill": return"Dot Hill Systems Corp.";
- case"DP": return"Dell, Inc.";
- case"DPT": return"Distributed Processing Technology";
- case"Drewtech": return"Drew Technologies, Inc.";
- case"DROBO": return"Data Robotics, Inc.";
- case"DSC": return"DigitalStream Corporation";
- case"DSI": return"Data Spectrum, Inc.";
- case"DSM": return"Deterner Steuerungs- und Maschinenbau GmbH & Co.";
- case"DSNET": return"Cleversafe, Inc.";
- case"DT": return"Double-Take Software, INC.";
- case"DTC QUME": return"Data Technology Qume";
- case"DXIMAGIN": return"DX Imaging";
- case"E-Motion": return"E-Motion LLC";
- case"EARTHLAB": return"EarthLabs";
- case"EarthLCD": return"Earth Computer Technologies, Inc.";
- case"ECCS": return"ECCS, Inc.";
- case"ECMA": return"European Computer Manufacturers Association";
- case"EDS": return"Embedded Data Systems";
- case"EIM": return"InfoCore";
- case"ELE Intl": return"ELE International";
- case"ELEGANT": return"Elegant Invention, LLC";
- case"Elektron": return"Elektron Music Machines MAV AB";
- case"elipsan": return"Elipsan UK Ltd.";
- case"Elms": return"Elms Systems Corporation";
- case"ELSE": return"ELSE Ltd.";
- case"ELSEC": return"Littlemore Scientific";
- case"EMASS": return"EMASS, Inc.";
- case"EMC": return"EMC Corp.";
- case"EMiT": return"EMiT Conception Eletronique";
- case"EMTEC": return"EMTEC Magnetics";
- case"EMULEX": return"Emulex";
- case"ENERGY-B": return"Energybeam Corporation";
- case"ENGENIO": return"Engenio Information Technologies, Inc.";
- case"ENMOTUS": return"Enmotus Inc";
- case"Entacore": return"Entacore";
- case"EPOS": return"EPOS Technologies Ltd.";
- case"EPSON": return"Epson";
- case"EQLOGIC": return"EqualLogic";
- case"Eris/RSI": return"RSI Systems, Inc.";
- case"ETERNE": return"EterneData Technology Co.,Ltd.(China PRC.)";
- case"EuroLogc": return"Eurologic Systems Limited";
- case"evolve": return"Evolution Technologies, Inc";
- case"EXABYTE": return"Exabyte Corp.";
- case"EXATEL": return"Exatelecom Co., Ltd.";
- case"EXAVIO": return"Exavio, Inc.";
- case"Exsequi": return"Exsequi Ltd";
- case"Exxotest": return"Annecy Electronique";
- case"FAIRHAVN": return"Fairhaven Health, LLC";
- case"FALCON": return"FalconStor, Inc.";
- case"FDS": return"Formation Data Systems";
- case"FFEILTD": return"FujiFilm Electonic Imaging Ltd";
- case"Fibxn": return"Fiberxon, Inc.";
- case"FID": return"First International Digital, Inc.";
- case"FILENET": return"FileNet Corp.";
- case"FirmFact": return"Firmware Factory Ltd";
- case"FLYFISH": return"Flyfish Technologies";
- case"FOXCONN": return"Foxconn Technology Group";
- case"FRAMDRV": return"FRAMEDRIVE Corp.";
- case"FREECION": return"Nable Communications, Inc.";
- case"FRESHDTK": return"FreshDetect GmbH";
- case"FSC": return"Fujitsu Siemens Computers";
- case"FTPL": return"Frontline Technologies Pte Ltd";
- case"FUJI": return"Fuji Electric Co., Ltd. (Japan)";
- case"FUJIFILM": return"Fuji Photo Film, Co., Ltd.";
- case"FUJITSU": return"Fujitsu";
- case"FUNAI": return"Funai Electric Co., Ltd.";
- case"FUSIONIO": return"Fusion-io Inc.";
- case"FUTURED": return"Future Domain Corp.";
- case"G&D": return"Giesecke & Devrient GmbH";
- case"G.TRONIC": return"Globaltronic - Electronica e Telecomunicacoes, S.A.";
- case"Gadzoox": return"Gadzoox Networks, Inc.";
- case"Gammaflx": return"Gammaflux L.P.";
- case"GDI": return"Generic Distribution International";
- case"GEMALTO": return"gemalto";
- case"Gen_Dyn": return"General Dynamics";
- case"Generic": return"Generic Technology Co., Ltd.";
- case"GENSIG": return"General Signal Networks";
- case"GEO": return"Green Energy Options Ltd";
- case"GIGATAPE": return"GIGATAPE GmbH";
- case"GIGATRND": return"GigaTrend Incorporated";
- case"Global": return"Global Memory Test Consortium";
- case"Gnutek": return"Gnutek Ltd.";
- case"Goidelic": return"Goidelic Precision, Inc.";
- case"GoldKey": return"GoldKey Security Corporation";
- case"GoldStar": return"LG Electronics Inc.";
- case"GOOGLE": return"Google, Inc.";
- case"GORDIUS": return"Gordius";
- case"GOULD": return"Gould";
- case"HAGIWARA": return"Hagiwara Sys-Com Co., Ltd.";
- case"HAPP3": return"Inventec Multimedia and Telecom co., ltd";
- case"HDS": return"Horizon Data Systems, Inc.";
- case"Helldyne": return"Helldyne, Inc";
- case"Heydays": return"Mazo Technology Co., Ltd.";
- case"HGST": return"HGST a Western Digital Company";
- case"HI-TECH": return"HI-TECH Software Pty. Ltd.";
- case"HITACHI": return"Hitachi America Ltd or Nissei Sangyo America Ltd";
- case"HL-DT-ST": return"Hitachi-LG Data Storage, Inc.";
- case"HONEYWEL": return"Honeywell Inc.";
- case"Hoptroff": return"HexWax Ltd";
- case"HORIZONT": return"Horizontigo Software";
- case"HP": return"Hewlett Packard";
- case"HPE": return"Hewlett Packard Enterprise";
- case"HPI": return"HP Inc.";
- case"HPQ": return"Hewlett Packard";
- case"HUALU": return"CHINA HUALU GROUP CO., LTD";
- case"HUASY": return"Huawei Symantec Technologies Co., Ltd.";
- case"HYLINX": return"Hylinx Ltd.";
- case"HYUNWON": return"HYUNWON inc";
- case"i-cubed": return"i-cubed ltd.";
- case"IBM": return"International Business Machines";
- case"Icefield": return"Icefield Tools Corporation";
- case"Iceweb": return"Iceweb Storage Corp";
- case"ICL": return"ICL";
- case"ICP": return"ICP vortex Computersysteme GmbH";
- case"IDE": return"International Data Engineering, Inc.";
- case"IDG": return"Interface Design Group";
- case"IET": return"ISCSI ENTERPRISE TARGET";
- case"IFT": return"Infortrend Technology, Inc.";
- case"IGR": return"Intergraph Corp.";
- case"IMAGINE": return"Imagine Communications Corp.";
- case"IMAGO": return"IMAGO SOFTWARE SL";
- case"IMATION": return"Imation";
- case"IMPLTD": return"Integrated Micro Products Ltd.";
- case"IMPRIMIS": return"Imprimis Technology Inc.";
- case"INCIPNT": return"Incipient Technologies Inc.";
- case"INCITS": return"InterNational Committee for Information Technology";
- case"INDCOMP": return"Industrial Computing Limited";
- case"Indigita": return"Indigita Corporation";
- case"INFOCORE": return"InfoCore";
- case"INITIO": return"Initio Corporation";
- case"INRANGE": return"INRANGE Technologies Corporation";
- case"Insight": return"L-3 Insight Technology Inc";
- case"INSITE": return"Insite Peripherals";
- case"integrix": return"Integrix, Inc.";
- case"INTEL": return"Intel Corporation";
- case"Intransa": return"Intransa, Inc.";
- case"IOC": return"I/O Concepts, Inc.";
- case"iofy": return"iofy Corporation";
- case"IOMEGA": return"Iomega";
- case"IOT": return"IO Turbine, Inc.";
- case"iPaper": return"intelliPaper, LLC";
- case"iqstor": return"iQstor Networks, Inc.";
- case"iQue": return"iQue";
- case"ISi": return"Information Storage inc.";
- case"Isilon": return"Isilon Systems, Inc.";
- case"ISO": return"International Standards Organization";
- case"iStor": return"iStor Networks, Inc.";
- case"ITC": return"International Tapetronics Corporation";
- case"iTwin": return"iTwin Pte Ltd";
- case"IVIVITY": return"iVivity, Inc.";
- case"IVMMLTD": return"InnoVISION Multimedia Ltd.";
- case"JABIL001": return"Jabil Circuit";
- case"JETWAY": return"Jetway Information Co., Ltd";
- case"JMR": return"JMR Electronics Inc.";
- case"JOFEMAR": return"Jofemar";
- case"JOLLYLOG": return"Jolly Logic";
- case"JPC Inc.": return"JPC Inc.";
- case"JSCSI": return"jSCSI Project";
- case"Juniper": return"Juniper Networks";
- case"JVC": return"JVC Information Products Co.";
- case"KASHYA": return"Kashya, Inc.";
- case"KENNEDY": return"Kennedy Company";
- case"KENWOOD": return"KENWOOD Corporation";
- case"KEWL": return"Shanghai KEWL Imp&Exp Co., Ltd.";
- case"Key Tech": return"Key Technologies, Inc";
- case"KMNRIO": return"Kaminario Technologies Ltd.";
- case"KODAK": return"Eastman Kodak";
- case"KONAN": return"Konan";
- case"koncepts": return"koncepts International Ltd.";
- case"KONICA": return"Konica Japan";
- case"KOVE": return"KOVE";
- case"KSCOM": return"KSCOM Co. Ltd.,";
- case"KUDELSKI": return"Nagravision SA - Kudelski Group";
- case"Kyocera": return"Kyocera Corporation";
- case"Lapida": return"Gonmalo Electronics";
- case"LAPINE": return"Lapine Technology";
- case"LASERDRV": return"LaserDrive Limited";
- case"LASERGR": return"Lasergraphics, Inc.";
- case"LeapFrog": return"LeapFrog Enterprises, Inc.";
- case"LEFTHAND": return"LeftHand Networks";
- case"Leica": return"Leica Camera AG";
- case"Lexar": return"Lexar Media, Inc.";
- case"LEYIO": return"LEYIO";
- case"LG": return"LG Electronics Inc.";
- case"LGE": return"LG Electronics Inc.";
- case"LIBNOVA": return"LIBNOVA, SL Digital Preservation Systems";
- case"LION": return"Lion Optics Corporation";
- case"LMS": return"Laser Magnetic Storage International Company";
- case"LoupTech": return"Loup Technologies, Inc.";
- case"LSI": return"LSI Corp. (was LSI Logic Corp.)";
- case"LSILOGIC": return"LSI Logic Storage Systems, Inc.";
- case"LTO-CVE": return"Linear Tape - Open, Compliance Verification Entity";
- case"LUXPRO": return"Luxpro Corporation";
- case"MacroSAN": return"MacroSAN Technologies Co., Ltd.";
- case"Malakite": return"Malachite Technologies (New VID is: Sandial)";
- case"MarcBoon": return"marcboon.com";
- case"Marner": return"Marner Storage Technologies, Inc.";
- case"MARVELL": return"Marvell Semiconductor, Inc.";
- case"Matrix": return"Matrix Orbital Corp.";
- case"MATSHITA": return"Matsushita";
- case"MAXELL": return"Hitachi Maxell, Ltd.";
- case"MAXIM-IC": return"Maxim Integrated Products";
- case"MaxOptix": return"Maxoptix Corp.";
- case"MAXSTRAT": return"Maximum Strategy, Inc.";
- case"MAXTOR": return"Maxtor Corp.";
- case"MaXXan": return"MaXXan Systems, Inc.";
- case"MAYCOM": return"maycom Co., Ltd.";
- case"MBEAT": return"K-WON C&C Co.,Ltd";
- case"MCC": return"Measurement Computing Corporation";
- case"McDATA": return"McDATA Corporation";
- case"MCUBE": return"Mcube Technology Co., Ltd.";
- case"MDI": return"Micro Design International, Inc.";
- case"MEADE": return"Meade Instruments Corporation";
- case"mediamat": return"mediamatic";
- case"MegaElec": return"Mega Electronics Ltd";
- case"MEII": return"Mountain Engineering II, Inc.";
- case"MELA": return"Mitsubishi Electronics America";
- case"MELCO": return"Mitsubishi Electric (Japan)";
- case"mellanox": return"Mellanox Technologies Ltd.";
- case"MEMOREX": return"Memorex Telex Japan Ltd.";
- case"MEMREL": return"Memrel Corporation";
- case"MEMTECH": return"MemTech Technology";
- case"Mendocin": return"Mendocino Software";
- case"MendoCno": return"Mendocino Software";
- case"MERIDATA": return"Oy Meridata Finland Ltd";
- case"METHODEI": return"Methode Electronics India pvt ltd";
- case"METRUM": return"Metrum, Inc.";
- case"MHTL": return"Matsunichi Hi-Tech Limited";
- case"MICROBTX": return"Microbotics Inc.";
- case"Microchp": return"Microchip Technology, Inc.";
- case"MICROLIT": return"Microlite Corporation";
- case"MICRON": return"Micron Technology, Inc.";
- case"MICROP": return"Micropolis";
- case"MICROTEK": return"Microtek Storage Corp";
- case"Minitech": return"Minitech (UK) Limited";
- case"Minolta": return"Minolta Corporation";
- case"MINSCRIB": return"Miniscribe";
- case"MiraLink": return"MiraLink Corporation";
- case"Mirifica": return"Mirifica s.r.l.";
- case"MITSUMI": return"Mitsumi Electric Co., Ltd.";
- case"MKM": return"Mitsubishi Kagaku Media Co., LTD.";
- case"Mobii": return"Mobii Systems (Pty.) Ltd.";
- case"MOL": return"Petrosoft Sdn. Bhd.";
- case"MOSAID": return"Mosaid Technologies Inc.";
- case"MOTOROLA": return"Motorola";
- case"MP-400": return"Daiwa Manufacturing Limited";
- case"MPC": return"MPC Corporation";
- case"MPCCORP": return"MPC Computers";
- case"MPEYE": return"Touchstone Technology Co., Ltd";
- case"MPIO": return"DKT Co.,Ltd";
- case"MPM": return"Mitsubishi Paper Mills, Ltd.";
- case"MPMan": return"MPMan.com, Inc.";
- case"MSFT": return"Microsoft Corporation";
- case"MSI": return"Micro-Star International Corp.";
- case"MST": return"Morning Star Technologies, Inc.";
- case"MSystems": return"M-Systems Flash Disk Pioneers";
- case"MTI": return"MTI Technology Corporation";
- case"MTNGATE": return"MountainGate Data Systems";
- case"MXI": return"Memory Experts International";
- case"nac": return"nac Image Technology Inc.";
- case"NAGRA": return"Nagravision SA - Kudelski Group";
- case"NAI": return"North Atlantic Industries";
- case"NAKAMICH": return"Nakamichi Corporation";
- case"NatInst": return"National Instruments";
- case"NatSemi": return"National Semiconductor Corp.";
- case"NCITS": return"InterNational Committee for Information Technology Standards (INCITS)";
- case"NCL": return"NCL America";
- case"NCR": return"NCR Corporation";
- case"NDBTECH": return"NDB Technologie Inc.";
- case"Neartek": return"Neartek, Inc.";
- case"NEC": return"NEC";
- case"NETAPP": return"NetApp, Inc. (was Network Appliance)";
- case"NetBSD": return"The NetBSD Foundation";
- case"Netcom": return"Netcom Storage";
- case"NETENGIN": return"NetEngine, Inc.";
- case"NEWISYS": return"Newisys Data Storage";
- case"Newtech": return"Newtech Co., Ltd.";
- case"NEXSAN": return"Nexsan Technologies, Ltd.";
- case"NFINIDAT": return"Infinidat Ltd.";
- case"NHR": return"NH Research, Inc.";
- case"Nike": return"Nike, Inc.";
- case"Nimble": return"Nimble Storage";
- case"NISCA": return"NISCA Inc.";
- case"NISHAN": return"Nishan Systems Inc.";
- case"Nitz": return"Nitz Associates, Inc.";
- case"NKK": return"NKK Corp.";
- case"NRC": return"Nakamichi Research Corporation";
- case"NSD": return"Nippon Systems Development Co.,Ltd.";
- case"NSM": return"NSM Jukebox GmbH";
- case"nStor": return"nStor Technologies, Inc.";
- case"NT": return"Northern Telecom";
- case"NUCONNEX": return"NuConnex";
- case"NUSPEED": return"NuSpeed, Inc.";
- case"NVIDIA": return"NVIDIA Corporation";
- case"NVMe": return"NVM Express Working Group";
- case"OAI": return"Optical Access International";
- case"OCE": return"Oce Graphics";
- case"ODS": return"ShenZhen DCS Group Co.,Ltd";
- case"OHDEN": return"Ohden Co., Ltd.";
- case"OKI": return"OKI Electric Industry Co.,Ltd (Japan)";
- case"Olidata": return"Olidata S.p.A.";
- case"OMI": return"Optical Media International";
- case"OMNIFI": return"Rockford Corporation - Omnifi Media";
- case"OMNIS": return"OMNIS Company (FRANCE)";
- case"Ophidian": return"Ophidian Designs";
- case"opslag": return"Tyrone Systems";
- case"Optelec": return"Optelec BV";
- case"Optiarc": return"Sony Optiarc Inc.";
- case"OPTIMEM": return"Cipher/Optimem";
- case"OPTOTECH": return"Optotech";
- case"ORACLE": return"Oracle Corporation";
- case"ORANGE": return"Orange Micro, Inc.";
- case"ORCA": return"Orca Technology";
- case"Origin": return"Origin Energy";
- case"OSI": return"Optical Storage International";
- case"OSNEXUS": return"OS NEXUS, Inc.";
- case"OTL": return"OTL Engineering";
- case"OVERLAND": return"Overland Storage Inc.";
- case"pacdigit": return"Pacific Digital Corp";
- case"Packard": return"Parkard Bell";
- case"Panasas": return"Panasas, Inc.";
- case"PARALAN": return"Paralan Corporation";
- case"PASCOsci": return"Pasco Scientific";
- case"PATHLGHT": return"Pathlight Technology, Inc.";
- case"PCS": return"Pro Charging Systems, LLC";
- case"PerStor": return"Perstor";
- case"PERTEC": return"Pertec Peripherals Corporation";
- case"PFTI": return"Performance Technology Inc.";
- case"PFU": return"PFU Limited";
- case"Phigment": return"Phigment Technologies";
- case"PHILIPS": return"Philips Electronics";
- case"PICO": return"Packard Instrument Company";
- case"PIK": return"TECHNILIENT & MCS";
- case"Pillar": return"Pillar Data Systems";
- case"PIONEER": return"Pioneer Electronic Corp.";
- case"Pirus": return"Pirus Networks";
- case"PIVOT3": return"Pivot3, Inc.";
- case"PLASMON": return"Plasmon Data";
- case"Pliant": return"Pliant Technology, Inc.";
- case"PMCSIERA": return"PMC-Sierra";
- case"PME": return"Precision Measurement Engineering";
- case"PNNMed": return"PNN Medical SA";
- case"POKEN": return"Poken SA";
- case"POLYTRON": return"PT. HARTONO ISTANA TEKNOLOGI";
- case"PRAIRIE": return"PrairieTek";
- case"PREPRESS": return"PrePRESS Solutions";
- case"PRESOFT": return"PreSoft Architects";
- case"PRESTON": return"Preston Scientific";
- case"PRIAM": return"Priam";
- case"PRIMAGFX": return"Primagraphics Ltd";
- case"PRIMOS": return"Primos";
- case"PROCOM": return"Procom Technology";
- case"PROLIFIC": return"Prolific Technology Inc.";
- case"PROMISE": return"PROMISE TECHNOLOGY, Inc";
- case"PROSTOR": return"ProStor Systems, Inc.";
- case"PROSUM": return"PROSUM";
- case"PROWARE": return"Proware Technology Corp.";
- case"PTI": return"Peripheral Technology Inc.";
- case"PTICO": return"Pacific Technology International";
- case"PURE": return"PURE Storage";
- case"Qi-Hardw": return"Qi Hardware";
- case"QIC": return"Quarter-Inch Cartridge Drive Standards, Inc.";
- case"QLogic": return"QLogic Corporation";
- case"QNAP": return"QNAP Systems";
- case"Qsan": return"QSAN Technology, Inc.";
- case"QUALSTAR": return"Qualstar";
- case"QUANTEL": return"Quantel Ltd.";
- case"QUANTUM": return"Quantum Corp.";
- case"QUIX": return"Quix Computerware AG";
- case"R-BYTE": return"R-Byte, Inc.";
- case"RACALREC": return"Racal Recorders";
- case"RADITEC": return"Radikal Technologies Deutschland GmbH";
- case"RADSTONE": return"Radstone Technology";
- case"RAIDINC": return"RAID Inc.";
- case"RASSYS": return"Rasilient Systems Inc.";
- case"RASVIA": return"Rasvia Systems, Inc.";
- case"rave-mp": return"Go Video";
- case"RDKMSTG": return"MMS Dipl. Ing. Rolf-Dieter Klein";
- case"RDStor": return"Rorke China";
- case"Readboy": return"Readboy Ltd Co.";
- case"Realm": return"Realm Systems";
- case"realtek": return"Realtek Semiconductor Corp.";
- case"REDUXIO": return"Reduxio Systems Ltd.";
- case"rehanltd": return"Rehan Electronics Ltd";
- case"REKA": return"REKA HEALTH PTE LTD";
- case"RELDATA": return"RELDATA Inc";
- case"RENAGmbH": return"RENA GmbH";
- case"ReThinkM": return"RETHINK MEDICAL, INC";
- case"Revivio": return"Revivio, Inc.";
- case"RGBLaser": return"RGB Lasersysteme GmbH";
- case"RGI": return"Raster Graphics, Inc.";
- case"RHAPSODY": return"Rhapsody Networks, Inc.";
- case"RHS": return"Racal-Heim Systems GmbH";
- case"RICOH": return"Ricoh";
- case"RODIME": return"Rodime";
- case"Rorke": return"RD DATA Technology (ShenZhen) Limited";
- case"Royaltek": return"RoyalTek company Ltd.";
- case"RPS": return"RPS";
- case"RTI": return"Reference Technology";
- case"S-D": return"Sauer-Danfoss";
- case"S-flex": return"Storageflex Inc";
- case"S-SYSTEM": return"S-SYSTEM";
- case"S1": return"storONE";
- case"SAMSUNG": return"Samsung Electronics Co., Ltd.";
- case"SAN": return"Storage Area Networks, Ltd.";
- case"Sandial": return"Sandial Systems, Inc.";
- case"SanDisk": return"SanDisk Corporation";
- case"SANKYO": return"Sankyo Seiki";
- case"SANRAD": return"SANRAD Inc.";
- case"SANYO": return"SANYO Electric Co., Ltd.";
- case"SC.Net": return"StorageConnections.Net";
- case"SCALE": return"Scale Computing, Inc.";
- case"SCIENTEK": return"SCIENTEK CORP";
- case"SCInc.": return"Storage Concepts, Inc.";
- case"SCREEN": return"Dainippon Screen Mfg. Co., Ltd.";
- case"SDI": return"Storage Dimensions, Inc.";
- case"SDS": return"Solid Data Systems";
- case"SEAC": return"SeaChange International, Inc.";
- case"SEAGATE": return"Seagate";
- case"SEAGRAND": return"SEAGRAND In Japan";
- case"Seanodes": return"Seanodes";
- case"Sec. Key": return"SecureKey Technologies Inc.";
- case"SEQUOIA": return"Sequoia Advanced Technologies, Inc.";
- case"SGI": return"Silicon Graphics International";
- case"Shannon": return"Shannon Systems Co., Ltd.";
- case"Shinko": return"Shinko Electric Co., Ltd.";
- case"SIEMENS": return"Siemens";
- case"SigmaTel": return"SigmaTel, Inc.";
- case"SII": return"Seiko Instruments Inc.";
- case"SIMPLE": return"SimpleTech, Inc.";
- case"SIVMSD": return"IMAGO SOFTWARE SL";
- case"SKhynix": return"SK hynix Inc.";
- case"SLCNSTOR": return"SiliconStor, Inc.";
- case"SLI": return"Sierra Logic, Inc.";
- case"SMCI": return"Super Micro Computer, Inc.";
- case"SmrtStor": return"Smart Storage Systems";
- case"SMS": return"Scientific Micro Systems/OMTI";
- case"SMSC": return"SMSC Storage, Inc.";
- case"SMX": return"Smartronix, Inc.";
- case"SNYSIDE": return"Sunnyside Computing Inc.";
- case"SoftLock": return"Softlock Digital Security Provider";
- case"SolidFir": return"SolidFire, Inc.";
- case"SONIC": return"Sonic Solutions";
- case"SoniqCas": return"SoniqCast";
- case"SONY": return"Sony Corporation Japan";
- case"SOUL": return"Soul Storage Technology (Wuxi) Co., Ltd";
- case"SPD": return"Storage Products Distribution, Inc.";
- case"SPECIAL": return"Special Computing Co.";
- case"SPECTRA": return"Spectra Logic, a Division of Western Automation Labs, Inc.";
- case"SPERRY": return"Sperry";
- case"Spintso": return"Spintso International AB";
- case"STARBORD": return"Starboard Storage Systems, Inc.";
- case"STARWIND": return"StarWind Software, Inc.";
- case"STEC": return"STEC, Inc.";
- case"Sterling": return"Sterling Diagnostic Imaging, Inc.";
- case"STK": return"Storage Technology Corporation";
- case"STNWOOD": return"Stonewood Group";
- case"STONEFLY": return"StoneFly Networks, Inc.";
- case"STOR": return"StorageNetworks, Inc.";
- case"STORAPP": return"StorageApps, Inc.";
- case"STORCIUM": return"Intelligent Systems Services Inc.";
- case"STORCOMP": return"Storage Computer Corporation";
- case"STORM": return"Storm Technology, Inc.";
- case"StorMagc": return"StorMagic";
- case"Stratus": return"Stratus Technologies";
- case"StrmLgc": return"StreamLogic Corp.";
- case"SUMITOMO": return"Sumitomo Electric Industries, Ltd.";
- case"SUN": return"Sun Microsystems, Inc.";
- case"SUNCORP": return"SunCorporation";
- case"suntx": return"Suntx System Co., Ltd";
- case"SUSE": return"SUSE Linux";
- case"Swinxs": return"Swinxs BV";
- case"SYMANTEC": return"Symantec Corporation";
- case"SYMBIOS": return"Symbios Logic Inc.";
- case"SYMWAVE": return"Symwave, Inc.";
- case"SYNCSORT": return"Syncsort Incorporated";
- case"SYNERWAY": return"Synerway";
- case"SYNOLOGY": return"Synology, Inc.";
- case"SyQuest": return"SyQuest Technology, Inc.";
- case"SYSGEN": return"Sysgen";
- case"T-MITTON": return"Transmitton England";
- case"T-MOBILE": return"T-Mobile USA, Inc.";
- case"T11": return"INCITS Technical Committee T11";
- case"TALARIS": return"Talaris Systems, Inc.";
- case"TALLGRAS": return"Tallgrass Technologies";
- case"TANDBERG": return"Tandberg Data A/S";
- case"TANDEM": return"Tandem";
- case"TANDON": return"Tandon";
- case"TCL": return"TCL Shenzhen ASIC MIcro-electronics Ltd";
- case"TDK": return"TDK Corporation";
- case"TEAC": return"TEAC Japan";
- case"TECOLOTE": return"Tecolote Designs";
- case"TEGRA": return"Tegra Varityper";
- case"Teilch": return"Teilch";
- case"Tek": return"Tektronix";
- case"TELLERT": return"Tellert Elektronik GmbH";
- case"TENTIME": return"Laura Technologies, Inc.";
- case"TFDATACO": return"TimeForge";
- case"TGEGROUP": return"TGE Group Co.,LTD.";
- case"Thecus": return"Thecus Technology Corp.";
- case"TI-DSG": return"Texas Instruments";
- case"TiGi": return"TiGi Corporation";
- case"TILDESGN": return"Tildesign bv";
- case"Tite": return"Tite Technology Limited";
- case"TKS Inc.": return"TimeKeeping Systems, Inc.";
- case"TLMKS": return"Telemakus LLC";
- case"TMS": return"Texas Memory Systems, Inc.";
- case"TMS100": return"TechnoVas";
- case"TOLISGRP": return"The TOLIS Group";
- case"TOSHIBA": return"Toshiba Japan";
- case"TOYOU": return"TOYOU FEIJI ELECTRONICS CO.,LTD.";
- case"Tracker": return"Tracker, LLC";
- case"TRIOFLEX": return"Trioflex Oy";
- case"TRIPACE": return"Tripace";
- case"TRLogger": return"TrueLogger Ltd.";
- case"TROIKA": return"Troika Networks, Inc.";
- case"TRULY": return"TRULY Electronics MFG. LTD.";
- case"TRUSTED": return"Trusted Data Corporation";
- case"TSSTcorp": return"Toshiba Samsung Storage Technology Corporation";
- case"TZM": return"TZ Medical";
- case"UD-DVR": return"Bigstone Project.";
- case"UDIGITAL": return"United Digital Limited";
- case"UIT": return"United Infomation Technology";
- case"ULTRA": return"UltraStor Corporation";
- case"UNISTOR": return"Unistor Networks, Inc.";
- case"UNISYS": return"Unisys";
- case"USCORE": return"Underscore, Inc.";
- case"USDC": return"US Design Corp.";
- case"Top VASCO": return"Vasco Data Security";
- case"VDS": return"Victor Data Systems Co., Ltd.";
- case"VELDANA": return"VELDANA MEDICAL SA";
- case"VENTANA": return"Ventana Medical Systems";
- case"Verari": return"Verari Systems, Inc.";
- case"VERBATIM": return"Verbatim Corporation";
- case"Vercet": return"Vercet LLC";
- case"VERITAS": return"VERITAS Software Corporation";
- case"Vexata": return"Vexata Inc";
- case"VEXCEL": return"VEXCEL IMAGING GmbH";
- case"VICOMSL1": return"Vicom Systems, Inc.";
- case"VicomSys": return"Vicom Systems, Inc.";
- case"VIDEXINC": return"Videx, Inc.";
- case"VIOLIN": return"Violin Memory, Inc.";
- case"VIRIDENT": return"Virident Systems, Inc.";
- case"VITESSE": return"Vitesse Semiconductor Corporation";
- case"VIXEL": return"Vixel Corporation";
- case"VLS": return"Van Lent Systems BV";
- case"VMAX": return"VMAX Technologies Corp.";
- case"VMware": return"VMware Inc.";
- case"Vobis": return"Vobis Microcomputer AG";
- case"VOLTAIRE": return"Voltaire Ltd.";
- case"VRC": return"Vermont Research Corp.";
- case"VRugged": return"Vanguard Rugged Storage";
- case"VTGadget": return"Vermont Gadget Company";
- case"Waitec": return"Waitec NV";
- case"WangDAT": return"WangDAT";
- case"WANGTEK": return"Wangtek";
- case"Wasabi": return"Wasabi Systems";
- case"WAVECOM": return"Wavecom";
- case"WD": return"Western Digital Corporation";
- case"WDC": return"Western Digital Corporation";
- case"WDIGTL": return"Western Digital";
- case"WDTI": return"Western Digital Technologies, Inc.";
- case"WEARNES": return"Wearnes Technology Corporation";
- case"WeeraRes": return"Weera Research Pte Ltd";
- case"Wildflwr": return"Wildflower Technologies, Inc.";
- case"WSC0001": return"Wisecom, Inc.";
- case"X3": return"InterNational Committee for Information Technology Standards (INCITS)";
- case"XEBEC": return"Xebec Corporation";
- case"XENSRC": return"XenSource, Inc.";
- case"Xerox": return"Xerox Corporation";
- case"XIOtech": return"XIOtech Corporation";
- case"XIRANET": return"Xiranet Communications GmbH";
- case"XIV": return"XIV";
- case"XtremIO": return"XtremIO";
- case"XYRATEX": return"Xyratex";
- case"YINHE": return"NUDT Computer Co.";
- case"YIXUN": return"Yixun Electronic Co.,Ltd.";
- case"YOTTA": return"YottaYotta, Inc.";
- case"Zarva": return"Zarva Digital Technology Co., Ltd.";
- case"ZETTA": return"Zetta Systems, Inc.";
- case"ZTE": return"ZTE Corporation";
- case"ZVAULT": return"Zetavault";
- default: return scsiVendorString;
+ case "0B4C": return "MOOSIK Ltd.";
+ case "13FE": return "PHISON";
+ case "2AI": return "2AI (Automatisme et Avenir Informatique)";
+ case "3M": return "3M Company";
+ case "3nhtech": return "3NH Technologies";
+ case "3PARdata": return "3PARdata, Inc.";
+ case "A-Max": return "A-Max Technology Co., Ltd";
+ case "ABSOLUTE": return "Absolute Analysis";
+ case "ACARD": return "ACARD Technology Corp.";
+ case "Accusys": return "Accusys INC.";
+ case "Acer": return "Acer, Inc.";
+ case "ACL": return "Automated Cartridge Librarys, Inc.";
+ case "Actifio": return "Actifio";
+ case "Acuid": return "Acuid Corporation Ltd.";
+ case "AcuLab": return "AcuLab, Inc. (Tulsa, OK)";
+ case "ADAPTEC": return "Adaptec";
+ case "ADIC": return "Advanced Digital Information Corporation";
+ case "ADSI": return "Adaptive Data Systems, Inc. (a Western Digital subsidiary)";
+ case "ADTX": return "ADTX Co., Ltd.";
+ case "ADVA": return "ADVA Optical Networking AG";
+ case "AEM": return "AEM Performance Electronics";
+ case "AERONICS": return "Aeronics, Inc.";
+ case "AGFA": return "AGFA";
+ case "Agilent": return "Agilent Technologies";
+ case "AIC": return "Advanced Industrial Computer, Inc.";
+ case "AIPTEK": return "AIPTEK International Inc.";
+ case "Alcohol": return "Alcohol Soft";
+ case "ALCOR": return "Alcor Micro, Corp.";
+ case "AMCC": return "Applied Micro Circuits Corporation";
+ case "AMCODYNE": return "Amcodyne";
+ case "Amgeon": return "Amgeon LLC";
+ case "AMI": return "American Megatrends, Inc.";
+ case "AMPEX": return "Ampex Data Systems";
+ case "Amphenol": return "Amphenol";
+ case "Amtl": return "Tenlon Technology Co.,Ltd";
+ case "ANAMATIC": return "Anamartic Limited (England)";
+ case "Ancor": return "Ancor Communications, Inc.";
+ case "ANCOT": return "ANCOT Corp.";
+ case "ANDATACO": return "Andataco";
+ case "andiamo": return "Andiamo Systems, Inc.";
+ case "ANOBIT": return "Anobit";
+ case "ANRITSU": return "Anritsu Corporation";
+ case "ANTONIO": return "Antonio Precise Products Manufactory Ltd.";
+ case "AoT": return "Art of Technology AG";
+ case "APPLE": return "Apple Computer, Inc.";
+ case "ARCHIVE": return "Archive";
+ case "ARDENCE": return "Ardence Inc";
+ case "Areca": return "Areca Technology Corporation";
+ case "Arena": return "MaxTronic International Co., Ltd.";
+ case "Argent": return "Argent Data Systems, Inc.";
+ case "ARIO": return "Ario Data Networks, Inc.";
+ case "ARISTOS": return "Aristos Logic Corp.";
+ case "ARK": return "ARK Research Corporation";
+ case "ARL:UT@A": return "Applied Research Laboratories : University of Texas at Austin";
+ case "ARTECON": return "Artecon Inc.";
+ case "Artistic": return "Artistic Licence (UK) Ltd";
+ case "ARTON": return "Arton Int.";
+ case "ASACA": return "ASACA Corp.";
+ case "ASC": return "Advanced Storage Concepts, Inc.";
+ case "ASPEN": return "Aspen Peripherals";
+ case "AST": return "AST Research";
+ case "ASTEK": return "Astek Corporation";
+ case "ASTK": return "Alcatel STK A/S";
+ case "AStor": return "AccelStor, Inc.";
+ case "ASTUTE": return "Astute Networks, Inc.";
+ case "AT&T": return "AT&T";
+ case "ATA": return "SCSI / ATA Translator Software (Organization Not Specified)";
+ case "ATARI": return "Atari Corporation";
+ case "ATech": return "ATech electronics";
+ case "ATG CYG": return "ATG Cygnet Inc.";
+ case "ATL": return "Quantum|ATL Products";
+ case "ATTO": return "ATTO Technology Inc.";
+ case "ATTRATEC": return "Attratech Ltd liab. Co";
+ case "ATX": return "Alphatronix";
+ case "AURASEN": return "Aurasen Limited";
+ case "Avago": return "Avago Technologies";
+ case "AVC": return "AVC Technology Ltd";
+ case "AVIDVIDR": return "AVID Technologies, Inc.";
+ case "AVR": return "Advanced Vision Research";
+ case "AXSTOR": return "AXSTOR";
+ case "Axxana": return "Axxana Ltd.";
+ case "B*BRIDGE": return "Blockbridge Networks LLC";
+ case "BALLARD": return "Ballard Synergy Corp.";
+ case "Barco": return "Barco";
+ case "BAROMTEC": return "Barom Technologies Co., Ltd.";
+ case "Bassett": return "Bassett Electronic Systems Ltd";
+ case "BC Hydro": return "BC Hydro";
+ case "BDT": return "BDT AG";
+ case "BECEEM": return "Beceem Communications, Inc";
+ case "BENQ": return "BENQ Corporation.";
+ case "BERGSWD": return "Berg Software Design";
+ case "BEZIER": return "Bezier Systems, Inc.";
+ case "BHTi": return "Breece Hill Technologies";
+ case "biodata": return "Biodata Devices SL";
+ case "BIOS": return "BIOS Corporation";
+ case "BIR": return "Bio-Imaging Research, Inc.";
+ case "BiT": return "BiT Microsystems";
+ case "BITMICRO": return "BiT Microsystems, Inc.";
+ case "Blendlgy": return "Blendology Limited";
+ case "BLOOMBAS": return "Bloombase Technologies Limited";
+ case "BlueArc": return "BlueArc Corporation";
+ case "bluecog": return "bluecog";
+ case "BME-HVT": return "Broadband Infocommunicatons and Electromagnetic Theory Department";
+ case "BNCHMARK": return "Benchmark Tape Systems Corporation";
+ case "Bosch": return "Robert Bosch GmbH";
+ case "Botman": return "Botmanfamily Electronics";
+ case "BoxHill": return "Box Hill Systems Corporation";
+ case "BRDGWRKS": return "Bridgeworks Ltd.";
+ case "BREA": return "BREA Technologies, Inc.";
+ case "BREECE": return "Breece Hill LLC";
+ case "BreqLabs": return "BreqLabs Inc.";
+ case "Broadcom": return "Broadcom Corporation";
+ case "BROCADE": return "Brocade Communications Systems, Incorporated";
+ case "BUFFALO": return "BUFFALO INC.";
+ case "BULL": return "Bull Peripherals Corp.";
+ case "BUSLOGIC": return "BusLogic Inc.";
+ case "BVIRTUAL": return "B-Virtual N.V.";
+ case "CACHEIO": return "CacheIO LLC";
+ case "CalComp": return "CalComp, A Lockheed Company";
+ case "CALCULEX": return "CALCULEX, Inc.";
+ case "CALIPER": return "Caliper (California Peripheral Corp.)";
+ case "CAMBEX": return "Cambex Corporation";
+ case "CAMEOSYS": return "Cameo Systems Inc.";
+ case "CANDERA": return "Candera Inc.";
+ case "CAPTION": return "CAPTION BANK";
+ case "CAST": return "Advanced Storage Tech";
+ case "CATALYST": return "Catalyst Enterprises";
+ case "CCDISK": return "iSCSI Cake";
+ case "CDC": return "Control Data or MPI";
+ case "CDP": return "Columbia Data Products";
+ case "Celsia": return "A M Bromley Limited";
+ case "CenData": return "Central Data Corporation";
+ case "Cereva": return "Cereva Networks Inc.";
+ case "CERTANCE": return "Certance";
+ case "Chantil": return "Chantil Technology";
+ case "CHEROKEE": return "Cherokee Data Systems";
+ case "CHINON": return "Chinon";
+ case "CHRISTMA": return "Christmann Informationstechnik + Medien GmbH & Co KG";
+ case "CIE&YED": return "YE Data, C.Itoh Electric Corp.";
+ case "CIPHER": return "Cipher Data Products";
+ case "Ciprico": return "Ciprico, Inc.";
+ case "CIRRUSL": return "Cirrus Logic Inc.";
+ case "CISCO": return "Cisco Systems, Inc.";
+ case "CLEARSKY": return "ClearSky Data, Inc.";
+ case "CLOVERLF": return "Cloverleaf Communications, Inc";
+ case "CLS": return "Celestica";
+ case "CMD": return "CMD Technology Inc.";
+ case "CMTechno": return "CMTech";
+ case "CNGR SFW": return "Congruent Software, Inc.";
+ case "CNSi": return "Chaparral Network Storage, Inc.";
+ case "CNT": return "Computer Network Technology";
+ case "COBY": return "Coby Electronics Corporation, USA";
+ case "COGITO": return "Cogito";
+ case "COMAY": return "Corerise Electronics";
+ case "COMPAQ": return "Compaq Computer Corporation";
+ case "COMPELNT": return "Compellent Technologies, Inc.";
+ case "COMPORT": return "Comport Corp.";
+ case "COMPSIG": return "Computer Signal Corporation";
+ case "COMPTEX": return "Comptex Pty Limited";
+ case "CONNER": return "Conner Peripherals";
+ case "COPANSYS": return "COPAN SYSTEMS INC";
+ case "CORAID": return "Coraid, Inc";
+ case "CORE": return "Core International, Inc.";
+ case "CORERISE": return "Corerise Electronics";
+ case "COVOTE": return "Covote GmbH & Co KG";
+ case "COWON": return "COWON SYSTEMS, Inc.";
+ case "CPL": return "Cross Products Ltd";
+ case "CPU TECH": return "CPU Technology, Inc.";
+ case "CREO": return "Creo Products Inc.";
+ case "CROSFLD": return "Crosfield Electronics";
+ case "CROSSRDS": return "Crossroads Systems, Inc.";
+ case "crosswlk": return "Crosswalk, Inc.";
+ case "CSCOVRTS": return "Cisco - Veritas";
+ case "CSM, INC": return "Computer SM, Inc.";
+ case "Cunuqui": return "CUNUQUI SLU";
+ case "CYBERNET": return "Cybernetics";
+ case "Cygnal": return "Dekimo";
+ case "CYPRESS": return "Cypress Semiconductor Corp.";
+ case "D Bit": return "Digby's Bitpile, Inc. DBA D Bit";
+ case "DALSEMI": return "Dallas Semiconductor";
+ case "DANEELEC": return "Dane-Elec";
+ case "DANGER": return "Danger Inc.";
+ case "DAT-MG": return "DAT Manufacturers Group";
+ case "Data Com": return "Data Com Information Systems Pty. Ltd.";
+ case "DATABOOK": return "Databook, Inc.";
+ case "DATACOPY": return "Datacopy Corp.";
+ case "DataCore": return "DataCore Software Corporation";
+ case "DataG": return "DataGravity";
+ case "DATAPT": return "Datapoint Corp.";
+ case "DATARAM": return "Dataram Corporation";
+ case "DATC": return "Datum Champion Technology Co., Ltd";
+ case "DAVIS": return "Daviscomms (S) Pte Ltd";
+ case "DCS": return "ShenZhen DCS Group Co.,Ltd";
+ case "DDN": return "DataDirect Networks, Inc.";
+ case "DDRDRIVE": return "DDRdrive LLC";
+ case "DE": return "Dimension Engineering LLC";
+ case "DEC": return "Digital Equipment Corporation";
+ case "DEI": return "Digital Engineering, Inc.";
+ case "DELL": return "Dell, Inc.";
+ case "Dell(tm)": return "Dell, Inc";
+ case "DELPHI": return "Delphi Data Div. of Sparks Industries, Inc.";
+ case "DENON": return "Denon/Nippon Columbia";
+ case "DenOptix": return "DenOptix, Inc.";
+ case "DEST": return "DEST Corp.";
+ case "DFC": return "DavioFranke.com";
+ case "DFT": return "Data Fault Tolerance System CO.,LTD.";
+ case "DGC": return "Data General Corp.";
+ case "DIGIDATA": return "Digi-Data Corporation";
+ case "DigiIntl": return "Digi International";
+ case "Digital": return "Digital Equipment Corporation";
+ case "DILOG": return "Distributed Logic Corp.";
+ case "DISC": return "Document Imaging Systems Corp.";
+ case "DiscSoft": return "Disc Soft Ltd";
+ case "DLNET": return "Driveline";
+ case "DNS": return "Data and Network Security";
+ case "DNUK": return "Digital Networks Uk Ltd";
+ case "DotHill": return "Dot Hill Systems Corp.";
+ case "DP": return "Dell, Inc.";
+ case "DPT": return "Distributed Processing Technology";
+ case "Drewtech": return "Drew Technologies, Inc.";
+ case "DROBO": return "Data Robotics, Inc.";
+ case "DSC": return "DigitalStream Corporation";
+ case "DSI": return "Data Spectrum, Inc.";
+ case "DSM": return "Deterner Steuerungs- und Maschinenbau GmbH & Co.";
+ case "DSNET": return "Cleversafe, Inc.";
+ case "DT": return "Double-Take Software, INC.";
+ case "DTC QUME": return "Data Technology Qume";
+ case "DXIMAGIN": return "DX Imaging";
+ case "E-Motion": return "E-Motion LLC";
+ case "EARTHLAB": return "EarthLabs";
+ case "EarthLCD": return "Earth Computer Technologies, Inc.";
+ case "ECCS": return "ECCS, Inc.";
+ case "ECMA": return "European Computer Manufacturers Association";
+ case "EDS": return "Embedded Data Systems";
+ case "EIM": return "InfoCore";
+ case "ELE Intl": return "ELE International";
+ case "ELEGANT": return "Elegant Invention, LLC";
+ case "Elektron": return "Elektron Music Machines MAV AB";
+ case "elipsan": return "Elipsan UK Ltd.";
+ case "Elms": return "Elms Systems Corporation";
+ case "ELSE": return "ELSE Ltd.";
+ case "ELSEC": return "Littlemore Scientific";
+ case "EMASS": return "EMASS, Inc.";
+ case "EMC": return "EMC Corp.";
+ case "EMiT": return "EMiT Conception Eletronique";
+ case "EMTEC": return "EMTEC Magnetics";
+ case "EMULEX": return "Emulex";
+ case "ENERGY-B": return "Energybeam Corporation";
+ case "ENGENIO": return "Engenio Information Technologies, Inc.";
+ case "ENMOTUS": return "Enmotus Inc";
+ case "Entacore": return "Entacore";
+ case "EPOS": return "EPOS Technologies Ltd.";
+ case "EPSON": return "Epson";
+ case "EQLOGIC": return "EqualLogic";
+ case "Eris/RSI": return "RSI Systems, Inc.";
+ case "ETERNE": return "EterneData Technology Co.,Ltd.(China PRC.)";
+ case "EuroLogc": return "Eurologic Systems Limited";
+ case "evolve": return "Evolution Technologies, Inc";
+ case "EXABYTE": return "Exabyte Corp.";
+ case "EXATEL": return "Exatelecom Co., Ltd.";
+ case "EXAVIO": return "Exavio, Inc.";
+ case "Exsequi": return "Exsequi Ltd";
+ case "Exxotest": return "Annecy Electronique";
+ case "FAIRHAVN": return "Fairhaven Health, LLC";
+ case "FALCON": return "FalconStor, Inc.";
+ case "FDS": return "Formation Data Systems";
+ case "FFEILTD": return "FujiFilm Electonic Imaging Ltd";
+ case "Fibxn": return "Fiberxon, Inc.";
+ case "FID": return "First International Digital, Inc.";
+ case "FILENET": return "FileNet Corp.";
+ case "FirmFact": return "Firmware Factory Ltd";
+ case "FLYFISH": return "Flyfish Technologies";
+ case "FOXCONN": return "Foxconn Technology Group";
+ case "FRAMDRV": return "FRAMEDRIVE Corp.";
+ case "FREECION": return "Nable Communications, Inc.";
+ case "FRESHDTK": return "FreshDetect GmbH";
+ case "FSC": return "Fujitsu Siemens Computers";
+ case "FTPL": return "Frontline Technologies Pte Ltd";
+ case "FUJI": return "Fuji Electric Co., Ltd. (Japan)";
+ case "FUJIFILM": return "Fuji Photo Film, Co., Ltd.";
+ case "FUJITSU": return "Fujitsu";
+ case "FUNAI": return "Funai Electric Co., Ltd.";
+ case "FUSIONIO": return "Fusion-io Inc.";
+ case "FUTURED": return "Future Domain Corp.";
+ case "G&D": return "Giesecke & Devrient GmbH";
+ case "G.TRONIC": return "Globaltronic - Electronica e Telecomunicacoes, S.A.";
+ case "Gadzoox": return "Gadzoox Networks, Inc.";
+ case "Gammaflx": return "Gammaflux L.P.";
+ case "GDI": return "Generic Distribution International";
+ case "GEMALTO": return "gemalto";
+ case "Gen_Dyn": return "General Dynamics";
+ case "Generic": return "Generic Technology Co., Ltd.";
+ case "GENSIG": return "General Signal Networks";
+ case "GEO": return "Green Energy Options Ltd";
+ case "GIGATAPE": return "GIGATAPE GmbH";
+ case "GIGATRND": return "GigaTrend Incorporated";
+ case "Global": return "Global Memory Test Consortium";
+ case "Gnutek": return "Gnutek Ltd.";
+ case "Goidelic": return "Goidelic Precision, Inc.";
+ case "GoldKey": return "GoldKey Security Corporation";
+ case "GoldStar": return "LG Electronics Inc.";
+ case "GOOGLE": return "Google, Inc.";
+ case "GORDIUS": return "Gordius";
+ case "GOULD": return "Gould";
+ case "HAGIWARA": return "Hagiwara Sys-Com Co., Ltd.";
+ case "HAPP3": return "Inventec Multimedia and Telecom co., ltd";
+ case "HDS": return "Horizon Data Systems, Inc.";
+ case "Helldyne": return "Helldyne, Inc";
+ case "Heydays": return "Mazo Technology Co., Ltd.";
+ case "HGST": return "HGST a Western Digital Company";
+ case "HI-TECH": return "HI-TECH Software Pty. Ltd.";
+ case "HITACHI": return "Hitachi America Ltd or Nissei Sangyo America Ltd";
+ case "HL-DT-ST": return "Hitachi-LG Data Storage, Inc.";
+ case "HONEYWEL": return "Honeywell Inc.";
+ case "Hoptroff": return "HexWax Ltd";
+ case "HORIZONT": return "Horizontigo Software";
+ case "HP": return "Hewlett Packard";
+ case "HPE": return "Hewlett Packard Enterprise";
+ case "HPI": return "HP Inc.";
+ case "HPQ": return "Hewlett Packard";
+ case "HUALU": return "CHINA HUALU GROUP CO., LTD";
+ case "HUASY": return "Huawei Symantec Technologies Co., Ltd.";
+ case "HYLINX": return "Hylinx Ltd.";
+ case "HYUNWON": return "HYUNWON inc";
+ case "i-cubed": return "i-cubed ltd.";
+ case "IBM": return "International Business Machines";
+ case "Icefield": return "Icefield Tools Corporation";
+ case "Iceweb": return "Iceweb Storage Corp";
+ case "ICL": return "ICL";
+ case "ICP": return "ICP vortex Computersysteme GmbH";
+ case "IDE": return "International Data Engineering, Inc.";
+ case "IDG": return "Interface Design Group";
+ case "IET": return "ISCSI ENTERPRISE TARGET";
+ case "IFT": return "Infortrend Technology, Inc.";
+ case "IGR": return "Intergraph Corp.";
+ case "IMAGINE": return "Imagine Communications Corp.";
+ case "IMAGO": return "IMAGO SOFTWARE SL";
+ case "IMATION": return "Imation";
+ case "IMPLTD": return "Integrated Micro Products Ltd.";
+ case "IMPRIMIS": return "Imprimis Technology Inc.";
+ case "INCIPNT": return "Incipient Technologies Inc.";
+ case "INCITS": return "InterNational Committee for Information Technology";
+ case "INDCOMP": return "Industrial Computing Limited";
+ case "Indigita": return "Indigita Corporation";
+ case "INFOCORE": return "InfoCore";
+ case "INITIO": return "Initio Corporation";
+ case "INRANGE": return "INRANGE Technologies Corporation";
+ case "Insight": return "L-3 Insight Technology Inc";
+ case "INSITE": return "Insite Peripherals";
+ case "integrix": return "Integrix, Inc.";
+ case "INTEL": return "Intel Corporation";
+ case "Intransa": return "Intransa, Inc.";
+ case "IOC": return "I/O Concepts, Inc.";
+ case "iofy": return "iofy Corporation";
+ case "IOMEGA": return "Iomega";
+ case "IOT": return "IO Turbine, Inc.";
+ case "iPaper": return "intelliPaper, LLC";
+ case "iqstor": return "iQstor Networks, Inc.";
+ case "iQue": return "iQue";
+ case "ISi": return "Information Storage inc.";
+ case "Isilon": return "Isilon Systems, Inc.";
+ case "ISO": return "International Standards Organization";
+ case "iStor": return "iStor Networks, Inc.";
+ case "ITC": return "International Tapetronics Corporation";
+ case "iTwin": return "iTwin Pte Ltd";
+ case "IVIVITY": return "iVivity, Inc.";
+ case "IVMMLTD": return "InnoVISION Multimedia Ltd.";
+ case "JABIL001": return "Jabil Circuit";
+ case "JETWAY": return "Jetway Information Co., Ltd";
+ case "JMR": return "JMR Electronics Inc.";
+ case "JOFEMAR": return "Jofemar";
+ case "JOLLYLOG": return "Jolly Logic";
+ case "JPC Inc.": return "JPC Inc.";
+ case "JSCSI": return "jSCSI Project";
+ case "Juniper": return "Juniper Networks";
+ case "JVC": return "JVC Information Products Co.";
+ case "KASHYA": return "Kashya, Inc.";
+ case "KENNEDY": return "Kennedy Company";
+ case "KENWOOD": return "KENWOOD Corporation";
+ case "KEWL": return "Shanghai KEWL Imp&Exp Co., Ltd.";
+ case "Key Tech": return "Key Technologies, Inc";
+ case "KMNRIO": return "Kaminario Technologies Ltd.";
+ case "KODAK": return "Eastman Kodak";
+ case "KONAN": return "Konan";
+ case "koncepts": return "koncepts International Ltd.";
+ case "KONICA": return "Konica Japan";
+ case "KOVE": return "KOVE";
+ case "KSCOM": return "KSCOM Co. Ltd.,";
+ case "KUDELSKI": return "Nagravision SA - Kudelski Group";
+ case "Kyocera": return "Kyocera Corporation";
+ case "Lapida": return "Gonmalo Electronics";
+ case "LAPINE": return "Lapine Technology";
+ case "LASERDRV": return "LaserDrive Limited";
+ case "LASERGR": return "Lasergraphics, Inc.";
+ case "LeapFrog": return "LeapFrog Enterprises, Inc.";
+ case "LEFTHAND": return "LeftHand Networks";
+ case "Leica": return "Leica Camera AG";
+ case "Lexar": return "Lexar Media, Inc.";
+ case "LEYIO": return "LEYIO";
+ case "LG": return "LG Electronics Inc.";
+ case "LGE": return "LG Electronics Inc.";
+ case "LIBNOVA": return "LIBNOVA, SL Digital Preservation Systems";
+ case "LION": return "Lion Optics Corporation";
+ case "LMS": return "Laser Magnetic Storage International Company";
+ case "LoupTech": return "Loup Technologies, Inc.";
+ case "LSI": return "LSI Corp. (was LSI Logic Corp.)";
+ case "LSILOGIC": return "LSI Logic Storage Systems, Inc.";
+ case "LTO-CVE": return "Linear Tape - Open, Compliance Verification Entity";
+ case "LUXPRO": return "Luxpro Corporation";
+ case "MacroSAN": return "MacroSAN Technologies Co., Ltd.";
+ case "Malakite": return "Malachite Technologies (New VID is: Sandial)";
+ case "MarcBoon": return "marcboon.com";
+ case "Marner": return "Marner Storage Technologies, Inc.";
+ case "MARVELL": return "Marvell Semiconductor, Inc.";
+ case "Matrix": return "Matrix Orbital Corp.";
+ case "MATSHITA": return "Matsushita";
+ case "MAXELL": return "Hitachi Maxell, Ltd.";
+ case "MAXIM-IC": return "Maxim Integrated Products";
+ case "MaxOptix": return "Maxoptix Corp.";
+ case "MAXSTRAT": return "Maximum Strategy, Inc.";
+ case "MAXTOR": return "Maxtor Corp.";
+ case "MaXXan": return "MaXXan Systems, Inc.";
+ case "MAYCOM": return "maycom Co., Ltd.";
+ case "MBEAT": return "K-WON C&C Co.,Ltd";
+ case "MCC": return "Measurement Computing Corporation";
+ case "McDATA": return "McDATA Corporation";
+ case "MCUBE": return "Mcube Technology Co., Ltd.";
+ case "MDI": return "Micro Design International, Inc.";
+ case "MEADE": return "Meade Instruments Corporation";
+ case "mediamat": return "mediamatic";
+ case "MegaElec": return "Mega Electronics Ltd";
+ case "MEII": return "Mountain Engineering II, Inc.";
+ case "MELA": return "Mitsubishi Electronics America";
+ case "MELCO": return "Mitsubishi Electric (Japan)";
+ case "mellanox": return "Mellanox Technologies Ltd.";
+ case "MEMOREX": return "Memorex Telex Japan Ltd.";
+ case "MEMREL": return "Memrel Corporation";
+ case "MEMTECH": return "MemTech Technology";
+ case "Mendocin": return "Mendocino Software";
+ case "MendoCno": return "Mendocino Software";
+ case "MERIDATA": return "Oy Meridata Finland Ltd";
+ case "METHODEI": return "Methode Electronics India pvt ltd";
+ case "METRUM": return "Metrum, Inc.";
+ case "MHTL": return "Matsunichi Hi-Tech Limited";
+ case "MICROBTX": return "Microbotics Inc.";
+ case "Microchp": return "Microchip Technology, Inc.";
+ case "MICROLIT": return "Microlite Corporation";
+ case "MICRON": return "Micron Technology, Inc.";
+ case "MICROP": return "Micropolis";
+ case "MICROTEK": return "Microtek Storage Corp";
+ case "Minitech": return "Minitech (UK) Limited";
+ case "Minolta": return "Minolta Corporation";
+ case "MINSCRIB": return "Miniscribe";
+ case "MiraLink": return "MiraLink Corporation";
+ case "Mirifica": return "Mirifica s.r.l.";
+ case "MITSUMI": return "Mitsumi Electric Co., Ltd.";
+ case "MKM": return "Mitsubishi Kagaku Media Co., LTD.";
+ case "Mobii": return "Mobii Systems (Pty.) Ltd.";
+ case "MOL": return "Petrosoft Sdn. Bhd.";
+ case "MOSAID": return "Mosaid Technologies Inc.";
+ case "MOTOROLA": return "Motorola";
+ case "MP-400": return "Daiwa Manufacturing Limited";
+ case "MPC": return "MPC Corporation";
+ case "MPCCORP": return "MPC Computers";
+ case "MPEYE": return "Touchstone Technology Co., Ltd";
+ case "MPIO": return "DKT Co.,Ltd";
+ case "MPM": return "Mitsubishi Paper Mills, Ltd.";
+ case "MPMan": return "MPMan.com, Inc.";
+ case "MSFT": return "Microsoft Corporation";
+ case "MSI": return "Micro-Star International Corp.";
+ case "MST": return "Morning Star Technologies, Inc.";
+ case "MSystems": return "M-Systems Flash Disk Pioneers";
+ case "MTI": return "MTI Technology Corporation";
+ case "MTNGATE": return "MountainGate Data Systems";
+ case "MXI": return "Memory Experts International";
+ case "nac": return "nac Image Technology Inc.";
+ case "NAGRA": return "Nagravision SA - Kudelski Group";
+ case "NAI": return "North Atlantic Industries";
+ case "NAKAMICH": return "Nakamichi Corporation";
+ case "NatInst": return "National Instruments";
+ case "NatSemi": return "National Semiconductor Corp.";
+ case "NCITS": return "InterNational Committee for Information Technology Standards (INCITS)";
+ case "NCL": return "NCL America";
+ case "NCR": return "NCR Corporation";
+ case "NDBTECH": return "NDB Technologie Inc.";
+ case "Neartek": return "Neartek, Inc.";
+ case "NEC": return "NEC";
+ case "NETAPP": return "NetApp, Inc. (was Network Appliance)";
+ case "NetBSD": return "The NetBSD Foundation";
+ case "Netcom": return "Netcom Storage";
+ case "NETENGIN": return "NetEngine, Inc.";
+ case "NEWISYS": return "Newisys Data Storage";
+ case "Newtech": return "Newtech Co., Ltd.";
+ case "NEXSAN": return "Nexsan Technologies, Ltd.";
+ case "NFINIDAT": return "Infinidat Ltd.";
+ case "NHR": return "NH Research, Inc.";
+ case "Nike": return "Nike, Inc.";
+ case "Nimble": return "Nimble Storage";
+ case "NISCA": return "NISCA Inc.";
+ case "NISHAN": return "Nishan Systems Inc.";
+ case "Nitz": return "Nitz Associates, Inc.";
+ case "NKK": return "NKK Corp.";
+ case "NRC": return "Nakamichi Research Corporation";
+ case "NSD": return "Nippon Systems Development Co.,Ltd.";
+ case "NSM": return "NSM Jukebox GmbH";
+ case "nStor": return "nStor Technologies, Inc.";
+ case "NT": return "Northern Telecom";
+ case "NUCONNEX": return "NuConnex";
+ case "NUSPEED": return "NuSpeed, Inc.";
+ case "NVIDIA": return "NVIDIA Corporation";
+ case "NVMe": return "NVM Express Working Group";
+ case "OAI": return "Optical Access International";
+ case "OCE": return "Oce Graphics";
+ case "ODS": return "ShenZhen DCS Group Co.,Ltd";
+ case "OHDEN": return "Ohden Co., Ltd.";
+ case "OKI": return "OKI Electric Industry Co.,Ltd (Japan)";
+ case "Olidata": return "Olidata S.p.A.";
+ case "OMI": return "Optical Media International";
+ case "OMNIFI": return "Rockford Corporation - Omnifi Media";
+ case "OMNIS": return "OMNIS Company (FRANCE)";
+ case "Ophidian": return "Ophidian Designs";
+ case "opslag": return "Tyrone Systems";
+ case "Optelec": return "Optelec BV";
+ case "Optiarc": return "Sony Optiarc Inc.";
+ case "OPTIMEM": return "Cipher/Optimem";
+ case "OPTOTECH": return "Optotech";
+ case "ORACLE": return "Oracle Corporation";
+ case "ORANGE": return "Orange Micro, Inc.";
+ case "ORCA": return "Orca Technology";
+ case "Origin": return "Origin Energy";
+ case "OSI": return "Optical Storage International";
+ case "OSNEXUS": return "OS NEXUS, Inc.";
+ case "OTL": return "OTL Engineering";
+ case "OVERLAND": return "Overland Storage Inc.";
+ case "pacdigit": return "Pacific Digital Corp";
+ case "Packard": return "Parkard Bell";
+ case "Panasas": return "Panasas, Inc.";
+ case "PARALAN": return "Paralan Corporation";
+ case "PASCOsci": return "Pasco Scientific";
+ case "PATHLGHT": return "Pathlight Technology, Inc.";
+ case "PCS": return "Pro Charging Systems, LLC";
+ case "PerStor": return "Perstor";
+ case "PERTEC": return "Pertec Peripherals Corporation";
+ case "PFTI": return "Performance Technology Inc.";
+ case "PFU": return "PFU Limited";
+ case "Phigment": return "Phigment Technologies";
+ case "PHILIPS": return "Philips Electronics";
+ case "PICO": return "Packard Instrument Company";
+ case "PIK": return "TECHNILIENT & MCS";
+ case "Pillar": return "Pillar Data Systems";
+ case "PIONEER": return "Pioneer Electronic Corp.";
+ case "Pirus": return "Pirus Networks";
+ case "PIVOT3": return "Pivot3, Inc.";
+ case "PLASMON": return "Plasmon Data";
+ case "Pliant": return "Pliant Technology, Inc.";
+ case "PMCSIERA": return "PMC-Sierra";
+ case "PME": return "Precision Measurement Engineering";
+ case "PNNMed": return "PNN Medical SA";
+ case "POKEN": return "Poken SA";
+ case "POLYTRON": return "PT. HARTONO ISTANA TEKNOLOGI";
+ case "PRAIRIE": return "PrairieTek";
+ case "PREPRESS": return "PrePRESS Solutions";
+ case "PRESOFT": return "PreSoft Architects";
+ case "PRESTON": return "Preston Scientific";
+ case "PRIAM": return "Priam";
+ case "PRIMAGFX": return "Primagraphics Ltd";
+ case "PRIMOS": return "Primos";
+ case "PROCOM": return "Procom Technology";
+ case "PROLIFIC": return "Prolific Technology Inc.";
+ case "PROMISE": return "PROMISE TECHNOLOGY, Inc";
+ case "PROSTOR": return "ProStor Systems, Inc.";
+ case "PROSUM": return "PROSUM";
+ case "PROWARE": return "Proware Technology Corp.";
+ case "PTI": return "Peripheral Technology Inc.";
+ case "PTICO": return "Pacific Technology International";
+ case "PURE": return "PURE Storage";
+ case "Qi-Hardw": return "Qi Hardware";
+ case "QIC": return "Quarter-Inch Cartridge Drive Standards, Inc.";
+ case "QLogic": return "QLogic Corporation";
+ case "QNAP": return "QNAP Systems";
+ case "Qsan": return "QSAN Technology, Inc.";
+ case "QUALSTAR": return "Qualstar";
+ case "QUANTEL": return "Quantel Ltd.";
+ case "QUANTUM": return "Quantum Corp.";
+ case "QUIX": return "Quix Computerware AG";
+ case "R-BYTE": return "R-Byte, Inc.";
+ case "RACALREC": return "Racal Recorders";
+ case "RADITEC": return "Radikal Technologies Deutschland GmbH";
+ case "RADSTONE": return "Radstone Technology";
+ case "RAIDINC": return "RAID Inc.";
+ case "RASSYS": return "Rasilient Systems Inc.";
+ case "RASVIA": return "Rasvia Systems, Inc.";
+ case "rave-mp": return "Go Video";
+ case "RDKMSTG": return "MMS Dipl. Ing. Rolf-Dieter Klein";
+ case "RDStor": return "Rorke China";
+ case "Readboy": return "Readboy Ltd Co.";
+ case "Realm": return "Realm Systems";
+ case "realtek": return "Realtek Semiconductor Corp.";
+ case "REDUXIO": return "Reduxio Systems Ltd.";
+ case "rehanltd": return "Rehan Electronics Ltd";
+ case "REKA": return "REKA HEALTH PTE LTD";
+ case "RELDATA": return "RELDATA Inc";
+ case "RENAGmbH": return "RENA GmbH";
+ case "ReThinkM": return "RETHINK MEDICAL, INC";
+ case "Revivio": return "Revivio, Inc.";
+ case "RGBLaser": return "RGB Lasersysteme GmbH";
+ case "RGI": return "Raster Graphics, Inc.";
+ case "RHAPSODY": return "Rhapsody Networks, Inc.";
+ case "RHS": return "Racal-Heim Systems GmbH";
+ case "RICOH": return "Ricoh";
+ case "RODIME": return "Rodime";
+ case "Rorke": return "RD DATA Technology (ShenZhen) Limited";
+ case "Royaltek": return "RoyalTek company Ltd.";
+ case "RPS": return "RPS";
+ case "RTI": return "Reference Technology";
+ case "S-D": return "Sauer-Danfoss";
+ case "S-flex": return "Storageflex Inc";
+ case "S-SYSTEM": return "S-SYSTEM";
+ case "S1": return "storONE";
+ case "SAMSUNG": return "Samsung Electronics Co., Ltd.";
+ case "SAN": return "Storage Area Networks, Ltd.";
+ case "Sandial": return "Sandial Systems, Inc.";
+ case "SanDisk": return "SanDisk Corporation";
+ case "SANKYO": return "Sankyo Seiki";
+ case "SANRAD": return "SANRAD Inc.";
+ case "SANYO": return "SANYO Electric Co., Ltd.";
+ case "SC.Net": return "StorageConnections.Net";
+ case "SCALE": return "Scale Computing, Inc.";
+ case "SCIENTEK": return "SCIENTEK CORP";
+ case "SCInc.": return "Storage Concepts, Inc.";
+ case "SCREEN": return "Dainippon Screen Mfg. Co., Ltd.";
+ case "SDI": return "Storage Dimensions, Inc.";
+ case "SDS": return "Solid Data Systems";
+ case "SEAC": return "SeaChange International, Inc.";
+ case "SEAGATE": return "Seagate";
+ case "SEAGRAND": return "SEAGRAND In Japan";
+ case "Seanodes": return "Seanodes";
+ case "Sec. Key": return "SecureKey Technologies Inc.";
+ case "SEQUOIA": return "Sequoia Advanced Technologies, Inc.";
+ case "SGI": return "Silicon Graphics International";
+ case "Shannon": return "Shannon Systems Co., Ltd.";
+ case "Shinko": return "Shinko Electric Co., Ltd.";
+ case "SIEMENS": return "Siemens";
+ case "SigmaTel": return "SigmaTel, Inc.";
+ case "SII": return "Seiko Instruments Inc.";
+ case "SIMPLE": return "SimpleTech, Inc.";
+ case "SIVMSD": return "IMAGO SOFTWARE SL";
+ case "SKhynix": return "SK hynix Inc.";
+ case "SLCNSTOR": return "SiliconStor, Inc.";
+ case "SLI": return "Sierra Logic, Inc.";
+ case "SMCI": return "Super Micro Computer, Inc.";
+ case "SmrtStor": return "Smart Storage Systems";
+ case "SMS": return "Scientific Micro Systems/OMTI";
+ case "SMSC": return "SMSC Storage, Inc.";
+ case "SMX": return "Smartronix, Inc.";
+ case "SNYSIDE": return "Sunnyside Computing Inc.";
+ case "SoftLock": return "Softlock Digital Security Provider";
+ case "SolidFir": return "SolidFire, Inc.";
+ case "SONIC": return "Sonic Solutions";
+ case "SoniqCas": return "SoniqCast";
+ case "SONY": return "Sony Corporation Japan";
+ case "SOUL": return "Soul Storage Technology (Wuxi) Co., Ltd";
+ case "SPD": return "Storage Products Distribution, Inc.";
+ case "SPECIAL": return "Special Computing Co.";
+ case "SPECTRA": return "Spectra Logic, a Division of Western Automation Labs, Inc.";
+ case "SPERRY": return "Sperry";
+ case "Spintso": return "Spintso International AB";
+ case "STARBORD": return "Starboard Storage Systems, Inc.";
+ case "STARWIND": return "StarWind Software, Inc.";
+ case "STEC": return "STEC, Inc.";
+ case "Sterling": return "Sterling Diagnostic Imaging, Inc.";
+ case "STK": return "Storage Technology Corporation";
+ case "STNWOOD": return "Stonewood Group";
+ case "STONEFLY": return "StoneFly Networks, Inc.";
+ case "STOR": return "StorageNetworks, Inc.";
+ case "STORAPP": return "StorageApps, Inc.";
+ case "STORCIUM": return "Intelligent Systems Services Inc.";
+ case "STORCOMP": return "Storage Computer Corporation";
+ case "STORM": return "Storm Technology, Inc.";
+ case "StorMagc": return "StorMagic";
+ case "Stratus": return "Stratus Technologies";
+ case "StrmLgc": return "StreamLogic Corp.";
+ case "SUMITOMO": return "Sumitomo Electric Industries, Ltd.";
+ case "SUN": return "Sun Microsystems, Inc.";
+ case "SUNCORP": return "SunCorporation";
+ case "suntx": return "Suntx System Co., Ltd";
+ case "SUSE": return "SUSE Linux";
+ case "Swinxs": return "Swinxs BV";
+ case "SYMANTEC": return "Symantec Corporation";
+ case "SYMBIOS": return "Symbios Logic Inc.";
+ case "SYMWAVE": return "Symwave, Inc.";
+ case "SYNCSORT": return "Syncsort Incorporated";
+ case "SYNERWAY": return "Synerway";
+ case "SYNOLOGY": return "Synology, Inc.";
+ case "SyQuest": return "SyQuest Technology, Inc.";
+ case "SYSGEN": return "Sysgen";
+ case "T-MITTON": return "Transmitton England";
+ case "T-MOBILE": return "T-Mobile USA, Inc.";
+ case "T11": return "INCITS Technical Committee T11";
+ case "TALARIS": return "Talaris Systems, Inc.";
+ case "TALLGRAS": return "Tallgrass Technologies";
+ case "TANDBERG": return "Tandberg Data A/S";
+ case "TANDEM": return "Tandem";
+ case "TANDON": return "Tandon";
+ case "TCL": return "TCL Shenzhen ASIC MIcro-electronics Ltd";
+ case "TDK": return "TDK Corporation";
+ case "TEAC": return "TEAC Japan";
+ case "TECOLOTE": return "Tecolote Designs";
+ case "TEGRA": return "Tegra Varityper";
+ case "Teilch": return "Teilch";
+ case "Tek": return "Tektronix";
+ case "TELLERT": return "Tellert Elektronik GmbH";
+ case "TENTIME": return "Laura Technologies, Inc.";
+ case "TFDATACO": return "TimeForge";
+ case "TGEGROUP": return "TGE Group Co.,LTD.";
+ case "Thecus": return "Thecus Technology Corp.";
+ case "TI-DSG": return "Texas Instruments";
+ case "TiGi": return "TiGi Corporation";
+ case "TILDESGN": return "Tildesign bv";
+ case "Tite": return "Tite Technology Limited";
+ case "TKS Inc.": return "TimeKeeping Systems, Inc.";
+ case "TLMKS": return "Telemakus LLC";
+ case "TMS": return "Texas Memory Systems, Inc.";
+ case "TMS100": return "TechnoVas";
+ case "TOLISGRP": return "The TOLIS Group";
+ case "TOSHIBA": return "Toshiba Japan";
+ case "TOYOU": return "TOYOU FEIJI ELECTRONICS CO.,LTD.";
+ case "Tracker": return "Tracker, LLC";
+ case "TRIOFLEX": return "Trioflex Oy";
+ case "TRIPACE": return "Tripace";
+ case "TRLogger": return "TrueLogger Ltd.";
+ case "TROIKA": return "Troika Networks, Inc.";
+ case "TRULY": return "TRULY Electronics MFG. LTD.";
+ case "TRUSTED": return "Trusted Data Corporation";
+ case "TSSTcorp": return "Toshiba Samsung Storage Technology Corporation";
+ case "TZM": return "TZ Medical";
+ case "UD-DVR": return "Bigstone Project.";
+ case "UDIGITAL": return "United Digital Limited";
+ case "UIT": return "United Infomation Technology";
+ case "ULTRA": return "UltraStor Corporation";
+ case "UNISTOR": return "Unistor Networks, Inc.";
+ case "UNISYS": return "Unisys";
+ case "USCORE": return "Underscore, Inc.";
+ case "USDC": return "US Design Corp.";
+ case "Top VASCO": return "Vasco Data Security";
+ case "VDS": return "Victor Data Systems Co., Ltd.";
+ case "VELDANA": return "VELDANA MEDICAL SA";
+ case "VENTANA": return "Ventana Medical Systems";
+ case "Verari": return "Verari Systems, Inc.";
+ case "VERBATIM": return "Verbatim Corporation";
+ case "Vercet": return "Vercet LLC";
+ case "VERITAS": return "VERITAS Software Corporation";
+ case "Vexata": return "Vexata Inc";
+ case "VEXCEL": return "VEXCEL IMAGING GmbH";
+ case "VICOMSL1": return "Vicom Systems, Inc.";
+ case "VicomSys": return "Vicom Systems, Inc.";
+ case "VIDEXINC": return "Videx, Inc.";
+ case "VIOLIN": return "Violin Memory, Inc.";
+ case "VIRIDENT": return "Virident Systems, Inc.";
+ case "VITESSE": return "Vitesse Semiconductor Corporation";
+ case "VIXEL": return "Vixel Corporation";
+ case "VLS": return "Van Lent Systems BV";
+ case "VMAX": return "VMAX Technologies Corp.";
+ case "VMware": return "VMware Inc.";
+ case "Vobis": return "Vobis Microcomputer AG";
+ case "VOLTAIRE": return "Voltaire Ltd.";
+ case "VRC": return "Vermont Research Corp.";
+ case "VRugged": return "Vanguard Rugged Storage";
+ case "VTGadget": return "Vermont Gadget Company";
+ case "Waitec": return "Waitec NV";
+ case "WangDAT": return "WangDAT";
+ case "WANGTEK": return "Wangtek";
+ case "Wasabi": return "Wasabi Systems";
+ case "WAVECOM": return "Wavecom";
+ case "WD": return "Western Digital Corporation";
+ case "WDC": return "Western Digital Corporation";
+ case "WDIGTL": return "Western Digital";
+ case "WDTI": return "Western Digital Technologies, Inc.";
+ case "WEARNES": return "Wearnes Technology Corporation";
+ case "WeeraRes": return "Weera Research Pte Ltd";
+ case "Wildflwr": return "Wildflower Technologies, Inc.";
+ case "WSC0001": return "Wisecom, Inc.";
+ case "X3": return "InterNational Committee for Information Technology Standards (INCITS)";
+ case "XEBEC": return "Xebec Corporation";
+ case "XENSRC": return "XenSource, Inc.";
+ case "Xerox": return "Xerox Corporation";
+ case "XIOtech": return "XIOtech Corporation";
+ case "XIRANET": return "Xiranet Communications GmbH";
+ case "XIV": return "XIV";
+ case "XtremIO": return "XtremIO";
+ case "XYRATEX": return "Xyratex";
+ case "YINHE": return "NUDT Computer Co.";
+ case "YIXUN": return "Yixun Electronic Co.,Ltd.";
+ case "YOTTA": return "YottaYotta, Inc.";
+ case "Zarva": return "Zarva Digital Technology Co., Ltd.";
+ case "ZETTA": return "Zetta Systems, Inc.";
+ case "ZTE": return "ZTE Corporation";
+ case "ZVAULT": return "Zetavault";
+ default: return scsiVendorString;
}
}
}
diff --git a/SecureDigital/CSD.cs b/SecureDigital/CSD.cs
index 548d300..eb1f3cf 100644
--- a/SecureDigital/CSD.cs
+++ b/SecureDigital/CSD.cs
@@ -126,8 +126,7 @@ namespace Aaru.Decoders.SecureDigital
if(csd.Structure == 0)
{
- csd.Size =
- (ushort)(((response[6] & 0x03) << 10) + (response[7] << 2) + ((response[8] & 0xC0) >> 6));
+ csd.Size = (ushort)(((response[6] & 0x03) << 10) + (response[7] << 2) + ((response[8] & 0xC0) >> 6));
csd.ReadCurrentAtVddMin = (byte)((response[8] & 0x38) >> 3);
csd.ReadCurrentAtVddMax = (byte)(response[8] & 0x07);
diff --git a/SecureDigital/VendorString.cs b/SecureDigital/VendorString.cs
index 0ec36a1..66ea127 100644
--- a/SecureDigital/VendorString.cs
+++ b/SecureDigital/VendorString.cs
@@ -38,11 +38,11 @@ namespace Aaru.Decoders.SecureDigital
{
switch(sdVendorId)
{
- case 0x02: return"Kingston";
- case 0x03: return"Sandisk";
- case 0x27: return"CnMemory";
- case 0xAA: return"QEMU";
- default: return$"Unknown manufacturer ID 0x{sdVendorId:X2}";
+ case 0x02: return "Kingston";
+ case 0x03: return "Sandisk";
+ case 0x27: return "CnMemory";
+ case 0xAA: return "QEMU";
+ default: return $"Unknown manufacturer ID 0x{sdVendorId:X2}";
}
}
}
diff --git a/Sega/CD.cs b/Sega/CD.cs
index 5cd87be..05eb042 100644
--- a/Sega/CD.cs
+++ b/Sega/CD.cs
@@ -52,64 +52,64 @@ namespace Aaru.Decoders.Sega
if(ipbin_sector.Length < 512)
return null;
- var ipbin = Marshal.ByteArrayToStructureLittleEndian(ipbin_sector);
+ IPBin ipbin = Marshal.ByteArrayToStructureLittleEndian(ipbin_sector);
AaruConsole.DebugWriteLine("SegaCD IP.BIN Decoder", "segacd_ipbin.volume_name = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.volume_name));
+ Encoding.ASCII.GetString(ipbin.volume_name));
AaruConsole.DebugWriteLine("SegaCD IP.BIN Decoder", "segacd_ipbin.system_name = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.system_name));
+ Encoding.ASCII.GetString(ipbin.system_name));
AaruConsole.DebugWriteLine("SegaCD IP.BIN Decoder", "segacd_ipbin.volume_version = \"{0:X}\"",
- ipbin.volume_version);
+ ipbin.volume_version);
AaruConsole.DebugWriteLine("SegaCD IP.BIN Decoder", "segacd_ipbin.volume_type = 0x{0:X8}",
- ipbin.volume_type);
+ ipbin.volume_type);
AaruConsole.DebugWriteLine("SegaCD IP.BIN Decoder", "segacd_ipbin.system_version = 0x{0:X8}",
- ipbin.system_version);
+ ipbin.system_version);
AaruConsole.DebugWriteLine("SegaCD IP.BIN Decoder", "segacd_ipbin.ip_address = 0x{0:X8}", ipbin.ip_address);
AaruConsole.DebugWriteLine("SegaCD IP.BIN Decoder", "segacd_ipbin.ip_loadsize = {0}", ipbin.ip_loadsize);
AaruConsole.DebugWriteLine("SegaCD IP.BIN Decoder", "segacd_ipbin.ip_entry_address = 0x{0:X8}",
- ipbin.ip_entry_address);
+ ipbin.ip_entry_address);
AaruConsole.DebugWriteLine("SegaCD IP.BIN Decoder", "segacd_ipbin.ip_work_ram_size = {0}",
- ipbin.ip_work_ram_size);
+ ipbin.ip_work_ram_size);
AaruConsole.DebugWriteLine("SegaCD IP.BIN Decoder", "segacd_ipbin.sp_address = 0x{0:X8}", ipbin.sp_address);
AaruConsole.DebugWriteLine("SegaCD IP.BIN Decoder", "segacd_ipbin.sp_loadsize = {0}", ipbin.sp_loadsize);
AaruConsole.DebugWriteLine("SegaCD IP.BIN Decoder", "segacd_ipbin.sp_entry_address = 0x{0:X8}",
- ipbin.sp_entry_address);
+ ipbin.sp_entry_address);
AaruConsole.DebugWriteLine("SegaCD IP.BIN Decoder", "segacd_ipbin.sp_work_ram_size = {0}",
- ipbin.sp_work_ram_size);
+ ipbin.sp_work_ram_size);
AaruConsole.DebugWriteLine("SegaCD IP.BIN Decoder", "segacd_ipbin.release_date = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.release_date));
+ Encoding.ASCII.GetString(ipbin.release_date));
AaruConsole.DebugWriteLine("SegaCD IP.BIN Decoder", "segacd_ipbin.release_date2 = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.release_date2));
+ Encoding.ASCII.GetString(ipbin.release_date2));
AaruConsole.DebugWriteLine("SegaCD IP.BIN Decoder", "segacd_ipbin.developer_code = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.developer_code));
+ Encoding.ASCII.GetString(ipbin.developer_code));
AaruConsole.DebugWriteLine("SegaCD IP.BIN Decoder", "segacd_ipbin.domestic_title = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.domestic_title));
+ Encoding.ASCII.GetString(ipbin.domestic_title));
AaruConsole.DebugWriteLine("SegaCD IP.BIN Decoder", "segacd_ipbin.overseas_title = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.overseas_title));
+ Encoding.ASCII.GetString(ipbin.overseas_title));
AaruConsole.DebugWriteLine("SegaCD IP.BIN Decoder", "segacd_ipbin.product_code = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.product_code));
+ Encoding.ASCII.GetString(ipbin.product_code));
AaruConsole.DebugWriteLine("SegaCD IP.BIN Decoder", "segacd_ipbin.peripherals = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.peripherals));
+ Encoding.ASCII.GetString(ipbin.peripherals));
AaruConsole.DebugWriteLine("SegaCD IP.BIN Decoder", "segacd_ipbin.region_codes = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.region_codes));
+ Encoding.ASCII.GetString(ipbin.region_codes));
string id = Encoding.ASCII.GetString(ipbin.SegaHardwareID);
@@ -213,51 +213,51 @@ namespace Aaru.Decoders.Sega
foreach(byte peripheral in ipbin.peripherals)
switch((char)peripheral)
{
- case'A':
+ case 'A':
IPBinInformation.AppendLine("Game supports analog controller.");
break;
- case'B':
+ case 'B':
IPBinInformation.AppendLine("Game supports trackball.");
break;
- case'G':
+ case 'G':
IPBinInformation.AppendLine("Game supports light gun.");
break;
- case'J':
+ case 'J':
IPBinInformation.AppendLine("Game supports JoyPad.");
break;
- case'K':
+ case 'K':
IPBinInformation.AppendLine("Game supports keyboard.");
break;
- case'M':
+ case 'M':
IPBinInformation.AppendLine("Game supports mouse.");
break;
- case'O':
+ case 'O':
IPBinInformation.AppendLine("Game supports Master System's JoyPad.");
break;
- case'P':
+ case 'P':
IPBinInformation.AppendLine("Game supports printer interface.");
break;
- case'R':
+ case 'R':
IPBinInformation.AppendLine("Game supports serial (RS-232C) interface.");
break;
- case'T':
+ case 'T':
IPBinInformation.AppendLine("Game supports tablet interface.");
break;
- case'V':
+ case 'V':
IPBinInformation.AppendLine("Game supports paddle controller.");
break;
- case' ': break;
+ case ' ': break;
default:
IPBinInformation.AppendFormat("Game supports unknown peripheral {0}.", peripheral).AppendLine();
@@ -269,19 +269,19 @@ namespace Aaru.Decoders.Sega
foreach(byte region in ipbin.region_codes)
switch((char)region)
{
- case'J':
+ case 'J':
IPBinInformation.AppendLine("Japanese NTSC.");
break;
- case'U':
+ case 'U':
IPBinInformation.AppendLine("USA NTSC.");
break;
- case'E':
+ case 'E':
IPBinInformation.AppendLine("Europe PAL.");
break;
- case' ': break;
+ case ' ': break;
default:
IPBinInformation.AppendFormat("Game supports unknown region {0}.", region).AppendLine();
diff --git a/Sega/Dreamcast.cs b/Sega/Dreamcast.cs
index 642e430..5f849c4 100644
--- a/Sega/Dreamcast.cs
+++ b/Sega/Dreamcast.cs
@@ -52,54 +52,55 @@ namespace Aaru.Decoders.Sega
if(ipbin_sector.Length < 512)
return null;
- var ipbin = Marshal.ByteArrayToStructureLittleEndian(ipbin_sector);
+ IPBin ipbin = Marshal.ByteArrayToStructureLittleEndian(ipbin_sector);
AaruConsole.DebugWriteLine("Dreamcast IP.BIN Decoder", "dreamcast_ipbin.maker_id = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.maker_id));
+ Encoding.ASCII.GetString(ipbin.maker_id));
AaruConsole.DebugWriteLine("Dreamcast IP.BIN Decoder", "dreamcast_ipbin.spare_space1 = \"{0}\"",
- (char)ipbin.spare_space1);
+ (char)ipbin.spare_space1);
AaruConsole.DebugWriteLine("Dreamcast IP.BIN Decoder", "dreamcast_ipbin.dreamcast_media = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.dreamcast_media));
+ Encoding.ASCII.GetString(ipbin.dreamcast_media));
- AaruConsole.DebugWriteLine("Dreamcast IP.BIN Decoder", "dreamcast_ipbin.disc_no = {0}", (char)ipbin.disc_no);
+ AaruConsole.DebugWriteLine("Dreamcast IP.BIN Decoder", "dreamcast_ipbin.disc_no = {0}",
+ (char)ipbin.disc_no);
AaruConsole.DebugWriteLine("Dreamcast IP.BIN Decoder", "dreamcast_ipbin.disc_no_separator = \"{0}\"",
- (char)ipbin.disc_no_separator);
+ (char)ipbin.disc_no_separator);
AaruConsole.DebugWriteLine("Dreamcast IP.BIN Decoder", "dreamcast_ipbin.disc_total_nos = \"{0}\"",
- (char)ipbin.disc_total_nos);
+ (char)ipbin.disc_total_nos);
AaruConsole.DebugWriteLine("Dreamcast IP.BIN Decoder", "dreamcast_ipbin.spare_space2 = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.spare_space2));
+ Encoding.ASCII.GetString(ipbin.spare_space2));
AaruConsole.DebugWriteLine("Dreamcast IP.BIN Decoder", "dreamcast_ipbin.region_codes = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.region_codes));
+ Encoding.ASCII.GetString(ipbin.region_codes));
AaruConsole.DebugWriteLine("Dreamcast IP.BIN Decoder", "dreamcast_ipbin.peripherals = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.peripherals));
+ Encoding.ASCII.GetString(ipbin.peripherals));
AaruConsole.DebugWriteLine("Dreamcast IP.BIN Decoder", "dreamcast_ipbin.product_no = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.product_no));
+ Encoding.ASCII.GetString(ipbin.product_no));
AaruConsole.DebugWriteLine("Dreamcast IP.BIN Decoder", "dreamcast_ipbin.product_version = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.product_version));
+ Encoding.ASCII.GetString(ipbin.product_version));
AaruConsole.DebugWriteLine("Dreamcast IP.BIN Decoder", "dreamcast_ipbin.release_date = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.release_date));
+ Encoding.ASCII.GetString(ipbin.release_date));
AaruConsole.DebugWriteLine("Dreamcast IP.BIN Decoder", "dreamcast_ipbin.spare_space3 = \"{0}\"",
- (char)ipbin.spare_space3);
+ (char)ipbin.spare_space3);
AaruConsole.DebugWriteLine("Dreamcast IP.BIN Decoder", "dreamcast_ipbin.boot_filename = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.boot_filename));
+ Encoding.ASCII.GetString(ipbin.boot_filename));
AaruConsole.DebugWriteLine("Dreamcast IP.BIN Decoder", "dreamcast_ipbin.producer = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.producer));
+ Encoding.ASCII.GetString(ipbin.producer));
AaruConsole.DebugWriteLine("Dreamcast IP.BIN Decoder", "dreamcast_ipbin.product_name = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.product_name));
+ Encoding.ASCII.GetString(ipbin.product_name));
return Encoding.ASCII.GetString(ipbin.SegaHardwareID) == "SEGA SEGAKATANA " ? ipbin : (IPBin?)null;
}
@@ -141,11 +142,11 @@ namespace Aaru.Decoders.Sega
switch(Encoding.ASCII.GetString(ipbin.boot_filename))
{
- case"1ST_READ.BIN":
+ case "1ST_READ.BIN":
IPBinInformation.AppendLine("Disc boots natively.");
break;
- case"0WINCE.BIN ":
+ case "0WINCE.BIN ":
IPBinInformation.AppendLine("Disc boots using Windows CE.");
break;
@@ -161,19 +162,19 @@ namespace Aaru.Decoders.Sega
foreach(byte region in ipbin.region_codes)
switch((char)region)
{
- case'J':
+ case 'J':
IPBinInformation.AppendLine("Japanese NTSC.");
break;
- case'U':
+ case 'U':
IPBinInformation.AppendLine("North America NTSC.");
break;
- case'E':
+ case 'E':
IPBinInformation.AppendLine("Europe PAL.");
break;
- case' ': break;
+ case ' ': break;
default:
IPBinInformation.AppendFormat("Game supports unknown region {0}.", region).AppendLine();
diff --git a/Sega/Saturn.cs b/Sega/Saturn.cs
index ec93bed..b653513 100644
--- a/Sega/Saturn.cs
+++ b/Sega/Saturn.cs
@@ -52,45 +52,45 @@ namespace Aaru.Decoders.Sega
if(ipbin_sector.Length < 512)
return null;
- var ipbin = Marshal.ByteArrayToStructureLittleEndian(ipbin_sector);
+ IPBin ipbin = Marshal.ByteArrayToStructureLittleEndian(ipbin_sector);
AaruConsole.DebugWriteLine("Saturn IP.BIN Decoder", "saturn_ipbin.maker_id = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.maker_id));
+ Encoding.ASCII.GetString(ipbin.maker_id));
AaruConsole.DebugWriteLine("Saturn IP.BIN Decoder", "saturn_ipbin.product_no = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.product_no));
+ Encoding.ASCII.GetString(ipbin.product_no));
AaruConsole.DebugWriteLine("Saturn IP.BIN Decoder", "saturn_ipbin.product_version = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.product_version));
+ Encoding.ASCII.GetString(ipbin.product_version));
AaruConsole.DebugWriteLine("Saturn IP.BIN Decoder", "saturn_ipbin.release_datedate = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.release_date));
+ Encoding.ASCII.GetString(ipbin.release_date));
AaruConsole.DebugWriteLine("Saturn IP.BIN Decoder", "saturn_ipbin.saturn_media = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.saturn_media));
+ Encoding.ASCII.GetString(ipbin.saturn_media));
AaruConsole.DebugWriteLine("Saturn IP.BIN Decoder", "saturn_ipbin.disc_no = {0}", (char)ipbin.disc_no);
AaruConsole.DebugWriteLine("Saturn IP.BIN Decoder", "saturn_ipbin.disc_no_separator = \"{0}\"",
- (char)ipbin.disc_no_separator);
+ (char)ipbin.disc_no_separator);
AaruConsole.DebugWriteLine("Saturn IP.BIN Decoder", "saturn_ipbin.disc_total_nos = {0}",
- (char)ipbin.disc_total_nos);
+ (char)ipbin.disc_total_nos);
AaruConsole.DebugWriteLine("Saturn IP.BIN Decoder", "saturn_ipbin.release_date = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.release_date));
+ Encoding.ASCII.GetString(ipbin.release_date));
AaruConsole.DebugWriteLine("Saturn IP.BIN Decoder", "saturn_ipbin.spare_space1 = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.spare_space1));
+ Encoding.ASCII.GetString(ipbin.spare_space1));
AaruConsole.DebugWriteLine("Saturn IP.BIN Decoder", "saturn_ipbin.region_codes = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.region_codes));
+ Encoding.ASCII.GetString(ipbin.region_codes));
AaruConsole.DebugWriteLine("Saturn IP.BIN Decoder", "saturn_ipbin.peripherals = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.peripherals));
+ Encoding.ASCII.GetString(ipbin.peripherals));
AaruConsole.DebugWriteLine("Saturn IP.BIN Decoder", "saturn_ipbin.product_name = \"{0}\"",
- Encoding.ASCII.GetString(ipbin.product_name));
+ Encoding.ASCII.GetString(ipbin.product_name));
return Encoding.ASCII.GetString(ipbin.SegaHardwareID) == "SEGA SEGASATURN " ? ipbin : (IPBin?)null;
}
@@ -132,31 +132,31 @@ namespace Aaru.Decoders.Sega
foreach(byte peripheral in ipbin.peripherals)
switch((char)peripheral)
{
- case'A':
+ case 'A':
IPBinInformation.AppendLine("Game supports analog controller.");
break;
- case'J':
+ case 'J':
IPBinInformation.AppendLine("Game supports JoyPad.");
break;
- case'K':
+ case 'K':
IPBinInformation.AppendLine("Game supports keyboard.");
break;
- case'M':
+ case 'M':
IPBinInformation.AppendLine("Game supports mouse.");
break;
- case'S':
+ case 'S':
IPBinInformation.AppendLine("Game supports analog steering controller.");
break;
- case'T':
+ case 'T':
IPBinInformation.AppendLine("Game supports multitap.");
break;
- case' ': break;
+ case ' ': break;
default:
IPBinInformation.AppendFormat("Game supports unknown peripheral {0}.", peripheral).AppendLine();
@@ -168,23 +168,23 @@ namespace Aaru.Decoders.Sega
foreach(byte region in ipbin.region_codes)
switch((char)region)
{
- case'J':
+ case 'J':
IPBinInformation.AppendLine("Japanese NTSC.");
break;
- case'U':
+ case 'U':
IPBinInformation.AppendLine("North America NTSC.");
break;
- case'E':
+ case 'E':
IPBinInformation.AppendLine("Europe PAL.");
break;
- case'T':
+ case 'T':
IPBinInformation.AppendLine("Asia NTSC.");
break;
- case' ': break;
+ case ' ': break;
default:
IPBinInformation.AppendFormat("Game supports unknown region {0}.", region).AppendLine();
diff --git a/Xbox/SS.cs b/Xbox/SS.cs
index 47de2f9..4bc807d 100644
--- a/Xbox/SS.cs
+++ b/Xbox/SS.cs
@@ -90,12 +90,13 @@ namespace Aaru.Decoders.Xbox
for(int i = 0; i < 23; i++)
ss.ChallengeEntries[i] = new ChallengeEntry
{
- Level = response[770 + i * 11 + 0], ChallengeId = response[770 + i * 11 + 1],
- ChallengeValue = (uint)((response[770 + i * 11 + 2] << 24) + (response[770 + i * 11 + 3] << 16) +
- (response[770 + i * 11 + 4] << 8) + response[770 + i * 11 + 5]),
- ResponseModifier = response[770 + i * 11 + 6],
- ResponseValue = (uint)((response[770 + i * 11 + 7] << 24) + (response[770 + i * 11 + 8] << 16) +
- (response[770 + i * 11 + 9] << 8) + response[770 + i * 11 + 10])
+ Level = response[770 + (i * 11) + 0], ChallengeId = response[770 + (i * 11) + 1],
+ ChallengeValue = (uint)((response[770 + (i * 11) + 2] << 24) +
+ (response[770 + (i * 11) + 3] << 16) + (response[770 + (i * 11) + 4] << 8) +
+ response[770 + (i * 11) + 5]),
+ ResponseModifier = response[770 + (i * 11) + 6],
+ ResponseValue = (uint)((response[770 + (i * 11) + 7] << 24) + (response[770 + (i * 11) + 8] << 16) +
+ (response[770 + (i * 11) + 9] << 8) + response[770 + (i * 11) + 10])
};
Array.Copy(response, 1052, ss.Unknown7, 0, 48);
@@ -107,23 +108,23 @@ namespace Aaru.Decoders.Xbox
for(int i = 0; i < 23; i++)
ss.Extents[i] = new SecuritySectorExtent
{
- Unknown = (uint)((response[1633 + i * 9 + 0] << 16) + (response[1633 + i * 9 + 1] << 8) +
- response[1633 + i * 9 + 2]),
- StartPSN = (uint)((response[1633 + i * 9 + 3] << 16) + (response[1633 + i * 9 + 4] << 8) +
- response[1633 + i * 9 + 5]),
- EndPSN = (uint)((response[1633 + i * 9 + 6] << 16) + (response[1633 + i * 9 + 7] << 8) +
- response[1633 + i * 9 + 8])
+ Unknown = (uint)((response[1633 + (i * 9) + 0] << 16) + (response[1633 + (i * 9) + 1] << 8) +
+ response[1633 + (i * 9) + 2]),
+ StartPSN = (uint)((response[1633 + (i * 9) + 3] << 16) + (response[1633 + (i * 9) + 4] << 8) +
+ response[1633 + (i * 9) + 5]),
+ EndPSN = (uint)((response[1633 + (i * 9) + 6] << 16) + (response[1633 + (i * 9) + 7] << 8) +
+ response[1633 + (i * 9) + 8])
};
for(int i = 0; i < 23; i++)
ss.ExtentsCopy[i] = new SecuritySectorExtent
{
- Unknown = (uint)((response[1840 + i * 9 + 0] << 16) + (response[1840 + i * 9 + 1] << 8) +
- response[1840 + i * 9 + 2]),
- StartPSN = (uint)((response[1840 + i * 9 + 3] << 16) + (response[1840 + i * 9 + 4] << 8) +
- response[1840 + i * 9 + 5]),
- EndPSN = (uint)((response[1840 + i * 9 + 6] << 16) + (response[1840 + i * 9 + 7] << 8) +
- response[1840 + i * 9 + 8])
+ Unknown = (uint)((response[1840 + (i * 9) + 0] << 16) + (response[1840 + (i * 9) + 1] << 8) +
+ response[1840 + (i * 9) + 2]),
+ StartPSN = (uint)((response[1840 + (i * 9) + 3] << 16) + (response[1840 + (i * 9) + 4] << 8) +
+ response[1840 + (i * 9) + 5]),
+ EndPSN = (uint)((response[1840 + (i * 9) + 6] << 16) + (response[1840 + (i * 9) + 7] << 8) +
+ response[1840 + (i * 9) + 8])
};
return ss;