From 9e64e83e1cacdc4738ffed09b99a310b4af66675 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sat, 31 Oct 2015 02:48:34 +0000 Subject: [PATCH] Added information from SSC-2. --- DiscImageChef.Decoders/ChangeLog | 5 +++++ DiscImageChef.Decoders/SCSI/Modes.cs | 31 ++++++++++++++++++++++++++-- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/DiscImageChef.Decoders/ChangeLog b/DiscImageChef.Decoders/ChangeLog index 6d2296537..3e40b9a41 100644 --- a/DiscImageChef.Decoders/ChangeLog +++ b/DiscImageChef.Decoders/ChangeLog @@ -1,3 +1,8 @@ +2015-10-31 Natalia Portillo + + * SCSI/Modes.cs: + Added information from SSC-2. + 2015-10-31 Natalia Portillo * SCSI/Modes.cs: diff --git a/DiscImageChef.Decoders/SCSI/Modes.cs b/DiscImageChef.Decoders/SCSI/Modes.cs index b317e63a4..8d88dcd8f 100644 --- a/DiscImageChef.Decoders/SCSI/Modes.cs +++ b/DiscImageChef.Decoders/SCSI/Modes.cs @@ -2875,7 +2875,7 @@ namespace DiscImageChef.Decoders.SCSI /// /// Device configuration page /// Page code 0x10 - /// 16 bytes in SCSI-2, SSC-1 + /// 16 bytes in SCSI-2, SSC-1, SSC-2 /// public struct ModePage_10_SSC { @@ -2980,6 +2980,10 @@ namespace DiscImageChef.Decoders.SCSI /// Permanent write protect /// public bool PRMWP; + + public bool BAML; + public bool BAM; + public byte RewindOnReset; } public static ModePage_10_SSC? DecodeModePage_10_SSC(byte[] pageResponse) @@ -3026,6 +3030,11 @@ namespace DiscImageChef.Decoders.SCSI decoded.PERSWP |= (pageResponse[15] & 0x02) == 0x02; decoded.PRMWP |= (pageResponse[15] & 0x01) == 0x01; + decoded.BAML |= (pageResponse[10] & 0x02) == 0x02; + decoded.BAM |= (pageResponse[10] & 0x01) == 0x01; + + decoded.RewindOnReset = (byte)((pageResponse[15] & 0x18) >> 3); + return decoded; } @@ -3140,6 +3149,24 @@ namespace DiscImageChef.Decoders.SCSI if (page.PRMWP) sb.AppendLine("\tPermanent write protect is enabled"); + if(page.BAML) + { + if (page.BAM) + sb.AppendLine("\tDrive operates using explicit address mode"); + else + sb.AppendLine("\tDrive operates using implicit address mode"); + } + + switch (page.RewindOnReset) + { + case 1: + sb.AppendLine("\tDrive shall position to beginning of default data partition on reset"); + break; + case 2: + sb.AppendLine("\tDrive shall maintain its position on reset"); + break; + } + return sb.ToString(); } #endregion Mode Page 0x10: Device configuration page @@ -4988,7 +5015,7 @@ namespace DiscImageChef.Decoders.SCSI /// /// Data compression page /// Page code 0x0F - /// 16 bytes in SSC-1 + /// 16 bytes in SSC-1, SSC-2 /// public struct ModePage_0F {