diff --git a/ATA/Identify.cs b/ATA/Identify.cs index c3b6ea1f5..594972f67 100644 --- a/ATA/Identify.cs +++ b/ATA/Identify.cs @@ -841,17 +841,14 @@ namespace Aaru.Decoders.ATA if(ATAID.Capabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CapabilitiesBit.LBASupport)) if(((ulong)ATAID.LBASectors * logicalsectorsize) / 1024 / 1024 > 1000000) sb.AppendFormat("Device size in 28-bit LBA mode: {0} bytes, {1} Tb, {2} TiB", - (ulong)ATAID.LBASectors * - logicalsectorsize, + (ulong)ATAID.LBASectors * logicalsectorsize, ((ulong)ATAID.LBASectors * logicalsectorsize) / 1000 / 1000 / 1000 / 1000, - ((ulong)ATAID.LBASectors * 512) / 1024 / 1024 / 1024 / 1024). - AppendLine(); + ((ulong)ATAID.LBASectors * 512) / 1024 / 1024 / 1024 / 1024).AppendLine(); else if(((ulong)ATAID.LBASectors * logicalsectorsize) / 1024 / 1024 > 1000) sb.AppendFormat("Device size in 28-bit LBA mode: {0} bytes, {1} Gb, {2} GiB", - (ulong)ATAID.LBASectors * logicalsectorsize, + (ulong)ATAID.LBASectors * logicalsectorsize, ((ulong)ATAID.LBASectors * logicalsectorsize) / 1000 / 1000 / 1000, - ((ulong)ATAID.LBASectors * 512) / 1024 / 1024 / 1024). - AppendLine(); + ((ulong)ATAID.LBASectors * 512) / 1024 / 1024 / 1024).AppendLine(); else sb.AppendFormat("Device size in 28-bit LBA mode: {0} bytes, {1} Mb, {2} MiB", (ulong)ATAID.LBASectors * logicalsectorsize, @@ -862,15 +859,13 @@ namespace Aaru.Decoders.ATA if(ATAID.CommandSet5.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit5.ExtSectors)) if((ATAID.ExtendedUserSectors * logicalsectorsize) / 1024 / 1024 > 1000000) sb.AppendFormat("Device size in 48-bit LBA mode: {0} bytes, {1} Tb, {2} TiB", - ATAID.ExtendedUserSectors * - logicalsectorsize, + ATAID.ExtendedUserSectors * logicalsectorsize, (ATAID.ExtendedUserSectors * logicalsectorsize) / 1000 / 1000 / 1000 / 1000, (ATAID.ExtendedUserSectors * logicalsectorsize) / 1024 / 1024 / 1024 / 1024).AppendLine(); else if((ATAID.ExtendedUserSectors * logicalsectorsize) / 1024 / 1024 > 1000) sb.AppendFormat("Device size in 48-bit LBA mode: {0} bytes, {1} Gb, {2} GiB", - ATAID.ExtendedUserSectors * - logicalsectorsize, + ATAID.ExtendedUserSectors * logicalsectorsize, (ATAID.ExtendedUserSectors * logicalsectorsize) / 1000 / 1000 / 1000, (ATAID.ExtendedUserSectors * logicalsectorsize) / 1024 / 1024 / 1024). AppendLine(); @@ -883,8 +878,7 @@ namespace Aaru.Decoders.ATA { if((ATAID.LBA48Sectors * logicalsectorsize) / 1024 / 1024 > 1000000) sb.AppendFormat("Device size in 48-bit LBA mode: {0} bytes, {1} Tb, {2} TiB", - ATAID.LBA48Sectors * - logicalsectorsize, + ATAID.LBA48Sectors * logicalsectorsize, (ATAID.LBA48Sectors * logicalsectorsize) / 1000 / 1000 / 1000 / 1000, (ATAID.LBA48Sectors * logicalsectorsize) / 1024 / 1024 / 1024 / 1024). AppendLine(); diff --git a/Blu-ray/BCA.cs b/Blu-ray/BCA.cs index 1dff9ca10..3f9d190b0 100644 --- a/Blu-ray/BCA.cs +++ b/Blu-ray/BCA.cs @@ -83,8 +83,10 @@ namespace Aaru.Decoders.Bluray var decoded = new BurstCuttingArea { - DataLength = BigEndianBitConverter.ToUInt16(BCAResponse, 0), Reserved1 = BCAResponse[2], - Reserved2 = BCAResponse[3], BCA = new byte[64] + DataLength = BigEndianBitConverter.ToUInt16(BCAResponse, 0), + Reserved1 = BCAResponse[2], + Reserved2 = BCAResponse[3], + BCA = new byte[64] }; Array.Copy(BCAResponse, 4, decoded.BCA, 0, 64); diff --git a/Blu-ray/Cartridge.cs b/Blu-ray/Cartridge.cs index a76315726..e2f1fdfe5 100644 --- a/Blu-ray/Cartridge.cs +++ b/Blu-ray/Cartridge.cs @@ -99,19 +99,17 @@ namespace Aaru.Decoders.Bluray var decoded = new CartridgeStatus { - DataLength = BigEndianBitConverter.ToUInt16(CSResponse, 0), Reserved1 = CSResponse[2], + DataLength = BigEndianBitConverter.ToUInt16(CSResponse, 0), + Reserved1 = CSResponse[2], Reserved2 = CSResponse[3], Cartridge = Convert.ToBoolean(CSResponse[4] & 0x80), - OUT = - Convert.ToBoolean(CSResponse[4] & 0x40), - Reserved3 = (byte)((CSResponse[4] & 0x38) >> 3), - CWP = - Convert.ToBoolean(CSResponse[4] & 0x04), - Reserved4 = (byte)(CSResponse[4] & 0x03), - Reserved5 = CSResponse[5], - Reserved6 = - CSResponse[6], - Reserved7 = CSResponse[7] + OUT = Convert.ToBoolean(CSResponse[4] & 0x40), + Reserved3 = (byte)((CSResponse[4] & 0x38) >> 3), + CWP = Convert.ToBoolean(CSResponse[4] & 0x04), + Reserved4 = (byte)(CSResponse[4] & 0x03), + Reserved5 = CSResponse[5], + Reserved6 = CSResponse[6], + Reserved7 = CSResponse[7] }; return decoded; diff --git a/Blu-ray/DDS.cs b/Blu-ray/DDS.cs index f6b45b1db..e66c39be1 100644 --- a/Blu-ray/DDS.cs +++ b/Blu-ray/DDS.cs @@ -123,7 +123,8 @@ namespace Aaru.Decoders.Bluray var decoded = new DiscDefinitionStructure { - DataLength = BigEndianBitConverter.ToUInt16(DDSResponse, 0), Reserved1 = DDSResponse[2], + DataLength = BigEndianBitConverter.ToUInt16(DDSResponse, 0), + Reserved1 = DDSResponse[2], Reserved2 = DDSResponse[3], Signature = BigEndianBitConverter.ToUInt16(DDSResponse, 4) }; diff --git a/Blu-ray/DI.cs b/Blu-ray/DI.cs index 1cb9cd2e6..8c0de25e2 100644 --- a/Blu-ray/DI.cs +++ b/Blu-ray/DI.cs @@ -109,7 +109,8 @@ namespace Aaru.Decoders.Bluray var decoded = new DiscInformation { - DataLength = BigEndianBitConverter.ToUInt16(DIResponse, 0), Reserved1 = DIResponse[2], + DataLength = BigEndianBitConverter.ToUInt16(DIResponse, 0), + Reserved1 = DIResponse[2], Reserved2 = DIResponse[3] }; diff --git a/Blu-ray/Spare.cs b/Blu-ray/Spare.cs index f362a9220..60e4e2d47 100644 --- a/Blu-ray/Spare.cs +++ b/Blu-ray/Spare.cs @@ -87,7 +87,8 @@ namespace Aaru.Decoders.Bluray var decoded = new SpareAreaInformation { - DataLength = BigEndianBitConverter.ToUInt16(SAIResponse, 0), Reserved1 = SAIResponse[2], + DataLength = BigEndianBitConverter.ToUInt16(SAIResponse, 0), + Reserved1 = SAIResponse[2], Reserved2 = SAIResponse[3], Reserved3 = BigEndianBitConverter.ToUInt32(SAIResponse, 4), FreeSpareBlocks = BigEndianBitConverter.ToUInt32(SAIResponse, 8), diff --git a/CD/CDTextOnLeadIn.cs b/CD/CDTextOnLeadIn.cs index 4064770fb..534165619 100644 --- a/CD/CDTextOnLeadIn.cs +++ b/CD/CDTextOnLeadIn.cs @@ -98,7 +98,8 @@ namespace Aaru.Decoders.CD var decoded = new CDText { - DataLength = BigEndianBitConverter.ToUInt16(CDTextResponse, 0), Reserved1 = CDTextResponse[2], + DataLength = BigEndianBitConverter.ToUInt16(CDTextResponse, 0), + Reserved1 = CDTextResponse[2], Reserved2 = CDTextResponse[3] }; diff --git a/CD/FullTOC.cs b/CD/FullTOC.cs index 5675b3104..d6eac3331 100644 --- a/CD/FullTOC.cs +++ b/CD/FullTOC.cs @@ -71,7 +71,8 @@ namespace Aaru.Decoders.CD var decoded = new CDFullTOC { DataLength = BigEndianBitConverter.ToUInt16(CDFullTOCResponse, 0), - FirstCompleteSession = CDFullTOCResponse[2], LastCompleteSession = CDFullTOCResponse[3] + FirstCompleteSession = CDFullTOCResponse[2], + LastCompleteSession = CDFullTOCResponse[3] }; decoded.TrackDescriptors = new TrackDataDescriptor[(decoded.DataLength - 2) / 11]; diff --git a/CD/PMA.cs b/CD/PMA.cs index aa873bbd5..bf26ba4e5 100644 --- a/CD/PMA.cs +++ b/CD/PMA.cs @@ -61,7 +61,8 @@ namespace Aaru.Decoders.CD var decoded = new CDPMA { - DataLength = BigEndianBitConverter.ToUInt16(CDPMAResponse, 0), Reserved1 = CDPMAResponse[2], + DataLength = BigEndianBitConverter.ToUInt16(CDPMAResponse, 0), + Reserved1 = CDPMAResponse[2], Reserved2 = CDPMAResponse[3] }; diff --git a/CD/Session.cs b/CD/Session.cs index b253ab6f7..9bcbe7e27 100644 --- a/CD/Session.cs +++ b/CD/Session.cs @@ -61,7 +61,8 @@ namespace Aaru.Decoders.CD var decoded = new CDSessionInfo { DataLength = BigEndianBitConverter.ToUInt16(CDSessionInfoResponse, 0), - FirstCompleteSession = CDSessionInfoResponse[2], LastCompleteSession = CDSessionInfoResponse[3] + FirstCompleteSession = CDSessionInfoResponse[2], + LastCompleteSession = CDSessionInfoResponse[3] }; decoded.TrackDescriptors = new TrackDataDescriptor[(decoded.DataLength - 2) / 8]; diff --git a/CD/TOC.cs b/CD/TOC.cs index ff58b61d1..c3802b7e9 100644 --- a/CD/TOC.cs +++ b/CD/TOC.cs @@ -63,7 +63,8 @@ namespace Aaru.Decoders.CD var decoded = new CDTOC { - DataLength = BigEndianBitConverter.ToUInt16(CDTOCResponse, 0), FirstTrack = CDTOCResponse[2], + DataLength = BigEndianBitConverter.ToUInt16(CDTOCResponse, 0), + FirstTrack = CDTOCResponse[2], LastTrack = CDTOCResponse[3] }; diff --git a/DVD/CSS&CPRM.cs b/DVD/CSS&CPRM.cs index 27ba12377..bf7336bbe 100644 --- a/DVD/CSS&CPRM.cs +++ b/DVD/CSS&CPRM.cs @@ -60,10 +60,13 @@ namespace Aaru.Decoders.DVD return new LeadInCopyright { - DataLength = (ushort)((response[0] << 8) + response[1]), Reserved1 = response[2], - Reserved2 = response[3], CopyrightType = (CopyrightType)response[4], + DataLength = (ushort)((response[0] << 8) + response[1]), + Reserved1 = response[2], + Reserved2 = response[3], + CopyrightType = (CopyrightType)response[4], RegionInformation = response[5], - Reserved3 = response[6], Reserved4 = response[7] + Reserved3 = response[6], + Reserved4 = response[7] }; } diff --git a/DVD/Cartridge.cs b/DVD/Cartridge.cs index 6e3bbde5b..951e05688 100644 --- a/DVD/Cartridge.cs +++ b/DVD/Cartridge.cs @@ -60,14 +60,18 @@ namespace Aaru.Decoders.DVD return new MediumStatus { - DataLength = (ushort)((response[0] << 8) + response[1]), Reserved1 = response[2], - Reserved2 = response[3], Cartridge = (response[4] & 0x80) == 0x80, - OUT = (response[4] & 0x40) == 0x40, - Reserved3 = (byte)((response[4] & 0x30) >> 4), MSWI = (response[4] & 0x08) == 0x08, - CWP = (response[4] & 0x04) == 0x04, - PWP = (response[4] & 0x02) == 0x02, - Reserved4 = (response[4] & 0x01) == 0x01, - DiscType = response[5], Reserved5 = response[6], + DataLength = (ushort)((response[0] << 8) + response[1]), + Reserved1 = response[2], + Reserved2 = response[3], + Cartridge = (response[4] & 0x80) == 0x80, + OUT = (response[4] & 0x40) == 0x40, + Reserved3 = (byte)((response[4] & 0x30) >> 4), + MSWI = (response[4] & 0x08) == 0x08, + CWP = (response[4] & 0x04) == 0x04, + PWP = (response[4] & 0x02) == 0x02, + Reserved4 = (response[4] & 0x01) == 0x01, + DiscType = response[5], + Reserved5 = response[6], RAMSWI = response[7] }; } diff --git a/DVD/Spare.cs b/DVD/Spare.cs index f9eb0f468..12dda6512 100644 --- a/DVD/Spare.cs +++ b/DVD/Spare.cs @@ -59,7 +59,8 @@ namespace Aaru.Decoders.DVD return new SpareAreaInformation { - DataLength = (ushort)((response[0] << 8) + response[1]), Reserved1 = response[2], + DataLength = (ushort)((response[0] << 8) + response[1]), + Reserved1 = response[2], Reserved2 = response[3], UnusedPrimaryBlocks = (uint)((response[4] << 24) + (response[5] << 16) + (response[6] << 8) + response[7]), diff --git a/Floppy/Apple2.cs b/Floppy/Apple2.cs index 1bea904ee..bc186d725 100644 --- a/Floppy/Apple2.cs +++ b/Floppy/Apple2.cs @@ -532,7 +532,8 @@ namespace Aaru.Decoders.Floppy var track = new RawTrack { - gap = gaps.ToArray(), sectors = sectors.ToArray() + gap = gaps.ToArray(), + sectors = sectors.ToArray() }; endOffset = position; diff --git a/Floppy/AppleSony.cs b/Floppy/AppleSony.cs index f65ab707b..523590376 100644 --- a/Floppy/AppleSony.cs +++ b/Floppy/AppleSony.cs @@ -167,9 +167,11 @@ namespace Aaru.Decoders.Floppy { data[position], data[position + 1], data[position + 2] }, - track = data[position + 3], sector = data[position + 4], - side = data[position + 5], - format = (AppleEncodedFormat)data[position + 6], checksum = data[position + 7], + track = data[position + 3], + sector = data[position + 4], + side = data[position + 5], + format = (AppleEncodedFormat)data[position + 6], + checksum = data[position + 7], epilogue = new[] { data[position + 8], data[position + 9] @@ -378,7 +380,8 @@ namespace Aaru.Decoders.Floppy var track = new RawTrack { - gap = gaps.ToArray(), sectors = sectors.ToArray() + gap = gaps.ToArray(), + sectors = sectors.ToArray() }; endOffset = position; diff --git a/LisaTag.cs b/LisaTag.cs index c26403a8f..19ad38f04 100644 --- a/LisaTag.cs +++ b/LisaTag.cs @@ -47,8 +47,10 @@ namespace Aaru.Decoders var snTag = new SonyTag { - Version = BigEndianBitConverter.ToUInt16(tag, 0), Kind = (byte)((tag[2] & 0xC0) >> 6), - Reserved = (byte)(tag[2] & 0x3F), Volume = tag[3], + Version = BigEndianBitConverter.ToUInt16(tag, 0), + Kind = (byte)((tag[2] & 0xC0) >> 6), + Reserved = (byte)(tag[2] & 0x3F), + Volume = tag[3], FileId = BigEndianBitConverter.ToInt16(tag, 4), RelPage = BigEndianBitConverter.ToUInt16(tag, 6), NextBlock = (ushort)(BigEndianBitConverter.ToUInt16(tag, 8) & 0x7FF), @@ -251,10 +253,16 @@ namespace Aaru.Decoders /// Converts this tag to Priam DataTower format public PriamTag ToPriam() => new PriamTag { - AbsPage = AbsPage, Checksum = Checksum, FileId = FileId, IsFirst = IsFirst, - IsLast = IsLast, Kind = Kind, NextBlock = IsLast ? 0xFFFFFF : NextBlock & 0xFFFFFF, - PrevBlock = IsFirst ? 0xFFFFFF : PrevBlock & 0xFFFFFF, - RelPage = RelPage, UsedBytes = UsedBytes, + AbsPage = AbsPage, + Checksum = Checksum, + FileId = FileId, + IsFirst = IsFirst, + IsLast = IsLast, + Kind = Kind, + NextBlock = IsLast ? 0xFFFFFF : NextBlock & 0xFFFFFF, + PrevBlock = IsFirst ? 0xFFFFFF : PrevBlock & 0xFFFFFF, + RelPage = RelPage, + UsedBytes = UsedBytes, ValidChk = ValidChk, Version = Version, Volume = Volume @@ -263,8 +271,14 @@ namespace Aaru.Decoders /// Converts this tag to Sony format public SonyTag ToSony() => new SonyTag { - FileId = FileId, IsFirst = IsFirst, IsLast = IsLast, Kind = Kind, - NextBlock = (ushort)NextBlock, PrevBlock = (ushort)PrevBlock, RelPage = RelPage, Version = Version, + FileId = FileId, + IsFirst = IsFirst, + IsLast = IsLast, + Kind = Kind, + NextBlock = (ushort)NextBlock, + PrevBlock = (ushort)PrevBlock, + RelPage = RelPage, + Version = Version, Volume = Volume }; @@ -337,10 +351,16 @@ namespace Aaru.Decoders /// Converts this tag to Apple Profile format public ProfileTag ToProfile() => new ProfileTag { - AbsPage = AbsPage, Checksum = Checksum, FileId = FileId, IsFirst = IsFirst, - IsLast = IsLast, Kind = Kind, NextBlock = IsLast ? 0xFFFFFF : NextBlock & 0xFFFFFF, - PrevBlock = IsFirst ? 0xFFFFFF : PrevBlock & 0xFFFFFF, - RelPage = RelPage, UsedBytes = UsedBytes, + AbsPage = AbsPage, + Checksum = Checksum, + FileId = FileId, + IsFirst = IsFirst, + IsLast = IsLast, + Kind = Kind, + NextBlock = IsLast ? 0xFFFFFF : NextBlock & 0xFFFFFF, + PrevBlock = IsFirst ? 0xFFFFFF : PrevBlock & 0xFFFFFF, + RelPage = RelPage, + UsedBytes = UsedBytes, ValidChk = ValidChk, Version = Version, Volume = Volume @@ -349,9 +369,14 @@ namespace Aaru.Decoders /// Converts this tag to Sony format public SonyTag ToSony() => new SonyTag { - FileId = FileId, IsFirst = IsFirst, IsLast = IsLast, Kind = Kind, + FileId = FileId, + IsFirst = IsFirst, + IsLast = IsLast, + Kind = Kind, NextBlock = (ushort)(IsLast ? 0x7FF : NextBlock & 0x7FF), - PrevBlock = (ushort)(IsFirst ? 0x7FF : PrevBlock & 0x7FF), RelPage = RelPage, Version = Version, + PrevBlock = (ushort)(IsFirst ? 0x7FF : PrevBlock & 0x7FF), + RelPage = RelPage, + Version = Version, Volume = Volume }; @@ -416,18 +441,28 @@ namespace Aaru.Decoders /// Converts this tag to Apple Profile format public ProfileTag ToProfile() => new ProfileTag { - FileId = FileId, IsFirst = IsFirst, IsLast = IsLast, Kind = Kind, + FileId = FileId, + IsFirst = IsFirst, + IsLast = IsLast, + Kind = Kind, NextBlock = (uint)(IsLast ? 0xFFFFFF : NextBlock & 0xFFFFFF), - PrevBlock = (uint)(IsFirst ? 0xFFFFFF : PrevBlock & 0xFFFFFF), RelPage = RelPage, Version = Version, + PrevBlock = (uint)(IsFirst ? 0xFFFFFF : PrevBlock & 0xFFFFFF), + RelPage = RelPage, + Version = Version, Volume = Volume }; /// Converts this tag to Priam DataTower format public PriamTag ToPriam() => new PriamTag { - FileId = FileId, IsFirst = IsFirst, IsLast = IsLast, Kind = Kind, + FileId = FileId, + IsFirst = IsFirst, + IsLast = IsLast, + Kind = Kind, NextBlock = (uint)(IsLast ? 0xFFFFFF : NextBlock & 0xFFFFFF), - PrevBlock = (uint)(IsFirst ? 0xFFFFFF : PrevBlock & 0xFFFFFF), RelPage = RelPage, Version = Version, + PrevBlock = (uint)(IsFirst ? 0xFFFFFF : PrevBlock & 0xFFFFFF), + RelPage = RelPage, + Version = Version, Volume = Volume }; diff --git a/MMC/CID.cs b/MMC/CID.cs index 8a4548520..6a27e6b61 100644 --- a/MMC/CID.cs +++ b/MMC/CID.cs @@ -81,8 +81,10 @@ namespace Aaru.Decoders.MMC var cid = new CID { Manufacturer = response[0], - DeviceType = (byte)(response[1] & 0x03), ProductRevision = response[9], - ProductSerialNumber = BitConverter.ToUInt32(response, 10), ManufacturingDate = response[14], + DeviceType = (byte)(response[1] & 0x03), + ProductRevision = response[9], + ProductSerialNumber = BitConverter.ToUInt32(response, 10), + ManufacturingDate = response[14], CRC = (byte)((response[15] & 0xFE) >> 1) }; diff --git a/MMC/CSD.cs b/MMC/CSD.cs index 5b53f134b..a07015c1f 100644 --- a/MMC/CSD.cs +++ b/MMC/CSD.cs @@ -105,41 +105,39 @@ namespace Aaru.Decoders.MMC return new CSD { - Structure = (byte)((response[0] & 0xC0) >> 6), - Version = (byte)((response[0] & 0x3C) >> 2), - TAAC = response[1], NSAC = response[2], - Speed = response[3], - Classes = (ushort)((response[4] << 4) + ((response[5] & 0xF0) >> 4)), - ReadBlockLength = (byte)(response[5] & 0x0F), - ReadsPartialBlocks = (response[6] & 0x80) == 0x80, - WriteMisalignment = - (response[6] & 0x40) == 0x40, + Structure = (byte)((response[0] & 0xC0) >> 6), + Version = (byte)((response[0] & 0x3C) >> 2), + TAAC = response[1], + NSAC = response[2], + Speed = response[3], + Classes = (ushort)((response[4] << 4) + ((response[5] & 0xF0) >> 4)), + ReadBlockLength = (byte)(response[5] & 0x0F), + ReadsPartialBlocks = (response[6] & 0x80) == 0x80, + WriteMisalignment = (response[6] & 0x40) == 0x40, ReadMisalignment = (response[6] & 0x20) == 0x20, - DSRImplemented = - (response[6] & 0x10) == 0x10, - Size = - (ushort)(((response[6] & 0x03) << 10) + (response[7] << 2) + ((response[8] & 0xC0) >> 6)), - ReadCurrentAtVddMin = (byte)((response[8] & 0x38) >> 3), - ReadCurrentAtVddMax = (byte)(response[8] & 0x07), - WriteCurrentAtVddMin = (byte)((response[9] & 0xE0) >> 5), - WriteCurrentAtVddMax = (byte)((response[9] & 0x1C) >> 2), - SizeMultiplier = (byte)(((response[9] & 0x03) << 1) + ((response[10] & 0x80) >> 7)), - EraseGroupSize = (byte)((response[10] & 0x7C) >> 2), + DSRImplemented = (response[6] & 0x10) == 0x10, + Size = (ushort)(((response[6] & 0x03) << 10) + (response[7] << 2) + ((response[8] & 0xC0) >> 6)), + ReadCurrentAtVddMin = (byte)((response[8] & 0x38) >> 3), + ReadCurrentAtVddMax = (byte)(response[8] & 0x07), + WriteCurrentAtVddMin = (byte)((response[9] & 0xE0) >> 5), + WriteCurrentAtVddMax = (byte)((response[9] & 0x1C) >> 2), + SizeMultiplier = (byte)(((response[9] & 0x03) << 1) + ((response[10] & 0x80) >> 7)), + EraseGroupSize = (byte)((response[10] & 0x7C) >> 2), EraseGroupSizeMultiplier = (byte)(((response[10] & 0x03) << 3) + ((response[11] & 0xE0) >> 5)), - WriteProtectGroupSize = (byte)(response[11] & 0x1F), - WriteProtectGroupEnable = (response[12] & 0x80) == 0x80, - DefaultECC = (byte)((response[12] & 0x60) >> 5), - WriteSpeedFactor = (byte)((response[12] & 0x1C) >> 2), - WriteBlockLength = (byte)(((response[12] & 0x03) << 2) + ((response[13] & 0xC0) >> 6)), - WritesPartialBlocks = (response[13] & 0x20) == 0x20, - ContentProtection = (response[13] & 0x01) == 0x01, - FileFormatGroup = (response[14] & 0x80) == 0x80, - Copy = (response[14] & 0x40) == 0x40, - PermanentWriteProtect = (response[14] & 0x20) == 0x20, - TemporaryWriteProtect = (response[14] & 0x10) == 0x10, - FileFormat = (byte)((response[14] & 0x0C) >> 2), - ECC = (byte)(response[14] & 0x03), - CRC = (byte)((response[15] & 0xFE) >> 1) + WriteProtectGroupSize = (byte)(response[11] & 0x1F), + WriteProtectGroupEnable = (response[12] & 0x80) == 0x80, + DefaultECC = (byte)((response[12] & 0x60) >> 5), + WriteSpeedFactor = (byte)((response[12] & 0x1C) >> 2), + WriteBlockLength = (byte)(((response[12] & 0x03) << 2) + ((response[13] & 0xC0) >> 6)), + WritesPartialBlocks = (response[13] & 0x20) == 0x20, + ContentProtection = (response[13] & 0x01) == 0x01, + FileFormatGroup = (response[14] & 0x80) == 0x80, + Copy = (response[14] & 0x40) == 0x40, + PermanentWriteProtect = (response[14] & 0x20) == 0x20, + TemporaryWriteProtect = (response[14] & 0x10) == 0x10, + FileFormat = (byte)((response[14] & 0x0C) >> 2), + ECC = (byte)(response[14] & 0x03), + CRC = (byte)((response[15] & 0xFE) >> 1) }; } diff --git a/MMC/OCR.cs b/MMC/OCR.cs index c56d6d0d0..eaa964746 100644 --- a/MMC/OCR.cs +++ b/MMC/OCR.cs @@ -67,15 +67,24 @@ namespace Aaru.Decoders.MMC { public static OCR DecodeOCR(uint response) => new OCR { - PowerUp = (response & 0x80000000) == 0x80000000, AccessMode = (byte)((response & 0x60000000) >> 29), - ThreeFive = (response & 0x00800000) == 0x00800000, ThreeFour = (response & 0x00400000) == 0x00400000, - ThreeThree = (response & 0x00200000) == 0x00200000, ThreeTwo = (response & 0x00100000) == 0x00100000, - ThreeOne = (response & 0x00080000) == 0x00080000, ThreeZero = (response & 0x00040000) == 0x00040000, - TwoNine = (response & 0x00020000) == 0x00020000, TwoEight = (response & 0x00010000) == 0x00010000, - TwoSeven = (response & 0x00008000) == 0x00008000, TwoSix = (response & 0x00004000) == 0x00004000, - TwoFive = (response & 0x00002000) == 0x00002000, TwoFour = (response & 0x00001000) == 0x00001000, - TwoThree = (response & 0x00000800) == 0x00000800, TwoTwo = (response & 0x00000400) == 0x00000400, - TwoOne = (response & 0x00000200) == 0x00000200, TwoZero = (response & 0x00000100) == 0x00000100, + PowerUp = (response & 0x80000000) == 0x80000000, + AccessMode = (byte)((response & 0x60000000) >> 29), + ThreeFive = (response & 0x00800000) == 0x00800000, + ThreeFour = (response & 0x00400000) == 0x00400000, + ThreeThree = (response & 0x00200000) == 0x00200000, + ThreeTwo = (response & 0x00100000) == 0x00100000, + ThreeOne = (response & 0x00080000) == 0x00080000, + ThreeZero = (response & 0x00040000) == 0x00040000, + TwoNine = (response & 0x00020000) == 0x00020000, + TwoEight = (response & 0x00010000) == 0x00010000, + TwoSeven = (response & 0x00008000) == 0x00008000, + TwoSix = (response & 0x00004000) == 0x00004000, + TwoFive = (response & 0x00002000) == 0x00002000, + TwoFour = (response & 0x00001000) == 0x00001000, + TwoThree = (response & 0x00000800) == 0x00000800, + TwoTwo = (response & 0x00000400) == 0x00000400, + TwoOne = (response & 0x00000200) == 0x00000200, + TwoZero = (response & 0x00000100) == 0x00000100, OneSix = (response & 0x00000080) == 0x00000080 }; diff --git a/PCMCIA/CIS.cs b/PCMCIA/CIS.cs index 58df7a3a9..ca82635a8 100644 --- a/PCMCIA/CIS.cs +++ b/PCMCIA/CIS.cs @@ -100,11 +100,12 @@ namespace Aaru.Decoders.PCMCIA { var geometry = new DeviceGeometry { - CardInterface = data[position], EraseBlockSize = data[position + 1], - ReadBlockSize = data[position + 2], - WriteBlockSize = data[position + 3], - Partitions = data[position + 4], - Interleaving = data[position + 5] + CardInterface = data[position], + EraseBlockSize = data[position + 1], + ReadBlockSize = data[position + 2], + WriteBlockSize = data[position + 3], + Partitions = data[position + 4], + Interleaving = data[position + 5] }; geometries.Add(geometry); @@ -175,8 +176,10 @@ namespace Aaru.Decoders.PCMCIA return new ManufacturerIdentificationTuple { - Code = (TupleCodes)data[0], Link = data[1], ManufacturerID = BitConverter.ToUInt16(data, 2), - CardID = BitConverter.ToUInt16(data, 4) + Code = (TupleCodes)data[0], + Link = data[1], + ManufacturerID = BitConverter.ToUInt16(data, 2), + CardID = BitConverter.ToUInt16(data, 4) }; } @@ -222,7 +225,10 @@ namespace Aaru.Decoders.PCMCIA var tuple = new Level1VersionTuple { - Code = (TupleCodes)data[0], Link = data[1], MajorVersion = data[2], MinorVersion = data[3] + Code = (TupleCodes)data[0], + Link = data[1], + MajorVersion = data[2], + MinorVersion = data[3] }; for(int position = 4; position < data.Length; position++) diff --git a/SCSI/DiscStructureCapabilities.cs b/SCSI/DiscStructureCapabilities.cs index 8d1573461..425e9fb94 100644 --- a/SCSI/DiscStructureCapabilities.cs +++ b/SCSI/DiscStructureCapabilities.cs @@ -54,8 +54,9 @@ namespace Aaru.Decoders.SCSI { var cap = new Capability { - FormatCode = response[offset], SDS = (response[offset + 1] & 0x80) == 0x80, - RDS = (response[offset + 1] & 0x40) == 0x40 + FormatCode = response[offset], + SDS = (response[offset + 1] & 0x80) == 0x80, + RDS = (response[offset + 1] & 0x40) == 0x40 }; caps.Add(cap); diff --git a/SCSI/EVPD.cs b/SCSI/EVPD.cs index df2bae22a..b6eaa3f66 100644 --- a/SCSI/EVPD.cs +++ b/SCSI/EVPD.cs @@ -226,9 +226,10 @@ namespace Aaru.Decoders.SCSI var decoded = new Page_81 { PeripheralQualifier = (PeripheralQualifiers)((pageResponse[0] & 0xE0) >> 5), - PeripheralDeviceType = (PeripheralDeviceTypes)(pageResponse[0] & 0x1F), - PageLength = (byte)(pageResponse[3] + 4), Current = (ScsiDefinitions)(pageResponse[4] & 0x7F), - Default = (ScsiDefinitions)(pageResponse[5] & 0x7F) + PeripheralDeviceType = (PeripheralDeviceTypes)(pageResponse[0] & 0x1F), + PageLength = (byte)(pageResponse[3] + 4), + Current = (ScsiDefinitions)(pageResponse[4] & 0x7F), + Default = (ScsiDefinitions)(pageResponse[5] & 0x7F) }; int position = 6; @@ -1160,62 +1161,32 @@ namespace Aaru.Decoders.SCSI PeripheralDeviceType = (PeripheralDeviceTypes)(pageResponse[0] & 0x1F), PageLength = (byte)(pageResponse[3] + 4), ActivateMicrocode = (byte)((pageResponse[4] & 0xC0) >> 6), - SPT = - (byte)((pageResponse[4] & 0x38) >> 3), - GRD_CHK = (pageResponse[4] & 0x04) == 0x04, - APP_CHK = - (pageResponse - [4] & - 0x02) == 0x02, - REF_CHK = (pageResponse[4] & 0x01) == 0x01, - UASK_SUP = - (pageResponse - [5] & - 0x20) == 0x20, - GROUP_SUP = (pageResponse[5] & 0x10) == 0x10, - PRIOR_SUP = - (pageResponse - [5] & - 0x08) == 0x08, - HEADSUP = (pageResponse[5] & 0x04) == 0x04, - ORDSUP = - (pageResponse - [5] & - 0x02) == 0x02, - SIMPSUP = (pageResponse[5] & 0x01) == 0x01, - WU_SUP = - (pageResponse - [6] & - 0x08) == 0x08, - CRD_SUP = (pageResponse[6] & 0x04) == 0x04, - NV_SUP = - (pageResponse - [6] & - 0x02) == 0x02, - V_SUP = (pageResponse[6] & 0x01) == 0x01, - NO_PI_CHK = - (pageResponse - [7] & - 0x20) == 0x20, - P_I_I_SUP = (pageResponse[7] & 0x10) == 0x10, - LUICLR = - (pageResponse - [7] & - 0x01) == 0x01, - R_SUP = (pageResponse[8] & 0x10) == 0x10, - HSSRELEF = - (pageResponse - [8] & - 0x02) == 0x02, - CBCS = (pageResponse[8] & 0x01) == 0x01, - Nexus = - (byte)(pageResponse - [9] & - 0x0F), - ExtendedTestMinutes = (ushort)((pageResponse[10] << 8) + pageResponse[11]), - POA_SUP = (pageResponse[12] & 0x80) == 0x80, - HRA_SUP = (pageResponse[12] & 0x40) == 0x40, - VSA_SUP = (pageResponse[12] & 0x20) == 0x20, MaximumSenseLength = pageResponse[13] + SPT = (byte)((pageResponse[4] & 0x38) >> 3), + GRD_CHK = (pageResponse[4] & 0x04) == 0x04, + APP_CHK = (pageResponse[4] & 0x02) == 0x02, + REF_CHK = (pageResponse[4] & 0x01) == 0x01, + UASK_SUP = (pageResponse[5] & 0x20) == 0x20, + GROUP_SUP = (pageResponse[5] & 0x10) == 0x10, + PRIOR_SUP = (pageResponse[5] & 0x08) == 0x08, + HEADSUP = (pageResponse[5] & 0x04) == 0x04, + ORDSUP = (pageResponse[5] & 0x02) == 0x02, + SIMPSUP = (pageResponse[5] & 0x01) == 0x01, + WU_SUP = (pageResponse[6] & 0x08) == 0x08, + CRD_SUP = (pageResponse[6] & 0x04) == 0x04, + NV_SUP = (pageResponse[6] & 0x02) == 0x02, + V_SUP = (pageResponse[6] & 0x01) == 0x01, + NO_PI_CHK = (pageResponse[7] & 0x20) == 0x20, + P_I_I_SUP = (pageResponse[7] & 0x10) == 0x10, + LUICLR = (pageResponse[7] & 0x01) == 0x01, + R_SUP = (pageResponse[8] & 0x10) == 0x10, + HSSRELEF = (pageResponse[8] & 0x02) == 0x02, + CBCS = (pageResponse[8] & 0x01) == 0x01, + Nexus = (byte)(pageResponse[9] & 0x0F), + ExtendedTestMinutes = (ushort)((pageResponse[10] << 8) + pageResponse[11]), + POA_SUP = (pageResponse[12] & 0x80) == 0x80, + HRA_SUP = (pageResponse[12] & 0x40) == 0x40, + VSA_SUP = (pageResponse[12] & 0x20) == 0x20, + MaximumSenseLength = pageResponse[13] }; } @@ -1401,7 +1372,8 @@ namespace Aaru.Decoders.SCSI PageLength = (ushort)((pageResponse[2] << 8) + pageResponse[3] + 4), VendorIdentification = new byte[8], ProductIdentification = new byte[16], - ProductRevisionLevel = new byte[4], Signature = new byte[20], + ProductRevisionLevel = new byte[4], + Signature = new byte[20], IdentifyData = new byte[512] }; @@ -1595,8 +1567,11 @@ namespace Aaru.Decoders.SCSI { PeripheralQualifier = (PeripheralQualifiers)((pageResponse[0] & 0xE0) >> 5), PeripheralDeviceType = (PeripheralDeviceTypes)(pageResponse[0] & 0x1F), - PageLength = (byte)(pageResponse[3] + 4), Component = new byte[26], Version = new byte[19], - Date = new byte[24], Variant = new byte[23] + PageLength = (byte)(pageResponse[3] + 4), + Component = new byte[26], + Version = new byte[19], + Date = new byte[24], + Variant = new byte[23] }; Array.Copy(pageResponse, 4, decoded.Component, 0, 26); @@ -1666,7 +1641,8 @@ namespace Aaru.Decoders.SCSI { PeripheralQualifier = (PeripheralQualifiers)((pageResponse[0] & 0xE0) >> 5), PeripheralDeviceType = (PeripheralDeviceTypes)(pageResponse[0] & 0x1F), - PageLength = (byte)(pageResponse[3] + 4), SerialNumber = new byte[12] + PageLength = (byte)(pageResponse[3] + 4), + SerialNumber = new byte[12] }; Array.Copy(pageResponse, 4, decoded.SerialNumber, 0, 12); @@ -1789,10 +1765,12 @@ namespace Aaru.Decoders.SCSI Clean = (pageResponse[5] & 0x01) == 0x01, Threaded = (pageResponse[6] & 0x10) == 0x10, Lun1Cmd = (pageResponse[6] & 0x08) == 0x08, - AutoloadMode = (byte)(pageResponse[6] & 0x07), CartridgeType = pageResponse[8], + AutoloadMode = (byte)(pageResponse[6] & 0x07), + CartridgeType = pageResponse[8], CartridgeFormat = pageResponse[9], CartridgeCapacity = (ushort)((pageResponse[10] << 8) + pageResponse[11] + 4), - PortATransportType = pageResponse[12], PortASelectionID = pageResponse[15], + PortATransportType = pageResponse[12], + PortASelectionID = pageResponse[15], OperatingHours = (uint)((pageResponse[20] << 24) + (pageResponse[21] << 16) + (pageResponse[22] << 8) + pageResponse[23]), CartridgeSerialNumber = new byte[32] @@ -1996,7 +1974,9 @@ namespace Aaru.Decoders.SCSI { PeripheralQualifier = (PeripheralQualifiers)((pageResponse[0] & 0xE0) >> 5), PeripheralDeviceType = (PeripheralDeviceTypes)(pageResponse[0] & 0x1F), - PageLength = (byte)(pageResponse[3] + 4), CodeName = new byte[12], Date = new byte[8] + PageLength = (byte)(pageResponse[3] + 4), + CodeName = new byte[12], + Date = new byte[8] }; Array.Copy(pageResponse, 4, decoded.CodeName, 0, 12); @@ -2056,7 +2036,8 @@ namespace Aaru.Decoders.SCSI { PeripheralQualifier = (PeripheralQualifiers)((pageResponse[0] & 0xE0) >> 5), PeripheralDeviceType = (PeripheralDeviceTypes)(pageResponse[0] & 0x1F), - PageLength = (byte)(pageResponse[3] + 4), ManufacturingSerial = new byte[12], + PageLength = (byte)(pageResponse[3] + 4), + ManufacturingSerial = new byte[12], ReportedSerial = new byte[12] }; @@ -2121,7 +2102,8 @@ namespace Aaru.Decoders.SCSI PeripheralQualifier = (PeripheralQualifiers)((pageResponse[0] & 0xE0) >> 5), PeripheralDeviceType = (PeripheralDeviceTypes)(pageResponse[0] & 0x1F), PageLength = (ushort)((pageResponse[2] << 8) + pageResponse[3] + 4), - TSMC = (pageResponse[4] & 0x02) == 0x02, WORM = (pageResponse[4] & 0x01) == 0x01 + TSMC = (pageResponse[4] & 0x02) == 0x02, + WORM = (pageResponse[4] & 0x01) == 0x01 }; return decoded; @@ -2188,7 +2170,8 @@ namespace Aaru.Decoders.SCSI { PeripheralQualifier = (PeripheralQualifiers)((pageResponse[0] & 0xE0) >> 5), PeripheralDeviceType = (PeripheralDeviceTypes)(pageResponse[0] & 0x1F), - PageLength = (byte)(pageResponse[3] + 4), PageCode = pageResponse[1] + PageLength = (byte)(pageResponse[3] + 4), + PageCode = pageResponse[1] }; if(pageResponse[3] == 92 && @@ -2348,9 +2331,11 @@ namespace Aaru.Decoders.SCSI { PeripheralQualifier = (PeripheralQualifiers)((pageResponse[0] & 0xE0) >> 5), PeripheralDeviceType = (PeripheralDeviceTypes)(pageResponse[0] & 0x1F), - PageLength = (byte)(pageResponse[3] + 4), PageCode = pageResponse[1], + PageLength = (byte)(pageResponse[3] + 4), + PageCode = pageResponse[1], ControllerFirmware = new byte[4], - BootFirmware = new byte[4], ServoFirmware = new byte[4] + BootFirmware = new byte[4], + ServoFirmware = new byte[4] }; Array.Copy(pageResponse, 4, decoded.ControllerFirmware, 0, 4); diff --git a/SCSI/MMC/CPRM.cs b/SCSI/MMC/CPRM.cs index be29a15ee..8cbb92eba 100644 --- a/SCSI/MMC/CPRM.cs +++ b/SCSI/MMC/CPRM.cs @@ -61,7 +61,8 @@ namespace Aaru.Decoders.SCSI.MMC var decoded = new CPRMMediaKeyBlock { MKBPackData = new byte[CPRMMKBResponse.Length - 4], - DataLength = BigEndianBitConverter.ToUInt16(CPRMMKBResponse, 0), Reserved = CPRMMKBResponse[2], + DataLength = BigEndianBitConverter.ToUInt16(CPRMMKBResponse, 0), + Reserved = CPRMMKBResponse[2], TotalPacks = CPRMMKBResponse[3] }; diff --git a/SCSI/MMC/Hybrid.cs b/SCSI/MMC/Hybrid.cs index 13caadd22..8db510c66 100644 --- a/SCSI/MMC/Hybrid.cs +++ b/SCSI/MMC/Hybrid.cs @@ -63,10 +63,12 @@ namespace Aaru.Decoders.SCSI.MMC var decoded = new RecognizedFormatLayers { DataLength = BigEndianBitConverter.ToUInt16(FormatLayersResponse, 0), - Reserved1 = FormatLayersResponse[2], Reserved2 = FormatLayersResponse[3], - NumberOfLayers = FormatLayersResponse[4], Reserved3 = (byte)((FormatLayersResponse[5] & 0xC0) >> 6), - DefaultFormatLayer = (byte)((FormatLayersResponse[5] & 0x30) >> 4), - Reserved4 = (byte)((FormatLayersResponse[5] & 0x0C) >> 2), + Reserved1 = FormatLayersResponse[2], + Reserved2 = FormatLayersResponse[3], + NumberOfLayers = FormatLayersResponse[4], + Reserved3 = (byte)((FormatLayersResponse[5] & 0xC0) >> 6), + DefaultFormatLayer = (byte)((FormatLayersResponse[5] & 0x30) >> 4), + Reserved4 = (byte)((FormatLayersResponse[5] & 0x0C) >> 2), OnlineFormatLayer = (byte)(FormatLayersResponse[5] & 0x03), FormatLayers = new ushort[(FormatLayersResponse.Length - 6) / 2] }; diff --git a/SCSI/MMC/TrackInformation.cs b/SCSI/MMC/TrackInformation.cs index b2504014d..830af1484 100644 --- a/SCSI/MMC/TrackInformation.cs +++ b/SCSI/MMC/TrackInformation.cs @@ -61,13 +61,20 @@ namespace Aaru.Decoders.SCSI.MMC var decoded = new TrackInformation { - DataLength = (ushort)((response[0] << 8) + response[1]), LogicalTrackNumber = response[2], - SessionNumber = response[3], LayerJumpRecordingStatus = (LayerJumpRecordingStatus)(response[5] >> 6), - Damage = (response[5] & 0x20) == 0x20, Copy = (response[5] & 0x10) == 0x10, - TrackMode = (byte)(response[5] & 0xF), RT = (response[6] & 0x80) == 0x80, - Blank = (response[6] & 0x40) == 0x40, Packet = (response[6] & 0x20) == 0x20, - FP = (response[6] & 0x10) == 0x10, DataMode = (byte)(response[6] & 0xF), - LraV = (response[7] & 0x02) == 0x02, NwaV = (response[7] & 0x01) == 0x01, + DataLength = (ushort)((response[0] << 8) + response[1]), + LogicalTrackNumber = response[2], + SessionNumber = response[3], + LayerJumpRecordingStatus = (LayerJumpRecordingStatus)(response[5] >> 6), + Damage = (response[5] & 0x20) == 0x20, + Copy = (response[5] & 0x10) == 0x10, + TrackMode = (byte)(response[5] & 0xF), + RT = (response[6] & 0x80) == 0x80, + Blank = (response[6] & 0x40) == 0x40, + Packet = (response[6] & 0x20) == 0x20, + FP = (response[6] & 0x10) == 0x10, + DataMode = (byte)(response[6] & 0xF), + LraV = (response[7] & 0x02) == 0x02, + NwaV = (response[7] & 0x01) == 0x01, LogicalTrackStartAddress = (uint)((response[8] << 24) + (response[9] << 16) + (response[10] << 8) + response[11]), NextWritableAddress = diff --git a/SCSI/MMC/WriteProtect.cs b/SCSI/MMC/WriteProtect.cs index 00a98d29f..3aa3e0b10 100644 --- a/SCSI/MMC/WriteProtect.cs +++ b/SCSI/MMC/WriteProtect.cs @@ -60,14 +60,16 @@ namespace Aaru.Decoders.SCSI.MMC var decoded = new WriteProtectionStatus { - DataLength = BigEndianBitConverter.ToUInt16(WPSResponse, 0), Reserved1 = WPSResponse[2], + DataLength = BigEndianBitConverter.ToUInt16(WPSResponse, 0), + Reserved1 = WPSResponse[2], Reserved2 = WPSResponse[3], Reserved3 = (byte)((WPSResponse[4] & 0xF0) >> 4), MSWI = Convert.ToBoolean(WPSResponse[4] & 0x08), CWP = Convert.ToBoolean(WPSResponse[4] & 0x04), PWP = Convert.ToBoolean(WPSResponse[4] & 0x02), SWPP = Convert.ToBoolean(WPSResponse[4] & 0x01), - Reserved4 = WPSResponse[5], Reserved5 = WPSResponse[6], + Reserved4 = WPSResponse[5], + Reserved5 = WPSResponse[6], Reserved6 = WPSResponse[7] }; diff --git a/SCSI/Modes/2F_IBM.cs b/SCSI/Modes/2F_IBM.cs index 07d256d69..c0b3aeff5 100644 --- a/SCSI/Modes/2F_IBM.cs +++ b/SCSI/Modes/2F_IBM.cs @@ -73,14 +73,17 @@ namespace Aaru.Decoders.SCSI return new IBM_ModePage_2F { - PS = (pageResponse[0] & 0x80) == 0x80, FenceBehaviour = pageResponse[2], - CleanBehaviour = pageResponse[3], WORMEmulation = pageResponse[4], - SenseDataBehaviour = pageResponse[5], - CCDM = (pageResponse[6] & 0x04) == 0x04, - DDEOR = (pageResponse[6] & 0x02) == 0x02, - CLNCHK = (pageResponse[6] & 0x01) == 0x01, FirmwareUpdateBehaviour = pageResponse[7], - UOE_C = (byte)((pageResponse[8] & 0x30) >> 4), - UOE_F = (byte)((pageResponse[8] & 0x0C) >> 2) + PS = (pageResponse[0] & 0x80) == 0x80, + FenceBehaviour = pageResponse[2], + CleanBehaviour = pageResponse[3], + WORMEmulation = pageResponse[4], + SenseDataBehaviour = pageResponse[5], + CCDM = (pageResponse[6] & 0x04) == 0x04, + DDEOR = (pageResponse[6] & 0x02) == 0x02, + CLNCHK = (pageResponse[6] & 0x01) == 0x01, + FirmwareUpdateBehaviour = pageResponse[7], + UOE_C = (byte)((pageResponse[8] & 0x30) >> 4), + UOE_F = (byte)((pageResponse[8] & 0x0C) >> 2) }; } diff --git a/SCSI/SSC/DensitySupport.cs b/SCSI/SSC/DensitySupport.cs index 9350d5048..dd613fbf9 100644 --- a/SCSI/SSC/DensitySupport.cs +++ b/SCSI/SSC/DensitySupport.cs @@ -61,22 +61,17 @@ namespace Aaru.Decoders.SCSI.SSC { var descriptor = new DensitySupportDescriptor { - primaryCode = response[offset + 0], secondaryCode = response[offset + 1], - writable = (response[offset + 2] & 0x80) == 0x80, - duplicate = (response[offset + 2] & 0x40) == 0x40, + primaryCode = response[offset + 0], + secondaryCode = response[offset + 1], + writable = (response[offset + 2] & 0x80) == 0x80, + duplicate = (response[offset + 2] & 0x40) == 0x40, defaultDensity = (response[offset + 2] & 0x20) == 0x20, - reserved = (byte)((response[offset + 2] & 0x1E) >> 1), - lenvalid = - (response[offset + 2] & - 0x01) == 0x01, - len = - (ushort)((response[offset + 3] << 8) + response[offset + 4]), - bpmm = (uint)((response[offset + 5] << 16) + (response[offset + 6] << 8) + - response[offset + 7]), - width = - (ushort)((response[offset + 8] << 8) + response[offset + 9]), - tracks = (ushort)((response[offset + 10] << 8) + - response[offset + 11]), + reserved = (byte)((response[offset + 2] & 0x1E) >> 1), + lenvalid = (response[offset + 2] & 0x01) == 0x01, + len = (ushort)((response[offset + 3] << 8) + response[offset + 4]), + bpmm = (uint)((response[offset + 5] << 16) + (response[offset + 6] << 8) + response[offset + 7]), + width = (ushort)((response[offset + 8] << 8) + response[offset + 9]), + tracks = (ushort)((response[offset + 10] << 8) + response[offset + 11]), capacity = (uint)((response[offset + 12] << 24) + (response[offset + 13] << 16) + (response[offset + 14] << 8) + response[offset + 15]) }; @@ -101,7 +96,8 @@ namespace Aaru.Decoders.SCSI.SSC var decoded = new DensitySupportHeader { - length = responseLen, reserved = (ushort)((response[2] << 8) + response[3] + 2), + length = responseLen, + reserved = (ushort)((response[2] << 8) + response[3] + 2), descriptors = descriptors.ToArray() }; @@ -168,7 +164,8 @@ namespace Aaru.Decoders.SCSI.SSC { var descriptor = new MediaTypeSupportDescriptor { - mediumType = response[offset + 0], reserved1 = response[offset + 1], + mediumType = response[offset + 0], + reserved1 = response[offset + 1], len = (ushort)((response[offset + 2] << 8) + response[offset + 3]) }; @@ -199,7 +196,8 @@ namespace Aaru.Decoders.SCSI.SSC var decoded = new MediaTypeSupportHeader { - length = responseLen, reserved = (ushort)((response[2] << 8) + response[3] + 2), + length = responseLen, + reserved = (ushort)((response[2] << 8) + response[3] + 2), descriptors = descriptors.ToArray() }; diff --git a/SCSI/Sense.cs b/SCSI/Sense.cs index dd7aa16bf..bf836b825 100644 --- a/SCSI/Sense.cs +++ b/SCSI/Sense.cs @@ -213,10 +213,13 @@ namespace Aaru.Decoders.SCSI var decoded = new FixedSense { - InformationValid = (sense[0] & 0x80) == 0x80, SegmentNumber = sense[1], - Filemark = (sense[2] & 0x80) == 0x80, EOM = (sense[2] & 0x40) == 0x40, ILI = (sense[2] & 0x20) == 0x20, - SenseKey = (SenseKeys)(sense[2] & 0x0F), - Information = (uint)((sense[3] << 24) + (sense[4] << 16) + (sense[5] << 8) + sense[6]), + InformationValid = (sense[0] & 0x80) == 0x80, + SegmentNumber = sense[1], + Filemark = (sense[2] & 0x80) == 0x80, + EOM = (sense[2] & 0x40) == 0x40, + ILI = (sense[2] & 0x20) == 0x20, + SenseKey = (SenseKeys)(sense[2] & 0x0F), + Information = (uint)((sense[3] << 24) + (sense[4] << 16) + (sense[5] << 8) + sense[6]), AdditionalLength = sense[7] }; @@ -264,8 +267,11 @@ namespace Aaru.Decoders.SCSI var decoded = new DescriptorSense { - SenseKey = (SenseKeys)(sense[1] & 0x0F), ASC = sense[2], ASCQ = sense[3], - Overflow = (sense[4] & 0x80) == 0x80, Descriptors = new Dictionary() + SenseKey = (SenseKeys)(sense[1] & 0x0F), + ASC = sense[2], + ASCQ = sense[3], + Overflow = (sense[4] & 0x80) == 0x80, + Descriptors = new Dictionary() }; senseDescription = GetSenseDescription(decoded.ASC, decoded.ASCQ); @@ -499,7 +505,9 @@ namespace Aaru.Decoders.SCSI return new AnotherProgressIndicationSenseDescriptor { - SenseKey = (SenseKeys)descriptor[2], ASC = descriptor[3], ASCQ = descriptor[4], + SenseKey = (SenseKeys)descriptor[2], + ASC = descriptor[3], + ASCQ = descriptor[4], Progress = (ushort)((descriptor[6] << 8) + descriptor[7]) }; } @@ -516,11 +524,13 @@ namespace Aaru.Decoders.SCSI public static AtaErrorRegistersLba48 DecodeDescriptor09(byte[] descriptor) => new AtaErrorRegistersLba48 { - Error = descriptor[3], SectorCount = (ushort)((descriptor[4] << 8) + descriptor[5]), - LbaLow = (ushort)((descriptor[6] << 8) + descriptor[7]), - LbaMid = (ushort)((descriptor[8] << 8) + descriptor[9]), - LbaHigh = (ushort)((descriptor[10] << 8) + descriptor[11]), DeviceHead = descriptor[12], - Status = descriptor[13] + Error = descriptor[3], + SectorCount = (ushort)((descriptor[4] << 8) + descriptor[5]), + LbaLow = (ushort)((descriptor[6] << 8) + descriptor[7]), + LbaMid = (ushort)((descriptor[8] << 8) + descriptor[9]), + LbaHigh = (ushort)((descriptor[10] << 8) + descriptor[11]), + DeviceHead = descriptor[12], + Status = descriptor[13] }; public static void DecodeDescriptor0B(byte[] descriptor) => throw new NotImplementedException("Check SBC-3"); diff --git a/SecureDigital/CID.cs b/SecureDigital/CID.cs index 8787e1955..68f21bde7 100644 --- a/SecureDigital/CID.cs +++ b/SecureDigital/CID.cs @@ -79,7 +79,8 @@ namespace Aaru.Decoders.SecureDigital var cid = new CID { - Manufacturer = response[0], ProductRevision = response[8], + Manufacturer = response[0], + ProductRevision = response[8], ProductSerialNumber = BitConverter.ToUInt32(response, 9), ManufacturingDate = (ushort)(((response[13] & 0x0F) << 4) + response[14]), CRC = (byte)((response[15] & 0xFE) >> 1) @@ -113,8 +114,7 @@ namespace Aaru.Decoders.SecureDigital sb.AppendFormat("\tProduct serial number: {0}", cid.ProductSerialNumber).AppendLine(); sb.AppendFormat("\tDevice manufactured month {0} of {1}", (cid.ManufacturingDate & 0xF00) >> 8, - (cid.ManufacturingDate & 0xFF) + 2000). - AppendLine(); + (cid.ManufacturingDate & 0xFF) + 2000).AppendLine(); sb.AppendFormat("\tCID CRC: 0x{0:X2}", cid.CRC).AppendLine(); diff --git a/SecureDigital/CSD.cs b/SecureDigital/CSD.cs index 1cef2c757..35777eb7f 100644 --- a/SecureDigital/CSD.cs +++ b/SecureDigital/CSD.cs @@ -100,15 +100,17 @@ namespace Aaru.Decoders.SecureDigital var csd = new CSD { - Structure = (byte)((response[0] & 0xC0) >> 6), TAAC = response[1], + Structure = (byte)((response[0] & 0xC0) >> 6), + TAAC = response[1], NSAC = response[2], Speed = response[3], Classes = (ushort)((response[4] << 4) + ((response[5] & 0xF0) >> 4)), - ReadBlockLength = (byte)(response[5] & 0x0F), ReadsPartialBlocks = (response[6] & 0x80) == 0x80, - WriteMisalignment = (response[6] & 0x40) == 0x40, - ReadMisalignment = (response[6] & 0x20) == 0x20, - DSRImplemented = (response[6] & 0x10) == 0x10, - EraseBlockEnable = (response[10] & 0x40) == 0x40, + ReadBlockLength = (byte)(response[5] & 0x0F), + ReadsPartialBlocks = (response[6] & 0x80) == 0x80, + WriteMisalignment = (response[6] & 0x40) == 0x40, + ReadMisalignment = (response[6] & 0x20) == 0x20, + DSRImplemented = (response[6] & 0x10) == 0x10, + EraseBlockEnable = (response[10] & 0x40) == 0x40, EraseSectorSize = (byte)(((response[10] & 0x3F) << 1) + ((response[11] & 0x80) >> 7)), WriteProtectGroupSize = (byte)(response[11] & 0x7F), WriteProtectGroupEnable = (response[12] & 0x80) == 0x80, @@ -120,8 +122,7 @@ namespace Aaru.Decoders.SecureDigital PermanentWriteProtect = (response[14] & 0x20) == 0x20, TemporaryWriteProtect = (response[14] & 0x10) == 0x10, FileFormat = (byte)((response[14] & 0x0C) >> 2), - CRC = - (byte)((response[15] & 0xFE) >> 1) + CRC = (byte)((response[15] & 0xFE) >> 1) }; if(csd.Structure == 0) diff --git a/SecureDigital/OCR.cs b/SecureDigital/OCR.cs index 3faabc602..0114199e5 100644 --- a/SecureDigital/OCR.cs +++ b/SecureDigital/OCR.cs @@ -62,13 +62,20 @@ namespace Aaru.Decoders.SecureDigital { public static OCR DecodeOCR(uint response) => new OCR { - PowerUp = (response & 0x80000000) == 0x80000000, CCS = (response & 0x40000000) == 0x40000000, - UHS = (response & 0x20000000) == 0x20000000, OneEight = (response & 0x01000000) == 0x01000000, - ThreeFive = (response & 0x00800000) == 0x00800000, ThreeFour = (response & 0x00400000) == 0x00400000, - ThreeThree = (response & 0x00200000) == 0x00200000, ThreeTwo = (response & 0x00100000) == 0x00100000, - ThreeOne = (response & 0x00080000) == 0x00080000, ThreeZero = (response & 0x00040000) == 0x00040000, - TwoNine = (response & 0x00020000) == 0x00020000, TwoEight = (response & 0x00010000) == 0x00010000, - TwoSeven = (response & 0x00008000) == 0x00008000, LowPower = (response & 0x00000080) == 0x00000080 + PowerUp = (response & 0x80000000) == 0x80000000, + CCS = (response & 0x40000000) == 0x40000000, + UHS = (response & 0x20000000) == 0x20000000, + OneEight = (response & 0x01000000) == 0x01000000, + ThreeFive = (response & 0x00800000) == 0x00800000, + ThreeFour = (response & 0x00400000) == 0x00400000, + ThreeThree = (response & 0x00200000) == 0x00200000, + ThreeTwo = (response & 0x00100000) == 0x00100000, + ThreeOne = (response & 0x00080000) == 0x00080000, + ThreeZero = (response & 0x00040000) == 0x00040000, + TwoNine = (response & 0x00020000) == 0x00020000, + TwoEight = (response & 0x00010000) == 0x00010000, + TwoSeven = (response & 0x00008000) == 0x00008000, + LowPower = (response & 0x00000080) == 0x00000080 }; public static OCR DecodeOCR(byte[] response) => diff --git a/SecureDigital/SCR.cs b/SecureDigital/SCR.cs index 5bd720b52..7436062d4 100644 --- a/SecureDigital/SCR.cs +++ b/SecureDigital/SCR.cs @@ -78,15 +78,17 @@ namespace Aaru.Decoders.SecureDigital var scr = new SCR { - Structure = (byte)((response[0] & 0xF0) >> 4), Spec = (byte)(response[0] & 0x0F), - DataStatusAfterErase = (response[1] & 0x80) == 0x80, + Structure = (byte)((response[0] & 0xF0) >> 4), + Spec = (byte)(response[0] & 0x0F), + DataStatusAfterErase = (response[1] & 0x80) == 0x80, Security = (byte)((response[1] & 0x70) >> 4), BusWidth = (byte)(response[1] & 0x0F), Spec3 = (response[2] & 0x80) == 0x80, ExtendedSecurity = (byte)((response[2] & 0x78) >> 3), Spec4 = (response[2] & 0x04) == 0x04, SpecX = (byte)(((response[2] & 0x03) << 2) + ((response[3] & 0xC0) >> 6)), - CommandSupport = (byte)(response[3] & 0x0F), ManufacturerReserved = new byte[4] + CommandSupport = (byte)(response[3] & 0x0F), + ManufacturerReserved = new byte[4] }; Array.Copy(response, 4, scr.ManufacturerReserved, 0, 4); diff --git a/Xbox/DMI.cs b/Xbox/DMI.cs index d890b6785..97ca0c1dd 100644 --- a/Xbox/DMI.cs +++ b/Xbox/DMI.cs @@ -90,8 +90,10 @@ namespace Aaru.Decoders.Xbox var dmi = new XboxDMI { - DataLength = (ushort)((response[0] << 8) + response[1]), Reserved1 = response[2], - Reserved2 = response[3], Version = BitConverter.ToUInt32(response, 4), + DataLength = (ushort)((response[0] << 8) + response[1]), + Reserved1 = response[2], + Reserved2 = response[3], + Version = BitConverter.ToUInt32(response, 4), Timestamp = BitConverter.ToInt64(response, 20) }; @@ -111,9 +113,12 @@ namespace Aaru.Decoders.Xbox var dmi = new Xbox360DMI { - DataLength = (ushort)((response[0] << 8) + response[1]), Reserved1 = response[2], - Reserved2 = response[3], Version = BitConverter.ToUInt32(response, 4), - Timestamp = BitConverter.ToInt64(response, 20), MediaID = new byte[16] + DataLength = (ushort)((response[0] << 8) + response[1]), + Reserved1 = response[2], + Reserved2 = response[3], + Version = BitConverter.ToUInt32(response, 4), + Timestamp = BitConverter.ToInt64(response, 20), + MediaID = new byte[16] }; Array.Copy(response, 36, dmi.MediaID, 0, 16); diff --git a/Xbox/SS.cs b/Xbox/SS.cs index 4bc807d09..4a823d4e6 100644 --- a/Xbox/SS.cs +++ b/Xbox/SS.cs @@ -52,34 +52,34 @@ namespace Aaru.Decoders.Xbox var ss = new SecuritySector { DiskCategory = (DiskCategory)((response[0] & 0xF0) >> 4), - PartVersion = (byte)(response[0] & 0x0F), - DiscSize = (DVDSize)((response[1] & 0xF0) >> 4), - MaximumRate = (MaximumRateField)(response[1] & 0x0F), - Reserved3 = - (response[2] & 0x80) == - 0x80, + PartVersion = (byte)(response[0] & 0x0F), + DiscSize = (DVDSize)((response[1] & 0xF0) >> 4), + MaximumRate = (MaximumRateField)(response[1] & 0x0F), + Reserved3 = (response[2] & 0x80) == 0x80, Layers = (byte)((response[2] & 0x60) >> 5), - TrackPath = - (response[2] & 0x08) == - 0x08, - LayerType = (LayerTypeFieldMask)(response[2] & 0x07), + TrackPath = (response[2] & 0x08) == 0x08, + LayerType = (LayerTypeFieldMask)(response[2] & 0x07), LinearDensity = (LinearDensityField)((response[3] & 0xF0) >> 4), - TrackDensity = (TrackDensityField)(response[3] & 0x0F), - DataAreaStartPSN = - (uint)((response[4] << 24) + (response[5] << 16) + (response[6] << 8) + response[7]), - DataAreaEndPSN = - (uint)((response[8] << 24) + (response[9] << 16) + (response[10] << 8) + response[11]), - Layer0EndPSN = - (uint)((response[12] << 24) + (response[13] << 16) + (response[14] << 8) + response[15]), - Unknown1 = response[27], Unknown2 = new byte[28], - Unknown3 = new byte[436], Unknown4 = new byte[4], - Unknown5 = new byte[43], ChallengeTableVersion = response[768], + TrackDensity = (TrackDensityField)(response[3] & 0x0F), + DataAreaStartPSN = (uint)((response[4] << 24) + (response[5] << 16) + (response[6] << 8) + response[7]), + DataAreaEndPSN = (uint)((response[8] << 24) + (response[9] << 16) + (response[10] << 8) + response[11]), + Layer0EndPSN = (uint)((response[12] << 24) + (response[13] << 16) + (response[14] << 8) + response[15]), + Unknown1 = response[27], + Unknown2 = new byte[28], + Unknown3 = new byte[436], + Unknown4 = new byte[4], + Unknown5 = new byte[43], + ChallengeTableVersion = response[768], NoChallengeEntries = response[769], - ChallengeEntries = new ChallengeEntry[23], Unknown6 = response[1023], - Unknown7 = new byte[48], - Unknown8 = new byte[16], Unknown9 = new byte[16], - Unknown10 = new byte[303], Unknown11 = new byte[104], - Extents = new SecuritySectorExtent[23], ExtentsCopy = new SecuritySectorExtent[23] + ChallengeEntries = new ChallengeEntry[23], + Unknown6 = response[1023], + Unknown7 = new byte[48], + Unknown8 = new byte[16], + Unknown9 = new byte[16], + Unknown10 = new byte[303], + Unknown11 = new byte[104], + Extents = new SecuritySectorExtent[23], + ExtentsCopy = new SecuritySectorExtent[23] }; Array.Copy(response, 256, ss.Unknown2, 0, 28); @@ -90,7 +90,8 @@ namespace Aaru.Decoders.Xbox for(int i = 0; i < 23; i++) ss.ChallengeEntries[i] = new ChallengeEntry { - Level = response[770 + (i * 11) + 0], ChallengeId = response[770 + (i * 11) + 1], + Level = response[770 + (i * 11) + 0], + ChallengeId = response[770 + (i * 11) + 1], ChallengeValue = (uint)((response[770 + (i * 11) + 2] << 24) + (response[770 + (i * 11) + 3] << 16) + (response[770 + (i * 11) + 4] << 8) + response[770 + (i * 11) + 5]),