diff --git a/CD/Subchannel.cs b/CD/Subchannel.cs index a7ae436..a2f5834 100644 --- a/CD/Subchannel.cs +++ b/CD/Subchannel.cs @@ -590,49 +590,46 @@ public static class Subchannel public static string DecodeMcn(byte[] q) => $"{q[1]:X2}{q[2]:X2}{q[3]:X2}{q[4]:X2}{q[5]:X2}{q[6]:X2}{q[7] >> 4:X}"; - public static byte GetIsrcCode(char c) - { - switch(c) - { - case '0': return 0x00; - case '1': return 0x01; - case '2': return 0x02; - case '3': return 0x03; - case '4': return 0x04; - case '5': return 0x05; - case '6': return 0x06; - case '7': return 0x07; - case '8': return 0x08; - case '9': return 0x09; - case 'A': return 0x11; - case 'B': return 0x12; - case 'C': return 0x13; - case 'D': return 0x14; - case 'E': return 0x15; - case 'F': return 0x16; - case 'G': return 0x17; - case 'H': return 0x18; - case 'I': return 0x19; - case 'J': return 0x1A; - case 'K': return 0x1B; - case 'L': return 0x1C; - case 'M': return 0x1D; - case 'N': return 0x1E; - case 'O': return 0x1F; - case 'P': return 0x20; - case 'Q': return 0x21; - case 'R': return 0x22; - case 'S': return 0x23; - case 'T': return 0x24; - case 'U': return 0x25; - case 'V': return 0x26; - case 'W': return 0x27; - case 'X': return 0x28; - case 'Y': return 0x29; - case 'Z': return 0x2A; - default: return 0x00; - } - } + public static byte GetIsrcCode(char c) => c switch + { + '0' => 0x00, + '1' => 0x01, + '2' => 0x02, + '3' => 0x03, + '4' => 0x04, + '5' => 0x05, + '6' => 0x06, + '7' => 0x07, + '8' => 0x08, + '9' => 0x09, + 'A' => 0x11, + 'B' => 0x12, + 'C' => 0x13, + 'D' => 0x14, + 'E' => 0x15, + 'F' => 0x16, + 'G' => 0x17, + 'H' => 0x18, + 'I' => 0x19, + 'J' => 0x1A, + 'K' => 0x1B, + 'L' => 0x1C, + 'M' => 0x1D, + 'N' => 0x1E, + 'O' => 0x1F, + 'P' => 0x20, + 'Q' => 0x21, + 'R' => 0x22, + 'S' => 0x23, + 'T' => 0x24, + 'U' => 0x25, + 'V' => 0x26, + 'W' => 0x27, + 'X' => 0x28, + 'Y' => 0x29, + 'Z' => 0x2A, + _ => 0x00 + }; public static byte[] Generate(int sector, uint trackSequence, int pregap, int trackStart, byte flags, byte index) { diff --git a/DVD/PFI.cs b/DVD/PFI.cs index 77179c3..e3a68dd 100644 --- a/DVD/PFI.cs +++ b/DVD/PFI.cs @@ -477,23 +477,12 @@ public static class PFI PhysicalFormatInformation decoded = pfi.Value; var sb = new StringBuilder(); - string sizeString; - - switch(decoded.DiscSize) - { - case DVDSize.Eighty: - sizeString = "80mm"; - - break; - case DVDSize.OneTwenty: - sizeString = "120mm"; - - break; - default: - sizeString = $"unknown size identifier {decoded.DiscSize}"; - - break; - } + string sizeString = decoded.DiscSize switch + { + DVDSize.Eighty => "80mm", + DVDSize.OneTwenty => "120mm", + _ => $"unknown size identifier {decoded.DiscSize}" + }; var categorySentence = "Disc is a {0} {1} version {2}"; @@ -960,13 +949,11 @@ public static class PFI public static string Prettify(byte[] response, MediaType mediaType) => Prettify(Decode(response, mediaType)); - public static string ManufacturerFromDVDRAM(string manufacturerId) - { - switch(manufacturerId) - { - default: return ManufacturerFromDVDPlusID(manufacturerId); - } - } + public static string ManufacturerFromDVDRAM(string manufacturerId) => manufacturerId switch + { + _ => + ManufacturerFromDVDPlusID(manufacturerId) + }; [SuppressMessage("ReSharper", "StringLiteralTypo")] public static string ManufacturerFromDVDPlusID(string manufacturerId) diff --git a/DVD/PRI.cs b/DVD/PRI.cs index 83a945d..c494082 100644 --- a/DVD/PRI.cs +++ b/DVD/PRI.cs @@ -185,71 +185,25 @@ public static class PRI { if((decoded.OPCSuggestedCode & 0xF) > 0) { - double recordingPower = 0; - - switch(decoded.OPCSuggestedCode & 0xF) - { - case 1: - recordingPower = 7.0; - - break; - case 2: - recordingPower = 7.5; - - break; - case 3: - recordingPower = 8.0; - - break; - case 4: - recordingPower = 8.5; - - break; - case 5: - recordingPower = 9.0; - - break; - case 6: - recordingPower = 9.5; - - break; - case 7: - recordingPower = 10.0; - - break; - case 8: - recordingPower = 10.5; - - break; - case 9: - recordingPower = 11.0; - - break; - case 10: - recordingPower = 11.5; - - break; - case 11: - recordingPower = 12.0; - - break; - case 12: - recordingPower = 12.5; - - break; - case 13: - recordingPower = 13.0; - - break; - case 14: - recordingPower = 13.5; - - break; - case 15: - recordingPower = 14.0; - - break; - } + double recordingPower = (decoded.OPCSuggestedCode & 0xF) switch + { + 1 => 7.0, + 2 => 7.5, + 3 => 8.0, + 4 => 8.5, + 5 => 9.0, + 6 => 9.5, + 7 => 10.0, + 8 => 10.5, + 9 => 11.0, + 10 => 11.5, + 11 => 12.0, + 12 => 12.5, + 13 => 13.0, + 14 => 13.5, + 15 => 14.0, + _ => 0 + }; sb.AppendFormat("Recommended recording power is {0} mW", recordingPower).AppendLine(); } @@ -258,71 +212,25 @@ public static class PRI if((decoded.WaveLengthCode & 0xF) > 0) { - double erasingPower = 0; - - switch(decoded.WaveLengthCode & 0xF) - { - case 1: - erasingPower = 0.38; - - break; - case 2: - erasingPower = 0.40; - - break; - case 3: - erasingPower = 0.42; - - break; - case 4: - erasingPower = 0.44; - - break; - case 5: - erasingPower = 0.46; - - break; - case 6: - erasingPower = 0.48; - - break; - case 7: - erasingPower = 0.50; - - break; - case 8: - erasingPower = 0.52; - - break; - case 9: - erasingPower = 0.54; - - break; - case 10: - erasingPower = 0.56; - - break; - case 11: - erasingPower = 0.58; - - break; - case 12: - erasingPower = 0.60; - - break; - case 13: - erasingPower = 0.62; - - break; - case 14: - erasingPower = 0.64; - - break; - case 15: - erasingPower = 0.66; - - break; - } + double erasingPower = (decoded.WaveLengthCode & 0xF) switch + { + 1 => 0.38, + 2 => 0.40, + 3 => 0.42, + 4 => 0.44, + 5 => 0.46, + 6 => 0.48, + 7 => 0.50, + 8 => 0.52, + 9 => 0.54, + 10 => 0.56, + 11 => 0.58, + 12 => 0.60, + 13 => 0.62, + 14 => 0.64, + 15 => 0.66, + _ => 0 + }; sb.AppendFormat("Recommended erasing power ratio is {0} ε", erasingPower).AppendLine(); } @@ -333,138 +241,49 @@ public static class PRI { if((decoded.OPCSuggestedCode & 0xF) > 0) { - double recordingPower = 0; - - switch(decoded.OPCSuggestedCode & 0xF) - { - case 1: - recordingPower = 6.0; - - break; - case 2: - recordingPower = 6.5; - - break; - case 3: - recordingPower = 7.0; - - break; - case 4: - recordingPower = 7.5; - - break; - case 5: - recordingPower = 8.0; - - break; - case 6: - recordingPower = 8.5; - - break; - case 7: - recordingPower = 9.0; - - break; - case 8: - recordingPower = 9.5; - - break; - case 9: - recordingPower = 10.0; - - break; - case 10: - recordingPower = 10.5; - - break; - case 11: - recordingPower = 11.0; - - break; - case 12: - recordingPower = 11.5; - - break; - case 13: - recordingPower = 12.0; - - break; - } + double recordingPower = (decoded.OPCSuggestedCode & 0xF) switch + { + 1 => 6.0, + 2 => 6.5, + 3 => 7.0, + 4 => 7.5, + 5 => 8.0, + 6 => 8.5, + 7 => 9.0, + 8 => 9.5, + 9 => 10.0, + 10 => 10.5, + 11 => 11.0, + 12 => 11.5, + 13 => 12.0, + _ => 0 + }; sb.AppendFormat("Recommended recording power is {0} mW", recordingPower).AppendLine(); } if(decoded.WaveLengthCode > 0) { - var wavelength = 0; - - switch(decoded.WaveLengthCode) - { - case 1: - wavelength = 645; - - break; - case 2: - wavelength = 646; - - break; - case 3: - wavelength = 647; - - break; - case 4: - wavelength = 648; - - break; - case 5: - wavelength = 649; - - break; - case 6: - wavelength = 650; - - break; - case 7: - wavelength = 651; - - break; - case 8: - wavelength = 652; - - break; - case 9: - wavelength = 653; - - break; - case 10: - wavelength = 654; - - break; - case 11: - wavelength = 655; - - break; - case 12: - wavelength = 656; - - break; - case 13: - wavelength = 657; - - break; - case 14: - wavelength = 658; - - break; - case 15: - wavelength = 659; - - break; - case 16: - wavelength = 660; - - break; - } + int wavelength = decoded.WaveLengthCode switch + { + 1 => 645, + 2 => 646, + 3 => 647, + 4 => 648, + 5 => 649, + 6 => 650, + 7 => 651, + 8 => 652, + 9 => 653, + 10 => 654, + 11 => 655, + 12 => 656, + 13 => 657, + 14 => 658, + 15 => 659, + 16 => 660, + _ => 0 + }; sb.AppendFormat("Recommended recording power is {0} mW", wavelength).AppendLine(); } diff --git a/MMC/CID.cs b/MMC/CID.cs index f16957c..04729e3 100644 --- a/MMC/CID.cs +++ b/MMC/CID.cs @@ -129,75 +129,27 @@ public static partial class Decoders cid.ProductRevision & 0x0F).AppendLine(); sb.AppendFormat("\tProduct serial number: {0}", cid.ProductSerialNumber).AppendLine(); - var year = ""; - switch(cid.ManufacturingDate & 0x0F) - { - case 0: - year = "1997 or 2013"; - - break; - case 1: - year = "1998 or 2014"; - - break; - case 2: - year = "1999 or 2015"; - - break; - case 3: - year = "2000 or 2016"; - - break; - case 4: - year = "2001 or 2017"; - - break; - case 5: - year = "2002 or 2018"; - - break; - case 6: - year = "2003 or 2019"; - - break; - case 7: - year = "2004 or 2020"; - - break; - case 8: - year = "2005 or 2021"; - - break; - case 9: - year = "2006 or 2022"; - - break; - case 10: - year = "2007 or 2023"; - - break; - case 11: - year = "2008 or 2024"; - - break; - case 12: - year = "2009 or 2025"; - - break; - case 13: - year = "2010"; - - break; - case 14: - year = "2011"; - - break; - case 15: - year = "2012"; - - break; - } + string year = (cid.ManufacturingDate & 0x0F) switch + { + 0 => "1997 or 2013", + 1 => "1998 or 2014", + 2 => "1999 or 2015", + 3 => "2000 or 2016", + 4 => "2001 or 2017", + 5 => "2002 or 2018", + 6 => "2003 or 2019", + 7 => "2004 or 2020", + 8 => "2005 or 2021", + 9 => "2006 or 2022", + 10 => "2007 or 2023", + 11 => "2008 or 2024", + 12 => "2009 or 2025", + 13 => "2010", + 14 => "2011", + 15 => "2012", + _ => "" + }; sb.AppendFormat("\tDevice manufactured month {0} of {1}", (cid.ManufacturingDate & 0xF0) >> 4, year). AppendLine(); diff --git a/MMC/CSD.cs b/MMC/CSD.cs index c6ea55b..ee48fad 100644 --- a/MMC/CSD.cs +++ b/MMC/CSD.cs @@ -217,73 +217,26 @@ public static partial class Decoders break; } - switch((csd.TAAC & 0x78) >> 3) - { - case 0: - multiplier = 0; - - break; - case 1: - multiplier = 1; - - break; - case 2: - multiplier = 1.2; - - break; - case 3: - multiplier = 1.3; - - break; - case 4: - multiplier = 1.5; - - break; - case 5: - multiplier = 2; - - break; - case 6: - multiplier = 2.5; - - break; - case 7: - multiplier = 3; - - break; - case 8: - multiplier = 3.5; - - break; - case 9: - multiplier = 4; - - break; - case 10: - multiplier = 4.5; - - break; - case 11: - multiplier = 5; - - break; - case 12: - multiplier = 5.5; - - break; - case 13: - multiplier = 6; - - break; - case 14: - multiplier = 7; - - break; - case 15: - multiplier = 8; - - break; - } + multiplier = ((csd.TAAC & 0x78) >> 3) switch + { + 0 => 0, + 1 => 1, + 2 => 1.2, + 3 => 1.3, + 4 => 1.5, + 5 => 2, + 6 => 2.5, + 7 => 3, + 8 => 3.5, + 9 => 4, + 10 => 4.5, + 11 => 5, + 12 => 5.5, + 13 => 6, + 14 => 7, + 15 => 8, + _ => multiplier + }; double result = unitFactor * multiplier; sb.AppendFormat("\tAsynchronous data access time is {0}{1}", result, unit).AppendLine(); @@ -317,73 +270,26 @@ public static partial class Decoders break; } - switch((csd.Speed & 0x78) >> 3) - { - case 0: - multiplier = 0; - - break; - case 1: - multiplier = 1; - - break; - case 2: - multiplier = 1.2; - - break; - case 3: - multiplier = 1.3; - - break; - case 4: - multiplier = 1.5; - - break; - case 5: - multiplier = 2; - - break; - case 6: - multiplier = 2.6; - - break; - case 7: - multiplier = 3; - - break; - case 8: - multiplier = 3.5; - - break; - case 9: - multiplier = 4; - - break; - case 10: - multiplier = 4.5; - - break; - case 11: - multiplier = 5.2; - - break; - case 12: - multiplier = 5.5; - - break; - case 13: - multiplier = 6; - - break; - case 14: - multiplier = 7; - - break; - case 15: - multiplier = 8; - - break; - } + multiplier = ((csd.Speed & 0x78) >> 3) switch + { + 0 => 0, + 1 => 1, + 2 => 1.2, + 3 => 1.3, + 4 => 1.5, + 5 => 2, + 6 => 2.6, + 7 => 3, + 8 => 3.5, + 9 => 4, + 10 => 4.5, + 11 => 5.2, + 12 => 5.5, + 13 => 6, + 14 => 7, + 15 => 8, + _ => multiplier + }; result = unitFactor * multiplier; sb.AppendFormat("\tDevice's clock frequency: {0}{1}", result, unit).AppendLine(); diff --git a/SCSI/EVPD.cs b/SCSI/EVPD.cs index fcb8b9c..0f5497f 100644 --- a/SCSI/EVPD.cs +++ b/SCSI/EVPD.cs @@ -254,18 +254,16 @@ public static class EVPD public static string PrettifyPage_81(byte[] pageResponse) => PrettifyPage_81(DecodePage_81(pageResponse)); - public static string DefinitionToString(ScsiDefinitions definition) - { - 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}"; - } - } + public static string DefinitionToString(ScsiDefinitions definition) => definition switch + { + ScsiDefinitions.Current => "", + ScsiDefinitions.CCS => "CCS", + ScsiDefinitions.SCSI1 => "SCSI-1", + ScsiDefinitions.SCSI2 => "SCSI-2", + ScsiDefinitions.SCSI3 => "SCSI-3", + _ => $"Unknown definition code { + (byte)definition}" + }; public static string PrettifyPage_81(Page_81? modePage) { @@ -416,21 +414,12 @@ public static class EVPD Array.Copy(pageResponse, position + 4, descriptor.Binary, 0, descriptor.Length); - switch(descriptor.CodeSet) - { - case IdentificationCodeSet.ASCII: - descriptor.ASCII = StringHandlers.CToString(descriptor.Binary); - - break; - case IdentificationCodeSet.UTF8: - descriptor.ASCII = Encoding.UTF8.GetString(descriptor.Binary); - - break; - default: - descriptor.ASCII = ""; - - break; - } + descriptor.ASCII = descriptor.CodeSet switch + { + IdentificationCodeSet.ASCII => StringHandlers.CToString(descriptor.Binary), + IdentificationCodeSet.UTF8 => Encoding.UTF8.GetString(descriptor.Binary), + _ => "" + }; position += 4 + descriptor.Length; descriptors.Add(descriptor); @@ -485,67 +474,23 @@ public static class EVPD if(descriptor.PIV) { - string protocol; - - switch(descriptor.ProtocolIdentifier) - { - case ProtocolIdentifiers.ADT: - protocol = "Automation/Drive Interface Transport"; - - break; - case ProtocolIdentifiers.ATA: - protocol = "AT Attachment Interface (ATA/ATAPI)"; - - break; - case ProtocolIdentifiers.FibreChannel: - protocol = "Fibre Channel"; - - break; - case ProtocolIdentifiers.Firewire: - protocol = "IEEE 1394"; - - break; - case ProtocolIdentifiers.iSCSI: - protocol = "Internet SCSI"; - - break; - case ProtocolIdentifiers.NoProtocol: - protocol = "no specific"; - - break; - case ProtocolIdentifiers.PCIe: - protocol = "PCI Express"; - - break; - case ProtocolIdentifiers.RDMAP: - protocol = "SCSI Remote Direct Memory Access"; - - break; - case ProtocolIdentifiers.SAS: - protocol = "Serial Attachment SCSI"; - - break; - case ProtocolIdentifiers.SCSI: - protocol = "Parallel SCSI"; - - break; - case ProtocolIdentifiers.SCSIe: - protocol = "SCSI over PCI Express"; - - break; - case ProtocolIdentifiers.SSA: - protocol = "SSA"; - - break; - case ProtocolIdentifiers.UAS: - protocol = "USB Attached SCSI"; - - break; - default: - protocol = $"unknown code {(byte)descriptor.ProtocolIdentifier}"; - - break; - } + string protocol = descriptor.ProtocolIdentifier switch + { + ProtocolIdentifiers.ADT => "Automation/Drive Interface Transport", + ProtocolIdentifiers.ATA => "AT Attachment Interface (ATA/ATAPI)", + ProtocolIdentifiers.FibreChannel => "Fibre Channel", + ProtocolIdentifiers.Firewire => "IEEE 1394", + ProtocolIdentifiers.iSCSI => "Internet SCSI", + ProtocolIdentifiers.NoProtocol => "no specific", + ProtocolIdentifiers.PCIe => "PCI Express", + ProtocolIdentifiers.RDMAP => "SCSI Remote Direct Memory Access", + ProtocolIdentifiers.SAS => "Serial Attachment SCSI", + ProtocolIdentifiers.SCSI => "Parallel SCSI", + ProtocolIdentifiers.SCSIe => "SCSI over PCI Express", + ProtocolIdentifiers.SSA => "SSA", + ProtocolIdentifiers.UAS => "USB Attached SCSI", + _ => $"unknown code {(byte)descriptor.ProtocolIdentifier}" + }; sb.AppendFormat("\tDescriptor referes to {0} protocol", protocol).AppendLine(); } @@ -1014,8 +959,8 @@ public static class EVPD break; default: - sb.AppendFormat("\tIdentifier has unknown association with code {0}", - (byte)descriptor.Association).AppendLine(); + sb.AppendFormat("\tIdentifier has unknown association with code {0}", (byte)descriptor.Association). + AppendLine(); break; } diff --git a/SCSI/MMC/DiscInformation.cs b/SCSI/MMC/DiscInformation.cs index 6f75cbc..ad254b3 100644 --- a/SCSI/MMC/DiscInformation.cs +++ b/SCSI/MMC/DiscInformation.cs @@ -354,14 +354,13 @@ public static class DiscInformation if(response.Length < 12) return null; - switch(response[2] & 0xE0) - { - case 0x00: return Prettify000b(Decode000b(response)); - case 0x20: return Prettify001b(Decode001b(response)); - case 0x40: return Prettify010b(Decode010b(response)); - } - - return null; + return (response[2] & 0xE0) switch + { + 0x00 => Prettify000b(Decode000b(response)), + 0x20 => Prettify001b(Decode001b(response)), + 0x40 => Prettify010b(Decode010b(response)), + _ => null + }; } public struct StandardDiscInformation diff --git a/SCSI/Modes/Headers.cs b/SCSI/Modes/Headers.cs index 795e5b9..fea68bc 100644 --- a/SCSI/Modes/Headers.cs +++ b/SCSI/Modes/Headers.cs @@ -40,64 +40,63 @@ using Aaru.CommonTypes.Structs.Devices.SCSI; SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] public static partial class Modes { - public static string GetMediumTypeDescription(MediumTypes type) - { - switch(type) - { - case MediumTypes.ECMA54: - return - "ECMA-54: 200 mm Flexible Disk Cartridge using Two-Frequency Recording at 13262 ftprad on One Side"; - case MediumTypes.ECMA59: - 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"; - case MediumTypes.ECMA66: - return - "ECMA-66: 130 mm Flexible Disk Cartridge using Two-Frequency Recording at 7958 ftprad on One Side"; - case MediumTypes.ECMA70: - return - "ECMA-70 & ANSI X3.125-1985: 130 mm Flexible Disk Cartridge using MFM Recording at 7958 ftprad on Both Sides; 1,9 Tracks per mm"; - case MediumTypes.ECMA78: - return - "ECMA-78 & ANSI X3.126-1986: 130 mm Flexible Disk Cartridge using MFM Recording at 7958 ftprad on Both Sides; 3,8 Tracks per mm"; - case MediumTypes.ECMA99: - return - "ECMA-99 & ISO 8630-1985: 130 mm Flexible Disk Cartridge using MFM Recording at 13262 ftprad on Both Sides; 3,8 Tracks per mm"; - case MediumTypes.ECMA100: - return - "ECMA-100 & ANSI X3.137: 90 mm Flexible Disk Cartridge using MFM Recording at 7859 ftprad on Both Sides; 5,3 Tracks per mm"; + public static string GetMediumTypeDescription(MediumTypes type) => type switch + { + MediumTypes.ECMA54 => + "ECMA-54: 200 mm Flexible Disk Cartridge using Two-Frequency Recording at 13262 ftprad on One Side", + MediumTypes.ECMA59 => + "ECMA-59 & ANSI X3.121-1984: 200 mm Flexible Disk Cartridge using Two-Frequency Recording at 13262 ftprad on Both Sides", + MediumTypes.ECMA69 => + "ECMA-69: 200 mm Flexible Disk Cartridge using MFM Recording at 13262 ftprad on Both Sides", + MediumTypes.ECMA66 => + "ECMA-66: 130 mm Flexible Disk Cartridge using Two-Frequency Recording at 7958 ftprad on One Side", + MediumTypes.ECMA70 => + "ECMA-70 & ANSI X3.125-1985: 130 mm Flexible Disk Cartridge using MFM Recording at 7958 ftprad on Both Sides; 1,9 Tracks per mm", + MediumTypes.ECMA78 => + "ECMA-78 & ANSI X3.126-1986: 130 mm Flexible Disk Cartridge using MFM Recording at 7958 ftprad on Both Sides; 3,8 Tracks per mm", + MediumTypes.ECMA99 => + "ECMA-99 & ISO 8630-1985: 130 mm Flexible Disk Cartridge using MFM Recording at 13262 ftprad on Both Sides; 3,8 Tracks per mm", + MediumTypes.ECMA100 => + "ECMA-100 & ANSI X3.137: 90 mm Flexible Disk Cartridge using MFM Recording at 7859 ftprad on Both Sides; 5,3 Tracks per mm", - // Most probably they will never appear, but magneto-opticals use these codes - /* + // Most probably they will never appear, but magneto-opticals use these codes + /* case MediumTypes.Unspecified_SS: return "Unspecified single sided flexible disk"; 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.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"; + MediumTypes.X3_73 => + "ANSI X3.73-1980: 200 mm, 6631 ftprad, 1,9 Tracks per mm, 1 side", + MediumTypes.X3_73_DS => + "ANSI X3.73-1980: 200 mm, 6631 ftprad, 1,9 Tracks per mm, 2 sides", + MediumTypes.X3_82 => + "ANSI X3.80-1980: 130 mm, 3979 ftprad, 1,9 Tracks per mm, 1 side", + MediumTypes.Type3Floppy => + "3.5-inch, 135 tpi, 12362 bits/radian, double-sided MFM (aka 1.25Mb)", + MediumTypes.HDFloppy => + "3.5-inch, 135 tpi, 15916 bits/radian, double-sided MFM (aka 1.44Mb)", + MediumTypes.ReadOnly => + "a Read-only optical", + MediumTypes.WORM => + "a Write-once Read-many optical", + MediumTypes.Erasable => "a Erasable optical", + MediumTypes.RO_WORM => + "a combination of read-only and write-once optical", - // These magneto-opticals were never manufactured - /* + // These magneto-opticals were never manufactured + /* case MediumTypes.RO_RW: return "a combination of read-only and erasable optical"; break; 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}"; - } - } + MediumTypes.DOW => + "a direct-overwrite optical", + MediumTypes.HiMD => "a Sony Hi-MD disc", + _ => $"Unknown medium type 0x{(byte)type:X2}" + }; public static string PrettifyModeHeader(ModeHeader? header, PeripheralDeviceTypes deviceType) { @@ -199,247 +198,68 @@ public static partial class Modes if(header.Value.WriteProtected) sb.AppendLine("\tMedium is write protected"); - string medium; - - switch(header.Value.MediumType) - { - case MediumTypes.Default: - medium = "undefined"; - - break; - case MediumTypes.Tape12: - medium = "6,3 mm tape with 12 tracks at 394 ftpmm or DC-9250"; - - break; - case MediumTypes.Tape24: - medium = "6,3 mm tape with 24 tracks at 394 ftpmm or MLR1-26GBSL"; - - break; - case MediumTypes.LTOWORM: - medium = "LTO Ultrium WORM or cleaning cartridge"; - - break; - case MediumTypes.LTO: - medium = "LTO Ultrium"; - - break; - case MediumTypes.LTO2: - medium = "LTO Ultrium-2"; - - break; - case MediumTypes.DC2900SL: - medium = "DC-2900SL"; - - break; - case MediumTypes.MLR1: - medium = "MLR1-26GB or DDS-3"; - - break; - case MediumTypes.DC9200: - medium = "DC-9200 or DDS-4"; - - break; - case MediumTypes.DAT72: - medium = "DAT-72"; - - break; - case MediumTypes.LTO3: - medium = "LTO Ultrium-3"; - - break; - case MediumTypes.LTO3WORM: - medium = "LTO Ultrium-3 WORM"; - - break; - case MediumTypes.DDSCleaning: - medium = "DDS cleaning cartridge"; - - break; - case MediumTypes.SLR32: - medium = "SLR-32"; - - break; - case MediumTypes.SLRtape50: - medium = "SLRtape-50"; - - break; - case MediumTypes.LTO4: - medium = "LTO Ultrium-4"; - - break; - case MediumTypes.LTO4WORM: - medium = "LTO Ultrium-4 WORM"; - - break; - case MediumTypes.SLRtape50SL: - medium = "SLRtape-50 SL"; - - break; - case MediumTypes.SLR32SL: - medium = "SLR-32SL"; - - break; - case MediumTypes.SLR5: - medium = "SLR-5"; - - break; - case MediumTypes.SLR5SL: - medium = "SLR-5SL"; - - break; - case MediumTypes.LTO5: - medium = "LTO Ultrium-5"; - - break; - case MediumTypes.LTO5WORM: - medium = "LTO Ultrium-5 WORM"; - - break; - case MediumTypes.SLRtape7: - medium = "SLRtape-7"; - - break; - case MediumTypes.SLRtape7SL: - medium = "SLRtape-7 SL"; - - break; - case MediumTypes.SLRtape24: - medium = "SLRtape-24"; - - break; - case MediumTypes.SLRtape24SL: - medium = "SLRtape-24 SL"; - - break; - case MediumTypes.LTO6: - medium = "LTO Ultrium-6"; - - break; - case MediumTypes.LTO6WORM: - medium = "LTO Ultrium-6 WORM"; - - break; - case MediumTypes.SLRtape140: - medium = "SLRtape-140"; - - break; - case MediumTypes.SLRtape40: - medium = "SLRtape-40"; - - break; - case MediumTypes.SLRtape60: - medium = "SLRtape-60 or SLRtape-75"; - - break; - case MediumTypes.SLRtape100: - medium = "SLRtape-100"; - - break; - case MediumTypes.SLR40_60_100: - medium = "SLR-40, SLR-60 or SLR-100"; - - break; - case MediumTypes.LTO7: - medium = "LTO Ultrium-7"; - - break; - case MediumTypes.LTO7WORM: - medium = "LTO Ultrium-7 WORM"; - - break; - case MediumTypes.LTOCD: - medium = "LTO Ultrium"; - - break; - case MediumTypes.Exatape15m: - medium = "Exatape 15m, IBM MagStar or VXA"; - - break; - case MediumTypes.CT1: - medium = "CompactTape I, Exatape 28m, CompactTape II, VXA-2 or VXA-3"; - - break; - case MediumTypes.Exatape54m: - medium = "Exatape 54m or DLTtape III"; - - break; - case MediumTypes.Exatape80m: - medium = "Exatape 80m or DLTtape IIIxt"; - - break; - case MediumTypes.Exatape106m: - medium = "Exatape 106m, DLTtape IV or Travan 5"; - - break; - case MediumTypes.Exatape106mXL: - medium = "Exatape 160m XL or Super DLTtape I"; - - break; - case MediumTypes.SDLT2: - medium = "Super DLTtape II"; - - break; - case MediumTypes.VStapeI: - medium = "VStape I"; - - break; - case MediumTypes.DLTtapeS4: - medium = "DLTtape S4"; - - break; - case MediumTypes.Travan7: - medium = "Travan 7"; - - break; - case MediumTypes.Exatape22m: - medium = "Exatape 22m"; - - break; - case MediumTypes.Exatape40m: - medium = "Exatape 40m"; - - break; - case MediumTypes.Exatape76m: - medium = "Exatape 76m"; - - break; - case MediumTypes.Exatape112m: - medium = "Exatape 112m"; - - break; - case MediumTypes.Exatape22mAME: - medium = "Exatape 22m AME"; - - break; - case MediumTypes.Exatape170m: - medium = "Exatape 170m"; - - break; - case MediumTypes.Exatape125m: - medium = "Exatape 125m"; - - break; - case MediumTypes.Exatape45m: - medium = "Exatape 45m"; - - break; - case MediumTypes.Exatape225m: - medium = "Exatape 225m"; - - break; - case MediumTypes.Exatape150m: - medium = "Exatape 150m"; - - break; - case MediumTypes.Exatape75m: - medium = "Exatape 75m"; - - break; - default: - medium = $"unknown medium type 0x{(byte)header.Value.MediumType:X2}"; - - break; - } + string medium = header.Value.MediumType switch + { + MediumTypes.Default => "undefined", + MediumTypes.Tape12 => "6,3 mm tape with 12 tracks at 394 ftpmm or DC-9250", + MediumTypes.Tape24 => "6,3 mm tape with 24 tracks at 394 ftpmm or MLR1-26GBSL", + MediumTypes.LTOWORM => "LTO Ultrium WORM or cleaning cartridge", + MediumTypes.LTO => "LTO Ultrium", + MediumTypes.LTO2 => "LTO Ultrium-2", + MediumTypes.DC2900SL => "DC-2900SL", + MediumTypes.MLR1 => "MLR1-26GB or DDS-3", + MediumTypes.DC9200 => "DC-9200 or DDS-4", + MediumTypes.DAT72 => "DAT-72", + MediumTypes.LTO3 => "LTO Ultrium-3", + MediumTypes.LTO3WORM => "LTO Ultrium-3 WORM", + MediumTypes.DDSCleaning => "DDS cleaning cartridge", + MediumTypes.SLR32 => "SLR-32", + MediumTypes.SLRtape50 => "SLRtape-50", + MediumTypes.LTO4 => "LTO Ultrium-4", + MediumTypes.LTO4WORM => "LTO Ultrium-4 WORM", + MediumTypes.SLRtape50SL => "SLRtape-50 SL", + MediumTypes.SLR32SL => "SLR-32SL", + MediumTypes.SLR5 => "SLR-5", + MediumTypes.SLR5SL => "SLR-5SL", + MediumTypes.LTO5 => "LTO Ultrium-5", + MediumTypes.LTO5WORM => "LTO Ultrium-5 WORM", + MediumTypes.SLRtape7 => "SLRtape-7", + MediumTypes.SLRtape7SL => "SLRtape-7 SL", + MediumTypes.SLRtape24 => "SLRtape-24", + MediumTypes.SLRtape24SL => "SLRtape-24 SL", + MediumTypes.LTO6 => "LTO Ultrium-6", + MediumTypes.LTO6WORM => "LTO Ultrium-6 WORM", + MediumTypes.SLRtape140 => "SLRtape-140", + MediumTypes.SLRtape40 => "SLRtape-40", + MediumTypes.SLRtape60 => "SLRtape-60 or SLRtape-75", + MediumTypes.SLRtape100 => "SLRtape-100", + MediumTypes.SLR40_60_100 => "SLR-40, SLR-60 or SLR-100", + MediumTypes.LTO7 => "LTO Ultrium-7", + MediumTypes.LTO7WORM => "LTO Ultrium-7 WORM", + MediumTypes.LTOCD => "LTO Ultrium", + MediumTypes.Exatape15m => "Exatape 15m, IBM MagStar or VXA", + MediumTypes.CT1 => "CompactTape I, Exatape 28m, CompactTape II, VXA-2 or VXA-3", + MediumTypes.Exatape54m => "Exatape 54m or DLTtape III", + MediumTypes.Exatape80m => "Exatape 80m or DLTtape IIIxt", + MediumTypes.Exatape106m => "Exatape 106m, DLTtape IV or Travan 5", + MediumTypes.Exatape106mXL => "Exatape 160m XL or Super DLTtape I", + MediumTypes.SDLT2 => "Super DLTtape II", + MediumTypes.VStapeI => "VStape I", + MediumTypes.DLTtapeS4 => "DLTtape S4", + MediumTypes.Travan7 => "Travan 7", + MediumTypes.Exatape22m => "Exatape 22m", + MediumTypes.Exatape40m => "Exatape 40m", + MediumTypes.Exatape76m => "Exatape 76m", + MediumTypes.Exatape112m => "Exatape 112m", + MediumTypes.Exatape22mAME => "Exatape 22m AME", + MediumTypes.Exatape170m => "Exatape 170m", + MediumTypes.Exatape125m => "Exatape 125m", + MediumTypes.Exatape45m => "Exatape 45m", + MediumTypes.Exatape225m => "Exatape 225m", + MediumTypes.Exatape150m => "Exatape 150m", + MediumTypes.Exatape75m => "Exatape 75m", + _ => $"unknown medium type 0x{(byte)header.Value.MediumType:X2}" + }; sb.AppendFormat("\tMedium is {0}", medium).AppendLine(); @@ -645,346 +465,181 @@ public static partial class Modes break; case MediumTypes.LTOWORM: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "LTO Ultrium cleaning cartridge"; - - break; - case DensityType.LTO3: - density = "LTO Ultrium-3 WORM"; - - break; - case DensityType.LTO4: - density = "LTO Ultrium-4 WORM"; - - break; - case DensityType.LTO5: - density = "LTO Ultrium-5 WORM"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "LTO Ultrium cleaning cartridge", + DensityType.LTO3 => "LTO Ultrium-3 WORM", + DensityType.LTO4 => "LTO Ultrium-4 WORM", + DensityType.LTO5 => "LTO Ultrium-5 WORM", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.LTO: { - switch(descriptor.Density) - { - case DensityType.LTO1: - density = "LTO Ultrium"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.LTO1 => "LTO Ultrium", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.LTO2: { - switch(descriptor.Density) - { - case DensityType.LTO2: - density = "LTO Ultrium-2"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.LTO2 => "LTO Ultrium-2", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.DDS3: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "MLR1-26GB"; - - break; - case DensityType.DDS3: - density = "DDS-3"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "MLR1-26GB", + DensityType.DDS3 => "DDS-3", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.DDS4: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "DC-9200"; - - break; - case DensityType.DDS4: - density = "DDS-4"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "DC-9200", + DensityType.DDS4 => "DDS-4", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.DAT72: { - switch(descriptor.Density) - { - case DensityType.DAT72: - density = "DAT-72"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.DAT72 => "DAT-72", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.LTO3: case MediumTypes.LTO3WORM: { - switch(descriptor.Density) - { - case DensityType.LTO3: - density = "LTO Ultrium-3"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.LTO3 => "LTO Ultrium-3", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.DDSCleaning: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "DDS cleaning cartridge"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "DDS cleaning cartridge", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.LTO4: case MediumTypes.LTO4WORM: { - switch(descriptor.Density) - { - case DensityType.LTO4: - density = "LTO Ultrium-4"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.LTO4 => "LTO Ultrium-4", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.LTO5: case MediumTypes.LTO5WORM: { - switch(descriptor.Density) - { - case DensityType.LTO5: - density = "LTO Ultrium-5"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.LTO5 => "LTO Ultrium-5", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.LTO6: case MediumTypes.LTO6WORM: { - switch(descriptor.Density) - { - case DensityType.LTO6: - density = "LTO Ultrium-6"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.LTO6 => "LTO Ultrium-6", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.LTO7: case MediumTypes.LTO7WORM: { - switch(descriptor.Density) - { - case DensityType.LTO7: - density = "LTO Ultrium-7"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.LTO7 => "LTO Ultrium-7", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.LTOCD: { - switch(descriptor.Density) - { - case DensityType.LTO2: - density = "LTO Ultrium-2 in CD emulation mode"; - - break; - case DensityType.LTO3: - density = "LTO Ultrium-3 in CD emulation mode"; - - break; - case DensityType.LTO4: - density = "LTO Ultrium-4 in CD emulation mode"; - - break; - case DensityType.LTO5: - density = "LTO Ultrium-5 in CD emulation mode"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.LTO2 => "LTO Ultrium-2 in CD emulation mode", + DensityType.LTO3 => "LTO Ultrium-3 in CD emulation mode", + DensityType.LTO4 => "LTO Ultrium-4 in CD emulation mode", + DensityType.LTO5 => "LTO Ultrium-5 in CD emulation mode", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.Exatape15m: { - switch(descriptor.Density) - { - case DensityType.Ex8200: - density = "EXB-8200"; - - break; - case DensityType.Ex8200c: - density = "EXB-8200 compressed"; - - break; - case DensityType.Ex8500: - density = "EXB-8500"; - - break; - case DensityType.Ex8500c: - density = "EXB-8500 compressed"; - - break; - case DensityType.Mammoth: - density = "Mammoth"; - - break; - case DensityType.IBM3590: - density = "IBM 3590"; - - break; - case DensityType.IBM3590E: - density = "IBM 3590E"; - - break; - case DensityType.VXA1: - density = "VXA-1"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Ex8200 => "EXB-8200", + DensityType.Ex8200c => "EXB-8200 compressed", + DensityType.Ex8500 => "EXB-8500", + DensityType.Ex8500c => "EXB-8500 compressed", + DensityType.Mammoth => "Mammoth", + DensityType.IBM3590 => "IBM 3590", + DensityType.IBM3590E => "IBM 3590E", + DensityType.VXA1 => "VXA-1", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.Exatape28m: { - switch(descriptor.Density) - { - case DensityType.Ex8200: - density = "EXB-8200"; - - break; - case DensityType.Ex8200c: - density = "EXB-8200 compressed"; - - break; - case DensityType.Ex8500: - density = "EXB-8500"; - - break; - case DensityType.Ex8500c: - density = "EXB-8500 compressed"; - - break; - case DensityType.Mammoth: - density = "Mammoth"; - - break; - case DensityType.CT1: - density = "CompactTape I"; - - break; - case DensityType.CT2: - density = "CompactTape II"; - - break; - case DensityType.IBM3590: - density = "IBM 3590 extended"; - - break; - case DensityType.IBM3590E: - density = "IBM 3590E extended"; - - break; - case DensityType.VXA2: - density = "VXA-2"; - - break; - case DensityType.VXA3: - density = "VXA-3"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Ex8200 => "EXB-8200", + DensityType.Ex8200c => "EXB-8200 compressed", + DensityType.Ex8500 => "EXB-8500", + DensityType.Ex8500c => "EXB-8500 compressed", + DensityType.Mammoth => "Mammoth", + DensityType.CT1 => "CompactTape I", + DensityType.CT2 => "CompactTape II", + DensityType.IBM3590 => "IBM 3590 extended", + DensityType.IBM3590E => "IBM 3590E extended", + DensityType.VXA2 => "VXA-2", + DensityType.VXA3 => "VXA-3", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; @@ -1199,17 +854,11 @@ public static partial class Modes break; case MediumTypes.SDLT2: { - switch(descriptor.Density) - { - case DensityType.SDLT2: - density = "Super DLTtape II"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.SDLT2 => "Super DLTtape II", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; @@ -1236,141 +885,66 @@ public static partial class Modes break; case MediumTypes.DLTtapeS4: { - switch(descriptor.Density) - { - case DensityType.DLTS4: - density = "DLTtape S4"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.DLTS4 => "DLTtape S4", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.Exatape22m: { - switch(descriptor.Density) - { - case DensityType.Ex8200: - density = "EXB-8200"; - - break; - case DensityType.Ex8200c: - density = "EXB-8200 compressed"; - - break; - case DensityType.Ex8500: - density = "EXB-8500"; - - break; - case DensityType.Ex8500c: - density = "EXB-8500 compressed"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Ex8200 => "EXB-8200", + DensityType.Ex8200c => "EXB-8200 compressed", + DensityType.Ex8500 => "EXB-8500", + DensityType.Ex8500c => "EXB-8500 compressed", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.Exatape40m: { - switch(descriptor.Density) - { - case DensityType.Ex8200: - density = "EXB-8200"; - - break; - case DensityType.Ex8200c: - density = "EXB-8200 compressed"; - - break; - case DensityType.Ex8500: - density = "EXB-8500"; - - break; - case DensityType.Ex8500c: - density = "EXB-8500 compressed"; - - break; - case DensityType.Mammoth: - density = "Mammoth"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Ex8200 => "EXB-8200", + DensityType.Ex8200c => "EXB-8200 compressed", + DensityType.Ex8500 => "EXB-8500", + DensityType.Ex8500c => "EXB-8500 compressed", + DensityType.Mammoth => "Mammoth", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.Exatape76m: { - switch(descriptor.Density) - { - case DensityType.Ex8200: - density = "EXB-8200"; - - break; - case DensityType.Ex8200c: - density = "EXB-8200 compressed"; - - break; - case DensityType.Ex8500: - density = "EXB-8500"; - - break; - case DensityType.Ex8500c: - density = "EXB-8500 compressed"; - - break; - case DensityType.Mammoth: - density = "Mammoth"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Ex8200 => "EXB-8200", + DensityType.Ex8200c => "EXB-8200 compressed", + DensityType.Ex8500 => "EXB-8500", + DensityType.Ex8500c => "EXB-8500 compressed", + DensityType.Mammoth => "Mammoth", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.Exatape112m: { - switch(descriptor.Density) - { - case DensityType.Ex8200: - density = "EXB-8200"; - - break; - case DensityType.Ex8200c: - density = "EXB-8200 compressed"; - - break; - case DensityType.Ex8500: - density = "EXB-8500"; - - break; - case DensityType.Ex8500c: - density = "EXB-8500 compressed"; - - break; - case DensityType.Mammoth: - density = "Mammoth"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Ex8200 => "EXB-8200", + DensityType.Ex8200c => "EXB-8200 compressed", + DensityType.Ex8500 => "EXB-8500", + DensityType.Ex8500c => "EXB-8500 compressed", + DensityType.Mammoth => "Mammoth", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; @@ -1382,309 +956,192 @@ public static partial class Modes case MediumTypes.Exatape150m: case MediumTypes.Exatape75m: { - switch(descriptor.Density) - { - case DensityType.Mammoth: - density = "Mammoth"; - - break; - case DensityType.Mammoth2: - density = "Mammoth-2"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Mammoth => "Mammoth", + DensityType.Mammoth2 => "Mammoth-2", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.DC2900SL: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "DC-2900SL"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "DC-2900SL", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.DC9250: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "DC-9250"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "DC-9250", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.SLR32: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "SLR-32"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "SLR-32", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.MLR1SL: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "MRL1-26GBSL"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "MRL1-26GBSL", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.SLRtape50: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "SLRtape-50"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "SLRtape-50", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.SLRtape50SL: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "SLRtape-50 SL"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "SLRtape-50 SL", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.SLR32SL: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "SLR-32 SL"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "SLR-32 SL", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.SLR5: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "SLR-5"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "SLR-5", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.SLR5SL: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "SLR-5 SL"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "SLR-5 SL", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.SLRtape7: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "SLRtape-7"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "SLRtape-7", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.SLRtape7SL: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "SLRtape-7 SL"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "SLRtape-7 SL", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.SLRtape24: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "SLRtape-24"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "SLRtape-24", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.SLRtape24SL: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "SLRtape-24 SL"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "SLRtape-24 SL", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.SLRtape140: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "SLRtape-140"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "SLRtape-140", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.SLRtape40: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "SLRtape-40"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "SLRtape-40", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.SLRtape60: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "SLRtape-60 or SLRtape-75"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "SLRtape-60 or SLRtape-75", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.SLRtape100: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "SLRtape-100"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "SLRtape-100", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; case MediumTypes.SLR40_60_100: { - switch(descriptor.Density) - { - case DensityType.Default: - density = "SLR40, SLR60 or SLR100"; - - break; - default: - density = $"unknown density code 0x{(byte)descriptor.Density:X2}"; - - break; - } + density = descriptor.Density switch + { + DensityType.Default => "SLR40, SLR60 or SLR100", + _ => $"unknown density code 0x{(byte)descriptor.Density:X2}" + }; } break; diff --git a/SCSI/Sense.cs b/SCSI/Sense.cs index 36dd3aa..09d1889 100644 --- a/SCSI/Sense.cs +++ b/SCSI/Sense.cs @@ -187,14 +187,14 @@ public static class Sense if((sense[0] & 0x70) != 0x70) return sense.Length != 4 ? SenseType.Invalid : SenseType.StandardSense; - switch(sense[0] & 0x0F) - { - case 0: return SenseType.ExtendedSenseFixedCurrent; - case 1: return SenseType.ExtendedSenseFixedPast; - case 2: return SenseType.ExtendedSenseDescriptorCurrent; - case 3: return SenseType.ExtendedSenseDescriptorPast; - default: return SenseType.Unknown; - } + return (sense[0] & 0x0F) switch + { + 0 => SenseType.ExtendedSenseFixedCurrent, + 1 => SenseType.ExtendedSenseFixedPast, + 2 => SenseType.ExtendedSenseDescriptorCurrent, + 3 => SenseType.ExtendedSenseDescriptorPast, + _ => SenseType.Unknown + }; } public static StandardSense? DecodeStandard(byte[] sense) @@ -593,28 +593,25 @@ public static class Sense public static string PrettifyDescriptor00(byte[] descriptor) => PrettifyDescriptor00(DecodeDescriptor00(descriptor)); - public static string GetSenseKey(SenseKeys key) - { - 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"; - } - } + public static string GetSenseKey(SenseKeys key) => key switch + { + SenseKeys.AbortedCommand => "ABORTED COMMAND", + SenseKeys.BlankCheck => "BLANK CHECK", + SenseKeys.CopyAborted => "COPY ABORTED", + SenseKeys.DataProtect => "DATA PROTECT", + SenseKeys.Equal => "EQUAL", + SenseKeys.HardwareError => "HARDWARE ERROR", + SenseKeys.IllegalRequest => "ILLEGAL REQUEST", + SenseKeys.MediumError => "MEDIUM ERROR", + SenseKeys.Miscompare => "MISCOMPARE", + SenseKeys.NoSense => "NO SENSE", + SenseKeys.PrivateUse => "PRIVATE USE", + SenseKeys.RecoveredError => "RECOVERED ERROR", + SenseKeys.Completed => "COMPLETED", + SenseKeys.UnitAttention => "UNIT ATTENTION", + SenseKeys.VolumeOverflow => "VOLUME OVERFLOW", + _ => "UNKNOWN" + }; [SuppressMessage("ReSharper", "InconsistentNaming")] public static string GetSenseDescription(byte ASC, byte ASCQ) @@ -1431,11 +1428,11 @@ public static class Sense break; case 0x40: - switch(ASCQ) - { - case 0x00: return "RAM FAILURE"; - default: return $"DIAGNOSTIC FAILURE ON COMPONENT {ASCQ:X2}h"; - } + return ASCQ switch + { + 0x00 => "RAM FAILURE", + _ => $"DIAGNOSTIC FAILURE ON COMPONENT {ASCQ:X2}h" + }; case 0x41: switch(ASCQ) { diff --git a/SCSI/VendorString.cs b/SCSI/VendorString.cs index 5b8f274..f20e18d 100644 --- a/SCSI/VendorString.cs +++ b/SCSI/VendorString.cs @@ -37,809 +37,806 @@ using System.Diagnostics.CodeAnalysis; public static class VendorString { [SuppressMessage("ReSharper", "StringLiteralTypo")] - public static string Prettify(string scsiVendorString) - { - 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; - } - } + public static string Prettify(string scsiVendorString) => scsiVendorString switch + { + "0B4C" => "MOOSIK Ltd.", + "13FE" => "PHISON", + "2AI" => "2AI (Automatisme et Avenir Informatique)", + "3M" => "3M Company", + "3nhtech" => "3NH Technologies", + "3PARdata" => "3PARdata, Inc.", + "A-Max" => "A-Max Technology Co., Ltd", + "ABSOLUTE" => "Absolute Analysis", + "ACARD" => "ACARD Technology Corp.", + "Accusys" => "Accusys INC.", + "Acer" => "Acer, Inc.", + "ACL" => "Automated Cartridge Librarys, Inc.", + "Actifio" => "Actifio", + "Acuid" => "Acuid Corporation Ltd.", + "AcuLab" => "AcuLab, Inc. (Tulsa, OK)", + "ADAPTEC" => "Adaptec", + "ADIC" => "Advanced Digital Information Corporation", + "ADSI" => "Adaptive Data Systems, Inc. (a Western Digital subsidiary)", + "ADTX" => "ADTX Co., Ltd.", + "ADVA" => "ADVA Optical Networking AG", + "AEM" => "AEM Performance Electronics", + "AERONICS" => "Aeronics, Inc.", + "AGFA" => "AGFA", + "Agilent" => "Agilent Technologies", + "AIC" => "Advanced Industrial Computer, Inc.", + "AIPTEK" => "AIPTEK International Inc.", + "Alcohol" => "Alcohol Soft", + "ALCOR" => "Alcor Micro, Corp.", + "AMCC" => "Applied Micro Circuits Corporation", + "AMCODYNE" => "Amcodyne", + "Amgeon" => "Amgeon LLC", + "AMI" => "American Megatrends, Inc.", + "AMPEX" => "Ampex Data Systems", + "Amphenol" => "Amphenol", + "Amtl" => "Tenlon Technology Co.,Ltd", + "ANAMATIC" => "Anamartic Limited (England)", + "Ancor" => "Ancor Communications, Inc.", + "ANCOT" => "ANCOT Corp.", + "ANDATACO" => "Andataco", + "andiamo" => "Andiamo Systems, Inc.", + "ANOBIT" => "Anobit", + "ANRITSU" => "Anritsu Corporation", + "ANTONIO" => "Antonio Precise Products Manufactory Ltd.", + "AoT" => "Art of Technology AG", + "APPLE" => "Apple Computer, Inc.", + "ARCHIVE" => "Archive", + "ARDENCE" => "Ardence Inc", + "Areca" => "Areca Technology Corporation", + "Arena" => "MaxTronic International Co., Ltd.", + "Argent" => "Argent Data Systems, Inc.", + "ARIO" => "Ario Data Networks, Inc.", + "ARISTOS" => "Aristos Logic Corp.", + "ARK" => "ARK Research Corporation", + "ARL:UT@A" => "Applied Research Laboratories : University of Texas at Austin", + "ARTECON" => "Artecon Inc.", + "Artistic" => "Artistic Licence (UK) Ltd", + "ARTON" => "Arton Int.", + "ASACA" => "ASACA Corp.", + "ASC" => "Advanced Storage Concepts, Inc.", + "ASPEN" => "Aspen Peripherals", + "AST" => "AST Research", + "ASTEK" => "Astek Corporation", + "ASTK" => "Alcatel STK A/S", + "AStor" => "AccelStor, Inc.", + "ASTUTE" => "Astute Networks, Inc.", + "AT&T" => "AT&T", + "ATA" => "SCSI / ATA Translator Software (Organization Not Specified)", + "ATARI" => "Atari Corporation", + "ATech" => "ATech electronics", + "ATG CYG" => "ATG Cygnet Inc.", + "ATL" => "Quantum|ATL Products", + "ATTO" => "ATTO Technology Inc.", + "ATTRATEC" => "Attratech Ltd liab. Co", + "ATX" => "Alphatronix", + "AURASEN" => "Aurasen Limited", + "Avago" => "Avago Technologies", + "AVC" => "AVC Technology Ltd", + "AVIDVIDR" => "AVID Technologies, Inc.", + "AVR" => "Advanced Vision Research", + "AXSTOR" => "AXSTOR", + "Axxana" => "Axxana Ltd.", + "B*BRIDGE" => "Blockbridge Networks LLC", + "BALLARD" => "Ballard Synergy Corp.", + "Barco" => "Barco", + "BAROMTEC" => "Barom Technologies Co., Ltd.", + "Bassett" => "Bassett Electronic Systems Ltd", + "BC Hydro" => "BC Hydro", + "BDT" => "BDT AG", + "BECEEM" => "Beceem Communications, Inc", + "BENQ" => "BENQ Corporation.", + "BERGSWD" => "Berg Software Design", + "BEZIER" => "Bezier Systems, Inc.", + "BHTi" => "Breece Hill Technologies", + "biodata" => "Biodata Devices SL", + "BIOS" => "BIOS Corporation", + "BIR" => "Bio-Imaging Research, Inc.", + "BiT" => "BiT Microsystems", + "BITMICRO" => "BiT Microsystems, Inc.", + "Blendlgy" => "Blendology Limited", + "BLOOMBAS" => "Bloombase Technologies Limited", + "BlueArc" => "BlueArc Corporation", + "bluecog" => "bluecog", + "BME-HVT" => "Broadband Infocommunicatons and Electromagnetic Theory Department", + "BNCHMARK" => "Benchmark Tape Systems Corporation", + "Bosch" => "Robert Bosch GmbH", + "Botman" => "Botmanfamily Electronics", + "BoxHill" => "Box Hill Systems Corporation", + "BRDGWRKS" => "Bridgeworks Ltd.", + "BREA" => "BREA Technologies, Inc.", + "BREECE" => "Breece Hill LLC", + "BreqLabs" => "BreqLabs Inc.", + "Broadcom" => "Broadcom Corporation", + "BROCADE" => "Brocade Communications Systems, Incorporated", + "BUFFALO" => "BUFFALO INC.", + "BULL" => "Bull Peripherals Corp.", + "BUSLOGIC" => "BusLogic Inc.", + "BVIRTUAL" => "B-Virtual N.V.", + "CACHEIO" => "CacheIO LLC", + "CalComp" => "CalComp, A Lockheed Company", + "CALCULEX" => "CALCULEX, Inc.", + "CALIPER" => "Caliper (California Peripheral Corp.)", + "CAMBEX" => "Cambex Corporation", + "CAMEOSYS" => "Cameo Systems Inc.", + "CANDERA" => "Candera Inc.", + "CAPTION" => "CAPTION BANK", + "CAST" => "Advanced Storage Tech", + "CATALYST" => "Catalyst Enterprises", + "CCDISK" => "iSCSI Cake", + "CDC" => "Control Data or MPI", + "CDP" => "Columbia Data Products", + "Celsia" => "A M Bromley Limited", + "CenData" => "Central Data Corporation", + "Cereva" => "Cereva Networks Inc.", + "CERTANCE" => "Certance", + "Chantil" => "Chantil Technology", + "CHEROKEE" => "Cherokee Data Systems", + "CHINON" => "Chinon", + "CHRISTMA" => "Christmann Informationstechnik + Medien GmbH & Co KG", + "CIE&YED" => "YE Data, C.Itoh Electric Corp.", + "CIPHER" => "Cipher Data Products", + "Ciprico" => "Ciprico, Inc.", + "CIRRUSL" => "Cirrus Logic Inc.", + "CISCO" => "Cisco Systems, Inc.", + "CLEARSKY" => "ClearSky Data, Inc.", + "CLOVERLF" => "Cloverleaf Communications, Inc", + "CLS" => "Celestica", + "CMD" => "CMD Technology Inc.", + "CMTechno" => "CMTech", + "CNGR SFW" => "Congruent Software, Inc.", + "CNSi" => "Chaparral Network Storage, Inc.", + "CNT" => "Computer Network Technology", + "COBY" => "Coby Electronics Corporation, USA", + "COGITO" => "Cogito", + "COMAY" => "Corerise Electronics", + "COMPAQ" => "Compaq Computer Corporation", + "COMPELNT" => "Compellent Technologies, Inc.", + "COMPORT" => "Comport Corp.", + "COMPSIG" => "Computer Signal Corporation", + "COMPTEX" => "Comptex Pty Limited", + "CONNER" => "Conner Peripherals", + "COPANSYS" => "COPAN SYSTEMS INC", + "CORAID" => "Coraid, Inc", + "CORE" => "Core International, Inc.", + "CORERISE" => "Corerise Electronics", + "COVOTE" => "Covote GmbH & Co KG", + "COWON" => "COWON SYSTEMS, Inc.", + "CPL" => "Cross Products Ltd", + "CPU TECH" => "CPU Technology, Inc.", + "CREO" => "Creo Products Inc.", + "CROSFLD" => "Crosfield Electronics", + "CROSSRDS" => "Crossroads Systems, Inc.", + "crosswlk" => "Crosswalk, Inc.", + "CSCOVRTS" => "Cisco - Veritas", + "CSM, INC" => "Computer SM, Inc.", + "Cunuqui" => "CUNUQUI SLU", + "CYBERNET" => "Cybernetics", + "Cygnal" => "Dekimo", + "CYPRESS" => "Cypress Semiconductor Corp.", + "D Bit" => "Digby's Bitpile, Inc. DBA D Bit", + "DALSEMI" => "Dallas Semiconductor", + "DANEELEC" => "Dane-Elec", + "DANGER" => "Danger Inc.", + "DAT-MG" => "DAT Manufacturers Group", + "Data Com" => "Data Com Information Systems Pty. Ltd.", + "DATABOOK" => "Databook, Inc.", + "DATACOPY" => "Datacopy Corp.", + "DataCore" => "DataCore Software Corporation", + "DataG" => "DataGravity", + "DATAPT" => "Datapoint Corp.", + "DATARAM" => "Dataram Corporation", + "DATC" => "Datum Champion Technology Co., Ltd", + "DAVIS" => "Daviscomms (S) Pte Ltd", + "DCS" => "ShenZhen DCS Group Co.,Ltd", + "DDN" => "DataDirect Networks, Inc.", + "DDRDRIVE" => "DDRdrive LLC", + "DE" => "Dimension Engineering LLC", + "DEC" => "Digital Equipment Corporation", + "DEI" => "Digital Engineering, Inc.", + "DELL" => "Dell, Inc.", + "Dell(tm)" => "Dell, Inc", + "DELPHI" => "Delphi Data Div. of Sparks Industries, Inc.", + "DENON" => "Denon/Nippon Columbia", + "DenOptix" => "DenOptix, Inc.", + "DEST" => "DEST Corp.", + "DFC" => "DavioFranke.com", + "DFT" => "Data Fault Tolerance System CO.,LTD.", + "DGC" => "Data General Corp.", + "DIGIDATA" => "Digi-Data Corporation", + "DigiIntl" => "Digi International", + "Digital" => "Digital Equipment Corporation", + "DILOG" => "Distributed Logic Corp.", + "DISC" => "Document Imaging Systems Corp.", + "DiscSoft" => "Disc Soft Ltd", + "DLNET" => "Driveline", + "DNS" => "Data and Network Security", + "DNUK" => "Digital Networks Uk Ltd", + "DotHill" => "Dot Hill Systems Corp.", + "DP" => "Dell, Inc.", + "DPT" => "Distributed Processing Technology", + "Drewtech" => "Drew Technologies, Inc.", + "DROBO" => "Data Robotics, Inc.", + "DSC" => "DigitalStream Corporation", + "DSI" => "Data Spectrum, Inc.", + "DSM" => "Deterner Steuerungs- und Maschinenbau GmbH & Co.", + "DSNET" => "Cleversafe, Inc.", + "DT" => "Double-Take Software, INC.", + "DTC QUME" => "Data Technology Qume", + "DXIMAGIN" => "DX Imaging", + "E-Motion" => "E-Motion LLC", + "EARTHLAB" => "EarthLabs", + "EarthLCD" => "Earth Computer Technologies, Inc.", + "ECCS" => "ECCS, Inc.", + "ECMA" => "European Computer Manufacturers Association", + "EDS" => "Embedded Data Systems", + "EIM" => "InfoCore", + "ELE Intl" => "ELE International", + "ELEGANT" => "Elegant Invention, LLC", + "Elektron" => "Elektron Music Machines MAV AB", + "elipsan" => "Elipsan UK Ltd.", + "Elms" => "Elms Systems Corporation", + "ELSE" => "ELSE Ltd.", + "ELSEC" => "Littlemore Scientific", + "EMASS" => "EMASS, Inc.", + "EMC" => "EMC Corp.", + "EMiT" => "EMiT Conception Eletronique", + "EMTEC" => "EMTEC Magnetics", + "EMULEX" => "Emulex", + "ENERGY-B" => "Energybeam Corporation", + "ENGENIO" => "Engenio Information Technologies, Inc.", + "ENMOTUS" => "Enmotus Inc", + "Entacore" => "Entacore", + "EPOS" => "EPOS Technologies Ltd.", + "EPSON" => "Epson", + "EQLOGIC" => "EqualLogic", + "Eris/RSI" => "RSI Systems, Inc.", + "ETERNE" => "EterneData Technology Co.,Ltd.(China PRC.)", + "EuroLogc" => "Eurologic Systems Limited", + "evolve" => "Evolution Technologies, Inc", + "EXABYTE" => "Exabyte Corp.", + "EXATEL" => "Exatelecom Co., Ltd.", + "EXAVIO" => "Exavio, Inc.", + "Exsequi" => "Exsequi Ltd", + "Exxotest" => "Annecy Electronique", + "FAIRHAVN" => "Fairhaven Health, LLC", + "FALCON" => "FalconStor, Inc.", + "FDS" => "Formation Data Systems", + "FFEILTD" => "FujiFilm Electonic Imaging Ltd", + "Fibxn" => "Fiberxon, Inc.", + "FID" => "First International Digital, Inc.", + "FILENET" => "FileNet Corp.", + "FirmFact" => "Firmware Factory Ltd", + "FLYFISH" => "Flyfish Technologies", + "FOXCONN" => "Foxconn Technology Group", + "FRAMDRV" => "FRAMEDRIVE Corp.", + "FREECION" => "Nable Communications, Inc.", + "FRESHDTK" => "FreshDetect GmbH", + "FSC" => "Fujitsu Siemens Computers", + "FTPL" => "Frontline Technologies Pte Ltd", + "FUJI" => "Fuji Electric Co., Ltd. (Japan)", + "FUJIFILM" => "Fuji Photo Film, Co., Ltd.", + "FUJITSU" => "Fujitsu", + "FUNAI" => "Funai Electric Co., Ltd.", + "FUSIONIO" => "Fusion-io Inc.", + "FUTURED" => "Future Domain Corp.", + "G&D" => "Giesecke & Devrient GmbH", + "G.TRONIC" => "Globaltronic - Electronica e Telecomunicacoes, S.A.", + "Gadzoox" => "Gadzoox Networks, Inc.", + "Gammaflx" => "Gammaflux L.P.", + "GDI" => "Generic Distribution International", + "GEMALTO" => "gemalto", + "Gen_Dyn" => "General Dynamics", + "Generic" => "Generic Technology Co., Ltd.", + "GENSIG" => "General Signal Networks", + "GEO" => "Green Energy Options Ltd", + "GIGATAPE" => "GIGATAPE GmbH", + "GIGATRND" => "GigaTrend Incorporated", + "Global" => "Global Memory Test Consortium", + "Gnutek" => "Gnutek Ltd.", + "Goidelic" => "Goidelic Precision, Inc.", + "GoldKey" => "GoldKey Security Corporation", + "GoldStar" => "LG Electronics Inc.", + "GOOGLE" => "Google, Inc.", + "GORDIUS" => "Gordius", + "GOULD" => "Gould", + "HAGIWARA" => "Hagiwara Sys-Com Co., Ltd.", + "HAPP3" => "Inventec Multimedia and Telecom co., ltd", + "HDS" => "Horizon Data Systems, Inc.", + "Helldyne" => "Helldyne, Inc", + "Heydays" => "Mazo Technology Co., Ltd.", + "HGST" => "HGST a Western Digital Company", + "HI-TECH" => "HI-TECH Software Pty. Ltd.", + "HITACHI" => "Hitachi America Ltd or Nissei Sangyo America Ltd", + "HL-DT-ST" => "Hitachi-LG Data Storage, Inc.", + "HONEYWEL" => "Honeywell Inc.", + "Hoptroff" => "HexWax Ltd", + "HORIZONT" => "Horizontigo Software", + "HP" => "Hewlett Packard", + "HPE" => "Hewlett Packard Enterprise", + "HPI" => "HP Inc.", + "HPQ" => "Hewlett Packard", + "HUALU" => "CHINA HUALU GROUP CO., LTD", + "HUASY" => "Huawei Symantec Technologies Co., Ltd.", + "HYLINX" => "Hylinx Ltd.", + "HYUNWON" => "HYUNWON inc", + "i-cubed" => "i-cubed ltd.", + "IBM" => "International Business Machines", + "Icefield" => "Icefield Tools Corporation", + "Iceweb" => "Iceweb Storage Corp", + "ICL" => "ICL", + "ICP" => "ICP vortex Computersysteme GmbH", + "IDE" => "International Data Engineering, Inc.", + "IDG" => "Interface Design Group", + "IET" => "ISCSI ENTERPRISE TARGET", + "IFT" => "Infortrend Technology, Inc.", + "IGR" => "Intergraph Corp.", + "IMAGINE" => "Imagine Communications Corp.", + "IMAGO" => "IMAGO SOFTWARE SL", + "IMATION" => "Imation", + "IMPLTD" => "Integrated Micro Products Ltd.", + "IMPRIMIS" => "Imprimis Technology Inc.", + "INCIPNT" => "Incipient Technologies Inc.", + "INCITS" => "InterNational Committee for Information Technology", + "INDCOMP" => "Industrial Computing Limited", + "Indigita" => "Indigita Corporation", + "INFOCORE" => "InfoCore", + "INITIO" => "Initio Corporation", + "INRANGE" => "INRANGE Technologies Corporation", + "Insight" => "L-3 Insight Technology Inc", + "INSITE" => "Insite Peripherals", + "integrix" => "Integrix, Inc.", + "INTEL" => "Intel Corporation", + "Intransa" => "Intransa, Inc.", + "IOC" => "I/O Concepts, Inc.", + "iofy" => "iofy Corporation", + "IOMEGA" => "Iomega", + "IOT" => "IO Turbine, Inc.", + "iPaper" => "intelliPaper, LLC", + "iqstor" => "iQstor Networks, Inc.", + "iQue" => "iQue", + "ISi" => "Information Storage inc.", + "Isilon" => "Isilon Systems, Inc.", + "ISO" => "International Standards Organization", + "iStor" => "iStor Networks, Inc.", + "ITC" => "International Tapetronics Corporation", + "iTwin" => "iTwin Pte Ltd", + "IVIVITY" => "iVivity, Inc.", + "IVMMLTD" => "InnoVISION Multimedia Ltd.", + "JABIL001" => "Jabil Circuit", + "JETWAY" => "Jetway Information Co., Ltd", + "JMR" => "JMR Electronics Inc.", + "JOFEMAR" => "Jofemar", + "JOLLYLOG" => "Jolly Logic", + "JPC Inc." => "JPC Inc.", + "JSCSI" => "jSCSI Project", + "Juniper" => "Juniper Networks", + "JVC" => "JVC Information Products Co.", + "KASHYA" => "Kashya, Inc.", + "KENNEDY" => "Kennedy Company", + "KENWOOD" => "KENWOOD Corporation", + "KEWL" => "Shanghai KEWL Imp&Exp Co., Ltd.", + "Key Tech" => "Key Technologies, Inc", + "KMNRIO" => "Kaminario Technologies Ltd.", + "KODAK" => "Eastman Kodak", + "KONAN" => "Konan", + "koncepts" => "koncepts International Ltd.", + "KONICA" => "Konica Japan", + "KOVE" => "KOVE", + "KSCOM" => "KSCOM Co. Ltd.,", + "KUDELSKI" => "Nagravision SA - Kudelski Group", + "Kyocera" => "Kyocera Corporation", + "Lapida" => "Gonmalo Electronics", + "LAPINE" => "Lapine Technology", + "LASERDRV" => "LaserDrive Limited", + "LASERGR" => "Lasergraphics, Inc.", + "LeapFrog" => "LeapFrog Enterprises, Inc.", + "LEFTHAND" => "LeftHand Networks", + "Leica" => "Leica Camera AG", + "Lexar" => "Lexar Media, Inc.", + "LEYIO" => "LEYIO", + "LG" => "LG Electronics Inc.", + "LGE" => "LG Electronics Inc.", + "LIBNOVA" => "LIBNOVA, SL Digital Preservation Systems", + "LION" => "Lion Optics Corporation", + "LMS" => "Laser Magnetic Storage International Company", + "LoupTech" => "Loup Technologies, Inc.", + "LSI" => "LSI Corp. (was LSI Logic Corp.)", + "LSILOGIC" => "LSI Logic Storage Systems, Inc.", + "LTO-CVE" => "Linear Tape - Open, Compliance Verification Entity", + "LUXPRO" => "Luxpro Corporation", + "MacroSAN" => "MacroSAN Technologies Co., Ltd.", + "Malakite" => "Malachite Technologies (New VID is: Sandial)", + "MarcBoon" => "marcboon.com", + "Marner" => "Marner Storage Technologies, Inc.", + "MARVELL" => "Marvell Semiconductor, Inc.", + "Matrix" => "Matrix Orbital Corp.", + "MATSHITA" => "Matsushita", + "MAXELL" => "Hitachi Maxell, Ltd.", + "MAXIM-IC" => "Maxim Integrated Products", + "MaxOptix" => "Maxoptix Corp.", + "MAXSTRAT" => "Maximum Strategy, Inc.", + "MAXTOR" => "Maxtor Corp.", + "MaXXan" => "MaXXan Systems, Inc.", + "MAYCOM" => "maycom Co., Ltd.", + "MBEAT" => "K-WON C&C Co.,Ltd", + "MCC" => "Measurement Computing Corporation", + "McDATA" => "McDATA Corporation", + "MCUBE" => "Mcube Technology Co., Ltd.", + "MDI" => "Micro Design International, Inc.", + "MEADE" => "Meade Instruments Corporation", + "mediamat" => "mediamatic", + "MegaElec" => "Mega Electronics Ltd", + "MEII" => "Mountain Engineering II, Inc.", + "MELA" => "Mitsubishi Electronics America", + "MELCO" => "Mitsubishi Electric (Japan)", + "mellanox" => "Mellanox Technologies Ltd.", + "MEMOREX" => "Memorex Telex Japan Ltd.", + "MEMREL" => "Memrel Corporation", + "MEMTECH" => "MemTech Technology", + "Mendocin" => "Mendocino Software", + "MendoCno" => "Mendocino Software", + "MERIDATA" => "Oy Meridata Finland Ltd", + "METHODEI" => "Methode Electronics India pvt ltd", + "METRUM" => "Metrum, Inc.", + "MHTL" => "Matsunichi Hi-Tech Limited", + "MICROBTX" => "Microbotics Inc.", + "Microchp" => "Microchip Technology, Inc.", + "MICROLIT" => "Microlite Corporation", + "MICRON" => "Micron Technology, Inc.", + "MICROP" => "Micropolis", + "MICROTEK" => "Microtek Storage Corp", + "Minitech" => "Minitech (UK) Limited", + "Minolta" => "Minolta Corporation", + "MINSCRIB" => "Miniscribe", + "MiraLink" => "MiraLink Corporation", + "Mirifica" => "Mirifica s.r.l.", + "MITSUMI" => "Mitsumi Electric Co., Ltd.", + "MKM" => "Mitsubishi Kagaku Media Co., LTD.", + "Mobii" => "Mobii Systems (Pty.) Ltd.", + "MOL" => "Petrosoft Sdn. Bhd.", + "MOSAID" => "Mosaid Technologies Inc.", + "MOTOROLA" => "Motorola", + "MP-400" => "Daiwa Manufacturing Limited", + "MPC" => "MPC Corporation", + "MPCCORP" => "MPC Computers", + "MPEYE" => "Touchstone Technology Co., Ltd", + "MPIO" => "DKT Co.,Ltd", + "MPM" => "Mitsubishi Paper Mills, Ltd.", + "MPMan" => "MPMan.com, Inc.", + "MSFT" => "Microsoft Corporation", + "MSI" => "Micro-Star International Corp.", + "MST" => "Morning Star Technologies, Inc.", + "MSystems" => "M-Systems Flash Disk Pioneers", + "MTI" => "MTI Technology Corporation", + "MTNGATE" => "MountainGate Data Systems", + "MXI" => "Memory Experts International", + "nac" => "nac Image Technology Inc.", + "NAGRA" => "Nagravision SA - Kudelski Group", + "NAI" => "North Atlantic Industries", + "NAKAMICH" => "Nakamichi Corporation", + "NatInst" => "National Instruments", + "NatSemi" => "National Semiconductor Corp.", + "NCITS" => "InterNational Committee for Information Technology Standards (INCITS)", + "NCL" => "NCL America", + "NCR" => "NCR Corporation", + "NDBTECH" => "NDB Technologie Inc.", + "Neartek" => "Neartek, Inc.", + "NEC" => "NEC", + "NETAPP" => "NetApp, Inc. (was Network Appliance)", + "NetBSD" => "The NetBSD Foundation", + "Netcom" => "Netcom Storage", + "NETENGIN" => "NetEngine, Inc.", + "NEWISYS" => "Newisys Data Storage", + "Newtech" => "Newtech Co., Ltd.", + "NEXSAN" => "Nexsan Technologies, Ltd.", + "NFINIDAT" => "Infinidat Ltd.", + "NHR" => "NH Research, Inc.", + "Nike" => "Nike, Inc.", + "Nimble" => "Nimble Storage", + "NISCA" => "NISCA Inc.", + "NISHAN" => "Nishan Systems Inc.", + "Nitz" => "Nitz Associates, Inc.", + "NKK" => "NKK Corp.", + "NRC" => "Nakamichi Research Corporation", + "NSD" => "Nippon Systems Development Co.,Ltd.", + "NSM" => "NSM Jukebox GmbH", + "nStor" => "nStor Technologies, Inc.", + "NT" => "Northern Telecom", + "NUCONNEX" => "NuConnex", + "NUSPEED" => "NuSpeed, Inc.", + "NVIDIA" => "NVIDIA Corporation", + "NVMe" => "NVM Express Working Group", + "OAI" => "Optical Access International", + "OCE" => "Oce Graphics", + "ODS" => "ShenZhen DCS Group Co.,Ltd", + "OHDEN" => "Ohden Co., Ltd.", + "OKI" => "OKI Electric Industry Co.,Ltd (Japan)", + "Olidata" => "Olidata S.p.A.", + "OMI" => "Optical Media International", + "OMNIFI" => "Rockford Corporation - Omnifi Media", + "OMNIS" => "OMNIS Company (FRANCE)", + "Ophidian" => "Ophidian Designs", + "opslag" => "Tyrone Systems", + "Optelec" => "Optelec BV", + "Optiarc" => "Sony Optiarc Inc.", + "OPTIMEM" => "Cipher/Optimem", + "OPTOTECH" => "Optotech", + "ORACLE" => "Oracle Corporation", + "ORANGE" => "Orange Micro, Inc.", + "ORCA" => "Orca Technology", + "Origin" => "Origin Energy", + "OSI" => "Optical Storage International", + "OSNEXUS" => "OS NEXUS, Inc.", + "OTL" => "OTL Engineering", + "OVERLAND" => "Overland Storage Inc.", + "pacdigit" => "Pacific Digital Corp", + "Packard" => "Parkard Bell", + "Panasas" => "Panasas, Inc.", + "PARALAN" => "Paralan Corporation", + "PASCOsci" => "Pasco Scientific", + "PATHLGHT" => "Pathlight Technology, Inc.", + "PCS" => "Pro Charging Systems, LLC", + "PerStor" => "Perstor", + "PERTEC" => "Pertec Peripherals Corporation", + "PFTI" => "Performance Technology Inc.", + "PFU" => "PFU Limited", + "Phigment" => "Phigment Technologies", + "PHILIPS" => "Philips Electronics", + "PICO" => "Packard Instrument Company", + "PIK" => "TECHNILIENT & MCS", + "Pillar" => "Pillar Data Systems", + "PIONEER" => "Pioneer Electronic Corp.", + "Pirus" => "Pirus Networks", + "PIVOT3" => "Pivot3, Inc.", + "PLASMON" => "Plasmon Data", + "Pliant" => "Pliant Technology, Inc.", + "PMCSIERA" => "PMC-Sierra", + "PME" => "Precision Measurement Engineering", + "PNNMed" => "PNN Medical SA", + "POKEN" => "Poken SA", + "POLYTRON" => "PT. HARTONO ISTANA TEKNOLOGI", + "PRAIRIE" => "PrairieTek", + "PREPRESS" => "PrePRESS Solutions", + "PRESOFT" => "PreSoft Architects", + "PRESTON" => "Preston Scientific", + "PRIAM" => "Priam", + "PRIMAGFX" => "Primagraphics Ltd", + "PRIMOS" => "Primos", + "PROCOM" => "Procom Technology", + "PROLIFIC" => "Prolific Technology Inc.", + "PROMISE" => "PROMISE TECHNOLOGY, Inc", + "PROSTOR" => "ProStor Systems, Inc.", + "PROSUM" => "PROSUM", + "PROWARE" => "Proware Technology Corp.", + "PTI" => "Peripheral Technology Inc.", + "PTICO" => "Pacific Technology International", + "PURE" => "PURE Storage", + "Qi-Hardw" => "Qi Hardware", + "QIC" => "Quarter-Inch Cartridge Drive Standards, Inc.", + "QLogic" => "QLogic Corporation", + "QNAP" => "QNAP Systems", + "Qsan" => "QSAN Technology, Inc.", + "QUALSTAR" => "Qualstar", + "QUANTEL" => "Quantel Ltd.", + "QUANTUM" => "Quantum Corp.", + "QUIX" => "Quix Computerware AG", + "R-BYTE" => "R-Byte, Inc.", + "RACALREC" => "Racal Recorders", + "RADITEC" => "Radikal Technologies Deutschland GmbH", + "RADSTONE" => "Radstone Technology", + "RAIDINC" => "RAID Inc.", + "RASSYS" => "Rasilient Systems Inc.", + "RASVIA" => "Rasvia Systems, Inc.", + "rave-mp" => "Go Video", + "RDKMSTG" => "MMS Dipl. Ing. Rolf-Dieter Klein", + "RDStor" => "Rorke China", + "Readboy" => "Readboy Ltd Co.", + "Realm" => "Realm Systems", + "realtek" => "Realtek Semiconductor Corp.", + "REDUXIO" => "Reduxio Systems Ltd.", + "rehanltd" => "Rehan Electronics Ltd", + "REKA" => "REKA HEALTH PTE LTD", + "RELDATA" => "RELDATA Inc", + "RENAGmbH" => "RENA GmbH", + "ReThinkM" => "RETHINK MEDICAL, INC", + "Revivio" => "Revivio, Inc.", + "RGBLaser" => "RGB Lasersysteme GmbH", + "RGI" => "Raster Graphics, Inc.", + "RHAPSODY" => "Rhapsody Networks, Inc.", + "RHS" => "Racal-Heim Systems GmbH", + "RICOH" => "Ricoh", + "RODIME" => "Rodime", + "Rorke" => "RD DATA Technology (ShenZhen) Limited", + "Royaltek" => "RoyalTek company Ltd.", + "RPS" => "RPS", + "RTI" => "Reference Technology", + "S-D" => "Sauer-Danfoss", + "S-flex" => "Storageflex Inc", + "S-SYSTEM" => "S-SYSTEM", + "S1" => "storONE", + "SAMSUNG" => "Samsung Electronics Co., Ltd.", + "SAN" => "Storage Area Networks, Ltd.", + "Sandial" => "Sandial Systems, Inc.", + "SanDisk" => "SanDisk Corporation", + "SANKYO" => "Sankyo Seiki", + "SANRAD" => "SANRAD Inc.", + "SANYO" => "SANYO Electric Co., Ltd.", + "SC.Net" => "StorageConnections.Net", + "SCALE" => "Scale Computing, Inc.", + "SCIENTEK" => "SCIENTEK CORP", + "SCInc." => "Storage Concepts, Inc.", + "SCREEN" => "Dainippon Screen Mfg. Co., Ltd.", + "SDI" => "Storage Dimensions, Inc.", + "SDS" => "Solid Data Systems", + "SEAC" => "SeaChange International, Inc.", + "SEAGATE" => "Seagate", + "SEAGRAND" => "SEAGRAND In Japan", + "Seanodes" => "Seanodes", + "Sec. Key" => "SecureKey Technologies Inc.", + "SEQUOIA" => "Sequoia Advanced Technologies, Inc.", + "SGI" => "Silicon Graphics International", + "Shannon" => "Shannon Systems Co., Ltd.", + "Shinko" => "Shinko Electric Co., Ltd.", + "SIEMENS" => "Siemens", + "SigmaTel" => "SigmaTel, Inc.", + "SII" => "Seiko Instruments Inc.", + "SIMPLE" => "SimpleTech, Inc.", + "SIVMSD" => "IMAGO SOFTWARE SL", + "SKhynix" => "SK hynix Inc.", + "SLCNSTOR" => "SiliconStor, Inc.", + "SLI" => "Sierra Logic, Inc.", + "SMCI" => "Super Micro Computer, Inc.", + "SmrtStor" => "Smart Storage Systems", + "SMS" => "Scientific Micro Systems/OMTI", + "SMSC" => "SMSC Storage, Inc.", + "SMX" => "Smartronix, Inc.", + "SNYSIDE" => "Sunnyside Computing Inc.", + "SoftLock" => "Softlock Digital Security Provider", + "SolidFir" => "SolidFire, Inc.", + "SONIC" => "Sonic Solutions", + "SoniqCas" => "SoniqCast", + "SONY" => "Sony Corporation Japan", + "SOUL" => "Soul Storage Technology (Wuxi) Co., Ltd", + "SPD" => "Storage Products Distribution, Inc.", + "SPECIAL" => "Special Computing Co.", + "SPECTRA" => "Spectra Logic, a Division of Western Automation Labs, Inc.", + "SPERRY" => "Sperry", + "Spintso" => "Spintso International AB", + "STARBORD" => "Starboard Storage Systems, Inc.", + "STARWIND" => "StarWind Software, Inc.", + "STEC" => "STEC, Inc.", + "Sterling" => "Sterling Diagnostic Imaging, Inc.", + "STK" => "Storage Technology Corporation", + "STNWOOD" => "Stonewood Group", + "STONEFLY" => "StoneFly Networks, Inc.", + "STOR" => "StorageNetworks, Inc.", + "STORAPP" => "StorageApps, Inc.", + "STORCIUM" => "Intelligent Systems Services Inc.", + "STORCOMP" => "Storage Computer Corporation", + "STORM" => "Storm Technology, Inc.", + "StorMagc" => "StorMagic", + "Stratus" => "Stratus Technologies", + "StrmLgc" => "StreamLogic Corp.", + "SUMITOMO" => "Sumitomo Electric Industries, Ltd.", + "SUN" => "Sun Microsystems, Inc.", + "SUNCORP" => "SunCorporation", + "suntx" => "Suntx System Co., Ltd", + "SUSE" => "SUSE Linux", + "Swinxs" => "Swinxs BV", + "SYMANTEC" => "Symantec Corporation", + "SYMBIOS" => "Symbios Logic Inc.", + "SYMWAVE" => "Symwave, Inc.", + "SYNCSORT" => "Syncsort Incorporated", + "SYNERWAY" => "Synerway", + "SYNOLOGY" => "Synology, Inc.", + "SyQuest" => "SyQuest Technology, Inc.", + "SYSGEN" => "Sysgen", + "T-MITTON" => "Transmitton England", + "T-MOBILE" => "T-Mobile USA, Inc.", + "T11" => "INCITS Technical Committee T11", + "TALARIS" => "Talaris Systems, Inc.", + "TALLGRAS" => "Tallgrass Technologies", + "TANDBERG" => "Tandberg Data A/S", + "TANDEM" => "Tandem", + "TANDON" => "Tandon", + "TCL" => "TCL Shenzhen ASIC MIcro-electronics Ltd", + "TDK" => "TDK Corporation", + "TEAC" => "TEAC Japan", + "TECOLOTE" => "Tecolote Designs", + "TEGRA" => "Tegra Varityper", + "Teilch" => "Teilch", + "Tek" => "Tektronix", + "TELLERT" => "Tellert Elektronik GmbH", + "TENTIME" => "Laura Technologies, Inc.", + "TFDATACO" => "TimeForge", + "TGEGROUP" => "TGE Group Co.,LTD.", + "Thecus" => "Thecus Technology Corp.", + "TI-DSG" => "Texas Instruments", + "TiGi" => "TiGi Corporation", + "TILDESGN" => "Tildesign bv", + "Tite" => "Tite Technology Limited", + "TKS Inc." => "TimeKeeping Systems, Inc.", + "TLMKS" => "Telemakus LLC", + "TMS" => "Texas Memory Systems, Inc.", + "TMS100" => "TechnoVas", + "TOLISGRP" => "The TOLIS Group", + "TOSHIBA" => "Toshiba Japan", + "TOYOU" => "TOYOU FEIJI ELECTRONICS CO.,LTD.", + "Tracker" => "Tracker, LLC", + "TRIOFLEX" => "Trioflex Oy", + "TRIPACE" => "Tripace", + "TRLogger" => "TrueLogger Ltd.", + "TROIKA" => "Troika Networks, Inc.", + "TRULY" => "TRULY Electronics MFG. LTD.", + "TRUSTED" => "Trusted Data Corporation", + "TSSTcorp" => "Toshiba Samsung Storage Technology Corporation", + "TZM" => "TZ Medical", + "UD-DVR" => "Bigstone Project.", + "UDIGITAL" => "United Digital Limited", + "UIT" => "United Infomation Technology", + "ULTRA" => "UltraStor Corporation", + "UNISTOR" => "Unistor Networks, Inc.", + "UNISYS" => "Unisys", + "USCORE" => "Underscore, Inc.", + "USDC" => "US Design Corp.", + "Top VASCO" => "Vasco Data Security", + "VDS" => "Victor Data Systems Co., Ltd.", + "VELDANA" => "VELDANA MEDICAL SA", + "VENTANA" => "Ventana Medical Systems", + "Verari" => "Verari Systems, Inc.", + "VERBATIM" => "Verbatim Corporation", + "Vercet" => "Vercet LLC", + "VERITAS" => "VERITAS Software Corporation", + "Vexata" => "Vexata Inc", + "VEXCEL" => "VEXCEL IMAGING GmbH", + "VICOMSL1" => "Vicom Systems, Inc.", + "VicomSys" => "Vicom Systems, Inc.", + "VIDEXINC" => "Videx, Inc.", + "VIOLIN" => "Violin Memory, Inc.", + "VIRIDENT" => "Virident Systems, Inc.", + "VITESSE" => "Vitesse Semiconductor Corporation", + "VIXEL" => "Vixel Corporation", + "VLS" => "Van Lent Systems BV", + "VMAX" => "VMAX Technologies Corp.", + "VMware" => "VMware Inc.", + "Vobis" => "Vobis Microcomputer AG", + "VOLTAIRE" => "Voltaire Ltd.", + "VRC" => "Vermont Research Corp.", + "VRugged" => "Vanguard Rugged Storage", + "VTGadget" => "Vermont Gadget Company", + "Waitec" => "Waitec NV", + "WangDAT" => "WangDAT", + "WANGTEK" => "Wangtek", + "Wasabi" => "Wasabi Systems", + "WAVECOM" => "Wavecom", + "WD" => "Western Digital Corporation", + "WDC" => "Western Digital Corporation", + "WDIGTL" => "Western Digital", + "WDTI" => "Western Digital Technologies, Inc.", + "WEARNES" => "Wearnes Technology Corporation", + "WeeraRes" => "Weera Research Pte Ltd", + "Wildflwr" => "Wildflower Technologies, Inc.", + "WSC0001" => "Wisecom, Inc.", + "X3" => "InterNational Committee for Information Technology Standards (INCITS)", + "XEBEC" => "Xebec Corporation", + "XENSRC" => "XenSource, Inc.", + "Xerox" => "Xerox Corporation", + "XIOtech" => "XIOtech Corporation", + "XIRANET" => "Xiranet Communications GmbH", + "XIV" => "XIV", + "XtremIO" => "XtremIO", + "XYRATEX" => "Xyratex", + "YINHE" => "NUDT Computer Co.", + "YIXUN" => "Yixun Electronic Co.,Ltd.", + "YOTTA" => "YottaYotta, Inc.", + "Zarva" => "Zarva Digital Technology Co., Ltd.", + "ZETTA" => "Zetta Systems, Inc.", + "ZTE" => "ZTE Corporation", + "ZVAULT" => "Zetavault", + _ => scsiVendorString + }; } \ No newline at end of file diff --git a/SecureDigital/CSD.cs b/SecureDigital/CSD.cs index da1ac62..8bd177a 100644 --- a/SecureDigital/CSD.cs +++ b/SecureDigital/CSD.cs @@ -209,73 +209,26 @@ public static partial class Decoders break; } - switch((csd.TAAC & 0x78) >> 3) - { - case 0: - multiplier = 0; - - break; - case 1: - multiplier = 1; - - break; - case 2: - multiplier = 1.2; - - break; - case 3: - multiplier = 1.3; - - break; - case 4: - multiplier = 1.5; - - break; - case 5: - multiplier = 2; - - break; - case 6: - multiplier = 2.5; - - break; - case 7: - multiplier = 3; - - break; - case 8: - multiplier = 3.5; - - break; - case 9: - multiplier = 4; - - break; - case 10: - multiplier = 4.5; - - break; - case 11: - multiplier = 5; - - break; - case 12: - multiplier = 5.5; - - break; - case 13: - multiplier = 6; - - break; - case 14: - multiplier = 7; - - break; - case 15: - multiplier = 8; - - break; - } + multiplier = ((csd.TAAC & 0x78) >> 3) switch + { + 0 => 0, + 1 => 1, + 2 => 1.2, + 3 => 1.3, + 4 => 1.5, + 5 => 2, + 6 => 2.5, + 7 => 3, + 8 => 3.5, + 9 => 4, + 10 => 4.5, + 11 => 5, + 12 => 5.5, + 13 => 6, + 14 => 7, + 15 => 8, + _ => multiplier + }; double result = unitFactor * multiplier; sb.AppendFormat("\tAsynchronous data access time is {0}{1}", result, unit).AppendLine(); @@ -309,73 +262,26 @@ public static partial class Decoders break; } - switch((csd.Speed & 0x78) >> 3) - { - case 0: - multiplier = 0; - - break; - case 1: - multiplier = 1; - - break; - case 2: - multiplier = 1.2; - - break; - case 3: - multiplier = 1.3; - - break; - case 4: - multiplier = 1.5; - - break; - case 5: - multiplier = 2; - - break; - case 6: - multiplier = 2.6; - - break; - case 7: - multiplier = 3; - - break; - case 8: - multiplier = 3.5; - - break; - case 9: - multiplier = 4; - - break; - case 10: - multiplier = 4.5; - - break; - case 11: - multiplier = 5.2; - - break; - case 12: - multiplier = 5.5; - - break; - case 13: - multiplier = 6; - - break; - case 14: - multiplier = 7; - - break; - case 15: - multiplier = 8; - - break; - } + multiplier = ((csd.Speed & 0x78) >> 3) switch + { + 0 => 0, + 1 => 1, + 2 => 1.2, + 3 => 1.3, + 4 => 1.5, + 5 => 2, + 6 => 2.6, + 7 => 3, + 8 => 3.5, + 9 => 4, + 10 => 4.5, + 11 => 5.2, + 12 => 5.5, + 13 => 6, + 14 => 7, + 15 => 8, + _ => multiplier + }; result = unitFactor * multiplier; sb.AppendFormat("\tDevice's transfer speed: {0}{1}", result, unit).AppendLine(); diff --git a/Xbox/SS.cs b/Xbox/SS.cs index f2275d5..709137f 100644 --- a/Xbox/SS.cs +++ b/Xbox/SS.cs @@ -138,23 +138,12 @@ public static class SS SecuritySector decoded = ss.Value; var sb = new StringBuilder(); - string sizeString; - - switch(decoded.DiscSize) - { - case DVDSize.Eighty: - sizeString = "80mm"; - - break; - case DVDSize.OneTwenty: - sizeString = "120mm"; - - break; - default: - sizeString = $"unknown size identifier {decoded.DiscSize}"; - - break; - } + string sizeString = decoded.DiscSize switch + { + DVDSize.Eighty => "80mm", + DVDSize.OneTwenty => "120mm", + _ => $"unknown size identifier {decoded.DiscSize}" + }; const string categorySentence = "Disc is a {0} {1} version {2}";