diff --git a/ATA/Identify.cs b/ATA/Identify.cs
index f0161cc..e8c7d4d 100644
--- a/ATA/Identify.cs
+++ b/ATA/Identify.cs
@@ -31,6 +31,7 @@
// ****************************************************************************/
using System;
+using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.InteropServices;
using System.Text;
@@ -40,18 +41,18 @@ using DiscImageChef.Decoders.SCSI;
namespace DiscImageChef.Decoders.ATA
{
///
- /// Information from following standards:
- /// T10-791D rev. 4c (ATA)
- /// T10-948D rev. 4c (ATA-2)
- /// T13-1153D rev. 18 (ATA/ATAPI-4)
- /// T13-1321D rev. 3 (ATA/ATAPI-5)
- /// T13-1410D rev. 3b (ATA/ATAPI-6)
- /// T13-1532D rev. 4b (ATA/ATAPI-7)
- /// T13-1699D rev. 3f (ATA8-ACS)
- /// T13-1699D rev. 4a (ATA8-ACS)
- /// T13-2015D rev. 2 (ACS-2)
- /// T13-2161D rev. 5 (ACS-3)
- /// CF+ & CF Specification rev. 1.4 (CFA)
+ /// Information from following standards:
+ /// T10-791D rev. 4c (ATA)
+ /// T10-948D rev. 4c (ATA-2)
+ /// T13-1153D rev. 18 (ATA/ATAPI-4)
+ /// T13-1321D rev. 3 (ATA/ATAPI-5)
+ /// T13-1410D rev. 3b (ATA/ATAPI-6)
+ /// T13-1532D rev. 4b (ATA/ATAPI-7)
+ /// T13-1699D rev. 3f (ATA8-ACS)
+ /// T13-1699D rev. 4a (ATA8-ACS)
+ /// T13-2015D rev. 2 (ACS-2)
+ /// T13-2161D rev. 5 (ACS-3)
+ /// CF+ & CF Specification rev. 1.4 (CFA)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -62,963 +63,963 @@ namespace DiscImageChef.Decoders.ATA
public struct IdentifyDevice
{
///
- /// Word 0
- /// General device configuration
- /// On ATAPI devices:
- /// Bits 12 to 8 indicate device type as SCSI defined
- /// Bits 6 to 5:
- /// 0 = Device shall set DRQ within 3 ms of receiving PACKET
- /// 1 = Device shall assert INTRQ when DRQ is set to one
- /// 2 = Device shall set DRQ within 50 µs of receiving PACKET
- /// Bits 1 to 0:
- /// 0 = 12 byte command packet
- /// 1 = 16 byte command packet
- /// CompactFlash is 0x848A (non magnetic, removable, not MFM, hardsector, and UltraFAST)
+ /// Word 0
+ /// General device configuration
+ /// On ATAPI devices:
+ /// Bits 12 to 8 indicate device type as SCSI defined
+ /// Bits 6 to 5:
+ /// 0 = Device shall set DRQ within 3 ms of receiving PACKET
+ /// 1 = Device shall assert INTRQ when DRQ is set to one
+ /// 2 = Device shall set DRQ within 50 µs of receiving PACKET
+ /// Bits 1 to 0:
+ /// 0 = 12 byte command packet
+ /// 1 = 16 byte command packet
+ /// CompactFlash is 0x848A (non magnetic, removable, not MFM, hardsector, and UltraFAST)
///
public GeneralConfigurationBit GeneralConfiguration;
///
- /// Word 1
- /// Cylinders in default translation mode
- /// Obsoleted in ATA/ATAPI-6
+ /// Word 1
+ /// Cylinders in default translation mode
+ /// Obsoleted in ATA/ATAPI-6
///
public ushort Cylinders;
///
- /// Word 2
- /// Specific configuration
+ /// Word 2
+ /// Specific configuration
///
public SpecificConfigurationEnum SpecificConfiguration;
///
- /// Word 3
- /// Heads in default translation mode
- /// Obsoleted in ATA/ATAPI-6
+ /// Word 3
+ /// Heads in default translation mode
+ /// Obsoleted in ATA/ATAPI-6
///
public ushort Heads;
///
- /// Word 4
- /// Unformatted bytes per track in default translation mode
- /// Obsoleted in ATA-2
+ /// Word 4
+ /// Unformatted bytes per track in default translation mode
+ /// Obsoleted in ATA-2
///
public ushort UnformattedBPT;
///
- /// Word 5
- /// Unformatted bytes per sector in default translation mode
- /// Obsoleted in ATA-2
+ /// Word 5
+ /// Unformatted bytes per sector in default translation mode
+ /// Obsoleted in ATA-2
///
public ushort UnformattedBPS;
///
- /// Word 6
- /// Sectors per track in default translation mode
- /// Obsoleted in ATA/ATAPI-6
+ /// Word 6
+ /// Sectors per track in default translation mode
+ /// Obsoleted in ATA/ATAPI-6
///
public ushort SectorsPerTrack;
///
- /// Words 7 to 8
- /// CFA: Number of sectors per card
+ /// Words 7 to 8
+ /// CFA: Number of sectors per card
///
public uint SectorsPerCard;
///
- /// Word 9
- /// Vendor unique
- /// Obsoleted in ATA/ATAPI-4
+ /// Word 9
+ /// Vendor unique
+ /// Obsoleted in ATA/ATAPI-4
///
public ushort VendorWord9;
///
- /// Words 10 to 19
- /// Device serial number, right justified, padded with spaces
+ /// Words 10 to 19
+ /// Device serial number, right justified, padded with spaces
///
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)] public string SerialNumber;
///
- /// Word 20
- /// Manufacturer defined
- /// Obsoleted in ATA-2
- /// 0x0001 = single ported single sector buffer
- /// 0x0002 = dual ported multi sector buffer
- /// 0x0003 = dual ported multi sector buffer with reading
+ /// Word 20
+ /// Manufacturer defined
+ /// Obsoleted in ATA-2
+ /// 0x0001 = single ported single sector buffer
+ /// 0x0002 = dual ported multi sector buffer
+ /// 0x0003 = dual ported multi sector buffer with reading
///
public ushort BufferType;
///
- /// Word 21
- /// Size of buffer in 512 byte increments
- /// Obsoleted in ATA-2
+ /// Word 21
+ /// Size of buffer in 512 byte increments
+ /// Obsoleted in ATA-2
///
public ushort BufferSize;
///
- /// Word 22
- /// Bytes of ECC available in READ/WRITE LONG commands
- /// Obsoleted in ATA/ATAPI-4
+ /// Word 22
+ /// Bytes of ECC available in READ/WRITE LONG commands
+ /// Obsoleted in ATA/ATAPI-4
///
public ushort EccBytes;
///
- /// Words 23 to 26
- /// Firmware revision, left justified, padded with spaces
+ /// Words 23 to 26
+ /// Firmware revision, left justified, padded with spaces
///
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)] public string FirmwareRevision;
///
- /// Words 27 to 46
- /// Model number, left justified, padded with spaces
+ /// Words 27 to 46
+ /// Model number, left justified, padded with spaces
///
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] public string Model;
///
- /// Word 47 bits 7 to 0
- /// Maximum number of sectors that can be transferred per
- /// interrupt on read and write multiple commands
+ /// Word 47 bits 7 to 0
+ /// Maximum number of sectors that can be transferred per
+ /// interrupt on read and write multiple commands
///
public byte MultipleMaxSectors;
///
- /// Word 47 bits 15 to 8
- /// Vendor unique
- /// ATA/ATAPI-4 says it must be 0x80
+ /// Word 47 bits 15 to 8
+ /// Vendor unique
+ /// ATA/ATAPI-4 says it must be 0x80
///
public byte VendorWord47;
///
- /// Word 48
- /// ATA-1: Set to 1 if it can perform doubleword I/O
- /// ATA-2 to ATA/ATAPI-7: Reserved
- /// ATA8-ACS: Trusted Computing feature set
+ /// Word 48
+ /// ATA-1: Set to 1 if it can perform doubleword I/O
+ /// ATA-2 to ATA/ATAPI-7: Reserved
+ /// ATA8-ACS: Trusted Computing feature set
///
public TrustedComputingBit TrustedComputing;
///
- /// Word 49
- /// Capabilities
+ /// Word 49
+ /// Capabilities
///
public CapabilitiesBit Capabilities;
///
- /// Word 50
- /// Capabilities
+ /// Word 50
+ /// Capabilities
///
public CapabilitiesBit2 Capabilities2;
///
- /// Word 51 bits 7 to 0
- /// Vendor unique
- /// Obsoleted in ATA/ATAPI-4
+ /// Word 51 bits 7 to 0
+ /// Vendor unique
+ /// Obsoleted in ATA/ATAPI-4
///
public byte VendorWord51;
///
- /// Word 51 bits 15 to 8
- /// Transfer timing mode in PIO
- /// Obsoleted in ATA/ATAPI-4
+ /// Word 51 bits 15 to 8
+ /// Transfer timing mode in PIO
+ /// Obsoleted in ATA/ATAPI-4
///
public byte PIOTransferTimingMode;
///
- /// Word 52 bits 7 to 0
- /// Vendor unique
- /// Obsoleted in ATA/ATAPI-4
+ /// Word 52 bits 7 to 0
+ /// Vendor unique
+ /// Obsoleted in ATA/ATAPI-4
///
public byte VendorWord52;
///
- /// Word 52 bits 15 to 8
- /// Transfer timing mode in DMA
- /// Obsoleted in ATA/ATAPI-4
+ /// Word 52 bits 15 to 8
+ /// Transfer timing mode in DMA
+ /// Obsoleted in ATA/ATAPI-4
///
public byte DMATransferTimingMode;
///
- /// Word 53 bits 7 to 0
- /// Reports if words 54 to 58 are valid
+ /// Word 53 bits 7 to 0
+ /// Reports if words 54 to 58 are valid
///
public ExtendedIdentifyBit ExtendedIdentify;
///
- /// Word 53 bits 15 to 8
- /// Free-fall Control Sensitivity
+ /// Word 53 bits 15 to 8
+ /// Free-fall Control Sensitivity
///
public byte FreeFallSensitivity;
///
- /// Word 54
- /// Cylinders in current translation mode
- /// Obsoleted in ATA/ATAPI-6
+ /// Word 54
+ /// Cylinders in current translation mode
+ /// Obsoleted in ATA/ATAPI-6
///
public ushort CurrentCylinders;
///
- /// Word 55
- /// Heads in current translation mode
- /// Obsoleted in ATA/ATAPI-6
+ /// Word 55
+ /// Heads in current translation mode
+ /// Obsoleted in ATA/ATAPI-6
///
public ushort CurrentHeads;
///
- /// Word 56
- /// Sectors per track in current translation mode
- /// Obsoleted in ATA/ATAPI-6
+ /// Word 56
+ /// Sectors per track in current translation mode
+ /// Obsoleted in ATA/ATAPI-6
///
public ushort CurrentSectorsPerTrack;
///
- /// Words 57 to 58
- /// Total sectors currently user-addressable
- /// Obsoleted in ATA/ATAPI-6
+ /// Words 57 to 58
+ /// Total sectors currently user-addressable
+ /// Obsoleted in ATA/ATAPI-6
///
public uint CurrentSectors;
///
- /// Word 59 bits 7 to 0
- /// Number of sectors currently set to transfer on a READ/WRITE MULTIPLE command
+ /// Word 59 bits 7 to 0
+ /// Number of sectors currently set to transfer on a READ/WRITE MULTIPLE command
///
public byte MultipleSectorNumber;
///
- /// Word 59 bits 15 to 8
- /// Indicates if is valid
+ /// Word 59 bits 15 to 8
+ /// Indicates if is valid
///
public CapabilitiesBit3 Capabilities3;
///
- /// Words 60 to 61
- /// If drive supports LBA, how many sectors are addressable using LBA
+ /// Words 60 to 61
+ /// If drive supports LBA, how many sectors are addressable using LBA
///
public uint LBASectors;
///
- /// Word 62 bits 7 to 0
- /// Single word DMA modes available
- /// Obsoleted in ATA/ATAPI-4
- /// In ATAPI it's not obsolete, indicates UDMA mode (UDMA7 is instead MDMA0)
+ /// Word 62 bits 7 to 0
+ /// Single word DMA modes available
+ /// Obsoleted in ATA/ATAPI-4
+ /// In ATAPI it's not obsolete, indicates UDMA mode (UDMA7 is instead MDMA0)
///
public TransferMode DMASupported;
///
- /// Word 62 bits 15 to 8
- /// Single word DMA mode currently active
- /// Obsoleted in ATA/ATAPI-4
- /// In ATAPI it's not obsolete, bits 0 and 1 indicate MDMA mode+1,
- /// bit 10 indicates DMA is supported and bit 15 indicates DMADIR bit
- /// in PACKET is required for DMA transfers
+ /// Word 62 bits 15 to 8
+ /// Single word DMA mode currently active
+ /// Obsoleted in ATA/ATAPI-4
+ /// In ATAPI it's not obsolete, bits 0 and 1 indicate MDMA mode+1,
+ /// bit 10 indicates DMA is supported and bit 15 indicates DMADIR bit
+ /// in PACKET is required for DMA transfers
///
public TransferMode DMAActive;
///
- /// Word 63 bits 7 to 0
- /// Multiword DMA modes available
+ /// Word 63 bits 7 to 0
+ /// Multiword DMA modes available
///
public TransferMode MDMASupported;
///
- /// Word 63 bits 15 to 8
- /// Multiword DMA mode currently active
+ /// Word 63 bits 15 to 8
+ /// Multiword DMA mode currently active
///
public TransferMode MDMAActive;
///
- /// Word 64 bits 7 to 0
- /// Supported Advanced PIO transfer modes
+ /// Word 64 bits 7 to 0
+ /// Supported Advanced PIO transfer modes
///
public TransferMode APIOSupported;
///
- /// Word 64 bits 15 to 8
- /// Reserved
+ /// Word 64 bits 15 to 8
+ /// Reserved
///
public byte ReservedWord64;
///
- /// Word 65
- /// Minimum MDMA transfer cycle time per word in nanoseconds
+ /// Word 65
+ /// Minimum MDMA transfer cycle time per word in nanoseconds
///
public ushort MinMDMACycleTime;
///
- /// Word 66
- /// Recommended MDMA transfer cycle time per word in nanoseconds
+ /// Word 66
+ /// Recommended MDMA transfer cycle time per word in nanoseconds
///
public ushort RecMDMACycleTime;
///
- /// Word 67
- /// Minimum PIO transfer cycle time without flow control in nanoseconds
+ /// Word 67
+ /// Minimum PIO transfer cycle time without flow control in nanoseconds
///
public ushort MinPIOCycleTimeNoFlow;
///
- /// Word 68
- /// Minimum PIO transfer cycle time with IORDY flow control in nanoseconds
+ /// Word 68
+ /// Minimum PIO transfer cycle time with IORDY flow control in nanoseconds
///
public ushort MinPIOCycleTimeFlow;
///
- /// Word 69
- /// Additional supported
+ /// Word 69
+ /// Additional supported
///
public CommandSetBit5 CommandSet5;
///
- /// Word 70
- /// Reserved
+ /// Word 70
+ /// Reserved
///
public ushort ReservedWord70;
///
- /// Word 71
- /// ATAPI: Typical time in ns from receipt of PACKET to release bus
+ /// Word 71
+ /// ATAPI: Typical time in ns from receipt of PACKET to release bus
///
public ushort PacketBusRelease;
///
- /// Word 72
- /// ATAPI: Typical time in ns from receipt of SERVICE to clear BSY
+ /// Word 72
+ /// ATAPI: Typical time in ns from receipt of SERVICE to clear BSY
///
public ushort ServiceBusyClear;
///
- /// Word 73
- /// Reserved
+ /// Word 73
+ /// Reserved
///
public ushort ReservedWord73;
///
- /// Word 74
- /// Reserved
+ /// Word 74
+ /// Reserved
///
public ushort ReservedWord74;
///
- /// Word 75
- /// Maximum Queue depth
+ /// Word 75
+ /// Maximum Queue depth
///
public ushort MaxQueueDepth;
///
- /// Word 76
- /// Serial ATA Capabilities
+ /// Word 76
+ /// Serial ATA Capabilities
///
public SATACapabilitiesBit SATACapabilities;
///
- /// Word 77
- /// Serial ATA Additional Capabilities
+ /// Word 77
+ /// Serial ATA Additional Capabilities
///
public SATACapabilitiesBit2 SATACapabilities2;
///
- /// Word 78
- /// Supported Serial ATA features
+ /// Word 78
+ /// Supported Serial ATA features
///
public SATAFeaturesBit SATAFeatures;
///
- /// Word 79
- /// Enabled Serial ATA features
+ /// Word 79
+ /// Enabled Serial ATA features
///
public SATAFeaturesBit EnabledSATAFeatures;
///
- /// Word 80
- /// Major version of ATA/ATAPI standard supported
+ /// Word 80
+ /// Major version of ATA/ATAPI standard supported
///
public MajorVersionBit MajorVersion;
///
- /// Word 81
- /// Minimum version of ATA/ATAPI standard supported
+ /// Word 81
+ /// Minimum version of ATA/ATAPI standard supported
///
public ushort MinorVersion;
///
- /// Word 82
- /// Supported command/feature sets
+ /// Word 82
+ /// Supported command/feature sets
///
public CommandSetBit CommandSet;
///
- /// Word 83
- /// Supported command/feature sets
+ /// Word 83
+ /// Supported command/feature sets
///
public CommandSetBit2 CommandSet2;
///
- /// Word 84
- /// Supported command/feature sets
+ /// Word 84
+ /// Supported command/feature sets
///
public CommandSetBit3 CommandSet3;
///
- /// Word 85
- /// Enabled command/feature sets
+ /// Word 85
+ /// Enabled command/feature sets
///
public CommandSetBit EnabledCommandSet;
///
- /// Word 86
- /// Enabled command/feature sets
+ /// Word 86
+ /// Enabled command/feature sets
///
public CommandSetBit2 EnabledCommandSet2;
///
- /// Word 87
- /// Enabled command/feature sets
+ /// Word 87
+ /// Enabled command/feature sets
///
public CommandSetBit3 EnabledCommandSet3;
///
- /// Word 88 bits 7 to 0
- /// Supported Ultra DMA transfer modes
+ /// Word 88 bits 7 to 0
+ /// Supported Ultra DMA transfer modes
///
public TransferMode UDMASupported;
///
- /// Word 88 bits 15 to 8
- /// Selected Ultra DMA transfer modes
+ /// Word 88 bits 15 to 8
+ /// Selected Ultra DMA transfer modes
///
public TransferMode UDMAActive;
///
- /// Word 89
- /// Time required for security erase completion
+ /// Word 89
+ /// Time required for security erase completion
///
public ushort SecurityEraseTime;
///
- /// Word 90
- /// Time required for enhanced security erase completion
+ /// Word 90
+ /// Time required for enhanced security erase completion
///
public ushort EnhancedSecurityEraseTime;
///
- /// Word 91
- /// Current advanced power management value
+ /// Word 91
+ /// Current advanced power management value
///
public ushort CurrentAPM;
///
- /// Word 92
- /// Master password revision code
+ /// Word 92
+ /// Master password revision code
///
public ushort MasterPasswordRevisionCode;
///
- /// Word 93
- /// Hardware reset result
+ /// Word 93
+ /// Hardware reset result
///
public ushort HardwareResetResult;
///
- /// Word 94 bits 7 to 0
- /// Current AAM value
+ /// Word 94 bits 7 to 0
+ /// Current AAM value
///
public byte CurrentAAM;
///
- /// Word 94 bits 15 to 8
- /// Vendor's recommended AAM value
+ /// Word 94 bits 15 to 8
+ /// Vendor's recommended AAM value
///
public byte RecommendedAAM;
///
- /// Word 95
- /// Stream minimum request size
+ /// Word 95
+ /// Stream minimum request size
///
public ushort StreamMinReqSize;
///
- /// Word 96
- /// Streaming transfer time in DMA
+ /// Word 96
+ /// Streaming transfer time in DMA
///
public ushort StreamTransferTimeDMA;
///
- /// Word 97
- /// Streaming access latency in DMA and PIO
+ /// Word 97
+ /// Streaming access latency in DMA and PIO
///
public ushort StreamAccessLatency;
///
- /// Words 98 to 99
- /// Streaming performance granularity
+ /// Words 98 to 99
+ /// Streaming performance granularity
///
public uint StreamPerformanceGranularity;
///
- /// Words 100 to 103
- /// 48-bit LBA addressable sectors
+ /// Words 100 to 103
+ /// 48-bit LBA addressable sectors
///
public ulong LBA48Sectors;
///
- /// Word 104
- /// Streaming transfer time in PIO
+ /// Word 104
+ /// Streaming transfer time in PIO
///
public ushort StreamTransferTimePIO;
///
- /// Word 105
- /// Maximum number of 512-byte block per DATA SET MANAGEMENT command
+ /// Word 105
+ /// Maximum number of 512-byte block per DATA SET MANAGEMENT command
///
public ushort DataSetMgmtSize;
///
- /// Word 106
- /// Bit 15 should be zero
- /// Bit 14 should be one
- /// Bit 13 set indicates device has multiple logical sectors per physical sector
- /// Bit 12 set indicates logical sector has more than 256 words (512 bytes)
- /// Bits 11 to 4 are reserved
- /// Bits 3 to 0 indicate power of two of logical sectors per physical sector
+ /// Word 106
+ /// Bit 15 should be zero
+ /// Bit 14 should be one
+ /// Bit 13 set indicates device has multiple logical sectors per physical sector
+ /// Bit 12 set indicates logical sector has more than 256 words (512 bytes)
+ /// Bits 11 to 4 are reserved
+ /// Bits 3 to 0 indicate power of two of logical sectors per physical sector
///
public ushort PhysLogSectorSize;
///
- /// Word 107
- /// Interseek delay for ISO-7779 acoustic testing, in microseconds
+ /// Word 107
+ /// Interseek delay for ISO-7779 acoustic testing, in microseconds
///
public ushort InterseekDelay;
///
- /// Words 108 to 111
- /// World Wide Name
+ /// Words 108 to 111
+ /// World Wide Name
///
public ulong WWN;
///
- /// Words 112 to 115
- /// Reserved for WWN extension to 128 bit
+ /// Words 112 to 115
+ /// Reserved for WWN extension to 128 bit
///
public ulong WWNExtension;
///
- /// Word 116
- /// Reserved for technical report
+ /// Word 116
+ /// Reserved for technical report
///
public ushort ReservedWord116;
///
- /// Words 117 to 118
- /// Words per logical sector
+ /// Words 117 to 118
+ /// Words per logical sector
///
public uint LogicalSectorWords;
///
- /// Word 119
- /// Supported command/feature sets
+ /// Word 119
+ /// Supported command/feature sets
///
public CommandSetBit4 CommandSet4;
///
- /// Word 120
- /// Supported command/feature sets
+ /// Word 120
+ /// Supported command/feature sets
///
public CommandSetBit4 EnabledCommandSet4;
///
- /// Words 121 to 125
- /// Reserved
+ /// Words 121 to 125
+ /// Reserved
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] public ushort[] ReservedWords121;
///
- /// Word 126
- /// ATAPI byte count limit
+ /// Word 126
+ /// ATAPI byte count limit
///
public ushort ATAPIByteCount;
///
- /// Word 127
- /// Removable Media Status Notification feature set support
- /// Bits 15 to 2 are reserved
- /// Bits 1 to 0 must be 0 for not supported or 1 for supported. 2 and 3 are reserved.
- /// Obsoleted in ATA8-ACS
+ /// Word 127
+ /// Removable Media Status Notification feature set support
+ /// Bits 15 to 2 are reserved
+ /// Bits 1 to 0 must be 0 for not supported or 1 for supported. 2 and 3 are reserved.
+ /// Obsoleted in ATA8-ACS
///
public ushort RemovableStatusSet;
///
- /// Word 128
- /// Security status
+ /// Word 128
+ /// Security status
///
public SecurityStatusBit SecurityStatus;
///
- /// Words 129 to 159
+ /// Words 129 to 159
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 31)] public ushort[] ReservedWords129;
///
- /// Word 160
- /// CFA power mode
- /// Bit 15 must be set
- /// Bit 13 indicates mode 1 is required for one or more commands
- /// Bit 12 indicates mode 1 is disabled
- /// Bits 11 to 0 indicates maximum current in mA
+ /// Word 160
+ /// CFA power mode
+ /// Bit 15 must be set
+ /// Bit 13 indicates mode 1 is required for one or more commands
+ /// Bit 12 indicates mode 1 is disabled
+ /// Bits 11 to 0 indicates maximum current in mA
///
public ushort CFAPowerMode;
///
- /// Words 161 to 167
- /// Reserved for CFA
+ /// Words 161 to 167
+ /// Reserved for CFA
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 7)] public ushort[] ReservedCFA;
///
- /// Word 168
- /// Bits 15 to 4, reserved
- /// Bits 3 to 0, device nominal form factor
+ /// Word 168
+ /// Bits 15 to 4, reserved
+ /// Bits 3 to 0, device nominal form factor
///
public DeviceFormFactorEnum DeviceFormFactor;
///
- /// Word 169
- /// DATA SET MANAGEMENT support
+ /// Word 169
+ /// DATA SET MANAGEMENT support
///
public DataSetMgmtBit DataSetMgmt;
///
- /// Words 170 to 173
- /// Additional product identifier
+ /// Words 170 to 173
+ /// Additional product identifier
///
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)] public string AdditionalPID;
///
- /// Word 174
- /// Reserved
+ /// Word 174
+ /// Reserved
///
public ushort ReservedWord174;
///
- /// Word 175
- /// Reserved
+ /// Word 175
+ /// Reserved
///
public ushort ReservedWord175;
///
- /// Words 176 to 195
- /// Current media serial number
+ /// Words 176 to 195
+ /// Current media serial number
///
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] public string MediaSerial;
///
- /// Words 196 to 205
- /// Current media manufacturer
+ /// Words 196 to 205
+ /// Current media manufacturer
///
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)] public string MediaManufacturer;
///
- /// Word 206
- /// SCT Command Transport features
+ /// Word 206
+ /// SCT Command Transport features
///
public SCTCommandTransportBit SCTCommandTransport;
///
- /// Word 207
- /// Reserved for CE-ATA
+ /// Word 207
+ /// Reserved for CE-ATA
///
public ushort ReservedCEATAWord207;
///
- /// Word 208
- /// Reserved for CE-ATA
+ /// Word 208
+ /// Reserved for CE-ATA
///
public ushort ReservedCEATAWord208;
///
- /// Word 209
- /// Alignment of logical block within a larger physical block
- /// Bit 15 shall be cleared to zero
- /// Bit 14 shall be set to one
- /// Bits 13 to 0 indicate logical sector offset within the first physical sector
+ /// Word 209
+ /// Alignment of logical block within a larger physical block
+ /// Bit 15 shall be cleared to zero
+ /// Bit 14 shall be set to one
+ /// Bits 13 to 0 indicate logical sector offset within the first physical sector
///
public ushort LogicalAlignment;
///
- /// Words 210 to 211
- /// Write/Read/Verify sector count mode 3 only
+ /// Words 210 to 211
+ /// Write/Read/Verify sector count mode 3 only
///
public uint WRVSectorCountMode3;
///
- /// Words 212 to 213
- /// Write/Read/Verify sector count mode 2 only
+ /// Words 212 to 213
+ /// Write/Read/Verify sector count mode 2 only
///
public uint WRVSectorCountMode2;
///
- /// Word 214
- /// NV Cache capabilities
- /// Bits 15 to 12 feature set version
- /// Bits 11 to 18 power mode feature set version
- /// Bits 7 to 5 reserved
- /// Bit 4 feature set enabled
- /// Bits 3 to 2 reserved
- /// Bit 1 power mode feature set enabled
- /// Bit 0 power mode feature set supported
+ /// Word 214
+ /// NV Cache capabilities
+ /// Bits 15 to 12 feature set version
+ /// Bits 11 to 18 power mode feature set version
+ /// Bits 7 to 5 reserved
+ /// Bit 4 feature set enabled
+ /// Bits 3 to 2 reserved
+ /// Bit 1 power mode feature set enabled
+ /// Bit 0 power mode feature set supported
///
public ushort NVCacheCaps;
///
- /// Words 215 to 216
- /// NV Cache Size in Logical BLocks
+ /// Words 215 to 216
+ /// NV Cache Size in Logical BLocks
///
public uint NVCacheSize;
///
- /// Word 217
- /// Nominal media rotation rate
- /// In ACS-1 meant NV Cache read speed in MB/s
+ /// Word 217
+ /// Nominal media rotation rate
+ /// In ACS-1 meant NV Cache read speed in MB/s
///
public ushort NominalRotationRate;
///
- /// Word 218
- /// NV Cache write speed in MB/s
- /// Reserved since ACS-2
+ /// Word 218
+ /// NV Cache write speed in MB/s
+ /// Reserved since ACS-2
///
public ushort NVCacheWriteSpeed;
///
- /// Word 219 bits 7 to 0
- /// Estimated device spin up in seconds
+ /// Word 219 bits 7 to 0
+ /// Estimated device spin up in seconds
///
public byte NVEstimatedSpinUp;
///
- /// Word 219 bits 15 to 8
- /// NV Cache reserved
+ /// Word 219 bits 15 to 8
+ /// NV Cache reserved
///
public byte NVReserved;
///
- /// Word 220 bits 7 to 0
- /// Write/Read/Verify feature set current mode
+ /// Word 220 bits 7 to 0
+ /// Write/Read/Verify feature set current mode
///
public byte WRVMode;
///
- /// Word 220 bits 15 to 8
- /// Reserved
+ /// Word 220 bits 15 to 8
+ /// Reserved
///
public byte WRVReserved;
///
- /// Word 221
- /// Reserved
+ /// Word 221
+ /// Reserved
///
public ushort ReservedWord221;
///
- /// Word 222
- /// Transport major revision number
- /// Bits 15 to 12 indicate transport type. 0 parallel, 1 serial, 0xE PCIe.
- /// Bits 11 to 0 indicate revision
+ /// Word 222
+ /// Transport major revision number
+ /// Bits 15 to 12 indicate transport type. 0 parallel, 1 serial, 0xE PCIe.
+ /// Bits 11 to 0 indicate revision
///
public ushort TransportMajorVersion;
///
- /// Word 223
- /// Transport minor revision number
+ /// Word 223
+ /// Transport minor revision number
///
public ushort TransportMinorVersion;
///
- /// Words 224 to 229
- /// Reserved for CE-ATA
+ /// Words 224 to 229
+ /// Reserved for CE-ATA
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)] public ushort[] ReservedCEATA224;
///
- /// Words 230 to 233
- /// 48-bit LBA if Word 69 bit 3 is set
+ /// Words 230 to 233
+ /// 48-bit LBA if Word 69 bit 3 is set
///
public ulong ExtendedUserSectors;
///
- /// Word 234
- /// Minimum number of 512 byte units per DOWNLOAD MICROCODE mode 3
+ /// Word 234
+ /// Minimum number of 512 byte units per DOWNLOAD MICROCODE mode 3
///
public ushort MinDownloadMicroMode3;
///
- /// Word 235
- /// Maximum number of 512 byte units per DOWNLOAD MICROCODE mode 3
+ /// Word 235
+ /// Maximum number of 512 byte units per DOWNLOAD MICROCODE mode 3
///
public ushort MaxDownloadMicroMode3;
///
- /// Words 236 to 254
+ /// Words 236 to 254
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 19)] public ushort[] ReservedWords;
///
- /// Word 255 bits 7 to 0
- /// Should be 0xA5
+ /// Word 255 bits 7 to 0
+ /// Should be 0xA5
///
public byte Signature;
///
- /// Word 255 bits 15 to 8
- /// Checksum
+ /// Word 255 bits 15 to 8
+ /// Checksum
///
public byte Checksum;
}
///
- /// General configuration flag bits.
+ /// General configuration flag bits.
///
[Flags]
public enum GeneralConfigurationBit : ushort
{
///
- /// Set on ATAPI
+ /// Set on ATAPI
///
NonMagnetic = 0x8000,
///
- /// Format speed tolerance gap is required
- /// Obsoleted in ATA-2
+ /// Format speed tolerance gap is required
+ /// Obsoleted in ATA-2
///
FormatGapReq = 0x4000,
///
- /// Track offset option is available
- /// Obsoleted in ATA-2
+ /// Track offset option is available
+ /// Obsoleted in ATA-2
///
TrackOffset = 0x2000,
///
- /// Data strobe offset option is available
- /// Obsoleted in ATA-2
+ /// Data strobe offset option is available
+ /// Obsoleted in ATA-2
///
DataStrobeOffset = 0x1000,
///
- /// Rotational speed tolerance is higher than 0,5%
- /// Obsoleted in ATA-2
+ /// Rotational speed tolerance is higher than 0,5%
+ /// Obsoleted in ATA-2
///
RotationalSpeedTolerance = 0x0800,
///
- /// Disk transfer rate is > 10 Mb/s
- /// Obsoleted in ATA-2
+ /// Disk transfer rate is > 10 Mb/s
+ /// Obsoleted in ATA-2
///
UltraFastIDE = 0x0400,
///
- /// Disk transfer rate is > 5 Mb/s but <= 10 Mb/s
- /// Obsoleted in ATA-2
+ /// Disk transfer rate is > 5 Mb/s but <= 10 Mb/s
+ /// Obsoleted in ATA-2
///
FastIDE = 0x0200,
///
- /// Disk transfer rate is <= 5 Mb/s
- /// Obsoleted in ATA-2
+ /// Disk transfer rate is <= 5 Mb/s
+ /// Obsoleted in ATA-2
///
SlowIDE = 0x0100,
///
- /// Drive uses removable media
+ /// Drive uses removable media
///
Removable = 0x0080,
///
- /// Drive is fixed
- /// Obsoleted in ATA/ATAPI-6
+ /// Drive is fixed
+ /// Obsoleted in ATA/ATAPI-6
///
Fixed = 0x0040,
///
- /// Spindle motor control is implemented
- /// Obsoleted in ATA-2
+ /// Spindle motor control is implemented
+ /// Obsoleted in ATA-2
///
SpindleControl = 0x0020,
///
- /// Head switch time is bigger than 15 µsec.
- /// Obsoleted in ATA-2
+ /// Head switch time is bigger than 15 µsec.
+ /// Obsoleted in ATA-2
///
HighHeadSwitch = 0x0010,
///
- /// Drive is not MFM encoded
- /// Obsoleted in ATA-2
+ /// Drive is not MFM encoded
+ /// Obsoleted in ATA-2
///
NotMFM = 0x0008,
///
- /// Drive is soft sectored
- /// Obsoleted in ATA-2
+ /// Drive is soft sectored
+ /// Obsoleted in ATA-2
///
SoftSector = 0x0004,
///
- /// Response incomplete
- /// Since ATA/ATAPI-5
+ /// Response incomplete
+ /// Since ATA/ATAPI-5
///
IncompleteResponse = 0x0004,
///
- /// Drive is hard sectored
- /// Obsoleted in ATA-2
+ /// Drive is hard sectored
+ /// Obsoleted in ATA-2
///
HardSector = 0x0002,
///
- /// Reserved
+ /// Reserved
///
Reserved = 0x0001
}
///
- /// Capabilities flag bits.
+ /// Capabilities flag bits.
///
[Flags]
public enum CapabilitiesBit : ushort
{
///
- /// ATAPI: Interleaved DMA supported
+ /// ATAPI: Interleaved DMA supported
///
InterleavedDMA = 0x8000,
///
- /// ATAPI: Command queueing supported
+ /// ATAPI: Command queueing supported
///
CommandQueue = 0x4000,
///
- /// Standby timer values are standard
+ /// Standby timer values are standard
///
StandardStanbyTimer = 0x2000,
///
- /// ATAPI: Overlap operation supported
+ /// ATAPI: Overlap operation supported
///
OverlapOperation = 0x2000,
///
- /// ATAPI: ATA software reset required
- /// Obsoleted in ATA/ATAPI-4
+ /// ATAPI: ATA software reset required
+ /// Obsoleted in ATA/ATAPI-4
///
RequiresATASoftReset = 0x1000,
///
- /// IORDY is supported
+ /// IORDY is supported
///
IORDY = 0x0800,
///
- /// IORDY can be disabled
+ /// IORDY can be disabled
///
CanDisableIORDY = 0x0400,
///
- /// LBA is supported
+ /// LBA is supported
///
LBASupport = 0x0200,
///
- /// DMA is supported
+ /// DMA is supported
///
DMASupport = 0x0100,
///
- /// Vendor unique
- /// Obsoleted in ATA/ATAPI-4
+ /// Vendor unique
+ /// Obsoleted in ATA/ATAPI-4
///
VendorBit7 = 0x0080,
///
- /// Vendor unique
- /// Obsoleted in ATA/ATAPI-4
+ /// Vendor unique
+ /// Obsoleted in ATA/ATAPI-4
///
VendorBit6 = 0x0040,
///
- /// Vendor unique
- /// Obsoleted in ATA/ATAPI-4
+ /// Vendor unique
+ /// Obsoleted in ATA/ATAPI-4
///
VendorBit5 = 0x0020,
///
- /// Vendor unique
- /// Obsoleted in ATA/ATAPI-4
+ /// Vendor unique
+ /// Obsoleted in ATA/ATAPI-4
///
VendorBit4 = 0x0010,
///
- /// Vendor unique
- /// Obsoleted in ATA/ATAPI-4
+ /// Vendor unique
+ /// Obsoleted in ATA/ATAPI-4
///
VendorBit3 = 0x0008,
///
- /// Vendor unique
- /// Obsoleted in ATA/ATAPI-4
+ /// Vendor unique
+ /// Obsoleted in ATA/ATAPI-4
///
VendorBit2 = 0x0004,
///
- /// Long Physical Alignment setting bit 1
+ /// Long Physical Alignment setting bit 1
///
PhysicalAlignment1 = 0x0002,
///
- /// Long Physical Alignment setting bit 0
+ /// Long Physical Alignment setting bit 0
///
PhysicalAlignment0 = 0x0001
}
///
- /// Extended identify flag bits.
+ /// Extended identify flag bits.
///
[Flags]
public enum ExtendedIdentifyBit : byte
{
///
- /// Reserved
+ /// Reserved
///
Reserved07 = 0x80,
///
- /// Reserved
+ /// Reserved
///
Reserved06 = 0x40,
///
- /// Reserved
+ /// Reserved
///
Reserved05 = 0x20,
///
- /// Reserved
+ /// Reserved
///
Reserved04 = 0x10,
///
- /// Reserved
+ /// Reserved
///
Reserved03 = 0x08,
///
- /// Identify word 88 is valid
+ /// Identify word 88 is valid
///
Word88Valid = 0x04,
///
- /// Identify words 64 to 70 are valid
+ /// Identify words 64 to 70 are valid
///
Words64to70Valid = 0x02,
///
- /// Identify words 54 to 58 are valid
+ /// Identify words 54 to 58 are valid
///
Words54to58Valid = 0x01
}
///
- /// More capabilities flag bits.
+ /// More capabilities flag bits.
///
[Flags]
public enum CapabilitiesBit2 : ushort
{
///
- /// MUST NOT be set
+ /// MUST NOT be set
///
MustBeClear = 0x8000,
///
- /// MUST be set
+ /// MUST be set
///
MustBeSet = 0x4000,
Reserved13 = 0x2000,
@@ -1035,7 +1036,7 @@ namespace DiscImageChef.Decoders.ATA
Reserved02 = 0x0004,
Reserved01 = 0x0002,
///
- /// Indicates a device specific minimum standby timer value
+ /// Indicates a device specific minimum standby timer value
///
SpecificStandbyTimer = 0x0001
}
@@ -1054,223 +1055,223 @@ namespace DiscImageChef.Decoders.ATA
}
///
- /// More capabilities flag bits.
+ /// More capabilities flag bits.
///
[Flags]
public enum CommandSetBit : ushort
{
///
- /// Already obsolete in ATA/ATAPI-4, reserved in ATA3
+ /// Already obsolete in ATA/ATAPI-4, reserved in ATA3
///
Obsolete15 = 0x8000,
///
- /// NOP is supported
+ /// NOP is supported
///
Nop = 0x4000,
///
- /// READ BUFFER is supported
+ /// READ BUFFER is supported
///
ReadBuffer = 0x2000,
///
- /// WRITE BUFFER is supported
+ /// WRITE BUFFER is supported
///
WriteBuffer = 0x1000,
///
- /// Already obsolete in ATA/ATAPI-4, reserved in ATA3
+ /// Already obsolete in ATA/ATAPI-4, reserved in ATA3
///
Obsolete11 = 0x0800,
///
- /// Host Protected Area is supported
+ /// Host Protected Area is supported
///
HPA = 0x0400,
///
- /// DEVICE RESET is supported
+ /// DEVICE RESET is supported
///
DeviceReset = 0x0200,
///
- /// SERVICE interrupt is supported
+ /// SERVICE interrupt is supported
///
Service = 0x0100,
///
- /// Release is supported
+ /// Release is supported
///
Release = 0x0080,
///
- /// Look-ahead is supported
+ /// Look-ahead is supported
///
LookAhead = 0x0040,
///
- /// Write cache is supported
+ /// Write cache is supported
///
WriteCache = 0x0020,
///
- /// PACKET command set is supported
+ /// PACKET command set is supported
///
Packet = 0x0010,
///
- /// Power Management feature set is supported
+ /// Power Management feature set is supported
///
PowerManagement = 0x0008,
///
- /// Removable Media feature set is supported
+ /// Removable Media feature set is supported
///
RemovableMedia = 0x0004,
///
- /// Security Mode feature set is supported
+ /// Security Mode feature set is supported
///
SecurityMode = 0x0002,
///
- /// SMART feature set is supported
+ /// SMART feature set is supported
///
SMART = 0x0001
}
///
- /// More capabilities flag bits.
+ /// More capabilities flag bits.
///
[Flags]
public enum CommandSetBit2 : ushort
{
///
- /// MUST NOT be set
+ /// MUST NOT be set
///
MustBeClear = 0x8000,
///
- /// MUST BE SET
+ /// MUST BE SET
///
MustBeSet = 0x4000,
///
- /// FLUSH CACHE EXT supported
+ /// FLUSH CACHE EXT supported
///
FlushCacheExt = 0x2000,
///
- /// FLUSH CACHE supported
+ /// FLUSH CACHE supported
///
FlushCache = 0x1000,
///
- /// Device Configuration Overlay feature set supported
+ /// Device Configuration Overlay feature set supported
///
DCO = 0x0800,
///
- /// 48-bit LBA supported
+ /// 48-bit LBA supported
///
LBA48 = 0x0400,
///
- /// Automatic Acoustic Management supported
+ /// Automatic Acoustic Management supported
///
AAM = 0x0200,
///
- /// SET MAX security extension supported
+ /// SET MAX security extension supported
///
SetMax = 0x0100,
///
- /// Address Offset Reserved Area Boot NCITS TR27:2001
+ /// Address Offset Reserved Area Boot NCITS TR27:2001
///
AddressOffsetReservedAreaBoot = 0x0080,
///
- /// SET FEATURES required to spin-up
+ /// SET FEATURES required to spin-up
///
SetFeaturesRequired = 0x0040,
///
- /// Power-Up in standby feature set supported
+ /// Power-Up in standby feature set supported
///
PowerUpInStandby = 0x0020,
///
- /// Removable Media Status Notification feature set is supported
+ /// Removable Media Status Notification feature set is supported
///
RemovableNotification = 0x0010,
///
- /// Advanced Power Management feature set is supported
+ /// Advanced Power Management feature set is supported
///
APM = 0x0008,
///
- /// Compact Flash feature set is supported
+ /// Compact Flash feature set is supported
///
CompactFlash = 0x0004,
///
- /// READ DMA QUEUED and WRITE DMA QUEUED are supported
+ /// READ DMA QUEUED and WRITE DMA QUEUED are supported
///
RWQueuedDMA = 0x0002,
///
- /// DOWNLOAD MICROCODE is supported
+ /// DOWNLOAD MICROCODE is supported
///
DownloadMicrocode = 0x0001
}
///
- /// More capabilities flag bits.
+ /// More capabilities flag bits.
///
[Flags]
public enum CommandSetBit3 : ushort
{
///
- /// MUST NOT be set
+ /// MUST NOT be set
///
MustBeClear = 0x8000,
///
- /// MUST BE SET
+ /// MUST BE SET
///
MustBeSet = 0x4000,
///
- /// IDLE IMMEDIATE with UNLOAD FEATURE is supported
+ /// IDLE IMMEDIATE with UNLOAD FEATURE is supported
///
IdleImmediate = 0x2000,
///
- /// Reserved for INCITS TR-37/2004
+ /// Reserved for INCITS TR-37/2004
///
Reserved12 = 0x1000,
///
- /// Reserved for INCITS TR-37/2004
+ /// Reserved for INCITS TR-37/2004
///
Reserved11 = 0x0800,
///
- /// URG bit is supported in WRITE STREAM DMA EXT and WRITE STREAM EXT
+ /// URG bit is supported in WRITE STREAM DMA EXT and WRITE STREAM EXT
///
WriteURG = 0x0400,
///
- /// URG bit is supported in READ STREAM DMA EXT and READ STREAM EXT
+ /// URG bit is supported in READ STREAM DMA EXT and READ STREAM EXT
///
ReadURG = 0x0200,
///
- /// 64-bit World Wide Name is supported
+ /// 64-bit World Wide Name is supported
///
WWN = 0x0100,
///
- /// WRITE DMA QUEUED FUA EXT is supported
+ /// WRITE DMA QUEUED FUA EXT is supported
///
FUAWriteQ = 0x0080,
///
- /// WRITE DMA FUA EXT and WRITE MULTIPLE FUA EXT are supported
+ /// WRITE DMA FUA EXT and WRITE MULTIPLE FUA EXT are supported
///
FUAWrite = 0x0040,
///
- /// General Purpose Logging feature supported
+ /// General Purpose Logging feature supported
///
GPL = 0x0020,
///
- /// Sstreaming feature set is supported
+ /// Sstreaming feature set is supported
///
Streaming = 0x0010,
///
- /// Media Card Pass Through command set supported
+ /// Media Card Pass Through command set supported
///
MCPT = 0x0008,
///
- /// Media serial number supported
+ /// Media serial number supported
///
MediaSerial = 0x0004,
///
- /// SMART self-test supported
+ /// SMART self-test supported
///
SMARTSelfTest = 0x0002,
///
- /// SMART error logging supported
+ /// SMART error logging supported
///
SMARTLog = 0x0001
}
///
- /// More capabilities flag bits.
+ /// More capabilities flag bits.
///
[Flags]
public enum SecurityStatusBit : ushort
@@ -1283,40 +1284,40 @@ namespace DiscImageChef.Decoders.ATA
Reserved10 = 0x0400,
Reserved09 = 0x0200,
///
- /// Maximum security level
+ /// Maximum security level
///
Maximum = 0x0100,
Reserved07 = 0x0080,
Reserved06 = 0x0040,
///
- /// Supports enhanced security erase
+ /// Supports enhanced security erase
///
Enhanced = 0x0020,
///
- /// Security count expired
+ /// Security count expired
///
Expired = 0x0010,
///
- /// Security frozen
+ /// Security frozen
///
Frozen = 0x0008,
///
- /// Security locked
+ /// Security locked
///
Locked = 0x0004,
///
- /// Security enabled
+ /// Security enabled
///
Enabled = 0x0002,
///
- /// Security supported
+ /// Security supported
///
Supported = 0x0001
}
///
- /// Word 80
- /// Major version
+ /// Word 80
+ /// Major version
///
[Flags]
public enum MajorVersionBit : ushort
@@ -1326,47 +1327,47 @@ namespace DiscImageChef.Decoders.ATA
Reserved13 = 0x2000,
Reserved12 = 0x1000,
///
- /// ACS-4
+ /// ACS-4
///
ACS4 = 0x0800,
///
- /// ACS-3
+ /// ACS-3
///
ACS3 = 0x0400,
///
- /// ACS-2
+ /// ACS-2
///
ACS2 = 0x0200,
///
- /// ATA8-ACS
+ /// ATA8-ACS
///
Ata8ACS = 0x0100,
///
- /// ATA/ATAPI-7
+ /// ATA/ATAPI-7
///
AtaAtapi7 = 0x0080,
///
- /// ATA/ATAPI-6
+ /// ATA/ATAPI-6
///
AtaAtapi6 = 0x0040,
///
- /// ATA/ATAPI-5
+ /// ATA/ATAPI-5
///
AtaAtapi5 = 0x0020,
///
- /// ATA/ATAPI-4
+ /// ATA/ATAPI-4
///
AtaAtapi4 = 0x0010,
///
- /// ATA-3
+ /// ATA-3
///
Ata3 = 0x0008,
///
- /// ATA-2
+ /// ATA-2
///
Ata2 = 0x0004,
///
- /// ATA-1
+ /// ATA-1
///
Ata1 = 0x0002,
Reserved00 = 0x0001
@@ -1375,23 +1376,23 @@ namespace DiscImageChef.Decoders.ATA
public enum SpecificConfigurationEnum : ushort
{
///
- /// Device requires SET FEATURES to spin up and
- /// IDENTIFY DEVICE response is incomplete
+ /// Device requires SET FEATURES to spin up and
+ /// IDENTIFY DEVICE response is incomplete
///
RequiresSetIncompleteResponse = 0x37C8,
///
- /// Device requires SET FEATURES to spin up and
- /// IDENTIFY DEVICE response is complete
+ /// Device requires SET FEATURES to spin up and
+ /// IDENTIFY DEVICE response is complete
///
RequiresSetCompleteResponse = 0x738C,
///
- /// Device does not requires SET FEATURES to spin up and
- /// IDENTIFY DEVICE response is incomplete
+ /// Device does not requires SET FEATURES to spin up and
+ /// IDENTIFY DEVICE response is incomplete
///
NotRequiresSetIncompleteResponse = 0x8C73,
///
- /// Device does not requires SET FEATURES to spin up and
- /// IDENTIFY DEVICE response is complete
+ /// Device does not requires SET FEATURES to spin up and
+ /// IDENTIFY DEVICE response is complete
///
NotRequiresSetCompleteResponse = 0xC837
}
@@ -1400,11 +1401,11 @@ namespace DiscImageChef.Decoders.ATA
public enum TrustedComputingBit : ushort
{
///
- /// MUST NOT be set
+ /// MUST NOT be set
///
Clear = 0x8000,
///
- /// MUST be set
+ /// MUST be set
///
Set = 0x4000,
Reserved13 = 0x2000,
@@ -1421,23 +1422,23 @@ namespace DiscImageChef.Decoders.ATA
Reserved02 = 0x0004,
Reserved01 = 0x0002,
///
- /// Trusted Computing feature set is supported
+ /// Trusted Computing feature set is supported
///
TrustedComputing = 0x0001
}
///
- /// More capabilities flag bits.
+ /// More capabilities flag bits.
///
[Flags]
public enum CommandSetBit4 : ushort
{
///
- /// MUST NOT be set
+ /// MUST NOT be set
///
MustBeClear = 0x8000,
///
- /// MUST be set
+ /// MUST be set
///
MustBeSet = 0x4000,
Reserved13 = 0x2000,
@@ -1445,43 +1446,43 @@ namespace DiscImageChef.Decoders.ATA
Reserved11 = 0x0800,
Reserved10 = 0x0400,
///
- /// DSN feature set is supported
+ /// DSN feature set is supported
///
DSN = 0x0200,
///
- /// Accessible Max Address Configuration is supported
+ /// Accessible Max Address Configuration is supported
///
AMAC = 0x0100,
///
- /// Extended Power Conditions is supported
+ /// Extended Power Conditions is supported
///
ExtPowerCond = 0x0080,
///
- /// Extended Status Reporting is supported
+ /// Extended Status Reporting is supported
///
ExtStatusReport = 0x0040,
///
- /// Free-fall Control feature set is supported
+ /// Free-fall Control feature set is supported
///
FreeFallControl = 0x0020,
///
- /// Supports segmented feature in DOWNLOAD MICROCODE
+ /// Supports segmented feature in DOWNLOAD MICROCODE
///
SegmentedDownloadMicrocode = 0x0010,
///
- /// READ/WRITE DMA EXT GPL are supported
+ /// READ/WRITE DMA EXT GPL are supported
///
RWDMAExtGpl = 0x0008,
///
- /// WRITE UNCORRECTABLE is supported
+ /// WRITE UNCORRECTABLE is supported
///
WriteUnc = 0x0004,
///
- /// Write/Read/Verify is supported
+ /// Write/Read/Verify is supported
///
WRV = 0x0002,
///
- /// Reserved for DT1825
+ /// Reserved for DT1825
///
DT1825 = 0x0001
}
@@ -1500,27 +1501,27 @@ namespace DiscImageChef.Decoders.ATA
Reserved07 = 0x0080,
Reserved06 = 0x0040,
///
- /// SCT Command Transport Data Tables supported
+ /// SCT Command Transport Data Tables supported
///
DataTables = 0x0020,
///
- /// SCT Command Transport Features Control supported
+ /// SCT Command Transport Features Control supported
///
FeaturesControl = 0x0010,
///
- /// SCT Command Transport Error Recovery Control supported
+ /// SCT Command Transport Error Recovery Control supported
///
ErrorRecoveryControl = 0x0008,
///
- /// SCT Command Transport Write Same supported
+ /// SCT Command Transport Write Same supported
///
WriteSame = 0x0004,
///
- /// SCT Command Transport Long Sector Address supported
+ /// SCT Command Transport Long Sector Address supported
///
LongSectorAccess = 0x0002,
///
- /// SCT Command Transport supported
+ /// SCT Command Transport supported
///
Supported = 0x0001
}
@@ -1529,35 +1530,35 @@ namespace DiscImageChef.Decoders.ATA
public enum SATACapabilitiesBit : ushort
{
///
- /// Supports READ LOG DMA EXT
+ /// Supports READ LOG DMA EXT
///
ReadLogDMAExt = 0x8000,
///
- /// Supports device automatic partial to slumber transitions
+ /// Supports device automatic partial to slumber transitions
///
DevSlumbTrans = 0x4000,
///
- /// Supports host automatic partial to slumber transitions
+ /// Supports host automatic partial to slumber transitions
///
HostSlumbTrans = 0x2000,
///
- /// Supports NCQ priroty
+ /// Supports NCQ priroty
///
NCQPriority = 0x1000,
///
- /// Supports unload while NCQ commands are outstanding
+ /// Supports unload while NCQ commands are outstanding
///
UnloadNCQ = 0x0800,
///
- /// Supports PHY Event Counters
+ /// Supports PHY Event Counters
///
PHYEventCounter = 0x0400,
///
- /// Supports receipt of host initiated power management requests
+ /// Supports receipt of host initiated power management requests
///
PowerReceipt = 0x0200,
///
- /// Supports NCQ
+ /// Supports NCQ
///
NCQ = 0x0100,
Reserved07 = 0x0080,
@@ -1565,19 +1566,19 @@ namespace DiscImageChef.Decoders.ATA
Reserved05 = 0x0020,
Reserved04 = 0x0010,
///
- /// Supports SATA Gen. 3 Signaling Speed (6.0Gb/s)
+ /// Supports SATA Gen. 3 Signaling Speed (6.0Gb/s)
///
Gen3Speed = 0x0008,
///
- /// Supports SATA Gen. 2 Signaling Speed (3.0Gb/s)
+ /// Supports SATA Gen. 2 Signaling Speed (3.0Gb/s)
///
Gen2Speed = 0x0004,
///
- /// Supports SATA Gen. 1 Signaling Speed (1.5Gb/s)
+ /// Supports SATA Gen. 1 Signaling Speed (1.5Gb/s)
///
Gen1Speed = 0x0002,
///
- /// MUST NOT be set
+ /// MUST NOT be set
///
Clear = 0x0001
}
@@ -1594,43 +1595,43 @@ namespace DiscImageChef.Decoders.ATA
Reserved09 = 0x0200,
Reserved08 = 0x0100,
///
- /// Supports NCQ autosense
+ /// Supports NCQ autosense
///
NCQAutoSense = 0x0080,
///
- /// Automatic Partial to Slumber transitions are enabled
+ /// Automatic Partial to Slumber transitions are enabled
///
EnabledSlumber = 0x0080,
///
- /// Supports Software Settings Preservation
+ /// Supports Software Settings Preservation
///
SettingsPreserve = 0x0040,
///
- /// Supports hardware feature control
+ /// Supports hardware feature control
///
HardwareFeatureControl = 0x0020,
///
- /// ATAPI: Asynchronous notification
+ /// ATAPI: Asynchronous notification
///
AsyncNotification = 0x0020,
///
- /// Supports in-order data delivery
+ /// Supports in-order data delivery
///
InOrderData = 0x0010,
///
- /// Supports initiating power management
+ /// Supports initiating power management
///
InitPowerMgmt = 0x0008,
///
- /// Supports DMA Setup auto-activation
+ /// Supports DMA Setup auto-activation
///
DMASetup = 0x0004,
///
- /// Supports non-zero buffer offsets
+ /// Supports non-zero buffer offsets
///
NonZeroBufferOffset = 0x0002,
///
- /// MUST NOT be set
+ /// MUST NOT be set
///
Clear = 0x0001
}
@@ -1639,32 +1640,32 @@ namespace DiscImageChef.Decoders.ATA
public enum CapabilitiesBit3 : byte
{
///
- /// BLOCK ERASE EXT supported
+ /// BLOCK ERASE EXT supported
///
BlockErase = 0x0080,
///
- /// OVERWRITE EXT supported
+ /// OVERWRITE EXT supported
///
Overwrite = 0x0040,
///
- /// CRYPTO SCRAMBLE EXT supported
+ /// CRYPTO SCRAMBLE EXT supported
///
CryptoScramble = 0x0020,
///
- /// Sanitize feature set is supported
+ /// Sanitize feature set is supported
///
Sanitize = 0x0010,
///
- /// If unset, sanitize commands are specified by ACS-2
+ /// If unset, sanitize commands are specified by ACS-2
///
SanitizeCommands = 0x0008,
///
- /// SANITIZE ANTIFREEZE LOCK EXT is supported
+ /// SANITIZE ANTIFREEZE LOCK EXT is supported
///
SanitizeAntifreeze = 0x0004,
Reserved01 = 0x0002,
///
- /// Multiple logical sector setting is valid
+ /// Multiple logical sector setting is valid
///
MultipleValid = 0x0001
}
@@ -1673,67 +1674,67 @@ namespace DiscImageChef.Decoders.ATA
public enum CommandSetBit5 : ushort
{
///
- /// Supports CFast Specification
+ /// Supports CFast Specification
///
CFast = 0x8000,
///
- /// Deterministic read after TRIM is supported
+ /// Deterministic read after TRIM is supported
///
DeterministicTrim = 0x4000,
///
- /// Long physical sector alignment error reporting control is supported
+ /// Long physical sector alignment error reporting control is supported
///
LongPhysSectorAligError = 0x2000,
///
- /// DEVICE CONFIGURATION IDENTIFY DMA and DEVICE CONFIGURATION SET DMA are supported
+ /// DEVICE CONFIGURATION IDENTIFY DMA and DEVICE CONFIGURATION SET DMA are supported
///
DeviceConfDMA = 0x1000,
///
- /// READ BUFFER DMA is supported
+ /// READ BUFFER DMA is supported
///
ReadBufferDMA = 0x0800,
///
- /// WRITE BUFFER DMA is supported
+ /// WRITE BUFFER DMA is supported
///
WriteBufferDMA = 0x0400,
///
- /// SET PASSWORD DMA and SET UNLOCK DMA are supported
+ /// SET PASSWORD DMA and SET UNLOCK DMA are supported
///
SetMaxDMA = 0x0200,
///
- /// DOWNLOAD MICROCODE DMA is supported
+ /// DOWNLOAD MICROCODE DMA is supported
///
DownloadMicroCodeDMA = 0x0100,
///
- /// Reserved for IEEE-1667
+ /// Reserved for IEEE-1667
///
IEEE1667 = 0x0080,
///
- /// Optional ATA 28-bit commands are supported
+ /// Optional ATA 28-bit commands are supported
///
Ata28 = 0x0040,
///
- /// Read zero after TRIM is supported
+ /// Read zero after TRIM is supported
///
ReadZeroTrim = 0x0020,
///
- /// Device encrypts all user data
+ /// Device encrypts all user data
///
Encrypted = 0x0010,
///
- /// Extended number of user addressable sectors is supported
+ /// Extended number of user addressable sectors is supported
///
ExtSectors = 0x0008,
///
- /// All write cache is non-volatile
+ /// All write cache is non-volatile
///
AllCacheNV = 0x0004,
///
- /// Zoned capabilities bit 1
+ /// Zoned capabilities bit 1
///
ZonedBit1 = 0x0002,
///
- /// Zoned capabilities bit 0
+ /// Zoned capabilities bit 0
///
ZonedBit0 = 0x0001
}
@@ -1741,27 +1742,27 @@ namespace DiscImageChef.Decoders.ATA
public enum DeviceFormFactorEnum : ushort
{
///
- /// Size not reported
+ /// Size not reported
///
NotReported = 0,
///
- /// 5.25"
+ /// 5.25"
///
FiveAndQuarter = 1,
///
- /// 3.5"
+ /// 3.5"
///
ThreeAndHalf = 2,
///
- /// 2.5"
+ /// 2.5"
///
TwoAndHalf = 3,
///
- /// 1.8"
+ /// 1.8"
///
OnePointEight = 4,
///
- /// Less than 1.8"
+ /// Less than 1.8"
///
LessThanOnePointEight = 5
}
@@ -1785,7 +1786,7 @@ namespace DiscImageChef.Decoders.ATA
Reserved02 = 0x0004,
Reserved01 = 0x0002,
///
- /// TRIM is suported
+ /// TRIM is suported
///
Trim = 0x0001
}
@@ -1803,39 +1804,39 @@ namespace DiscImageChef.Decoders.ATA
Reserved08 = 0x0100,
Reserved07 = 0x0080,
///
- /// Supports RECEIVE FPDMA QUEUED and SEND FPDMA QUEUED
+ /// Supports RECEIVE FPDMA QUEUED and SEND FPDMA QUEUED
///
FPDMAQ = 0x0040,
///
- /// Supports NCQ Queue Management
+ /// Supports NCQ Queue Management
///
NCQMgmt = 0x0020,
///
- /// ATAPI: Supports host environment detect
+ /// ATAPI: Supports host environment detect
///
HostEnvDetect = 0x0020,
///
- /// Supports NCQ streaming
+ /// Supports NCQ streaming
///
NCQStream = 0x0010,
///
- /// ATAPI: Supports device attention on slimline connected devices
+ /// ATAPI: Supports device attention on slimline connected devices
///
DevAttSlimline = 0x0010,
///
- /// Coded value indicating current negotiated Serial ATA signal speed
+ /// Coded value indicating current negotiated Serial ATA signal speed
///
CurrentSpeedBit2 = 0x0008,
///
- /// Coded value indicating current negotiated Serial ATA signal speed
+ /// Coded value indicating current negotiated Serial ATA signal speed
///
CurrentSpeedBit1 = 0x0004,
///
- /// Coded value indicating current negotiated Serial ATA signal speed
+ /// Coded value indicating current negotiated Serial ATA signal speed
///
CurrentSpeedBit0 = 0x0002,
///
- /// MUST NOT be set
+ /// MUST NOT be set
///
Clear = 0x0001
}
@@ -1888,10 +1889,8 @@ namespace DiscImageChef.Decoders.ATA
IdentifyDevice ATAID = IdentifyDeviceResponse.Value;
if(ATAID.GeneralConfiguration.HasFlag(GeneralConfigurationBit.NonMagnetic))
- if((ushort)ATAID.GeneralConfiguration != 0x848A)
- atapi = true;
- else
- cfa = true;
+ if((ushort)ATAID.GeneralConfiguration != 0x848A) atapi = true;
+ else cfa = true;
if(atapi) sb.AppendLine("ATAPI device");
else if(cfa) sb.AppendLine("CompactFlash device");
@@ -1914,7 +1913,8 @@ namespace DiscImageChef.Decoders.ATA
if(ATAID.MediaSerial != "") sb.AppendFormat("Media serial #: {0}", ATAID.MediaSerial).AppendLine();
}
- if(ATAID.EnabledCommandSet3.HasFlag(CommandSetBit3.WWN)) sb.AppendFormat("World Wide Name: {0:X16}", ATAID.WWN).AppendLine();
+ if(ATAID.EnabledCommandSet3.HasFlag(CommandSetBit3.WWN))
+ sb.AppendFormat("World Wide Name: {0:X16}", ATAID.WWN).AppendLine();
}
bool ata1 = false,
@@ -2381,10 +2381,7 @@ namespace DiscImageChef.Decoders.ATA
else logicalsectorsize = 512;
if((ATAID.PhysLogSectorSize & 0x2000) == 0x2000)
- {
- physicalsectorsize =
- logicalsectorsize * (uint)Math.Pow(2, ATAID.PhysLogSectorSize & 0xF);
- }
+ physicalsectorsize = logicalsectorsize * (uint)Math.Pow(2, ATAID.PhysLogSectorSize & 0xF);
else physicalsectorsize = logicalsectorsize;
}
else
@@ -2422,9 +2419,11 @@ namespace DiscImageChef.Decoders.ATA
ATAID.Cylinders * ATAID.Heads * ATAID.SectorsPerTrack).AppendLine();
}
- if(ATAID.Capabilities.HasFlag(CapabilitiesBit.LBASupport)) sb.AppendFormat("{0} sectors in 28-bit LBA mode", ATAID.LBASectors).AppendLine();
+ if(ATAID.Capabilities.HasFlag(CapabilitiesBit.LBASupport))
+ sb.AppendFormat("{0} sectors in 28-bit LBA mode", ATAID.LBASectors).AppendLine();
- if(ATAID.CommandSet2.HasFlag(CommandSetBit2.LBA48)) sb.AppendFormat("{0} sectors in 48-bit LBA mode", ATAID.LBA48Sectors).AppendLine();
+ if(ATAID.CommandSet2.HasFlag(CommandSetBit2.LBA48))
+ sb.AppendFormat("{0} sectors in 48-bit LBA mode", ATAID.LBA48Sectors).AppendLine();
if(minatalevel <= 5)
if(ATAID.CurrentSectors > 0)
@@ -2533,8 +2532,8 @@ namespace DiscImageChef.Decoders.ATA
switch(ATAID.BufferType)
{
case 1:
- sb.AppendFormat("{0} KiB of single ported single sector buffer",
- ATAID.BufferSize * 512 / 1024).AppendLine();
+ sb.AppendFormat("{0} KiB of single ported single sector buffer", ATAID.BufferSize * 512 / 1024)
+ .AppendLine();
break;
case 2:
sb.AppendFormat("{0} KiB of dual ported multi sector buffer", ATAID.BufferSize * 512 / 1024)
@@ -2758,7 +2757,8 @@ namespace DiscImageChef.Decoders.ATA
.AppendFormat("At minimum {0} ns. transfer cycle time per word in PIO, " + "with IORDY flow control",
ATAID.MinPIOCycleTimeFlow);
- if(ATAID.MaxQueueDepth != 0) sb.AppendLine().AppendFormat("{0} depth of queue maximum", ATAID.MaxQueueDepth + 1);
+ if(ATAID.MaxQueueDepth != 0)
+ sb.AppendLine().AppendFormat("{0} depth of queue maximum", ATAID.MaxQueueDepth + 1);
if(atapi)
{
@@ -2775,19 +2775,28 @@ namespace DiscImageChef.Decoders.ATA
{
if(!ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.Clear))
{
- if(ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.Gen1Speed)) sb.AppendLine().Append("SATA 1.5Gb/s is supported");
- if(ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.Gen2Speed)) sb.AppendLine().Append("SATA 3.0Gb/s is supported");
- if(ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.Gen3Speed)) sb.AppendLine().Append("SATA 6.0Gb/s is supported");
- if(ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.PowerReceipt)) sb.AppendLine().Append("Receipt of host initiated power management requests is supported");
- if(ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.PHYEventCounter)) sb.AppendLine().Append("PHY Event counters are supported");
- if(ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.HostSlumbTrans)) sb.AppendLine().Append("Supports host automatic partial to slumber transitions is supported");
- if(ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.DevSlumbTrans)) sb.AppendLine().Append("Supports device automatic partial to slumber transitions is supported");
+ if(ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.Gen1Speed))
+ sb.AppendLine().Append("SATA 1.5Gb/s is supported");
+ if(ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.Gen2Speed))
+ sb.AppendLine().Append("SATA 3.0Gb/s is supported");
+ if(ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.Gen3Speed))
+ sb.AppendLine().Append("SATA 6.0Gb/s is supported");
+ if(ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.PowerReceipt))
+ sb.AppendLine().Append("Receipt of host initiated power management requests is supported");
+ if(ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.PHYEventCounter))
+ sb.AppendLine().Append("PHY Event counters are supported");
+ if(ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.HostSlumbTrans))
+ sb.AppendLine().Append("Supports host automatic partial to slumber transitions is supported");
+ if(ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.DevSlumbTrans))
+ sb.AppendLine().Append("Supports device automatic partial to slumber transitions is supported");
if(ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.NCQ))
{
sb.AppendLine().Append("NCQ is supported");
- if(ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.NCQPriority)) sb.AppendLine().Append("NCQ priority is supported");
- if(ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.UnloadNCQ)) sb.AppendLine().Append("Unload is supported with outstanding NCQ commands");
+ if(ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.NCQPriority))
+ sb.AppendLine().Append("NCQ priority is supported");
+ if(ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.UnloadNCQ))
+ sb.AppendLine().Append("Unload is supported with outstanding NCQ commands");
}
}
@@ -2796,14 +2805,18 @@ namespace DiscImageChef.Decoders.ATA
if(!ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.Clear) &&
ATAID.SATACapabilities.HasFlag(SATACapabilitiesBit.NCQ))
{
- if(ATAID.SATACapabilities2.HasFlag(SATACapabilitiesBit2.NCQMgmt)) sb.AppendLine().Append("NCQ queue management is supported");
- if(ATAID.SATACapabilities2.HasFlag(SATACapabilitiesBit2.NCQStream)) sb.AppendLine().Append("NCQ streaming is supported");
+ if(ATAID.SATACapabilities2.HasFlag(SATACapabilitiesBit2.NCQMgmt))
+ sb.AppendLine().Append("NCQ queue management is supported");
+ if(ATAID.SATACapabilities2.HasFlag(SATACapabilitiesBit2.NCQStream))
+ sb.AppendLine().Append("NCQ streaming is supported");
}
if(atapi)
{
- if(ATAID.SATACapabilities2.HasFlag(SATACapabilitiesBit2.HostEnvDetect)) sb.AppendLine().Append("ATAPI device supports host environment detection");
- if(ATAID.SATACapabilities2.HasFlag(SATACapabilitiesBit2.DevAttSlimline)) sb.AppendLine().Append("ATAPI device supports attention on slimline connected devices");
+ if(ATAID.SATACapabilities2.HasFlag(SATACapabilitiesBit2.HostEnvDetect))
+ sb.AppendLine().Append("ATAPI device supports host environment detection");
+ if(ATAID.SATACapabilities2.HasFlag(SATACapabilitiesBit2.DevAttSlimline))
+ sb.AppendLine().Append("ATAPI device supports attention on slimline connected devices");
}
//sb.AppendFormat("Negotiated speed = {0}", ((ushort)ATAID.SATACapabilities2 & 0x000E) >> 1);
@@ -2967,7 +2980,8 @@ namespace DiscImageChef.Decoders.ATA
if(ATAID.EnabledCommandSet2.HasFlag(CommandSetBit2.AddressOffsetReservedAreaBoot))
sb.Append(" and enabled");
}
- if(ATAID.CommandSet2.HasFlag(CommandSetBit2.SetFeaturesRequired)) sb.AppendLine().Append("SET FEATURES is required before spin-up");
+ if(ATAID.CommandSet2.HasFlag(CommandSetBit2.SetFeaturesRequired))
+ sb.AppendLine().Append("SET FEATURES is required before spin-up");
if(ATAID.CommandSet2.HasFlag(CommandSetBit2.PowerUpInStandby))
{
sb.AppendLine().Append("Power-up in standby is supported");
@@ -2982,7 +2996,8 @@ namespace DiscImageChef.Decoders.ATA
if(ATAID.CommandSet2.HasFlag(CommandSetBit2.APM))
{
sb.AppendLine().Append("Advanced Power Management is supported");
- if(ATAID.EnabledCommandSet2.HasFlag(CommandSetBit2.APM)) sb.AppendFormat(" and enabled with value {0}", ATAID.CurrentAPM);
+ if(ATAID.EnabledCommandSet2.HasFlag(CommandSetBit2.APM))
+ sb.AppendFormat(" and enabled with value {0}", ATAID.CurrentAPM);
}
if(ATAID.CommandSet2.HasFlag(CommandSetBit2.CompactFlash))
{
@@ -3028,9 +3043,12 @@ namespace DiscImageChef.Decoders.ATA
sb.AppendLine().Append("IDLE IMMEDIATE with UNLOAD FEATURE is supported");
if(ATAID.EnabledCommandSet3.HasFlag(CommandSetBit3.IdleImmediate)) sb.Append(" and enabled");
}
- if(ATAID.CommandSet3.HasFlag(CommandSetBit3.WriteURG)) sb.AppendLine().Append("URG bit is supported in WRITE STREAM DMA EXT and WRITE STREAM EXT");
- if(ATAID.CommandSet3.HasFlag(CommandSetBit3.ReadURG)) sb.AppendLine().Append("URG bit is supported in READ STREAM DMA EXT and READ STREAM EXT");
- if(ATAID.CommandSet3.HasFlag(CommandSetBit3.WWN)) sb.AppendLine().Append("Device has a World Wide Name");
+ if(ATAID.CommandSet3.HasFlag(CommandSetBit3.WriteURG))
+ sb.AppendLine().Append("URG bit is supported in WRITE STREAM DMA EXT and WRITE STREAM EXT");
+ if(ATAID.CommandSet3.HasFlag(CommandSetBit3.ReadURG))
+ sb.AppendLine().Append("URG bit is supported in READ STREAM DMA EXT and READ STREAM EXT");
+ if(ATAID.CommandSet3.HasFlag(CommandSetBit3.WWN))
+ sb.AppendLine().Append("Device has a World Wide Name");
if(ATAID.CommandSet3.HasFlag(CommandSetBit3.FUAWriteQ))
{
sb.AppendLine().Append("WRITE DMA QUEUED FUA EXT is supported");
@@ -3132,23 +3150,33 @@ namespace DiscImageChef.Decoders.ATA
if(ATAID.CommandSet5.HasFlag(CommandSetBit5.DeviceConfDMA))
sb.AppendLine()
.Append("DEVICE CONFIGURATION IDENTIFY DMA and DEVICE CONFIGURATION SET DMA are supported");
- if(ATAID.CommandSet5.HasFlag(CommandSetBit5.ReadBufferDMA)) sb.AppendLine().Append("READ BUFFER DMA is supported");
- if(ATAID.CommandSet5.HasFlag(CommandSetBit5.WriteBufferDMA)) sb.AppendLine().Append("WRITE BUFFER DMA is supported");
- if(ATAID.CommandSet5.HasFlag(CommandSetBit5.DownloadMicroCodeDMA)) sb.AppendLine().Append("DOWNLOAD MICROCODE DMA is supported");
- if(ATAID.CommandSet5.HasFlag(CommandSetBit5.SetMaxDMA)) sb.AppendLine().Append("SET PASSWORD DMA and SET UNLOCK DMA are supported");
- if(ATAID.CommandSet5.HasFlag(CommandSetBit5.Ata28)) sb.AppendLine().Append("Not all 28-bit commands are supported");
+ if(ATAID.CommandSet5.HasFlag(CommandSetBit5.ReadBufferDMA))
+ sb.AppendLine().Append("READ BUFFER DMA is supported");
+ if(ATAID.CommandSet5.HasFlag(CommandSetBit5.WriteBufferDMA))
+ sb.AppendLine().Append("WRITE BUFFER DMA is supported");
+ if(ATAID.CommandSet5.HasFlag(CommandSetBit5.DownloadMicroCodeDMA))
+ sb.AppendLine().Append("DOWNLOAD MICROCODE DMA is supported");
+ if(ATAID.CommandSet5.HasFlag(CommandSetBit5.SetMaxDMA))
+ sb.AppendLine().Append("SET PASSWORD DMA and SET UNLOCK DMA are supported");
+ if(ATAID.CommandSet5.HasFlag(CommandSetBit5.Ata28))
+ sb.AppendLine().Append("Not all 28-bit commands are supported");
- if(ATAID.CommandSet5.HasFlag(CommandSetBit5.CFast)) sb.AppendLine().Append("Device follows CFast specification");
+ if(ATAID.CommandSet5.HasFlag(CommandSetBit5.CFast))
+ sb.AppendLine().Append("Device follows CFast specification");
if(ATAID.CommandSet5.HasFlag(CommandSetBit5.IEEE1667)) sb.AppendLine().Append("Device follows IEEE-1667");
if(ATAID.CommandSet5.HasFlag(CommandSetBit5.DeterministicTrim))
{
sb.AppendLine().Append("Read after TRIM is deterministic");
- if(ATAID.CommandSet5.HasFlag(CommandSetBit5.ReadZeroTrim)) sb.AppendLine().Append("Read after TRIM returns empty data");
+ if(ATAID.CommandSet5.HasFlag(CommandSetBit5.ReadZeroTrim))
+ sb.AppendLine().Append("Read after TRIM returns empty data");
}
- if(ATAID.CommandSet5.HasFlag(CommandSetBit5.LongPhysSectorAligError)) sb.AppendLine().Append("Device supports Long Physical Sector Alignment Error Reporting Control");
- if(ATAID.CommandSet5.HasFlag(CommandSetBit5.Encrypted)) sb.AppendLine().Append("Device encrypts all user data");
- if(ATAID.CommandSet5.HasFlag(CommandSetBit5.AllCacheNV)) sb.AppendLine().Append("Device's write cache is non-volatile");
+ if(ATAID.CommandSet5.HasFlag(CommandSetBit5.LongPhysSectorAligError))
+ sb.AppendLine().Append("Device supports Long Physical Sector Alignment Error Reporting Control");
+ if(ATAID.CommandSet5.HasFlag(CommandSetBit5.Encrypted))
+ sb.AppendLine().Append("Device encrypts all user data");
+ if(ATAID.CommandSet5.HasFlag(CommandSetBit5.AllCacheNV))
+ sb.AppendLine().Append("Device's write cache is non-volatile");
if(ATAID.CommandSet5.HasFlag(CommandSetBit5.ZonedBit0) ||
ATAID.CommandSet5.HasFlag(CommandSetBit5.ZonedBit1)) sb.AppendLine().Append("Device is zoned");
@@ -3223,13 +3251,17 @@ namespace DiscImageChef.Decoders.ATA
if(ATAID.EnabledSATAFeatures.HasFlag(SATAFeaturesBit.SettingsPreserve))
sb.Append(" and enabled");
}
- if(ATAID.SATAFeatures.HasFlag(SATAFeaturesBit.NCQAutoSense)) sb.AppendLine().Append("NCQ Autosense is supported");
- if(ATAID.EnabledSATAFeatures.HasFlag(SATAFeaturesBit.EnabledSlumber)) sb.AppendLine().Append("Automatic Partial to Slumber transitions are enabled");
+ if(ATAID.SATAFeatures.HasFlag(SATAFeaturesBit.NCQAutoSense))
+ sb.AppendLine().Append("NCQ Autosense is supported");
+ if(ATAID.EnabledSATAFeatures.HasFlag(SATAFeaturesBit.EnabledSlumber))
+ sb.AppendLine().Append("Automatic Partial to Slumber transitions are enabled");
}
}
- if((ATAID.RemovableStatusSet & 0x03) > 0) sb.AppendLine().Append("Removable Media Status Notification feature set is supported");
+ if((ATAID.RemovableStatusSet & 0x03) > 0)
+ sb.AppendLine().Append("Removable Media Status Notification feature set is supported");
- if(ATAID.FreeFallSensitivity != 0x00 && ATAID.FreeFallSensitivity != 0xFF) sb.AppendLine().AppendFormat("Free-fall sensitivity set to {0}", ATAID.FreeFallSensitivity);
+ if(ATAID.FreeFallSensitivity != 0x00 && ATAID.FreeFallSensitivity != 0xFF)
+ sb.AppendLine().AppendFormat("Free-fall sensitivity set to {0}", ATAID.FreeFallSensitivity);
if(ATAID.DataSetMgmt.HasFlag(DataSetMgmtBit.Trim)) sb.AppendLine().Append("TRIM is supported");
if(ATAID.DataSetMgmtSize > 0)
@@ -3386,7 +3418,7 @@ namespace DiscImageChef.Decoders.ATA
return BitConverter.ToUInt64(qword, 0);
}
- static string DescrambleATAString(byte[] buffer, int offset, int length)
+ static string DescrambleATAString(IList buffer, int offset, int length)
{
byte[] outbuf = buffer[offset + length - 1] != 0x00 ? new byte[length + 1] : new byte[length];
diff --git a/Blu-ray/BCA.cs b/Blu-ray/BCA.cs
index e9be911..c45727c 100644
--- a/Blu-ray/BCA.cs
+++ b/Blu-ray/BCA.cs
@@ -38,19 +38,19 @@ using DiscImageChef.Console;
namespace DiscImageChef.Decoders.Bluray
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -112,23 +112,23 @@ namespace DiscImageChef.Decoders.Bluray
public struct BurstCuttingArea
{
///
- /// Bytes 0 to 1
- /// Always 66
+ /// Bytes 0 to 1
+ /// Always 66
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Byte 4 to 67
- /// BCA data
+ /// Byte 4 to 67
+ /// BCA data
///
public byte[] BCA;
}
diff --git a/Blu-ray/Cartridge.cs b/Blu-ray/Cartridge.cs
index 99ad147..a3a00dc 100644
--- a/Blu-ray/Cartridge.cs
+++ b/Blu-ray/Cartridge.cs
@@ -38,19 +38,19 @@ using DiscImageChef.Console;
namespace DiscImageChef.Decoders.Bluray
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -137,58 +137,58 @@ namespace DiscImageChef.Decoders.Bluray
public struct CartridgeStatus
{
///
- /// Bytes 0 to 1
- /// Always 6
+ /// Bytes 0 to 1
+ /// Always 6
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Byte 4, bit 7
- /// Medium is inserted in a cartridge
+ /// Byte 4, bit 7
+ /// Medium is inserted in a cartridge
///
public bool Cartridge;
///
- /// Byte 4, bit 6
- /// Medium taken out / put in a cartridge
+ /// Byte 4, bit 6
+ /// Medium taken out / put in a cartridge
///
public bool OUT;
///
- /// Byte 4, bits 5 to 3
- /// Reserved
+ /// Byte 4, bits 5 to 3
+ /// Reserved
///
public byte Reserved3;
///
- /// Byte 4, bit 2
- /// Cartridge sets write protection
+ /// Byte 4, bit 2
+ /// Cartridge sets write protection
///
public bool CWP;
///
- /// Byte 4, bits 1 to 0
- /// Reserved
+ /// Byte 4, bits 1 to 0
+ /// Reserved
///
public byte Reserved4;
///
- /// Byte 5
- /// Reserved
+ /// Byte 5
+ /// Reserved
///
public byte Reserved5;
///
- /// Byte 6
- /// Reserved
+ /// Byte 6
+ /// Reserved
///
public byte Reserved6;
///
- /// Byte 7
- /// Reserved
+ /// Byte 7
+ /// Reserved
///
public byte Reserved7;
}
diff --git a/Blu-ray/DDS.cs b/Blu-ray/DDS.cs
index 8c7d97c..1130de2 100644
--- a/Blu-ray/DDS.cs
+++ b/Blu-ray/DDS.cs
@@ -38,19 +38,19 @@ using DiscImageChef.Console;
namespace DiscImageChef.Decoders.Bluray
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -60,7 +60,7 @@ namespace DiscImageChef.Decoders.Bluray
{
#region Private constants
///
- /// Disc Definition Structure Identifier "DS"
+ /// Disc Definition Structure Identifier "DS"
///
const ushort DDSIdentifier = 0x4453;
#endregion Private constants
@@ -162,128 +162,128 @@ namespace DiscImageChef.Decoders.Bluray
public struct DiscDefinitionStructure
{
///
- /// Bytes 0 to 1
- /// Data Length
+ /// Bytes 0 to 1
+ /// Data Length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to 5
- /// "DS"
+ /// Bytes 4 to 5
+ /// "DS"
///
public ushort Signature;
///
- /// Byte 6
- /// DDS format
+ /// Byte 6
+ /// DDS format
///
public byte Format;
///
- /// Byte 7
- /// Reserved
+ /// Byte 7
+ /// Reserved
///
public byte Reserved3;
///
- /// Bytes 8 to 11
- /// DDS update count
+ /// Bytes 8 to 11
+ /// DDS update count
///
public uint UpdateCount;
///
- /// Bytes 12 to 19
- /// Reserved
+ /// Bytes 12 to 19
+ /// Reserved
///
public ulong Reserved4;
///
- /// Bytes 20 to 23
- /// First PSN of Drive Area
+ /// Bytes 20 to 23
+ /// First PSN of Drive Area
///
public uint DriveAreaPSN;
///
- /// Bytes 24 to 27
- /// Reserved
+ /// Bytes 24 to 27
+ /// Reserved
///
public uint Reserved5;
///
- /// Bytes 28 to 31
- /// First PSN of Defect List
+ /// Bytes 28 to 31
+ /// First PSN of Defect List
///
public uint DefectListPSN;
///
- /// Bytes 32 to 35
- /// Reserved
+ /// Bytes 32 to 35
+ /// Reserved
///
public uint Reserved6;
///
- /// Bytes 36 to 39
- /// PSN of LSN 0 of user data area
+ /// Bytes 36 to 39
+ /// PSN of LSN 0 of user data area
///
public uint PSNofLSNZero;
///
- /// Bytes 40 to 43
- /// Last LSN of user data area
+ /// Bytes 40 to 43
+ /// Last LSN of user data area
///
public uint LastUserAreaLSN;
///
- /// Bytes 44 to 47
- /// ISA0 size
+ /// Bytes 44 to 47
+ /// ISA0 size
///
public uint ISA0;
///
- /// Bytes 48 to 51
- /// OSA size
+ /// Bytes 48 to 51
+ /// OSA size
///
public uint OSA;
///
- /// Bytes 52 to 55
- /// ISA1 size
+ /// Bytes 52 to 55
+ /// ISA1 size
///
public uint ISA1;
///
- /// Byte 56
- /// Spare Area full flags
+ /// Byte 56
+ /// Spare Area full flags
///
public byte SpareAreaFullFlags;
///
- /// Byte 57
- /// Reserved
+ /// Byte 57
+ /// Reserved
///
public byte Reserved7;
///
- /// Byte 58
- /// Disc type specific field
+ /// Byte 58
+ /// Disc type specific field
///
public byte DiscTypeSpecificField1;
///
- /// Byte 59
- /// Reserved
+ /// Byte 59
+ /// Reserved
///
public byte Reserved8;
///
- /// Byte 60 to 63
- /// Disc type specific field
+ /// Byte 60 to 63
+ /// Disc type specific field
///
public uint DiscTypeSpecificField2;
///
- /// Byte 64 to 67
- /// Reserved
+ /// Byte 64 to 67
+ /// Reserved
///
public uint Reserved9;
///
- /// Bytes 68 to 99
- /// Status bits of INFO1/2 and PAC1/2 on L0 and L1
+ /// Bytes 68 to 99
+ /// Status bits of INFO1/2 and PAC1/2 on L0 and L1
///
public byte[] StatusBits;
///
- /// Bytes 100 to end
- /// Disc type specific data
+ /// Bytes 100 to end
+ /// Disc type specific data
///
public byte[] DiscTypeSpecificData;
}
diff --git a/Blu-ray/DI.cs b/Blu-ray/DI.cs
index 2fe49b2..8b1ec68 100644
--- a/Blu-ray/DI.cs
+++ b/Blu-ray/DI.cs
@@ -39,19 +39,19 @@ using DiscImageChef.Console;
namespace DiscImageChef.Decoders.Bluray
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -65,7 +65,7 @@ namespace DiscImageChef.Decoders.Bluray
const string DiscTypeBDR = "BDR";
///
- /// Disc Information Unit Identifier "DI"
+ /// Disc Information Unit Identifier "DI"
///
const ushort DIUIdentifier = 0x4449;
#endregion Private constants
@@ -204,23 +204,23 @@ namespace DiscImageChef.Decoders.Bluray
public struct DiscInformation
{
///
- /// Bytes 0 to 1
- /// Always 4098
+ /// Bytes 0 to 1
+ /// Always 4098
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Byte 4 to 4099
- /// Disc information units
+ /// Byte 4 to 4099
+ /// Disc information units
///
public DiscInformationUnits[] Units;
}
@@ -228,73 +228,73 @@ namespace DiscImageChef.Decoders.Bluray
public struct DiscInformationUnits
{
///
- /// Byte 0
- /// "DI"
+ /// Byte 0
+ /// "DI"
///
public ushort Signature;
///
- /// Byte 2
- /// Disc information format
+ /// Byte 2
+ /// Disc information format
///
public byte Format;
///
- /// Byte 3
- /// Number of DI units per block
+ /// Byte 3
+ /// Number of DI units per block
///
public byte UnitsPerBlock;
///
- /// Byte 4
- /// Reserved for BD-ROM, legacy information for BD-R/-RE
+ /// Byte 4
+ /// Reserved for BD-ROM, legacy information for BD-R/-RE
///
public byte Legacy;
///
- /// Byte 5
- /// Sequence number for this DI unit
+ /// Byte 5
+ /// Sequence number for this DI unit
///
public byte Sequence;
///
- /// Byte 6
- /// Number of bytes used by this DI unit, should be 64 for BD-ROM and 112 for BD-R/-RE
+ /// Byte 6
+ /// Number of bytes used by this DI unit, should be 64 for BD-ROM and 112 for BD-R/-RE
///
public byte Length;
///
- /// Byte 7
- /// Reserved
+ /// Byte 7
+ /// Reserved
///
public byte Reserved;
///
- /// Bytes 8 to 10
- /// Disc type identifier
+ /// Bytes 8 to 10
+ /// Disc type identifier
///
public byte[] DiscTypeIdentifier;
///
- /// Byte 11
- /// Disc size/class/version
+ /// Byte 11
+ /// Disc size/class/version
///
public byte DiscSizeClassVersion;
///
- /// Bytes 12 to 63 for BD-ROM, bytes 12 to 99 for BD-R/-RE
- /// Format dependent contents, disclosed in private blu-ray specifications
+ /// Bytes 12 to 63 for BD-ROM, bytes 12 to 99 for BD-R/-RE
+ /// Format dependent contents, disclosed in private blu-ray specifications
///
public byte[] FormatDependentContents;
///
- /// Bytes 100 to 105, BD-R/-RE only
- /// Manufacturer ID
+ /// Bytes 100 to 105, BD-R/-RE only
+ /// Manufacturer ID
///
public byte[] ManufacturerID;
///
- /// Bytes 106 to 108, BD-R/-RE only
- /// Media type ID
+ /// Bytes 106 to 108, BD-R/-RE only
+ /// Media type ID
///
public byte[] MediaTypeID;
///
- /// Bytes 109 to 110, BD-R/-RE only
- /// Timestamp
+ /// Bytes 109 to 110, BD-R/-RE only
+ /// Timestamp
///
public ushort TimeStamp;
///
- /// Byte 111
- /// Product revision number
+ /// Byte 111
+ /// Product revision number
///
public byte ProductRevisionNumber;
}
diff --git a/Blu-ray/Spare.cs b/Blu-ray/Spare.cs
index 6a80d22..d658d4e 100644
--- a/Blu-ray/Spare.cs
+++ b/Blu-ray/Spare.cs
@@ -38,19 +38,19 @@ using DiscImageChef.Console;
namespace DiscImageChef.Decoders.Bluray
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -114,33 +114,33 @@ namespace DiscImageChef.Decoders.Bluray
public struct SpareAreaInformation
{
///
- /// Bytes 0 to 1
- /// Always 14
+ /// Bytes 0 to 1
+ /// Always 14
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to 7
- /// Reserved
+ /// Bytes 4 to 7
+ /// Reserved
///
public uint Reserved3;
///
- /// Bytes 8 to 11
- /// Free spare blocks
+ /// Bytes 8 to 11
+ /// Free spare blocks
///
public uint FreeSpareBlocks;
///
- /// Bytes 12 to 15
- /// Allocated spare blocks
+ /// Bytes 12 to 15
+ /// Allocated spare blocks
///
public uint AllocatedSpareBlocks;
}
diff --git a/CD/ATIP.cs b/CD/ATIP.cs
index a98ba97..a1ca824 100644
--- a/CD/ATIP.cs
+++ b/CD/ATIP.cs
@@ -38,19 +38,19 @@ using DiscImageChef.Console;
namespace DiscImageChef.Decoders.CD
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -61,163 +61,163 @@ namespace DiscImageChef.Decoders.CD
public struct CDATIP
{
///
- /// Bytes 1 to 0
- /// Total size of returned session information minus this field
+ /// Bytes 1 to 0
+ /// Total size of returned session information minus this field
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Byte 4, bits 7 to 4
- /// Indicative target writing power
+ /// Byte 4, bits 7 to 4
+ /// Indicative target writing power
///
public byte ITWP;
///
- /// Byte 4, bit 3
- /// Set if DDCD
+ /// Byte 4, bit 3
+ /// Set if DDCD
///
public bool DDCD;
///
- /// Byte 4, bits 2 to 0
- /// Reference speed
+ /// Byte 4, bits 2 to 0
+ /// Reference speed
///
public byte ReferenceSpeed;
///
- /// Byte 5, bit 7
- /// Always unset
+ /// Byte 5, bit 7
+ /// Always unset
///
public bool AlwaysZero;
///
- /// Byte 5, bit 6
- /// Unrestricted media
+ /// Byte 5, bit 6
+ /// Unrestricted media
///
public bool URU;
///
- /// Byte 5, bits 5 to 0
- /// Reserved
+ /// Byte 5, bits 5 to 0
+ /// Reserved
///
public byte Reserved3;
///
- /// Byte 6, bit 7
- /// Always set
+ /// Byte 6, bit 7
+ /// Always set
///
public bool AlwaysOne;
///
- /// Byte 6, bit 6
- /// Set if rewritable (CD-RW or DDCD-RW)
+ /// Byte 6, bit 6
+ /// Set if rewritable (CD-RW or DDCD-RW)
///
public bool DiscType;
///
- /// Byte 6, bits 5 to 3
- /// Disc subtype
+ /// Byte 6, bits 5 to 3
+ /// Disc subtype
///
public byte DiscSubType;
///
- /// Byte 6, bit 2
- /// A1 values are valid
+ /// Byte 6, bit 2
+ /// A1 values are valid
///
public bool A1Valid;
///
- /// Byte 6, bit 1
- /// A2 values are valid
+ /// Byte 6, bit 1
+ /// A2 values are valid
///
public bool A2Valid;
///
- /// Byte 6, bit 0
- /// A3 values are valid
+ /// Byte 6, bit 0
+ /// A3 values are valid
///
public bool A3Valid;
///
- /// Byte 7
- /// Reserved
+ /// Byte 7
+ /// Reserved
///
public byte Reserved4;
///
- /// Byte 8
- /// ATIP Start time of Lead-In (Minute)
+ /// Byte 8
+ /// ATIP Start time of Lead-In (Minute)
///
public byte LeadInStartMin;
///
- /// Byte 9
- /// ATIP Start time of Lead-In (Second)
+ /// Byte 9
+ /// ATIP Start time of Lead-In (Second)
///
public byte LeadInStartSec;
///
- /// Byte 10
- /// ATIP Start time of Lead-In (Frame)
+ /// Byte 10
+ /// ATIP Start time of Lead-In (Frame)
///
public byte LeadInStartFrame;
///
- /// Byte 11
- /// Reserved
+ /// Byte 11
+ /// Reserved
///
public byte Reserved5;
///
- /// Byte 12
- /// ATIP Last possible start time of Lead-Out (Minute)
+ /// Byte 12
+ /// ATIP Last possible start time of Lead-Out (Minute)
///
public byte LeadOutStartMin;
///
- /// Byte 13
- /// ATIP Last possible start time of Lead-Out (Second)
+ /// Byte 13
+ /// ATIP Last possible start time of Lead-Out (Second)
///
public byte LeadOutStartSec;
///
- /// Byte 14
- /// ATIP Last possible start time of Lead-Out (Frame)
+ /// Byte 14
+ /// ATIP Last possible start time of Lead-Out (Frame)
///
public byte LeadOutStartFrame;
///
- /// Byte 15
- /// Reserved
+ /// Byte 15
+ /// Reserved
///
public byte Reserved6;
///
- /// Bytes 16 to 18
- /// A1 values
+ /// Bytes 16 to 18
+ /// A1 values
///
public byte[] A1Values;
///
- /// Byte 19
- /// Reserved
+ /// Byte 19
+ /// Reserved
///
public byte Reserved7;
///
- /// Bytes 20 to 22
- /// A2 values
+ /// Bytes 20 to 22
+ /// A2 values
///
public byte[] A2Values;
///
- /// Byte 23
- /// Reserved
+ /// Byte 23
+ /// Reserved
///
public byte Reserved8;
///
- /// Bytes 24 to 26
- /// A3 values
+ /// Bytes 24 to 26
+ /// A3 values
///
public byte[] A3Values;
///
- /// Byte 27
- /// Reserved
+ /// Byte 27
+ /// Reserved
///
public byte Reserved9;
///
- /// Bytes 28 to 30
- /// S4 values
+ /// Bytes 28 to 30
+ /// S4 values
///
public byte[] S4Values;
///
- /// Byte 31
- /// Reserved
+ /// Byte 31
+ /// Reserved
///
public byte Reserved10;
}
@@ -434,11 +434,9 @@ namespace DiscImageChef.Decoders.CD
if(response.DiscType) sb.AppendLine("Disc uses phase change");
else
- {
sb.AppendLine(type < 5
? "Disc uses long strategy type dye (Cyanine, AZO, etc...)"
: "Disc uses short strategy type dye (Phthalocyanine, etc...)");
- }
string manufacturer = ManufacturerFromATIP(response.LeadInStartSec, frm);
@@ -458,7 +456,8 @@ namespace DiscImageChef.Decoders.CD
switch(sec)
{
case 15:
- switch(frm) {
+ switch(frm)
+ {
case 00: return "TDK Corporation";
case 10: return "Ritek Co.";
case 20: return "Mitsubishi Chemical Corporation";
@@ -467,7 +466,8 @@ namespace DiscImageChef.Decoders.CD
break;
case 16:
- switch(frm) {
+ switch(frm)
+ {
case 20: return "Shenzen SG&Gast Digital Optical Discs";
case 30: return "Grand Advance Technology Ltd.";
}
@@ -478,7 +478,8 @@ namespace DiscImageChef.Decoders.CD
break;
case 18:
- switch(frm) {
+ switch(frm)
+ {
case 10: return "Wealth Fair Investment Ltd.";
case 60: return "Taroko International Co. Ltd.";
}
@@ -489,7 +490,8 @@ namespace DiscImageChef.Decoders.CD
break;
case 21:
- switch(frm) {
+ switch(frm)
+ {
case 10: return "Grupo Condor S.L.";
case 30: return "Bestdisc Technology Corporation";
case 40: return "Optical Disc Manufacturing Equipment";
@@ -498,7 +500,8 @@ namespace DiscImageChef.Decoders.CD
break;
case 22:
- switch(frm) {
+ switch(frm)
+ {
case 00: return "Woongjin Media Corp.";
case 10: return "Seantram Technology Inc.";
case 20: return "Advanced Digital Media";
@@ -510,7 +513,8 @@ namespace DiscImageChef.Decoders.CD
break;
case 23:
- switch(frm) {
+ switch(frm)
+ {
case 00: return "Matsushita Electric Industrial Co., Ltd.";
case 10: return "Doremi Media Co., Ltd.";
case 20: return "Nacar Media s.r.l.";
@@ -522,7 +526,8 @@ namespace DiscImageChef.Decoders.CD
break;
case 24:
- switch(frm) {
+ switch(frm)
+ {
case 00: return "Taiyo Yuden Company Ltd.";
case 10: return "SONY Corporation";
case 20: return "Computer Support Italy s.r.l.";
@@ -534,7 +539,8 @@ namespace DiscImageChef.Decoders.CD
break;
case 25:
- switch(frm) {
+ switch(frm)
+ {
case 00: return "MPO";
case 20: return "Hitachi Maxell, Ltd.";
case 30: return "Infodisc Technology Co. Ltd.";
@@ -545,7 +551,8 @@ namespace DiscImageChef.Decoders.CD
break;
case 26:
- switch(frm) {
+ switch(frm)
+ {
case 00: return "Fornet International Pte Ltd.";
case 10: return "POSTECH Corporation";
case 20: return "SKC Co., Ltd.";
@@ -557,7 +564,8 @@ namespace DiscImageChef.Decoders.CD
break;
case 27:
- switch(frm) {
+ switch(frm)
+ {
case 00: return "Digital Storage Technology Co., Ltd.";
case 10: return "Plasmon Data systems Ltd.";
case 20: return "Princo Corporation";
@@ -569,7 +577,8 @@ namespace DiscImageChef.Decoders.CD
break;
case 28:
- switch(frm) {
+ switch(frm)
+ {
case 00: return "Opti.Me.S. S.p.A.";
case 10: return "Gigastore Corporation";
case 20: return "Multi Media Masters & Machinary SA";
@@ -581,7 +590,8 @@ namespace DiscImageChef.Decoders.CD
break;
case 29:
- switch(frm) {
+ switch(frm)
+ {
case 00: return "Taeil Media Co., Ltd.";
case 10: return "Vanguard Disc Inc.";
case 20: return "Unidisc Technology Co., Ltd.";
@@ -596,14 +606,16 @@ namespace DiscImageChef.Decoders.CD
break;
case 31:
- switch(frm) {
+ switch(frm)
+ {
case 00: return "Ritek Co.";
case 30: return "Grand Advance Technology Ltd.";
}
break;
case 32:
- switch(frm) {
+ switch(frm)
+ {
case 00: return "TDK Corporation";
case 10: return "Prodisc Technology Inc.";
}
@@ -618,7 +630,8 @@ namespace DiscImageChef.Decoders.CD
break;
case 45:
- switch(frm) {
+ switch(frm)
+ {
case 00: return "Fornet International Pte Ltd.";
case 10: return "Unitech Japan Inc.";
case 20: return "Acer Media Technology, Inc.";
@@ -629,7 +642,8 @@ namespace DiscImageChef.Decoders.CD
break;
case 46:
- switch(frm) {
+ switch(frm)
+ {
case 00: return "Taiyo Yuden Company Ltd.";
case 10: return "Hong Kong Digital Technology Co., Ltd.";
case 20: return "Multi Media Masters & Machinary SA";
@@ -641,7 +655,8 @@ namespace DiscImageChef.Decoders.CD
break;
case 47:
- switch(frm) {
+ switch(frm)
+ {
case 10: return "Hitachi Maxell, Ltd.";
case 20: return "Princo Corporation";
case 40: return "POSTECH Corporation";
@@ -651,7 +666,8 @@ namespace DiscImageChef.Decoders.CD
break;
case 48:
- switch(frm) {
+ switch(frm)
+ {
case 00: return "Ricoh Company Ltd.";
case 10: return "Kodak Japan Ltd.";
case 20: return "Plasmon Data systems Ltd.";
@@ -663,7 +679,8 @@ namespace DiscImageChef.Decoders.CD
break;
case 49:
- switch(frm) {
+ switch(frm)
+ {
case 00: return "TDK Corporation";
case 10: return "Gigastore Corporation";
case 20: return "King Pro Mediatek Inc.";
@@ -674,7 +691,8 @@ namespace DiscImageChef.Decoders.CD
break;
case 50:
- switch(frm) {
+ switch(frm)
+ {
case 10: return "Vanguard Disc Inc.";
case 20: return "Mitsubishi Chemical Corporation";
case 30: return "CDA Datenträger Albrechts GmbH";
@@ -682,7 +700,8 @@ namespace DiscImageChef.Decoders.CD
break;
case 51:
- switch(frm) {
+ switch(frm)
+ {
case 10: return "Grand Advance Technology Ltd.";
case 20: return "Infodisc Technology Co. Ltd.";
case 50: return "Hile Optical Disc Technology Corp.";
diff --git a/CD/CDTextOnLeadIn.cs b/CD/CDTextOnLeadIn.cs
index 832ccfe..56a6fdc 100644
--- a/CD/CDTextOnLeadIn.cs
+++ b/CD/CDTextOnLeadIn.cs
@@ -38,19 +38,19 @@ using DiscImageChef.Console;
namespace DiscImageChef.Decoders.CD
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -61,67 +61,67 @@ namespace DiscImageChef.Decoders.CD
public enum PackTypeIndicator : byte
{
///
- /// Title of the track (or album if track == 0)
+ /// Title of the track (or album if track == 0)
///
Title = 0x80,
///
- /// Performer
+ /// Performer
///
Performer = 0x81,
///
- /// Songwriter
+ /// Songwriter
///
Songwriter = 0x82,
///
- /// Composer
+ /// Composer
///
Composer = 0x83,
///
- /// Arranger
+ /// Arranger
///
Arranger = 0x84,
///
- /// Message from the content provider or artist
+ /// Message from the content provider or artist
///
Message = 0x85,
///
- /// Disc identification information
+ /// Disc identification information
///
DiscIdentification = 0x86,
///
- /// Genre identification
+ /// Genre identification
///
GenreIdentification = 0x87,
///
- /// Table of content information
+ /// Table of content information
///
TOCInformation = 0x88,
///
- /// Second table of content information
+ /// Second table of content information
///
SecondTOCInformation = 0x89,
///
- /// Reserved
+ /// Reserved
///
Reserved1 = 0x8A,
///
- /// Reserved
+ /// Reserved
///
Reserved2 = 0x8B,
///
- /// Reserved
+ /// Reserved
///
Reserved3 = 0x8C,
///
- /// Reserved for content provider only
+ /// Reserved for content provider only
///
ReservedForContentProvider = 0x8D,
///
- /// UPC of album or ISRC of track
+ /// UPC of album or ISRC of track
///
UPCorISRC = 0x8E,
///
- /// Size information of the block
+ /// Size information of the block
///
BlockSizeInformation = 0x8F
}
@@ -129,19 +129,19 @@ namespace DiscImageChef.Decoders.CD
public struct CDText
{
///
- /// Total size of returned CD-Text information minus this field
+ /// Total size of returned CD-Text information minus this field
///
public ushort DataLength;
///
- /// Reserved
+ /// Reserved
///
public byte Reserved1;
///
- /// Reserved
+ /// Reserved
///
public byte Reserved2;
///
- /// CD-Text data packs
+ /// CD-Text data packs
///
public CDTextPack[] DataPacks;
}
@@ -149,43 +149,43 @@ namespace DiscImageChef.Decoders.CD
public struct CDTextPack
{
///
- /// Byte 0
- /// Pack ID1 (Pack Type)
+ /// Byte 0
+ /// Pack ID1 (Pack Type)
///
public byte HeaderID1;
///
- /// Byte 1
- /// Pack ID2 (Track number)
+ /// Byte 1
+ /// Pack ID2 (Track number)
///
public byte HeaderID2;
///
- /// Byte 2
- /// Pack ID3
+ /// Byte 2
+ /// Pack ID3
///
public byte HeaderID3;
///
- /// Byte 3, bit 7
- /// Double Byte Character Code
+ /// Byte 3, bit 7
+ /// Double Byte Character Code
///
public bool DBCC;
///
- /// Byte 3, bits 6 to 4
- /// Block number
+ /// Byte 3, bits 6 to 4
+ /// Block number
///
public byte BlockNumber;
///
- /// Byte 3, bits 3 to 0
- /// Character position
+ /// Byte 3, bits 3 to 0
+ /// Character position
///
public byte CharacterPosition;
///
- /// Bytes 4 to 15
- /// Text data
+ /// Bytes 4 to 15
+ /// Text data
///
public byte[] TextDataField;
///
- /// Bytes 16 to 17
- /// CRC16
+ /// Bytes 16 to 17
+ /// CRC16
///
public ushort CRC;
}
diff --git a/CD/Enums.cs b/CD/Enums.cs
index 2698510..5e95552 100644
--- a/CD/Enums.cs
+++ b/CD/Enums.cs
@@ -38,27 +38,27 @@ namespace DiscImageChef.Decoders.CD
public enum TocAdr : byte
{
///
- /// Q Sub-channel mode information not supplied
+ /// Q Sub-channel mode information not supplied
///
NoInformation = 0x00,
///
- /// Q Sub-channel encodes current position data
+ /// Q Sub-channel encodes current position data
///
CurrentPosition = 0x01,
///
- /// Q Sub-channel encodes the media catalog number
+ /// Q Sub-channel encodes the media catalog number
///
MediaCatalogNumber = 0x02,
///
- /// Q Sub-channel encodes the ISRC
+ /// Q Sub-channel encodes the ISRC
///
ISRC = 0x03,
///
- /// Q Sub-channel encodes the start of an audio/data track (if found in TOC)
+ /// Q Sub-channel encodes the start of an audio/data track (if found in TOC)
///
TrackPointer = 0x01,
///
- /// Q Sub-channel encodes the start of a video track (if found in TOC) for CD-V
+ /// Q Sub-channel encodes the start of a video track (if found in TOC) for CD-V
///
VideoTrackPointer = 0x04
}
@@ -66,35 +66,35 @@ namespace DiscImageChef.Decoders.CD
public enum TocControl : byte
{
///
- /// Stereo audio, no pre-emphasis
+ /// Stereo audio, no pre-emphasis
///
TwoChanNoPreEmph = 0x00,
///
- /// Stereo audio with pre-emphasis
+ /// Stereo audio with pre-emphasis
///
TwoChanPreEmph = 0x01,
///
- /// If mask applied, track can be copied
+ /// If mask applied, track can be copied
///
CopyPermissionMask = 0x02,
///
- /// Data track, recorded uninterrumpted
+ /// Data track, recorded uninterrumpted
///
DataTrack = 0x04,
///
- /// Data track, recorded incrementally
+ /// Data track, recorded incrementally
///
DataTrackIncremental = 0x05,
///
- /// Quadraphonic audio, no pre-emphasis
+ /// Quadraphonic audio, no pre-emphasis
///
FourChanNoPreEmph = 0x08,
///
- /// Quadraphonic audio with pre-emphasis
+ /// Quadraphonic audio with pre-emphasis
///
FourChanPreEmph = 0x09,
///
- /// Reserved mask
+ /// Reserved mask
///
ReservedMask = 0x0C
}
diff --git a/CD/FullTOC.cs b/CD/FullTOC.cs
index 27bc297..c672f21 100644
--- a/CD/FullTOC.cs
+++ b/CD/FullTOC.cs
@@ -38,21 +38,21 @@ using DiscImageChef.Console;
namespace DiscImageChef.Decoders.CD
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
- /// ISO/IEC 61104: Compact disc video system - 12 cm CD-V
- /// ISO/IEC 60908: Audio recording - Compact disc digital audio system
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
+ /// ISO/IEC 61104: Compact disc video system - 12 cm CD-V
+ /// ISO/IEC 60908: Audio recording - Compact disc digital audio system
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -69,19 +69,19 @@ namespace DiscImageChef.Decoders.CD
public struct CDFullTOC
{
///
- /// Total size of returned session information minus this field
+ /// Total size of returned session information minus this field
///
public ushort DataLength;
///
- /// First complete session number in hex
+ /// First complete session number in hex
///
public byte FirstCompleteSession;
///
- /// Last complete session number in hex
+ /// Last complete session number in hex
///
public byte LastCompleteSession;
///
- /// Track descriptors
+ /// Track descriptors
///
public TrackDataDescriptor[] TrackDescriptors;
}
@@ -89,62 +89,62 @@ namespace DiscImageChef.Decoders.CD
public struct TrackDataDescriptor
{
///
- /// Byte 0
- /// Session number in hex
+ /// Byte 0
+ /// Session number in hex
///
public byte SessionNumber;
///
- /// Byte 1, bits 7 to 4
- /// Type of information in Q subchannel of block where this TOC entry was found
+ /// Byte 1, bits 7 to 4
+ /// Type of information in Q subchannel of block where this TOC entry was found
///
public byte ADR;
///
- /// Byte 1, bits 3 to 0
- /// Track attributes
+ /// Byte 1, bits 3 to 0
+ /// Track attributes
///
public byte CONTROL;
///
- /// Byte 2
+ /// Byte 2
///
public byte TNO;
///
- /// Byte 3
+ /// Byte 3
///
public byte POINT;
///
- /// Byte 4
+ /// Byte 4
///
public byte Min;
///
- /// Byte 5
+ /// Byte 5
///
public byte Sec;
///
- /// Byte 6
+ /// Byte 6
///
public byte Frame;
///
- /// Byte 7, CD only
+ /// Byte 7, CD only
///
public byte Zero;
///
- /// Byte 7, bits 7 to 4, DDCD only
+ /// Byte 7, bits 7 to 4, DDCD only
///
public byte HOUR;
///
- /// Byte 7, bits 3 to 0, DDCD only
+ /// Byte 7, bits 3 to 0, DDCD only
///
public byte PHOUR;
///
- /// Byte 8
+ /// Byte 8
///
public byte PMIN;
///
- /// Byte 9
+ /// Byte 9
///
public byte PSEC;
///
- /// Byte 10
+ /// Byte 10
///
public byte PFRAME;
}
diff --git a/CD/PMA.cs b/CD/PMA.cs
index b09e29a..b79ba93 100644
--- a/CD/PMA.cs
+++ b/CD/PMA.cs
@@ -38,19 +38,19 @@ using DiscImageChef.Console;
namespace DiscImageChef.Decoders.CD
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -60,19 +60,19 @@ namespace DiscImageChef.Decoders.CD
public struct CDPMA
{
///
- /// Total size of returned session information minus this field
+ /// Total size of returned session information minus this field
///
public ushort DataLength;
///
- /// Reserved
+ /// Reserved
///
public byte Reserved1;
///
- /// Reserved
+ /// Reserved
///
public byte Reserved2;
///
- /// Track descriptors
+ /// Track descriptors
///
public CDPMADescriptors[] PMADescriptors;
}
@@ -80,58 +80,58 @@ namespace DiscImageChef.Decoders.CD
public struct CDPMADescriptors
{
///
- /// Byte 0
- /// Reserved
+ /// Byte 0
+ /// Reserved
///
public byte Reserved;
///
- /// Byte 1, bits 7 to 4
- /// Type of information in Q subchannel of block where this TOC entry was found
+ /// Byte 1, bits 7 to 4
+ /// Type of information in Q subchannel of block where this TOC entry was found
///
public byte ADR;
///
- /// Byte 1, bits 3 to 0
- /// Track attributes
+ /// Byte 1, bits 3 to 0
+ /// Track attributes
///
public byte CONTROL;
///
- /// Byte 2
+ /// Byte 2
///
public byte TNO;
///
- /// Byte 3
+ /// Byte 3
///
public byte POINT;
///
- /// Byte 4
+ /// Byte 4
///
public byte Min;
///
- /// Byte 5
+ /// Byte 5
///
public byte Sec;
///
- /// Byte 6
+ /// Byte 6
///
public byte Frame;
///
- /// Byte 7, bits 7 to 4
+ /// Byte 7, bits 7 to 4
///
public byte HOUR;
///
- /// Byte 7, bits 3 to 0
+ /// Byte 7, bits 3 to 0
///
public byte PHOUR;
///
- /// Byte 8
+ /// Byte 8
///
public byte PMIN;
///
- /// Byte 9
+ /// Byte 9
///
public byte PSEC;
///
- /// Byte 10
+ /// Byte 10
///
public byte PFRAME;
}
diff --git a/CD/Session.cs b/CD/Session.cs
index 21904a8..66adebc 100644
--- a/CD/Session.cs
+++ b/CD/Session.cs
@@ -38,19 +38,19 @@ using DiscImageChef.Console;
namespace DiscImageChef.Decoders.CD
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -60,19 +60,19 @@ namespace DiscImageChef.Decoders.CD
public struct CDSessionInfo
{
///
- /// Total size of returned session information minus this field
+ /// Total size of returned session information minus this field
///
public ushort DataLength;
///
- /// First track number in hex
+ /// First track number in hex
///
public byte FirstCompleteSession;
///
- /// Last track number in hex
+ /// Last track number in hex
///
public byte LastCompleteSession;
///
- /// Track descriptors
+ /// Track descriptors
///
public TrackDataDescriptor[] TrackDescriptors;
}
@@ -80,33 +80,33 @@ namespace DiscImageChef.Decoders.CD
public struct TrackDataDescriptor
{
///
- /// Byte 0
- /// Reserved
+ /// Byte 0
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 1, bits 7 to 4
- /// Type of information in Q subchannel of block where this TOC entry was found
+ /// Byte 1, bits 7 to 4
+ /// Type of information in Q subchannel of block where this TOC entry was found
///
public byte ADR;
///
- /// Byte 1, bits 3 to 0
- /// Track attributes
+ /// Byte 1, bits 3 to 0
+ /// Track attributes
///
public byte CONTROL;
///
- /// Byte 2
- /// First track number in last complete session
+ /// Byte 2
+ /// First track number in last complete session
///
public byte TrackNumber;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to 7
- /// First track number in last complete session start address in LBA or in MSF
+ /// Bytes 4 to 7
+ /// First track number in last complete session start address in LBA or in MSF
///
public uint TrackStartAddress;
}
diff --git a/CD/TOC.cs b/CD/TOC.cs
index 62d703a..c5a0191 100644
--- a/CD/TOC.cs
+++ b/CD/TOC.cs
@@ -38,21 +38,21 @@ using DiscImageChef.Console;
namespace DiscImageChef.Decoders.CD
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
- /// ISO/IEC 61104: Compact disc video system - 12 cm CD-V
- /// ISO/IEC 60908: Audio recording - Compact disc digital audio system
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
+ /// ISO/IEC 61104: Compact disc video system - 12 cm CD-V
+ /// ISO/IEC 60908: Audio recording - Compact disc digital audio system
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -62,19 +62,19 @@ namespace DiscImageChef.Decoders.CD
public struct CDTOC
{
///
- /// Total size of returned TOC minus this field
+ /// Total size of returned TOC minus this field
///
public ushort DataLength;
///
- /// First track number in hex
+ /// First track number in hex
///
public byte FirstTrack;
///
- /// Last track number in hex
+ /// Last track number in hex
///
public byte LastTrack;
///
- /// Track descriptors
+ /// Track descriptors
///
public CDTOCTrackDataDescriptor[] TrackDescriptors;
}
@@ -82,33 +82,33 @@ namespace DiscImageChef.Decoders.CD
public struct CDTOCTrackDataDescriptor
{
///
- /// Byte 0
- /// Reserved
+ /// Byte 0
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 1, bits 7 to 4
- /// Type of information in Q subchannel of block where this TOC entry was found
+ /// Byte 1, bits 7 to 4
+ /// Type of information in Q subchannel of block where this TOC entry was found
///
public byte ADR;
///
- /// Byte 1, bits 3 to 0
- /// Track attributes
+ /// Byte 1, bits 3 to 0
+ /// Track attributes
///
public byte CONTROL;
///
- /// Byte 2
- /// Track number
+ /// Byte 2
+ /// Track number
///
public byte TrackNumber;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to 7
- /// The track start address in LBA or in MSF
+ /// Bytes 4 to 7
+ /// The track start address in LBA or in MSF
///
public uint TrackStartAddress;
}
diff --git a/DVD/AACS.cs b/DVD/AACS.cs
index 84776e3..5a23fdf 100644
--- a/DVD/AACS.cs
+++ b/DVD/AACS.cs
@@ -35,20 +35,20 @@ using System.Diagnostics.CodeAnalysis;
namespace DiscImageChef.Decoders.DVD
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
- /// ECMA 365
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
+ /// ECMA 365
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -58,23 +58,23 @@ namespace DiscImageChef.Decoders.DVD
public struct HDLeadInCopyright
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to 2052
- /// HD DVD Lead-In Copyright Information
+ /// Bytes 4 to 2052
+ /// HD DVD Lead-In Copyright Information
///
public byte[] CopyrightInformation;
}
diff --git a/DVD/ADIP.cs b/DVD/ADIP.cs
index 575cbb0..64cbb65 100644
--- a/DVD/ADIP.cs
+++ b/DVD/ADIP.cs
@@ -35,20 +35,20 @@ using System.Diagnostics.CodeAnalysis;
namespace DiscImageChef.Decoders.DVD
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
- /// ECMA 365
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
+ /// ECMA 365
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -58,23 +58,23 @@ namespace DiscImageChef.Decoders.DVD
public struct ADIPInformation
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to 259
- /// ADIP, defined in DVD standards
+ /// Bytes 4 to 259
+ /// ADIP, defined in DVD standards
///
public byte[] ADIP;
}
diff --git a/DVD/BCA.cs b/DVD/BCA.cs
index b22ac62..ff6d346 100644
--- a/DVD/BCA.cs
+++ b/DVD/BCA.cs
@@ -35,20 +35,20 @@ using System.Diagnostics.CodeAnalysis;
namespace DiscImageChef.Decoders.DVD
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
- /// ECMA 365
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
+ /// ECMA 365
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -58,23 +58,23 @@ namespace DiscImageChef.Decoders.DVD
public struct BurstCuttingArea
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to end
- /// Burst cutting area contents, 12 to 188 bytes
+ /// Bytes 4 to end
+ /// Burst cutting area contents, 12 to 188 bytes
///
public byte[] BCA;
}
diff --git a/DVD/CPRM.cs b/DVD/CPRM.cs
index 2daf15d..da0bb62 100644
--- a/DVD/CPRM.cs
+++ b/DVD/CPRM.cs
@@ -35,20 +35,20 @@ using System.Diagnostics.CodeAnalysis;
namespace DiscImageChef.Decoders.DVD
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
- /// ECMA 365
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
+ /// ECMA 365
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -58,23 +58,23 @@ namespace DiscImageChef.Decoders.DVD
public struct DiscMediaIdentifier
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to end
- /// Disc Media Identifier for CPRM
+ /// Bytes 4 to end
+ /// Disc Media Identifier for CPRM
///
public byte[] MediaIdentifier;
}
@@ -82,23 +82,23 @@ namespace DiscImageChef.Decoders.DVD
public struct DiscMediaKeyBlock
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to end
- /// Disc Media Key Block for CPRM
+ /// Bytes 4 to end
+ /// Disc Media Key Block for CPRM
///
public byte[] MediaKeyBlock;
}
diff --git a/DVD/CSS&CPRM.cs b/DVD/CSS&CPRM.cs
index 1ce578d..7661341 100644
--- a/DVD/CSS&CPRM.cs
+++ b/DVD/CSS&CPRM.cs
@@ -36,20 +36,20 @@ using System.Text;
namespace DiscImageChef.Decoders.DVD
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
- /// ECMA 365
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
+ /// ECMA 365
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -60,38 +60,38 @@ namespace DiscImageChef.Decoders.DVD
public struct LeadInCopyright
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Byte 4
- /// Copy protection system type
+ /// Byte 4
+ /// Copy protection system type
///
public CopyrightType CopyrightType;
///
- /// Byte 5
- /// Bitmask of regions where this disc is playable
+ /// Byte 5
+ /// Bitmask of regions where this disc is playable
///
public byte RegionInformation;
///
- /// Byte 6
- /// Reserved
+ /// Byte 6
+ /// Reserved
///
public byte Reserved3;
///
- /// Byte 7
- /// Reserved
+ /// Byte 7
+ /// Reserved
///
public byte Reserved4;
}
@@ -99,23 +99,23 @@ namespace DiscImageChef.Decoders.DVD
public struct DiscKey
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to 2052
- /// Disc key for CSS, Album Identifier for CPPM
+ /// Bytes 4 to 2052
+ /// Disc key for CSS, Album Identifier for CPPM
///
public byte[] Key;
}
diff --git a/DVD/Cartridge.cs b/DVD/Cartridge.cs
index 23e4258..dec0650 100644
--- a/DVD/Cartridge.cs
+++ b/DVD/Cartridge.cs
@@ -36,19 +36,19 @@ using System.Text;
namespace DiscImageChef.Decoders.DVD
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -59,68 +59,68 @@ namespace DiscImageChef.Decoders.DVD
public struct MediumStatus
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Byte 4, bit 7
- /// Medium is in a cartridge
+ /// Byte 4, bit 7
+ /// Medium is in a cartridge
///
public bool Cartridge;
///
- /// Byte 4, bit 6
- /// Medium has been taken out/inserted in a cartridge
+ /// Byte 4, bit 6
+ /// Medium has been taken out/inserted in a cartridge
///
public bool OUT;
///
- /// Byte 4, bits 5 to 4
- /// Reserved
+ /// Byte 4, bits 5 to 4
+ /// Reserved
///
public byte Reserved3;
///
- /// Byte 4, bit 3
- /// Media is write protected by reason stablished in RAMSWI
+ /// Byte 4, bit 3
+ /// Media is write protected by reason stablished in RAMSWI
///
public bool MSWI;
///
- /// Byte 4, bit 2
- /// Media is write protected by cartridge
+ /// Byte 4, bit 2
+ /// Media is write protected by cartridge
///
public bool CWP;
///
- /// Byte 4, bit 1
- /// Media is persistently write protected
+ /// Byte 4, bit 1
+ /// Media is persistently write protected
///
public bool PWP;
///
- /// Byte 4, bit 0
- /// Reserved
+ /// Byte 4, bit 0
+ /// Reserved
///
public bool Reserved4;
///
- /// Byte 5
- /// Writable status depending on cartridge
+ /// Byte 5
+ /// Writable status depending on cartridge
///
public byte DiscType;
///
- /// Byte 6
- /// Reserved
+ /// Byte 6
+ /// Reserved
///
public byte Reserved5;
///
- /// Byte 7
- /// Reason of specific write protection, only defined 0x01 as "bare disc wp", and 0xFF as unspecified. Rest reserved.
+ /// Byte 7
+ /// Reason of specific write protection, only defined 0x01 as "bare disc wp", and 0xFF as unspecified. Rest reserved.
///
public byte RAMSWI;
}
@@ -188,8 +188,7 @@ namespace DiscImageChef.Decoders.DVD
sb.AppendLine("Disc is write inhibited for an unspecified reason");
break;
default:
- sb.AppendFormat("Disc has unknown reason {0} for write inhibition", decoded.RAMSWI)
- .AppendLine();
+ sb.AppendFormat("Disc has unknown reason {0} for write inhibition", decoded.RAMSWI).AppendLine();
break;
}
diff --git a/DVD/DDS.cs b/DVD/DDS.cs
index ded9727..8599fba 100644
--- a/DVD/DDS.cs
+++ b/DVD/DDS.cs
@@ -37,21 +37,21 @@ using System.Text;
namespace DiscImageChef.Decoders.DVD
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
- /// ECMA 272: 120 mm DVD Rewritable Disk (DVD-RAM)
- /// ECMA 330: 120 mm (4,7 Gbytes per side) and 80 mm (1,46 Gbytes per side) DVD Rewritable Disk (DVD-RAM)
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
+ /// ECMA 272: 120 mm DVD Rewritable Disk (DVD-RAM)
+ /// ECMA 330: 120 mm (4,7 Gbytes per side) and 80 mm (1,46 Gbytes per side) DVD Rewritable Disk (DVD-RAM)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -62,110 +62,110 @@ namespace DiscImageChef.Decoders.DVD
public struct DiscDefinitionStructure
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to 5
- /// DDS Identifier = 0x0A0A
+ /// Bytes 4 to 5
+ /// DDS Identifier = 0x0A0A
///
public ushort Identifier;
///
- /// Byte 6
- /// Reserved
+ /// Byte 6
+ /// Reserved
///
public byte Reserved3;
///
- /// Byte 7, bit 7
- /// If set, formatting is in process
+ /// Byte 7, bit 7
+ /// If set, formatting is in process
///
public bool InProcess;
///
- /// Byte 7, bit 6
- /// If set, formatting is using partial certification
- /// Only in ECMA-272
+ /// Byte 7, bit 6
+ /// If set, formatting is using partial certification
+ /// Only in ECMA-272
///
public bool PartialCertification;
///
- /// Byte 7, bit 5
- /// If set, only a group is being formatted
- /// Only in ECMA-272
+ /// Byte 7, bit 5
+ /// If set, only a group is being formatted
+ /// Only in ECMA-272
///
public bool FormattingOnlyAGroup;
///
- /// Byte 7, bits 4 to 2
- /// Reserved
+ /// Byte 7, bits 4 to 2
+ /// Reserved
///
public byte Reserved4;
///
- /// Byte 7, bit 1
- /// If set, disk has been certified by a user
+ /// Byte 7, bit 1
+ /// If set, disk has been certified by a user
///
public bool UserCertification;
///
- /// Byte 7, bit 0
- /// If set, disk has been certified by a manufacturer
+ /// Byte 7, bit 0
+ /// If set, disk has been certified by a manufacturer
///
public bool ManufacturerCertification;
///
- /// Bytes 8 to 11
- /// How many times the DDS has been updated
+ /// Bytes 8 to 11
+ /// How many times the DDS has been updated
///
public uint UpdateCount;
///
- /// Bytes 12 to 13
- /// How many groups the disk has
- /// 24 for ECMA-272
- /// 1 for ECMA-330
+ /// Bytes 12 to 13
+ /// How many groups the disk has
+ /// 24 for ECMA-272
+ /// 1 for ECMA-330
///
public ushort Groups;
///
- /// Bytes 14 to 15
- /// How many zones the disk has
- /// Only in ECMA-330
+ /// Bytes 14 to 15
+ /// How many zones the disk has
+ /// Only in ECMA-330
///
public ushort Zones;
///
- /// Bytes 14 to 19 in ECMA-272
- /// Bytes 16 to 83 in ECMA-330
- /// Reserved
+ /// Bytes 14 to 19 in ECMA-272
+ /// Bytes 16 to 83 in ECMA-330
+ /// Reserved
///
public byte[] Reserved;
///
- /// Bytes 20 to 43
- /// Group certification flags
+ /// Bytes 20 to 43
+ /// Group certification flags
///
public GroupCertificationFlag[] GroupCertificationFlags;
///
- /// Bytes 85 to 87
- /// Location of first sector in the Primary Spare Area
+ /// Bytes 85 to 87
+ /// Location of first sector in the Primary Spare Area
///
public uint SpareAreaFirstPSN;
///
- /// Bytes 89 to 91
- /// Location of first sector in the Primary Spare Area
+ /// Bytes 89 to 91
+ /// Location of first sector in the Primary Spare Area
///
public uint SpareAreaLastPSN;
///
- /// Bytes 93 to 95
- /// PSN for LSN 0
+ /// Bytes 93 to 95
+ /// PSN for LSN 0
///
public uint LSN0Location;
///
- /// The starting LSN of each zone
+ /// The starting LSN of each zone
///
public uint[] StartLSNForZone;
}
@@ -173,28 +173,28 @@ namespace DiscImageChef.Decoders.DVD
public struct GroupCertificationFlag
{
///
- /// Bit 7
- /// If set, formatting of this group is in process
+ /// Bit 7
+ /// If set, formatting of this group is in process
///
public bool InProcess;
///
- /// Bit 6
- /// If set, formatting is using partial certification
+ /// Bit 6
+ /// If set, formatting is using partial certification
///
public bool PartialCertification;
///
- /// Bits 5 to 2
- /// Reserved
+ /// Bits 5 to 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Bit 1
- /// If set, this group has been certified by user
+ /// Bit 1
+ /// If set, this group has been certified by user
///
public bool UserCertification;
///
- /// Bit 0
- /// Reserved
+ /// Bit 0
+ /// Reserved
///
public bool Reserved2;
}
diff --git a/DVD/DMI.cs b/DVD/DMI.cs
index fe3070e..eb71116 100644
--- a/DVD/DMI.cs
+++ b/DVD/DMI.cs
@@ -35,20 +35,20 @@ using System.Diagnostics.CodeAnalysis;
namespace DiscImageChef.Decoders.DVD
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
- /// ECMA 365
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
+ /// ECMA 365
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -58,23 +58,23 @@ namespace DiscImageChef.Decoders.DVD
public struct DiscManufacturingInformation
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to 2052
- /// Disc Manufacturing Information
+ /// Bytes 4 to 2052
+ /// Disc Manufacturing Information
///
public byte[] DMI;
}
diff --git a/DVD/Enums.cs b/DVD/Enums.cs
index 34bfb5e..3871b61 100644
--- a/DVD/Enums.cs
+++ b/DVD/Enums.cs
@@ -39,60 +39,60 @@ namespace DiscImageChef.Decoders.DVD
public enum DiskCategory : byte
{
///
- /// DVD-ROM. Version 1 is ECMA-267 and ECMA-268.
+ /// DVD-ROM. Version 1 is ECMA-267 and ECMA-268.
///
DVDROM = 0,
///
- /// DVD-RAM. Version 1 is ECMA-272. Version 6 is ECMA-330.
+ /// DVD-RAM. Version 1 is ECMA-272. Version 6 is ECMA-330.
///
DVDRAM = 1,
///
- /// DVD-R. Version 1 is ECMA-279. Version 5 is ECMA-359. Version 6 is ECMA-382.
+ /// DVD-R. Version 1 is ECMA-279. Version 5 is ECMA-359. Version 6 is ECMA-382.
///
DVDR = 2,
///
- /// DVD-RW. Version 2 is ECMA-338. Version 3 is ECMA-384.
+ /// DVD-RW. Version 2 is ECMA-338. Version 3 is ECMA-384.
///
DVDRW = 3,
///
- /// HD DVD-ROM
+ /// HD DVD-ROM
///
HDDVDROM = 4,
///
- /// HD DVD-RAM
+ /// HD DVD-RAM
///
HDDVDRAM = 5,
///
- /// HD DVD-R
+ /// HD DVD-R
///
HDDVDR = 6,
///
- /// HD DVD-RW
+ /// HD DVD-RW
///
HDDVDRW = 7,
///
- /// UMD. Version 0 is ECMA-365.
+ /// UMD. Version 0 is ECMA-365.
///
UMD = 8,
///
- /// DVD+RW. Version 1 is ECMA-274. Version 2 is ECMA-337. Version 3 is ECMA-371.
+ /// DVD+RW. Version 1 is ECMA-274. Version 2 is ECMA-337. Version 3 is ECMA-371.
///
DVDPRW = 9,
///
- /// DVD+R. Version 1 is ECMA-349.
+ /// DVD+R. Version 1 is ECMA-349.
///
DVDPR = 10,
///
- /// DVD+RW DL. Version 1 is ECMA-374.
+ /// DVD+RW DL. Version 1 is ECMA-374.
///
DVDPRWDL = 13,
///
- /// DVD+R DL. Version 1 is ECMA-364.
+ /// DVD+R DL. Version 1 is ECMA-364.
///
DVDPRDL = 14,
///
- /// According to standards this value is reserved.
- /// It's used by Nintendo GODs and WODs.
+ /// According to standards this value is reserved.
+ /// It's used by Nintendo GODs and WODs.
///
Nintendo = 15
}
@@ -101,23 +101,23 @@ namespace DiscImageChef.Decoders.DVD
public enum MaximumRateField : byte
{
///
- /// 2.52 Mbps
+ /// 2.52 Mbps
///
TwoMbps = 0x00,
///
- /// 5.04 Mbps
+ /// 5.04 Mbps
///
FiveMbps = 0x01,
///
- /// 10.08 Mbps
+ /// 10.08 Mbps
///
TenMbps = 0x02,
///
- /// 20.16 Mbps
+ /// 20.16 Mbps
///
TwentyMbps = 0x03,
///
- /// 30.24 Mbps
+ /// 30.24 Mbps
///
ThirtyMbps = 0x04,
Unspecified = 0x0F
@@ -136,31 +136,31 @@ namespace DiscImageChef.Decoders.DVD
public enum LinearDensityField : byte
{
///
- /// 0.267 μm/bit
+ /// 0.267 μm/bit
///
TwoSix = 0x00,
///
- /// 0.293 μm/bit
+ /// 0.293 μm/bit
///
TwoNine = 0x01,
///
- /// 0.409 to 0.435 μm/bit
+ /// 0.409 to 0.435 μm/bit
///
FourZero = 0x02,
///
- /// 0.280 to 0.291 μm/bit
+ /// 0.280 to 0.291 μm/bit
///
TwoEight = 0x04,
///
- /// 0.153 μm/bit
+ /// 0.153 μm/bit
///
OneFive = 0x05,
///
- /// 0.130 to 0.140 μm/bit
+ /// 0.130 to 0.140 μm/bit
///
OneThree = 0x06,
///
- /// 0.353 μm/bit
+ /// 0.353 μm/bit
///
ThreeFive = 0x08
}
@@ -169,23 +169,23 @@ namespace DiscImageChef.Decoders.DVD
public enum TrackDensityField : byte
{
///
- /// 0.74 μm/track
+ /// 0.74 μm/track
///
Seven = 0x00,
///
- /// 0.80 μm/track
+ /// 0.80 μm/track
///
Eight = 0x01,
///
- /// 0.615 μm/track
+ /// 0.615 μm/track
///
Six = 0x02,
///
- /// 0.40 μm/track
+ /// 0.40 μm/track
///
Four = 0x03,
///
- /// 0.34 μm/track
+ /// 0.34 μm/track
///
Three = 0x04
}
@@ -194,19 +194,19 @@ namespace DiscImageChef.Decoders.DVD
public enum CopyrightType : byte
{
///
- /// There is no copy protection
+ /// There is no copy protection
///
NoProtection = 0x00,
///
- /// Copy protection is CSS/CPPM
+ /// Copy protection is CSS/CPPM
///
CSS = 0x01,
///
- /// Copy protection is CPRM
+ /// Copy protection is CPRM
///
CPRM = 0x02,
///
- /// Copy protection is AACS
+ /// Copy protection is AACS
///
AACS = 0x10
}
@@ -215,11 +215,11 @@ namespace DiscImageChef.Decoders.DVD
public enum WPDiscTypes : byte
{
///
- /// Should not write without a cartridge
+ /// Should not write without a cartridge
///
DoNotWrite = 0x00,
///
- /// Can write without a cartridge
+ /// Can write without a cartridge
///
CanWrite = 0x01,
Reserved1 = 0x02,
@@ -230,11 +230,11 @@ namespace DiscImageChef.Decoders.DVD
public enum DVDSize
{
///
- /// 120 mm
+ /// 120 mm
///
OneTwenty = 0,
///
- /// 80 mm
+ /// 80 mm
///
Eighty = 1
}
@@ -243,11 +243,11 @@ namespace DiscImageChef.Decoders.DVD
public enum DVDRAMDiscType
{
///
- /// Shall not be recorded without a case
+ /// Shall not be recorded without a case
///
Cased = 0,
///
- /// May be recorded without a case or within one
+ /// May be recorded without a case or within one
///
Uncased = 1
}
diff --git a/DVD/Layers.cs b/DVD/Layers.cs
index 45d4314..addd1b0 100644
--- a/DVD/Layers.cs
+++ b/DVD/Layers.cs
@@ -35,20 +35,20 @@ using System.Diagnostics.CodeAnalysis;
namespace DiscImageChef.Decoders.DVD
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
- /// ECMA 365
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
+ /// ECMA 365
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -58,48 +58,48 @@ namespace DiscImageChef.Decoders.DVD
public struct LayerCapacity
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Byte 4, bit 7
- /// If set, L0 capacity is immutable
+ /// Byte 4, bit 7
+ /// If set, L0 capacity is immutable
///
public bool InitStatus;
///
- /// Byte 4, bits 6 to 0
- /// Reserved
+ /// Byte 4, bits 6 to 0
+ /// Reserved
///
public byte Reserved3;
///
- /// Byte 5
- /// Reserved
+ /// Byte 5
+ /// Reserved
///
public byte Reserved4;
///
- /// Byte 6
- /// Reserved
+ /// Byte 6
+ /// Reserved
///
public byte Reserved5;
///
- /// Byte 7
- /// Reserved
+ /// Byte 7
+ /// Reserved
///
public byte Reserved6;
///
- /// Byte 8 to 11
- /// L0 Data Area Capacity
+ /// Byte 8 to 11
+ /// L0 Data Area Capacity
///
public uint Capacity;
}
@@ -107,48 +107,48 @@ namespace DiscImageChef.Decoders.DVD
public struct MiddleZoneStartAddress
{
///
- /// Bytes 0 to 1
- /// Data length = 10
+ /// Bytes 0 to 1
+ /// Data length = 10
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Byte 4, bit 7
- /// If set, L0 shifter middle area is immutable
+ /// Byte 4, bit 7
+ /// If set, L0 shifter middle area is immutable
///
public bool InitStatus;
///
- /// Byte 4, bits 6 to 0
- /// Reserved
+ /// Byte 4, bits 6 to 0
+ /// Reserved
///
public byte Reserved3;
///
- /// Byte 5
- /// Reserved
+ /// Byte 5
+ /// Reserved
///
public byte Reserved4;
///
- /// Byte 6
- /// Reserved
+ /// Byte 6
+ /// Reserved
///
public byte Reserved5;
///
- /// Byte 7
- /// Reserved
+ /// Byte 7
+ /// Reserved
///
public byte Reserved6;
///
- /// Byte 8 to 11
- /// Start LBA of Shifted Middle Area on L0
+ /// Byte 8 to 11
+ /// Start LBA of Shifted Middle Area on L0
///
public uint ShiftedMiddleAreaStartAddress;
}
@@ -156,43 +156,43 @@ namespace DiscImageChef.Decoders.DVD
public struct JumpIntervalSize
{
///
- /// Bytes 0 to 1
- /// Data length = 10
+ /// Bytes 0 to 1
+ /// Data length = 10
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Byte 4
- /// Reserved
+ /// Byte 4
+ /// Reserved
///
public byte Reserved3;
///
- /// Byte 5
- /// Reserved
+ /// Byte 5
+ /// Reserved
///
public byte Reserved4;
///
- /// Byte 6
- /// Reserved
+ /// Byte 6
+ /// Reserved
///
public byte Reserved5;
///
- /// Byte 7
- /// Reserved
+ /// Byte 7
+ /// Reserved
///
public byte Reserved6;
///
- /// Byte 8 to 11
- /// Jump Interval size for the Regular Interval Layer Jump
+ /// Byte 8 to 11
+ /// Jump Interval size for the Regular Interval Layer Jump
///
public uint Size;
}
@@ -200,43 +200,43 @@ namespace DiscImageChef.Decoders.DVD
public struct ManualLayerJumpAddress
{
///
- /// Bytes 0 to 1
- /// Data length = 10
+ /// Bytes 0 to 1
+ /// Data length = 10
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Byte 4
- /// Reserved
+ /// Byte 4
+ /// Reserved
///
public byte Reserved3;
///
- /// Byte 5
- /// Reserved
+ /// Byte 5
+ /// Reserved
///
public byte Reserved4;
///
- /// Byte 6
- /// Reserved
+ /// Byte 6
+ /// Reserved
///
public byte Reserved5;
///
- /// Byte 7
- /// Reserved
+ /// Byte 7
+ /// Reserved
///
public byte Reserved6;
///
- /// Byte 8 to 11
- /// LBA for the manual layer jump
+ /// Byte 8 to 11
+ /// LBA for the manual layer jump
///
public uint LBA;
}
diff --git a/DVD/PFI.cs b/DVD/PFI.cs
index 20086e0..5807fcf 100644
--- a/DVD/PFI.cs
+++ b/DVD/PFI.cs
@@ -37,1015 +37,1024 @@ using System.Text;
namespace DiscImageChef.Decoders.DVD
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
- /// ECMA 267: 120 mm DVD - Read-Only Disk
- /// ECMA 268: 80 mm DVD - Read-Only Disk
- /// ECMA 272: 120 mm DVD Rewritable Disk (DVD-RAM)
- /// ECMA 274: Data Interchange on 120 mm Optical Disk using +RW Format - Capacity: 3,0 Gbytes and 6,0 Gbytes
- /// ECMA 279: 80 mm (1,23 Gbytes per side) and 120 mm (3,95 Gbytes per side) DVD-Recordable Disk (DVD-R)
- /// ECMA 330: 120 mm (4,7 Gbytes per side) and 80 mm (1,46 Gbytes per side) DVD Rewritable Disk (DVD-RAM)
- /// ECMA 337: Data Interchange on 120 mm and 80 mm Optical Disk using +RW Format - Capacity: 4,7 and 1,46 Gbytes per Side
- /// ECMA 338: 80 mm (1,46 Gbytes per side) and 120 mm (4,70 Gbytes per side) DVD Re-recordable Disk (DVD-RW)
- /// ECMA 349: Data Interchange on 120 mm and 80 mm Optical Disk using +R Format - Capacity: 4,7 and 1,46 Gbytes per Side
- /// ECMA 359: 80 mm (1,46 Gbytes per side) and 120 mm (4,70 Gbytes per side) DVD Recordable Disk (DVD-R)
- /// ECMA 364: Data Interchange on 120 mm and 80 mm Optical Disk using +R DL Format - Capacity 8,55 and 2,66 Gbytes per Side
- /// ECMA 365: Data Interchange on 60 mm Read-Only ODC - Capacity: 1,8 Gbytes (UMD™)
- /// ECMA 371: Data Interchange on 120 mm and 80 mm Optical Disk using +RW HS Format - Capacity 4,7 and 1,46 Gbytes per side
- /// ECMA 374: Data Interchange on 120 mm and 80 mm Optical Disk using +RW DL Format - Capacity 8,55 and 2,66 Gbytes per side
- /// ECMA 382: 120 mm (8,54 Gbytes per side) and 80 mm (2,66 Gbytes per side) DVD Recordable Disk for Dual Layer (DVD-R for DL)
- /// ECMA 384: 120 mm (8,54 Gbytes per side) and 80 mm (2,66 Gbytes per side) DVD Re-recordable Disk for Dual Layer (DVD-RW for DL)
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
+ /// ECMA 267: 120 mm DVD - Read-Only Disk
+ /// ECMA 268: 80 mm DVD - Read-Only Disk
+ /// ECMA 272: 120 mm DVD Rewritable Disk (DVD-RAM)
+ /// ECMA 274: Data Interchange on 120 mm Optical Disk using +RW Format - Capacity: 3,0 Gbytes and 6,0 Gbytes
+ /// ECMA 279: 80 mm (1,23 Gbytes per side) and 120 mm (3,95 Gbytes per side) DVD-Recordable Disk (DVD-R)
+ /// ECMA 330: 120 mm (4,7 Gbytes per side) and 80 mm (1,46 Gbytes per side) DVD Rewritable Disk (DVD-RAM)
+ /// ECMA 337: Data Interchange on 120 mm and 80 mm Optical Disk using +RW Format - Capacity: 4,7 and 1,46 Gbytes per
+ /// Side
+ /// ECMA 338: 80 mm (1,46 Gbytes per side) and 120 mm (4,70 Gbytes per side) DVD Re-recordable Disk (DVD-RW)
+ /// ECMA 349: Data Interchange on 120 mm and 80 mm Optical Disk using +R Format - Capacity: 4,7 and 1,46 Gbytes per
+ /// Side
+ /// ECMA 359: 80 mm (1,46 Gbytes per side) and 120 mm (4,70 Gbytes per side) DVD Recordable Disk (DVD-R)
+ /// ECMA 364: Data Interchange on 120 mm and 80 mm Optical Disk using +R DL Format - Capacity 8,55 and 2,66 Gbytes per
+ /// Side
+ /// ECMA 365: Data Interchange on 60 mm Read-Only ODC - Capacity: 1,8 Gbytes (UMD™)
+ /// ECMA 371: Data Interchange on 120 mm and 80 mm Optical Disk using +RW HS Format - Capacity 4,7 and 1,46 Gbytes per
+ /// side
+ /// ECMA 374: Data Interchange on 120 mm and 80 mm Optical Disk using +RW DL Format - Capacity 8,55 and 2,66 Gbytes per
+ /// side
+ /// ECMA 382: 120 mm (8,54 Gbytes per side) and 80 mm (2,66 Gbytes per side) DVD Recordable Disk for Dual Layer (DVD-R
+ /// for DL)
+ /// ECMA 384: 120 mm (8,54 Gbytes per side) and 80 mm (2,66 Gbytes per side) DVD Re-recordable Disk for Dual Layer
+ /// (DVD-RW for DL)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
+ [SuppressMessage("ReSharper", "NotAccessedField.Global")]
public static class PFI
{
public struct PhysicalFormatInformation
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
#region PFI common to all
///
- /// Byte 4, bits 7 to 4
- /// Disk category field
+ /// Byte 4, bits 7 to 4
+ /// Disk category field
///
public DiskCategory DiskCategory;
///
- /// Byte 4, bits 3 to 0
- /// Media version
+ /// Byte 4, bits 3 to 0
+ /// Media version
///
public byte PartVersion;
///
- /// Byte 5, bits 7 to 4
- /// 120mm if 0, 80mm if 1. If UMD (60mm) 0 also. Reserved rest of values
+ /// Byte 5, bits 7 to 4
+ /// 120mm if 0, 80mm if 1. If UMD (60mm) 0 also. Reserved rest of values
///
public DVDSize DiscSize;
///
- /// Byte 5, bits 3 to 0
- /// Maximum data rate
+ /// Byte 5, bits 3 to 0
+ /// Maximum data rate
///
public MaximumRateField MaximumRate;
///
- /// Byte 6, bit 7
- /// Reserved
+ /// Byte 6, bit 7
+ /// Reserved
///
public bool Reserved3;
///
- /// Byte 6, bits 6 to 5
- /// Number of layers
+ /// Byte 6, bits 6 to 5
+ /// Number of layers
///
public byte Layers;
///
- /// Byte 6, bit 4
- /// Track path
+ /// Byte 6, bit 4
+ /// Track path
///
public bool TrackPath;
///
- /// Byte 6, bits 3 to 0
- /// Layer type
+ /// Byte 6, bits 3 to 0
+ /// Layer type
///
public LayerTypeFieldMask LayerType;
///
- /// Byte 7, bits 7 to 4
- /// Linear density field
+ /// Byte 7, bits 7 to 4
+ /// Linear density field
///
public LinearDensityField LinearDensity;
///
- /// Byte 7, bits 3 to 0
- /// Track density field
+ /// Byte 7, bits 3 to 0
+ /// Track density field
///
public TrackDensityField TrackDensity;
///
- /// Bytes 8 to 11
- /// PSN where Data Area starts
+ /// Bytes 8 to 11
+ /// PSN where Data Area starts
///
public uint DataAreaStartPSN;
///
- /// Bytes 12 to 15
- /// PSN where Data Area ends
+ /// Bytes 12 to 15
+ /// PSN where Data Area ends
///
public uint DataAreaEndPSN;
///
- /// Bytes 16 to 19
- /// PSN where Data Area ends in Layer 0
+ /// Bytes 16 to 19
+ /// PSN where Data Area ends in Layer 0
///
public uint Layer0EndPSN;
///
- /// Byte 20, bit 7
- /// True if BCA exists. GC/Wii discs do not have this bit set, but there is a BCA, making it unreadable in normal DVD drives
+ /// Byte 20, bit 7
+ /// True if BCA exists. GC/Wii discs do not have this bit set, but there is a BCA, making it unreadable in normal DVD
+ /// drives
///
public bool BCA;
///
- /// Byte 20, bits 6 to 0
- /// Reserved
+ /// Byte 20, bits 6 to 0
+ /// Reserved
///
public byte Reserved4;
#endregion PFI common to all
#region UMD PFI
///
- /// Bytes 21 to 22
- /// UMD only, media attribute, application-defined, part of media specific in rest of discs
+ /// Bytes 21 to 22
+ /// UMD only, media attribute, application-defined, part of media specific in rest of discs
///
public ushort MediaAttribute;
#endregion UMD PFI
#region DVD-RAM PFI
///
- /// Byte 36
- /// Disc type, respecting case recordability
+ /// Byte 36
+ /// Disc type, respecting case recordability
///
public DVDRAMDiscType DiscType;
#endregion DVD-RAM PFI
#region DVD-RAM PFI, Version 0001b
///
- /// Byte 52
- /// Byte 504 in Version 0110b
- /// Linear velocity, in tenths of m/s
+ /// Byte 52
+ /// Byte 504 in Version 0110b
+ /// Linear velocity, in tenths of m/s
///
public byte Velocity;
///
- /// Byte 53
- /// Byte 505 in Version 0110b
- /// Read power on disk surface, tenths of mW
+ /// Byte 53
+ /// Byte 505 in Version 0110b
+ /// Read power on disk surface, tenths of mW
///
public byte ReadPower;
///
- /// Byte 54
- /// Byte 507 in Version 0110b
- /// Peak power on disk surface for recording land tracks
+ /// Byte 54
+ /// Byte 507 in Version 0110b
+ /// Peak power on disk surface for recording land tracks
///
public byte PeakPower;
///
- /// Byte 55
- /// Bias power on disk surface for recording land tracks
+ /// Byte 55
+ /// Bias power on disk surface for recording land tracks
///
public byte BiasPower;
///
- /// Byte 56
- /// First pulse starting time for recording on land tracks, ns
+ /// Byte 56
+ /// First pulse starting time for recording on land tracks, ns
///
public byte FirstPulseStart;
///
- /// Byte 57
- /// Byte 515 in Version 0110b
- /// First pulse ending time for recording on land tracks
+ /// Byte 57
+ /// Byte 515 in Version 0110b
+ /// First pulse ending time for recording on land tracks
///
public byte FirstPulseEnd;
///
- /// Byte 58
- /// Byte 518 in Version 0110b
- /// Multiple-pulse duration time for recording on land tracks
+ /// Byte 58
+ /// Byte 518 in Version 0110b
+ /// Multiple-pulse duration time for recording on land tracks
///
public byte MultiplePulseDuration;
///
- /// Byte 59
- /// Byte 519 in Version 0110b
- /// Last pulse starting time for recording on land tracks
+ /// Byte 59
+ /// Byte 519 in Version 0110b
+ /// Last pulse starting time for recording on land tracks
///
public byte LastPulseStart;
///
- /// Byte 60
- /// Las pulse ending time for recording on land tracks
+ /// Byte 60
+ /// Las pulse ending time for recording on land tracks
///
public byte LastPulseEnd;
///
- /// Byte 61
- /// Bias power duration for recording on land tracks
+ /// Byte 61
+ /// Bias power duration for recording on land tracks
///
public byte BiasPowerDuration;
///
- /// Byte 62
- /// Byte 511 on Version 0110b
- /// Peak power for recording on groove tracks
+ /// Byte 62
+ /// Byte 511 on Version 0110b
+ /// Peak power for recording on groove tracks
///
public byte PeakPowerGroove;
///
- /// Byte 63
- /// Bias power for recording on groove tracks
+ /// Byte 63
+ /// Bias power for recording on groove tracks
///
public byte BiasPowerGroove;
///
- /// Byte 64
- /// First pulse starting time on groove tracks
+ /// Byte 64
+ /// First pulse starting time on groove tracks
///
public byte FirstPulseStartGroove;
///
- /// Byte 65
- /// First pulse ending time on groove tracks
+ /// Byte 65
+ /// First pulse ending time on groove tracks
///
public byte FirstPulseEndGroove;
///
- /// Byte 66
- /// Multiple-pulse duration time on groove tracks
+ /// Byte 66
+ /// Multiple-pulse duration time on groove tracks
///
public byte MultiplePulseDurationGroove;
///
- /// Byte 67
- /// Last pulse starting time on groove tracks
+ /// Byte 67
+ /// Last pulse starting time on groove tracks
///
public byte LastPulseStartGroove;
///
- /// Byte 68
- /// Last pulse ending time on groove tracks
+ /// Byte 68
+ /// Last pulse ending time on groove tracks
///
public byte LastPulseEndGroove;
///
- /// Byte 69
- /// Bias power duration for recording on groove tracks
+ /// Byte 69
+ /// Bias power duration for recording on groove tracks
///
public byte BiasPowerDurationGroove;
#endregion DVD-RAM PFI, Version 0001b
#region DVD-R PFI, DVD-RW PFI
///
- /// Bytes 36 to 39
- /// Sector number of the first sector of the current Border Out
+ /// Bytes 36 to 39
+ /// Sector number of the first sector of the current Border Out
///
public uint CurrentBorderOutSector;
///
- /// Bytes 40 to 43
- /// Sector number of the first sector of the next Border In
+ /// Bytes 40 to 43
+ /// Sector number of the first sector of the next Border In
///
public uint NextBorderInSector;
#endregion DVD-R PFI, DVD-RW PFI
#region DVD+RW PFI
///
- /// Byte 36
- /// Linear velocities
- /// 0 = CLV from 4,90 m/s to 6,25 m/s
- /// 1 = CAV from 3,02 m/s to 7,35 m/s
+ /// Byte 36
+ /// Linear velocities
+ /// 0 = CLV from 4,90 m/s to 6,25 m/s
+ /// 1 = CAV from 3,02 m/s to 7,35 m/s
///
public byte RecordingVelocity;
///
- /// Byte 37
- /// Maximum read power in milliwatts at maximum velocity
- /// mW = 20 * (value - 1)
+ /// Byte 37
+ /// Maximum read power in milliwatts at maximum velocity
+ /// mW = 20 * (value - 1)
///
public byte ReadPowerMaxVelocity;
///
- /// Byte 38
- /// Indicative value of Ptarget in mW at maximum velocity
+ /// Byte 38
+ /// Indicative value of Ptarget in mW at maximum velocity
///
public byte PIndMaxVelocity;
///
- /// Byte 39
- /// Peak power multiplication factor at maximum velocity
+ /// Byte 39
+ /// Peak power multiplication factor at maximum velocity
///
public byte PMaxVelocity;
///
- /// Byte 40
- /// Bias1/write power ration at maximum velocity
+ /// Byte 40
+ /// Bias1/write power ration at maximum velocity
///
public byte E1MaxVelocity;
///
- /// Byte 41
- /// Bias2/write power ration at maximum velocity
+ /// Byte 41
+ /// Bias2/write power ration at maximum velocity
///
public byte E2MaxVelocity;
///
- /// Byte 42
- /// Target value for γ, γtarget at the maximum velocity
+ /// Byte 42
+ /// Target value for γ, γtarget at the maximum velocity
///
public byte YTargetMaxVelocity;
///
- /// Byte 43
- /// Maximum read power in milliwatts at reference velocity (4,90 m/s)
- /// mW = 20 * (value - 1)
+ /// Byte 43
+ /// Maximum read power in milliwatts at reference velocity (4,90 m/s)
+ /// mW = 20 * (value - 1)
///
public byte ReadPowerRefVelocity;
///
- /// Byte 44
- /// Indicative value of Ptarget in mW at reference velocity (4,90 m/s)
+ /// Byte 44
+ /// Indicative value of Ptarget in mW at reference velocity (4,90 m/s)
///
public byte PIndRefVelocity;
///
- /// Byte 45
- /// Peak power multiplication factor at reference velocity (4,90 m/s)
+ /// Byte 45
+ /// Peak power multiplication factor at reference velocity (4,90 m/s)
///
public byte PRefVelocity;
///
- /// Byte 46
- /// Bias1/write power ration at reference velocity (4,90 m/s)
+ /// Byte 46
+ /// Bias1/write power ration at reference velocity (4,90 m/s)
///
public byte E1RefVelocity;
///
- /// Byte 47
- /// Bias2/write power ration at reference velocity (4,90 m/s)
+ /// Byte 47
+ /// Bias2/write power ration at reference velocity (4,90 m/s)
///
public byte E2RefVelocity;
///
- /// Byte 48
- /// Target value for γ, γtarget at the reference velocity (4,90 m/s)
+ /// Byte 48
+ /// Target value for γ, γtarget at the reference velocity (4,90 m/s)
///
public byte YTargetRefVelocity;
///
- /// Byte 49
- /// Maximum read power in milliwatts at minimum velocity
- /// mW = 20 * (value - 1)
+ /// Byte 49
+ /// Maximum read power in milliwatts at minimum velocity
+ /// mW = 20 * (value - 1)
///
public byte ReadPowerMinVelocity;
///
- /// Byte 50
- /// Indicative value of Ptarget in mW at minimum velocity
+ /// Byte 50
+ /// Indicative value of Ptarget in mW at minimum velocity
///
public byte PIndMinVelocity;
///
- /// Byte 51
- /// Peak power multiplication factor at minimum velocity
+ /// Byte 51
+ /// Peak power multiplication factor at minimum velocity
///
public byte PMinVelocity;
///
- /// Byte 52
- /// Bias1/write power ration at minimum velocity
+ /// Byte 52
+ /// Bias1/write power ration at minimum velocity
///
public byte E1MinVelocity;
///
- /// Byte 53
- /// Bias2/write power ration at minimum velocity
+ /// Byte 53
+ /// Bias2/write power ration at minimum velocity
///
public byte E2MinVelocity;
///
- /// Byte 54
- /// Target value for γ, γtarget at the minimum velocity
+ /// Byte 54
+ /// Target value for γ, γtarget at the minimum velocity
///
public byte YTargetMinVelocity;
#endregion DVD+RW PFI
#region DVD-RAM PFI, version 0110b
///
- /// Byte 506, bit 7
- /// Mode of adaptative write pulse control
+ /// Byte 506, bit 7
+ /// Mode of adaptative write pulse control
///
public bool AdaptativeWritePulseControlFlag;
///
- /// Byte 508
- /// Bias power 1 on disk surface for recording land tracks
+ /// Byte 508
+ /// Bias power 1 on disk surface for recording land tracks
///
public byte BiasPower1;
///
- /// Byte 509
- /// Bias power 2 on disk surface for recording land tracks
+ /// Byte 509
+ /// Bias power 2 on disk surface for recording land tracks
///
public byte BiasPower2;
///
- /// Byte 510
- /// Bias power 3 on disk surface for recording land tracks
+ /// Byte 510
+ /// Bias power 3 on disk surface for recording land tracks
///
public byte BiasPower3;
///
- /// Byte 512
- /// Bias power 1 on disk surface for recording groove tracks
+ /// Byte 512
+ /// Bias power 1 on disk surface for recording groove tracks
///
public byte BiasPower1Groove;
///
- /// Byte 513
- /// Bias power 2 on disk surface for recording groove tracks
+ /// Byte 513
+ /// Bias power 2 on disk surface for recording groove tracks
///
public byte BiasPower2Groove;
///
- /// Byte 514
- /// Bias power 3 on disk surface for recording groove tracks
+ /// Byte 514
+ /// Bias power 3 on disk surface for recording groove tracks
///
public byte BiasPower3Groove;
///
- /// Byte 516
- /// First pulse duration
+ /// Byte 516
+ /// First pulse duration
///
public byte FirstPulseDuration;
///
- /// Byte 520
- /// Bias power 2 duration on land tracks at Velocity 1
+ /// Byte 520
+ /// Bias power 2 duration on land tracks at Velocity 1
///
public byte BiasPower2Duration;
///
- /// Byte 521
- /// First pulse start time, at Mark 3T and Leading Space 3T
+ /// Byte 521
+ /// First pulse start time, at Mark 3T and Leading Space 3T
///
public byte FirstPulseStart3TSpace3T;
///
- /// Byte 522
- /// First pulse start time, at Mark 4T and Leading Space 3T
+ /// Byte 522
+ /// First pulse start time, at Mark 4T and Leading Space 3T
///
public byte FirstPulseStart4TSpace3T;
///
- /// Byte 523
- /// First pulse start time, at Mark 5T and Leading Space 3T
+ /// Byte 523
+ /// First pulse start time, at Mark 5T and Leading Space 3T
///
public byte FirstPulseStart5TSpace3T;
///
- /// Byte 524
- /// First pulse start time, at Mark >5T and Leading Space 3T
+ /// Byte 524
+ /// First pulse start time, at Mark >5T and Leading Space 3T
///
public byte FirstPulseStartSpace3T;
///
- /// Byte 525
- /// First pulse start time, at Mark 3T and Leading Space 4T
+ /// Byte 525
+ /// First pulse start time, at Mark 3T and Leading Space 4T
///
public byte FirstPulseStart3TSpace4T;
///
- /// Byte 526
- /// First pulse start time, at Mark 4T and Leading Space 4T
+ /// Byte 526
+ /// First pulse start time, at Mark 4T and Leading Space 4T
///
public byte FirstPulseStart4TSpace4T;
///
- /// Byte 527
- /// First pulse start time, at Mark 5T and Leading Space 4T
+ /// Byte 527
+ /// First pulse start time, at Mark 5T and Leading Space 4T
///
public byte FirstPulseStart5TSpace4T;
///
- /// Byte 528
- /// First pulse start time, at Mark >5T and Leading Space 4T
+ /// Byte 528
+ /// First pulse start time, at Mark >5T and Leading Space 4T
///
public byte FirstPulseStartSpace4T;
///
- /// Byte 529
- /// First pulse start time, at Mark 3T and Leading Space 5T
+ /// Byte 529
+ /// First pulse start time, at Mark 3T and Leading Space 5T
///
public byte FirstPulseStart3TSpace5T;
///
- /// Byte 530
- /// First pulse start time, at Mark 4T and Leading Space 5T
+ /// Byte 530
+ /// First pulse start time, at Mark 4T and Leading Space 5T
///
public byte FirstPulseStart4TSpace5T;
///
- /// Byte 531
- /// First pulse start time, at Mark 5T and Leading Space 5T
+ /// Byte 531
+ /// First pulse start time, at Mark 5T and Leading Space 5T
///
public byte FirstPulseStart5TSpace5T;
///
- /// Byte 532
- /// First pulse start time, at Mark >5T and Leading Space 5T
+ /// Byte 532
+ /// First pulse start time, at Mark >5T and Leading Space 5T
///
public byte FirstPulseStartSpace5T;
///
- /// Byte 533
- /// First pulse start time, at Mark 3T and Leading Space >5T
+ /// Byte 533
+ /// First pulse start time, at Mark 3T and Leading Space >5T
///
public byte FirstPulseStart3TSpace;
///
- /// Byte 534
- /// First pulse start time, at Mark 4T and Leading Space >5T
+ /// Byte 534
+ /// First pulse start time, at Mark 4T and Leading Space >5T
///
public byte FirstPulseStart4TSpace;
///
- /// Byte 535
- /// First pulse start time, at Mark 5T and Leading Space >5T
+ /// Byte 535
+ /// First pulse start time, at Mark 5T and Leading Space >5T
///
public byte FirstPulseStart5TSpace;
///
- /// Byte 536
- /// First pulse start time, at Mark >5T and Leading Space >5T
+ /// Byte 536
+ /// First pulse start time, at Mark >5T and Leading Space >5T
///
public byte FirstPulseStartSpace;
///
- /// Byte 537
- /// First pulse start time, at Mark 3T and Trailing Space 3T
+ /// Byte 537
+ /// First pulse start time, at Mark 3T and Trailing Space 3T
///
public byte FirstPulse3TStartTSpace3T;
///
- /// Byte 538
- /// First pulse start time, at Mark 4T and Trailing Space 3T
+ /// Byte 538
+ /// First pulse start time, at Mark 4T and Trailing Space 3T
///
public byte FirstPulse4TStartTSpace3T;
///
- /// Byte 539
- /// First pulse start time, at Mark 5T and Trailing Space 3T
+ /// Byte 539
+ /// First pulse start time, at Mark 5T and Trailing Space 3T
///
public byte FirstPulse5TStartTSpace3T;
///
- /// Byte 540
- /// First pulse start time, at Mark >5T and Trailing Space 3T
+ /// Byte 540
+ /// First pulse start time, at Mark >5T and Trailing Space 3T
///
public byte FirstPulseStartTSpace3T;
///
- /// Byte 541
- /// First pulse start time, at Mark 3T and Trailing Space 4T
+ /// Byte 541
+ /// First pulse start time, at Mark 3T and Trailing Space 4T
///
public byte FirstPulse3TStartTSpace4T;
///
- /// Byte 542
- /// First pulse start time, at Mark 4T and Trailing Space 4T
+ /// Byte 542
+ /// First pulse start time, at Mark 4T and Trailing Space 4T
///
public byte FirstPulse4TStartTSpace4T;
///
- /// Byte 543
- /// First pulse start time, at Mark 5T and Trailing Space 4T
+ /// Byte 543
+ /// First pulse start time, at Mark 5T and Trailing Space 4T
///
public byte FirstPulse5TStartTSpace4T;
///
- /// Byte 544
- /// First pulse start time, at Mark >5T and Trailing Space 4T
+ /// Byte 544
+ /// First pulse start time, at Mark >5T and Trailing Space 4T
///
public byte FirstPulseStartTSpace4T;
///
- /// Byte 545
- /// First pulse start time, at Mark 3T and Trailing Space 5T
+ /// Byte 545
+ /// First pulse start time, at Mark 3T and Trailing Space 5T
///
public byte FirstPulse3TStartTSpace5T;
///
- /// Byte 546
- /// First pulse start time, at Mark 4T and Trailing Space 5T
+ /// Byte 546
+ /// First pulse start time, at Mark 4T and Trailing Space 5T
///
public byte FirstPulse4TStartTSpace5T;
///
- /// Byte 547
- /// First pulse start time, at Mark 5T and Trailing Space 5T
+ /// Byte 547
+ /// First pulse start time, at Mark 5T and Trailing Space 5T
///
public byte FirstPulse5TStartTSpace5T;
///
- /// Byte 548
- /// First pulse start time, at Mark >5T and Trailing Space 5T
+ /// Byte 548
+ /// First pulse start time, at Mark >5T and Trailing Space 5T
///
public byte FirstPulseStartTSpace5T;
///
- /// Byte 549
- /// First pulse start time, at Mark 3T and Trailing Space >5T
+ /// Byte 549
+ /// First pulse start time, at Mark 3T and Trailing Space >5T
///
public byte FirstPulse3TStartTSpace;
///
- /// Byte 550
- /// First pulse start time, at Mark 4T and Trailing Space >5T
+ /// Byte 550
+ /// First pulse start time, at Mark 4T and Trailing Space >5T
///
public byte FirstPulse4TStartTSpace;
///
- /// Byte 551
- /// First pulse start time, at Mark 5T and Trailing Space >5T
+ /// Byte 551
+ /// First pulse start time, at Mark 5T and Trailing Space >5T
///
public byte FirstPulse5TStartTSpace;
///
- /// Byte 552
- /// First pulse start time, at Mark >5T and Trailing Space >5T
+ /// Byte 552
+ /// First pulse start time, at Mark >5T and Trailing Space >5T
///
public byte FirstPulseStartTSpace;
///
- /// Bytes 553 to 600
- /// Disk manufacturer's name, space-padded
+ /// Bytes 553 to 600
+ /// Disk manufacturer's name, space-padded
///
public string DiskManufacturer;
///
- /// Bytes 601 to 616
- /// Disk manufacturer's supplementary information
+ /// Bytes 601 to 616
+ /// Disk manufacturer's supplementary information
///
public string DiskManufacturerSupplementary;
///
- /// Bytes 617 to 627
- /// Write power control parameters
+ /// Bytes 617 to 627
+ /// Write power control parameters
///
public byte[] WritePowerControlParams;
///
- /// Byte 619
- /// Ratio of peak power for land tracks to threshold peak power for land tracks
+ /// Byte 619
+ /// Ratio of peak power for land tracks to threshold peak power for land tracks
///
public byte PowerRatioLandThreshold;
///
- /// Byte 620
- /// Target asymmetry
+ /// Byte 620
+ /// Target asymmetry
///
public byte TargetAsymmetry;
///
- /// Byte 621
- /// Temporary peak power
+ /// Byte 621
+ /// Temporary peak power
///
public byte TemporaryPeakPower;
///
- /// Byte 622
- /// Temporary bias power 1
+ /// Byte 622
+ /// Temporary bias power 1
///
public byte TemporaryBiasPower1;
///
- /// Byte 623
- /// Temporary bias power 2
+ /// Byte 623
+ /// Temporary bias power 2
///
public byte TemporaryBiasPower2;
///
- /// Byte 624
- /// Temporary bias power 3
+ /// Byte 624
+ /// Temporary bias power 3
///
public byte TemporaryBiasPower3;
///
- /// Byte 625
- /// Ratio of peak power for groove tracks to threshold peak power for groove tracks
+ /// Byte 625
+ /// Ratio of peak power for groove tracks to threshold peak power for groove tracks
///
public byte PowerRatioGrooveThreshold;
///
- /// Byte 626
- /// Ratio of peak power for land tracks to threshold 6T peak power for land tracks
+ /// Byte 626
+ /// Ratio of peak power for land tracks to threshold 6T peak power for land tracks
///
public byte PowerRatioLandThreshold6T;
///
- /// Byte 627
- /// Ratio of peak power for groove tracks to threshold 6T peak power for groove tracks
+ /// Byte 627
+ /// Ratio of peak power for groove tracks to threshold 6T peak power for groove tracks
///
public byte PowerRatioGrooveThreshold6T;
#endregion DVD-RAM PFI, version 0110b
#region DVD+RW PFI, DVD+R PFI, DVD+R DL PFI and DVD+RW DL PFI
///
- /// Byte 20, bit 6
- /// If set indicates data zone contains extended information for VCPS
+ /// Byte 20, bit 6
+ /// If set indicates data zone contains extended information for VCPS
///
public bool VCPS;
///
- /// Byte 21
- /// Indicates restricted usage disk
+ /// Byte 21
+ /// Indicates restricted usage disk
///
public byte ApplicationCode;
///
- /// Byte 22
- /// Bitmap of extended information block presence
+ /// Byte 22
+ /// Bitmap of extended information block presence
///
public byte ExtendedInformation;
///
- /// Bytes 23 to 30
- /// Disk manufacturer ID, null-padded
+ /// Bytes 23 to 30
+ /// Disk manufacturer ID, null-padded
///
public string DiskManufacturerID;
///
- /// Bytes 31 to 33
- /// Media type ID, null-padded
+ /// Bytes 31 to 33
+ /// Media type ID, null-padded
///
public string MediaTypeID;
///
- /// Byte 34
- /// Product revision number
+ /// Byte 34
+ /// Product revision number
///
public byte ProductRevision;
///
- /// Byte 35
- /// Indicates how many bytes, up to 63, are used in ADIP's PFI
+ /// Byte 35
+ /// Indicates how many bytes, up to 63, are used in ADIP's PFI
///
public byte PFIUsedInADIP;
#endregion DVD+RW PFI, DVD+R PFI, DVD+R DL PFI and DVD+RW DL PFI
#region DVD+RW PFI, version 0010b
///
- /// Byte 55
- /// Ttop first pulse duration
+ /// Byte 55
+ /// Ttop first pulse duration
///
public byte TopFirstPulseDuration;
///
- /// Byte 56
- /// Tmp multi pulse duration
+ /// Byte 56
+ /// Tmp multi pulse duration
///
public byte MultiPulseDuration;
///
- /// Byte 57
- /// dTtop first pulse lead time
+ /// Byte 57
+ /// dTtop first pulse lead time
///
public byte FirstPulseLeadTime;
///
- /// Byte 58
- /// dTera erase lead time at reference velocity
+ /// Byte 58
+ /// dTera erase lead time at reference velocity
///
public byte EraseLeadTimeRefVelocity;
///
- /// Byte 59
- /// dTera erase lead time at upper velocity
+ /// Byte 59
+ /// dTera erase lead time at upper velocity
///
public byte EraseLeadTimeUppVelocity;
#endregion DVD+RW PFI, version 0010b
#region DVD+R PFI version 0001b and DVD+R DL PFI version 0001b
///
- /// Byte 36
- /// Primary recording velocity for the basic write strategy
+ /// Byte 36
+ /// Primary recording velocity for the basic write strategy
///
public byte PrimaryVelocity;
///
- /// Byte 37
- /// Upper recording velocity for the basic write strategy
+ /// Byte 37
+ /// Upper recording velocity for the basic write strategy
///
public byte UpperVelocity;
///
- /// Byte 38
- /// Wavelength λIND
+ /// Byte 38
+ /// Wavelength λIND
///
public byte Wavelength;
///
- /// Byte 39
- /// Normalized write power dependency on wavelength (dP/dλ)/(PIND/λIND)
+ /// Byte 39
+ /// Normalized write power dependency on wavelength (dP/dλ)/(PIND/λIND)
///
public byte NormalizedPowerDependency;
///
- /// Byte 40
- /// Maximum read power at primary velocity
+ /// Byte 40
+ /// Maximum read power at primary velocity
///
public byte MaximumPowerAtPrimaryVelocity;
///
- /// Byte 41
- /// Pind at primary velocity
+ /// Byte 41
+ /// Pind at primary velocity
///
public byte PindAtPrimaryVelocity;
///
- /// Byte 42
- /// βtarget at primary velocity
+ /// Byte 42
+ /// βtarget at primary velocity
///
public byte BtargetAtPrimaryVelocity;
///
- /// Byte 43
- /// Maximum read power at upper velocity
+ /// Byte 43
+ /// Maximum read power at upper velocity
///
public byte MaximumPowerAtUpperVelocity;
///
- /// Byte 44
- /// Pind at primary velocity
+ /// Byte 44
+ /// Pind at primary velocity
///
public byte PindAtUpperVelocity;
///
- /// Byte 45
- /// βtarget at upper velocity
+ /// Byte 45
+ /// βtarget at upper velocity
///
public byte BtargetAtUpperVelocity;
///
- /// Byte 46
- /// Ttop (≥4T) first pulse duration for cm∗ ≥4T at Primary velocity
+ /// Byte 46
+ /// Ttop (≥4T) first pulse duration for cm∗ ≥4T at Primary velocity
///
public byte FirstPulseDuration4TPrimaryVelocity;
///
- /// Byte 47
- /// Ttop (=3T) first pulse duration for cm∗ =3T at Primary velocity
+ /// Byte 47
+ /// Ttop (=3T) first pulse duration for cm∗ =3T at Primary velocity
///
public byte FirstPulseDuration3TPrimaryVelocity;
///
- /// Byte 48
- /// Tmp multi pulse duration at Primary velocity
+ /// Byte 48
+ /// Tmp multi pulse duration at Primary velocity
///
public byte MultiPulseDurationPrimaryVelocity;
///
- /// Byte 49
- /// Tlp last pulse duration at Primary velocity
+ /// Byte 49
+ /// Tlp last pulse duration at Primary velocity
///
public byte LastPulseDurationPrimaryVelocity;
///
- /// Byte 50
- /// dTtop (≥4T) first pulse lead time for cm∗ ≥4T at Primary velocity
+ /// Byte 50
+ /// dTtop (≥4T) first pulse lead time for cm∗ ≥4T at Primary velocity
///
public byte FirstPulseLeadTime4TPrimaryVelocity;
///
- /// Byte 51
- /// dTtop (=3T) first pulse lead time for cm∗ =3T at Primary velocity
+ /// Byte 51
+ /// dTtop (=3T) first pulse lead time for cm∗ =3T at Primary velocity
///
public byte FirstPulseLeadTime3TPrimaryVelocity;
///
- /// Byte 52
- /// dTle first pulse leading edge shift for ps∗ =3T at Primary velocity
+ /// Byte 52
+ /// dTle first pulse leading edge shift for ps∗ =3T at Primary velocity
///
public byte FirstPulseLeadingEdgePrimaryVelocity;
///
- /// Byte 53
- /// Ttop (≥4T) first pulse duration for cm∗ ≥4T at Upper velocity
+ /// Byte 53
+ /// Ttop (≥4T) first pulse duration for cm∗ ≥4T at Upper velocity
///
public byte FirstPulseDuration4TUpperVelocity;
///
- /// Byte 54
- /// Ttop (=3T) first pulse duration for cm∗ =3T at Upper velocity
+ /// Byte 54
+ /// Ttop (=3T) first pulse duration for cm∗ =3T at Upper velocity
///
public byte FirstPulseDuration3TUpperVelocity;
///
- /// Byte 55
- /// Tmp multi pulse duration at Upper velocity
+ /// Byte 55
+ /// Tmp multi pulse duration at Upper velocity
///
public byte MultiPulseDurationUpperVelocity;
///
- /// Byte 56
- /// Tlp last pulse duration at Upper velocity
+ /// Byte 56
+ /// Tlp last pulse duration at Upper velocity
///
public byte LastPulseDurationUpperVelocity;
///
- /// Byte 57
- /// dTtop (≥4T) first pulse lead time for cm∗ ≥4T at Upper velocity
+ /// Byte 57
+ /// dTtop (≥4T) first pulse lead time for cm∗ ≥4T at Upper velocity
///
public byte FirstPulseLeadTime4TUpperVelocity;
///
- /// Byte 58
- /// dTtop (=3T) first pulse lead time for cm∗ =3T at Upper velocity
+ /// Byte 58
+ /// dTtop (=3T) first pulse lead time for cm∗ =3T at Upper velocity
///
public byte FirstPulseLeadTime3TUpperVelocity;
///
- /// Byte 59
- /// dTle first pulse leading edge shift for ps∗ =3T at Upper velocity
+ /// Byte 59
+ /// dTle first pulse leading edge shift for ps∗ =3T at Upper velocity
///
public byte FirstPulseLeadingEdgeUpperVelocity;
#endregion DVD+R PFI version 0001b and DVD+R DL PFI version 0001b
#region DVD+R DL PFI version 0001b
///
- /// Byte 34, bits 7 to 6
+ /// Byte 34, bits 7 to 6
///
public DVDLayerStructure LayerStructure;
#endregion DVD+R DL PFI version 0001b
#region DVD+RW DL PFI
///
- /// Byte 36
- /// Primary recording velocity for the basic write strategy
+ /// Byte 36
+ /// Primary recording velocity for the basic write strategy
///
public byte BasicPrimaryVelocity;
///
- /// Byte 37
- /// Maximum read power at Primary velocity
+ /// Byte 37
+ /// Maximum read power at Primary velocity
///
public byte MaxReadPowerPrimaryVelocity;
///
- /// Byte 38
- /// PIND at Primary velocity
+ /// Byte 38
+ /// PIND at Primary velocity
///
public byte PindPrimaryVelocity;
///
- /// Byte 39
- /// ρ at Primary velocity
+ /// Byte 39
+ /// ρ at Primary velocity
///
public byte PPrimaryVelocity;
///
- /// Byte 40
- /// ε1 at Primary velocity
+ /// Byte 40
+ /// ε1 at Primary velocity
///
public byte E1PrimaryVelocity;
///
- /// Byte 41
- /// ε2 at Primary velocity
+ /// Byte 41
+ /// ε2 at Primary velocity
///
public byte E2PrimaryVelocity;
///
- /// Byte 42
- /// γtarget at Primary velocity
+ /// Byte 42
+ /// γtarget at Primary velocity
///
public byte YtargetPrimaryVelocity;
///
- /// Byte 43
- /// β optimum at Primary velocity
+ /// Byte 43
+ /// β optimum at Primary velocity
///
public byte BOptimumPrimaryVelocity;
///
- /// Byte 46
- /// Ttop first pulse duration
+ /// Byte 46
+ /// Ttop first pulse duration
///
public byte TFirstPulseDuration;
///
- /// Byte 47
- /// Tmp multi pulse duration
+ /// Byte 47
+ /// Tmp multi pulse duration
///
public byte TMultiPulseDuration;
///
- /// Byte 48
- /// dTtop first pulse lead/lag time for any runlength ≥ 4T
+ /// Byte 48
+ /// dTtop first pulse lead/lag time for any runlength ≥ 4T
///
public byte FirstPulseLeadTimeAnyRun;
///
- /// Byte 49
- /// dTtop,3 first pulse lead/lag time for runlengths = 3T
+ /// Byte 49
+ /// dTtop,3 first pulse lead/lag time for runlengths = 3T
///
public byte FirstPulseLeadTimeRun3T;
///
- /// Byte 50
- /// dTlp last pulse lead/lag time for any runlength ≥ 5T
+ /// Byte 50
+ /// dTlp last pulse lead/lag time for any runlength ≥ 5T
///
public byte LastPulseLeadTimeAnyRun;
///
- /// Byte 51
- /// dTlp,3 last pulse lead/lag time for runlengths = 3T
+ /// Byte 51
+ /// dTlp,3 last pulse lead/lag time for runlengths = 3T
///
public byte LastPulseLeadTime3T;
///
- /// Byte 52
- /// dTlp,4 last pulse lead/lag time for runlengths = 4T
+ /// Byte 52
+ /// dTlp,4 last pulse lead/lag time for runlengths = 4T
///
public byte LastPulseLeadTime4T;
///
- /// Byte 53
- /// dTera erase lead/lag time when preceding mark length ≥ 5T
+ /// Byte 53
+ /// dTera erase lead/lag time when preceding mark length ≥ 5T
///
public byte ErasePulseLeadTimeAny;
///
- /// Byte 54
- /// dTera,3 erase lead/lag time when preceding mark length = 3T
+ /// Byte 54
+ /// dTera,3 erase lead/lag time when preceding mark length = 3T
///
public byte ErasePulseLeadTime3T;
///
- /// Byte 55
- /// dTera,4 erase lead/lag time when preceding mark length = 4T
+ /// Byte 55
+ /// dTera,4 erase lead/lag time when preceding mark length = 4T
///
public byte ErasePulseLeadTime4T;
#endregion DVD+RW DL PFI
#region DVD-R DL PFI and DVD-RW DL PFI
///
- /// Byte 21
- /// Maximum recording speed
+ /// Byte 21
+ /// Maximum recording speed
///
public DVDRecordingSpeed MaxRecordingSpeed;
///
- /// Byte 22
- /// Minimum recording speed
+ /// Byte 22
+ /// Minimum recording speed
///
public DVDRecordingSpeed MinRecordingSpeed;
///
- /// Byte 23
- /// Another recording speed
+ /// Byte 23
+ /// Another recording speed
///
public DVDRecordingSpeed RecordingSpeed1;
///
- /// Byte 24
- /// Another recording speed
+ /// Byte 24
+ /// Another recording speed
///
public DVDRecordingSpeed RecordingSpeed2;
///
- /// Byte 25
- /// Another recording speed
+ /// Byte 25
+ /// Another recording speed
///
public DVDRecordingSpeed RecordingSpeed3;
///
- /// Byte 26
- /// Another recording speed
+ /// Byte 26
+ /// Another recording speed
///
public DVDRecordingSpeed RecordingSpeed4;
///
- /// Byte 27
- /// Another recording speed
+ /// Byte 27
+ /// Another recording speed
///
public DVDRecordingSpeed RecordingSpeed5;
///
- /// Byte 28
- /// Another recording speed
+ /// Byte 28
+ /// Another recording speed
///
public DVDRecordingSpeed RecordingSpeed6;
///
- /// Byte 29
- /// Another recording speed
+ /// Byte 29
+ /// Another recording speed
///
public DVDRecordingSpeed RecordingSpeed7;
///
- /// Byte 30
- /// Class
+ /// Byte 30
+ /// Class
///
public byte Class;
///
- /// Byte 31
- /// Extended version. 0x30 = ECMA-382, 0x20 = ECMA-384
+ /// Byte 31
+ /// Extended version. 0x30 = ECMA-382, 0x20 = ECMA-384
///
public byte ExtendedVersion;
///
- /// Byte 36
- /// Start sector number of current RMD in Extra Border Zone
+ /// Byte 36
+ /// Start sector number of current RMD in Extra Border Zone
///
public uint CurrentRMDExtraBorderPSN;
///
- /// Byte 40
- /// Start sector number of Physical Format Information blocks in Extra Border Zone
+ /// Byte 40
+ /// Start sector number of Physical Format Information blocks in Extra Border Zone
///
public uint PFIExtraBorderPSN;
///
- /// Byte 44, bit 0
- /// If NOT set, Control Data Zone is pre-recorded
+ /// Byte 44, bit 0
+ /// If NOT set, Control Data Zone is pre-recorded
///
public bool PreRecordedControlDataInv;
///
- /// Byte 44 bit 1
- /// Lead-in Zone is pre-recorded
+ /// Byte 44 bit 1
+ /// Lead-in Zone is pre-recorded
///
public bool PreRecordedLeadIn;
///
- /// Byte 44 bit 3
- /// Lead-out Zone is pre-recorded
+ /// Byte 44 bit 3
+ /// Lead-out Zone is pre-recorded
///
public bool PreRecordedLeadOut;
///
- /// Byte 45 bits 0 to 3
- /// AR characteristic of LPP on Layer 1
+ /// Byte 45 bits 0 to 3
+ /// AR characteristic of LPP on Layer 1
///
public byte ARCharLayer1;
///
- /// Byte 45 bits 4 to 7
- /// Tracking polarity on Layer 1
+ /// Byte 45 bits 4 to 7
+ /// Tracking polarity on Layer 1
///
public byte TrackPolarityLayer1;
#endregion DVD-R DL PFI and DVD-RW DL PFI
@@ -1082,9 +1091,11 @@ namespace DiscImageChef.Decoders.DVD
pfi.Layer0EndPSN = (uint)((response[16] << 24) + (response[17] << 16) + (response[18] << 8) + response[19]);
pfi.BCA |= (response[20] & 0x80) == 0x80;
- switch(pfi.DiskCategory) {
+ switch(pfi.DiskCategory)
+ {
// UMD
- case DiskCategory.UMD: pfi.MediaAttribute = (ushort)((response[21] << 8) + response[22]);
+ case DiskCategory.UMD:
+ pfi.MediaAttribute = (ushort)((response[21] << 8) + response[22]);
break;
// DVD-RAM
case DiskCategory.DVDRAM:
@@ -1231,7 +1242,8 @@ namespace DiscImageChef.Decoders.DVD
pfi.PFIUsedInADIP = response[35];
}
- switch(pfi.DiskCategory) {
+ switch(pfi.DiskCategory)
+ {
// DVD+RW
case DiskCategory.DVDPRW when pfi.PartVersion == 2:
pfi.TopFirstPulseDuration = response[55];
@@ -1270,9 +1282,11 @@ namespace DiscImageChef.Decoders.DVD
break;
}
- switch(pfi.DiskCategory) {
+ switch(pfi.DiskCategory)
+ {
// DVD+R DL
- case DiskCategory.DVDPRDL: pfi.LayerStructure = (DVDLayerStructure)((response[34] & 0xC0) >> 6);
+ case DiskCategory.DVDPRDL:
+ pfi.LayerStructure = (DVDLayerStructure)((response[34] & 0xC0) >> 6);
break;
// DVD+RW DL
case DiskCategory.DVDPRWDL:
@@ -1351,10 +1365,13 @@ namespace DiscImageChef.Decoders.DVD
{
case DiskCategory.DVDROM:
sb.AppendFormat(categorySentence, sizeString, "DVD-ROM", decoded.PartVersion).AppendLine();
- switch(decoded.DiscSize) {
- case DVDSize.OneTwenty when decoded.PartVersion == 1: sb.AppendLine("Disc claims conformation to ECMA-267");
+ switch(decoded.DiscSize)
+ {
+ case DVDSize.OneTwenty when decoded.PartVersion == 1:
+ sb.AppendLine("Disc claims conformation to ECMA-267");
break;
- case DVDSize.Eighty when decoded.PartVersion == 1: sb.AppendLine("Disc claims conformation to ECMA-268");
+ case DVDSize.Eighty when decoded.PartVersion == 1:
+ sb.AppendLine("Disc claims conformation to ECMA-268");
break;
}
@@ -1583,8 +1600,10 @@ namespace DiscImageChef.Decoders.DVD
if(decoded.BCA) sb.AppendLine("Disc has a burst cutting area");
- switch(decoded.DiskCategory) {
- case DiskCategory.UMD: sb.AppendFormat("Media attribute is {0}", decoded.MediaAttribute).AppendLine();
+ switch(decoded.DiskCategory)
+ {
+ case DiskCategory.UMD:
+ sb.AppendFormat("Media attribute is {0}", decoded.MediaAttribute).AppendLine();
break;
case DiskCategory.DVDRAM:
switch(decoded.DiscType)
@@ -1611,7 +1630,8 @@ namespace DiscImageChef.Decoders.DVD
case DiskCategory.DVDRW when decoded.PartVersion < 3:
sb.AppendFormat("Current Border-Out first sector is PSN {0:X}h", decoded.CurrentBorderOutSector)
.AppendLine();
- sb.AppendFormat("Next Border-In first sector is PSN {0:X}h", decoded.NextBorderInSector).AppendLine();
+ sb.AppendFormat("Next Border-In first sector is PSN {0:X}h", decoded.NextBorderInSector)
+ .AppendLine();
break;
case DiskCategory.DVDPR:
case DiskCategory.DVDPRW:
@@ -1628,10 +1648,9 @@ namespace DiscImageChef.Decoders.DVD
if((decoded.DiskCategory != DiskCategory.DVDR || decoded.PartVersion < 6) &&
(decoded.DiskCategory != DiskCategory.DVDRW || decoded.PartVersion < 3)) return sb.ToString();
- sb.AppendFormat("Current RMD in extra Border zone starts at PSN {0:X}h",
- decoded.CurrentRMDExtraBorderPSN).AppendLine();
- sb.AppendFormat("PFI in extra Border zone starts at PSN {0:X}h", decoded.PFIExtraBorderPSN)
+ sb.AppendFormat("Current RMD in extra Border zone starts at PSN {0:X}h", decoded.CurrentRMDExtraBorderPSN)
.AppendLine();
+ sb.AppendFormat("PFI in extra Border zone starts at PSN {0:X}h", decoded.PFIExtraBorderPSN).AppendLine();
if(!decoded.PreRecordedControlDataInv) sb.AppendLine("Control Data Zone is pre-recorded");
if(decoded.PreRecordedLeadIn) sb.AppendLine("Lead-In is pre-recorded");
if(decoded.PreRecordedLeadOut) sb.AppendLine("Lead-Out is pre-recorded");
diff --git a/DVD/PRI.cs b/DVD/PRI.cs
index 7bd281a..5fee93d 100644
--- a/DVD/PRI.cs
+++ b/DVD/PRI.cs
@@ -35,20 +35,20 @@ using System.Diagnostics.CodeAnalysis;
namespace DiscImageChef.Decoders.DVD
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
- /// ECMA 365
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
+ /// ECMA 365
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -58,23 +58,23 @@ namespace DiscImageChef.Decoders.DVD
public struct PreRecordedInformation
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to end
- /// Pre-recorded Information in Lead-in for writable media
+ /// Bytes 4 to end
+ /// Pre-recorded Information in Lead-in for writable media
///
public byte[] PRI;
}
diff --git a/DVD/RMD.cs b/DVD/RMD.cs
index c57f89f..c450467 100644
--- a/DVD/RMD.cs
+++ b/DVD/RMD.cs
@@ -35,20 +35,20 @@ using System.Diagnostics.CodeAnalysis;
namespace DiscImageChef.Decoders.DVD
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
- /// ECMA 365
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
+ /// ECMA 365
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -58,23 +58,23 @@ namespace DiscImageChef.Decoders.DVD
public struct LastBorderOutRMD
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to end
- /// RMD in last recorded Border-out
+ /// Bytes 4 to end
+ /// RMD in last recorded Border-out
///
public byte[] RMD;
}
@@ -82,38 +82,38 @@ namespace DiscImageChef.Decoders.DVD
public struct HDMediumStatus
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Byte 4, bits 7 to 1
- /// Reserved
+ /// Byte 4, bits 7 to 1
+ /// Reserved
///
public byte Reserved3;
///
- /// Byte 4, bit 0
- /// Test Zone has been extended
+ /// Byte 4, bit 0
+ /// Test Zone has been extended
///
public bool ExtendedTestZone;
///
- /// Byte 5
- /// Number of remaining RMDs in RDZ
+ /// Byte 5
+ /// Number of remaining RMDs in RDZ
///
public byte RemainingRMDs;
///
- /// Bytes 6 to 7
- /// Number of remaining RMDs in current RMZ
+ /// Bytes 6 to 7
+ /// Number of remaining RMDs in current RMZ
///
public ushort CurrentRemainingRMDs;
}
diff --git a/DVD/Spare.cs b/DVD/Spare.cs
index 2db3529..d650317 100644
--- a/DVD/Spare.cs
+++ b/DVD/Spare.cs
@@ -36,19 +36,19 @@ using System.Text;
namespace DiscImageChef.Decoders.DVD
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -59,33 +59,33 @@ namespace DiscImageChef.Decoders.DVD
public struct SpareAreaInformation
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to 7
- /// Data length
+ /// Bytes 4 to 7
+ /// Data length
///
public uint UnusedPrimaryBlocks;
///
- /// Bytes 8 to 11
- /// Data length
+ /// Bytes 8 to 11
+ /// Data length
///
public uint UnusedSupplementaryBlocks;
///
- /// Bytes 12 to 15
- /// Data length
+ /// Bytes 12 to 15
+ /// Data length
///
public uint AllocatedSupplementaryBlocks;
}
diff --git a/DVD/UDI.cs b/DVD/UDI.cs
index 9e20b5f..2c15762 100644
--- a/DVD/UDI.cs
+++ b/DVD/UDI.cs
@@ -35,20 +35,20 @@ using System.Diagnostics.CodeAnalysis;
namespace DiscImageChef.Decoders.DVD
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
- /// ECMA 365
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
+ /// ECMA 365
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -58,63 +58,63 @@ namespace DiscImageChef.Decoders.DVD
public struct UniqueDiscIdentifier
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Byte 4
- /// Reserved
+ /// Byte 4
+ /// Reserved
///
public byte Reserved3;
///
- /// Byte 5
- /// Reserved
+ /// Byte 5
+ /// Reserved
///
public byte Reserved4;
///
- /// Bytes 6 to 7
- /// Random number
+ /// Bytes 6 to 7
+ /// Random number
///
public ushort RandomNumber;
///
- /// Byte 8 to 11
- /// Year
+ /// Byte 8 to 11
+ /// Year
///
public uint Year;
///
- /// Byte 12 to 13
- /// Month
+ /// Byte 12 to 13
+ /// Month
///
public ushort Month;
///
- /// Byte 14 to 15
- /// Day
+ /// Byte 14 to 15
+ /// Day
///
public ushort Day;
///
- /// Byte 16 to 17
- /// Hour
+ /// Byte 16 to 17
+ /// Hour
///
public ushort Hour;
///
- /// Byte 18 to 19
- /// Minute
+ /// Byte 18 to 19
+ /// Minute
///
public ushort Minute;
///
- /// Byte 20 to 21
- /// Second
+ /// Byte 20 to 21
+ /// Second
///
public ushort Second;
}
diff --git a/Floppy/Amiga.cs b/Floppy/Amiga.cs
index eb9cffc..7a03444 100644
--- a/Floppy/Amiga.cs
+++ b/Floppy/Amiga.cs
@@ -36,7 +36,7 @@ using System.Runtime.InteropServices;
namespace DiscImageChef.Decoders.Floppy
{
///
- /// Methods and structures for Commodore Amiga decoding
+ /// Methods and structures for Commodore Amiga decoding
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -46,39 +46,39 @@ namespace DiscImageChef.Decoders.Floppy
public struct Sector
{
///
- /// Set to 0x00
+ /// Set to 0x00
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] public byte[] zero;
///
- /// Set to 0xA1
+ /// Set to 0xA1
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] public byte[] sync;
///
- /// Set to 0xFF
+ /// Set to 0xFF
///
public byte amiga;
///
- /// Track number
+ /// Track number
///
public byte track;
///
- /// Sector number
+ /// Sector number
///
public byte sector;
///
- /// Remaining sectors til end of writing
+ /// Remaining sectors til end of writing
///
public byte remaining;
///
- /// OS dependent tag
+ /// OS dependent tag
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)] public byte[] label;
///
- /// Checksum from to
+ /// Checksum from to
///
public uint headerChecksum;
///
- /// Checksum from
+ /// Checksum from
///
public uint dataChecksum;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 512)] public byte[] data;
diff --git a/Floppy/Apple2.cs b/Floppy/Apple2.cs
index ab7b58c..9518645 100644
--- a/Floppy/Apple2.cs
+++ b/Floppy/Apple2.cs
@@ -41,7 +41,7 @@ using DiscImageChef.Console;
namespace DiscImageChef.Decoders.Floppy
{
///
- /// Methods and structures for Apple ][ floppy decoding
+ /// Methods and structures for Apple ][ floppy decoding
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -49,99 +49,99 @@ namespace DiscImageChef.Decoders.Floppy
public static class Apple2
{
///
- /// GCR-encoded Apple ][ GCR floppy track
+ /// GCR-encoded Apple ][ GCR floppy track
///
public class RawTrack
{
///
- /// Track preamble, set to self-sync 0xFF, between 40 and 95 bytes
+ /// Track preamble, set to self-sync 0xFF, between 40 and 95 bytes
///
public byte[] gap;
public RawSector[] sectors;
}
///
- /// GCR-encoded Apple ][ GCR floppy sector
+ /// GCR-encoded Apple ][ GCR floppy sector
///
public class RawSector
{
///
- /// Address field
+ /// Address field
///
public RawAddressField addressField;
///
- /// Track preamble, set to self-sync 0xFF, between 5 and 10 bytes
- ///
- public byte[] innerGap;
- ///
- /// Data field
+ /// Data field
///
public RawDataField dataField;
///
- /// Track preamble, set to self-sync 0xFF, between 14 and 24 bytes
+ /// Track preamble, set to self-sync 0xFF, between 14 and 24 bytes
///
public byte[] gap;
+ ///
+ /// Track preamble, set to self-sync 0xFF, between 5 and 10 bytes
+ ///
+ public byte[] innerGap;
}
///
- /// GCR-encoded Apple ][ GCR floppy sector address field
+ /// GCR-encoded Apple ][ GCR floppy sector address field
///
public class RawAddressField
{
///
- /// Always 0xD5, 0xAA, 0x96
- ///
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] prologue;
- ///
- /// Volume number encoded as:
- /// volume[0] = (decodedVolume >> 1) | 0xAA
- /// volume[1] = decodedVolume | 0xAA
- ///
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] public byte[] volume;
- ///
- /// Track number encoded as:
- /// track[0] = (decodedTrack >> 1) | 0xAA
- /// track[1] = decodedTrack | 0xAA
- ///
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] public byte[] track;
- ///
- /// Sector number encoded as:
- /// sector[0] = (decodedSector >> 1) | 0xAA
- /// sector[1] = decodedSector | 0xAA
- ///
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] public byte[] sector;
- ///
- /// decodedChecksum = decodedVolume ^ decodedTrack ^ decodedSector
- /// checksum[0] = (decodedChecksum >> 1) | 0xAA
- /// checksum[1] = decodedChecksum | 0xAA
+ /// decodedChecksum = decodedVolume ^ decodedTrack ^ decodedSector
+ /// checksum[0] = (decodedChecksum >> 1) | 0xAA
+ /// checksum[1] = decodedChecksum | 0xAA
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] public byte[] checksum;
///
- /// Always 0xDE, 0xAA, 0xEB
+ /// Always 0xDE, 0xAA, 0xEB
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] epilogue;
- }
-
- ///
- /// GCR-encoded Apple ][ GCR floppy sector data field
- ///
- public class RawDataField
- {
///
- /// Always 0xD5, 0xAA, 0xAD
+ /// Always 0xD5, 0xAA, 0x96
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] prologue;
///
- /// Encoded data bytes.
- /// 410 bytes for 5to3 (aka DOS 3.2) format
- /// 342 bytes for 6to2 (aka DOS 3.3) format
+ /// Sector number encoded as:
+ /// sector[0] = (decodedSector >> 1) | 0xAA
+ /// sector[1] = decodedSector | 0xAA
///
- public byte[] data;
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] public byte[] sector;
+ ///
+ /// Track number encoded as:
+ /// track[0] = (decodedTrack >> 1) | 0xAA
+ /// track[1] = decodedTrack | 0xAA
+ ///
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] public byte[] track;
+ ///
+ /// Volume number encoded as:
+ /// volume[0] = (decodedVolume >> 1) | 0xAA
+ /// volume[1] = decodedVolume | 0xAA
+ ///
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] public byte[] volume;
+ }
+
+ ///
+ /// GCR-encoded Apple ][ GCR floppy sector data field
+ ///
+ public class RawDataField
+ {
public byte checksum;
///
- /// Always 0xDE, 0xAA, 0xEB
+ /// Encoded data bytes.
+ /// 410 bytes for 5to3 (aka DOS 3.2) format
+ /// 342 bytes for 6to2 (aka DOS 3.3) format
+ ///
+ public byte[] data;
+ ///
+ /// Always 0xDE, 0xAA, 0xEB
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] epilogue;
+ ///
+ /// Always 0xD5, 0xAA, 0xAD
+ ///
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] prologue;
}
static readonly byte[] ReadTable5and3 =
@@ -217,7 +217,7 @@ namespace DiscImageChef.Decoders.Floppy
};
///
- /// Decodes the 5and3 encoded data
+ /// Decodes the 5and3 encoded data
///
/// 5and3 encoded data.
public static byte[] Decode5and3(byte[] data)
@@ -253,7 +253,7 @@ namespace DiscImageChef.Decoders.Floppy
}
///
- /// Decodes the 6and2 encoded data
+ /// Decodes the 6and2 encoded data
///
/// 6and2 encoded data.
public static byte[] Decode6and2(byte[] data)
@@ -549,8 +549,7 @@ namespace DiscImageChef.Decoders.Floppy
MemoryStream raw = new MemoryStream();
raw.Write(track.gap, 0, track.gap.Length);
- foreach(byte[] rawSector in track.sectors.Select(MarshalSector))
- { raw.Write(rawSector, 0, rawSector.Length); }
+ foreach(byte[] rawSector in track.sectors.Select(MarshalSector)) raw.Write(rawSector, 0, rawSector.Length);
return raw.ToArray();
}
@@ -589,7 +588,7 @@ namespace DiscImageChef.Decoders.Floppy
if(disk == null) return null;
MemoryStream raw = new MemoryStream();
- foreach(byte[] rawTrack in disk.Select(MarshalTrack)) { raw.Write(rawTrack, 0, rawTrack.Length); }
+ foreach(byte[] rawTrack in disk.Select(MarshalTrack)) raw.Write(rawTrack, 0, rawTrack.Length);
return raw.ToArray();
}
diff --git a/Floppy/AppleSony.cs b/Floppy/AppleSony.cs
index 2652024..2fc370c 100644
--- a/Floppy/AppleSony.cs
+++ b/Floppy/AppleSony.cs
@@ -43,7 +43,7 @@ namespace DiscImageChef.Decoders.Floppy
// Inside Macintosh, Volume II, ISBN 0-201-17732-3
///
- /// Methods and structures for Apple Sony GCR floppy decoding
+ /// Methods and structures for Apple Sony GCR floppy decoding
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -52,100 +52,100 @@ namespace DiscImageChef.Decoders.Floppy
public static class AppleSony
{
///
- /// GCR-encoded Apple Sony GCR floppy track
+ /// GCR-encoded Apple Sony GCR floppy track
///
public class RawTrack
{
///
- /// Track preamble, set to self-sync 0xFF, 36 bytes
+ /// Track preamble, set to self-sync 0xFF, 36 bytes
///
public byte[] gap;
public RawSector[] sectors;
}
///
- /// GCR-encoded Apple Sony GCR floppy sector
+ /// GCR-encoded Apple Sony GCR floppy sector
///
public class RawSector
{
///
- /// Address field
+ /// Address field
///
public RawAddressField addressField;
///
- /// Track preamble, set to self-sync 0xFF, 6 bytes
- ///
- public byte[] innerGap;
- ///
- /// Data field
+ /// Data field
///
public RawDataField dataField;
///
- /// Track preamble, set to self-sync 0xFF, unknown size
+ /// Track preamble, set to self-sync 0xFF, unknown size
///
public byte[] gap;
+ ///
+ /// Track preamble, set to self-sync 0xFF, 6 bytes
+ ///
+ public byte[] innerGap;
}
///
- /// GCR-encoded Apple Sony GCR floppy sector address field
+ /// GCR-encoded Apple Sony GCR floppy sector address field
///
public class RawAddressField
{
///
- /// Always 0xD5, 0xAA, 0x96
- ///
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] prologue;
- ///
- /// Encoded (decodedTrack & 0x3F)
- ///
- public byte track;
- ///
- /// Encoded sector number
- ///
- public byte sector;
- ///
- /// Encoded side number
- ///
- public byte side;
- ///
- /// Disk format
- ///
- public AppleEncodedFormat format;
- ///
- /// Checksum
+ /// Checksum
///
public byte checksum;
///
- /// Always 0xDE, 0xAA
+ /// Always 0xDE, 0xAA
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] public byte[] epilogue;
+ ///
+ /// Disk format
+ ///
+ public AppleEncodedFormat format;
+ ///
+ /// Always 0xD5, 0xAA, 0x96
+ ///
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] prologue;
+ ///
+ /// Encoded sector number
+ ///
+ public byte sector;
+ ///
+ /// Encoded side number
+ ///
+ public byte side;
+ ///
+ /// Encoded (decodedTrack & 0x3F)
+ ///
+ public byte track;
}
///
- /// GCR-encoded Apple ][ GCR floppy sector data field
+ /// GCR-encoded Apple ][ GCR floppy sector data field
///
public class RawDataField
{
///
- /// Always 0xD5, 0xAA, 0xAD
- ///
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] prologue;
- ///
- /// Spare, usually
- ///
- public byte spare;
- ///
- /// Encoded data bytes.
- ///
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 698)] public byte[] data;
- ///
- /// Checksum
+ /// Checksum
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] public byte[] checksum;
///
- /// Always 0xDE, 0xAA
+ /// Encoded data bytes.
+ ///
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 698)] public byte[] data;
+ ///
+ /// Always 0xDE, 0xAA
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] public byte[] epilogue;
+ ///
+ /// Always 0xD5, 0xAA, 0xAD
+ ///
+ [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] prologue;
+ ///
+ /// Spare, usually
+ ///
+ public byte spare;
}
public static byte[] DecodeSector(RawSector sector)
@@ -441,8 +441,7 @@ namespace DiscImageChef.Decoders.Floppy
MemoryStream raw = new MemoryStream();
raw.Write(track.gap, 0, track.gap.Length);
- foreach(byte[] rawSector in track.sectors.Select(MarshalSector))
- { raw.Write(rawSector, 0, rawSector.Length); }
+ foreach(byte[] rawSector in track.sectors.Select(MarshalSector)) raw.Write(rawSector, 0, rawSector.Length);
return raw.ToArray();
}
@@ -481,7 +480,7 @@ namespace DiscImageChef.Decoders.Floppy
if(disk == null) return null;
MemoryStream raw = new MemoryStream();
- foreach(byte[] rawTrack in disk.Select(MarshalTrack)) { raw.Write(rawTrack, 0, rawTrack.Length); }
+ foreach(byte[] rawTrack in disk.Select(MarshalTrack)) raw.Write(rawTrack, 0, rawTrack.Length);
return raw.ToArray();
}
diff --git a/Floppy/Commodore.cs b/Floppy/Commodore.cs
index 8c9aa52..ec417a8 100644
--- a/Floppy/Commodore.cs
+++ b/Floppy/Commodore.cs
@@ -36,7 +36,7 @@ using System.Runtime.InteropServices;
namespace DiscImageChef.Decoders.Floppy
{
///
- /// Methods and structures for Commodore GCR floppy decoding
+ /// Methods and structures for Commodore GCR floppy decoding
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -44,55 +44,55 @@ namespace DiscImageChef.Decoders.Floppy
public static class Commodore
{
///
- /// Decoded Commodore GCR sector header
+ /// Decoded Commodore GCR sector header
///
public struct SectorHeader
{
///
- /// Always 0x08
+ /// Always 0x08
///
public byte id;
///
- /// XOR of following fields
+ /// XOR of following fields
///
public byte checksum;
///
- /// Sector number
+ /// Sector number
///
public byte sector;
///
- /// Track number
+ /// Track number
///
public byte track;
///
- /// Format ID, unknown meaning
+ /// Format ID, unknown meaning
///
public ushort format;
///
- /// Filled with 0x0F
+ /// Filled with 0x0F
///
public ushort fill;
}
///
- /// Decoded Commodore GCR sector data
+ /// Decoded Commodore GCR sector data
///
public struct SectorData
{
///
- /// Always 0x07
+ /// Always 0x07
///
public byte id;
///
- /// User data
+ /// User data
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] public byte data;
///
- /// XOR of
+ /// XOR of
///
public byte checksum;
///
- /// Filled with 0x0F
+ /// Filled with 0x0F
///
public ushort fill;
}
diff --git a/Floppy/Enums.cs b/Floppy/Enums.cs
index 1fd6b9a..619064f 100644
--- a/Floppy/Enums.cs
+++ b/Floppy/Enums.cs
@@ -35,41 +35,41 @@ using System.Diagnostics.CodeAnalysis;
namespace DiscImageChef.Decoders.Floppy
{
///
- /// In-sector code for sector size
+ /// In-sector code for sector size
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum IBMSectorSizeCode : byte
{
///
- /// 128 bytes/sector
+ /// 128 bytes/sector
///
EighthKilo = 0,
///
- /// 256 bytes/sector
+ /// 256 bytes/sector
///
QuarterKilo = 1,
///
- /// 512 bytes/sector
+ /// 512 bytes/sector
///
HalfKilo = 2,
///
- /// 1024 bytes/sector
+ /// 1024 bytes/sector
///
Kilo = 3,
///
- /// 2048 bytes/sector
+ /// 2048 bytes/sector
///
TwiceKilo = 4,
///
- /// 4096 bytes/sector
+ /// 4096 bytes/sector
///
FriceKilo = 5,
///
- /// 8192 bytes/sector
+ /// 8192 bytes/sector
///
TwiceFriceKilo = 6,
///
- /// 16384 bytes/sector
+ /// 16384 bytes/sector
///
FricelyFriceKilo = 7
}
@@ -87,19 +87,19 @@ namespace DiscImageChef.Decoders.Floppy
public enum AppleEncodedFormat : byte
{
///
- /// Disk is an Apple II 3.5" disk
+ /// Disk is an Apple II 3.5" disk
///
AppleII = 0x96,
///
- /// Disk is an Apple Lisa 3.5" disk
+ /// Disk is an Apple Lisa 3.5" disk
///
Lisa = 0x97,
///
- /// Disk is an Apple Macintosh single-sided 3.5" disk
+ /// Disk is an Apple Macintosh single-sided 3.5" disk
///
MacSingleSide = 0x9A,
///
- /// Disk is an Apple Macintosh double-sided 3.5" disk
+ /// Disk is an Apple Macintosh double-sided 3.5" disk
///
MacDoubleSide = 0xD9
}
diff --git a/Floppy/ISO.cs b/Floppy/ISO.cs
index 9ee89f5..bd1e30b 100644
--- a/Floppy/ISO.cs
+++ b/Floppy/ISO.cs
@@ -46,7 +46,7 @@ namespace DiscImageChef.Decoders.Floppy
// ECMA-100
///
- /// Methods and structures for ISO floppy decoding (also used by Atari ST and others)
+ /// Methods and structures for ISO floppy decoding (also used by Atari ST and others)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -54,109 +54,109 @@ namespace DiscImageChef.Decoders.Floppy
public static class ISO
{
///
- /// ISO floppy track, also used by Atari ST and others
+ /// ISO floppy track, also used by Atari ST and others
///
public struct Track
{
///
- /// Start of track, 32 bytes set to 0x4E
+ /// Start of track, 32 bytes set to 0x4E
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public byte[] innerGap;
///
- /// Track sectors
+ /// Track sectors
///
public Sector[] sectors;
///
- /// Undefined size
+ /// Undefined size
///
public byte[] gap;
}
///
- /// Raw demodulated format for IBM System 34 floppies
+ /// Raw demodulated format for IBM System 34 floppies
///
public struct Sector
{
///
- /// Sector address mark
+ /// Sector address mark
///
public AddressMark addressMark;
///
- /// 22 bytes set to 0x4E, set to 0x22 on Commodore 1581
+ /// 22 bytes set to 0x4E, set to 0x22 on Commodore 1581
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 22)] public byte[] innerGap;
///
- /// Sector data block
+ /// Sector data block
///
public DataBlock dataBlock;
///
- /// Variable bytes set to 0x4E, ECMA defines 54
+ /// Variable bytes set to 0x4E, ECMA defines 54
///
public byte[] outerGap;
}
///
- /// Sector address mark for IBM System 34 floppies, contains sync word
+ /// Sector address mark for IBM System 34 floppies, contains sync word
///
public struct AddressMark
{
///
- /// 12 bytes set to 0
+ /// 12 bytes set to 0
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)] public byte[] zero;
///
- /// 3 bytes set to 0xA1
+ /// 3 bytes set to 0xA1
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] aone;
///
- /// Set to
+ /// Set to
///
public IBMIdType type;
///
- /// Track number
+ /// Track number
///
public byte track;
///
- /// Side number
+ /// Side number
///
public byte side;
///
- /// Sector number
+ /// Sector number
///
public byte sector;
///
- ///
+ ///
///
public IBMSectorSizeCode sectorSize;
///
- /// CRC16 from to end of
+ /// CRC16 from to end of
///
public ushort crc;
}
///
- /// Sector data block for IBM System 34 floppies
+ /// Sector data block for IBM System 34 floppies
///
public struct DataBlock
{
///
- /// 12 bytes set to 0
+ /// 12 bytes set to 0
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)] public byte[] zero;
///
- /// 3 bytes set to 0xA1
+ /// 3 bytes set to 0xA1
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] aone;
///
- /// Set to or to
+ /// Set to or to
///
public IBMIdType type;
///
- /// User data
+ /// User data
///
public byte[] data;
///
- /// CRC16 from to end of
+ /// CRC16 from to end of
///
public ushort crc;
}
diff --git a/Floppy/Perpendicular.cs b/Floppy/Perpendicular.cs
index 1499535..5ea3ae6 100644
--- a/Floppy/Perpendicular.cs
+++ b/Floppy/Perpendicular.cs
@@ -46,7 +46,7 @@ namespace DiscImageChef.Decoders.Floppy
// ECMA-100
///
- /// Methods and structures for perpendicular MFM floppy decoding
+ /// Methods and structures for perpendicular MFM floppy decoding
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -54,137 +54,137 @@ namespace DiscImageChef.Decoders.Floppy
public static class Perpendicular
{
///
- /// Perpendicular floppy track
+ /// Perpendicular floppy track
///
public struct Track
{
///
- /// Start of track
+ /// Start of track
///
public TrackPreamble trackStart;
///
- /// Track sectors
+ /// Track sectors
///
public Sector[] sectors;
///
- /// Undefined size
+ /// Undefined size
///
public byte[] gap;
}
///
- /// Raw demodulated format for perpendicular floppies
+ /// Raw demodulated format for perpendicular floppies
///
public struct Sector
{
///
- /// Sector address mark
+ /// Sector address mark
///
public AddressMark addressMark;
///
- /// 41 bytes set to 0x4E
+ /// 41 bytes set to 0x4E
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 41)] public byte[] innerGap;
///
- /// Sector data block
+ /// Sector data block
///
public DataBlock dataBlock;
///
- /// Variable-sized inter-sector gap, ECMA defines 83 bytes
+ /// Variable-sized inter-sector gap, ECMA defines 83 bytes
///
public byte[] outerGap;
}
///
- /// Start of IBM PC MFM floppy track
- /// Used by IBM PC, Apple Macintosh (high-density only), and a lot others
+ /// Start of IBM PC MFM floppy track
+ /// Used by IBM PC, Apple Macintosh (high-density only), and a lot others
///
public struct TrackPreamble
{
///
- /// Gap from index pulse, 80 bytes set to 0x4E
+ /// Gap from index pulse, 80 bytes set to 0x4E
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 80)] public byte[] gap;
///
- /// 12 bytes set to 0x00
+ /// 12 bytes set to 0x00
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)] public byte[] zero;
///
- /// 3 bytes set to 0xC2
+ /// 3 bytes set to 0xC2
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] ctwo;
///
- /// Set to
+ /// Set to
///
public IBMIdType type;
///
- /// Gap until first sector, 50 bytes to 0x4E
+ /// Gap until first sector, 50 bytes to 0x4E
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 50)] public byte[] gap1;
}
///
- /// Sector address mark for IBM System 34 floppies, contains sync word
+ /// Sector address mark for IBM System 34 floppies, contains sync word
///
public struct AddressMark
{
///
- /// 12 bytes set to 0
+ /// 12 bytes set to 0
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)] public byte[] zero;
///
- /// 3 bytes set to 0xA1
+ /// 3 bytes set to 0xA1
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] aone;
///
- /// Set to
+ /// Set to
///
public IBMIdType type;
///
- /// Track number
+ /// Track number
///
public byte track;
///
- /// Side number
+ /// Side number
///
public byte side;
///
- /// Sector number
+ /// Sector number
///
public byte sector;
///
- ///
+ ///
///
public IBMSectorSizeCode sectorSize;
///
- /// CRC16 from to end of
+ /// CRC16 from to end of
///
public ushort crc;
}
///
- /// Sector data block for IBM System 34 floppies
+ /// Sector data block for IBM System 34 floppies
///
public struct DataBlock
{
///
- /// 12 bytes set to 0
+ /// 12 bytes set to 0
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)] public byte[] zero;
///
- /// 3 bytes set to 0xA1
+ /// 3 bytes set to 0xA1
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] aone;
///
- /// Set to or to
+ /// Set to or to
///
public IBMIdType type;
///
- /// User data
+ /// User data
///
public byte[] data;
///
- /// CRC16 from to end of
+ /// CRC16 from to end of
///
public ushort crc;
}
diff --git a/Floppy/System34.cs b/Floppy/System34.cs
index e2765fb..bc9342b 100644
--- a/Floppy/System34.cs
+++ b/Floppy/System34.cs
@@ -46,7 +46,7 @@ namespace DiscImageChef.Decoders.Floppy
// ECMA-100
///
- /// Methods and structures for IBM System 34 floppy decoding
+ /// Methods and structures for IBM System 34 floppy decoding
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -54,138 +54,138 @@ namespace DiscImageChef.Decoders.Floppy
public static class System34
{
///
- /// Track format for IBM System 34 floppy
- /// Used by IBM PC, Apple Macintosh (high-density only), and a lot others
+ /// Track format for IBM System 34 floppy
+ /// Used by IBM PC, Apple Macintosh (high-density only), and a lot others
///
public struct Track
{
///
- /// Start of track
+ /// Start of track
///
public TrackPreamble trackStart;
///
- /// Track sectors
+ /// Track sectors
///
public Sector[] sectors;
///
- /// Undefined size
+ /// Undefined size
///
public byte[] gap;
}
///
- /// Start of IBM PC MFM floppy track
- /// Used by IBM PC, Apple Macintosh (high-density only), and a lot others
+ /// Start of IBM PC MFM floppy track
+ /// Used by IBM PC, Apple Macintosh (high-density only), and a lot others
///
public struct TrackPreamble
{
///
- /// Gap from index pulse, 80 bytes set to 0x4E
+ /// Gap from index pulse, 80 bytes set to 0x4E
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 80)] public byte[] gap;
///
- /// 12 bytes set to 0x00
+ /// 12 bytes set to 0x00
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)] public byte[] zero;
///
- /// 3 bytes set to 0xC2
+ /// 3 bytes set to 0xC2
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] ctwo;
///
- /// Set to
+ /// Set to
///
public IBMIdType type;
///
- /// Gap until first sector, 50 bytes to 0x4E
+ /// Gap until first sector, 50 bytes to 0x4E
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 50)] public byte[] gap1;
}
///
- /// Raw demodulated format for IBM System 34 floppies
+ /// Raw demodulated format for IBM System 34 floppies
///
public struct Sector
{
///
- /// Sector address mark
+ /// Sector address mark
///
public AddressMark addressMark;
///
- /// 22 bytes set to 0x4E, set to 0x22 on Commodore 1581
+ /// 22 bytes set to 0x4E, set to 0x22 on Commodore 1581
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 22)] public byte[] innerGap;
///
- /// Sector data block
+ /// Sector data block
///
public DataBlock dataBlock;
///
- /// Variable bytes set to 0x4E, ECMA defines 54
+ /// Variable bytes set to 0x4E, ECMA defines 54
///
public byte[] outerGap;
}
///
- /// Sector address mark for IBM System 34 floppies, contains sync word
+ /// Sector address mark for IBM System 34 floppies, contains sync word
///
public struct AddressMark
{
///
- /// 12 bytes set to 0
+ /// 12 bytes set to 0
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)] public byte[] zero;
///
- /// 3 bytes set to 0xA1
+ /// 3 bytes set to 0xA1
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] aone;
///
- /// Set to
+ /// Set to
///
public IBMIdType type;
///
- /// Track number
+ /// Track number
///
public byte track;
///
- /// Side number
+ /// Side number
///
public byte side;
///
- /// Sector number
+ /// Sector number
///
public byte sector;
///
- ///
+ ///
///
public IBMSectorSizeCode sectorSize;
///
- /// CRC16 from to end of
+ /// CRC16 from to end of
///
public ushort crc;
}
///
- /// Sector data block for IBM System 34 floppies
+ /// Sector data block for IBM System 34 floppies
///
public struct DataBlock
{
///
- /// 12 bytes set to 0
+ /// 12 bytes set to 0
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)] public byte[] zero;
///
- /// 3 bytes set to 0xA1
+ /// 3 bytes set to 0xA1
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] aone;
///
- /// Set to or to
+ /// Set to or to
///
public IBMIdType type;
///
- /// User data
+ /// User data
///
public byte[] data;
///
- /// CRC16 from to end of
+ /// CRC16 from to end of
///
public ushort crc;
}
diff --git a/Floppy/System3740.cs b/Floppy/System3740.cs
index fab31ab..41a884c 100644
--- a/Floppy/System3740.cs
+++ b/Floppy/System3740.cs
@@ -46,7 +46,7 @@ namespace DiscImageChef.Decoders.Floppy
// ECMA-100
///
- /// Methods and structures for IBM System 3740 floppy decoding
+ /// Methods and structures for IBM System 3740 floppy decoding
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -54,124 +54,124 @@ namespace DiscImageChef.Decoders.Floppy
public static class System3740
{
///
- /// Track format for IBM System 3740 floppy
+ /// Track format for IBM System 3740 floppy
///
public struct Track
{
///
- /// Start of track
+ /// Start of track
///
public TrackPreamble trackStart;
///
- /// Track sectors
+ /// Track sectors
///
public Sector[] sectors;
///
- /// Undefined size
+ /// Undefined size
///
public byte[] gap;
}
///
- /// Start of IBM PC FM floppy track
+ /// Start of IBM PC FM floppy track
///
public struct TrackPreamble
{
///
- /// Gap from index pulse, 80 bytes set to 0xFF
+ /// Gap from index pulse, 80 bytes set to 0xFF
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 40)] public byte[] gap;
///
- /// 6 bytes set to 0x00
+ /// 6 bytes set to 0x00
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)] public byte[] zero;
///
- /// Set to
+ /// Set to
///
public IBMIdType type;
///
- /// Gap until first sector, 26 bytes to 0xFF
+ /// Gap until first sector, 26 bytes to 0xFF
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 26)] public byte[] gap1;
}
///
- /// Raw demodulated format for IBM System 3740 floppies
+ /// Raw demodulated format for IBM System 3740 floppies
///
public struct Sector
{
///
- /// Sector address mark
+ /// Sector address mark
///
public AddressMark addressMark;
///
- /// 11 bytes set to 0xFF
+ /// 11 bytes set to 0xFF
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 11)] public byte[] innerGap;
///
- /// Sector data block
+ /// Sector data block
///
public DataBlock dataBlock;
///
- /// Variable bytes set to 0xFF
+ /// Variable bytes set to 0xFF
///
public byte[] outerGap;
}
///
- /// Sector address mark for IBM System 3740 floppies, contains sync word
+ /// Sector address mark for IBM System 3740 floppies, contains sync word
///
public struct AddressMark
{
///
- /// 6 bytes set to 0
+ /// 6 bytes set to 0
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)] public byte[] zero;
///
- /// Set to
+ /// Set to
///
public IBMIdType type;
///
- /// Track number
+ /// Track number
///
public byte track;
///
- /// Side number
+ /// Side number
///
public byte side;
///
- /// Sector number
+ /// Sector number
///
public byte sector;
///
- ///
+ ///
///
public IBMSectorSizeCode sectorSize;
///
- /// CRC16 from to end of
+ /// CRC16 from to end of
///
public ushort crc;
}
///
- /// Sector data block for IBM System 3740 floppies
+ /// Sector data block for IBM System 3740 floppies
///
public struct DataBlock
{
///
- /// 12 bytes set to 0
+ /// 12 bytes set to 0
///
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)] public byte[] zero;
///
- /// Set to or to
+ /// Set to or to
///
public IBMIdType type;
///
- /// User data
+ /// User data
///
public byte[] data;
///
- /// CRC16 from to end of
+ /// CRC16 from to end of
///
public ushort crc;
}
diff --git a/LisaTag.cs b/LisaTag.cs
index d318860..2a56f01 100644
--- a/LisaTag.cs
+++ b/LisaTag.cs
@@ -41,7 +41,7 @@ namespace DiscImageChef.Decoders
public static class LisaTag
{
///
- /// LisaOS tag as stored on Apple Profile and FileWare disks (20 bytes)
+ /// LisaOS tag as stored on Apple Profile and FileWare disks (20 bytes)
///
public struct ProfileTag
{
@@ -56,31 +56,31 @@ namespace DiscImageChef.Decoders
/// 0x04, file ID
public short FileId;
///
- /// 0x06 bit 7, checksum valid?
+ /// 0x06 bit 7, checksum valid?
///
public bool ValidChk;
///
- /// 0x06 bits 6 to 0, used bytes in block
+ /// 0x06 bits 6 to 0, used bytes in block
///
public ushort UsedBytes;
///
- /// 0x08, 3 bytes, absolute page number
+ /// 0x08, 3 bytes, absolute page number
///
public uint AbsPage;
///
- /// 0x0B, checksum of data
+ /// 0x0B, checksum of data
///
public byte Checksum;
///
- /// 0x0C, relative page number
+ /// 0x0C, relative page number
///
public ushort RelPage;
///
- /// 0x0E, 3 bytes, next block, 0xFFFFFF if it's last block
+ /// 0x0E, 3 bytes, next block, 0xFFFFFF if it's last block
///
public uint NextBlock;
///
- /// 0x11, 3 bytes, previous block, 0xFFFFFF if it's first block
+ /// 0x11, 3 bytes, previous block, 0xFFFFFF if it's first block
///
public uint PrevBlock;
@@ -91,7 +91,7 @@ namespace DiscImageChef.Decoders
}
///
- /// LisaOS tag as stored on Priam DataTower disks (24 bytes)
+ /// LisaOS tag as stored on Priam DataTower disks (24 bytes)
///
public struct PriamTag
{
@@ -106,35 +106,35 @@ namespace DiscImageChef.Decoders
/// 0x04, file ID
public short FileId;
///
- /// 0x06 bit 7, checksum valid?
+ /// 0x06 bit 7, checksum valid?
///
public bool ValidChk;
///
- /// 0x06 bits 6 to 0, used bytes in block
+ /// 0x06 bits 6 to 0, used bytes in block
///
public ushort UsedBytes;
///
- /// 0x08, 3 bytes, absolute page number
+ /// 0x08, 3 bytes, absolute page number
///
public uint AbsPage;
///
- /// 0x0B, checksum of data
+ /// 0x0B, checksum of data
///
public byte Checksum;
///
- /// 0x0C, relative page number
+ /// 0x0C, relative page number
///
public ushort RelPage;
///
- /// 0x0E, 3 bytes, next block, 0xFFFFFF if it's last block
+ /// 0x0E, 3 bytes, next block, 0xFFFFFF if it's last block
///
public uint NextBlock;
///
- /// 0x11, 3 bytes, previous block, 0xFFFFFF if it's first block
+ /// 0x11, 3 bytes, previous block, 0xFFFFFF if it's first block
///
public uint PrevBlock;
///
- /// 0x14, disk size
+ /// 0x14, disk size
///
public uint DiskSize;
@@ -145,7 +145,7 @@ namespace DiscImageChef.Decoders
}
///
- /// LisaOS tag as stored on Apple Sony disks (12 bytes)
+ /// LisaOS tag as stored on Apple Sony disks (12 bytes)
///
public struct SonyTag
{
@@ -160,15 +160,15 @@ namespace DiscImageChef.Decoders
/// 0x04, file ID
public short FileId;
///
- /// 0x06, relative page number
+ /// 0x06, relative page number
///
public ushort RelPage;
///
- /// 0x08, 3 bytes, next block, 0x7FF if it's last block, 0x8000 set if block is valid
+ /// 0x08, 3 bytes, next block, 0x7FF if it's last block, 0x8000 set if block is valid
///
public ushort NextBlock;
///
- /// 0x0A, 3 bytes, previous block, 0x7FF if it's first block
+ /// 0x0A, 3 bytes, previous block, 0x7FF if it's first block
///
public ushort PrevBlock;
diff --git a/PCMCIA/CIS.cs b/PCMCIA/CIS.cs
index 5afa75d..9bbf5ae 100644
--- a/PCMCIA/CIS.cs
+++ b/PCMCIA/CIS.cs
@@ -271,7 +271,8 @@ namespace DiscImageChef.Decoders.PCMCIA
else
{
sb.AppendLine("\tAdditional information:");
- foreach(string info in tuple.AdditionalInformation.Where(info => !string.IsNullOrEmpty(info))) sb.AppendFormat("\t\t{0}", info).AppendLine();
+ foreach(string info in tuple.AdditionalInformation.Where(info => !string.IsNullOrEmpty(info)))
+ sb.AppendFormat("\t\t{0}", info).AppendLine();
}
return sb.ToString();
diff --git a/PCMCIA/Enums.cs b/PCMCIA/Enums.cs
index 74c0a88..0e67fc5 100644
--- a/PCMCIA/Enums.cs
+++ b/PCMCIA/Enums.cs
@@ -35,169 +35,169 @@ using System.Diagnostics.CodeAnalysis;
namespace DiscImageChef.Decoders.PCMCIA
{
///
- /// Tuple codes.
+ /// Tuple codes.
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum TupleCodes : byte
{
///
- /// Checksum control
+ /// Checksum control
///
CISTPL_CHECKSUM = 0x10,
///
- /// End-of-chain
+ /// End-of-chain
///
CISTPL_END = 0xFF,
///
- /// Indirect access PC Card memory
+ /// Indirect access PC Card memory
///
CISTPL_INDIRECT = 0x03,
///
- /// Link-target-control
+ /// Link-target-control
///
CISTPL_LINKTARGET = 0x13,
///
- /// Longlink to attribute memory
+ /// Longlink to attribute memory
///
CISTPL_LONGLINK_A = 0x11,
///
- /// Longlink to common memory
+ /// Longlink to common memory
///
CISTPL_LONGLINK_C = 0x12,
///
- /// Longlink to next chain on a Cardbus PC Card
+ /// Longlink to next chain on a Cardbus PC Card
///
CISTPL_LONGLINK_CB = 0x02,
///
- /// Longlink to function specific chains
+ /// Longlink to function specific chains
///
CISTPL_LONGLINK_MFC = 0x06,
///
- /// No-link to common memory
+ /// No-link to common memory
///
CISTPL_NO_LINK = 0x14,
///
- /// Null tuple
+ /// Null tuple
///
CISTPL_NULL = 0x00,
///
- /// Alternate language string
+ /// Alternate language string
///
CISTPL_ALTSTR = 0x16,
///
- /// Common memory device information
+ /// Common memory device information
///
CISTPL_DEVICE = 0x01,
///
- /// Attribute memory device information
+ /// Attribute memory device information
///
CISTPL_DEVICE_A = 0x17,
///
- /// Other operating conditions information for attribute memory
+ /// Other operating conditions information for attribute memory
///
CISTPL_DEVICE_OA = 0x1D,
///
- /// Other operating conditions information for common memory
+ /// Other operating conditions information for common memory
///
CISTPL_DEVICE_OC = 0x1C,
///
- /// Device geometry information for common memory
+ /// Device geometry information for common memory
///
CISTPL_DEVICEGEO = 0x1E,
///
- /// Device geometry information for attribute memory
+ /// Device geometry information for attribute memory
///
CISTPL_DEVICEGEO_A = 0x1F,
///
- /// Extended common memory device information
+ /// Extended common memory device information
///
CISTPL_EXTDEVIC = 0x09,
///
- /// Function extensions
+ /// Function extensions
///
CISTPL_FUNCE = 0x22,
///
- /// Function class identification
+ /// Function class identification
///
CISTPL_FUNCID = 0x21,
///
- /// JEDEC programming information for attribute memory
+ /// JEDEC programming information for attribute memory
///
CISTPL_JEDEC_A = 0x19,
///
- /// JEDEC programming information for common memory
+ /// JEDEC programming information for common memory
///
CISTPL_JEDEC_C = 0x18,
///
- /// Manufacturer identification string
+ /// Manufacturer identification string
///
CISTPL_MANFID = 0x20,
///
- /// Level 1 version/product information
+ /// Level 1 version/product information
///
CISTPL_VERS_1 = 0x15,
///
- /// BAR for a CardBus PC Card
+ /// BAR for a CardBus PC Card
///
CISTPL_BAR = 0x07,
///
- /// Configuration-table-entry
+ /// Configuration-table-entry
///
CISTPL_CFTABLE_ENTRY = 0x1B,
///
- /// Configuration-table-entry for a CardBus PC Card
+ /// Configuration-table-entry for a CardBus PC Card
///
CISTPL_CFTABLE_ENTRY_CB = 0x05,
///
- /// Configuration tuple for a 16-bit PC Card
+ /// Configuration tuple for a 16-bit PC Card
///
CISTPL_CONFIG = 0x1A,
///
- /// Configuration tuple for a CardBus PC Card
+ /// Configuration tuple for a CardBus PC Card
///
CISTPL_CONFIG_CB = 0x04,
///
- /// Function state save/restore definition
+ /// Function state save/restore definition
///
CISTPL_PWR_MGMNT = 0x08,
///
- /// Battery replacement date
+ /// Battery replacement date
///
CISTPL_BATTERY = 0x45,
///
- /// Card initialization date
+ /// Card initialization date
///
CISTPL_DATE = 0x44,
///
- /// Level 2 version/product information
+ /// Level 2 version/product information
///
CISTPL_VERS_2 = 0x40,
///
- /// Byte ordering for disk-like partitions
+ /// Byte ordering for disk-like partitions
///
CISTPL_BYTEORDER = 0x43,
///
- /// Data recording format for common memory
+ /// Data recording format for common memory
///
CISTPL_FORMAT = 0x41,
///
- /// Data recording format for attribute memory
+ /// Data recording format for attribute memory
///
CISTPL_FORMAT_A = 0x47,
///
- /// Partition geometry
+ /// Partition geometry
///
CISTPL_GEOMETRY = 0x42,
///
- /// Software interleaving
+ /// Software interleaving
///
CISTPL_SWIL = 0x23,
///
- /// Partition organization
+ /// Partition organization
///
CISTPL_ORG = 0x46,
///
- /// Special purpose
+ /// Special purpose
///
CISTPL_SPCL = 0x90
}
@@ -206,43 +206,43 @@ namespace DiscImageChef.Decoders.PCMCIA
public enum DeviceTypeCodes : byte
{
///
- /// No device, used to designate a hole
+ /// No device, used to designate a hole
///
DTYPE_NULL = 0,
///
- /// Masked ROM
+ /// Masked ROM
///
DTYPE_ROM = 1,
///
- /// One-type-programmable ROM
+ /// One-type-programmable ROM
///
DTYPE_OTPROM = 2,
///
- /// UV-Erasable Programmable ROM
+ /// UV-Erasable Programmable ROM
///
DTYPE_EPROM = 3,
///
- /// Electronically-Erasable Programmable ROM
+ /// Electronically-Erasable Programmable ROM
///
DTYPE_EEPROM = 4,
///
- /// Flash memory
+ /// Flash memory
///
DTYPE_FLASH = 5,
///
- /// Static RAM
+ /// Static RAM
///
DTYPE_SRAM = 6,
///
- /// Dynamic RAM
+ /// Dynamic RAM
///
DTYPE_DRAM = 7,
///
- /// Function-specific memory address range
+ /// Function-specific memory address range
///
DTYPE_FUNCSPEC = 13,
///
- /// Extended type follows
+ /// Extended type follows
///
DTYPE_EXTEND = 14
}
@@ -251,27 +251,27 @@ namespace DiscImageChef.Decoders.PCMCIA
public enum DeviceSpeedCodes : byte
{
///
- /// No device
+ /// No device
///
DSPEED_NULL = 0,
///
- /// 250 ns
+ /// 250 ns
///
DSPEED_250NS = 1,
///
- /// 200 ns
+ /// 200 ns
///
DSPEED_200NS = 2,
///
- /// 150 ns
+ /// 150 ns
///
DSPEED_150NS = 3,
///
- /// 100 ns
+ /// 100 ns
///
DSPEED_100NS = 4,
///
- /// Extended speed follows
+ /// Extended speed follows
///
DSPEED_EXT = 7
}
diff --git a/PCMCIA/Types.cs b/PCMCIA/Types.cs
index 18767aa..3e7d93d 100644
--- a/PCMCIA/Types.cs
+++ b/PCMCIA/Types.cs
@@ -35,7 +35,7 @@ using System.Diagnostics.CodeAnalysis;
namespace DiscImageChef.Decoders.PCMCIA
{
///
- /// Basic classure of a PCMCIA tuple
+ /// Basic classure of a PCMCIA tuple
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -48,7 +48,7 @@ namespace DiscImageChef.Decoders.PCMCIA
}
///
- /// Checksum tuple
+ /// Checksum tuple
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -56,29 +56,29 @@ namespace DiscImageChef.Decoders.PCMCIA
public class ChecksumTuple
{
///
- ///
+ ///
///
public TupleCodes Code;
///
- /// Link to next tuple
+ /// Link to next tuple
///
public byte Link;
///
- /// Offset to region to be checksummed
+ /// Offset to region to be checksummed
///
public short Offset;
///
- /// Length of region to be checksummed
+ /// Length of region to be checksummed
///
public ushort Length;
///
- /// Modulo-256 sum of region
+ /// Modulo-256 sum of region
///
public byte Checksum;
}
///
- /// Indirect Access PC Card Memory
+ /// Indirect Access PC Card Memory
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -86,17 +86,17 @@ namespace DiscImageChef.Decoders.PCMCIA
public class IndirectTuple
{
///
- ///
+ ///
///
public TupleCodes Code;
///
- /// Link to next tuple
+ /// Link to next tuple
///
public byte Link;
}
///
- /// Link target tuple
+ /// Link target tuple
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -104,21 +104,21 @@ namespace DiscImageChef.Decoders.PCMCIA
public class LinkTargetTuple
{
///
- ///
+ ///
///
public TupleCodes Code;
///
- /// Link to next tuple
+ /// Link to next tuple
///
public byte Link;
///
- /// 'C''I''S' in ASCII
+ /// 'C''I''S' in ASCII
///
public byte[] Tag;
}
///
- /// 16-bit PC Card Long Link Tuple
+ /// 16-bit PC Card Long Link Tuple
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -126,15 +126,16 @@ namespace DiscImageChef.Decoders.PCMCIA
public class LongLinkTuple
{
///
- /// or or
+ /// or or
+ ///
///
public TupleCodes Code;
///
- /// Link to next tuple
+ /// Link to next tuple
///
public byte Link;
///
- /// Target address
+ /// Target address
///
public uint Address;
}
@@ -146,17 +147,17 @@ namespace DiscImageChef.Decoders.PCMCIA
public class ConfigurationAddress
{
///
- /// Target address space, 0 = attribute, 1 = common
+ /// Target address space, 0 = attribute, 1 = common
///
public byte TargetAddressSpace;
///
- /// Target address
+ /// Target address
///
public uint Address;
}
///
- /// Multiple function link tuple
+ /// Multiple function link tuple
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -164,19 +165,19 @@ namespace DiscImageChef.Decoders.PCMCIA
public class MultipleFunctionLinkTuple
{
///
- ///
+ ///
///
public TupleCodes Code;
///
- /// Link to next tuple
+ /// Link to next tuple
///
public byte Link;
///
- /// How many functions follow
+ /// How many functions follow
///
public byte NumberFunctions;
///
- /// Link to more configuration registers
+ /// Link to more configuration registers
///
public ConfigurationAddress[] Addresses;
}
@@ -187,11 +188,11 @@ namespace DiscImageChef.Decoders.PCMCIA
public class NoLinkTuple
{
///
- ///
+ ///
///
public TupleCodes Code;
///
- /// Link to next tuple
+ /// Link to next tuple
///
public byte Link;
}
@@ -202,15 +203,16 @@ namespace DiscImageChef.Decoders.PCMCIA
public class AlternateStringTuple
{
///
- ///
+ ///
///
public TupleCodes Code;
///
- /// Link to next tuple
+ /// Link to next tuple
///
public byte Link;
///
- /// Array of strings. On memory they're preceded by an ISO Escape Code indicating codepage. Here they're stored as Unicode, so no need for it.
+ /// Array of strings. On memory they're preceded by an ISO Escape Code indicating codepage. Here they're stored as
+ /// Unicode, so no need for it.
///
public string[] Strings;
}
@@ -222,15 +224,15 @@ namespace DiscImageChef.Decoders.PCMCIA
public class ExtendedDeviceSpeed
{
///
- /// Another extended follows
+ /// Another extended follows
///
public bool Extended;
///
- /// Speed mantisa
+ /// Speed mantisa
///
public byte Mantissa;
///
- /// Speed exponent
+ /// Speed exponent
///
public byte Exponent;
}
@@ -241,31 +243,31 @@ namespace DiscImageChef.Decoders.PCMCIA
public struct DeviceInfo
{
///
- /// Device type code
+ /// Device type code
///
public DeviceTypeCodes Type;
///
- /// Write protected
+ /// Write protected
///
public bool WPS;
///
- /// Speed code
+ /// Speed code
///
public DeviceSpeedCodes Speed;
///
- /// Extended speeds
+ /// Extended speeds
///
public ExtendedDeviceSpeed[] ExtendedSpeeds;
///
- /// Extended types
+ /// Extended types
///
public byte[] ExtendedTypes;
///
- /// Size in units - 1
+ /// Size in units - 1
///
public byte Units;
///
- /// Code to define units unit
+ /// Code to define units unit
///
public byte SizeCode;
}
@@ -276,15 +278,15 @@ namespace DiscImageChef.Decoders.PCMCIA
public class DeviceTuple
{
///
- /// or
+ /// or
///
public TupleCodes Code;
///
- /// Link to next tuple
+ /// Link to next tuple
///
public byte Link;
///
- /// Array of device information bytes
+ /// Array of device information bytes
///
public DeviceInfo[] Infos;
}
@@ -295,15 +297,15 @@ namespace DiscImageChef.Decoders.PCMCIA
public struct OtherConditionInfo
{
///
- /// True if another other condition info follows
+ /// True if another other condition info follows
///
public bool Extended;
///
- /// Vcc used
+ /// Vcc used
///
public byte VccUsed;
///
- /// Supports WAIT# signal
+ /// Supports WAIT# signal
///
public bool MWAIT;
}
@@ -314,19 +316,19 @@ namespace DiscImageChef.Decoders.PCMCIA
public class OtherConditionTuple
{
///
- /// or
+ /// or
///
public TupleCodes Code;
///
- /// Link to next tuple
+ /// Link to next tuple
///
public byte Link;
///
- /// Array of other condition information bytes
+ /// Array of other condition information bytes
///
public OtherConditionInfo[] OtherConditionInfos;
///
- /// Array of device information bytes
+ /// Array of device information bytes
///
public DeviceInfo[] Infos;
}
@@ -337,31 +339,31 @@ namespace DiscImageChef.Decoders.PCMCIA
public struct DeviceGeometry
{
///
- /// 1 << n-1 bytes, 2 = 16-bit PC Card, 3 = CardBus PC Card
+ /// 1 << n-1 bytes, 2 = 16-bit PC Card, 3 = CardBus PC Card
///
public byte CardInterface;
///
- /// Erase block size in 1 << n-1 increments of wide accesses.
- /// If n == 4, and == 16, erase block size = 32 * 4 = 128 bytes
+ /// Erase block size in 1 << n-1 increments of wide accesses.
+ /// If n == 4, and == 16, erase block size = 32 * 4 = 128 bytes
///
public byte EraseBlockSize;
///
- /// Read block size in 1 << n-1 increments of wide accesses.
- /// If n == 4, and == 16, read block size = 32 * 4 = 128 bytes
+ /// Read block size in 1 << n-1 increments of wide accesses.
+ /// If n == 4, and == 16, read block size = 32 * 4 = 128 bytes
///
public byte ReadBlockSize;
///
- /// Write block size in 1 << n-1 increments of wide accesses.
- /// If n == 4, and == 16, write block size = 32 * 4 = 128 bytes
+ /// Write block size in 1 << n-1 increments of wide accesses.
+ /// If n == 4, and == 16, write block size = 32 * 4 = 128 bytes
///
public byte WriteBlockSize;
///
- /// Device partitioning in granularity of 1 << n-1 erase blocks
- /// If n == 4, and erase block is 128 bytes, partitions must be aligned to 32 erase block, or 4096 bytes
+ /// Device partitioning in granularity of 1 << n-1 erase blocks
+ /// If n == 4, and erase block is 128 bytes, partitions must be aligned to 32 erase block, or 4096 bytes
///
public byte Partitions;
///
- /// Card employs a multiple of 1 << n-1 times interleaving the entire memory arrays
+ /// Card employs a multiple of 1 << n-1 times interleaving the entire memory arrays
///
public byte Interleaving;
}
@@ -373,15 +375,15 @@ namespace DiscImageChef.Decoders.PCMCIA
public class DeviceGeometryTuple
{
///
- /// or
+ /// or
///
public TupleCodes Code;
///
- /// Link to next tuple
+ /// Link to next tuple
///
public byte Link;
///
- /// Array of device geometries
+ /// Array of device geometries
///
public DeviceGeometry[] Geometries;
}
@@ -392,23 +394,23 @@ namespace DiscImageChef.Decoders.PCMCIA
public class FunctionIdentificationTuple
{
///
- ///
+ ///
///
public TupleCodes Code;
///
- /// Link to next tuple
+ /// Link to next tuple
///
public byte Link;
///
- /// Function code
+ /// Function code
///
public FunctionCodes Function;
///
- /// Device contains boot ROM
+ /// Device contains boot ROM
///
public bool ROM;
///
- /// Device wants to be part of power-on-self-test
+ /// Device wants to be part of power-on-self-test
///
public bool POST;
}
@@ -420,19 +422,19 @@ namespace DiscImageChef.Decoders.PCMCIA
public class ManufacturerIdentificationTuple
{
///
- ///
+ ///
///
public TupleCodes Code;
///
- /// Link to next tuple
+ /// Link to next tuple
///
public byte Link;
///
- /// Manufacturer ID
+ /// Manufacturer ID
///
public ushort ManufacturerID;
///
- /// Card ID
+ /// Card ID
///
public ushort CardID;
}
@@ -444,31 +446,31 @@ namespace DiscImageChef.Decoders.PCMCIA
public class Level1VersionTuple
{
///
- ///
+ ///
///
public TupleCodes Code;
///
- /// Link to next tuple
+ /// Link to next tuple
///
public byte Link;
///
- /// Major version of standard compliance
+ /// Major version of standard compliance
///
public byte MajorVersion;
///
- /// Minor version of standard compliance
+ /// Minor version of standard compliance
///
public byte MinorVersion;
///
- /// Manufacturer string
+ /// Manufacturer string
///
public string Manufacturer;
///
- /// Product string
+ /// Product string
///
public string Product;
///
- /// Additional information strings
+ /// Additional information strings
///
public string[] AdditionalInformation;
}
@@ -479,43 +481,43 @@ namespace DiscImageChef.Decoders.PCMCIA
public class Level2VersionTuple
{
///
- ///
+ ///
///
public TupleCodes Code;
///
- /// Link to next tuple
+ /// Link to next tuple
///
public byte Link;
///
- /// Version of this classure
+ /// Version of this classure
///
public byte StructureVersion;
///
- /// Level of compliance
+ /// Level of compliance
///
public byte Compliance;
///
- /// Address of first data byte
+ /// Address of first data byte
///
public ushort Address;
///
- /// Vendor-specific byte
+ /// Vendor-specific byte
///
public byte VendorSpecific1;
///
- /// Vendor-specific byte
+ /// Vendor-specific byte
///
public byte VendorSpecific2;
///
- /// Number of copies of CIS present
+ /// Number of copies of CIS present
///
public byte CISCopies;
///
- /// Vendor of software that formatted the card
+ /// Vendor of software that formatted the card
///
public string OEM;
///
- /// Informational message about the card
+ /// Informational message about the card
///
public string Information;
}
@@ -526,23 +528,23 @@ namespace DiscImageChef.Decoders.PCMCIA
public class GeometryTuple
{
///
- ///
+ ///
///
public TupleCodes Code;
///
- /// Link to next tuple
+ /// Link to next tuple
///
public byte Link;
///
- /// Sectors per track
+ /// Sectors per track
///
public byte SectorsPerTrack;
///
- /// Tracks per cylinder
+ /// Tracks per cylinder
///
public byte TracksPerCylinder;
///
- /// Cylinders
+ /// Cylinders
///
public ushort Cylinders;
}
diff --git a/SCSI/DiscStructureCapabilities.cs b/SCSI/DiscStructureCapabilities.cs
index ef202bb..e545266 100644
--- a/SCSI/DiscStructureCapabilities.cs
+++ b/SCSI/DiscStructureCapabilities.cs
@@ -44,15 +44,15 @@ namespace DiscImageChef.Decoders.SCSI
public struct Capability
{
///
- /// READ/SEND DISC STRUCTURE format code
+ /// READ/SEND DISC STRUCTURE format code
///
public byte FormatCode;
///
- /// Supported in SEND DISC STRUCTURE
+ /// Supported in SEND DISC STRUCTURE
///
public bool SDS;
///
- /// Supported in READ DISC STRUCTURE
+ /// Supported in READ DISC STRUCTURE
///
public bool RDS;
}
diff --git a/SCSI/EVPD.cs b/SCSI/EVPD.cs
index 752a1ff..cb0b0c1 100644
--- a/SCSI/EVPD.cs
+++ b/SCSI/EVPD.cs
@@ -48,7 +48,7 @@ namespace DiscImageChef.Decoders.SCSI
public static class EVPD
{
///
- /// Decodes VPD page 0x00: Supported VPD pages
+ /// Decodes VPD page 0x00: Supported VPD pages
///
/// A byte array containing all supported VPD pages.
/// Page 0x00.
@@ -66,7 +66,7 @@ namespace DiscImageChef.Decoders.SCSI
}
///
- /// Decides VPD pages 0x01 to 0x7F: ASCII Information
+ /// Decides VPD pages 0x01 to 0x7F: ASCII Information
///
/// An ASCII string with the contents of the page.
/// Page 0x01-0x7F.
@@ -86,7 +86,7 @@ namespace DiscImageChef.Decoders.SCSI
}
///
- /// Decodes VPD page 0x80: Unit Serial Number
+ /// Decodes VPD page 0x80: Unit Serial Number
///
/// The unit serial number.
/// Page 0x80.
@@ -105,37 +105,37 @@ namespace DiscImageChef.Decoders.SCSI
#region EVPD Page 0x81: Implemented operating definition page
///
- /// Implemented operating definition page
- /// Page code 0x81
+ /// Implemented operating definition page
+ /// Page code 0x81
///
public struct Page_81
{
///
- /// The peripheral qualifier.
+ /// The peripheral qualifier.
///
public PeripheralQualifiers PeripheralQualifier;
///
- /// The type of the peripheral device.
+ /// The type of the peripheral device.
///
public PeripheralDeviceTypes PeripheralDeviceType;
///
- /// The page code.
+ /// The page code.
///
public byte PageCode;
///
- /// The length of the page.
+ /// The length of the page.
///
public byte PageLength;
///
- /// Current operating definition
+ /// Current operating definition
///
public ScsiDefinitions Current;
///
- /// Default operating definition
+ /// Default operating definition
///
public ScsiDefinitions Default;
///
- /// Support operating definition list
+ /// Support operating definition list
///
public ScsiDefinitions[] Supported;
}
@@ -217,7 +217,7 @@ namespace DiscImageChef.Decoders.SCSI
#endregion EVPD Page 0x81: Implemented operating definition page
///
- /// Decodes VPD page 0x82: ASCII implemented operating definition
+ /// Decodes VPD page 0x82: ASCII implemented operating definition
///
/// ASCII implemented operating definition.
/// Page 0x82.
@@ -238,15 +238,15 @@ namespace DiscImageChef.Decoders.SCSI
public enum IdentificationAssociation : byte
{
///
- /// Identifier field is associated with the addressed logical unit
+ /// Identifier field is associated with the addressed logical unit
///
LogicalUnit = 0,
///
- /// Identifier field is associated with the target port
+ /// Identifier field is associated with the target port
///
TargetPort = 1,
///
- /// Identifier field is associated with the target device that contains the LUN
+ /// Identifier field is associated with the target device that contains the LUN
///
TargetDevice = 2
}
@@ -254,15 +254,15 @@ namespace DiscImageChef.Decoders.SCSI
public enum IdentificationCodeSet : byte
{
///
- /// Identifier is binary
+ /// Identifier is binary
///
Binary = 1,
///
- /// Identifier is pure ASCII
+ /// Identifier is pure ASCII
///
ASCII = 2,
///
- /// Identifier is in UTF-8
+ /// Identifier is in UTF-8
///
UTF8 = 3
}
@@ -270,43 +270,43 @@ namespace DiscImageChef.Decoders.SCSI
public enum IdentificationTypes : byte
{
///
- /// No assignment authority was used and there is no guarantee the identifier is unique
+ /// No assignment authority was used and there is no guarantee the identifier is unique
///
NoAuthority = 0,
///
- /// Concatenates vendor and product identifier from INQUIRY plus unit serial number from page 80h
+ /// Concatenates vendor and product identifier from INQUIRY plus unit serial number from page 80h
///
Inquiry = 1,
///
- /// Identifier is a 64-bit IEEE EUI-64, or extended
+ /// Identifier is a 64-bit IEEE EUI-64, or extended
///
EUI = 2,
///
- /// Identifier is compatible with 64-bit FC-PH Name_Identifier
+ /// Identifier is compatible with 64-bit FC-PH Name_Identifier
///
NAA = 3,
///
- /// Identifier to relative port in device
+ /// Identifier to relative port in device
///
Relative = 4,
///
- /// Identifier to group of target ports in device
+ /// Identifier to group of target ports in device
///
TargetPortGroup = 5,
///
- /// Identifier to group of target LUNs in device
+ /// Identifier to group of target LUNs in device
///
LogicalUnitGroup = 6,
///
- /// MD5 of device identification values
+ /// MD5 of device identification values
///
MD5 = 7,
///
- /// SCSI name string
+ /// SCSI name string
///
SCSI = 8,
///
- /// Protocol specific port identifier
+ /// Protocol specific port identifier
///
ProtocolSpecific = 9
}
@@ -314,63 +314,63 @@ namespace DiscImageChef.Decoders.SCSI
public struct IdentificatonDescriptor
{
///
- /// Protocol identifier
+ /// Protocol identifier
///
public ProtocolIdentifiers ProtocolIdentifier;
///
- /// Defines how the identifier is stored
+ /// Defines how the identifier is stored
///
public IdentificationCodeSet CodeSet;
///
- /// Set if protocol identifier is valid
+ /// Set if protocol identifier is valid
///
public bool PIV;
///
- /// Identifies which decide the identifier associates with
+ /// Identifies which decide the identifier associates with
///
public IdentificationAssociation Association;
///
- /// Defines the type of the identifier
+ /// Defines the type of the identifier
///
public IdentificationTypes Type;
///
- /// Length of the identifier
+ /// Length of the identifier
///
public byte Length;
///
- /// Identifier as a string if applicable
+ /// Identifier as a string if applicable
///
public string ASCII;
///
- /// Binary identifier
+ /// Binary identifier
///
public byte[] Binary;
}
///
- /// Device identification page
- /// Page code 0x83
+ /// Device identification page
+ /// Page code 0x83
///
public struct Page_83
{
///
- /// The peripheral qualifier.
+ /// The peripheral qualifier.
///
public PeripheralQualifiers PeripheralQualifier;
///
- /// The type of the peripheral device.
+ /// The type of the peripheral device.
///
public PeripheralDeviceTypes PeripheralDeviceType;
///
- /// The page code.
+ /// The page code.
///
public byte PageCode;
///
- /// The length of the page.
+ /// The length of the page.
///
public byte PageLength;
///
- /// The descriptors.
+ /// The descriptors.
///
public IdentificatonDescriptor[] Descriptors;
}
@@ -390,7 +390,6 @@ namespace DiscImageChef.Decoders.SCSI
PageLength = (byte)(pageResponse[3] + 4)
};
-
int position = 4;
List descriptors = new List();
@@ -409,12 +408,16 @@ namespace DiscImageChef.Decoders.SCSI
if(descriptor.Length + position + 4 >= pageResponse.Length)
descriptor.Length = (byte)(pageResponse.Length - position - 4);
Array.Copy(pageResponse, position + 4, descriptor.Binary, 0, descriptor.Length);
- switch(descriptor.CodeSet) {
- case IdentificationCodeSet.ASCII: descriptor.ASCII = StringHandlers.CToString(descriptor.Binary);
+ switch(descriptor.CodeSet)
+ {
+ case IdentificationCodeSet.ASCII:
+ descriptor.ASCII = StringHandlers.CToString(descriptor.Binary);
break;
- case IdentificationCodeSet.UTF8: descriptor.ASCII = Encoding.UTF8.GetString(descriptor.Binary);
+ case IdentificationCodeSet.UTF8:
+ descriptor.ASCII = Encoding.UTF8.GetString(descriptor.Binary);
break;
- default: descriptor.ASCII = "";
+ default:
+ descriptor.ASCII = "";
break;
}
@@ -521,9 +524,11 @@ namespace DiscImageChef.Decoders.SCSI
switch(descriptor.Type)
{
case IdentificationTypes.NoAuthority:
- switch(descriptor.CodeSet) {
+ switch(descriptor.CodeSet)
+ {
case IdentificationCodeSet.ASCII:
- case IdentificationCodeSet.UTF8: sb.AppendFormat("\tVendor descriptor contains: {0}", descriptor.ASCII).AppendLine();
+ case IdentificationCodeSet.UTF8:
+ sb.AppendFormat("\tVendor descriptor contains: {0}", descriptor.ASCII).AppendLine();
break;
case IdentificationCodeSet.Binary:
sb.AppendFormat("\tVendor descriptor contains binary data (hex): {0}",
@@ -538,9 +543,11 @@ namespace DiscImageChef.Decoders.SCSI
break;
case IdentificationTypes.Inquiry:
- switch(descriptor.CodeSet) {
+ switch(descriptor.CodeSet)
+ {
case IdentificationCodeSet.ASCII:
- case IdentificationCodeSet.UTF8: sb.AppendFormat("\tInquiry descriptor contains: {0}", descriptor.ASCII).AppendLine();
+ case IdentificationCodeSet.UTF8:
+ sb.AppendFormat("\tInquiry descriptor contains: {0}", descriptor.ASCII).AppendLine();
break;
case IdentificationCodeSet.Binary:
sb.AppendFormat("\tInquiry descriptor contains binary data (hex): {0}",
@@ -720,7 +727,8 @@ namespace DiscImageChef.Decoders.SCSI
break;
default:
- switch(descriptor.CodeSet) {
+ switch(descriptor.CodeSet)
+ {
case IdentificationCodeSet.ASCII:
case IdentificationCodeSet.UTF8:
sb.AppendFormat("\tUnknown descriptor type {1} contains: {0}", descriptor.ASCII,
@@ -732,9 +740,10 @@ namespace DiscImageChef.Decoders.SCSI
(byte)descriptor.Type).AppendLine();
break;
default:
- sb.AppendFormat("Inquiry descriptor type {2} contains unknown kind {1} of data (hex): {0}",
- PrintHex.ByteArrayToHexArrayString(descriptor.Binary, 40),
- (byte)descriptor.CodeSet, (byte)descriptor.Type).AppendLine();
+ sb
+ .AppendFormat("Inquiry descriptor type {2} contains unknown kind {1} of data (hex): {0}",
+ PrintHex.ByteArrayToHexArrayString(descriptor.Binary, 40),
+ (byte)descriptor.CodeSet, (byte)descriptor.Type).AppendLine();
break;
}
@@ -750,35 +759,35 @@ namespace DiscImageChef.Decoders.SCSI
public struct SoftwareIdentifier
{
///
- /// EUI-48 identifier
+ /// EUI-48 identifier
///
public byte[] Identifier;
}
///
- /// Software Interface Identification page
- /// Page code 0x84
+ /// Software Interface Identification page
+ /// Page code 0x84
///
public struct Page_84
{
///
- /// The peripheral qualifier.
+ /// The peripheral qualifier.
///
public PeripheralQualifiers PeripheralQualifier;
///
- /// The type of the peripheral device.
+ /// The type of the peripheral device.
///
public PeripheralDeviceTypes PeripheralDeviceType;
///
- /// The page code.
+ /// The page code.
///
public byte PageCode;
///
- /// The length of the page.
+ /// The length of the page.
///
public byte PageLength;
///
- /// The descriptors.
+ /// The descriptors.
///
public SoftwareIdentifier[] Identifiers;
}
@@ -798,7 +807,6 @@ namespace DiscImageChef.Decoders.SCSI
PageLength = (byte)(pageResponse[3] + 4)
};
-
int position = 4;
List identifiers = new List();
@@ -864,47 +872,47 @@ namespace DiscImageChef.Decoders.SCSI
public struct NetworkDescriptor
{
///
- /// Identifies which device the identifier associates with
+ /// Identifies which device the identifier associates with
///
public IdentificationAssociation Association;
///
- /// Defines the type of the identifier
+ /// Defines the type of the identifier
///
public NetworkServiceTypes Type;
///
- /// Length of the identifier
+ /// Length of the identifier
///
public ushort Length;
///
- /// Binary identifier
+ /// Binary identifier
///
public byte[] Address;
}
///
- /// Device identification page
- /// Page code 0x85
+ /// Device identification page
+ /// Page code 0x85
///
public struct Page_85
{
///
- /// The peripheral qualifier.
+ /// The peripheral qualifier.
///
public PeripheralQualifiers PeripheralQualifier;
///
- /// The type of the peripheral device.
+ /// The type of the peripheral device.
///
public PeripheralDeviceTypes PeripheralDeviceType;
///
- /// The page code.
+ /// The page code.
///
public byte PageCode;
///
- /// The length of the page.
+ /// The length of the page.
///
public ushort PageLength;
///
- /// The descriptors.
+ /// The descriptors.
///
public NetworkDescriptor[] Descriptors;
}
@@ -924,7 +932,6 @@ namespace DiscImageChef.Decoders.SCSI
PageLength = (ushort)((pageResponse[2] << 8) + pageResponse[3] + 4)
};
-
int position = 4;
List descriptors = new List();
@@ -1035,133 +1042,133 @@ namespace DiscImageChef.Decoders.SCSI
#region EVPD Page 0x86: Extended INQUIRY data page
///
- /// Device identification page
- /// Page code 0x86
+ /// Device identification page
+ /// Page code 0x86
///
public struct Page_86
{
///
- /// The peripheral qualifier.
+ /// The peripheral qualifier.
///
public PeripheralQualifiers PeripheralQualifier;
///
- /// The type of the peripheral device.
+ /// The type of the peripheral device.
///
public PeripheralDeviceTypes PeripheralDeviceType;
///
- /// The page code.
+ /// The page code.
///
public byte PageCode;
///
- /// The length of the page.
+ /// The length of the page.
///
public byte PageLength;
///
- /// Indicates how a device server activates microcode
+ /// Indicates how a device server activates microcode
///
public byte ActivateMicrocode;
///
- /// Protection types supported by device
+ /// Protection types supported by device
///
public byte SPT;
///
- /// Checks logical block guard field
+ /// Checks logical block guard field
///
public bool GRD_CHK;
///
- /// Checks logical block application tag
+ /// Checks logical block application tag
///
public bool APP_CHK;
///
- /// Checks logical block reference
+ /// Checks logical block reference
///
public bool REF_CHK;
///
- /// Supports unit attention condition sense key specific data
+ /// Supports unit attention condition sense key specific data
///
public bool UASK_SUP;
///
- /// Supports grouping
+ /// Supports grouping
///
public bool GROUP_SUP;
///
- /// Supports priority
+ /// Supports priority
///
public bool PRIOR_SUP;
///
- /// Supports head of queue
+ /// Supports head of queue
///
public bool HEADSUP;
///
- /// Supports ordered
+ /// Supports ordered
///
public bool ORDSUP;
///
- /// Supports simple
+ /// Supports simple
///
public bool SIMPSUP;
///
- /// Supports marking a block as uncorrectable
+ /// Supports marking a block as uncorrectable
///
public bool WU_SUP;
///
- /// Supports disabling correction on WRITE LONG
+ /// Supports disabling correction on WRITE LONG
///
public bool CRD_SUP;
///
- /// Supports a non-volatile cache
+ /// Supports a non-volatile cache
///
public bool NV_SUP;
///
- /// Supports a volatile cache
+ /// Supports a volatile cache
///
public bool V_SUP;
///
- /// Disable protection information checks
+ /// Disable protection information checks
///
public bool NO_PI_CHK;
///
- /// Protection information interval supported
+ /// Protection information interval supported
///
public bool P_I_I_SUP;
///
- /// Clears all LUNs unit attention when clearing one
+ /// Clears all LUNs unit attention when clearing one
///
public bool LUICLR;
///
- /// Referrals support
+ /// Referrals support
///
public bool R_SUP;
///
- /// History snapshots release effects
+ /// History snapshots release effects
///
public bool HSSRELEF;
///
- /// Capability based command security
+ /// Capability based command security
///
public bool CBCS;
///
- /// Indicates how it handles microcode updating with multiple nexuxes
+ /// Indicates how it handles microcode updating with multiple nexuxes
///
public byte Nexus;
///
- /// Time to complete extended self-test
+ /// Time to complete extended self-test
///
public ushort ExtendedTestMinutes;
///
- /// Power on activation support
+ /// Power on activation support
///
public bool POA_SUP;
///
- /// Hard reset actication
+ /// Hard reset actication
///
public bool HRA_SUP;
///
- /// Vendor specific activation
+ /// Vendor specific activation
///
public bool VSA_SUP;
///
- /// Maximum length in bytes of sense data
+ /// Maximum length in bytes of sense data
///
public byte MaximumSenseLength;
}
@@ -1223,7 +1230,8 @@ namespace DiscImageChef.Decoders.SCSI
sb.AppendLine("SCSI Extended INQUIRY Data:");
- switch(page.PeripheralDeviceType) {
+ switch(page.PeripheralDeviceType)
+ {
case PeripheralDeviceTypes.DirectAccess:
case PeripheralDeviceTypes.SCSIZonedBlockDevice:
switch(page.SPT)
@@ -1256,7 +1264,8 @@ namespace DiscImageChef.Decoders.SCSI
}
break;
- case PeripheralDeviceTypes.SequentialAccess when page.SPT == 1: sb.AppendLine("Logical unit supports logical block protection");
+ case PeripheralDeviceTypes.SequentialAccess when page.SPT == 1:
+ sb.AppendLine("Logical unit supports logical block protection");
break;
}
@@ -1298,49 +1307,49 @@ namespace DiscImageChef.Decoders.SCSI
#region EVPD Page 0x89: ATA Information page
///
- /// ATA Information page
- /// Page code 0x89
+ /// ATA Information page
+ /// Page code 0x89
///
public struct Page_89
{
///
- /// The peripheral qualifier.
+ /// The peripheral qualifier.
///
public PeripheralQualifiers PeripheralQualifier;
///
- /// The type of the peripheral device.
+ /// The type of the peripheral device.
///
public PeripheralDeviceTypes PeripheralDeviceType;
///
- /// The page code.
+ /// The page code.
///
public byte PageCode;
///
- /// The length of the page.
+ /// The length of the page.
///
public ushort PageLength;
///
- /// Contains the SAT vendor identification
+ /// Contains the SAT vendor identification
///
public byte[] VendorIdentification;
///
- /// Contains the SAT product identification
+ /// Contains the SAT product identification
///
public byte[] ProductIdentification;
///
- /// Contains the SAT revision level
+ /// Contains the SAT revision level
///
public byte[] ProductRevisionLevel;
///
- /// Contains the ATA device signature
+ /// Contains the ATA device signature
///
public byte[] Signature;
///
- /// Contains the command code used to identify the device
+ /// Contains the command code used to identify the device
///
public byte CommandCode;
///
- /// Contains the response to ATA IDENTIFY (PACKET) DEVICE
+ /// Contains the response to ATA IDENTIFY (PACKET) DEVICE
///
public byte[] IdentifyData;
}
@@ -1436,41 +1445,41 @@ namespace DiscImageChef.Decoders.SCSI
#region EVPD Page 0xC0 (Quantum): Firmware Build Information page
///
- /// Firmware Build Information page
- /// Page code 0xC0 (Quantum)
+ /// Firmware Build Information page
+ /// Page code 0xC0 (Quantum)
///
public struct Page_C0_Quantum
{
///
- /// The peripheral qualifier.
+ /// The peripheral qualifier.
///
public PeripheralQualifiers PeripheralQualifier;
///
- /// The type of the peripheral device.
+ /// The type of the peripheral device.
///
public PeripheralDeviceTypes PeripheralDeviceType;
///
- /// The page code.
+ /// The page code.
///
public byte PageCode;
///
- /// The length of the page.
+ /// The length of the page.
///
public byte PageLength;
///
- /// Servo firmware checksum
+ /// Servo firmware checksum
///
public ushort ServoFirmwareChecksum;
///
- /// Servo EEPROM checksum
+ /// Servo EEPROM checksum
///
public ushort ServoEEPROMChecksum;
///
- /// Read/Write firmware checksum
+ /// Read/Write firmware checksum
///
public uint ReadWriteFirmwareChecksum;
///
- /// Read/Write firmware build data
+ /// Read/Write firmware build data
///
public byte[] ReadWriteFirmwareBuildData;
}
@@ -1527,25 +1536,25 @@ namespace DiscImageChef.Decoders.SCSI
#region EVPD Pages 0xC0, 0xC1 (Certance): Drive component revision level pages
///
- /// Drive component revision level pages
- /// Page codes 0xC0, 0xC1 (Certance)
+ /// Drive component revision level pages
+ /// Page codes 0xC0, 0xC1 (Certance)
///
public struct Page_C0_C1_Certance
{
///
- /// The peripheral qualifier.
+ /// The peripheral qualifier.
///
public PeripheralQualifiers PeripheralQualifier;
///
- /// The type of the peripheral device.
+ /// The type of the peripheral device.
///
public PeripheralDeviceTypes PeripheralDeviceType;
///
- /// The page code.
+ /// The page code.
///
public byte PageCode;
///
- /// The length of the page.
+ /// The length of the page.
///
public byte PageLength;
public byte[] Component;
@@ -1608,25 +1617,25 @@ namespace DiscImageChef.Decoders.SCSI
#region EVPD Pages 0xC2, 0xC3, 0xC4, 0xC5, 0xC6 (Certance): Drive component serial number pages
///
- /// Drive component serial number pages
- /// Page codes 0xC2, 0xC3, 0xC4, 0xC5, 0xC6 (Certance)
+ /// Drive component serial number pages
+ /// Page codes 0xC2, 0xC3, 0xC4, 0xC5, 0xC6 (Certance)
///
public struct Page_C2_C3_C4_C5_C6_Certance
{
///
- /// The peripheral qualifier.
+ /// The peripheral qualifier.
///
public PeripheralQualifiers PeripheralQualifier;
///
- /// The type of the peripheral device.
+ /// The type of the peripheral device.
///
public PeripheralDeviceTypes PeripheralDeviceType;
///
- /// The page code.
+ /// The page code.
///
public byte PageCode;
///
- /// The length of the page.
+ /// The length of the page.
///
public byte PageLength;
public byte[] SerialNumber;
@@ -1700,89 +1709,89 @@ namespace DiscImageChef.Decoders.SCSI
#region EVPD Page 0xDF (Certance): Drive status pages
///
- /// Drive status pages
- /// Page codes 0xDF (Certance)
+ /// Drive status pages
+ /// Page codes 0xDF (Certance)
///
public struct Page_DF_Certance
{
///
- /// The peripheral qualifier.
+ /// The peripheral qualifier.
///
public PeripheralQualifiers PeripheralQualifier;
///
- /// The type of the peripheral device.
+ /// The type of the peripheral device.
///
public PeripheralDeviceTypes PeripheralDeviceType;
///
- /// The page code.
+ /// The page code.
///
public byte PageCode;
///
- /// The length of the page.
+ /// The length of the page.
///
public byte PageLength;
///
- /// Command forwarding
+ /// Command forwarding
///
public byte CmdFwd;
///
- /// Alerts
+ /// Alerts
///
public bool Alerts;
///
- /// Removable prevention
+ /// Removable prevention
///
public bool NoRemov;
///
- /// Unit reservation
+ /// Unit reservation
///
public bool UnitRsvd;
///
- /// Needs cleaning
+ /// Needs cleaning
///
public bool Clean;
///
- /// Tape threaded
+ /// Tape threaded
///
public bool Threaded;
///
- /// Commands await forwarding
+ /// Commands await forwarding
///
public bool Lun1Cmd;
///
- /// Autoload mode
+ /// Autoload mode
///
public byte AutoloadMode;
///
- /// Cartridge type
+ /// Cartridge type
///
public byte CartridgeType;
///
- /// Cartridge format
+ /// Cartridge format
///
public byte CartridgeFormat;
///
- /// Cartridge capacity in 10e9 bytes
+ /// Cartridge capacity in 10e9 bytes
///
public ushort CartridgeCapacity;
///
- /// Port A transport type
+ /// Port A transport type
///
public byte PortATransportType;
///
- /// Port A SCSI ID
+ /// Port A SCSI ID
///
public byte PortASelectionID;
///
- /// Total number of head-tape contact time
+ /// Total number of head-tape contact time
///
public uint OperatingHours;
///
- /// ID that reserved the device
+ /// ID that reserved the device
///
public ulong InitiatorID;
///
- /// Cartridge serial number
+ /// Cartridge serial number
///
public byte[] CartridgeSerialNumber;
}
@@ -1813,8 +1822,9 @@ namespace DiscImageChef.Decoders.SCSI
CartridgeCapacity = (ushort)((pageResponse[10] << 8) + pageResponse[11] + 4),
PortATransportType = pageResponse[12],
PortASelectionID = pageResponse[15],
- OperatingHours = (uint)((pageResponse[20] << 24) + (pageResponse[21] << 16) + (pageResponse[22] << 8) +
- pageResponse[23]),
+ OperatingHours =
+ (uint)((pageResponse[20] << 24) + (pageResponse[21] << 16) + (pageResponse[22] << 8) +
+ pageResponse[23]),
CartridgeSerialNumber = new byte[32]
};
@@ -1954,25 +1964,25 @@ namespace DiscImageChef.Decoders.SCSI
#region EVPD Page 0xC0 (IBM): Drive Component Revision Levels page
///
- /// Drive Component Revision Levels page
- /// Page code 0xC0 (IBM)
+ /// Drive Component Revision Levels page
+ /// Page code 0xC0 (IBM)
///
public struct Page_C0_IBM
{
///
- /// The peripheral qualifier.
+ /// The peripheral qualifier.
///
public PeripheralQualifiers PeripheralQualifier;
///
- /// The type of the peripheral device.
+ /// The type of the peripheral device.
///
public PeripheralDeviceTypes PeripheralDeviceType;
///
- /// The page code.
+ /// The page code.
///
public byte PageCode;
///
- /// The length of the page.
+ /// The length of the page.
///
public byte PageLength;
public byte[] CodeName;
@@ -1996,8 +2006,6 @@ namespace DiscImageChef.Decoders.SCSI
Date = new byte[8]
};
-
-
Array.Copy(pageResponse, 4, decoded.CodeName, 0, 12);
Array.Copy(pageResponse, 23, decoded.Date, 0, 8);
@@ -2027,25 +2035,25 @@ namespace DiscImageChef.Decoders.SCSI
#region EVPD Page 0xC1 (IBM): Drive Serial Numbers page
///
- /// Drive Serial Numbers page
- /// Page code 0xC1 (IBM)
+ /// Drive Serial Numbers page
+ /// Page code 0xC1 (IBM)
///
public struct Page_C1_IBM
{
///
- /// The peripheral qualifier.
+ /// The peripheral qualifier.
///
public PeripheralQualifiers PeripheralQualifier;
///
- /// The type of the peripheral device.
+ /// The type of the peripheral device.
///
public PeripheralDeviceTypes PeripheralDeviceType;
///
- /// The page code.
+ /// The page code.
///
public byte PageCode;
///
- /// The length of the page.
+ /// The length of the page.
///
public byte PageLength;
public byte[] ManufacturingSerial;
@@ -2100,25 +2108,25 @@ namespace DiscImageChef.Decoders.SCSI
#region EVPD Page 0xB0: Sequential-access device capabilities page
///
- /// Sequential-access device capabilities page
- /// Page code 0xB0
+ /// Sequential-access device capabilities page
+ /// Page code 0xB0
///
public struct Page_B0
{
///
- /// The peripheral qualifier.
+ /// The peripheral qualifier.
///
public PeripheralQualifiers PeripheralQualifier;
///
- /// The type of the peripheral device.
+ /// The type of the peripheral device.
///
public PeripheralDeviceTypes PeripheralDeviceType;
///
- /// The page code.
+ /// The page code.
///
public byte PageCode;
///
- /// The length of the page.
+ /// The length of the page.
///
public ushort PageLength;
public bool TSMC;
@@ -2228,25 +2236,25 @@ namespace DiscImageChef.Decoders.SCSI
#region EVPD Pages 0xC0 to 0xC5 (HP): Drive component revision level pages
///
- /// Drive component revision level pages
- /// Page codes 0xC0 to 0xC5 (HP)
+ /// Drive component revision level pages
+ /// Page codes 0xC0 to 0xC5 (HP)
///
public struct Page_C0_to_C5_HP
{
///
- /// The peripheral qualifier.
+ /// The peripheral qualifier.
///
public PeripheralQualifiers PeripheralQualifier;
///
- /// The type of the peripheral device.
+ /// The type of the peripheral device.
///
public PeripheralDeviceTypes PeripheralDeviceType;
///
- /// The page code.
+ /// The page code.
///
public byte PageCode;
///
- /// The length of the page.
+ /// The length of the page.
///
public byte PageLength;
public byte[] Component;
@@ -2291,7 +2299,8 @@ namespace DiscImageChef.Decoders.SCSI
if(pageResponse[4] != pageResponse[3] - 1) return null;
List array = new List();
- const string fwRegExStr = @"Firmware Rev\s+=\s+(?\d+\.\d+)\s+Build date\s+=\s+(?(\w|\d|\s*.)*)\s*$";
+ const string fwRegExStr =
+ @"Firmware Rev\s+=\s+(?\d+\.\d+)\s+Build date\s+=\s+(?(\w|\d|\s*.)*)\s*$";
const string fwcRegExStr = @"FW_CONF\s+=\s+(?0x[0-9A-Fa-f]{8})\s*$";
const string servoRegExStr = @"Servo\s+Rev\s+=\s+(?\d+\.\d+)\s*$";
Regex fwRegEx = new Regex(fwRegExStr);
@@ -2314,8 +2323,7 @@ namespace DiscImageChef.Decoders.SCSI
decoded.Version = Encoding.ASCII.GetBytes(fwMatch.Groups["fw"].Value);
decoded.Date = Encoding.ASCII.GetBytes(fwMatch.Groups["date"].Value);
}
- else if(fwcMatch.Success)
- decoded.Variant = Encoding.ASCII.GetBytes(fwMatch.Groups["value"].Value);
+ else if(fwcMatch.Success) decoded.Variant = Encoding.ASCII.GetBytes(fwMatch.Groups["value"].Value);
else if(servoMatch.Success)
{
decoded.Component = Encoding.ASCII.GetBytes("Servo");
@@ -2380,25 +2388,25 @@ namespace DiscImageChef.Decoders.SCSI
#region EVPD Page 0xC0 (Seagate): Firmware numbers page
///
- /// Firmware numbers page
- /// Page code 0xC0 (Seagate)
+ /// Firmware numbers page
+ /// Page code 0xC0 (Seagate)
///
public struct Page_C0_Seagate
{
///
- /// The peripheral qualifier.
+ /// The peripheral qualifier.
///
public PeripheralQualifiers PeripheralQualifier;
///
- /// The type of the peripheral device.
+ /// The type of the peripheral device.
///
public PeripheralDeviceTypes PeripheralDeviceType;
///
- /// The page code.
+ /// The page code.
///
public byte PageCode;
///
- /// The length of the page.
+ /// The length of the page.
///
public byte PageLength;
public byte[] ControllerFirmware;
@@ -2425,8 +2433,6 @@ namespace DiscImageChef.Decoders.SCSI
ServoFirmware = new byte[4]
};
-
-
Array.Copy(pageResponse, 4, decoded.ControllerFirmware, 0, 4);
Array.Copy(pageResponse, 8, decoded.BootFirmware, 0, 4);
Array.Copy(pageResponse, 12, decoded.ServoFirmware, 0, 4);
diff --git a/SCSI/Enums.cs b/SCSI/Enums.cs
index e2b7b24..86af10a 100644
--- a/SCSI/Enums.cs
+++ b/SCSI/Enums.cs
@@ -37,23 +37,23 @@ namespace DiscImageChef.Decoders.SCSI
public enum PeripheralQualifiers : byte
{
///
- /// Peripheral qualifier: Device is connected and supported
+ /// Peripheral qualifier: Device is connected and supported
///
Supported = 0x00,
///
- /// Peripheral qualifier: Device is supported but not connected
+ /// Peripheral qualifier: Device is supported but not connected
///
Unconnected = 0x01,
///
- /// Peripheral qualifier: Reserved value
+ /// Peripheral qualifier: Reserved value
///
Reserved = 0x02,
///
- /// Peripheral qualifier: Device is connected but unsupported
+ /// Peripheral qualifier: Device is connected but unsupported
///
Unsupported = 0x03,
///
- /// Peripheral qualifier: Vendor values: 0x04, 0x05, 0x06 and 0x07
+ /// Peripheral qualifier: Vendor values: 0x04, 0x05, 0x06 and 0x07
///
VendorMask = 0x04
}
@@ -62,95 +62,95 @@ namespace DiscImageChef.Decoders.SCSI
public enum PeripheralDeviceTypes : byte
{
///
- /// Direct-access device
+ /// Direct-access device
///
DirectAccess = 0x00,
///
- /// Sequential-access device
+ /// Sequential-access device
///
SequentialAccess = 0x01,
///
- /// Printer device
+ /// Printer device
///
PrinterDevice = 0x02,
///
- /// Processor device
+ /// Processor device
///
ProcessorDevice = 0x03,
///
- /// Write-once device
+ /// Write-once device
///
WriteOnceDevice = 0x04,
///
- /// CD-ROM/DVD/etc device
+ /// CD-ROM/DVD/etc device
///
MultiMediaDevice = 0x05,
///
- /// Scanner device
+ /// Scanner device
///
ScannerDevice = 0x06,
///
- /// Optical memory device
+ /// Optical memory device
///
OpticalDevice = 0x07,
///
- /// Medium change device
+ /// Medium change device
///
MediumChangerDevice = 0x08,
///
- /// Communications device
+ /// Communications device
///
CommsDevice = 0x09,
///
- /// Graphics arts pre-press device (defined in ASC IT8)
+ /// Graphics arts pre-press device (defined in ASC IT8)
///
PrePressDevice1 = 0x0A,
///
- /// Graphics arts pre-press device (defined in ASC IT8)
+ /// Graphics arts pre-press device (defined in ASC IT8)
///
PrePressDevice2 = 0x0B,
///
- /// Array controller device
+ /// Array controller device
///
ArrayControllerDevice = 0x0C,
///
- /// Enclosure services device
+ /// Enclosure services device
///
EnclosureServiceDevice = 0x0D,
///
- /// Simplified direct-access device
+ /// Simplified direct-access device
///
SimplifiedDevice = 0x0E,
///
- /// Optical card reader/writer device
+ /// Optical card reader/writer device
///
OCRWDevice = 0x0F,
///
- /// Bridging Expanders
+ /// Bridging Expanders
///
BridgingExpander = 0x10,
///
- /// Object-based Storage Device
+ /// Object-based Storage Device
///
ObjectDevice = 0x11,
///
- /// Automation/Drive Interface
+ /// Automation/Drive Interface
///
ADCDevice = 0x12,
///
- /// Security Manager Device
+ /// Security Manager Device
///
SCSISecurityManagerDevice = 0x13,
///
- /// Host managed zoned block device
+ /// Host managed zoned block device
///
SCSIZonedBlockDevice = 0x14,
///
- /// Well known logical unit
+ /// Well known logical unit
///
WellKnownDevice = 0x1E,
///
- /// Unknown or no device type
+ /// Unknown or no device type
///
UnknownDevice = 0x1F
}
@@ -159,31 +159,31 @@ namespace DiscImageChef.Decoders.SCSI
public enum ANSIVersions : byte
{
///
- /// Device does not claim conformance to any ANSI version
+ /// Device does not claim conformance to any ANSI version
///
ANSINoVersion = 0x00,
///
- /// Device complies with ANSI X3.131:1986
+ /// Device complies with ANSI X3.131:1986
///
ANSI1986Version = 0x01,
///
- /// Device complies with ANSI X3.131:1994
+ /// Device complies with ANSI X3.131:1994
///
ANSI1994Version = 0x02,
///
- /// Device complies with ANSI X3.301:1997
+ /// Device complies with ANSI X3.301:1997
///
ANSI1997Version = 0x03,
///
- /// Device complies with ANSI X3.351:2001
+ /// Device complies with ANSI X3.351:2001
///
ANSI2001Version = 0x04,
///
- /// Device complies with ANSI X3.408:2005.
+ /// Device complies with ANSI X3.408:2005.
///
ANSI2005Version = 0x05,
///
- /// Device complies with SPC-4
+ /// Device complies with SPC-4
///
ANSI2008Version = 0x06
}
@@ -192,11 +192,11 @@ namespace DiscImageChef.Decoders.SCSI
public enum ECMAVersions : byte
{
///
- /// Device does not claim conformance to any ECMA version
+ /// Device does not claim conformance to any ECMA version
///
ECMANoVersion = 0x00,
///
- /// Device complies with a ECMA-111 standard
+ /// Device complies with a ECMA-111 standard
///
ECMA111 = 0x01
}
@@ -205,11 +205,11 @@ namespace DiscImageChef.Decoders.SCSI
public enum ISOVersions : byte
{
///
- /// Device does not claim conformance to any ISO/IEC version
+ /// Device does not claim conformance to any ISO/IEC version
///
ISONoVersion = 0x00,
///
- /// Device complies with ISO/IEC 9316:1995
+ /// Device complies with ISO/IEC 9316:1995
///
ISO1995Version = 0x02
}
@@ -218,19 +218,19 @@ namespace DiscImageChef.Decoders.SCSI
public enum SPIClocking : byte
{
///
- /// Supports only ST
+ /// Supports only ST
///
ST = 0x00,
///
- /// Supports only DT
+ /// Supports only DT
///
DT = 0x01,
///
- /// Reserved value
+ /// Reserved value
///
Reserved = 0x02,
///
- /// Supports ST and DT
+ /// Supports ST and DT
///
STandDT = 0x03
}
@@ -239,19 +239,19 @@ namespace DiscImageChef.Decoders.SCSI
public enum TGPSValues : byte
{
///
- /// Assymetrical access not supported
+ /// Assymetrical access not supported
///
NotSupported = 0x00,
///
- /// Only implicit assymetrical access is supported
+ /// Only implicit assymetrical access is supported
///
OnlyImplicit = 0x01,
///
- /// Only explicit assymetrical access is supported
+ /// Only explicit assymetrical access is supported
///
OnlyExplicit = 0x02,
///
- /// Both implicit and explicit assymetrical access are supported
+ /// Both implicit and explicit assymetrical access are supported
///
Both = 0x03
}
@@ -260,55 +260,55 @@ namespace DiscImageChef.Decoders.SCSI
public enum ProtocolIdentifiers : byte
{
///
- /// Fibre Channel
+ /// Fibre Channel
///
FibreChannel = 0,
///
- /// Parallel SCSI
+ /// Parallel SCSI
///
SCSI = 1,
///
- /// SSA
+ /// SSA
///
SSA = 2,
///
- /// IEEE-1394
+ /// IEEE-1394
///
Firewire = 3,
///
- /// SCSI Remote Direct Memory Access Protocol
+ /// SCSI Remote Direct Memory Access Protocol
///
RDMAP = 4,
///
- /// Internet SCSI
+ /// Internet SCSI
///
iSCSI = 5,
///
- /// Serial SCSI
+ /// Serial SCSI
///
SAS = 6,
///
- /// Automation/Drive Interface Transport Protocol
+ /// Automation/Drive Interface Transport Protocol
///
ADT = 7,
///
- /// AT Attachment Interface (ATA/ATAPI)
+ /// AT Attachment Interface (ATA/ATAPI)
///
ATA = 8,
///
- /// USB Attached SCSI
+ /// USB Attached SCSI
///
UAS = 9,
///
- /// SCSI over PCI Express
+ /// SCSI over PCI Express
///
SCSIe = 10,
///
- /// PCI Express
+ /// PCI Express
///
PCIe = 11,
///
- /// No specific protocol
+ /// No specific protocol
///
NoProtocol = 15
}
diff --git a/SCSI/Inquiry.cs b/SCSI/Inquiry.cs
index 4beb2b6..be526ae 100644
--- a/SCSI/Inquiry.cs
+++ b/SCSI/Inquiry.cs
@@ -39,15 +39,15 @@ using DiscImageChef.Console;
namespace DiscImageChef.Decoders.SCSI
{
///
- /// Information from the following standards:
- /// T9/375-D revision 10l
- /// T10/995-D revision 10
- /// T10/1236-D revision 20
- /// T10/1416-D revision 23
- /// T10/1731-D revision 16
- /// T10/502 revision 05
- /// RFC 7144
- /// ECMA-111
+ /// Information from the following standards:
+ /// T9/375-D revision 10l
+ /// T10/995-D revision 10
+ /// T10/1236-D revision 20
+ /// T10/1416-D revision 23
+ /// T10/1731-D revision 16
+ /// T10/502 revision 05
+ /// RFC 7144
+ /// ECMA-111
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -227,7 +227,8 @@ namespace DiscImageChef.Decoders.SCSI
else descriptorsNo = (SCSIInquiryResponse.Length - 58) / 2;
decoded.VersionDescriptors = new ushort[descriptorsNo];
- for(int i = 0; i < descriptorsNo; i++) decoded.VersionDescriptors[i] = BitConverter.ToUInt16(SCSIInquiryResponse, 58 + i * 2);
+ for(int i = 0; i < descriptorsNo; i++)
+ decoded.VersionDescriptors[i] = BitConverter.ToUInt16(SCSIInquiryResponse, 58 + i * 2);
}
if(SCSIInquiryResponse.Length >= 75 && SCSIInquiryResponse.Length < 96)
@@ -2084,237 +2085,237 @@ namespace DiscImageChef.Decoders.SCSI
public struct SCSIInquiry
{
///
- /// Peripheral qualifier
- /// Byte 0, bits 7 to 5
+ /// Peripheral qualifier
+ /// Byte 0, bits 7 to 5
///
public byte PeripheralQualifier;
///
- /// Peripheral device type
- /// Byte 0, bits 4 to 0
+ /// Peripheral device type
+ /// Byte 0, bits 4 to 0
///
public byte PeripheralDeviceType;
///
- /// Removable device
- /// Byte 1, bit 7
+ /// Removable device
+ /// Byte 1, bit 7
///
public bool RMB;
///
- /// SCSI-1 vendor-specific qualification codes
- /// Byte 1, bits 6 to 0
+ /// SCSI-1 vendor-specific qualification codes
+ /// Byte 1, bits 6 to 0
///
public byte DeviceTypeModifier;
///
- /// ISO/IEC SCSI Standard Version
- /// Byte 2, bits 7 to 6, mask = 0xC0, >> 6
+ /// ISO/IEC SCSI Standard Version
+ /// Byte 2, bits 7 to 6, mask = 0xC0, >> 6
///
public byte ISOVersion;
///
- /// ECMA SCSI Standard Version
- /// Byte 2, bits 5 to 3, mask = 0x38, >> 3
+ /// ECMA SCSI Standard Version
+ /// Byte 2, bits 5 to 3, mask = 0x38, >> 3
///
public byte ECMAVersion;
///
- /// ANSI SCSI Standard Version
- /// Byte 2, bits 2 to 0, mask = 0x07
+ /// ANSI SCSI Standard Version
+ /// Byte 2, bits 2 to 0, mask = 0x07
///
public byte ANSIVersion;
///
- /// Asynchronous Event Reporting Capability supported
- /// Byte 3, bit 7
+ /// Asynchronous Event Reporting Capability supported
+ /// Byte 3, bit 7
///
public bool AERC;
///
- /// Device supports TERMINATE TASK command
- /// Byte 3, bit 6
+ /// Device supports TERMINATE TASK command
+ /// Byte 3, bit 6
///
public bool TrmTsk;
///
- /// Supports setting Normal ACA
- /// Byte 3, bit 5
+ /// Supports setting Normal ACA
+ /// Byte 3, bit 5
///
public bool NormACA;
///
- /// Supports LUN hierarchical addressing
- /// Byte 3, bit 4
+ /// Supports LUN hierarchical addressing
+ /// Byte 3, bit 4
///
public bool HiSup;
///
- /// Responde data format
- /// Byte 3, bit 3 to 0
+ /// Responde data format
+ /// Byte 3, bit 3 to 0
///
public byte ResponseDataFormat;
///
- /// Lenght of total INQUIRY response minus 4
- /// Byte 4
+ /// Lenght of total INQUIRY response minus 4
+ /// Byte 4
///
public byte AdditionalLength;
///
- /// Device contains an embedded storage array controller
- /// Byte 5, bit 7
+ /// Device contains an embedded storage array controller
+ /// Byte 5, bit 7
///
public bool SCCS;
///
- /// Device contains an Access Control Coordinator
- /// Byte 5, bit 6
+ /// Device contains an Access Control Coordinator
+ /// Byte 5, bit 6
///
public bool ACC;
///
- /// Supports asymetrical logical unit access
- /// Byte 5, bits 5 to 4
+ /// Supports asymetrical logical unit access
+ /// Byte 5, bits 5 to 4
///
public byte TPGS;
///
- /// Supports third-party copy commands
- /// Byte 5, bit 3
+ /// Supports third-party copy commands
+ /// Byte 5, bit 3
///
public bool ThreePC;
///
- /// Reserved
- /// Byte 5, bits 2 to 1
+ /// Reserved
+ /// Byte 5, bits 2 to 1
///
public byte Reserved2;
///
- /// Supports protection information
- /// Byte 5, bit 0
+ /// Supports protection information
+ /// Byte 5, bit 0
///
public bool Protect;
///
- /// Supports basic queueing
- /// Byte 6, bit 7
+ /// Supports basic queueing
+ /// Byte 6, bit 7
///
public bool BQue;
///
- /// Device contains an embedded enclosure services component
- /// Byte 6, bit 6
+ /// Device contains an embedded enclosure services component
+ /// Byte 6, bit 6
///
public bool EncServ;
///
- /// Vendor-specific
- /// Byte 6, bit 5
+ /// Vendor-specific
+ /// Byte 6, bit 5
///
public bool VS1;
///
- /// Multi-port device
- /// Byte 6, bit 4
+ /// Multi-port device
+ /// Byte 6, bit 4
///
public bool MultiP;
///
- /// Device contains or is attached to a medium changer
- /// Byte 6, bit 3
+ /// Device contains or is attached to a medium changer
+ /// Byte 6, bit 3
///
public bool MChngr;
///
- /// Device supports request and acknowledge handshakes
- /// Byte 6, bit 2
+ /// Device supports request and acknowledge handshakes
+ /// Byte 6, bit 2
///
public bool ACKREQQ;
///
- /// Supports 32-bit wide SCSI addresses
- /// Byte 6, bit 1
+ /// Supports 32-bit wide SCSI addresses
+ /// Byte 6, bit 1
///
public bool Addr32;
///
- /// Supports 16-bit wide SCSI addresses
- /// Byte 6, bit 0
+ /// Supports 16-bit wide SCSI addresses
+ /// Byte 6, bit 0
///
public bool Addr16;
///
- /// Device supports relative addressing
- /// Byte 7, bit 7
+ /// Device supports relative addressing
+ /// Byte 7, bit 7
///
public bool RelAddr;
///
- /// Supports 32-bit wide data transfers
- /// Byte 7, bit 6
+ /// Supports 32-bit wide data transfers
+ /// Byte 7, bit 6
///
public bool WBus32;
///
- /// Supports 16-bit wide data transfers
- /// Byte 7, bit 5
+ /// Supports 16-bit wide data transfers
+ /// Byte 7, bit 5
///
public bool WBus16;
///
- /// Supports synchronous data transfer
- /// Byte 7, bit 4
+ /// Supports synchronous data transfer
+ /// Byte 7, bit 4
///
public bool Sync;
///
- /// Supports linked commands
- /// Byte 7, bit 3
+ /// Supports linked commands
+ /// Byte 7, bit 3
///
public bool Linked;
///
- /// Supports CONTINUE TASK and TARGET TRANSFER DISABLE commands
- /// Byte 7, bit 2
+ /// Supports CONTINUE TASK and TARGET TRANSFER DISABLE commands
+ /// Byte 7, bit 2
///
public bool TranDis;
///
- /// Supports TCQ queue
- /// Byte 7, bit 1
+ /// Supports TCQ queue
+ /// Byte 7, bit 1
///
public bool CmdQue;
///
- /// Indicates that the devices responds to RESET with soft reset
- /// Byte 7, bit 0
+ /// Indicates that the devices responds to RESET with soft reset
+ /// Byte 7, bit 0
///
public bool SftRe;
///
- /// Vendor identification
- /// Bytes 8 to 15
+ /// Vendor identification
+ /// Bytes 8 to 15
///
public byte[] VendorIdentification;
///
- /// Product identification
- /// Bytes 16 to 31
+ /// Product identification
+ /// Bytes 16 to 31
///
public byte[] ProductIdentification;
///
- /// Product revision level
- /// Bytes 32 to 35
+ /// Product revision level
+ /// Bytes 32 to 35
///
public byte[] ProductRevisionLevel;
///
- /// Vendor-specific data
- /// Bytes 36 to 55
+ /// Vendor-specific data
+ /// Bytes 36 to 55
///
public byte[] VendorSpecific;
///
- /// Byte 56, bits 7 to 4
+ /// Byte 56, bits 7 to 4
///
public byte Reserved3;
///
- /// Supported SPI clocking
- /// Byte 56, bits 3 to 2
+ /// Supported SPI clocking
+ /// Byte 56, bits 3 to 2
///
public byte Clocking;
///
- /// Device supports Quick Arbitration and Selection
- /// Byte 56, bit 1
+ /// Device supports Quick Arbitration and Selection
+ /// Byte 56, bit 1
///
public bool QAS;
///
- /// Supports information unit transfers
- /// Byte 56, bit 0
+ /// Supports information unit transfers
+ /// Byte 56, bit 0
///
public bool IUS;
///
- /// Reserved
- /// Byte 57
+ /// Reserved
+ /// Byte 57
///
public byte Reserved4;
///
- /// Array of version descriptors
- /// Bytes 58 to 73
+ /// Array of version descriptors
+ /// Bytes 58 to 73
///
public ushort[] VersionDescriptors;
///
- /// Reserved
- /// Bytes 74 to 95
+ /// Reserved
+ /// Bytes 74 to 95
///
public byte[] Reserved5;
///
- /// Reserved
- /// Bytes 96 to end
+ /// Reserved
+ /// Bytes 96 to end
///
public byte[] VendorSpecific2;
@@ -2322,191 +2323,191 @@ namespace DiscImageChef.Decoders.SCSI
#region Quantum vendor unique inquiry data structure
///
- /// Means that the INQUIRY response contains 56 bytes or more, so this data has been filled
+ /// Means that the INQUIRY response contains 56 bytes or more, so this data has been filled
///
public bool QuantumPresent;
///
- /// The product family.
- /// Byte 36, bits 7 to 5
+ /// The product family.
+ /// Byte 36, bits 7 to 5
///
public byte Qt_ProductFamily;
///
- /// The released firmware.
- /// Byte 36, bits 4 to 0
+ /// The released firmware.
+ /// Byte 36, bits 4 to 0
///
public byte Qt_ReleasedFirmware;
///
- /// The firmware major version.
- /// Byte 37
+ /// The firmware major version.
+ /// Byte 37
///
public byte Qt_FirmwareMajorVersion;
///
- /// The firmware minor version.
- /// Byte 38
+ /// The firmware minor version.
+ /// Byte 38
///
public byte Qt_FirmwareMinorVersion;
///
- /// The EEPROM format major version.
- /// Byte 39
+ /// The EEPROM format major version.
+ /// Byte 39
///
public byte Qt_EEPROMFormatMajorVersion;
///
- /// The EEPROM format minor version.
- /// Byte 40
+ /// The EEPROM format minor version.
+ /// Byte 40
///
public byte Qt_EEPROMFormatMinorVersion;
///
- /// The firmware personality.
- /// Byte 41
+ /// The firmware personality.
+ /// Byte 41
///
public byte Qt_FirmwarePersonality;
///
- /// The firmware sub personality.
- /// Byte 42
+ /// The firmware sub personality.
+ /// Byte 42
///
public byte Qt_FirmwareSubPersonality;
///
- /// The tape directory format version.
- /// Byte 43
+ /// The tape directory format version.
+ /// Byte 43
///
public byte Qt_TapeDirectoryFormatVersion;
///
- /// The controller hardware version.
- /// Byte 44
+ /// The controller hardware version.
+ /// Byte 44
///
public byte Qt_ControllerHardwareVersion;
///
- /// The drive EEPROM version.
- /// Byte 45
+ /// The drive EEPROM version.
+ /// Byte 45
///
public byte Qt_DriveEEPROMVersion;
///
- /// The drive hardware version.
- /// Byte 46
+ /// The drive hardware version.
+ /// Byte 46
///
public byte Qt_DriveHardwareVersion;
///
- /// The media loader firmware version.
- /// Byte 47
+ /// The media loader firmware version.
+ /// Byte 47
///
public byte Qt_MediaLoaderFirmwareVersion;
///
- /// The media loader hardware version.
- /// Byte 48
+ /// The media loader hardware version.
+ /// Byte 48
///
public byte Qt_MediaLoaderHardwareVersion;
///
- /// The media loader mechanical version.
- /// Byte 49
+ /// The media loader mechanical version.
+ /// Byte 49
///
public byte Qt_MediaLoaderMechanicalVersion;
///
- /// Is a media loader present?
- /// Byte 50
+ /// Is a media loader present?
+ /// Byte 50
///
public bool Qt_MediaLoaderPresent;
///
- /// Is a library present?
- /// Byte 51
+ /// Is a library present?
+ /// Byte 51
///
public bool Qt_LibraryPresent;
///
- /// The module revision.
- /// Bytes 52 to 55
+ /// The module revision.
+ /// Bytes 52 to 55
///
public byte[] Qt_ModuleRevision;
#endregion Quantum vendor unique inquiry data structure
#region IBM vendor unique inquiry data structure
///
- /// Means that the INQUIRY response contains 56 bytes or more, so this data has been filled
+ /// Means that the INQUIRY response contains 56 bytes or more, so this data has been filled
///
public bool IBMPresent;
///
- /// Drive is not capable of automation
- /// Byte 36 bit 0
+ /// Drive is not capable of automation
+ /// Byte 36 bit 0
///
public bool IBM_AutDis;
///
- /// If not zero, limit in MB/s = Max * (this / 256)
- /// Byte 37
+ /// If not zero, limit in MB/s = Max * (this / 256)
+ /// Byte 37
///
public byte IBM_PerformanceLimit;
///
- /// Byte 41
+ /// Byte 41
///
public byte IBM_OEMSpecific;
#endregion IBM vendor unique inquiry data structure
#region HP vendor unique inquiry data structure
///
- /// Means that the INQUIRY response contains 49 bytes or more, so this data has been filled
+ /// Means that the INQUIRY response contains 49 bytes or more, so this data has been filled
///
public bool HPPresent;
///
- /// WORM version
- /// Byte 40 bits 7 to 1
+ /// WORM version
+ /// Byte 40 bits 7 to 1
///
public byte HP_WORMVersion;
///
- /// WORM supported
- /// Byte 40 bit 0
+ /// WORM supported
+ /// Byte 40 bit 0
///
public bool HP_WORM;
///
- /// Bytes 43 to 48
+ /// Bytes 43 to 48
///
public byte[] HP_OBDR;
#endregion HP vendor unique inquiry data structure
#region Seagate vendor unique inquiry data structure
///
- /// Means that bytes 36 to 43 are filled
+ /// Means that bytes 36 to 43 are filled
///
public bool SeagatePresent;
///
- /// Drive Serial Number
- /// Bytes 36 to 43
+ /// Drive Serial Number
+ /// Bytes 36 to 43
///
public byte[] Seagate_DriveSerialNumber;
///
- /// Means that bytes 96 to 143 are filled
+ /// Means that bytes 96 to 143 are filled
///
public bool Seagate2Present;
///
- /// Contains Seagate copyright notice
- /// Bytes 96 to 143
+ /// Contains Seagate copyright notice
+ /// Bytes 96 to 143
///
public byte[] Seagate_Copyright;
///
- /// Means that bytes 144 to 147 are filled
+ /// Means that bytes 144 to 147 are filled
///
public bool Seagate3Present;
///
- /// Reserved Seagate field
- /// Bytes 144 to 147
+ /// Reserved Seagate field
+ /// Bytes 144 to 147
///
public byte[] Seagate_ServoPROMPartNo;
#endregion Seagate vendor unique inquiry data structure
#region Kreon vendor unique inquiry data structure
///
- /// Means that firmware is Kreon
+ /// Means that firmware is Kreon
///
public bool KreonPresent;
///
- /// Kreon identifier
- /// Bytes 36 to 40
+ /// Kreon identifier
+ /// Bytes 36 to 40
///
public byte[] KreonIdentifier;
///
- /// Kreon just a 0x20
- /// Bytes 41
+ /// Kreon just a 0x20
+ /// Bytes 41
///
public byte KreonSpace;
///
- /// Kreon version string
- /// Bytes 42 to 46
+ /// Kreon version string
+ /// Bytes 42 to 46
///
public byte[] KreonVersion;
#endregion Kreon vendor unique inquiry data structure
diff --git a/SCSI/MMC/AACS.cs b/SCSI/MMC/AACS.cs
index f5c7dfa..d1820d7 100644
--- a/SCSI/MMC/AACS.cs
+++ b/SCSI/MMC/AACS.cs
@@ -37,19 +37,19 @@ using System.Text;
namespace DiscImageChef.Decoders.SCSI.MMC
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -60,23 +60,23 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct AACSVolumeIdentifier
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to end
- /// AACS volume identifier data
+ /// Bytes 4 to end
+ /// AACS volume identifier data
///
public byte[] VolumeIdentifier;
}
@@ -84,23 +84,23 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct AACSMediaSerialNumber
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to end
- /// AACS media serial number
+ /// Bytes 4 to end
+ /// AACS media serial number
///
public byte[] MediaSerialNumber;
}
@@ -108,23 +108,23 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct AACSMediaIdentifier
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to end
- /// AACS media identifier data
+ /// Bytes 4 to end
+ /// AACS media identifier data
///
public byte[] MediaIdentifier;
}
@@ -132,23 +132,23 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct AACSMediaKeyBlock
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved;
///
- /// Byte 3
- /// Number of MKB packs available to transfer
+ /// Byte 3
+ /// Number of MKB packs available to transfer
///
public byte TotalPacks;
///
- /// Bytes 4 to end
- /// AACS media key block packs
+ /// Bytes 4 to end
+ /// AACS media key block packs
///
public byte[] MediaKeyBlockPacks;
}
@@ -156,23 +156,23 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct AACSDataKeys
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to end
- /// AACS data keys
+ /// Bytes 4 to end
+ /// AACS data keys
///
public byte[] DataKeys;
}
@@ -180,24 +180,24 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct AACSLBAExtentsResponse
{
///
- /// Bytes 0 to 1
- /// Data Length
+ /// Bytes 0 to 1
+ /// Data Length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved;
///
- /// Byte 3
- /// Number of LBA extents the drive can store.
- /// if(MaxLBAExtents == 0 && DataLength > 2), 256 extents can be stored
+ /// Byte 3
+ /// Number of LBA extents the drive can store.
+ /// if(MaxLBAExtents == 0 && DataLength > 2), 256 extents can be stored
///
public byte MaxLBAExtents;
///
- /// Bytes 4 to end
- /// LBA Extents
+ /// Bytes 4 to end
+ /// LBA Extents
///
public AACSLBAExtent[] Extents;
}
@@ -205,18 +205,18 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct AACSLBAExtent
{
///
- /// Bytes 0 to 7
- /// Reserved
+ /// Bytes 0 to 7
+ /// Reserved
///
public byte[] Reserved;
///
- /// Bytes 8 to 11
- /// Start LBA of extent
+ /// Bytes 8 to 11
+ /// Start LBA of extent
///
public uint StartLBA;
///
- /// Bytes 12 to 15
- /// Extent length
+ /// Bytes 12 to 15
+ /// Extent length
///
public uint LBACount;
}
diff --git a/SCSI/MMC/CPRM.cs b/SCSI/MMC/CPRM.cs
index a07b3d0..e7b7f68 100644
--- a/SCSI/MMC/CPRM.cs
+++ b/SCSI/MMC/CPRM.cs
@@ -37,19 +37,19 @@ using System.Text;
namespace DiscImageChef.Decoders.SCSI.MMC
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -60,23 +60,23 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct CPRMMediaKeyBlock
{
///
- /// Bytes 0 to 1
- /// Data Length
+ /// Bytes 0 to 1
+ /// Data Length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved;
///
- /// Byte 3
- /// Number of MKB packs available to transfer
+ /// Byte 3
+ /// Number of MKB packs available to transfer
///
public byte TotalPacks;
///
- /// Byte 4
- /// MKB Packs
+ /// Byte 4
+ /// MKB Packs
///
public byte[] MKBPackData;
}
diff --git a/SCSI/MMC/DiscInformation.cs b/SCSI/MMC/DiscInformation.cs
index 6de866f..cb2dcdd 100644
--- a/SCSI/MMC/DiscInformation.cs
+++ b/SCSI/MMC/DiscInformation.cs
@@ -37,19 +37,19 @@ using System.Text;
namespace DiscImageChef.Decoders.SCSI.MMC
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -60,123 +60,123 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct StandardDiscInformation
{
///
- /// Bytes 0 to 1
- /// 32 + OPCTablesNumber*8
+ /// Bytes 0 to 1
+ /// 32 + OPCTablesNumber*8
///
public ushort DataLength;
///
- /// Byte 2, bits 7 to 5
- /// 000b
+ /// Byte 2, bits 7 to 5
+ /// 000b
///
public byte DataType;
///
- /// Byte 2, bit 4
- /// If set, disc is erasable
+ /// Byte 2, bit 4
+ /// If set, disc is erasable
///
public bool Erasable;
///
- /// Byte 2, bits 3 to 2
- /// Status of last session
+ /// Byte 2, bits 3 to 2
+ /// Status of last session
///
public byte LastSessionStatus;
///
- /// Byte 2, bits 1 to 0
- /// Status of disc
+ /// Byte 2, bits 1 to 0
+ /// Status of disc
///
public byte DiscStatus;
///
- /// Byte 3
- /// Number of logical track that contains LBA 0
+ /// Byte 3
+ /// Number of logical track that contains LBA 0
///
public byte FirstTrackNumber;
///
- /// Byte 9 (MSB) and byte 4 (LSB)
- /// Number of sessions
+ /// Byte 9 (MSB) and byte 4 (LSB)
+ /// Number of sessions
///
public ushort Sessions;
///
- /// Byte 10 (MSB) and byte 5 (LSB)
- /// Number of first track in last session
+ /// Byte 10 (MSB) and byte 5 (LSB)
+ /// Number of first track in last session
///
public ushort FirstTrackLastSession;
///
- /// Byte 11 (MSB) and byte 6 (LSB)
- /// Number of last track in last session
+ /// Byte 11 (MSB) and byte 6 (LSB)
+ /// Number of last track in last session
///
public ushort LastTrackLastSession;
///
- /// Byte 7, bit 7
- /// If set, DiscIdentification is valid
+ /// Byte 7, bit 7
+ /// If set, DiscIdentification is valid
///
public bool DID_V;
///
- /// Byte 7, bit 6
- /// If set, DiscBarcode is valid
+ /// Byte 7, bit 6
+ /// If set, DiscBarcode is valid
///
public bool DBC_V;
///
- /// Byte 7, bit 5
- /// If set, disc is unrestricted
+ /// Byte 7, bit 5
+ /// If set, disc is unrestricted
///
public bool URU;
///
- /// Byte 7, bit 4
- /// If set DiscApplicationCode is valid
+ /// Byte 7, bit 4
+ /// If set DiscApplicationCode is valid
///
public bool DAC_V;
///
- /// Byte 7, bit 3
- /// Reserved
+ /// Byte 7, bit 3
+ /// Reserved
///
public bool Reserved;
///
- /// Byte 7, bit 2
- /// Copy of dirty bit from MRW status
+ /// Byte 7, bit 2
+ /// Copy of dirty bit from MRW status
///
public bool Dbit;
///
- /// Byte 7, bits 1 to 0
- /// Background format status
+ /// Byte 7, bits 1 to 0
+ /// Background format status
///
public byte BGFormatStatus;
///
- /// Byte 8
- /// Disc type code
+ /// Byte 8
+ /// Disc type code
///
public byte DiscType;
///
- /// Bytes 12 to 15
- /// Disc identification number from PMA
+ /// Bytes 12 to 15
+ /// Disc identification number from PMA
///
public uint DiscIdentification;
///
- /// Bytes 16 to 19
- /// Last Session Lead-in Start Address (MSF for CD, LBA for others)
+ /// Bytes 16 to 19
+ /// Last Session Lead-in Start Address (MSF for CD, LBA for others)
///
public uint LastSessionLeadInStartLBA;
///
- /// Bytes 20 to 23
- /// Last Possible Lead-out Start Address (MSF for CD, LBA for others)
+ /// Bytes 20 to 23
+ /// Last Possible Lead-out Start Address (MSF for CD, LBA for others)
///
public uint LastPossibleLeadOutStartLBA;
///
- /// Bytes 24 to 31
- /// Disc barcode
+ /// Bytes 24 to 31
+ /// Disc barcode
///
public ulong DiscBarcode;
///
- /// Byte 32
- /// Disc application code
+ /// Byte 32
+ /// Disc application code
///
public byte DiscApplicationCode;
///
- /// Byte 33
- /// How many OPC tables are
+ /// Byte 33
+ /// How many OPC tables are
///
public byte OPCTablesNumber;
///
- /// Bytes 34 to end
- /// OPC tables (8 bytes each)
+ /// Bytes 34 to end
+ /// OPC tables (8 bytes each)
///
public OPCTable[] OPCTables;
}
@@ -184,13 +184,13 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct OPCTable
{
///
- /// Bytes 0 to 1
- /// kilobytes/sec this OPC table applies to
+ /// Bytes 0 to 1
+ /// kilobytes/sec this OPC table applies to
///
public ushort Speed;
///
- /// Bytes 2 to 7
- /// OPC values
+ /// Bytes 2 to 7
+ /// OPC values
///
public byte[] OPCValues;
}
@@ -198,43 +198,43 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct TrackResourcesInformation
{
///
- /// Bytes 0 to 1
- /// 10
+ /// Bytes 0 to 1
+ /// 10
///
public ushort DataLength;
///
- /// Byte 2, bits 7 to 5
- /// 001b
+ /// Byte 2, bits 7 to 5
+ /// 001b
///
public byte DataType;
///
- /// Byte 2, bits 4 to 0
- /// Reserved
+ /// Byte 2, bits 4 to 0
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to 5
- /// Maximum possible number of the tracks on the disc
+ /// Bytes 4 to 5
+ /// Maximum possible number of the tracks on the disc
///
public ushort MaxTracks;
///
- /// Bytes 6 to 7
- /// Number of the assigned tracks on the disc
+ /// Bytes 6 to 7
+ /// Number of the assigned tracks on the disc
///
public ushort AssignedTracks;
///
- /// Bytes 8 to 9
- /// Maximum possible number of appendable tracks on the disc
+ /// Bytes 8 to 9
+ /// Maximum possible number of appendable tracks on the disc
///
public ushort MaxAppendableTracks;
///
- /// Bytes 10 to 11
- /// Current number of appendable tracks on the disc
+ /// Bytes 10 to 11
+ /// Current number of appendable tracks on the disc
///
public ushort AppendableTracks;
}
@@ -242,38 +242,38 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct POWResourcesInformation
{
///
- /// Bytes 0 to 1
- /// 14
+ /// Bytes 0 to 1
+ /// 14
///
public ushort DataLength;
///
- /// Byte 2, bits 7 to 5
- /// 010b
+ /// Byte 2, bits 7 to 5
+ /// 010b
///
public byte DataType;
///
- /// Byte 2, bits 4 to 0
- /// Reserved
+ /// Byte 2, bits 4 to 0
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to 7
- /// Remaining POW replacements
+ /// Bytes 4 to 7
+ /// Remaining POW replacements
///
public uint RemainingPOWReplacements;
///
- /// Bytes 8 to 11
- /// Remaining POW reallocation map entries
+ /// Bytes 8 to 11
+ /// Remaining POW reallocation map entries
///
public uint RemainingPOWReallocation;
///
- /// Bytes 12 to 15
- /// Number of remaining POW updates
+ /// Bytes 12 to 15
+ /// Number of remaining POW updates
///
public uint RemainingPOWUpdates;
}
@@ -415,8 +415,8 @@ namespace DiscImageChef.Decoders.SCSI.MMC
sb.AppendFormat("Last track in last session is track {0}", decoded.LastTrackLastSession).AppendLine();
sb.AppendFormat("Last session Lead-In address is {0} (as LBA) or {1:X2}:{2:X2}:{3:X2}",
decoded.LastSessionLeadInStartLBA, (decoded.LastSessionLeadInStartLBA & 0xFF0000) >> 16,
- (decoded.LastSessionLeadInStartLBA & 0xFF00) >> 8,
- decoded.LastSessionLeadInStartLBA & 0xFF).AppendLine();
+ (decoded.LastSessionLeadInStartLBA & 0xFF00) >> 8, decoded.LastSessionLeadInStartLBA & 0xFF)
+ .AppendLine();
sb.AppendFormat("Last possible Lead-Out address is {0} (as LBA) or {1:X2}:{2:X2}:{3:X2}",
decoded.LastPossibleLeadOutStartLBA, (decoded.LastPossibleLeadOutStartLBA & 0xFF0000) >> 16,
(decoded.LastPossibleLeadOutStartLBA & 0xFF00) >> 8,
diff --git a/SCSI/MMC/Enums.cs b/SCSI/MMC/Enums.cs
index 94c5448..2c64d2c 100644
--- a/SCSI/MMC/Enums.cs
+++ b/SCSI/MMC/Enums.cs
@@ -79,7 +79,7 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public enum DiscTypeCodes : byte
{
///
- /// Also valid for CD-DA, DVD and BD
+ /// Also valid for CD-DA, DVD and BD
///
CDROM = 0x00,
CDi = 0x10,
diff --git a/SCSI/MMC/Features.cs b/SCSI/MMC/Features.cs
index db3c515..8011b60 100644
--- a/SCSI/MMC/Features.cs
+++ b/SCSI/MMC/Features.cs
@@ -40,410 +40,410 @@ using System.Text;
namespace DiscImageChef.Decoders.SCSI.MMC
{
///
- /// MMC Feature enumeration
+ /// MMC Feature enumeration
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum FeatureNumber : ushort
{
///
- /// Lists all profiles
+ /// Lists all profiles
///
ProfileList = 0x0000,
///
- /// Mandatory behaviour
+ /// Mandatory behaviour
///
Core = 0x0001,
///
- /// Operational changes
+ /// Operational changes
///
Morphing = 0x0002,
///
- /// Removable medium
+ /// Removable medium
///
Removable = 0x0003,
///
- /// Ability to control write protection status
+ /// Ability to control write protection status
///
WriteProtect = 0x0004,
///
- /// Ability to read sectors with random addressing
+ /// Ability to read sectors with random addressing
///
RandomRead = 0x0010,
///
- /// Reads on OSTA Multi-Read
+ /// Reads on OSTA Multi-Read
///
MultiRead = 0x001D,
///
- /// Able to read CD structures
+ /// Able to read CD structures
///
CDRead = 0x001E,
///
- /// Able to read DVD structures
+ /// Able to read DVD structures
///
DVDRead = 0x001F,
///
- /// Ability to write sectors with random addressing
+ /// Ability to write sectors with random addressing
///
RandomWrite = 0x0020,
///
- /// Ability to sequentially write
+ /// Ability to sequentially write
///
IncrementalWrite = 0x0021,
///
- /// Support for media that requires erase before write
+ /// Support for media that requires erase before write
///
SectorErasable = 0x0022,
///
- /// Supports formatting media
+ /// Supports formatting media
///
Formattable = 0x0023,
///
- /// Ability to provide defect-free space
+ /// Ability to provide defect-free space
///
HardwareDefectMgmt = 0x0024,
///
- /// Supports for write-once media in random order
+ /// Supports for write-once media in random order
///
WriteOnce = 0x0025,
///
- /// Supports for media that shall be written from blocking boundaries
+ /// Supports for media that shall be written from blocking boundaries
///
RestrictedOverwrite = 0x0026,
///
- /// Supports high speed CD-RW
+ /// Supports high speed CD-RW
///
CDRWCAV = 0x0027,
///
- /// Read and optionally write MRW
+ /// Read and optionally write MRW
///
MRW = 0x0028,
///
- /// Ability to control RECOVERED ERROR reporting
+ /// Ability to control RECOVERED ERROR reporting
///
EnDefectReport = 0x0029,
///
- /// Ability to recognize, read and optionally write DVD+RW
+ /// Ability to recognize, read and optionally write DVD+RW
///
DVDRWPlus = 0x002A,
///
- /// Ability to read DVD+R
+ /// Ability to read DVD+R
///
DVDRPlus = 0x002B,
RigidOverWrite = 0x002C,
///
- /// Ability to write CD in Track-at-Once
+ /// Ability to write CD in Track-at-Once
///
CDTAO = 0x002D,
///
- /// Ability to write CD in Session-at-Once or RAW
+ /// Ability to write CD in Session-at-Once or RAW
///
CDMastering = 0x002E,
///
- /// Ability to write DVD structures
+ /// Ability to write DVD structures
///
DVDRWrite = 0x002F,
///
- /// Ability to read DDCD
+ /// Ability to read DDCD
///
DDCD = 0x0030,
///
- /// Ability to write DDCD-R
+ /// Ability to write DDCD-R
///
DDCDR = 0x0031,
///
- /// Ability to write DDCD-RW
+ /// Ability to write DDCD-RW
///
DDCDRW = 0x0032,
///
- /// Ability to record in layer jump mode
+ /// Ability to record in layer jump mode
///
LayerJump = 0x0033,
///
- /// Ability to perform Layer Jump recording on Rigid Restricted Overwrite
+ /// Ability to perform Layer Jump recording on Rigid Restricted Overwrite
///
LJRigid = 0x0034,
///
- /// Ability to stop the long immediate operation
+ /// Ability to stop the long immediate operation
///
StopLong = 0x0035,
///
- /// Ability to report CD-RW media sub-types supported for write
+ /// Ability to report CD-RW media sub-types supported for write
///
CDRWMediaWrite = 0x0037,
///
- /// Logical block overwrite service on BD-R formatted as SRM+POW
+ /// Logical block overwrite service on BD-R formatted as SRM+POW
///
BDRPOW = 0x0038,
///
- /// Ability to read DVD+RW DL
+ /// Ability to read DVD+RW DL
///
DVDRWDLPlus = 0x003A,
///
- /// Ability to read DVD+R DL
+ /// Ability to read DVD+R DL
///
DVDRDLPlus = 0x003B,
///
- /// Ability to read BD discs
+ /// Ability to read BD discs
///
BDRead = 0x0040,
///
- /// Ability to write BD discs
+ /// Ability to write BD discs
///
BDWrite = 0x0041,
///
- /// Timely, Safe Recording
+ /// Timely, Safe Recording
///
TSR = 0x0042,
///
- /// Ability to read HD DVD
+ /// Ability to read HD DVD
///
HDDVDRead = 0x0050,
///
- /// Ability to write HD DVD
+ /// Ability to write HD DVD
///
HDDVDWrite = 0x0051,
///
- /// Ability to write HD DVD-RW fragmented
+ /// Ability to write HD DVD-RW fragmented
///
HDDVDRWFragment = 0x0052,
///
- /// Supports some Hybrid Discs
+ /// Supports some Hybrid Discs
///
Hybrid = 0x0080,
///
- /// Host and device directed power management
+ /// Host and device directed power management
///
PowerMgmt = 0x0100,
///
- /// Supports S.M.A.R.T.
+ /// Supports S.M.A.R.T.
///
SMART = 0x0101,
///
- /// Single machanism multiple disc changer
+ /// Single machanism multiple disc changer
///
Changer = 0x0102,
///
- /// Ability to play CD audio to an analogue output
+ /// Ability to play CD audio to an analogue output
///
CDAudioExt = 0x0103,
///
- /// Ability to accept new microcode
+ /// Ability to accept new microcode
///
MicrocodeUpgrade = 0x0104,
///
- /// Ability to respond to all commands within a specific time
+ /// Ability to respond to all commands within a specific time
///
Timeout = 0x0105,
///
- /// Supports DVD CSS/CPPM
+ /// Supports DVD CSS/CPPM
///
CSS = 0x0106,
///
- /// Ability to read and write using host requested performance parameters
+ /// Ability to read and write using host requested performance parameters
///
RTS = 0x0107,
///
- /// Drive has a unique identifier
+ /// Drive has a unique identifier
///
DriveSerial = 0x0108,
///
- /// Ability to return unique Media Serial Number
+ /// Ability to return unique Media Serial Number
///
MediaSerial = 0x0109,
///
- /// Ability to read and/or write DCBs
+ /// Ability to read and/or write DCBs
///
DCBs = 0x010A,
///
- /// Supports DVD CPRM
+ /// Supports DVD CPRM
///
CPRM = 0x010B,
///
- /// Firmware creation date report
+ /// Firmware creation date report
///
FirmwareInfo = 0x010C,
///
- /// Ability to decode and optionally encode AACS
+ /// Ability to decode and optionally encode AACS
///
AACS = 0x010D,
///
- /// Ability to perform DVD CSS managed recording
+ /// Ability to perform DVD CSS managed recording
///
CSSManagedRec = 0x010E,
///
- /// Ability to decode and optionally encode VCPS
+ /// Ability to decode and optionally encode VCPS
///
VCPS = 0x0110,
///
- /// Supports SecurDisc
+ /// Supports SecurDisc
///
SecurDisc = 0x0113,
///
- /// TCG Optical Security Subsystem Class
+ /// TCG Optical Security Subsystem Class
///
OSSC = 0x0142
}
///
- /// MMC Profile enumeration
+ /// MMC Profile enumeration
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
public enum ProfileNumber : ushort
{
///
- /// Not to use
+ /// Not to use
///
Reserved = 0x0000,
///
- /// Non-removable disk profile
+ /// Non-removable disk profile
///
NonRemovable = 0x0001,
///
- /// Rewritable with removable media
+ /// Rewritable with removable media
///
Removable = 0x0002,
///
- /// Magneto-Optical with sector erase
+ /// Magneto-Optical with sector erase
///
MOErasable = 0x0003,
///
- /// Optical write once
+ /// Optical write once
///
OpticalWORM = 0x0004,
///
- /// Advance Storage - Magneto-Optical
+ /// Advance Storage - Magneto-Optical
///
ASMO = 0x0005,
///
- /// Read-only Compact Disc
+ /// Read-only Compact Disc
///
CDROM = 0x0008,
///
- /// Write-once Compact Disc
+ /// Write-once Compact Disc
///
CDR = 0x0009,
///
- /// Re-writable Compact Disc
+ /// Re-writable Compact Disc
///
CDRW = 0x000A,
///
- /// Read-only DVD
+ /// Read-only DVD
///
DVDROM = 0x0010,
///
- /// Write-once sequentially recorded DVD-R
+ /// Write-once sequentially recorded DVD-R
///
DVDRSeq = 0x0011,
///
- /// DVD-RAM
+ /// DVD-RAM
///
DVDRAM = 0x0012,
///
- /// Restricted overwrite DVD-RW
+ /// Restricted overwrite DVD-RW
///
DVDRWRes = 0x0013,
///
- /// Sequential recording DVD-RW
+ /// Sequential recording DVD-RW
///
DVDRWSeq = 0x0014,
///
- /// Sequential recording DVD-R DL
+ /// Sequential recording DVD-R DL
///
DVDRDLSeq = 0x0015,
///
- /// Layer jump recording DVD-R DL
+ /// Layer jump recording DVD-R DL
///
DVDRDLJump = 0x0016,
///
- /// DVD-RW DL
+ /// DVD-RW DL
///
DVDRWDL = 0x0017,
///
- /// DVD-Download
+ /// DVD-Download
///
DVDDownload = 0x0018,
///
- /// DVD+RW
+ /// DVD+RW
///
DVDRWPlus = 0x001A,
///
- /// DVD+R
+ /// DVD+R
///
DVDRPlus = 0x001B,
///
- /// DDCD-ROM
+ /// DDCD-ROM
///
DDCDROM = 0x0020,
///
- /// DDCD-R
+ /// DDCD-R
///
DDCDR = 0x0021,
///
- /// DDCD-RW
+ /// DDCD-RW
///
DDCDRW = 0x0022,
///
- /// DVD+RW DL
+ /// DVD+RW DL
///
DVDRWDLPlus = 0x002A,
///
- /// DVD+R DL
+ /// DVD+R DL
///
DVDRDLPlus = 0x002B,
///
- /// BD-ROM
+ /// BD-ROM
///
BDROM = 0x0040,
///
- /// BD-R SRM
+ /// BD-R SRM
///
BDRSeq = 0x0041,
///
- /// BD-R RRM
+ /// BD-R RRM
///
BDRRdm = 0x0042,
///
- /// BD-RE
+ /// BD-RE
///
BDRE = 0x0043,
///
- /// HD DVD-ROM
+ /// HD DVD-ROM
///
HDDVDROM = 0x0050,
///
- /// HD DVD-R
+ /// HD DVD-R
///
HDDVDR = 0x0051,
///
- /// HD DVD-RAM
+ /// HD DVD-RAM
///
HDDVDRAM = 0x0052,
///
- /// HD DVD-RW
+ /// HD DVD-RW
///
HDDVDRW = 0x0053,
///
- /// HD DVD-R DL
+ /// HD DVD-R DL
///
HDDVDRDL = 0x0058,
///
- /// HD DVD-RW DL
+ /// HD DVD-RW DL
///
HDDVDRWDL = 0x005A,
///
- /// HDBurn CD-ROM
+ /// HDBurn CD-ROM
///
HDBURNROM = 0x0080,
///
- /// HDBurn CD-R
+ /// HDBurn CD-R
///
HDBURNR = 0x0081,
///
- /// HDBurn CD-RW
+ /// HDBurn CD-RW
///
HDBURNRW = 0x0082,
///
- /// Drive does not conform to any profiles
+ /// Drive does not conform to any profiles
///
Unconforming = 0xFFFF
}
@@ -452,43 +452,43 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public enum PhysicalInterfaces : uint
{
///
- /// Unspecified physical interface
+ /// Unspecified physical interface
///
Unspecified = 0,
///
- /// SCSI
+ /// SCSI
///
SCSI = 1,
///
- /// ATAPI
+ /// ATAPI
///
ATAPI = 2,
///
- /// IEEE-1394/1995
+ /// IEEE-1394/1995
///
IEEE1394 = 3,
///
- /// IEEE-1394A
+ /// IEEE-1394A
///
IEEE1394A = 4,
///
- /// Fibre Channel
+ /// Fibre Channel
///
FC = 5,
///
- /// IEEE-1394B
+ /// IEEE-1394B
///
IEEE1394B = 6,
///
- /// Serial ATAPI
+ /// Serial ATAPI
///
SerialATAPI = 7,
///
- /// USB
+ /// USB
///
USB = 8,
///
- /// Vendor unique
+ /// Vendor unique
///
Vendor = 0xFFFF
}
@@ -503,7 +503,7 @@ namespace DiscImageChef.Decoders.SCSI.MMC
}
///
- /// Profile List Feature (0000h)
+ /// Profile List Feature (0000h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -511,25 +511,25 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0000
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// All supported profiles
+ /// All supported profiles
///
public Profile[] Profiles;
}
///
- /// Core Feature (0001h)
+ /// Core Feature (0001h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -537,33 +537,33 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0001
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Currently in-use physical interface standard
+ /// Currently in-use physical interface standard
///
public PhysicalInterfaces PhysicalInterfaceStandard;
///
- /// Supports EVPD, Page Code and 16-bit Allocation Length as defined in SPC-3
+ /// Supports EVPD, Page Code and 16-bit Allocation Length as defined in SPC-3
///
public bool INQ2;
///
- /// Supports Device Busy Event
+ /// Supports Device Busy Event
///
public bool DBE;
}
///
- /// Morphing Feature (0002h)
+ /// Morphing Feature (0002h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -571,30 +571,30 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0002
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Supports Operational Change Request/Nofitication Class Events
- /// of GET EVENT/STATUS NOTIFICATION
+ /// Supports Operational Change Request/Nofitication Class Events
+ /// of GET EVENT/STATUS NOTIFICATION
///
public bool OCEvent;
///
- /// Supports asynchronous GET EVENT/STATUS NOTIFICATION
+ /// Supports asynchronous GET EVENT/STATUS NOTIFICATION
///
public bool Async;
}
///
- /// Removable Medium Feature (0003h)
+ /// Removable Medium Feature (0003h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -602,45 +602,45 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0003
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Mechanism type
+ /// Mechanism type
///
public byte LoadingMechanismType;
///
- /// Drive is able to load the medium
+ /// Drive is able to load the medium
///
public bool Load;
///
- /// Device can eject medium
+ /// Device can eject medium
///
public bool Eject;
///
- /// Device starts in medium ejection/insertion allow
+ /// Device starts in medium ejection/insertion allow
///
public bool PreventJumper;
///
- /// Reports Device Busy Class events during medium loading/unloading
+ /// Reports Device Busy Class events during medium loading/unloading
///
public bool DBML;
///
- /// Medium is currently locked
+ /// Medium is currently locked
///
public bool Lock;
}
///
- /// Write Protect Feature (0004h)
+ /// Write Protect Feature (0004h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -648,37 +648,37 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0004
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Drive can read/write Disc Write Protect PAC on BD-R/-RE media
+ /// Drive can read/write Disc Write Protect PAC on BD-R/-RE media
///
public bool DWP;
///
- /// Supports reading/writing Write Inhibit DCB on DVD+RW media.
+ /// Supports reading/writing Write Inhibit DCB on DVD+RW media.
///
public bool WDCB;
///
- /// Supports PWP status
+ /// Supports PWP status
///
public bool SPWP;
///
- /// Supports SWPP bit of mode page 1Dh
+ /// Supports SWPP bit of mode page 1Dh
///
public bool SSWPP;
}
///
- /// Random Readable Feature (0010h)
+ /// Random Readable Feature (0010h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -686,33 +686,33 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0010
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Bytes per logical block
+ /// Bytes per logical block
///
public uint LogicalBlockSize;
///
- /// Number of logical blocks per device readable unit
+ /// Number of logical blocks per device readable unit
///
public ushort Blocking;
///
- /// Read/Write Error Recovery page is present
+ /// Read/Write Error Recovery page is present
///
public bool PP;
}
///
- /// Multi-Read Feature (001Dh)
+ /// Multi-Read Feature (001Dh)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -720,21 +720,21 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_001D
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
}
///
- /// CD Read Feature (001Eh)
+ /// CD Read Feature (001Eh)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -742,33 +742,33 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_001E
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Supports DAP bit in READ CD and READ CD MSF
+ /// Supports DAP bit in READ CD and READ CD MSF
///
public bool DAP;
///
- /// Supports C2 Error Pointers
+ /// Supports C2 Error Pointers
///
public bool C2;
///
- /// Can read CD-Text with READ TOC/PMA/ATIP
+ /// Can read CD-Text with READ TOC/PMA/ATIP
///
public bool CDText;
}
///
- /// DVD Read Feature (001Fh)
+ /// DVD Read Feature (001Fh)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -776,33 +776,33 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_001F
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Compliant with DVD Multi Drive Read-only specifications
+ /// Compliant with DVD Multi Drive Read-only specifications
///
public bool MULTI110;
///
- /// Supports reading all DVD-RW DL
+ /// Supports reading all DVD-RW DL
///
public bool DualRW;
///
- /// Supports reading all DVD-R DL including remapping
+ /// Supports reading all DVD-R DL including remapping
///
public bool DualR;
}
///
- /// Random Writable Feature (0020h)
+ /// Random Writable Feature (0020h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -810,37 +810,37 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0020
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Last logical block address
+ /// Last logical block address
///
public uint LastLBA;
///
- /// Bytes per logical block
+ /// Bytes per logical block
///
public uint LogicalBlockSize;
///
- /// Number of logical blocks per device readable unit
+ /// Number of logical blocks per device readable unit
///
public ushort Blocking;
///
- /// Read/Write Error Recovery page is present
+ /// Read/Write Error Recovery page is present
///
public bool PP;
}
///
- /// Incremental Streaming Writable Feature (0021h)
+ /// Incremental Streaming Writable Feature (0021h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -848,41 +848,41 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0021
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Bitmask of supported data types
+ /// Bitmask of supported data types
///
public ushort DataTypeSupported;
///
- /// Can report Track Resources Information of READ DISC INFORMATION
+ /// Can report Track Resources Information of READ DISC INFORMATION
///
public bool TRIO;
///
- /// Supports Address Mode in RESERVE TRACK
+ /// Supports Address Mode in RESERVE TRACK
///
public bool ARSV;
///
- /// Zero loss linking
+ /// Zero loss linking
///
public bool BUF;
///
- /// Logical blocks per link
+ /// Logical blocks per link
///
public byte[] LinkSizes;
}
///
- /// Sector Erasable Feature (0022h)
+ /// Sector Erasable Feature (0022h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -890,21 +890,21 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0022
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
}
///
- /// Formattable Feature (0023h)
+ /// Formattable Feature (0023h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -912,45 +912,45 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0023
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Supports formatting BD-RE without spare area
+ /// Supports formatting BD-RE without spare area
///
public bool RENoSA;
///
- /// Supports expansion of the spare area on BD-RE
+ /// Supports expansion of the spare area on BD-RE
///
public bool Expand;
///
- /// Supports FORMAT type 30h sub-type 11b
+ /// Supports FORMAT type 30h sub-type 11b
///
public bool QCert;
///
- /// Supports FORMAT type 30h sub-type 10b
+ /// Supports FORMAT type 30h sub-type 10b
///
public bool Cert;
///
- /// Supports FORMAT type 18h
+ /// Supports FORMAT type 18h
///
public bool FRF;
///
- /// Supports FORMAT type 00h/32h sub-type 10b on BD-R
+ /// Supports FORMAT type 00h/32h sub-type 10b on BD-R
///
public bool RRM;
}
///
- /// Hardware Defect Management Feature (0024h)
+ /// Hardware Defect Management Feature (0024h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -958,25 +958,25 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0024
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Supports READ DISC STRUCTURE with Format Code 0Ah (Spare Area Information)
+ /// Supports READ DISC STRUCTURE with Format Code 0Ah (Spare Area Information)
///
public bool SSA;
}
///
- /// Write Once Feature (0025h)
+ /// Write Once Feature (0025h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -984,33 +984,33 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0025
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Bytes per logical block
+ /// Bytes per logical block
///
public uint LogicalBlockSize;
///
- /// Number of logical blocks per device readable unit
+ /// Number of logical blocks per device readable unit
///
public ushort Blocking;
///
- /// Read/Write Error Recovery page is present
+ /// Read/Write Error Recovery page is present
///
public bool PP;
}
///
- /// Restricted Overwrite Feature (0026h)
+ /// Restricted Overwrite Feature (0026h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1018,21 +1018,21 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0026
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
}
///
- /// CD-RW CAV Write Feature (0027h)
+ /// CD-RW CAV Write Feature (0027h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1040,21 +1040,21 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0027
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
}
///
- /// MRW Feature (0028h)
+ /// MRW Feature (0028h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1062,33 +1062,33 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0028
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Can read DVD+MRW discs
+ /// Can read DVD+MRW discs
///
public bool DVDPRead;
///
- /// Can write DVD+MRW discs
+ /// Can write DVD+MRW discs
///
public bool DVDPWrite;
///
- /// Can format and write to CD-MRW discs
+ /// Can format and write to CD-MRW discs
///
public bool Write;
}
///
- /// Enhanced Defect Reporting Feature (0029h)
+ /// Enhanced Defect Reporting Feature (0029h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1096,33 +1096,33 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0029
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Supports DRT-DM
+ /// Supports DRT-DM
///
public bool DRTDM;
///
- /// Maximum number of DBI cache zones device can handle separately
+ /// Maximum number of DBI cache zones device can handle separately
///
public byte DBICacheZones;
///
- /// Number of entries in worst case to case DBI overflow
+ /// Number of entries in worst case to case DBI overflow
///
public ushort Entries;
}
///
- /// DVD+RW Feature (002Ah)
+ /// DVD+RW Feature (002Ah)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1130,33 +1130,33 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_002A
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Can format DVD+RW discs
+ /// Can format DVD+RW discs
///
public bool Write;
///
- /// FORMAT UNIT supports quick start formatting
+ /// FORMAT UNIT supports quick start formatting
///
public bool QuickStart;
///
- /// Drive only supports read compatibility stop
+ /// Drive only supports read compatibility stop
///
public bool CloseOnly;
}
///
- /// DVD+R Feature (002Bh)
+ /// DVD+R Feature (002Bh)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1164,25 +1164,25 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_002B
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Can write DVD+R
+ /// Can write DVD+R
///
public bool Write;
}
///
- /// Rigid Restricted Overwrite Feature (002Ch)
+ /// Rigid Restricted Overwrite Feature (002Ch)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1190,37 +1190,37 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_002C
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Can generate Defect Status Data during formatting
+ /// Can generate Defect Status Data during formatting
///
public bool DSDG;
///
- /// Can read Defect Status Data recorded on medium
+ /// Can read Defect Status Data recorded on medium
///
public bool DSDR;
///
- /// Supports writing on an intermediate state Session and quick formatting
+ /// Supports writing on an intermediate state Session and quick formatting
///
public bool Intermediate;
///
- /// Supports BLANK command types 00h and 01h
+ /// Supports BLANK command types 00h and 01h
///
public bool Blank;
}
///
- /// CD Track at Once Feature (002Dh)
+ /// CD Track at Once Feature (002Dh)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1228,49 +1228,49 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_002D
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Supports zero loss linking
+ /// Supports zero loss linking
///
public bool BUF;
///
- /// Supports writing R-W subchannels in raw mode
+ /// Supports writing R-W subchannels in raw mode
///
public bool RWRaw;
///
- /// Supports writing R-W subchannels in packed mode
+ /// Supports writing R-W subchannels in packed mode
///
public bool RWPack;
///
- /// Can perform test writes
+ /// Can perform test writes
///
public bool TestWrite;
///
- /// Supports overwriting a TAO track with another
+ /// Supports overwriting a TAO track with another
///
public bool CDRW;
///
- /// Can write R-W subchannels with user provided data
+ /// Can write R-W subchannels with user provided data
///
public bool RWSubchannel;
///
- /// Bitmask of supported data types
+ /// Bitmask of supported data types
///
public ushort DataTypeSupported;
}
///
- /// CD Mastering (Session at Once) Feature (002Eh)
+ /// CD Mastering (Session at Once) Feature (002Eh)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1278,53 +1278,53 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_002E
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Supports zero loss linking
+ /// Supports zero loss linking
///
public bool BUF;
///
- /// Can write in Session at Once
+ /// Can write in Session at Once
///
public bool SAO;
///
- /// Can write multi-session in RAW
+ /// Can write multi-session in RAW
///
public bool RAWMS;
///
- /// Can write in RAW
+ /// Can write in RAW
///
public bool RAW;
///
- /// Can perform test writes
+ /// Can perform test writes
///
public bool TestWrite;
///
- /// Can overwrite previously recorded data
+ /// Can overwrite previously recorded data
///
public bool CDRW;
///
- /// Can write R-W subchannels with user provided data
+ /// Can write R-W subchannels with user provided data
///
public bool RW;
///
- /// Maximum length of a Cue Sheet for Session at Once
+ /// Maximum length of a Cue Sheet for Session at Once
///
public uint MaxCueSheet;
}
///
- /// DVD-R/-RW Write Feature (002Fh)
+ /// DVD-R/-RW Write Feature (002Fh)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1332,37 +1332,37 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_002F
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Buffer Under-run protection
+ /// Buffer Under-run protection
///
public bool BUF;
///
- /// Supports writing DVD-R DL
+ /// Supports writing DVD-R DL
///
public bool RDL;
///
- /// Test write
+ /// Test write
///
public bool TestWrite;
///
- /// Can write and erase DVD-RW
+ /// Can write and erase DVD-RW
///
public bool DVDRW;
}
///
- /// Double Density CD Read Feature (0030h)
+ /// Double Density CD Read Feature (0030h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1370,21 +1370,21 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0030
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
}
///
- /// Double Density CD-R Write Feature (0031h)
+ /// Double Density CD-R Write Feature (0031h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1392,25 +1392,25 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0031
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Test write
+ /// Test write
///
public bool TestWrite;
}
///
- /// Double Density CD-RW Write Feature (0032h)
+ /// Double Density CD-RW Write Feature (0032h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1418,29 +1418,29 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0032
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Supports quick formatting
+ /// Supports quick formatting
///
public bool Intermediate;
///
- /// Supports BLANK command
+ /// Supports BLANK command
///
public bool Blank;
}
///
- /// Layer Jump Recording Feature (0033h)
+ /// Layer Jump Recording Feature (0033h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1448,22 +1448,22 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0033
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
public byte[] LinkSizes;
}
///
- /// Stop Long Operation Feature (0035h)
+ /// Stop Long Operation Feature (0035h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1471,21 +1471,21 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0035
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
}
///
- /// CD-RW Media Write Support Feature (0037h)
+ /// CD-RW Media Write Support Feature (0037h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1493,25 +1493,25 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0037
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Bitmask of supported CD-RW media sub-types
+ /// Bitmask of supported CD-RW media sub-types
///
public byte SubtypeSupport;
}
///
- /// BD-R Pseudo-Overwrite (POW) Feature (0038h)
+ /// BD-R Pseudo-Overwrite (POW) Feature (0038h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1519,21 +1519,21 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0038
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
}
///
- /// DVD+RW Dual Layer Feature (003Ah)
+ /// DVD+RW Dual Layer Feature (003Ah)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1541,33 +1541,33 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_003A
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Can format DVD+RW DL discs
+ /// Can format DVD+RW DL discs
///
public bool Write;
///
- /// FORMAT UNIT supports quick start formatting
+ /// FORMAT UNIT supports quick start formatting
///
public bool QuickStart;
///
- /// Drive only supports read compatibility stop
+ /// Drive only supports read compatibility stop
///
public bool CloseOnly;
}
///
- /// DVD+R Dual Layer Feature (003Bh)
+ /// DVD+R Dual Layer Feature (003Bh)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1575,33 +1575,33 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_003B
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Can format DVD+R DL discs
+ /// Can format DVD+R DL discs
///
public bool Write;
///
- /// FORMAT UNIT supports quick start formatting
+ /// FORMAT UNIT supports quick start formatting
///
public bool QuickStart;
///
- /// Drive only supports read compatibility stop
+ /// Drive only supports read compatibility stop
///
public bool CloseOnly;
}
///
- /// BD Read Feature (0040h)
+ /// BD Read Feature (0040h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1609,53 +1609,53 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0040
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Can read BCA
+ /// Can read BCA
///
public bool BCA;
///
- /// Supports reading BD-RE Ver.2
+ /// Supports reading BD-RE Ver.2
///
public bool RE2;
///
- /// Supports reading BD-RE Ver.1
+ /// Supports reading BD-RE Ver.1
///
public bool RE1;
///
- /// Obsolete
+ /// Obsolete
///
public bool OldRE;
///
- /// Supports reading BD-R Ver.1
+ /// Supports reading BD-R Ver.1
///
public bool R;
///
- /// Obsolete
+ /// Obsolete
///
public bool OldR;
///
- /// Supports reading BD-ROM Ver.1
+ /// Supports reading BD-ROM Ver.1
///
public bool ROM;
///
- /// Obsolete
+ /// Obsolete
///
public bool OldROM;
}
///
- /// BD Write Feature (0041h)
+ /// BD Write Feature (0041h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1663,45 +1663,45 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0041
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Supports verify not required
+ /// Supports verify not required
///
public bool SVNR;
///
- /// Supports writing BD-RE Ver.2
+ /// Supports writing BD-RE Ver.2
///
public bool RE2;
///
- /// Supports writing BD-RE Ver.1
+ /// Supports writing BD-RE Ver.1
///
public bool RE1;
///
- /// Obsolete
+ /// Obsolete
///
public bool OldRE;
///
- /// Supports writing BD-R Ver.1
+ /// Supports writing BD-R Ver.1
///
public bool R;
///
- /// Obsolete
+ /// Obsolete
///
public bool OldR;
}
///
- /// TSR Feature (0042h)
+ /// TSR Feature (0042h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1709,21 +1709,21 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0042
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
}
///
- /// HD DVD Read Feature (0050h)
+ /// HD DVD Read Feature (0050h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1731,29 +1731,29 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0050
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Can read HD DVD-R
+ /// Can read HD DVD-R
///
public bool HDDVDR;
///
- /// Can read HD DVD-RAM
+ /// Can read HD DVD-RAM
///
public bool HDDVDRAM;
}
///
- /// HD DVD Write Feature (0051h)
+ /// HD DVD Write Feature (0051h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1761,29 +1761,29 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0051
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Can write HD DVD-R
+ /// Can write HD DVD-R
///
public bool HDDVDR;
///
- /// Can write HD DVD-RAM
+ /// Can write HD DVD-RAM
///
public bool HDDVDRAM;
}
///
- /// Hybrid Disc Feature (0080h)
+ /// Hybrid Disc Feature (0080h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1791,25 +1791,25 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0080
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Reset immunity
+ /// Reset immunity
///
public bool RI;
}
///
- /// Power Management Feature (0100h)
+ /// Power Management Feature (0100h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1817,21 +1817,21 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0100
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
}
///
- /// S.M.A.R.T. Feature (0101h)
+ /// S.M.A.R.T. Feature (0101h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1839,25 +1839,25 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0101
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Mode Page 1Ch is present
+ /// Mode Page 1Ch is present
///
public bool PP;
}
///
- /// Embedded Changer Feature (0102h)
+ /// Embedded Changer Feature (0102h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1865,33 +1865,33 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0102
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Side change capable
+ /// Side change capable
///
public bool SCC;
///
- /// Supports Disc Present
+ /// Supports Disc Present
///
public bool SDP;
///
- /// Number of slots - 1
+ /// Number of slots - 1
///
public byte HighestSlotNumber;
}
///
- /// CD Audio External Play Feature (0103h)
+ /// CD Audio External Play Feature (0103h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1899,37 +1899,37 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0103
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Supports SCAN command
+ /// Supports SCAN command
///
public bool Scan;
///
- /// Separate Channel Mute
+ /// Separate Channel Mute
///
public bool SCM;
///
- /// Separate Volume
+ /// Separate Volume
///
public bool SV;
///
- /// Number of volume levels
+ /// Number of volume levels
///
public ushort VolumeLevels;
}
///
- /// Microcode Upgrade Feature (0104h)
+ /// Microcode Upgrade Feature (0104h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1937,25 +1937,25 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0104
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Supports validating 5-bit mode field of READ BUFFER and WRITE BUFFER commands.
+ /// Supports validating 5-bit mode field of READ BUFFER and WRITE BUFFER commands.
///
public bool M5;
}
///
- /// Time-Out Feature (0105h)
+ /// Time-Out Feature (0105h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1963,29 +1963,29 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0105
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Supports G3Enable bit and Group3 Timeout field in Mode Page 1Dh
+ /// Supports G3Enable bit and Group3 Timeout field in Mode Page 1Dh
///
public bool Group3;
///
- /// Indicates a unit of block length, in sectors, corresponding to increase a unit of Group 3 time unit
+ /// Indicates a unit of block length, in sectors, corresponding to increase a unit of Group 3 time unit
///
public ushort UnitLength;
}
///
- /// DVD-CSS Feature (0106h)
+ /// DVD-CSS Feature (0106h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -1993,25 +1993,25 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0106
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// CSS version
+ /// CSS version
///
public byte CSSVersion;
}
///
- /// Real Time Streaming Feature (0107h)
+ /// Real Time Streaming Feature (0107h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -2019,45 +2019,45 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0107
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Supports Set Minimum Performance bit in SET STREAMING
+ /// Supports Set Minimum Performance bit in SET STREAMING
///
public bool SMP;
///
- /// Supports READ BUFFER CAPACITY with block bit set
+ /// Supports READ BUFFER CAPACITY with block bit set
///
public bool RBCB;
///
- /// Supports SET CD SPEED
+ /// Supports SET CD SPEED
///
public bool SCS;
///
- /// Has Mode Page 2Ah with Speed Performance Descriptors
+ /// Has Mode Page 2Ah with Speed Performance Descriptors
///
public bool MP2A;
///
- /// Supports type 03h of GET PERFORMANCE
+ /// Supports type 03h of GET PERFORMANCE
///
public bool WSPD;
///
- /// Supports stream recording
+ /// Supports stream recording
///
public bool SW;
}
///
- /// Drive serial number (0108h)
+ /// Drive serial number (0108h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -2065,25 +2065,25 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0108
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Drive serial number
+ /// Drive serial number
///
public string Serial;
}
///
- /// Media Serial Number Feature (0109h)
+ /// Media Serial Number Feature (0109h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -2091,21 +2091,21 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0109
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
}
///
- /// Disc Control Blocks Feature (010Ah)
+ /// Disc Control Blocks Feature (010Ah)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -2113,22 +2113,22 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_010A
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
public uint[] DCBs;
}
///
- /// DVD CPRM Feature (010Bh)
+ /// DVD CPRM Feature (010Bh)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -2136,25 +2136,25 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_010B
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// CPRM version
+ /// CPRM version
///
public byte CPRMVersion;
}
///
- /// Firmware Information Feature (010Ch)
+ /// Firmware Information Feature (010Ch)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -2162,15 +2162,15 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_010C
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
public ushort Century;
@@ -2183,7 +2183,7 @@ namespace DiscImageChef.Decoders.SCSI.MMC
}
///
- /// AACS Feature (010Dh)
+ /// AACS Feature (010Dh)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -2191,53 +2191,53 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_010D
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Drive supports reading drive certificate
+ /// Drive supports reading drive certificate
///
public bool RDC;
///
- /// Drive can read media key block of CPRM
+ /// Drive can read media key block of CPRM
///
public bool RMC;
///
- /// Drive can write bus encrypted blocks
+ /// Drive can write bus encrypted blocks
///
public bool WBE;
///
- /// Drive supports bus encryption
+ /// Drive supports bus encryption
///
public bool BEC;
///
- /// Drive supports generating the binding nonce
+ /// Drive supports generating the binding nonce
///
public bool BNG;
///
- /// Blocks required to store the binding nonce for the media
+ /// Blocks required to store the binding nonce for the media
///
public byte BindNonceBlocks;
///
- /// Maximum number of AGIDs supported concurrently
+ /// Maximum number of AGIDs supported concurrently
///
public byte AGIDs;
///
- /// AACS version
+ /// AACS version
///
public byte AACSVersion;
}
///
- /// DVD CSS Managed Recording Feature (010Eh)
+ /// DVD CSS Managed Recording Feature (010Eh)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -2245,25 +2245,25 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_010E
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Maximum number of Scramble Extent information entries in a single SEND DISC STRUCTURE
+ /// Maximum number of Scramble Extent information entries in a single SEND DISC STRUCTURE
///
public byte MaxScrambleExtent;
}
///
- /// SecurDisc Feature (0113h)
+ /// SecurDisc Feature (0113h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -2271,21 +2271,21 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0113
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
}
///
- /// OSSC Feature (0142h)
+ /// OSSC Feature (0142h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -2293,34 +2293,34 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0142
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
///
- /// Supports PSA updates on write-once media
+ /// Supports PSA updates on write-once media
///
public bool PSAU;
///
- /// Supports linked OSPBs
+ /// Supports linked OSPBs
///
public bool LOSPB;
///
- /// Restricted to recording only OSSC disc format
+ /// Restricted to recording only OSSC disc format
///
public bool ME;
public ushort[] Profiles;
}
///
- /// VCPS Feature (0110h)
+ /// VCPS Feature (0110h)
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -2328,15 +2328,15 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct Feature_0110
{
///
- /// Feature version
+ /// Feature version
///
public byte Version;
///
- /// Feature is persistent
+ /// Feature is persistent
///
public bool Persistent;
///
- /// Feature is currently in use
+ /// Feature is currently in use
///
public bool Current;
}
@@ -5344,25 +5344,6 @@ namespace DiscImageChef.Decoders.SCSI.MMC
return Prettify_0142(Decode_0142(feature));
}
- [SuppressMessage("ReSharper", "InconsistentNaming")]
- [SuppressMessage("ReSharper", "MemberCanBeInternal")]
- [SuppressMessage("ReSharper", "NotAccessedField.Global")]
- public struct FeatureDescriptor
- {
- public ushort Code;
- public byte[] Data;
- }
-
- [SuppressMessage("ReSharper", "InconsistentNaming")]
- [SuppressMessage("ReSharper", "MemberCanBeInternal")]
- [SuppressMessage("ReSharper", "NotAccessedField.Global")]
- public struct SeparatedFeatures
- {
- public uint DataLength;
- public ushort CurrentProfile;
- public FeatureDescriptor[] Descriptors;
- }
-
public static SeparatedFeatures Separate(byte[] response)
{
SeparatedFeatures dec = new SeparatedFeatures
@@ -5391,5 +5372,24 @@ namespace DiscImageChef.Decoders.SCSI.MMC
return dec;
}
+
+ [SuppressMessage("ReSharper", "InconsistentNaming")]
+ [SuppressMessage("ReSharper", "MemberCanBeInternal")]
+ [SuppressMessage("ReSharper", "NotAccessedField.Global")]
+ public struct FeatureDescriptor
+ {
+ public ushort Code;
+ public byte[] Data;
+ }
+
+ [SuppressMessage("ReSharper", "InconsistentNaming")]
+ [SuppressMessage("ReSharper", "MemberCanBeInternal")]
+ [SuppressMessage("ReSharper", "NotAccessedField.Global")]
+ public struct SeparatedFeatures
+ {
+ public uint DataLength;
+ public ushort CurrentProfile;
+ public FeatureDescriptor[] Descriptors;
+ }
}
}
\ No newline at end of file
diff --git a/SCSI/MMC/Hybrid.cs b/SCSI/MMC/Hybrid.cs
index 633e54f..2756e9e 100644
--- a/SCSI/MMC/Hybrid.cs
+++ b/SCSI/MMC/Hybrid.cs
@@ -37,19 +37,19 @@ using System.Text;
namespace DiscImageChef.Decoders.SCSI.MMC
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -60,48 +60,48 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct RecognizedFormatLayers
{
///
- /// Bytes 0 to 1
- /// Data Length
+ /// Bytes 0 to 1
+ /// Data Length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Byte 4
- /// Number of format layers in hybrid disc identified by drive
+ /// Byte 4
+ /// Number of format layers in hybrid disc identified by drive
///
public byte NumberOfLayers;
///
- /// Byte 5, bits 7 to 6
- /// Reserved
+ /// Byte 5, bits 7 to 6
+ /// Reserved
///
public byte Reserved3;
///
- /// Byte 5, bits 5 to 4
- /// Layer no. used when disc is inserted
+ /// Byte 5, bits 5 to 4
+ /// Layer no. used when disc is inserted
///
public byte DefaultFormatLayer;
///
- /// Byte 5, bits 3 to 2
- /// Reserved
+ /// Byte 5, bits 3 to 2
+ /// Reserved
///
public byte Reserved4;
///
- /// Byte 5, bits 1 to 0
- /// Layer no. currently in use
+ /// Byte 5, bits 1 to 0
+ /// Layer no. currently in use
///
public byte OnlineFormatLayer;
///
- /// Bytes 6 to end
- /// Recognized format layers
+ /// Bytes 6 to end
+ /// Recognized format layers
///
public ushort[] FormatLayers;
}
@@ -127,7 +127,8 @@ namespace DiscImageChef.Decoders.SCSI.MMC
decoded.FormatLayers = new ushort[(FormatLayersResponse.Length - 6) / 2];
- for(int i = 0; i < (FormatLayersResponse.Length - 6) / 2; i++) decoded.FormatLayers[i] = BigEndianBitConverter.ToUInt16(FormatLayersResponse, i * 2 + 6);
+ for(int i = 0; i < (FormatLayersResponse.Length - 6) / 2; i++)
+ decoded.FormatLayers[i] = BigEndianBitConverter.ToUInt16(FormatLayersResponse, i * 2 + 6);
return decoded;
}
diff --git a/SCSI/MMC/WriteProtect.cs b/SCSI/MMC/WriteProtect.cs
index 0ac4b2f..1ad0fed 100644
--- a/SCSI/MMC/WriteProtect.cs
+++ b/SCSI/MMC/WriteProtect.cs
@@ -37,19 +37,19 @@ using System.Text;
namespace DiscImageChef.Decoders.SCSI.MMC
{
///
- /// Information from the following standards:
- /// ANSI X3.304-1997
- /// T10/1048-D revision 9.0
- /// T10/1048-D revision 10a
- /// T10/1228-D revision 7.0c
- /// T10/1228-D revision 11a
- /// T10/1363-D revision 10g
- /// T10/1545-D revision 1d
- /// T10/1545-D revision 5
- /// T10/1545-D revision 5a
- /// T10/1675-D revision 2c
- /// T10/1675-D revision 4
- /// T10/1836-D revision 2g
+ /// Information from the following standards:
+ /// ANSI X3.304-1997
+ /// T10/1048-D revision 9.0
+ /// T10/1048-D revision 10a
+ /// T10/1228-D revision 7.0c
+ /// T10/1228-D revision 11a
+ /// T10/1363-D revision 10g
+ /// T10/1545-D revision 1d
+ /// T10/1545-D revision 5
+ /// T10/1545-D revision 5a
+ /// T10/1675-D revision 2c
+ /// T10/1675-D revision 4
+ /// T10/1836-D revision 2g
///
[SuppressMessage("ReSharper", "InconsistentNaming")]
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
@@ -60,58 +60,58 @@ namespace DiscImageChef.Decoders.SCSI.MMC
public struct WriteProtectionStatus
{
///
- /// Bytes 0 to 1
- /// Data Length
+ /// Bytes 0 to 1
+ /// Data Length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Byte 4, bits 7 to 4
- /// Reserved
+ /// Byte 4, bits 7 to 4
+ /// Reserved
///
public byte Reserved3;
///
- /// Byte 4, bit 3
- /// Writing inhibited by media specific reason
+ /// Byte 4, bit 3
+ /// Writing inhibited by media specific reason
///
public bool MSWI;
///
- /// Byte 4, bit 2
- /// Cartridge sets write protection
+ /// Byte 4, bit 2
+ /// Cartridge sets write protection
///
public bool CWP;
///
- /// Byte 4, bit 1
- /// Media surface sets write protection
+ /// Byte 4, bit 1
+ /// Media surface sets write protection
///
public bool PWP;
///
- /// Byte 4, bit 0
- /// Software write protection until power down
+ /// Byte 4, bit 0
+ /// Software write protection until power down
///
public bool SWPP;
///
- /// Byte 5
- /// Reserved
+ /// Byte 5
+ /// Reserved
///
public byte Reserved4;
///
- /// Byte 6
- /// Reserved
+ /// Byte 6
+ /// Reserved
///
public byte Reserved5;
///
- /// Byte 7
- /// Reserved
+ /// Byte 7
+ /// Reserved
///
public byte Reserved6;
}
diff --git a/SCSI/Modes/00_SFF.cs b/SCSI/Modes/00_SFF.cs
index 0610196..d03542e 100644
--- a/SCSI/Modes/00_SFF.cs
+++ b/SCSI/Modes/00_SFF.cs
@@ -42,30 +42,30 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Page 0x00: Drive Operation Mode page
///
- /// Drive Operation Mode page
- /// Page code 0x00
- /// 4 bytes in INF-8070
+ /// Drive Operation Mode page
+ /// Page code 0x00
+ /// 4 bytes in INF-8070
///
public struct ModePage_00_SFF
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Select LUN Mode
+ /// Select LUN Mode
///
public bool SLM;
///
- /// Select LUN for rewritable
+ /// Select LUN for rewritable
///
public bool SLR;
///
- /// Disable verify for WRITE
+ /// Disable verify for WRITE
///
public bool DVW;
///
- /// Disable deferred error
+ /// Disable deferred error
///
public bool DDE;
}
diff --git a/SCSI/Modes/01.cs b/SCSI/Modes/01.cs
index af79ce5..4b84e6f 100644
--- a/SCSI/Modes/01.cs
+++ b/SCSI/Modes/01.cs
@@ -42,75 +42,75 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Page 0x01: Read-write error recovery page
///
- /// Disconnect-reconnect page
- /// Page code 0x01
- /// 12 bytes in SCSI-2, SBC-1, SBC-2
+ /// Disconnect-reconnect page
+ /// Page code 0x01
+ /// 12 bytes in SCSI-2, SBC-1, SBC-2
///
public struct ModePage_01
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Automatic Write Reallocation Enabled
+ /// Automatic Write Reallocation Enabled
///
public bool AWRE;
///
- /// Automatic Read Reallocation Enabled
+ /// Automatic Read Reallocation Enabled
///
public bool ARRE;
///
- /// Transfer block
+ /// Transfer block
///
public bool TB;
///
- /// Read continuous
+ /// Read continuous
///
public bool RC;
///
- /// Enable early recovery
+ /// Enable early recovery
///
public bool EER;
///
- /// Post error reporting
+ /// Post error reporting
///
public bool PER;
///
- /// Disable transfer on error
+ /// Disable transfer on error
///
public bool DTE;
///
- /// Disable correction
+ /// Disable correction
///
public bool DCR;
///
- /// How many times to retry a read operation
+ /// How many times to retry a read operation
///
public byte ReadRetryCount;
///
- /// How many bits of largest data burst error is maximum to apply error correction on it
+ /// How many bits of largest data burst error is maximum to apply error correction on it
///
public byte CorrectionSpan;
///
- /// Offset to move the heads
+ /// Offset to move the heads
///
public sbyte HeadOffsetCount;
///
- /// Incremental position to which the recovered data strobe shall be adjusted
+ /// Incremental position to which the recovered data strobe shall be adjusted
///
public sbyte DataStrobeOffsetCount;
///
- /// How many times to retry a write operation
+ /// How many times to retry a write operation
///
public byte WriteRetryCount;
///
- /// Maximum time in ms to use in data error recovery procedures
+ /// Maximum time in ms to use in data error recovery procedures
///
public ushort RecoveryTimeLimit;
///
- /// Logical block provisioning error reporting is enabled
+ /// Logical block provisioning error reporting is enabled
///
public bool LBPERE;
}
@@ -189,37 +189,38 @@ namespace DiscImageChef.Decoders.SCSI
return sb.ToString();
}
#endregion Mode Page 0x01: Read-write error recovery page
- public static byte[] EncodeModePage_01(ModePage_01 page)
- {
- byte[] pg = new byte[8];
- pg[0] = 0x01;
- pg[1] = 6;
+ public static byte[] EncodeModePage_01(ModePage_01 page)
+ {
+ byte[] pg = new byte[8];
- if(page.PS) pg[0] += 0x80;
- if(page.AWRE) pg[2] += 0x80;
- if(page.ARRE) pg[2] += 0x40;
- if(page.TB) pg[2] += 0x20;
- if(page.RC) pg[2] += 0x10;
- if(page.EER) pg[2] += 0x08;
- if(page.PER) pg[2] += 0x04;
- if(page.DTE) pg[2] += 0x02;
- if(page.DCR) pg[2] += 0x01;
+ pg[0] = 0x01;
+ pg[1] = 6;
- pg[3] = page.ReadRetryCount;
- pg[4] = page.CorrectionSpan;
- pg[5] = (byte)page.HeadOffsetCount;
- pg[6] = (byte)page.DataStrobeOffsetCount;
+ if(page.PS) pg[0] += 0x80;
+ if(page.AWRE) pg[2] += 0x80;
+ if(page.ARRE) pg[2] += 0x40;
+ if(page.TB) pg[2] += 0x20;
+ if(page.RC) pg[2] += 0x10;
+ if(page.EER) pg[2] += 0x08;
+ if(page.PER) pg[2] += 0x04;
+ if(page.DTE) pg[2] += 0x02;
+ if(page.DCR) pg[2] += 0x01;
- // This is from a newer version of SCSI unknown what happen for drives expecting an 8 byte page
- /*
- pg[8] = page.WriteRetryCount;
- if (page.LBPERE)
- pg[7] += 0x80;
- pg[10] = (byte)((page.RecoveryTimeLimit & 0xFF00) << 8);
- pg[11] = (byte)(page.RecoveryTimeLimit & 0xFF);*/
+ pg[3] = page.ReadRetryCount;
+ pg[4] = page.CorrectionSpan;
+ pg[5] = (byte)page.HeadOffsetCount;
+ pg[6] = (byte)page.DataStrobeOffsetCount;
- return pg;
- }
+ // This is from a newer version of SCSI unknown what happen for drives expecting an 8 byte page
+ /*
+ pg[8] = page.WriteRetryCount;
+ if (page.LBPERE)
+ pg[7] += 0x80;
+ pg[10] = (byte)((page.RecoveryTimeLimit & 0xFF00) << 8);
+ pg[11] = (byte)(page.RecoveryTimeLimit & 0xFF);*/
+
+ return pg;
+ }
}
}
\ No newline at end of file
diff --git a/SCSI/Modes/01_MMC.cs b/SCSI/Modes/01_MMC.cs
index 8aa632a..fc750aa 100644
--- a/SCSI/Modes/01_MMC.cs
+++ b/SCSI/Modes/01_MMC.cs
@@ -42,31 +42,31 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Page 0x01: Read error recovery page for MultiMedia Devices
///
- /// Read error recovery page for MultiMedia Devices
- /// Page code 0x01
- /// 8 bytes in SCSI-2, MMC-1
- /// 12 bytes in MMC-2, MMC-3
+ /// Read error recovery page for MultiMedia Devices
+ /// Page code 0x01
+ /// 8 bytes in SCSI-2, MMC-1
+ /// 12 bytes in MMC-2, MMC-3
///
public struct ModePage_01_MMC
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Error recovery parameter
+ /// Error recovery parameter
///
public byte Parameter;
///
- /// How many times to retry a read operation
+ /// How many times to retry a read operation
///
public byte ReadRetryCount;
///
- /// How many times to retry a write operation
+ /// How many times to retry a write operation
///
public byte WriteRetryCount;
///
- /// Maximum time in ms to use in data error recovery procedures
+ /// Maximum time in ms to use in data error recovery procedures
///
public ushort RecoveryTimeLimit;
}
@@ -195,24 +195,25 @@ namespace DiscImageChef.Decoders.SCSI
return sb.ToString();
}
#endregion Mode Page 0x01: Read error recovery page for MultiMedia Devices
- public static byte[] EncodeModePage_01_MMC(ModePage_01_MMC page)
- {
- byte[] pg = new byte[12];
- pg[0] = 0x01;
- pg[1] = 10;
+ public static byte[] EncodeModePage_01_MMC(ModePage_01_MMC page)
+ {
+ byte[] pg = new byte[12];
- if(page.PS) pg[0] += 0x80;
- pg[2] = page.Parameter;
- pg[3] = page.ReadRetryCount;
+ pg[0] = 0x01;
+ pg[1] = 10;
- // This is from a newer version of SCSI unknown what happen for drives expecting an 8 byte page
+ if(page.PS) pg[0] += 0x80;
+ pg[2] = page.Parameter;
+ pg[3] = page.ReadRetryCount;
- pg[8] = page.WriteRetryCount;
- pg[10] = (byte)((page.RecoveryTimeLimit & 0xFF00) << 8);
- pg[11] = (byte)(page.RecoveryTimeLimit & 0xFF);
+ // This is from a newer version of SCSI unknown what happen for drives expecting an 8 byte page
- return pg;
- }
+ pg[8] = page.WriteRetryCount;
+ pg[10] = (byte)((page.RecoveryTimeLimit & 0xFF00) << 8);
+ pg[11] = (byte)(page.RecoveryTimeLimit & 0xFF);
+
+ return pg;
+ }
}
}
\ No newline at end of file
diff --git a/SCSI/Modes/02.cs b/SCSI/Modes/02.cs
index ae05812..84e2d73 100644
--- a/SCSI/Modes/02.cs
+++ b/SCSI/Modes/02.cs
@@ -42,59 +42,60 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Page 0x02: Disconnect-reconnect page
///
- /// Disconnect-reconnect page
- /// Page code 0x02
- /// 16 bytes in SCSI-2, SPC-1, SPC-2, SPC-3, SPC-4, SPC-5
+ /// Disconnect-reconnect page
+ /// Page code 0x02
+ /// 16 bytes in SCSI-2, SPC-1, SPC-2, SPC-3, SPC-4, SPC-5
///
public struct ModePage_02
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// How full should be the buffer prior to attempting a reselection
+ /// How full should be the buffer prior to attempting a reselection
///
public byte BufferFullRatio;
///
- /// How empty should be the buffer prior to attempting a reselection
+ /// How empty should be the buffer prior to attempting a reselection
///
public byte BufferEmptyRatio;
///
- /// Max. time in 100 µs increments that the target is permitted to assert BSY without a REQ/ACK
+ /// Max. time in 100 µs increments that the target is permitted to assert BSY without a REQ/ACK
///
public ushort BusInactivityLimit;
///
- /// Min. time in 100 µs increments to wait after releasing the bus before attempting reselection
+ /// Min. time in 100 µs increments to wait after releasing the bus before attempting reselection
///
public ushort DisconnectTimeLimit;
///
- /// Max. time in 100 µs increments allowed to use the bus before disconnecting, if granted the privilege and not restricted by
+ /// Max. time in 100 µs increments allowed to use the bus before disconnecting, if granted the privilege and not
+ /// restricted by
///
public ushort ConnectTimeLimit;
///
- /// Maximum amount of data before disconnecting in 512 bytes increments
+ /// Maximum amount of data before disconnecting in 512 bytes increments
///
public ushort MaxBurstSize;
///
- /// Data transfer disconnect control
+ /// Data transfer disconnect control
///
public byte DTDC;
///
- /// Target shall not transfer data for a command during the same interconnect tenancy
+ /// Target shall not transfer data for a command during the same interconnect tenancy
///
public bool DIMM;
///
- /// Wether to use fair or unfair arbitration when requesting an interconnect tenancy
+ /// Wether to use fair or unfair arbitration when requesting an interconnect tenancy
///
public byte FairArbitration;
///
- /// Max. ammount of data in 512 bytes increments that may be transferred for a command along with the command
+ /// Max. ammount of data in 512 bytes increments that may be transferred for a command along with the command
///
public ushort FirstBurstSize;
///
- /// Target is allowed to re-order the data transfer
+ /// Target is allowed to re-order the data transfer
///
public bool EMDP;
}
diff --git a/SCSI/Modes/03.cs b/SCSI/Modes/03.cs
index bb241ce..3e1636a 100644
--- a/SCSI/Modes/03.cs
+++ b/SCSI/Modes/03.cs
@@ -42,67 +42,67 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Page 0x03: Format device page
///
- /// Disconnect-reconnect page
- /// Page code 0x03
- /// 24 bytes in SCSI-2, SBC-1
+ /// Disconnect-reconnect page
+ /// Page code 0x03
+ /// 24 bytes in SCSI-2, SBC-1
///
public struct ModePage_03
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Tracks per zone to use in dividing the capacity for the purpose of allocating alternate sectors
+ /// Tracks per zone to use in dividing the capacity for the purpose of allocating alternate sectors
///
public ushort TracksPerZone;
///
- /// Number of sectors per zone that shall be reserved for defect handling
+ /// Number of sectors per zone that shall be reserved for defect handling
///
public ushort AltSectorsPerZone;
///
- /// Number of tracks per zone that shall be reserved for defect handling
+ /// Number of tracks per zone that shall be reserved for defect handling
///
public ushort AltTracksPerZone;
///
- /// Number of tracks per LUN that shall be reserved for defect handling
+ /// Number of tracks per LUN that shall be reserved for defect handling
///
public ushort AltTracksPerLun;
///
- /// Number of physical sectors per track
+ /// Number of physical sectors per track
///
public ushort SectorsPerTrack;
///
- /// Bytes per physical sector
+ /// Bytes per physical sector
///
public ushort BytesPerSector;
///
- /// Interleave value, target dependent
+ /// Interleave value, target dependent
///
public ushort Interleave;
///
- /// Sectors between last block of one track and first block of the next
+ /// Sectors between last block of one track and first block of the next
///
public ushort TrackSkew;
///
- /// Sectors between last block of a cylinder and first block of the next one
+ /// Sectors between last block of a cylinder and first block of the next one
///
public ushort CylinderSkew;
///
- /// Soft-sectored
+ /// Soft-sectored
///
public bool SSEC;
///
- /// Hard-sectored
+ /// Hard-sectored
///
public bool HSEC;
///
- /// Removable
+ /// Removable
///
public bool RMB;
///
- /// If set, address are allocated progressively in a surface before going to the next.
- /// Otherwise, it goes by cylinders
+ /// If set, address are allocated progressively in a surface before going to the next.
+ /// Otherwise, it goes by cylinders
///
public bool SURF;
}
diff --git a/SCSI/Modes/04.cs b/SCSI/Modes/04.cs
index 6a654b7..60bec2d 100644
--- a/SCSI/Modes/04.cs
+++ b/SCSI/Modes/04.cs
@@ -42,50 +42,50 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Page 0x04: Rigid disk drive geometry page
///
- /// Disconnect-reconnect page
- /// Page code 0x04
- /// 24 bytes in SCSI-2, SBC-1
+ /// Disconnect-reconnect page
+ /// Page code 0x04
+ /// 24 bytes in SCSI-2, SBC-1
///
public struct ModePage_04
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Cylinders used for data storage
+ /// Cylinders used for data storage
///
public uint Cylinders;
///
- /// Heads for reading and/or writing
+ /// Heads for reading and/or writing
///
public byte Heads;
///
- /// Cylinder where write precompensation starts
+ /// Cylinder where write precompensation starts
///
public uint WritePrecompCylinder;
///
- /// Cylinder where write current reduction starts
+ /// Cylinder where write current reduction starts
///
public uint WriteReduceCylinder;
///
- /// Step rate in 100 ns units
+ /// Step rate in 100 ns units
///
public ushort DriveStepRate;
///
- /// Cylinder where the heads park
+ /// Cylinder where the heads park
///
public int LandingCylinder;
///
- /// Rotational position locking
+ /// Rotational position locking
///
public byte RPL;
///
- /// Rotational skew to apply when synchronized
+ /// Rotational skew to apply when synchronized
///
public byte RotationalOffset;
///
- /// Medium speed in rpm
+ /// Medium speed in rpm
///
public ushort MediumRotationRate;
}
diff --git a/SCSI/Modes/05.cs b/SCSI/Modes/05.cs
index f81a9d9..3e7badb 100644
--- a/SCSI/Modes/05.cs
+++ b/SCSI/Modes/05.cs
@@ -42,115 +42,115 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Page 0x05: Flexible disk page
///
- /// Disconnect-reconnect page
- /// Page code 0x05
- /// 32 bytes in SCSI-2, SBC-1
+ /// Disconnect-reconnect page
+ /// Page code 0x05
+ /// 32 bytes in SCSI-2, SBC-1
///
public struct ModePage_05
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Data rate of peripheral device on kbit/s
+ /// Data rate of peripheral device on kbit/s
///
public ushort TransferRate;
///
- /// Heads for reading and/or writing
+ /// Heads for reading and/or writing
///
public byte Heads;
///
- /// Sectors per revolution per head
+ /// Sectors per revolution per head
///
public byte SectorsPerTrack;
///
- /// Bytes of data per sector
+ /// Bytes of data per sector
///
public ushort BytesPerSector;
///
- /// Cylinders used for data storage
+ /// Cylinders used for data storage
///
public ushort Cylinders;
///
- /// Cylinder where write precompensation starts
+ /// Cylinder where write precompensation starts
///
public ushort WritePrecompCylinder;
///
- /// Cylinder where write current reduction starts
+ /// Cylinder where write current reduction starts
///
public ushort WriteReduceCylinder;
///
- /// Step rate in 100 μs units
+ /// Step rate in 100 μs units
///
public ushort DriveStepRate;
///
- /// Width of step pulse in μs
+ /// Width of step pulse in μs
///
public byte DriveStepPulse;
///
- /// Head settle time in 100 μs units
+ /// Head settle time in 100 μs units
///
public ushort HeadSettleDelay;
///
- /// If is true, specified in 1/10s of a
- /// second the time waiting for read status before aborting medium
- /// access. Otherwise, indicates time to way before medimum access
- /// after motor on signal is asserted.
+ /// If is true, specified in 1/10s of a
+ /// second the time waiting for read status before aborting medium
+ /// access. Otherwise, indicates time to way before medimum access
+ /// after motor on signal is asserted.
///
public byte MotorOnDelay;
///
- /// Time in 1/10s of a second to wait before releasing the motor on
- /// signal after an idle condition. 0xFF means to never release the
- /// signal
+ /// Time in 1/10s of a second to wait before releasing the motor on
+ /// signal after an idle condition. 0xFF means to never release the
+ /// signal
///
public byte MotorOffDelay;
///
- /// Specifies if a signal indicates that the medium is ready to be accessed
+ /// Specifies if a signal indicates that the medium is ready to be accessed
///
public bool TRDY;
///
- /// If true sectors start with one. Otherwise, they start with zero.
+ /// If true sectors start with one. Otherwise, they start with zero.
///
public bool SSN;
///
- /// If true specifies that motor on shall remain released.
+ /// If true specifies that motor on shall remain released.
///
public bool MO;
///
- /// Number of additional step pulses per cylinder.
+ /// Number of additional step pulses per cylinder.
///
public byte SPC;
///
- /// Write compensation value
+ /// Write compensation value
///
public byte WriteCompensation;
///
- /// Head loading time in ms.
+ /// Head loading time in ms.
///
public byte HeadLoadDelay;
///
- /// Head unloading time in ms.
+ /// Head unloading time in ms.
///
public byte HeadUnloadDelay;
///
- /// Description of shugart's bus pin 34 usage
+ /// Description of shugart's bus pin 34 usage
///
public byte Pin34;
///
- /// Description of shugart's bus pin 2 usage
+ /// Description of shugart's bus pin 2 usage
///
public byte Pin2;
///
- /// Description of shugart's bus pin 4 usage
+ /// Description of shugart's bus pin 4 usage
///
public byte Pin4;
///
- /// Description of shugart's bus pin 1 usage
+ /// Description of shugart's bus pin 1 usage
///
public byte Pin1;
///
- /// Medium speed in rpm
+ /// Medium speed in rpm
///
public ushort MediumRotationRate;
}
diff --git a/SCSI/Modes/06.cs b/SCSI/Modes/06.cs
index 51f443f..2de55c0 100644
--- a/SCSI/Modes/06.cs
+++ b/SCSI/Modes/06.cs
@@ -40,61 +40,61 @@ namespace DiscImageChef.Decoders.SCSI
[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
public static partial class Modes
{
- #region Mode Page 0x06: Optical memory page
- ///
- /// Optical memory page
- /// Page code 0x06
- /// 4 bytes in SCSI-2
- ///
- public struct ModePage_06
- {
+ #region Mode Page 0x06: Optical memory page
///
- /// Parameters can be saved
+ /// Optical memory page
+ /// Page code 0x06
+ /// 4 bytes in SCSI-2
///
- public bool PS;
- ///
- /// Report updated block read
- ///
- public bool RUBR;
- }
+ public struct ModePage_06
+ {
+ ///
+ /// Parameters can be saved
+ ///
+ public bool PS;
+ ///
+ /// Report updated block read
+ ///
+ public bool RUBR;
+ }
- public static ModePage_06? DecodeModePage_06(byte[] pageResponse)
- {
- if((pageResponse?[0] & 0x40) == 0x40) return null;
+ public static ModePage_06? DecodeModePage_06(byte[] pageResponse)
+ {
+ if((pageResponse?[0] & 0x40) == 0x40) return null;
- if((pageResponse?[0] & 0x3F) != 0x06) return null;
+ if((pageResponse?[0] & 0x3F) != 0x06) return null;
- if(pageResponse[1] + 2 != pageResponse.Length) return null;
+ if(pageResponse[1] + 2 != pageResponse.Length) return null;
- if(pageResponse.Length < 4) return null;
+ if(pageResponse.Length < 4) return null;
- ModePage_06 decoded = new ModePage_06();
+ ModePage_06 decoded = new ModePage_06();
- decoded.PS |= (pageResponse[0] & 0x80) == 0x80;
- decoded.RUBR |= (pageResponse[2] & 0x01) == 0x01;
+ decoded.PS |= (pageResponse[0] & 0x80) == 0x80;
+ decoded.RUBR |= (pageResponse[2] & 0x01) == 0x01;
- return decoded;
- }
+ return decoded;
+ }
- public static string PrettifyModePage_06(byte[] pageResponse)
- {
- return PrettifyModePage_06(DecodeModePage_06(pageResponse));
- }
+ public static string PrettifyModePage_06(byte[] pageResponse)
+ {
+ return PrettifyModePage_06(DecodeModePage_06(pageResponse));
+ }
- public static string PrettifyModePage_06(ModePage_06? modePage)
- {
- if(!modePage.HasValue) return null;
+ public static string PrettifyModePage_06(ModePage_06? modePage)
+ {
+ if(!modePage.HasValue) return null;
- ModePage_06 page = modePage.Value;
- StringBuilder sb = new StringBuilder();
+ ModePage_06 page = modePage.Value;
+ StringBuilder sb = new StringBuilder();
- sb.AppendLine("SCSI optical memory:");
+ sb.AppendLine("SCSI optical memory:");
- if(page.PS) sb.AppendLine("\tParameters can be saved");
- if(page.RUBR) sb.AppendLine("\tOn reading an updated block drive will return RECOVERED ERROR");
+ if(page.PS) sb.AppendLine("\tParameters can be saved");
+ if(page.RUBR) sb.AppendLine("\tOn reading an updated block drive will return RECOVERED ERROR");
- return sb.ToString();
- }
- #endregion Mode Page 0x06: Optical memory page
+ return sb.ToString();
+ }
+ #endregion Mode Page 0x06: Optical memory page
}
}
\ No newline at end of file
diff --git a/SCSI/Modes/07.cs b/SCSI/Modes/07.cs
index cf0c172..7ca4d38 100644
--- a/SCSI/Modes/07.cs
+++ b/SCSI/Modes/07.cs
@@ -43,42 +43,42 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Page 0x07: Verify error recovery page
///
- /// Disconnect-reconnect page
- /// Page code 0x07
- /// 12 bytes in SCSI-2, SBC-1, SBC-2
+ /// Disconnect-reconnect page
+ /// Page code 0x07
+ /// 12 bytes in SCSI-2, SBC-1, SBC-2
///
public struct ModePage_07
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Enable early recovery
+ /// Enable early recovery
///
public bool EER;
///
- /// Post error reporting
+ /// Post error reporting
///
public bool PER;
///
- /// Disable transfer on error
+ /// Disable transfer on error
///
public bool DTE;
///
- /// Disable correction
+ /// Disable correction
///
public bool DCR;
///
- /// How many times to retry a verify operation
+ /// How many times to retry a verify operation
///
public byte VerifyRetryCount;
///
- /// How many bits of largest data burst error is maximum to apply error correction on it
+ /// How many bits of largest data burst error is maximum to apply error correction on it
///
public byte CorrectionSpan;
///
- /// Maximum time in ms to use in data error recovery procedures
+ /// Maximum time in ms to use in data error recovery procedures
///
public ushort RecoveryTimeLimit;
}
diff --git a/SCSI/Modes/07_MMC.cs b/SCSI/Modes/07_MMC.cs
index 48bc929..8a3e802 100644
--- a/SCSI/Modes/07_MMC.cs
+++ b/SCSI/Modes/07_MMC.cs
@@ -42,22 +42,22 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Page 0x07: Verify error recovery page for MultiMedia Devices
///
- /// Verify error recovery page for MultiMedia Devices
- /// Page code 0x07
- /// 8 bytes in SCSI-2, MMC-1
+ /// Verify error recovery page for MultiMedia Devices
+ /// Page code 0x07
+ /// 8 bytes in SCSI-2, MMC-1
///
public struct ModePage_07_MMC
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Error recovery parameter
+ /// Error recovery parameter
///
public byte Parameter;
///
- /// How many times to retry a verify operation
+ /// How many times to retry a verify operation
///
public byte VerifyRetryCount;
}
diff --git a/SCSI/Modes/08.cs b/SCSI/Modes/08.cs
index 3141c59..84d5afc 100644
--- a/SCSI/Modes/08.cs
+++ b/SCSI/Modes/08.cs
@@ -42,96 +42,96 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Page 0x08: Caching page
///
- /// Disconnect-reconnect page
- /// Page code 0x08
- /// 12 bytes in SCSI-2
- /// 20 bytes in SBC-1, SBC-2, SBC-3
+ /// Disconnect-reconnect page
+ /// Page code 0x08
+ /// 12 bytes in SCSI-2
+ /// 20 bytes in SBC-1, SBC-2, SBC-3
///
public struct ModePage_08
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// true if write cache is enabled
+ /// true if write cache is enabled
///
public bool WCE;
///
- /// Multiplication factor
+ /// Multiplication factor
///
public bool MF;
///
- /// true if read cache is enabled
+ /// true if read cache is enabled
///
public bool RCD;
///
- /// Advices on reading-cache retention priority
+ /// Advices on reading-cache retention priority
///
public byte DemandReadRetentionPrio;
///
- /// Advices on writing-cache retention priority
+ /// Advices on writing-cache retention priority
///
public byte WriteRetentionPriority;
///
- /// If requested read blocks are more than this, no pre-fetch is done
+ /// If requested read blocks are more than this, no pre-fetch is done
///
public ushort DisablePreFetch;
///
- /// Minimum pre-fetch
+ /// Minimum pre-fetch
///
public ushort MinimumPreFetch;
///
- /// Maximum pre-fetch
+ /// Maximum pre-fetch
///
public ushort MaximumPreFetch;
///
- /// Upper limit on maximum pre-fetch value
+ /// Upper limit on maximum pre-fetch value
///
public ushort MaximumPreFetchCeiling;
///
- /// Manual cache controlling
+ /// Manual cache controlling
///
public bool IC;
///
- /// Abort pre-fetch
+ /// Abort pre-fetch
///
public bool ABPF;
///
- /// Caching analysis permitted
+ /// Caching analysis permitted
///
public bool CAP;
///
- /// Pre-fetch over discontinuities
+ /// Pre-fetch over discontinuities
///
public bool Disc;
///
- /// is to be used to control caching segmentation
+ /// is to be used to control caching segmentation
///
public bool Size;
///
- /// Force sequential write
+ /// Force sequential write
///
public bool FSW;
///
- /// Logical block cache segment size
+ /// Logical block cache segment size
///
public bool LBCSS;
///
- /// Disable read-ahead
+ /// Disable read-ahead
///
public bool DRA;
///
- /// How many segments should the cache be divided upon
+ /// How many segments should the cache be divided upon
///
public byte CacheSegments;
///
- /// How many bytes should the cache be divided upon
+ /// How many bytes should the cache be divided upon
///
public ushort CacheSegmentSize;
///
- /// How many bytes should be used as a buffer when all other cached data cannot be evicted
+ /// How many bytes should be used as a buffer when all other cached data cannot be evicted
///
public uint NonCacheSegmentSize;
diff --git a/SCSI/Modes/0A.cs b/SCSI/Modes/0A.cs
index 6eec37c..1c3064f 100644
--- a/SCSI/Modes/0A.cs
+++ b/SCSI/Modes/0A.cs
@@ -42,123 +42,125 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Page 0x0A: Control mode page
///
- /// Control mode page
- /// Page code 0x0A
- /// 8 bytes in SCSI-2
- /// 12 bytes in SPC-1, SPC-2, SPC-3, SPC-4, SPC-5
+ /// Control mode page
+ /// Page code 0x0A
+ /// 8 bytes in SCSI-2
+ /// 12 bytes in SPC-1, SPC-2, SPC-3, SPC-4, SPC-5
///
public struct ModePage_0A
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// If set, target shall report log exception conditions
+ /// If set, target shall report log exception conditions
///
public bool RLEC;
///
- /// Queue algorithm modifier
+ /// Queue algorithm modifier
///
public byte QueueAlgorithm;
///
- /// If set all remaining suspended I/O processes shall be aborted after the contingent allegiance condition or extended contingent allegiance condition
+ /// If set all remaining suspended I/O processes shall be aborted after the contingent allegiance condition or extended
+ /// contingent allegiance condition
///
public byte QErr;
///
- /// Tagged queuing is disabled
+ /// Tagged queuing is disabled
///
public bool DQue;
///
- /// Extended Contingent Allegiance is enabled
+ /// Extended Contingent Allegiance is enabled
///
public bool EECA;
///
- /// Target may issue an asynchronous event notification upon completing its initialization
+ /// Target may issue an asynchronous event notification upon completing its initialization
///
public bool RAENP;
///
- /// Target may issue an asynchronous event notification instead of a unit attention condition
+ /// Target may issue an asynchronous event notification instead of a unit attention condition
///
public bool UAAENP;
///
- /// Target may issue an asynchronous event notification instead of a deferred error
+ /// Target may issue an asynchronous event notification instead of a deferred error
///
public bool EAENP;
///
- /// Minimum time in ms after initialization before attempting asynchronous event notifications
+ /// Minimum time in ms after initialization before attempting asynchronous event notifications
///
public ushort ReadyAENHoldOffPeriod;
///
- /// Global logging target save disabled
+ /// Global logging target save disabled
///
public bool GLTSD;
///
- /// CHECK CONDITION should be reported rather than a long busy condition
+ /// CHECK CONDITION should be reported rather than a long busy condition
///
public bool RAC;
///
- /// Software write protect is active
+ /// Software write protect is active
///
public bool SWP;
///
- /// Maximum time in 100 ms units allowed to remain busy. 0xFFFF == unlimited.
+ /// Maximum time in 100 ms units allowed to remain busy. 0xFFFF == unlimited.
///
public ushort BusyTimeoutPeriod;
///
- /// Task set type
+ /// Task set type
///
public byte TST;
///
- /// Tasks aborted by other initiator's actions should be terminated with TASK ABORTED
+ /// Tasks aborted by other initiator's actions should be terminated with TASK ABORTED
///
public bool TAS;
///
- /// Action to be taken when a medium is inserted
+ /// Action to be taken when a medium is inserted
///
public byte AutoloadMode;
///
- /// Time in seconds to complete an extended self-test
+ /// Time in seconds to complete an extended self-test
///
public byte ExtendedSelfTestCompletionTime;
///
- /// All tasks received in nexus with ACA ACTIVE is set and an ACA condition is established shall terminate
+ /// All tasks received in nexus with ACA ACTIVE is set and an ACA condition is established shall terminate
///
public bool TMF_ONLY;
///
- /// Device shall return descriptor format sense data when returning sense data in the same transactions as a CHECK CONDITION
+ /// Device shall return descriptor format sense data when returning sense data in the same transactions as a CHECK
+ /// CONDITION
///
public bool D_SENSE;
///
- /// Unit attention interlocks control
+ /// Unit attention interlocks control
///
public byte UA_INTLCK_CTRL;
///
- /// LOGICAL BLOCK APPLICATION TAG should not be modified
+ /// LOGICAL BLOCK APPLICATION TAG should not be modified
///
public bool ATO;
///
- /// Protector information checking is disabled
+ /// Protector information checking is disabled
///
public bool DPICZ;
///
- /// No unit attention on release
+ /// No unit attention on release
///
public bool NUAR;
///
- /// Application Tag mode page is enabled
+ /// Application Tag mode page is enabled
///
public bool ATMPE;
///
- /// Abort any write command without protection information
+ /// Abort any write command without protection information
///
public bool RWWP;
///
- /// Supportes block lengths and protection information
+ /// Supportes block lengths and protection information
///
public bool SBLP;
}
@@ -355,40 +357,40 @@ namespace DiscImageChef.Decoders.SCSI
#region Mode Page 0x0A subpage 0x01: Control Extension mode page
///
- /// Control Extension mode page
- /// Page code 0x0A
- /// Subpage code 0x01
- /// 32 bytes in SPC-3, SPC-4, SPC-5
+ /// Control Extension mode page
+ /// Page code 0x0A
+ /// Subpage code 0x01
+ /// 32 bytes in SPC-3, SPC-4, SPC-5
///
public struct ModePage_0A_S01
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Timestamp outside this standard
+ /// Timestamp outside this standard
///
public bool TCMOS;
///
- /// SCSI precedence
+ /// SCSI precedence
///
public bool SCSIP;
///
- /// Implicit Asymmetric Logical Unit Access Enabled
+ /// Implicit Asymmetric Logical Unit Access Enabled
///
public bool IALUAE;
///
- /// Initial task priority
+ /// Initial task priority
///
public byte InitialPriority;
///
- /// Device life control disabled
+ /// Device life control disabled
///
public bool DLC;
///
- /// Maximum size of SENSE data in bytes
+ /// Maximum size of SENSE data in bytes
///
public byte MaximumSenseLength;
}
@@ -455,5 +457,5 @@ namespace DiscImageChef.Decoders.SCSI
return sb.ToString();
}
#endregion Mode Page 0x0A subpage 0x01: Control Extension mode page
- }
+ }
}
\ No newline at end of file
diff --git a/SCSI/Modes/0B.cs b/SCSI/Modes/0B.cs
index 63f6a75..0673c67 100644
--- a/SCSI/Modes/0B.cs
+++ b/SCSI/Modes/0B.cs
@@ -42,14 +42,14 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Page 0x0B: Medium types supported page
///
- /// Disconnect-reconnect page
- /// Page code 0x0B
- /// 8 bytes in SCSI-2
+ /// Disconnect-reconnect page
+ /// Page code 0x0B
+ /// 8 bytes in SCSI-2
///
public struct ModePage_0B
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
public MediumTypes MediumType1;
diff --git a/SCSI/Modes/0C.cs b/SCSI/Modes/0C.cs
index 37e50bc..8393117 100644
--- a/SCSI/Modes/0C.cs
+++ b/SCSI/Modes/0C.cs
@@ -34,8 +34,8 @@ namespace DiscImageChef.Decoders.SCSI
{
public static partial class Modes
{
- #region Mode Page 0x0C: Notch page
- // TODO: Implement this page
- #endregion Mode Page 0x0C: Notch page
+ #region Mode Page 0x0C: Notch page
+ // TODO: Implement this page
+ #endregion Mode Page 0x0C: Notch page
}
}
\ No newline at end of file
diff --git a/SCSI/Modes/0D.cs b/SCSI/Modes/0D.cs
index 3dc0fe3..9a52ead 100644
--- a/SCSI/Modes/0D.cs
+++ b/SCSI/Modes/0D.cs
@@ -42,26 +42,26 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Page 0x0D: CD-ROM parameteres page
///
- /// CD-ROM parameteres page
- /// Page code 0x0D
- /// 8 bytes in SCSI-2, MMC-1, MMC-2, MMC-3
+ /// CD-ROM parameteres page
+ /// Page code 0x0D
+ /// 8 bytes in SCSI-2, MMC-1, MMC-2, MMC-3
///
public struct ModePage_0D
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Time the drive shall remain in hold track state after seek or read
+ /// Time the drive shall remain in hold track state after seek or read
///
public byte InactivityTimerMultiplier;
///
- /// Seconds per Minute
+ /// Seconds per Minute
///
public ushort SecondsPerMinute;
///
- /// Frames per Second
+ /// Frames per Second
///
public ushort FramesPerSecond;
}
diff --git a/SCSI/Modes/0E.cs b/SCSI/Modes/0E.cs
index 0a21ad7..404a571 100644
--- a/SCSI/Modes/0E.cs
+++ b/SCSI/Modes/0E.cs
@@ -42,66 +42,66 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Page 0x0E: CD-ROM audio control parameters page
///
- /// CD-ROM audio control parameters
- /// Page code 0x0E
- /// 16 bytes in SCSI-2, MMC-1, MMC-2, MMC-3
+ /// CD-ROM audio control parameters
+ /// Page code 0x0E
+ /// 16 bytes in SCSI-2, MMC-1, MMC-2, MMC-3
///
public struct ModePage_0E
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Return status as soon as playback operation starts
+ /// Return status as soon as playback operation starts
///
public bool Immed;
///
- /// Stop on track crossing
+ /// Stop on track crossing
///
public bool SOTC;
///
- /// Indicates is valid
+ /// Indicates is valid
///
public bool APRVal;
///
- /// Multiplier for
+ /// Multiplier for
///
public byte LBAFormat;
///
- /// LBAs per second of audio
+ /// LBAs per second of audio
///
public ushort BlocksPerSecondOfAudio;
///
- /// Channels output on this port
+ /// Channels output on this port
///
public byte OutputPort0ChannelSelection;
///
- /// Volume level for this port
+ /// Volume level for this port
///
public byte OutputPort0Volume;
///
- /// Channels output on this port
+ /// Channels output on this port
///
public byte OutputPort1ChannelSelection;
///
- /// Volume level for this port
+ /// Volume level for this port
///
public byte OutputPort1Volume;
///
- /// Channels output on this port
+ /// Channels output on this port
///
public byte OutputPort2ChannelSelection;
///
- /// Volume level for this port
+ /// Volume level for this port
///
public byte OutputPort2Volume;
///
- /// Channels output on this port
+ /// Channels output on this port
///
public byte OutputPort3ChannelSelection;
///
- /// Volume level for this port
+ /// Volume level for this port
///
public byte OutputPort3Volume;
}
diff --git a/SCSI/Modes/0F.cs b/SCSI/Modes/0F.cs
index aa1d5cb..b46f4ca 100644
--- a/SCSI/Modes/0F.cs
+++ b/SCSI/Modes/0F.cs
@@ -42,38 +42,38 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Page 0x0F: Data compression page
///
- /// Data compression page
- /// Page code 0x0F
- /// 16 bytes in SSC-1, SSC-2, SSC-3
+ /// Data compression page
+ /// Page code 0x0F
+ /// 16 bytes in SSC-1, SSC-2, SSC-3
///
public struct ModePage_0F
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Data compression enabled
+ /// Data compression enabled
///
public bool DCE;
///
- /// Data compression capable
+ /// Data compression capable
///
public bool DCC;
///
- /// Data decompression enabled
+ /// Data decompression enabled
///
public bool DDE;
///
- /// Report exception on decompression
+ /// Report exception on decompression
///
public byte RED;
///
- /// Compression algorithm
+ /// Compression algorithm
///
public uint CompressionAlgo;
///
- /// Decompression algorithm
+ /// Decompression algorithm
///
public uint DecompressionAlgo;
}
diff --git a/SCSI/Modes/10.cs b/SCSI/Modes/10.cs
index 84bbc11..d082104 100644
--- a/SCSI/Modes/10.cs
+++ b/SCSI/Modes/10.cs
@@ -42,34 +42,34 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Page 0x10: XOR control mode page
///
- /// XOR control mode page
- /// Page code 0x10
- /// 24 bytes in SBC-1, SBC-2
+ /// XOR control mode page
+ /// Page code 0x10
+ /// 24 bytes in SBC-1, SBC-2
///
public struct ModePage_10
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Disables XOR operations
+ /// Disables XOR operations
///
public bool XORDIS;
///
- /// Maximum transfer length in blocks for a XOR command
+ /// Maximum transfer length in blocks for a XOR command
///
public uint MaxXorWrite;
///
- /// Maximum regenerate length in blocks
+ /// Maximum regenerate length in blocks
///
public uint MaxRegenSize;
///
- /// Maximum transfer length in blocks for READ during a rebuild
+ /// Maximum transfer length in blocks for READ during a rebuild
///
public uint MaxRebuildRead;
///
- /// Minimum time in ms between READs during a rebuild
+ /// Minimum time in ms between READs during a rebuild
///
public ushort RebuildDelay;
}
diff --git a/SCSI/Modes/10_SSC.cs b/SCSI/Modes/10_SSC.cs
index b730188..4b1f132 100644
--- a/SCSI/Modes/10_SSC.cs
+++ b/SCSI/Modes/10_SSC.cs
@@ -40,113 +40,113 @@ namespace DiscImageChef.Decoders.SCSI
[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
public static partial class Modes
{
- #region Mode Page 0x10: Device configuration page
+ #region Mode Page 0x10: Device configuration page
///
- /// Device configuration page
- /// Page code 0x10
- /// 16 bytes in SCSI-2, SSC-1, SSC-2, SSC-3
+ /// Device configuration page
+ /// Page code 0x10
+ /// 16 bytes in SCSI-2, SSC-1, SSC-2, SSC-3
///
public struct ModePage_10_SSC
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Used in mode select to change partition to one specified in
+ /// Used in mode select to change partition to one specified in
///
public bool CAP;
///
- /// Used in mode select to change format to one specified in
+ /// Used in mode select to change format to one specified in
///
public bool CAF;
///
- /// Active format, vendor-specific
+ /// Active format, vendor-specific
///
public byte ActiveFormat;
///
- /// Current logical partition
+ /// Current logical partition
///
public byte ActivePartition;
///
- /// How full the buffer shall be before writing to medium
+ /// How full the buffer shall be before writing to medium
///
public byte WriteBufferFullRatio;
///
- /// How empty the buffer shall be before reading more data from the medium
+ /// How empty the buffer shall be before reading more data from the medium
///
public byte ReadBufferEmptyRatio;
///
- /// Delay in 100 ms before buffered data is forcefully written to the medium even before buffer is full
+ /// Delay in 100 ms before buffered data is forcefully written to the medium even before buffer is full
///
public ushort WriteDelayTime;
///
- /// Drive supports recovering data from buffer
+ /// Drive supports recovering data from buffer
///
public bool DBR;
///
- /// Medium has block IDs
+ /// Medium has block IDs
///
public bool BIS;
///
- /// Drive recognizes and reports setmarks
+ /// Drive recognizes and reports setmarks
///
public bool RSmk;
///
- /// Drive selects best speed
+ /// Drive selects best speed
///
public bool AVC;
///
- /// If drive should stop pre-reading on filemarks
+ /// If drive should stop pre-reading on filemarks
///
public byte SOCF;
///
- /// If set, recovered buffer data is LIFO, otherwise, FIFO
+ /// If set, recovered buffer data is LIFO, otherwise, FIFO
///
public bool RBO;
///
- /// Report early warnings
+ /// Report early warnings
///
public bool REW;
///
- /// Inter-block gap
+ /// Inter-block gap
///
public byte GapSize;
///
- /// End-of-Data format
+ /// End-of-Data format
///
public byte EODDefined;
///
- /// EOD generation enabled
+ /// EOD generation enabled
///
public bool EEG;
///
- /// Synchronize data to medium on early warning
+ /// Synchronize data to medium on early warning
///
public bool SEW;
///
- /// Bytes to reduce buffer size on early warning
+ /// Bytes to reduce buffer size on early warning
///
public uint BufferSizeEarlyWarning;
///
- /// Selected data compression algorithm
+ /// Selected data compression algorithm
///
public byte SelectedCompression;
///
- /// Soft write protect
+ /// Soft write protect
///
public bool SWP;
///
- /// Associated write protect
+ /// Associated write protect
///
public bool ASOCWP;
///
- /// Persistent write protect
+ /// Persistent write protect
///
public bool PERSWP;
///
- /// Permanent write protect
+ /// Permanent write protect
///
public bool PRMWP;
@@ -155,11 +155,11 @@ namespace DiscImageChef.Decoders.SCSI
public byte RewindOnReset;
///
- /// How drive shall respond to detection of compromised WORM medium integrity
+ /// How drive shall respond to detection of compromised WORM medium integrity
///
public byte WTRE;
///
- /// Respond to commands only if a reservation exists
+ /// Respond to commands only if a reservation exists
///
public bool OIR;
}
diff --git a/SCSI/Modes/11.cs b/SCSI/Modes/11.cs
index a918b29..bec32a9 100644
--- a/SCSI/Modes/11.cs
+++ b/SCSI/Modes/11.cs
@@ -45,19 +45,19 @@ namespace DiscImageChef.Decoders.SCSI
public enum PartitionSizeUnitOfMeasures : byte
{
///
- /// Partition size is measures in bytes
+ /// Partition size is measures in bytes
///
Bytes = 0,
///
- /// Partition size is measures in Kilobytes
+ /// Partition size is measures in Kilobytes
///
Kilobytes = 1,
///
- /// Partition size is measures in Megabytes
+ /// Partition size is measures in Megabytes
///
Megabytes = 2,
///
- /// Partition size is 10eUNITS bytes
+ /// Partition size is 10eUNITS bytes
///
Exponential = 3
}
@@ -65,67 +65,67 @@ namespace DiscImageChef.Decoders.SCSI
public enum MediumFormatRecognitionValues : byte
{
///
- /// Logical unit is incapable of format or partition recognition
+ /// Logical unit is incapable of format or partition recognition
///
Incapable = 0,
///
- /// Logical unit is capable of format recognition only
+ /// Logical unit is capable of format recognition only
///
FormatCapable = 1,
///
- /// Logical unit is capable of partition recognition only
+ /// Logical unit is capable of partition recognition only
///
PartitionCapable = 2,
///
- /// Logical unit is capable of both format and partition recognition
+ /// Logical unit is capable of both format and partition recognition
///
Capable = 3
}
///
- /// Medium partition page(1)
- /// Page code 0x11
+ /// Medium partition page(1)
+ /// Page code 0x11
///
public struct ModePage_11
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Maximum number of additional partitions supported
+ /// Maximum number of additional partitions supported
///
public byte MaxAdditionalPartitions;
///
- /// Number of additional partitions to be defined for a volume
+ /// Number of additional partitions to be defined for a volume
///
public byte AdditionalPartitionsDefined;
///
- /// Device defines partitions based on its fixed definition
+ /// Device defines partitions based on its fixed definition
///
public bool FDP;
///
- /// Device should divide medium according to the additional partitions defined field using sizes defined by device
+ /// Device should divide medium according to the additional partitions defined field using sizes defined by device
///
public bool SDP;
///
- /// Initiator defines number and size of partitions
+ /// Initiator defines number and size of partitions
///
public bool IDP;
///
- /// Defines the unit on which the partition sizes are defined
+ /// Defines the unit on which the partition sizes are defined
///
public PartitionSizeUnitOfMeasures PSUM;
public bool POFM;
public bool CLEAR;
public bool ADDP;
///
- /// Defines the capabilities for the unit to recognize media partitions and format
+ /// Defines the capabilities for the unit to recognize media partitions and format
///
public MediumFormatRecognitionValues MediumFormatRecognition;
public byte PartitionUnits;
///
- /// Array of partition sizes in units defined above
+ /// Array of partition sizes in units defined above
///
public ushort[] PartitionSizes;
}
@@ -196,8 +196,7 @@ namespace DiscImageChef.Decoders.SCSI
sb.AppendLine("\tDevice shall erase all partitions on MODE SELECT for partitioning");
else if(!page.CLEAR)
sb.AppendLine("\tDevice shall not erase any partition on MODE SELECT for partitioning");
- else
- sb.AppendLine("\tDevice shall erase all partitions differing on size on MODE SELECT for partitioning");
+ else sb.AppendLine("\tDevice shall erase all partitions differing on size on MODE SELECT for partitioning");
string measure;
diff --git a/SCSI/Modes/12_13_14.cs b/SCSI/Modes/12_13_14.cs
index 25183d8..c9a2bd3 100644
--- a/SCSI/Modes/12_13_14.cs
+++ b/SCSI/Modes/12_13_14.cs
@@ -42,17 +42,17 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Pages 0x12, 0x13, 0x14: Medium partition page (2-4)
///
- /// Medium partition page (2-4)
- /// Page codes 0x12, 0x13 and 0x14
+ /// Medium partition page (2-4)
+ /// Page codes 0x12, 0x13 and 0x14
///
public struct ModePage_12_13_14
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Array of partition sizes in units defined in mode page 11
+ /// Array of partition sizes in units defined in mode page 11
///
public ushort[] PartitionSizes;
}
diff --git a/SCSI/Modes/1A.cs b/SCSI/Modes/1A.cs
index 796ccfe..a50bc5d 100644
--- a/SCSI/Modes/1A.cs
+++ b/SCSI/Modes/1A.cs
@@ -42,60 +42,60 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Page 0x1A: Power condition page
///
- /// Power condition page
- /// Page code 0x1A
- /// 12 bytes in SPC-1, SPC-2, SPC-3, SPC-4
- /// 40 bytes in SPC-5
+ /// Power condition page
+ /// Page code 0x1A
+ /// 12 bytes in SPC-1, SPC-2, SPC-3, SPC-4
+ /// 40 bytes in SPC-5
///
public struct ModePage_1A
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Idle timer activated
+ /// Idle timer activated
///
public bool Idle;
///
- /// Standby timer activated
+ /// Standby timer activated
///
public bool Standby;
///
- /// Idle timer
+ /// Idle timer
///
public uint IdleTimer;
///
- /// Standby timer
+ /// Standby timer
///
public uint StandbyTimer;
///
- /// Interactions between background functions and power management
+ /// Interactions between background functions and power management
///
public byte PM_BG_Precedence;
///
- /// Standby timer Y activated
+ /// Standby timer Y activated
///
public bool Standby_Y;
///
- /// Idle timer B activated
+ /// Idle timer B activated
///
public bool Idle_B;
///
- /// Idle timer C activated
+ /// Idle timer C activated
///
public bool Idle_C;
///
- /// Idle timer B
+ /// Idle timer B
///
public uint IdleTimer_B;
///
- /// Idle timer C
+ /// Idle timer C
///
public uint IdleTimer_C;
///
- /// Standby timer Y
+ /// Standby timer Y
///
public uint StandbyTimer_Y;
public byte CCF_Idle;
@@ -200,23 +200,23 @@ namespace DiscImageChef.Decoders.SCSI
#region Mode Page 0x1A subpage 0x01: Power Consumption mode page
///
- /// Power Consumption mode page
- /// Page code 0x1A
- /// Subpage code 0x01
- /// 16 bytes in SPC-5
+ /// Power Consumption mode page
+ /// Page code 0x1A
+ /// Subpage code 0x01
+ /// 16 bytes in SPC-5
///
public struct ModePage_1A_S01
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Active power level
+ /// Active power level
///
public byte ActiveLevel;
///
- /// Power Consumption VPD identifier in use
+ /// Power Consumption VPD identifier in use
///
public byte PowerConsumptionIdentifier;
}
diff --git a/SCSI/Modes/1B.cs b/SCSI/Modes/1B.cs
index 75f1a46..5eace4e 100644
--- a/SCSI/Modes/1B.cs
+++ b/SCSI/Modes/1B.cs
@@ -42,34 +42,34 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Page 0x1B: Removable Block Access Capabilities page
///
- /// Removable Block Access Capabilities page
- /// Page code 0x1B
- /// 12 bytes in INF-8070
+ /// Removable Block Access Capabilities page
+ /// Page code 0x1B
+ /// 12 bytes in INF-8070
///
public struct ModePage_1B
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Supports reporting progress of format
+ /// Supports reporting progress of format
///
public bool SRFP;
///
- /// Non-CD Optical Device
+ /// Non-CD Optical Device
///
public bool NCD;
///
- /// Phase change dual device supporting a CD and a Non-CD Optical devices
+ /// Phase change dual device supporting a CD and a Non-CD Optical devices
///
public bool SML;
///
- /// Total number of LUNs
+ /// Total number of LUNs
///
public byte TLUN;
///
- /// System Floppy Type device
+ /// System Floppy Type device
///
public bool SFLP;
}
diff --git a/SCSI/Modes/1C.cs b/SCSI/Modes/1C.cs
index 5ef6239..b8def2b 100644
--- a/SCSI/Modes/1C.cs
+++ b/SCSI/Modes/1C.cs
@@ -42,56 +42,56 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Page 0x1C: Informational exceptions control page
///
- /// Informational exceptions control page
- /// Page code 0x1C
- /// 12 bytes in SPC-1, SPC-2, SPC-3, SPC-4
+ /// Informational exceptions control page
+ /// Page code 0x1C
+ /// 12 bytes in SPC-1, SPC-2, SPC-3, SPC-4
///
public struct ModePage_1C
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Informational exception operations should not affect performance
+ /// Informational exception operations should not affect performance
///
public bool Perf;
///
- /// Disable informational exception operations
+ /// Disable informational exception operations
///
public bool DExcpt;
///
- /// Create a test device failure at next interval time
+ /// Create a test device failure at next interval time
///
public bool Test;
///
- /// Log informational exception conditions
+ /// Log informational exception conditions
///
public bool LogErr;
///
- /// Method of reporting informational exceptions
+ /// Method of reporting informational exceptions
///
public byte MRIE;
///
- /// 100 ms period to report an informational exception condition
+ /// 100 ms period to report an informational exception condition
///
public uint IntervalTimer;
///
- /// How many times to report informational exceptions
+ /// How many times to report informational exceptions
///
public uint ReportCount;
///
- /// Enable background functions
+ /// Enable background functions
///
public bool EBF;
///
- /// Warning reporting enabled
+ /// Warning reporting enabled
///
public bool EWasc;
///
- /// Enable reporting of background self-test errors
+ /// Enable reporting of background self-test errors
///
public bool EBACKERR;
}
@@ -204,47 +204,47 @@ namespace DiscImageChef.Decoders.SCSI
#region Mode Page 0x1C subpage 0x01: Background Control mode page
///
- /// Background Control mode page
- /// Page code 0x1A
- /// Subpage code 0x01
- /// 16 bytes in SPC-5
+ /// Background Control mode page
+ /// Page code 0x1A
+ /// Subpage code 0x01
+ /// 16 bytes in SPC-5
///
public struct ModePage_1C_S01
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Suspend on log full
+ /// Suspend on log full
///
public bool S_L_Full;
///
- /// Log only when intervention required
+ /// Log only when intervention required
///
public bool LOWIR;
///
- /// Enable background medium scan
+ /// Enable background medium scan
///
public bool En_Bms;
///
- /// Enable background pre-scan
+ /// Enable background pre-scan
///
public bool En_Ps;
///
- /// Time in hours between background medium scans
+ /// Time in hours between background medium scans
///
public ushort BackgroundScanInterval;
///
- /// Maximum time in hours for a background pre-scan to complete
+ /// Maximum time in hours for a background pre-scan to complete
///
public ushort BackgroundPrescanTimeLimit;
///
- /// Minimum time in ms being idle before resuming a background scan
+ /// Minimum time in ms being idle before resuming a background scan
///
public ushort MinIdleBeforeBgScan;
///
- /// Maximum time in ms to start processing commands while performing a background scan
+ /// Maximum time in ms to start processing commands while performing a background scan
///
public ushort MaxTimeSuspendBgScan;
}
diff --git a/SCSI/Modes/1C_SFF.cs b/SCSI/Modes/1C_SFF.cs
index 5ac84b2..c943ca9 100644
--- a/SCSI/Modes/1C_SFF.cs
+++ b/SCSI/Modes/1C_SFF.cs
@@ -42,26 +42,26 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Page 0x1C: Timer & Protect page
///
- /// Timer & Protect page
- /// Page code 0x1C
- /// 8 bytes in INF-8070
+ /// Timer & Protect page
+ /// Page code 0x1C
+ /// 8 bytes in INF-8070
///
public struct ModePage_1C_SFF
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Time the device shall remain in the current state after seek, read or write operation
+ /// Time the device shall remain in the current state after seek, read or write operation
///
public byte InactivityTimeMultiplier;
///
- /// Disabled until power cycle
+ /// Disabled until power cycle
///
public bool DISP;
///
- /// Software Write Protect until Power-down
+ /// Software Write Protect until Power-down
///
public bool SWPP;
}
diff --git a/SCSI/Modes/1D.cs b/SCSI/Modes/1D.cs
index d2b87b7..4ddd997 100644
--- a/SCSI/Modes/1D.cs
+++ b/SCSI/Modes/1D.cs
@@ -44,7 +44,7 @@ namespace DiscImageChef.Decoders.SCSI
public struct ModePage_1D
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
public bool WORMM;
diff --git a/SCSI/Modes/21_Certance.cs b/SCSI/Modes/21_Certance.cs
index 695d190..f9ba75d 100644
--- a/SCSI/Modes/21_Certance.cs
+++ b/SCSI/Modes/21_Certance.cs
@@ -44,7 +44,7 @@ namespace DiscImageChef.Decoders.SCSI
public struct Certance_ModePage_21
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
public byte OperatingSystemsSupport;
diff --git a/SCSI/Modes/22_Certance.cs b/SCSI/Modes/22_Certance.cs
index ea02cf2..db1f056 100644
--- a/SCSI/Modes/22_Certance.cs
+++ b/SCSI/Modes/22_Certance.cs
@@ -45,7 +45,7 @@ namespace DiscImageChef.Decoders.SCSI
public struct Certance_ModePage_22
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
public byte BaudRate;
diff --git a/SCSI/Modes/24_IBM.cs b/SCSI/Modes/24_IBM.cs
index f57a35a..0f7f8c8 100644
--- a/SCSI/Modes/24_IBM.cs
+++ b/SCSI/Modes/24_IBM.cs
@@ -44,7 +44,7 @@ namespace DiscImageChef.Decoders.SCSI
public struct IBM_ModePage_24
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
public byte ModeControl;
diff --git a/SCSI/Modes/2A.cs b/SCSI/Modes/2A.cs
index 7c32372..0758a29 100644
--- a/SCSI/Modes/2A.cs
+++ b/SCSI/Modes/2A.cs
@@ -44,106 +44,106 @@ namespace DiscImageChef.Decoders.SCSI
{
#region Mode Page 0x2A: CD-ROM capabilities page
///
- /// CD-ROM capabilities page
- /// Page code 0x2A
- /// 16 bytes in OB-U0077C
- /// 20 bytes in SFF-8020i
- /// 22 bytes in MMC-1
- /// 26 bytes in MMC-2
- /// Variable bytes in MMC-3
+ /// CD-ROM capabilities page
+ /// Page code 0x2A
+ /// 16 bytes in OB-U0077C
+ /// 20 bytes in SFF-8020i
+ /// 22 bytes in MMC-1
+ /// 26 bytes in MMC-2
+ /// Variable bytes in MMC-3
///
public struct ModePage_2A
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// Drive supports multi-session and/or Photo-CD
+ /// Drive supports multi-session and/or Photo-CD
///
public bool MultiSession;
///
- /// Drive is capable of reading sectors in Mode 2 Form 2 format
+ /// Drive is capable of reading sectors in Mode 2 Form 2 format
///
public bool Mode2Form2;
///
- /// Drive is capable of reading sectors in Mode 2 Form 1 format
+ /// Drive is capable of reading sectors in Mode 2 Form 1 format
///
public bool Mode2Form1;
///
- /// Drive is capable of playing audio
+ /// Drive is capable of playing audio
///
public bool AudioPlay;
///
- /// Drive can return the ISRC
+ /// Drive can return the ISRC
///
public bool ISRC;
///
- /// Drive can return the media catalogue number
+ /// Drive can return the media catalogue number
///
public bool UPC;
///
- /// Drive can return C2 pointers
+ /// Drive can return C2 pointers
///
public bool C2Pointer;
///
- /// Drive can read, deinterlave and correct R-W subchannels
+ /// Drive can read, deinterlave and correct R-W subchannels
///
public bool DeinterlaveSubchannel;
///
- /// Drive can read interleaved and uncorrected R-W subchannels
+ /// Drive can read interleaved and uncorrected R-W subchannels
///
public bool Subchannel;
///
- /// Drive can continue from a loss of streaming on audio reading
+ /// Drive can continue from a loss of streaming on audio reading
///
public bool AccurateCDDA;
///
- /// Audio can be read as digital data
+ /// Audio can be read as digital data
///
public bool CDDACommand;
///
- /// Loading Mechanism Type
+ /// Loading Mechanism Type
///
public byte LoadingMechanism;
///
- /// Drive can eject discs
+ /// Drive can eject discs
///
public bool Eject;
///
- /// Drive's optional prevent jumper status
+ /// Drive's optional prevent jumper status
///
public bool PreventJumper;
///
- /// Current lock status
+ /// Current lock status
///
public bool LockState;
///
- /// Drive can lock media
+ /// Drive can lock media
///
public bool Lock;
///
- /// Each channel can be muted independently
+ /// Each channel can be muted independently
///
public bool SeparateChannelMute;
///
- /// Each channel's volume can be controlled independently
+ /// Each channel's volume can be controlled independently
///
public bool SeparateChannelVolume;
///
- /// Maximum drive speed in Kbytes/second
+ /// Maximum drive speed in Kbytes/second
///
public ushort MaximumSpeed;
///
- /// Supported volume levels
+ /// Supported volume levels
///
public ushort SupportedVolumeLevels;
///
- /// Buffer size in Kbytes
+ /// Buffer size in Kbytes
///
public ushort BufferSize;
///
- /// Current drive speed in Kbytes/second
+ /// Current drive speed in Kbytes/second
///
public ushort CurrentSpeed;
@@ -283,13 +283,11 @@ namespace DiscImageChef.Decoders.SCSI
decoded.WriteSpeedPerformanceDescriptors = new ModePage_2A_WriteDescriptor[descriptors];
for(int i = 0; i < descriptors; i++)
- {
decoded.WriteSpeedPerformanceDescriptors[i] = new ModePage_2A_WriteDescriptor
- {
+ {
RotationControl = (byte)(pageResponse[1 + 32 + i * 4] & 0x07),
WriteSpeed = (ushort)((pageResponse[2 + 32 + i * 4] << 8) + pageResponse[3 + 32 + i * 4])
};
- }
return decoded;
}
@@ -355,11 +353,9 @@ namespace DiscImageChef.Decoders.SCSI
: "\tDrive is not locked, media can be ejected and inserted");
}
else
- {
sb.AppendLine(page.LockState
? "\tDrive is locked, media cannot be ejected, but if empty, can be inserted"
: "\tDrive is not locked, media can be ejected and inserted");
- }
if(page.Eject) sb.AppendLine("\tDrive can eject media");
if(page.SeparateChannelMute) sb.AppendLine("\tEach channel can be muted independently");
@@ -414,9 +410,11 @@ namespace DiscImageChef.Decoders.SCSI
}
if(page.WriteSpeedPerformanceDescriptors != null)
- foreach(ModePage_2A_WriteDescriptor descriptor in page.WriteSpeedPerformanceDescriptors.Where(descriptor => descriptor.WriteSpeed > 0)) if(descriptor.RotationControl == 0)
- sb.AppendFormat("\tDrive supports writing at {0} Kbyte/sec. in CLV mode",
- descriptor.WriteSpeed).AppendLine();
+ foreach(ModePage_2A_WriteDescriptor descriptor in
+ page.WriteSpeedPerformanceDescriptors.Where(descriptor => descriptor.WriteSpeed > 0))
+ if(descriptor.RotationControl == 0)
+ sb.AppendFormat("\tDrive supports writing at {0} Kbyte/sec. in CLV mode", descriptor.WriteSpeed)
+ .AppendLine();
else if(descriptor.RotationControl == 1)
sb.AppendFormat("\tDrive supports writing at is {0} Kbyte/sec. in pure CAV mode",
descriptor.WriteSpeed).AppendLine();
diff --git a/SCSI/Modes/2F_IBM.cs b/SCSI/Modes/2F_IBM.cs
index 7116c8f..a34128d 100644
--- a/SCSI/Modes/2F_IBM.cs
+++ b/SCSI/Modes/2F_IBM.cs
@@ -45,7 +45,7 @@ namespace DiscImageChef.Decoders.SCSI
public struct IBM_ModePage_2F
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
public byte FenceBehaviour;
diff --git a/SCSI/Modes/30_Apple.cs b/SCSI/Modes/30_Apple.cs
index 802eb6d..207c933 100644
--- a/SCSI/Modes/30_Apple.cs
+++ b/SCSI/Modes/30_Apple.cs
@@ -41,28 +41,28 @@ namespace DiscImageChef.Decoders.SCSI
[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
public static partial class Modes
{
- #region Apple Mode Page 0x30: Apple OEM String
- static readonly byte[] AppleOEMString =
- {
- 0x41, 0x50, 0x50, 0x4C, 0x45, 0x20, 0x43, 0x4F, 0x4D, 0x50, 0x55, 0x54, 0x45, 0x52, 0x2C, 0x20, 0x49, 0x4E,
- 0x43, 0x2E
- };
+ #region Apple Mode Page 0x30: Apple OEM String
+ static readonly byte[] AppleOEMString =
+ {
+ 0x41, 0x50, 0x50, 0x4C, 0x45, 0x20, 0x43, 0x4F, 0x4D, 0x50, 0x55, 0x54, 0x45, 0x52, 0x2C, 0x20, 0x49, 0x4E,
+ 0x43, 0x2E
+ };
- public static bool IsAppleModePage_30(byte[] pageResponse)
- {
- if((pageResponse?[0] & 0x40) == 0x40) return false;
+ public static bool IsAppleModePage_30(byte[] pageResponse)
+ {
+ if((pageResponse?[0] & 0x40) == 0x40) return false;
- if((pageResponse?[0] & 0x3F) != 0x30) return false;
+ if((pageResponse?[0] & 0x3F) != 0x30) return false;
- if(pageResponse[1] + 2 != pageResponse.Length) return false;
+ if(pageResponse[1] + 2 != pageResponse.Length) return false;
- if(pageResponse.Length != 30) return false;
+ if(pageResponse.Length != 30) return false;
- byte[] str = new byte[20];
- Array.Copy(pageResponse, 10, str, 0, 20);
+ byte[] str = new byte[20];
+ Array.Copy(pageResponse, 10, str, 0, 20);
- return AppleOEMString.SequenceEqual(str);
- }
- #endregion Apple Mode Page 0x30: Apple OEM String
+ return AppleOEMString.SequenceEqual(str);
+ }
+ #endregion Apple Mode Page 0x30: Apple OEM String
}
}
\ No newline at end of file
diff --git a/SCSI/Modes/3B_HP.cs b/SCSI/Modes/3B_HP.cs
index 1a5ffc3..0ea4b41 100644
--- a/SCSI/Modes/3B_HP.cs
+++ b/SCSI/Modes/3B_HP.cs
@@ -45,7 +45,7 @@ namespace DiscImageChef.Decoders.SCSI
public struct HP_ModePage_3B
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
public byte MSN;
diff --git a/SCSI/Modes/3C_HP.cs b/SCSI/Modes/3C_HP.cs
index 99d98b5..b140715 100644
--- a/SCSI/Modes/3C_HP.cs
+++ b/SCSI/Modes/3C_HP.cs
@@ -45,7 +45,7 @@ namespace DiscImageChef.Decoders.SCSI
public struct HP_ModePage_3C
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
public bool LT;
diff --git a/SCSI/Modes/3D_HP.cs b/SCSI/Modes/3D_HP.cs
index 0372257..7239a3a 100644
--- a/SCSI/Modes/3D_HP.cs
+++ b/SCSI/Modes/3D_HP.cs
@@ -44,7 +44,7 @@ namespace DiscImageChef.Decoders.SCSI
public struct HP_ModePage_3D
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
public byte ResetBehaviour;
diff --git a/SCSI/Modes/3D_IBM.cs b/SCSI/Modes/3D_IBM.cs
index a1dce04..417401b 100644
--- a/SCSI/Modes/3D_IBM.cs
+++ b/SCSI/Modes/3D_IBM.cs
@@ -40,54 +40,54 @@ namespace DiscImageChef.Decoders.SCSI
[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
public static partial class Modes
{
- #region IBM Mode Page 0x3D: Behaviour Configuration Mode page
- public struct IBM_ModePage_3D
- {
- ///
- /// Parameters can be saved
- ///
- public bool PS;
- public ushort NumberOfWraps;
- }
+ #region IBM Mode Page 0x3D: Behaviour Configuration Mode page
+ public struct IBM_ModePage_3D
+ {
+ ///
+ /// Parameters can be saved
+ ///
+ public bool PS;
+ public ushort NumberOfWraps;
+ }
- public static IBM_ModePage_3D? DecodeIBMModePage_3D(byte[] pageResponse)
- {
- if((pageResponse?[0] & 0x40) == 0x40) return null;
+ public static IBM_ModePage_3D? DecodeIBMModePage_3D(byte[] pageResponse)
+ {
+ if((pageResponse?[0] & 0x40) == 0x40) return null;
- if((pageResponse?[0] & 0x3F) != 0x3D) return null;
+ if((pageResponse?[0] & 0x3F) != 0x3D) return null;
- if(pageResponse[1] + 2 != pageResponse.Length) return null;
+ if(pageResponse[1] + 2 != pageResponse.Length) return null;
- if(pageResponse.Length != 5) return null;
+ if(pageResponse.Length != 5) return null;
- IBM_ModePage_3D decoded = new IBM_ModePage_3D();
+ IBM_ModePage_3D decoded = new IBM_ModePage_3D();
- decoded.PS |= (pageResponse[0] & 0x80) == 0x80;
- decoded.NumberOfWraps = (ushort)((pageResponse[3] << 8) + pageResponse[4]);
+ decoded.PS |= (pageResponse[0] & 0x80) == 0x80;
+ decoded.NumberOfWraps = (ushort)((pageResponse[3] << 8) + pageResponse[4]);
- return decoded;
- }
+ return decoded;
+ }
- public static string PrettifyIBMModePage_3D(byte[] pageResponse)
- {
- return PrettifyIBMModePage_3D(DecodeIBMModePage_3D(pageResponse));
- }
+ public static string PrettifyIBMModePage_3D(byte[] pageResponse)
+ {
+ return PrettifyIBMModePage_3D(DecodeIBMModePage_3D(pageResponse));
+ }
- public static string PrettifyIBMModePage_3D(IBM_ModePage_3D? modePage)
- {
- if(!modePage.HasValue) return null;
+ public static string PrettifyIBMModePage_3D(IBM_ModePage_3D? modePage)
+ {
+ if(!modePage.HasValue) return null;
- IBM_ModePage_3D page = modePage.Value;
- StringBuilder sb = new StringBuilder();
+ IBM_ModePage_3D page = modePage.Value;
+ StringBuilder sb = new StringBuilder();
- sb.AppendLine("IBM LEOT Mode Page:");
+ sb.AppendLine("IBM LEOT Mode Page:");
- if(page.PS) sb.AppendLine("\tParameters can be saved");
+ if(page.PS) sb.AppendLine("\tParameters can be saved");
- sb.AppendFormat("\t{0} wraps", page.NumberOfWraps).AppendLine();
+ sb.AppendFormat("\t{0} wraps", page.NumberOfWraps).AppendLine();
- return sb.ToString();
- }
- #endregion IBM Mode Page 0x3D: Behaviour Configuration Mode page
+ return sb.ToString();
+ }
+ #endregion IBM Mode Page 0x3D: Behaviour Configuration Mode page
}
}
\ No newline at end of file
diff --git a/SCSI/Modes/3E_Fujitsu.cs b/SCSI/Modes/3E_Fujitsu.cs
index 90db565..430cb7b 100644
--- a/SCSI/Modes/3E_Fujitsu.cs
+++ b/SCSI/Modes/3E_Fujitsu.cs
@@ -46,15 +46,15 @@ namespace DiscImageChef.Decoders.SCSI
public enum Fujitsu_VerifyModes : byte
{
///
- /// Always verify after writing
+ /// Always verify after writing
///
Always = 0,
///
- /// Never verify after writing
+ /// Never verify after writing
///
Never = 1,
///
- /// Verify after writing depending on condition
+ /// Verify after writing depending on condition
///
Depends = 2,
Reserved = 4
@@ -63,25 +63,25 @@ namespace DiscImageChef.Decoders.SCSI
public struct Fujitsu_ModePage_3E
{
///
- /// Parameters can be saved
+ /// Parameters can be saved
///
public bool PS;
///
- /// If set, AV data support mode is applied
+ /// If set, AV data support mode is applied
///
public bool audioVisualMode;
///
- /// If set the test write operation is restricted
+ /// If set the test write operation is restricted
///
public bool streamingMode;
public byte Reserved1;
///
- /// Verify mode for WRITE commands
+ /// Verify mode for WRITE commands
///
public Fujitsu_VerifyModes verifyMode;
public byte Reserved2;
///
- /// Device type provided in response to INQUIRY
+ /// Device type provided in response to INQUIRY
///
public PeripheralDeviceTypes devType;
public byte[] Reserved3;
diff --git a/SCSI/Modes/3E_HP.cs b/SCSI/Modes/3E_HP.cs
index 3b6bad1..7692759 100644
--- a/SCSI/Modes/3E_HP.cs
+++ b/SCSI/Modes/3E_HP.cs
@@ -40,57 +40,59 @@ namespace DiscImageChef.Decoders.SCSI
[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
public static partial class Modes
{
- #region HP Mode Page 0x3E: CD-ROM Emulation/Disaster Recovery Mode page
- public struct HP_ModePage_3E
- {
- ///
- /// Parameters can be saved
- ///
- public bool PS;
- public bool NonAuto;
- public bool CDmode;
- }
+ #region HP Mode Page 0x3E: CD-ROM Emulation/Disaster Recovery Mode page
+ public struct HP_ModePage_3E
+ {
+ ///
+ /// Parameters can be saved
+ ///
+ public bool PS;
+ public bool NonAuto;
+ public bool CDmode;
+ }
- public static HP_ModePage_3E? DecodeHPModePage_3E(byte[] pageResponse)
- {
- if((pageResponse?[0] & 0x40) == 0x40) return null;
+ public static HP_ModePage_3E? DecodeHPModePage_3E(byte[] pageResponse)
+ {
+ if((pageResponse?[0] & 0x40) == 0x40) return null;
- if((pageResponse?[0] & 0x3F) != 0x3E) return null;
+ if((pageResponse?[0] & 0x3F) != 0x3E) return null;
- if(pageResponse[1] + 2 != pageResponse.Length) return null;
+ if(pageResponse[1] + 2 != pageResponse.Length) return null;
- if(pageResponse.Length != 4) return null;
+ if(pageResponse.Length != 4) return null;
- HP_ModePage_3E decoded = new HP_ModePage_3E();
+ HP_ModePage_3E decoded = new HP_ModePage_3E();
- decoded.PS |= (pageResponse[0] & 0x80) == 0x80;
- decoded.NonAuto |= (pageResponse[2] & 0x02) == 0x02;
- decoded.CDmode |= (pageResponse[2] & 0x01) == 0x01;
+ decoded.PS |= (pageResponse[0] & 0x80) == 0x80;
+ decoded.NonAuto |= (pageResponse[2] & 0x02) == 0x02;
+ decoded.CDmode |= (pageResponse[2] & 0x01) == 0x01;
- return decoded;
- }
+ return decoded;
+ }
- public static string PrettifyHPModePage_3E(byte[] pageResponse)
- {
- return PrettifyHPModePage_3E(DecodeHPModePage_3E(pageResponse));
- }
+ public static string PrettifyHPModePage_3E(byte[] pageResponse)
+ {
+ return PrettifyHPModePage_3E(DecodeHPModePage_3E(pageResponse));
+ }
- public static string PrettifyHPModePage_3E(HP_ModePage_3E? modePage)
- {
- if(!modePage.HasValue) return null;
+ public static string PrettifyHPModePage_3E(HP_ModePage_3E? modePage)
+ {
+ if(!modePage.HasValue) return null;
- HP_ModePage_3E page = modePage.Value;
- StringBuilder sb = new StringBuilder();
+ HP_ModePage_3E page = modePage.Value;
+ StringBuilder sb = new StringBuilder();
- sb.AppendLine("HP CD-ROM Emulation/Disaster Recovery Mode Page:");
+ sb.AppendLine("HP CD-ROM Emulation/Disaster Recovery Mode Page:");
- if(page.PS) sb.AppendLine("\tParameters can be saved");
+ if(page.PS) sb.AppendLine("\tParameters can be saved");
- sb.AppendLine(page.CDmode ? "\tDrive is emulating a CD-ROM drive" : "\tDrive is not emulating a CD-ROM drive");
- if(page.NonAuto) sb.AppendLine("\tDrive will not exit emulation automatically");
+ sb.AppendLine(page.CDmode
+ ? "\tDrive is emulating a CD-ROM drive"
+ : "\tDrive is not emulating a CD-ROM drive");
+ if(page.NonAuto) sb.AppendLine("\tDrive will not exit emulation automatically");
- return sb.ToString();
- }
- #endregion HP Mode Page 0x3E: CD-ROM Emulation/Disaster Recovery Mode page
+ return sb.ToString();
+ }
+ #endregion HP Mode Page 0x3E: CD-ROM Emulation/Disaster Recovery Mode page
}
}
\ No newline at end of file
diff --git a/SCSI/Modes/Headers.cs b/SCSI/Modes/Headers.cs
index aa65b94..0a475a9 100644
--- a/SCSI/Modes/Headers.cs
+++ b/SCSI/Modes/Headers.cs
@@ -146,13 +146,12 @@ namespace DiscImageChef.Decoders.SCSI
else
sb.AppendFormat("\t{0} blocks have {1} and are {2} bytes each", descriptor.Blocks,
density, descriptor.BlockLength).AppendLine();
+ else if(descriptor.Blocks == 0)
+ sb.AppendFormat("\tAll remaining blocks are {0} bytes each", descriptor.BlockLength)
+ .AppendLine();
else
- if(descriptor.Blocks == 0)
- sb.AppendFormat("\tAll remaining blocks are {0} bytes each", descriptor.BlockLength)
- .AppendLine();
- else
- sb.AppendFormat("\t{0} blocks are {1} bytes each", descriptor.Blocks,
- descriptor.BlockLength).AppendLine();
+ sb.AppendFormat("\t{0} blocks are {1} bytes each", descriptor.Blocks,
+ descriptor.BlockLength).AppendLine();
}
break;
@@ -1421,28 +1420,23 @@ namespace DiscImageChef.Decoders.SCSI
else
sb.AppendFormat("\tAll remaining blocks conform to {0} and are {1} bytes each",
density, descriptor.BlockLength).AppendLine();
+ else if(descriptor.BlockLength == 0)
+ sb.AppendFormat("\t{0} blocks conform to {1} and have a variable length",
+ descriptor.Blocks, density).AppendLine();
else
- if(descriptor.BlockLength == 0)
- sb.AppendFormat("\t{0} blocks conform to {1} and have a variable length",
- descriptor.Blocks, density).AppendLine();
- else
- sb.AppendFormat("\t{0} blocks conform to {1} and are {2} bytes each",
- descriptor.Blocks, density, descriptor.BlockLength)
- .AppendLine();
+ sb.AppendFormat("\t{0} blocks conform to {1} and are {2} bytes each",
+ descriptor.Blocks, density, descriptor.BlockLength).AppendLine();
+ else if(descriptor.Blocks == 0)
+ if(descriptor.BlockLength == 0)
+ sb.AppendFormat("\tAll remaining blocks have a variable length").AppendLine();
+ else
+ sb.AppendFormat("\tAll remaining blocks are {0} bytes each", descriptor.BlockLength)
+ .AppendLine();
+ else if(descriptor.BlockLength == 0)
+ sb.AppendFormat("\t{0} blocks have a variable length", descriptor.Blocks).AppendLine();
else
- if(descriptor.Blocks == 0)
- if(descriptor.BlockLength == 0)
- sb.AppendFormat("\tAll remaining blocks have a variable length").AppendLine();
- else
- sb.AppendFormat("\tAll remaining blocks are {0} bytes each",
- descriptor.BlockLength).AppendLine();
- else
- if(descriptor.BlockLength == 0)
- sb.AppendFormat("\t{0} blocks have a variable length", descriptor.Blocks)
- .AppendLine();
- else
- sb.AppendFormat("\t{0} blocks are {1} bytes each", descriptor.Blocks,
- descriptor.BlockLength).AppendLine();
+ sb.AppendFormat("\t{0} blocks are {1} bytes each", descriptor.Blocks,
+ descriptor.BlockLength).AppendLine();
}
break;
@@ -1563,28 +1557,23 @@ namespace DiscImageChef.Decoders.SCSI
else
sb.AppendFormat("\tAll remaining blocks are {0} and are {1} bytes each",
density, descriptor.BlockLength).AppendLine();
+ else if(descriptor.BlockLength == 0)
+ sb.AppendFormat("\t{0} blocks are {1} and have a variable length",
+ descriptor.Blocks, density).AppendLine();
else
- if(descriptor.BlockLength == 0)
- sb.AppendFormat("\t{0} blocks are {1} and have a variable length",
- descriptor.Blocks, density).AppendLine();
- else
- sb.AppendFormat("\t{0} blocks are {1} and are {2} bytes each",
- descriptor.Blocks, density, descriptor.BlockLength)
- .AppendLine();
+ sb.AppendFormat("\t{0} blocks are {1} and are {2} bytes each", descriptor.Blocks,
+ density, descriptor.BlockLength).AppendLine();
+ else if(descriptor.Blocks == 0)
+ if(descriptor.BlockLength == 0)
+ sb.AppendFormat("\tAll remaining blocks have a variable length").AppendLine();
+ else
+ sb.AppendFormat("\tAll remaining blocks are {0} bytes each", descriptor.BlockLength)
+ .AppendLine();
+ else if(descriptor.BlockLength == 0)
+ sb.AppendFormat("\t{0} blocks have a variable length", descriptor.Blocks).AppendLine();
else
- if(descriptor.Blocks == 0)
- if(descriptor.BlockLength == 0)
- sb.AppendFormat("\tAll remaining blocks have a variable length").AppendLine();
- else
- sb.AppendFormat("\tAll remaining blocks are {0} bytes each",
- descriptor.BlockLength).AppendLine();
- else
- if(descriptor.BlockLength == 0)
- sb.AppendFormat("\t{0} blocks have a variable length", descriptor.Blocks)
- .AppendLine();
- else
- sb.AppendFormat("\t{0} blocks are {1} bytes each", descriptor.Blocks,
- descriptor.BlockLength).AppendLine();
+ sb.AppendFormat("\t{0} blocks are {1} bytes each", descriptor.Blocks,
+ descriptor.BlockLength).AppendLine();
}
break;
@@ -1758,13 +1747,12 @@ namespace DiscImageChef.Decoders.SCSI
else
sb.AppendFormat("\t{0} blocks have {1} and are {2} bytes each", descriptor.Blocks,
density, descriptor.BlockLength).AppendLine();
+ else if(descriptor.Blocks == 0)
+ sb.AppendFormat("\tAll remaining blocks are {0} bytes each", descriptor.BlockLength)
+ .AppendLine();
else
- if(descriptor.Blocks == 0)
- sb.AppendFormat("\tAll remaining blocks are {0} bytes each", descriptor.BlockLength)
- .AppendLine();
- else
- sb.AppendFormat("\t{0} blocks are {1} bytes each", descriptor.Blocks,
- descriptor.BlockLength).AppendLine();
+ sb.AppendFormat("\t{0} blocks are {1} bytes each", descriptor.Blocks,
+ descriptor.BlockLength).AppendLine();
}
break;
diff --git a/SCSI/Modes/Mode10.cs b/SCSI/Modes/Mode10.cs
index 0ad5137..c1dd64c 100644
--- a/SCSI/Modes/Mode10.cs
+++ b/SCSI/Modes/Mode10.cs
@@ -103,7 +103,8 @@ namespace DiscImageChef.Decoders.SCSI
}
}
- switch(deviceType) {
+ switch(deviceType)
+ {
case PeripheralDeviceTypes.DirectAccess:
case PeripheralDeviceTypes.MultiMediaDevice:
header.WriteProtected = (modeResponse[3] & 0x80) == 0x80;
@@ -114,7 +115,8 @@ namespace DiscImageChef.Decoders.SCSI
header.Speed = (byte)(modeResponse[3] & 0x0F);
header.BufferedMode = (byte)((modeResponse[3] & 0x70) >> 4);
break;
- case PeripheralDeviceTypes.PrinterDevice: header.BufferedMode = (byte)((modeResponse[3] & 0x70) >> 4);
+ case PeripheralDeviceTypes.PrinterDevice:
+ header.BufferedMode = (byte)((modeResponse[3] & 0x70) >> 4);
break;
case PeripheralDeviceTypes.OpticalDevice:
header.WriteProtected = (modeResponse[3] & 0x80) == 0x80;
@@ -200,17 +202,21 @@ namespace DiscImageChef.Decoders.SCSI
return decoded;
}
- public static byte[] EncodeModeHeader10(ModeHeader header, PeripheralDeviceTypes deviceType, bool longLBA = false)
+ public static byte[] EncodeModeHeader10(ModeHeader header, PeripheralDeviceTypes deviceType,
+ bool longLBA = false)
{
byte[] hdr;
if(header.BlockDescriptors != null)
- hdr = longLBA ? new byte[8 + header.BlockDescriptors.Length * 16] : new byte[8 + header.BlockDescriptors.Length * 8];
+ hdr = longLBA
+ ? new byte[8 + header.BlockDescriptors.Length * 16]
+ : new byte[8 + header.BlockDescriptors.Length * 8];
else hdr = new byte[8];
hdr[2] = (byte)header.MediumType;
- switch(deviceType) {
+ switch(deviceType)
+ {
case PeripheralDeviceTypes.DirectAccess:
case PeripheralDeviceTypes.MultiMediaDevice:
if(header.WriteProtected) hdr[3] += 0x80;
@@ -221,7 +227,8 @@ namespace DiscImageChef.Decoders.SCSI
hdr[3] += (byte)(header.Speed & 0x0F);
hdr[3] += (byte)((header.BufferedMode << 4) & 0x70);
break;
- case PeripheralDeviceTypes.PrinterDevice: hdr[3] += (byte)((header.BufferedMode << 4) & 0x70);
+ case PeripheralDeviceTypes.PrinterDevice:
+ hdr[3] += (byte)((header.BufferedMode << 4) & 0x70);
break;
case PeripheralDeviceTypes.OpticalDevice:
if(header.WriteProtected) hdr[3] += 0x80;
diff --git a/SCSI/Modes/Mode6.cs b/SCSI/Modes/Mode6.cs
index 387ed3f..1a229ca 100644
--- a/SCSI/Modes/Mode6.cs
+++ b/SCSI/Modes/Mode6.cs
@@ -64,7 +64,8 @@ namespace DiscImageChef.Decoders.SCSI
}
}
- switch(deviceType) {
+ switch(deviceType)
+ {
case PeripheralDeviceTypes.DirectAccess:
case PeripheralDeviceTypes.MultiMediaDevice:
header.WriteProtected = (modeResponse[2] & 0x80) == 0x80;
@@ -75,7 +76,8 @@ namespace DiscImageChef.Decoders.SCSI
header.Speed = (byte)(modeResponse[2] & 0x0F);
header.BufferedMode = (byte)((modeResponse[2] & 0x70) >> 4);
break;
- case PeripheralDeviceTypes.PrinterDevice: header.BufferedMode = (byte)((modeResponse[2] & 0x70) >> 4);
+ case PeripheralDeviceTypes.PrinterDevice:
+ header.BufferedMode = (byte)((modeResponse[2] & 0x70) >> 4);
break;
case PeripheralDeviceTypes.OpticalDevice:
header.WriteProtected = (modeResponse[2] & 0x80) == 0x80;
@@ -160,11 +162,14 @@ namespace DiscImageChef.Decoders.SCSI
public static byte[] EncodeModeHeader6(ModeHeader header, PeripheralDeviceTypes deviceType)
{
- byte[] hdr = header.BlockDescriptors != null ? new byte[4 + header.BlockDescriptors.Length * 8] : new byte[4];
+ byte[] hdr = header.BlockDescriptors != null
+ ? new byte[4 + header.BlockDescriptors.Length * 8]
+ : new byte[4];
hdr[1] = (byte)header.MediumType;
- switch(deviceType) {
+ switch(deviceType)
+ {
case PeripheralDeviceTypes.DirectAccess:
case PeripheralDeviceTypes.MultiMediaDevice:
if(header.WriteProtected) hdr[2] += 0x80;
@@ -175,7 +180,8 @@ namespace DiscImageChef.Decoders.SCSI
hdr[2] += (byte)(header.Speed & 0x0F);
hdr[2] += (byte)((header.BufferedMode << 4) & 0x70);
break;
- case PeripheralDeviceTypes.PrinterDevice: hdr[2] += (byte)((header.BufferedMode << 4) & 0x70);
+ case PeripheralDeviceTypes.PrinterDevice:
+ hdr[2] += (byte)((header.BufferedMode << 4) & 0x70);
break;
case PeripheralDeviceTypes.OpticalDevice:
if(header.WriteProtected) hdr[2] += 0x80;
diff --git a/SCSI/SSC/BlockLimits.cs b/SCSI/SSC/BlockLimits.cs
index b712ec1..8ea7209 100644
--- a/SCSI/SSC/BlockLimits.cs
+++ b/SCSI/SSC/BlockLimits.cs
@@ -44,15 +44,15 @@ namespace DiscImageChef.Decoders.SCSI.SSC
public struct BlockLimitsData
{
///
- /// All blocks size must be multiple of 2^
+ /// All blocks size must be multiple of 2^
///
public byte granularity;
///
- /// Maximum block length in bytes
+ /// Maximum block length in bytes
///
public uint maxBlockLen;
///
- /// Minimum block length in bytes
+ /// Minimum block length in bytes
///
public ushort minBlockLen;
}
@@ -86,8 +86,7 @@ namespace DiscImageChef.Decoders.SCSI.SSC
if(decoded.Value.granularity > 0)
sb.AppendFormat("Device's needs a block size granularity of 2^{0} ({1}) bytes",
- decoded.Value.granularity, Math.Pow(2, decoded.Value.granularity))
- .AppendLine();
+ decoded.Value.granularity, Math.Pow(2, decoded.Value.granularity)).AppendLine();
}
return sb.ToString();
diff --git a/SCSI/SSC/DensitySupport.cs b/SCSI/SSC/DensitySupport.cs
index ce03cd8..3933a7a 100644
--- a/SCSI/SSC/DensitySupport.cs
+++ b/SCSI/SSC/DensitySupport.cs
@@ -167,8 +167,7 @@ namespace DiscImageChef.Decoders.SCSI.SSC
if(descriptor.duplicate) sb.AppendLine("\tThis descriptor is duplicated");
if(descriptor.defaultDensity) sb.AppendLine("\tThis is the default density on the drive");
sb.AppendFormat("\tDensity has {0} bits per mm, with {1} tracks in a {2} mm width tape",
- descriptor.bpmm, descriptor.tracks, descriptor.width / (double)10)
- .AppendLine();
+ descriptor.bpmm, descriptor.tracks, descriptor.width / (double)10).AppendLine();
sb.AppendFormat("\tDensity maximum capacity is {0} megabytes", descriptor.capacity).AppendLine();
sb.AppendFormat("\tDensity description: {0}", descriptor.description).AppendLine();
sb.AppendLine();
@@ -258,8 +257,8 @@ namespace DiscImageChef.Decoders.SCSI.SSC
sb.AppendLine();
}
- sb.AppendFormat("\tMedium has a nominal length of {0} m in a {1} mm width tape",
- descriptor.length, descriptor.width / (double)10).AppendLine();
+ sb.AppendFormat("\tMedium has a nominal length of {0} m in a {1} mm width tape", descriptor.length,
+ descriptor.width / (double)10).AppendLine();
sb.AppendFormat("\tMedium description: {0}", descriptor.description).AppendLine();
sb.AppendLine();
}
diff --git a/SCSI/Sense.cs b/SCSI/Sense.cs
index fe174ab..63f0044 100644
--- a/SCSI/Sense.cs
+++ b/SCSI/Sense.cs
@@ -55,23 +55,23 @@ namespace DiscImageChef.Decoders.SCSI
public struct StandardSense
{
///
- /// If set, is valid
+ /// If set, is valid
///
public bool AddressValid;
///
- /// Error class, 0 to 6
+ /// Error class, 0 to 6
///
public byte ErrorClass;
///
- /// Error type
+ /// Error type
///
public byte ErrorType;
///
- /// Private usage
+ /// Private usage
///
public byte Private;
///
- /// LBA where error happened
+ /// LBA where error happened
///
public uint LBA;
}
@@ -79,67 +79,67 @@ namespace DiscImageChef.Decoders.SCSI
public enum SenseKeys : byte
{
///
- /// No information to be reported, but bits should be checked
+ /// No information to be reported, but bits should be checked
///
NoSense = 0,
///
- /// Target performed some recovery to successfully complete last command
+ /// Target performed some recovery to successfully complete last command
///
RecoveredError = 1,
///
- /// Target is not ready
+ /// Target is not ready
///
NotReady = 2,
///
- /// Non-recoverable medium error occurred
+ /// Non-recoverable medium error occurred
///
MediumError = 3,
///
- /// Non-recoverable hardware error occurred
+ /// Non-recoverable hardware error occurred
///
HardwareError = 4,
///
- /// Target has received an illegal request
+ /// Target has received an illegal request
///
IllegalRequest = 5,
///
- /// Target requires initiator attention
+ /// Target requires initiator attention
///
UnitAttention = 6,
///
- /// A protected command has been denied
+ /// A protected command has been denied
///
DataProtect = 7,
///
- /// A blank block has been tried to read or a non-rewritable one to write
+ /// A blank block has been tried to read or a non-rewritable one to write
///
BlankCheck = 8,
///
- /// For private/vendor usage
+ /// For private/vendor usage
///
PrivateUse = 9,
///
- /// COPY command aborted
+ /// COPY command aborted
///
CopyAborted = 0xA,
///
- /// Command aborted
+ /// Command aborted
///
AbortedCommand = 0xB,
///
- /// SEARCH command has been satisfied
+ /// SEARCH command has been satisfied
///
Equal = 0xC,
///
- /// End-of-medium reached with data remaining in buffer
+ /// End-of-medium reached with data remaining in buffer
///
VolumeOverflow = 0xD,
///
- /// COMPARE failed
+ /// COMPARE failed
///
Miscompare = 0xE,
///
- /// Complated
+ /// Complated
///
Completed = 0xF
}
@@ -152,52 +152,52 @@ namespace DiscImageChef.Decoders.SCSI
public struct FixedSense
{
///
- /// If set, is valid
+ /// If set, is valid
///
public bool InformationValid;
///
- /// Contains number of current segment descriptor
+ /// Contains number of current segment descriptor
///
public byte SegmentNumber;
///
- /// If set indicates current command has read a filemark or a setmark
+ /// If set indicates current command has read a filemark or a setmark
///
public bool Filemark;
///
- /// If set indicates device has arrived end-of-medium
+ /// If set indicates device has arrived end-of-medium
///
public bool EOM;
///
- /// Means the requested logical block length did not match the logical block length on the medium
+ /// Means the requested logical block length did not match the logical block length on the medium
///
public bool ILI;
///
- /// Contains the sense key
+ /// Contains the sense key
///
public SenseKeys SenseKey;
///
- /// Additional information
+ /// Additional information
///
public uint Information;
///
- /// Additional sense length
+ /// Additional sense length
///
public byte AdditionalLength;
///
- /// Command specific information field
+ /// Command specific information field
///
public uint CommandSpecific;
///
- /// Additional sense code
+ /// Additional sense code
///
public byte ASC;
///
- /// Additional sense code qualifier
+ /// Additional sense code qualifier
///
public byte ASCQ;
public byte FieldReplaceable;
///
- /// If set, is valid
+ /// If set, is valid
///
public bool SKSV;
public uint SenseKeySpecific;
@@ -210,20 +210,20 @@ namespace DiscImageChef.Decoders.SCSI
public struct DescriptorSense
{
///
- /// Contains the sense key
+ /// Contains the sense key
///
public SenseKeys SenseKey;
///
- /// Additional sense code
+ /// Additional sense code
///
public byte ASC;
///
- /// Additional sense code qualifier
+ /// Additional sense code qualifier
///
public byte ASCQ;
public bool Overflow;
///
- /// The descriptors, indexed by type
+ /// The descriptors, indexed by type
///
public Dictionary Descriptors;
}
@@ -243,7 +243,7 @@ namespace DiscImageChef.Decoders.SCSI
public static class Sense
{
///
- /// Gets the SCSI SENSE type to help chosing the correct decoding function
+ /// Gets the SCSI SENSE type to help chosing the correct decoding function
///
/// The type.
/// Sense bytes.
@@ -425,8 +425,8 @@ namespace DiscImageChef.Decoders.SCSI
if((decoded.SenseKeySpecific & 0x200000) == 0x200000)
sb.AppendFormat("Invalid value in bit {0} in field {1} of CDB",
- (decoded.SenseKeySpecific & 0x70000) >> 16,
- decoded.SenseKeySpecific & 0xFFFF).AppendLine();
+ (decoded.SenseKeySpecific & 0x70000) >> 16, decoded.SenseKeySpecific & 0xFFFF)
+ .AppendLine();
else
sb.AppendFormat("Invalid value in field {0} of CDB", decoded.SenseKeySpecific & 0xFFFF)
.AppendLine();
@@ -471,7 +471,7 @@ namespace DiscImageChef.Decoders.SCSI
}
///
- /// Decodes the information sense data descriptor
+ /// Decodes the information sense data descriptor
///
/// The information value
/// Descriptor.
@@ -494,7 +494,7 @@ namespace DiscImageChef.Decoders.SCSI
}
///
- /// Decodes the command-specific information sense data descriptor
+ /// Decodes the command-specific information sense data descriptor
///
/// The command-specific information sense data descriptor.
/// Descriptor.
@@ -517,7 +517,7 @@ namespace DiscImageChef.Decoders.SCSI
}
///
- /// Decodes the sense key specific sense data descriptor
+ /// Decodes the sense key specific sense data descriptor
///
/// The sense key specific sense data descriptor.
/// Descriptor.
@@ -531,7 +531,7 @@ namespace DiscImageChef.Decoders.SCSI
}
///
- /// Decodes the field replaceable unit sense data descriptor
+ /// Decodes the field replaceable unit sense data descriptor
///
/// The field replaceable unit sense data descriptor.
/// Descriptor.
@@ -543,7 +543,7 @@ namespace DiscImageChef.Decoders.SCSI
}
///
- /// Decodes the another progress indication sense data descriptor
+ /// Decodes the another progress indication sense data descriptor
///
/// The another progress indication sense data descriptor.
/// Descriptor.
diff --git a/SCSI/Types.cs b/SCSI/Types.cs
index 32fcddd..b6c7623 100644
--- a/SCSI/Types.cs
+++ b/SCSI/Types.cs
@@ -41,548 +41,553 @@ namespace DiscImageChef.Decoders.SCSI
#region Medium Types defined in ECMA-111 for Direct-Access devices
///
- /// ECMA-54: 200 mm Flexible Disk Cartridge using Two-Frequency Recording at 13262 ftprad on One Side
+ /// ECMA-54: 200 mm Flexible Disk Cartridge using Two-Frequency Recording at 13262 ftprad on One Side
///
ECMA54 = 0x09,
///
- /// ECMA-59 & ANSI X3.121-1984: 200 mm Flexible Disk Cartridge using Two-Frequency Recording at 13262 ftprad on Both Sides
+ /// ECMA-59 & ANSI X3.121-1984: 200 mm Flexible Disk Cartridge using Two-Frequency Recording at 13262 ftprad on
+ /// Both Sides
///
ECMA59 = 0x0A,
///
- /// ECMA-69: 200 mm Flexible Disk Cartridge using MFM Recording at 13262 ftprad on Both Sides
+ /// ECMA-69: 200 mm Flexible Disk Cartridge using MFM Recording at 13262 ftprad on Both Sides
///
ECMA69 = 0x0B,
///
- /// ECMA-66: 130 mm Flexible Disk Cartridge using Two-Frequency Recording at 7958 ftprad on One Side
+ /// ECMA-66: 130 mm Flexible Disk Cartridge using Two-Frequency Recording at 7958 ftprad on One Side
///
ECMA66 = 0x0E,
///
- /// 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
+ /// 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
///
ECMA70 = 0x12,
///
- /// 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
+ /// 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
///
ECMA78 = 0x16,
///
- /// ECMA-99 & ISO 8630-1985: 130 mm Flexible Disk Cartridge using MFM Recording at 13262 ftprad on Both Sides; 3,8 Tracks per mm
+ /// ECMA-99 & ISO 8630-1985: 130 mm Flexible Disk Cartridge using MFM Recording at 13262 ftprad on Both Sides; 3,8
+ /// Tracks per mm
///
ECMA99 = 0x1A,
///
- /// ECMA-100 & ANSI X3.137: 90 mm Flexible Disk Cartridge using MFM Recording at 7859 ftprad on Both Sides; 5,3 Tracks per mm
+ /// ECMA-100 & ANSI X3.137: 90 mm Flexible Disk Cartridge using MFM Recording at 7859 ftprad on Both Sides; 5,3
+ /// Tracks per mm
///
ECMA100 = 0x1E,
#endregion Medium Types defined in ECMA-111 for Direct-Access devices
#region Medium Types defined in SCSI-2 for Direct-Access devices
///
- /// Unspecified single sided flexible disk
+ /// Unspecified single sided flexible disk
///
Unspecified_SS = 0x01,
///
- /// Unspecified double sided flexible disk
+ /// Unspecified double sided flexible disk
///
Unspecified_DS = 0x02,
///
- /// ANSI X3.73-1980: 200 mm, 6631 ftprad, 1,9 Tracks per mm, 1 side
+ /// ANSI X3.73-1980: 200 mm, 6631 ftprad, 1,9 Tracks per mm, 1 side
///
X3_73 = 0x05,
///
- /// ANSI X3.73-1980: 200 mm, 6631 ftprad, 1,9 Tracks per mm, 2 sides
+ /// ANSI X3.73-1980: 200 mm, 6631 ftprad, 1,9 Tracks per mm, 2 sides
///
X3_73_DS = 0x06,
///
- /// ANSI X3.80-1980: 130 mm, 3979 ftprad, 1,9 Tracks per mm, 1 side
+ /// ANSI X3.80-1980: 130 mm, 3979 ftprad, 1,9 Tracks per mm, 1 side
///
X3_82 = 0x0D,
///
- /// 6,3 mm tape with 12 tracks at 394 ftpmm
+ /// 6,3 mm tape with 12 tracks at 394 ftpmm
///
Tape12 = 0x40,
///
- /// 6,3 mm tape with 24 tracks at 394 ftpmm
+ /// 6,3 mm tape with 24 tracks at 394 ftpmm
///
Tape24 = 0x44,
#endregion Medium Types defined in SCSI-2 for Direct-Access devices
#region Medium Types defined in SCSI-3 SBC-1 for Optical devices
///
- /// Read-only medium
+ /// Read-only medium
///
ReadOnly = 0x01,
///
- /// Write-once Read-many medium
+ /// Write-once Read-many medium
///
WORM = 0x02,
///
- /// Erasable medium
+ /// Erasable medium
///
Erasable = 0x03,
///
- /// Combination of read-only and write-once medium
+ /// Combination of read-only and write-once medium
///
RO_WORM = 0x04,
///
- /// Combination of read-only and erasable medium
+ /// Combination of read-only and erasable medium
///
RO_RW = 0x05,
///
- /// Combination of write-once and erasable medium
+ /// Combination of write-once and erasable medium
///
WORM_RW = 0x06,
#endregion Medium Types defined in SCSI-3 SBC-1 for Optical devices
#region Medium Types defined in SCSI-2 for MultiMedia devices
///
- /// 120 mm CD-ROM
+ /// 120 mm CD-ROM
///
CDROM = 0x01,
///
- /// 120 mm Compact Disc Digital Audio
+ /// 120 mm Compact Disc Digital Audio
///
CDDA = 0x02,
///
- /// 120 mm Compact Disc with data and audio
+ /// 120 mm Compact Disc with data and audio
///
MixedCD = 0x03,
///
- /// 80 mm CD-ROM
+ /// 80 mm CD-ROM
///
CDROM_80 = 0x05,
///
- /// 80 mm Compact Disc Digital Audio
+ /// 80 mm Compact Disc Digital Audio
///
CDDA_80 = 0x06,
///
- /// 80 mm Compact Disc with data and audio
+ /// 80 mm Compact Disc with data and audio
///
MixedCD_80 = 0x07,
#endregion Medium Types defined in SCSI-2 for MultiMedia devices
#region Medium Types defined in SFF-8020i
///
- /// Unknown medium type
+ /// Unknown medium type
///
Unknown_CD = 0x00,
///
- /// 120 mm Hybrid disc (Photo CD)
+ /// 120 mm Hybrid disc (Photo CD)
///
HybridCD = 0x04,
///
- /// Unknown size CD-R
+ /// Unknown size CD-R
///
Unknown_CDR = 0x10,
///
- /// 120 mm CD-R with data only
+ /// 120 mm CD-R with data only
///
CDR = 0x11,
///
- /// 120 mm CD-R with audio only
+ /// 120 mm CD-R with audio only
///
CDR_DA = 0x12,
///
- /// 120 mm CD-R with data and audio
+ /// 120 mm CD-R with data and audio
///
CDR_Mixed = 0x13,
///
- /// 120 mm Hybrid CD-R (Photo CD)
+ /// 120 mm Hybrid CD-R (Photo CD)
///
HybridCDR = 0x14,
///
- /// 80 mm CD-R with data only
+ /// 80 mm CD-R with data only
///
CDR_80 = 0x15,
///
- /// 80 mm CD-R with audio only
+ /// 80 mm CD-R with audio only
///
CDR_DA_80 = 0x16,
///
- /// 80 mm CD-R with data and audio
+ /// 80 mm CD-R with data and audio
///
CDR_Mixed_80 = 0x17,
///
- /// 80 mm Hybrid CD-R (Photo CD)
+ /// 80 mm Hybrid CD-R (Photo CD)
///
HybridCDR_80 = 0x18,
///
- /// Unknown size CD-RW
+ /// Unknown size CD-RW
///
Unknown_CDRW = 0x20,
///
- /// 120 mm CD-RW with data only
+ /// 120 mm CD-RW with data only
///
CDRW = 0x21,
///
- /// 120 mm CD-RW with audio only
+ /// 120 mm CD-RW with audio only
///
CDRW_DA = 0x22,
///
- /// 120 mm CD-RW with data and audio
+ /// 120 mm CD-RW with data and audio
///
CDRW_Mixed = 0x23,
///
- /// 120 mm Hybrid CD-RW (Photo CD)
+ /// 120 mm Hybrid CD-RW (Photo CD)
///
HybridCDRW = 0x24,
///
- /// 80 mm CD-RW with data only
+ /// 80 mm CD-RW with data only
///
CDRW_80 = 0x25,
///
- /// 80 mm CD-RW with audio only
+ /// 80 mm CD-RW with audio only
///
CDRW_DA_80 = 0x26,
///
- /// 80 mm CD-RW with data and audio
+ /// 80 mm CD-RW with data and audio
///
CDRW_Mixed_80 = 0x27,
///
- /// 80 mm Hybrid CD-RW (Photo CD)
+ /// 80 mm Hybrid CD-RW (Photo CD)
///
HybridCDRW_80 = 0x28,
///
- /// Unknown size HD disc
+ /// Unknown size HD disc
///
Unknown_HD = 0x30,
///
- /// 120 mm HD disc
+ /// 120 mm HD disc
///
HD = 0x31,
///
- /// 80 mm HD disc
+ /// 80 mm HD disc
///
HD_80 = 0x35,
///
- /// No disc inserted, tray closed or caddy inserted
+ /// No disc inserted, tray closed or caddy inserted
///
NoDisc = 0x70,
///
- /// Tray open or no caddy inserted
+ /// Tray open or no caddy inserted
///
TrayOpen = 0x71,
///
- /// Tray closed or caddy inserted but medium error
+ /// Tray closed or caddy inserted but medium error
///
MediumError = 0x72,
#endregion Medium Types defined in SFF-8020i
#region Medium Types defined in USB Mass Storage Class - UFI Command Specification
///
- /// 3.5-inch, 135 tpi, 12362 bits/radian, double-sided MFM (aka 1.25Mb)
+ /// 3.5-inch, 135 tpi, 12362 bits/radian, double-sided MFM (aka 1.25Mb)
///
Type3Floppy = 0x93,
///
- /// 3.5-inch, 135 tpi, 15916 bits/radian, double-sided MFM (aka 1.44Mb)
+ /// 3.5-inch, 135 tpi, 15916 bits/radian, double-sided MFM (aka 1.44Mb)
///
HDFloppy = 0x94,
#endregion Medium Types defined in USB Mass Storage Class - UFI Command Specification
#region Medium Types defined in INF-8070
///
- /// Unknown type block device
+ /// Unknown type block device
///
UnknownBlockDevice = 0x40,
///
- /// Read-only block device
+ /// Read-only block device
///
ReadOnlyBlockDevice = 0x41,
///
- /// Read/Write block device
+ /// Read/Write block device
///
ReadWriteBlockDevice = 0x42,
#endregion Medium Types defined in INF-8070
#region Medium Types found in vendor documents
///
- /// LTO WORM as reported by HP drives
+ /// LTO WORM as reported by HP drives
///
LTOWORM = 0x01,
///
- /// LTO cleaning cartridge as reported by Certance/Seagate drives
+ /// LTO cleaning cartridge as reported by Certance/Seagate drives
///
LTOCleaning = 0x01,
///
- /// Direct-overwrite magneto-optical
+ /// Direct-overwrite magneto-optical
///
DOW = 0x07,
///
- /// LTO Ultrium
+ /// LTO Ultrium
///
LTO = 0x18,
///
- /// LTO Ultrium-2
+ /// LTO Ultrium-2
///
LTO2 = 0x28,
///
- /// DC-2900SL
+ /// DC-2900SL
///
DC2900SL = 0x31,
///
- /// MLR-1
+ /// MLR-1
///
MLR1 = 0x33,
///
- /// DDS-3
+ /// DDS-3
///
DDS3 = 0x33,
///
- /// DC-9200
+ /// DC-9200
///
DC9200 = 0x34,
///
- /// DDS-4
+ /// DDS-4
///
DDS4 = 0x34,
///
- /// DAT-72
+ /// DAT-72
///
DAT72 = 0x35,
///
- /// LTO Ultrium-3
+ /// LTO Ultrium-3
///
LTO3 = 0x38,
///
- /// LTO Ultrium-3 WORM
+ /// LTO Ultrium-3 WORM
///
LTO3WORM = 0x3C,
///
- /// DDS cleaning cartridge
+ /// DDS cleaning cartridge
///
DDSCleaning = 0x3F,
///
- /// DC-9250
+ /// DC-9250
///
DC9250 = 0x40,
///
- /// SLR-32
+ /// SLR-32
///
SLR32 = 0x43,
///
- /// MLR-1SL
+ /// MLR-1SL
///
MLR1SL = 0x44,
///
- /// SLRtape-50
+ /// SLRtape-50
///
SLRtape50 = 0x47,
///
- /// LTO Ultrium-4
+ /// LTO Ultrium-4
///
LTO4 = 0x48,
///
- /// LTO Ultrium-4 WORM
+ /// LTO Ultrium-4 WORM
///
LTO4WORM = 0x4C,
///
- /// SLRtape-50SL
+ /// SLRtape-50SL
///
SLRtape50SL = 0x50,
///
- /// SLR-32SL
+ /// SLR-32SL
///
SLR32SL = 0x54,
///
- /// SLR-5
+ /// SLR-5
///
SLR5 = 0x55,
///
- /// SLR-5SL
+ /// SLR-5SL
///
SLR5SL = 0x56,
///
- /// LTO Ultrium-5
+ /// LTO Ultrium-5
///
LTO5 = 0x58,
///
- /// LTO Ultrium-5 WORM
+ /// LTO Ultrium-5 WORM
///
LTO5WORM = 0x5C,
///
- /// SLRtape-7
+ /// SLRtape-7
///
SLRtape7 = 0x63,
///
- /// SLRtape-7SL
+ /// SLRtape-7SL
///
SLRtape7SL = 0x64,
///
- /// SLRtape-24
+ /// SLRtape-24
///
SLRtape24 = 0x65,
///
- /// SLRtape-24SL
+ /// SLRtape-24SL
///
SLRtape24SL = 0x66,
///
- /// LTO Ultrium-6
+ /// LTO Ultrium-6
///
LTO6 = 0x68,
///
- /// LTO Ultrium-6 WORM
+ /// LTO Ultrium-6 WORM
///
LTO6WORM = 0x6C,
///
- /// SLRtape-140
+ /// SLRtape-140
///
SLRtape140 = 0x70,
///
- /// SLRtape-40
+ /// SLRtape-40
///
SLRtape40 = 0x73,
///
- /// SLRtape-60
+ /// SLRtape-60
///
SLRtape60 = 0x74,
///
- /// SLRtape-75
+ /// SLRtape-75
///
SLRtape75 = 0x74,
///
- /// SLRtape-100
+ /// SLRtape-100
///
SLRtape100 = 0x75,
///
- /// SLR-40 or SLR-60 or SLR-100
+ /// SLR-40 or SLR-60 or SLR-100
///
SLR40_60_100 = 0x76,
///
- /// LTO Ultrium-7
+ /// LTO Ultrium-7
///
LTO7 = 0x78,
///
- /// LTO Ultrium-7 WORM
+ /// LTO Ultrium-7 WORM
///
LTO7WORM = 0x7C,
///
- /// HP LTO emulating a CD
+ /// HP LTO emulating a CD
///
LTOCD = 0x80,
///
- /// Exatape 15m
+ /// Exatape 15m
///
Exatape15m = 0x81,
///
- /// IBM MagStar
+ /// IBM MagStar
///
MagStar = 0x81,
///
- /// VXA
+ /// VXA
///
VXA = 0x81,
///
- /// CompactTape I
+ /// CompactTape I
///
CT1 = 0x82,
///
- /// Exatape 28m
+ /// Exatape 28m
///
Exatape28m = 0x82,
///
- /// CompactTape II
+ /// CompactTape II
///
CT2 = 0x82,
///
- /// VXA-2
+ /// VXA-2
///
VXA2 = 0x82,
///
- /// VXA-3
+ /// VXA-3
///
VXA3 = 0x82,
///
- /// Exatape 54m
+ /// Exatape 54m
///
Exatape54m = 0x83,
///
- /// DLTtape III
+ /// DLTtape III
///
DLTtapeIII = 0x83,
///
- /// Exatape 80m
+ /// Exatape 80m
///
Exatape80m = 0x84,
///
- /// DLTtape IIIxt
+ /// DLTtape IIIxt
///
DLTtapeIIIxt = 0x84,
///
- /// Exatape 106m
+ /// Exatape 106m
///
Exatape106m = 0x85,
///
- /// DLTtape IV
+ /// DLTtape IV
///
DLTtapeIV = 0x85,
///
- /// Travan 5
+ /// Travan 5
///
Travan5 = 0x85,
///
- /// Exatape 106m XL
+ /// Exatape 106m XL
///
Exatape106mXL = 0x86,
///
- /// SuperDLT I
+ /// SuperDLT I
///
SDLT1 = 0x86,
///
- /// SuperDLT II
+ /// SuperDLT II
///
SDLT2 = 0x87,
///
- /// VStape I
+ /// VStape I
///
VStapeI = 0x90,
///
- /// DLTtape S4
+ /// DLTtape S4
///
DLTtapeS4 = 0x91,
///
- /// Travan 7
+ /// Travan 7
///
Travan7 = 0x95,
///
- /// Exatape 22m
+ /// Exatape 22m
///
Exatape22m = 0xC1,
///
- /// Exatape 40m
+ /// Exatape 40m
///
Exatape40m = 0xC2,
///
- /// Exatape 76m
+ /// Exatape 76m
///
Exatape76m = 0xC3,
///
- /// Exatape 112m
+ /// Exatape 112m
///
Exatape112m = 0xC4,
///
- /// Exatape 22m AME
+ /// Exatape 22m AME
///
Exatape22mAME = 0xD1,
///
- /// Exatape 170m
+ /// Exatape 170m
///
Exatape170m = 0xD2,
///
- /// Exatape 125m
+ /// Exatape 125m
///
Exatape125m = 0xD3,
///
- /// Exatape 45m
+ /// Exatape 45m
///
Exatape45m = 0xD4,
///
- /// Exatape 225m
+ /// Exatape 225m
///
Exatape225m = 0xD5,
///
- /// Exatape 150m
+ /// Exatape 150m
///
Exatape150m = 0xD6,
///
- /// Exatape 75m
+ /// Exatape 75m
///
Exatape75m = 0xD7,
#endregion Medium Types found in vendor documents
@@ -595,442 +600,443 @@ namespace DiscImageChef.Decoders.SCSI
#region Density Types defined in ECMA-111 for Direct-Access devices
///
- /// 7958 flux transitions per radian
+ /// 7958 flux transitions per radian
///
Flux7958 = 0x01,
///
- /// 13262 flux transitions per radian
+ /// 13262 flux transitions per radian
///
Flux13262 = 0x02,
///
- /// 15916 flux transitions per radian
+ /// 15916 flux transitions per radian
///
Flux15916 = 0x03,
#endregion Density Types defined in ECMA-111 for Direct-Access devices
#region Density Types defined in ECMA-111 for Sequential-Access devices
///
- /// ECMA-62 & ANSI X3.22-1983: 12,7 mm 9-Track Magnetic Tape, 32 ftpmm, NRZI, 32 cpmm
+ /// ECMA-62 & ANSI X3.22-1983: 12,7 mm 9-Track Magnetic Tape, 32 ftpmm, NRZI, 32 cpmm
///
ECMA62 = 0x01,
///
- /// ECMA-62 & ANSI X3.39-1986: 12,7 mm 9-Track Magnetic Tape, 126 ftpmm, Phase Encoding, 63 cpmm
+ /// ECMA-62 & ANSI X3.39-1986: 12,7 mm 9-Track Magnetic Tape, 126 ftpmm, Phase Encoding, 63 cpmm
///
ECMA62_Phase = 0x02,
///
- /// ECMA-62 & ANSI X3.54-1986: 12,7 mm 9-Track Magnetic Tape, 356 ftpmm, NRZI, 245 cpmm GCR
+ /// ECMA-62 & ANSI X3.54-1986: 12,7 mm 9-Track Magnetic Tape, 356 ftpmm, NRZI, 245 cpmm GCR
///
ECMA62_GCR = 0x03,
///
- /// ECMA-79 & ANSI X3.116-1986: 6,30 mm Magnetic Tape Cartridge using MFM Recording at 252 ftpmm
+ /// ECMA-79 & ANSI X3.116-1986: 6,30 mm Magnetic Tape Cartridge using MFM Recording at 252 ftpmm
///
ECMA79 = 0x07,
///
- /// Draft ECMA & ANSI X3B5/87-099: 12,7 mm Magnetic Tape Cartridge using IFM Recording on 18 Tracks at 1944 ftpmm, GCR (IBM 3480, 3490, 3490E)
+ /// Draft ECMA & ANSI X3B5/87-099: 12,7 mm Magnetic Tape Cartridge using IFM Recording on 18 Tracks at 1944 ftpmm,
+ /// GCR (IBM 3480, 3490, 3490E)
///
IBM3480 = 0x09,
///
- /// ECMA-46 & ANSI X3.56-1986: 6,30 mm Magnetic Tape Cartridge, Phase Encoding, 63 bpmm
+ /// ECMA-46 & ANSI X3.56-1986: 6,30 mm Magnetic Tape Cartridge, Phase Encoding, 63 bpmm
///
ECMA46 = 0x0B,
///
- /// ECMA-98: 6,30 mm Magnetic Tape Cartridge, NRZI Recording, 394 ftpmm
+ /// ECMA-98: 6,30 mm Magnetic Tape Cartridge, NRZI Recording, 394 ftpmm
///
ECMA98 = 0x0E,
#endregion Density Types defined in ECMA-111 for Sequential-Access devices
#region Density Types defined in SCSI-2 for Sequential-Access devices
///
- /// ANXI X3.136-1986: 6,35 mm 4 or 9-Track Magnetic Tape Cartridge, 315 bpmm, GCR (QIC-24)
+ /// ANXI X3.136-1986: 6,35 mm 4 or 9-Track Magnetic Tape Cartridge, 315 bpmm, GCR (QIC-24)
///
X3_136 = 0x05,
///
- /// ANXI X3.157-1987: 12,7 mm 9-Track Magnetic Tape, 126 bpmm, Phase Encoding
+ /// ANXI X3.157-1987: 12,7 mm 9-Track Magnetic Tape, 126 bpmm, Phase Encoding
///
X3_157 = 0x06,
///
- /// ANXI X3.158-1987: 3,81 mm 4-Track Magnetic Tape Cassette, 315 bpmm, GCR
+ /// ANXI X3.158-1987: 3,81 mm 4-Track Magnetic Tape Cassette, 315 bpmm, GCR
///
X3_158 = 0x08,
///
- /// ANXI X3B5/86-199: 12,7 mm 22-Track Magnetic Tape Cartridge, 262 bpmm, MFM
+ /// ANXI X3B5/86-199: 12,7 mm 22-Track Magnetic Tape Cartridge, 262 bpmm, MFM
///
X3B5_86 = 0x0A,
///
- /// HI-TC1: 12,7 mm 24-Track Magnetic Tape Cartridge, 500 bpmm, GCR
+ /// HI-TC1: 12,7 mm 24-Track Magnetic Tape Cartridge, 500 bpmm, GCR
///
HiTC1 = 0x0C,
///
- /// HI-TC2: 12,7 mm 24-Track Magnetic Tape Cartridge, 999 bpmm, GCR
+ /// HI-TC2: 12,7 mm 24-Track Magnetic Tape Cartridge, 999 bpmm, GCR
///
HiTC2 = 0x0D,
///
- /// QIC-120: 6,3 mm 15-Track Magnetic Tape Cartridge, 394 bpmm, GCR
+ /// QIC-120: 6,3 mm 15-Track Magnetic Tape Cartridge, 394 bpmm, GCR
///
QIC120 = 0x0F,
///
- /// QIC-150: 6,3 mm 18-Track Magnetic Tape Cartridge, 394 bpmm, GCR
+ /// QIC-150: 6,3 mm 18-Track Magnetic Tape Cartridge, 394 bpmm, GCR
///
QIC150 = 0x10,
///
- /// QIC-320: 6,3 mm 26-Track Magnetic Tape Cartridge, 630 bpmm, GCR
+ /// QIC-320: 6,3 mm 26-Track Magnetic Tape Cartridge, 630 bpmm, GCR
///
QIC320 = 0x11,
///
- /// QIC-1350: 6,3 mm 30-Track Magnetic Tape Cartridge, 2034 bpmm, RLL
+ /// QIC-1350: 6,3 mm 30-Track Magnetic Tape Cartridge, 2034 bpmm, RLL
///
QIC1350 = 0x12,
///
- /// ANXI X3B5/88-185A: 3,81 mm Magnetic Tape Cassette, 2400 bpmm, DDS
+ /// ANXI X3B5/88-185A: 3,81 mm Magnetic Tape Cassette, 2400 bpmm, DDS
///
X3B5_88 = 0x13,
///
- /// ANXI X3.202-1991: 8 mm Magnetic Tape Cassette, 1703 bpmm, RLL
+ /// ANXI X3.202-1991: 8 mm Magnetic Tape Cassette, 1703 bpmm, RLL
///
X3_202 = 0x14,
///
- /// ECMA TC17: 8 mm Magnetic Tape Cassette, 1789 bpmm, RLL
+ /// ECMA TC17: 8 mm Magnetic Tape Cassette, 1789 bpmm, RLL
///
ECMA_TC17 = 0x15,
///
- /// ANXI X3.193-1990: 12,7 mm 48-Track Magnetic Tape Cartridge, 394 bpmm, MFM
+ /// ANXI X3.193-1990: 12,7 mm 48-Track Magnetic Tape Cartridge, 394 bpmm, MFM
///
X3_193 = 0x16,
///
- /// ANXI X3B5/97-174: 12,7 mm 48-Track Magnetic Tape Cartridge, 1673 bpmm, MFM
+ /// ANXI X3B5/97-174: 12,7 mm 48-Track Magnetic Tape Cartridge, 1673 bpmm, MFM
///
X3B5_91 = 0x17,
#endregion Density Types defined in SCSI-2 for Sequential-Access devices
#region Density Types defined in SCSI-2 for MultiMedia devices
///
- /// User data only
+ /// User data only
///
User = 0x01,
///
- /// User data plus auxiliary data field
+ /// User data plus auxiliary data field
///
UserAuxiliary = 0x02,
///
- /// 4-byt tag field, user data plus auxiliary data
+ /// 4-byt tag field, user data plus auxiliary data
///
UserAuxiliaryTag = 0x03,
///
- /// Audio information only
+ /// Audio information only
///
Audio = 0x04,
#endregion Density Types defined in SCSI-2 for MultiMedia devices
#region Density Types defined in SCSI-2 for Optical devices
///
- /// ISO/IEC 10090: 86 mm Read/Write single-sided optical disc with 12500 tracks
+ /// ISO/IEC 10090: 86 mm Read/Write single-sided optical disc with 12500 tracks
///
ISO10090 = 0x01,
///
- /// 89 mm Read/Write double-sided optical disc with 12500 tracks
+ /// 89 mm Read/Write double-sided optical disc with 12500 tracks
///
D581 = 0x02,
///
- /// ANSI X3.212: 130 mm Read/Write double-sided optical disc with 18750 tracks
+ /// ANSI X3.212: 130 mm Read/Write double-sided optical disc with 18750 tracks
///
X3_212 = 0x03,
///
- /// ANSI X3.191: 130 mm Write-Once double-sided optical disc with 30000 tracks
+ /// ANSI X3.191: 130 mm Write-Once double-sided optical disc with 30000 tracks
///
X3_191 = 0x04,
///
- /// ANSI X3.214: 130 mm Write-Once double-sided optical disc with 20000 tracks
+ /// ANSI X3.214: 130 mm Write-Once double-sided optical disc with 20000 tracks
///
X3_214 = 0x05,
///
- /// ANSI X3.211: 130 mm Write-Once double-sided optical disc with 18750 tracks
+ /// ANSI X3.211: 130 mm Write-Once double-sided optical disc with 18750 tracks
///
X3_211 = 0x06,
///
- /// 200 mm optical disc
+ /// 200 mm optical disc
///
D407 = 0x07,
///
- /// ISO/IEC 13614: 300 mm double-sided optical disc
+ /// ISO/IEC 13614: 300 mm double-sided optical disc
///
ISO13614 = 0x08,
///
- /// ANSI X3.200: 356 mm double-sided optical disc with 56350 tracks
+ /// ANSI X3.200: 356 mm double-sided optical disc with 56350 tracks
///
X3_200 = 0x09,
#endregion Density Types defined in SCSI-2 for Optical devices
#region Density Types found in vendor documents
///
- /// QIC-11
+ /// QIC-11
///
QIC11 = 0x04,
///
- /// CompactTape I
+ /// CompactTape I
///
CT1 = 0x0A,
///
- /// Exabyte 8200 format
+ /// Exabyte 8200 format
///
Ex8200 = 0x14,
///
- /// Exabyte 8500 format
+ /// Exabyte 8500 format
///
Ex8500 = 0x15,
///
- /// CompactTape II
+ /// CompactTape II
///
CT2 = 0x16,
///
- /// DLTtape III 42500 bpi
+ /// DLTtape III 42500 bpi
///
DLT3_42k = 0x17,
///
- /// DLTtape III 56 track
+ /// DLTtape III 56 track
///
DLT3_56t = 0x18,
///
- /// DLTtape III 62500 bpi
+ /// DLTtape III 62500 bpi
///
DLT3_62k = 0x19,
///
- /// DLTtape IV
+ /// DLTtape IV
///
DLT4 = 0x1A,
///
- /// DLTtape IV 85937 bpi
+ /// DLTtape IV 85937 bpi
///
DLT4_85k = 0x1B,
///
- /// DDS-2
+ /// DDS-2
///
DDS2 = 0x24,
///
- /// DDS-3
+ /// DDS-3
///
DDS3 = 0x25,
///
- /// DDS-4
+ /// DDS-4
///
DDS4 = 0x26,
///
- /// Exabyte Mammoth
+ /// Exabyte Mammoth
///
Mammoth = 0x27,
///
- /// IBM 3490 & 3490E
+ /// IBM 3490 & 3490E
///
IBM3490E = 0x28,
///
- /// Exabyte Mammoth-2
+ /// Exabyte Mammoth-2
///
Mammoth2 = 0x28,
///
- /// IBM 3590
+ /// IBM 3590
///
IBM3590 = 0x29,
///
- /// IBM 3590E
+ /// IBM 3590E
///
IBM3590E = 0x2A,
///
- /// AIT-1
+ /// AIT-1
///
AIT1 = 0x30,
///
- /// AIT-2
+ /// AIT-2
///
AIT2 = 0x31,
///
- /// AIT-3
+ /// AIT-3
///
AIT3 = 0x32,
///
- /// DLTtape IV 123090 bpi
+ /// DLTtape IV 123090 bpi
///
DLT4_123k = 0x40,
///
- /// Ultrium-1
+ /// Ultrium-1
///
LTO1 = 0x40,
///
- /// Super AIT-1
+ /// Super AIT-1
///
SAIT1 = 0x40,
///
- /// DLTtape IV 85937 bpi
+ /// DLTtape IV 85937 bpi
///
DLT4_98k = 0x41,
///
- /// Ultrium-2 as reported by the Certance drive
+ /// Ultrium-2 as reported by the Certance drive
///
LTO2Old = 0x41,
///
- /// Ultrium-2
+ /// Ultrium-2
///
LTO2 = 0x42,
///
- /// T9840
+ /// T9840
///
T9840 = 0x42,
///
- /// T9940
+ /// T9940
///
T9940 = 0x43,
///
- /// Ultrium-
+ /// Ultrium-
///
LTO3 = 0x44,
///
- /// T9840C
+ /// T9840C
///
T9840C = 0x45,
///
- /// Travan 5
+ /// Travan 5
///
Travan5 = 0x46,
///
- /// Ultrium-4
+ /// Ultrium-4
///
LTO4 = 0x46,
///
- /// T9840D
+ /// T9840D
///
T9840D = 0x46,
///
- /// DAT-72
+ /// DAT-72
///
DAT72 = 0x47,
///
- /// Super DLTtape I 133000 bpi
+ /// Super DLTtape I 133000 bpi
///
SDLT1_133k = 0x48,
///
- /// Super DLTtape I
+ /// Super DLTtape I
///
SDLT1 = 0x49,
///
- /// T10000A
+ /// T10000A
///
T10000A = 0x4A,
///
- /// Super DLTtape II
+ /// Super DLTtape II
///
SDLT2 = 0x4A,
///
- /// DLTtape S4
+ /// DLTtape S4
///
DLTS4 = 0x4B,
///
- /// T10000B
+ /// T10000B
///
T10000B = 0x4B,
///
- /// T10000C
+ /// T10000C
///
T10000C = 0x4C,
///
- /// T10000D
+ /// T10000D
///
T10000D = 0x4D,
///
- /// VStape I
+ /// VStape I
///
VStape1 = 0x40,
///
- /// Ultrium-5
+ /// Ultrium-5
///
LTO5 = 0x58,
///
- /// Ultrium-6
+ /// Ultrium-6
///
LTO6 = 0x5A,
///
- /// Ultrium-7
+ /// Ultrium-7
///
LTO7 = 0x5C,
///
- /// DLTtape III 62500 bpi secondary code
+ /// DLTtape III 62500 bpi secondary code
///
DLT3_62kAlt = 0x80,
///
- /// VXA-1
+ /// VXA-1
///
VXA1 = 0x80,
///
- /// DLTtape III compressed
+ /// DLTtape III compressed
///
DLT3c = 0x81,
///
- /// VXA-2
+ /// VXA-2
///
VXA2 = 0x81,
///
- /// DLTtape IV secondary code
+ /// DLTtape IV secondary code
///
DLT4Alt = 0x82,
///
- /// VXA-3
+ /// VXA-3
///
VXA3 = 0x82,
///
- /// DLTtape IV compressed
+ /// DLTtape IV compressed
///
DLT4c = 0x83,
///
- /// DLTtape IV 85937 bpi secondary code
+ /// DLTtape IV 85937 bpi secondary code
///
DLT4_85kAlt = 0x84,
///
- /// DLTtape IV 85937 bpi compressed
+ /// DLTtape IV 85937 bpi compressed
///
DLT4c_85k = 0x85,
///
- /// DLTtape IV 123090 bpi secondary code
+ /// DLTtape IV 123090 bpi secondary code
///
DLT4_123kAlt = 0x86,
///
- /// DLTtape IV 123090 bpi compressed
+ /// DLTtape IV 123090 bpi compressed
///
DLT4c_123k = 0x87,
///
- /// DLTtape IV 98250 bpi secondary code
+ /// DLTtape IV 98250 bpi secondary code
///
DLT4_98kAlt = 0x88,
///
- /// DLTtape IV 98250 bpi compressed
+ /// DLTtape IV 98250 bpi compressed
///
DLT4c_98k = 0x89,
///
- /// Exabyte compressed 8200 format
+ /// Exabyte compressed 8200 format
///
Ex8500c = 0x8C,
///
- /// Exabyte compressed 8500 format
+ /// Exabyte compressed 8500 format
///
Ex8200c = 0x90,
///
- /// Super DLTtape I secondary code
+ /// Super DLTtape I secondary code
///
SDLT1Alt = 0x90,
///
- /// Super DLTtape I compressed
+ /// Super DLTtape I compressed
///
SDLT1c = 0x91,
///
- /// Super DLTtape I 133000 bpi secondary code
+ /// Super DLTtape I 133000 bpi secondary code
///
SDLT1_133kAlt = 0x92,
///
- /// Super DLTtape I 133000 bpi compressed
+ /// Super DLTtape I 133000 bpi compressed
///
SDLT1c_133k = 0x93,
///
- /// VStape I secondary code
+ /// VStape I secondary code
///
VStape1Alt = 0x98,
///
- /// VStape I compressed
+ /// VStape I compressed
///
VStape1c = 0x99,
#endregion Density Types found in vendor documents
diff --git a/Sega/CD.cs b/Sega/CD.cs
index fc6f753..57b3af0 100644
--- a/Sega/CD.cs
+++ b/Sega/CD.cs
@@ -189,8 +189,10 @@ namespace DiscImageChef.Decoders.Sega
provider);
}
#pragma warning disable RECS0022 // A catch clause that catches System.Exception and has an empty body
- catch { // ignored
- }
+ catch
+ {
+ // ignored
+ }
#pragma warning restore RECS0022 // A catch clause that catches System.Exception and has an empty body
}
diff --git a/Xbox/DMI.cs b/Xbox/DMI.cs
index 59121ed..07bd14c 100644
--- a/Xbox/DMI.cs
+++ b/Xbox/DMI.cs
@@ -74,36 +74,36 @@ namespace DiscImageChef.Decoders.Xbox
public struct XboxDMI
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to 7
- /// 0x01 in XGD
+ /// Bytes 4 to 7
+ /// 0x01 in XGD
///
public uint Version;
///
- /// Bytes 12 to 16
- /// Catalogue number in XX-XXXXX-X
+ /// Bytes 12 to 16
+ /// Catalogue number in XX-XXXXX-X
///
public string CatalogNumber;
///
- /// Bytes 20 to 27
- /// DMI timestamp
+ /// Bytes 20 to 27
+ /// DMI timestamp
///
public long Timestamp;
}
@@ -111,42 +111,42 @@ namespace DiscImageChef.Decoders.Xbox
public struct Xbox360DMI
{
///
- /// Bytes 0 to 1
- /// Data length
+ /// Bytes 0 to 1
+ /// Data length
///
public ushort DataLength;
///
- /// Byte 2
- /// Reserved
+ /// Byte 2
+ /// Reserved
///
public byte Reserved1;
///
- /// Byte 3
- /// Reserved
+ /// Byte 3
+ /// Reserved
///
public byte Reserved2;
///
- /// Bytes 4 to 7
- /// 0x02 in XGD2 and XGD3
+ /// Bytes 4 to 7
+ /// 0x02 in XGD2 and XGD3
///
public uint Version;
///
- /// Bytes 20 to 27
- /// DMI timestamp
+ /// Bytes 20 to 27
+ /// DMI timestamp
///
public long Timestamp;
///
- /// Bytes 36 to 51
- /// Media ID in hex XXXXXXXXXXXX-XXXXXXXX
+ /// Bytes 36 to 51
+ /// Media ID in hex XXXXXXXXXXXX-XXXXXXXX
///
public byte[] MediaID;
///
- /// Bytes 68 to 83
- /// Catalogue number in XX-XXXX-XX-XXY-XXX, Y not always exists
+ /// Bytes 68 to 83
+ /// Catalogue number in XX-XXXX-XX-XXY-XXX, Y not always exists
///
public string CatalogNumber;
}
@@ -235,7 +235,8 @@ namespace DiscImageChef.Decoders.Xbox
sb.Append("-");
- switch(decoded.CatalogNumber.Length) {
+ switch(decoded.CatalogNumber.Length)
+ {
case 13:
for(int i = 8; i < 10; i++) sb.AppendFormat("{0}", decoded.CatalogNumber[i]);
diff --git a/Xbox/SS.cs b/Xbox/SS.cs
index c66a38a..dd77bfb 100644
--- a/Xbox/SS.cs
+++ b/Xbox/SS.cs
@@ -46,148 +46,148 @@ namespace DiscImageChef.Decoders.Xbox
public struct SecuritySector
{
///
- /// Byte 0, bits 7 to 4
- /// Disk category field
+ /// Byte 0, bits 7 to 4
+ /// Disk category field
///
public DiskCategory DiskCategory;
///
- /// Byte 0, bits 3 to 0
- /// Media version
+ /// Byte 0, bits 3 to 0
+ /// Media version
///
public byte PartVersion;
///
- /// Byte 1, bits 7 to 4
- /// 120mm if 0, 80mm if 1. If UMD (60mm) 0 also. Reserved rest of values
+ /// Byte 1, bits 7 to 4
+ /// 120mm if 0, 80mm if 1. If UMD (60mm) 0 also. Reserved rest of values
///
public DVDSize DiscSize;
///
- /// Byte 1, bits 3 to 0
- /// Maximum data rate
+ /// Byte 1, bits 3 to 0
+ /// Maximum data rate
///
public MaximumRateField MaximumRate;
///
- /// Byte 2, bit 7
- /// Reserved
+ /// Byte 2, bit 7
+ /// Reserved
///
public bool Reserved3;
///
- /// Byte 2, bits 6 to 5
- /// Number of layers
+ /// Byte 2, bits 6 to 5
+ /// Number of layers
///
public byte Layers;
///
- /// Byte 2, bit 4
- /// Track path
+ /// Byte 2, bit 4
+ /// Track path
///
public bool TrackPath;
///
- /// Byte 2, bits 3 to 0
- /// Layer type
+ /// Byte 2, bits 3 to 0
+ /// Layer type
///
public LayerTypeFieldMask LayerType;
///
- /// Byte 3, bits 7 to 4
- /// Linear density field
+ /// Byte 3, bits 7 to 4
+ /// Linear density field
///
public LinearDensityField LinearDensity;
///
- /// Byte 3, bits 3 to 0
- /// Track density field
+ /// Byte 3, bits 3 to 0
+ /// Track density field
///
public TrackDensityField TrackDensity;
///
- /// Bytes 4 to 7
- /// PSN where Data Area starts
+ /// Bytes 4 to 7
+ /// PSN where Data Area starts
///
public uint DataAreaStartPSN;
///
- /// Bytes 8 to 11
- /// PSN where Data Area ends
+ /// Bytes 8 to 11
+ /// PSN where Data Area ends
///
public uint DataAreaEndPSN;
///
- /// Bytes 12 to 15
- /// PSN where Data Area ends in Layer 0
+ /// Bytes 12 to 15
+ /// PSN where Data Area ends in Layer 0
///
public uint Layer0EndPSN;
///
- /// Byte 27
- /// Always 0x06 on XGD3
+ /// Byte 27
+ /// Always 0x06 on XGD3
///
public byte Unknown1;
///
- /// Bytes 256 to 283
- /// Unknown, XGD2 and XGD3
+ /// Bytes 256 to 283
+ /// Unknown, XGD2 and XGD3
///
public byte[] Unknown2;
///
- /// Bytes 284 to 719
- /// Unknown, XGD3
+ /// Bytes 284 to 719
+ /// Unknown, XGD3
///
public byte[] Unknown3;
///
- /// Bytes 720 to 723
- /// Unknown
+ /// Bytes 720 to 723
+ /// Unknown
///
public byte[] Unknown4;
///
- /// Bytes 724 to 767
- /// Unknown, XGD3
+ /// Bytes 724 to 767
+ /// Unknown, XGD3
///
public byte[] Unknown5;
///
- /// Byte 768
- /// Version of challenge table
+ /// Byte 768
+ /// Version of challenge table
///
public byte ChallengeTableVersion;
///
- /// Byte 769
- /// Number of challenge entries
+ /// Byte 769
+ /// Number of challenge entries
///
public byte NoChallengeEntries;
///
- /// Bytes 770 to 1022
- /// Unknown
+ /// Bytes 770 to 1022
+ /// Unknown
///
public ChallengeEntry[] ChallengeEntries;
///
- /// Byte 1023
- /// Unknown
+ /// Byte 1023
+ /// Unknown
///
public byte Unknown6;
///
- /// Bytes 1052 to 1099
- /// Unknown, XGD1 only
+ /// Bytes 1052 to 1099
+ /// Unknown, XGD1 only
///
public byte[] Unknown7;
///
- /// Bytes 1120 to 1135
- /// Unknown, XGD2 and XGD3
+ /// Bytes 1120 to 1135
+ /// Unknown, XGD2 and XGD3
///
public byte[] Unknown8;
///
- /// Bytes 1180 to 1195
- /// Unknown
+ /// Bytes 1180 to 1195
+ /// Unknown
///
public byte[] Unknown9;
///
- /// Bytes 1208 to 1511
- /// Unknown
+ /// Bytes 1208 to 1511
+ /// Unknown
///
public byte[] Unknown10;
///
- /// Bytes 1528 to 1632
+ /// Bytes 1528 to 1632
///
public byte[] Unknown11;
///
- /// Bytes 1633 to 1839
- /// Security extents, 23 entries of 9 bytes
+ /// Bytes 1633 to 1839
+ /// Security extents, 23 entries of 9 bytes
///
public SecuritySectorExtent[] Extents;
///
- /// Bytes 1840 to 2047
- /// Copy of the security extents, 23 entries of 9 bytes
+ /// Bytes 1840 to 2047
+ /// Copy of the security extents, 23 entries of 9 bytes
///
public SecuritySectorExtent[] ExtentsCopy;
}
@@ -195,18 +195,18 @@ namespace DiscImageChef.Decoders.Xbox
public struct SecuritySectorExtent
{
///
- /// Bytes 0 to 2
- /// Unknown
+ /// Bytes 0 to 2
+ /// Unknown
///
public uint Unknown;
///
- /// Bytes 3 to 5
- /// Start PSN of this security extent
+ /// Bytes 3 to 5
+ /// Start PSN of this security extent
///
public uint StartPSN;
///
- /// Bytes 6 to 8
- /// End PSN of this security extent
+ /// Bytes 6 to 8
+ /// End PSN of this security extent
///
public uint EndPSN;
}
@@ -265,9 +265,8 @@ namespace DiscImageChef.Decoders.Xbox
Array.Copy(response, 724, ss.Unknown5, 0, 43);
for(int i = 0; i < 23; i++)
- {
ss.ChallengeEntries[i] = new ChallengeEntry
- {
+ {
Level = response[770 + i * 11 + 0],
ChallengeId = response[770 + i * 11 + 1],
ChallengeValue =
@@ -277,7 +276,6 @@ namespace DiscImageChef.Decoders.Xbox
ResponseValue = (uint)((response[770 + i * 11 + 7] << 24) + (response[770 + i * 11 + 8] << 16) +
(response[770 + i * 11 + 9] << 8) + response[770 + i * 11 + 10])
};
- }
Array.Copy(response, 1052, ss.Unknown7, 0, 48);
Array.Copy(response, 1120, ss.Unknown8, 0, 16);
@@ -285,9 +283,8 @@ namespace DiscImageChef.Decoders.Xbox
Array.Copy(response, 1208, ss.Unknown10, 0, 303);
Array.Copy(response, 1528, ss.Unknown11, 0, 104);
for(int i = 0; i < 23; i++)
- {
ss.Extents[i] = new SecuritySectorExtent
- {
+ {
Unknown =
(uint)((response[1633 + i * 9 + 0] << 16) + (response[1633 + i * 9 + 1] << 8) +
response[1633 + i * 9 + 2]),
@@ -297,12 +294,10 @@ namespace DiscImageChef.Decoders.Xbox
EndPSN = (uint)((response[1633 + i * 9 + 6] << 16) + (response[1633 + i * 9 + 7] << 8) +
response[1633 + i * 9 + 8])
};
- }
for(int i = 0; i < 23; i++)
- {
ss.ExtentsCopy[i] = new SecuritySectorExtent
- {
+ {
Unknown =
(uint)((response[1840 + i * 9 + 0] << 16) + (response[1840 + i * 9 + 1] << 8) +
response[1840 + i * 9 + 2]),
@@ -312,7 +307,6 @@ namespace DiscImageChef.Decoders.Xbox
EndPSN = (uint)((response[1840 + i * 9 + 6] << 16) + (response[1840 + i * 9 + 7] << 8) +
response[1840 + i * 9 + 8])
};
- }
return ss;
}