REFACTOR: Reformat code.

This commit is contained in:
2017-12-19 20:33:03 +00:00
parent 77edc7c91c
commit e6f6ace80b
704 changed files with 82627 additions and 83641 deletions

View File

@@ -86,7 +86,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -122,24 +122,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.AdaptecReadUsageCounter(out byte[] buffer, out byte[] senseBuffer, drive1, dev.Timeout, out double duration);
bool sense = dev.AdaptecReadUsageCounter(out byte[] buffer, out byte[] senseBuffer, drive1, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ/RESET USAGE COUNTER to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -169,8 +171,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ/RESET USAGE COUNTER response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -180,8 +181,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ/RESET USAGE COUNTER sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -197,10 +197,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -211,18 +209,20 @@ namespace DiscImageChef.Tests.Devices.SCSI
static void ReadDataBuffer(string devPath, Device dev)
{
start:
start:
System.Console.Clear();
bool sense = dev.AdaptecReadBuffer(out byte[] buffer, out byte[] senseBuffer, dev.Timeout, out double duration);
bool sense = dev.AdaptecReadBuffer(out byte[] buffer, out byte[] senseBuffer, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ DATA BUFFER to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -251,8 +251,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ DATA BUFFER response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -262,8 +261,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ DATA BUFFER sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -279,8 +277,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 4: goto start;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -296,7 +293,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -333,6 +330,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Error threshold?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out threshold))
@@ -342,22 +340,25 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.AdaptecSetErrorThreshold(threshold, out byte[] senseBuffer, drive1, dev.Timeout, out double duration);
bool sense =
dev.AdaptecSetErrorThreshold(threshold, out byte[] senseBuffer, drive1, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending SET ERROR THRESHOLD to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine("SET ERROR THRESHOLD decoded sense:");
DicConsole.Write("{0}", Decoders.SCSI.Sense.PrettifySense(senseBuffer));
@@ -387,17 +388,14 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("SET ERROR THRESHOLD sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 2:
goto start;
case 3:
goto parameters;
case 2: goto start;
case 3: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -413,7 +411,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -450,6 +448,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("LBA?: ");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out lba))
@@ -459,24 +458,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.AdaptecTranslate(out byte[] buffer, out byte[] senseBuffer, drive1, lba, dev.Timeout, out double duration);
bool sense = dev.AdaptecTranslate(out byte[] buffer, out byte[] senseBuffer, drive1, lba, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending TRANSLATE to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -506,8 +507,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("TRANSLATE response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -517,8 +517,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("TRANSLATE sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -534,10 +533,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -546,4 +543,4 @@ namespace DiscImageChef.Tests.Devices.SCSI
}
}
}
}
}

View File

@@ -78,7 +78,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -114,24 +114,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.ArchiveCorpRequestBlockAddress(out byte[] buffer, out byte[] senseBuffer, lba, dev.Timeout, out double duration);
bool sense = dev.ArchiveCorpRequestBlockAddress(out byte[] buffer, out byte[] senseBuffer, lba, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending REQUEST BLOCK ADDRESS to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -161,8 +163,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("REQUEST BLOCK ADDRESS response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -172,8 +173,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("REQUEST BLOCK ADDRESS sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -189,10 +189,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -208,7 +206,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -245,6 +243,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("LBA?: ");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out lba))
@@ -254,22 +253,24 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.ArchiveCorpSeekBlock(out byte[] senseBuffer, immediate, lba, dev.Timeout, out double duration);
bool sense =
dev.ArchiveCorpSeekBlock(out byte[] senseBuffer, immediate, lba, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending SEEK BLOCK to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine("SEEK BLOCK decoded sense:");
DicConsole.Write("{0}", Decoders.SCSI.Sense.PrettifySense(senseBuffer));
@@ -299,17 +300,14 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("SEEK BLOCK sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 2:
goto start;
case 3:
goto parameters;
case 2: goto start;
case 3: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -317,6 +315,5 @@ namespace DiscImageChef.Tests.Devices.SCSI
goto menu;
}
}
}
}
}

View File

@@ -74,16 +74,17 @@ namespace DiscImageChef.Tests.Devices.SCSI
static void Park(string devPath, Device dev)
{
start:
start:
System.Console.Clear();
bool sense = dev.CertancePark(out byte[] senseBuffer, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending PARK to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine("PARK decoded sense:");
DicConsole.Write("{0}", Decoders.SCSI.Sense.PrettifySense(senseBuffer));
@@ -112,15 +113,13 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("PARK sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 2:
goto start;
case 2: goto start;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -131,16 +130,17 @@ namespace DiscImageChef.Tests.Devices.SCSI
static void Unpark(string devPath, Device dev)
{
start:
start:
System.Console.Clear();
bool sense = dev.CertanceUnpark(out byte[] senseBuffer, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending UNPARK to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine("UNPARK decoded sense:");
DicConsole.Write("{0}", Decoders.SCSI.Sense.PrettifySense(senseBuffer));
@@ -169,15 +169,13 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("UNPARK sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 2:
goto start;
case 2: goto start;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -186,4 +184,4 @@ namespace DiscImageChef.Tests.Devices.SCSI
}
}
}
}
}

View File

@@ -77,7 +77,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -113,8 +113,11 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.WriteLine("Display mode");
DicConsole.WriteLine("Available values: {0} {1} {2} {3} {4}", FujitsuDisplayModes.Cancel, FujitsuDisplayModes.Cart, FujitsuDisplayModes.Half, FujitsuDisplayModes.Idle, FujitsuDisplayModes.Ready);
DicConsole.WriteLine("Available values: {0} {1} {2} {3} {4}", FujitsuDisplayModes.Cancel,
FujitsuDisplayModes.Cart, FujitsuDisplayModes.Half,
FujitsuDisplayModes.Idle, FujitsuDisplayModes.Ready);
DicConsole.Write("Choose?: ");
strDev = System.Console.ReadLine();
if(!System.Enum.TryParse(strDev, true, out mode))
@@ -124,26 +127,28 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("First display half (will be cut to 7-bit ASCII, 8 chars?: ");
firstHalf = System.Console.ReadLine();
DicConsole.Write("Second display half (will be cut to 7-bit ASCII, 8 chars?: ");
secondHalf = System.Console.ReadLine();
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.FujitsuDisplay(out byte[] senseBuffer, flash, mode, firstHalf, secondHalf, dev.Timeout, out double duration);
bool sense = dev.FujitsuDisplay(out byte[] senseBuffer, flash, mode, firstHalf, secondHalf, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending DISPLAY to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine("DISPLAY decoded sense:");
DicConsole.Write("{0}", Decoders.SCSI.Sense.PrettifySense(senseBuffer));
@@ -173,17 +178,14 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("DISPLAY sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 2:
goto start;
case 3:
goto parameters;
case 2: goto start;
case 3: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -192,4 +194,4 @@ namespace DiscImageChef.Tests.Devices.SCSI
}
}
}
}
}

View File

@@ -75,7 +75,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -112,6 +112,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("LBA?: ");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out lba))
@@ -121,24 +122,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.HlDtStReadRawDvd(out byte[] buffer, out byte[] senseBuffer, lba, count, dev.Timeout, out double duration);
bool sense = dev.HlDtStReadRawDvd(out byte[] buffer, out byte[] senseBuffer, lba, count, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ DVD (RAW) to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -168,8 +171,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ DVD (RAW) response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -179,8 +181,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ DVD (RAW) sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -196,10 +197,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -208,4 +207,4 @@ namespace DiscImageChef.Tests.Devices.SCSI
}
}
}
}
}

View File

@@ -79,7 +79,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -88,8 +88,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
DicConsole.WriteLine("{0} Block Address: {1}", physical ? "Physical" : "Logical", address);
DicConsole.WriteLine("Relative?: {0}", relative);
DicConsole.WriteLine("Will transfer {0} {1}", length, sectorCount ? "sectors" : "bytes");
if(sectorCount)
DicConsole.WriteLine("Expected sector size: {0} bytes", bps);
if(sectorCount) DicConsole.WriteLine("Expected sector size: {0} bytes", bps);
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
DicConsole.WriteLine("1.- Change parameters.");
@@ -119,6 +118,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Relative address?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out relative))
@@ -128,6 +128,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("{0} Block Address?: ", physical ? "Physical" : "Logical");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out address))
@@ -137,6 +138,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Transfer sectors?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out sectorCount))
@@ -146,6 +148,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("How many {0} to transfer?: ", sectorCount ? "sectors" : "bytes");
strDev = System.Console.ReadLine();
if(!ushort.TryParse(strDev, out length))
@@ -155,6 +158,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
if(sectorCount)
{
DicConsole.Write("How many bytes to expect per sector?");
@@ -167,24 +171,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
continue;
}
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.HPReadLong(out byte[] buffer, out byte[] senseBuffer, relative, address, length, bps, physical, sectorCount, dev.Timeout, out double duration);
bool sense = dev.HPReadLong(out byte[] buffer, out byte[] senseBuffer, relative, address, length, bps,
physical, sectorCount, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ LONG to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -214,8 +220,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ LONG response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -225,8 +230,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ LONG sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -242,10 +246,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -254,4 +256,4 @@ namespace DiscImageChef.Tests.Devices.SCSI
}
}
}
}
}

View File

@@ -86,7 +86,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -122,24 +122,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.KreonExtractSS(out byte[] buffer, out byte[] senseBuffer, dev.Timeout, out double duration, requestNumber);
bool sense = dev.KreonExtractSS(out byte[] buffer, out byte[] senseBuffer, dev.Timeout, out double duration,
requestNumber);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending EXTRACT SS to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -169,8 +171,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("EXTRACT SS response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -180,8 +181,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("EXTRACT SS sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -197,10 +197,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -211,16 +209,18 @@ namespace DiscImageChef.Tests.Devices.SCSI
static void GetFeatureList(string devPath, Device dev)
{
start:
start:
System.Console.Clear();
bool sense = dev.KreonGetFeatureList(out byte[] senseBuffer, out KreonFeatures features, dev.Timeout, out double duration);
bool sense = dev.KreonGetFeatureList(out byte[] senseBuffer, out KreonFeatures features, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending GET FEATURE LIST to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine("Features: {0}.", features);
DicConsole.WriteLine("GET FEATURE LIST decoded sense:");
@@ -250,15 +250,13 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("GET FEATURE LIST sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 2:
goto start;
case 2: goto start;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -273,7 +271,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -301,7 +299,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
return;
case 1:
DicConsole.WriteLine("Lock state");
DicConsole.WriteLine("Available values: {0} {1} {2}", KreonLockStates.Locked, KreonLockStates.Wxripper, KreonLockStates.Xtreme);
DicConsole.WriteLine("Available values: {0} {1} {2}", KreonLockStates.Locked,
KreonLockStates.Wxripper, KreonLockStates.Xtreme);
DicConsole.Write("Choose?: ");
strDev = System.Console.ReadLine();
if(!System.Enum.TryParse(strDev, true, out state))
@@ -311,17 +310,17 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.KreonSetLockState(out byte[] senseBuffer, state, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending SET LOCK STATE to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
@@ -349,10 +348,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
case 0:
DicConsole.WriteLine("Returning to Kreon vendor commands menu...");
return;
case 1:
goto start;
case 2:
goto parameters;
case 1: goto start;
case 2: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -363,16 +360,17 @@ namespace DiscImageChef.Tests.Devices.SCSI
static void Unlock(string devPath, Device dev)
{
start:
start:
System.Console.Clear();
bool sense = dev.KreonDeprecatedUnlock(out byte[] senseBuffer, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending UNLOCK to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine("UNLOCK decoded sense:");
DicConsole.Write("{0}", Decoders.SCSI.Sense.PrettifySense(senseBuffer));
@@ -401,15 +399,13 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("UNLOCK sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 2:
goto start;
case 2: goto start;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -418,4 +414,4 @@ namespace DiscImageChef.Tests.Devices.SCSI
}
}
}
}
}

View File

@@ -103,7 +103,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -132,7 +132,9 @@ namespace DiscImageChef.Tests.Devices.SCSI
return;
case 1:
DicConsole.WriteLine("RT");
DicConsole.WriteLine("Available values: {0} {1} {2} {3}", MmcGetConfigurationRt.All, MmcGetConfigurationRt.Current, MmcGetConfigurationRt.Reserved, MmcGetConfigurationRt.Single);
DicConsole.WriteLine("Available values: {0} {1} {2} {3}", MmcGetConfigurationRt.All,
MmcGetConfigurationRt.Current, MmcGetConfigurationRt.Reserved,
MmcGetConfigurationRt.Single);
DicConsole.Write("Choose?: ");
strDev = System.Console.ReadLine();
if(!System.Enum.TryParse(strDev, true, out rt))
@@ -142,6 +144,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Feature number");
strDev = System.Console.ReadLine();
if(!ushort.TryParse(strDev, out startingFeatureNumber))
@@ -151,24 +154,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.GetConfiguration(out byte[] buffer, out byte[] senseBuffer, startingFeatureNumber, rt, dev.Timeout, out double duration);
bool sense = dev.GetConfiguration(out byte[] buffer, out byte[] senseBuffer, startingFeatureNumber, rt,
dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending GET CONFIGURATION to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -199,8 +204,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("GET CONFIGURATION buffer:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -463,6 +467,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
}
}
}
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -472,8 +477,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("GET CONFIGURATION sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -483,17 +487,14 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("GET CONFIGURATION decoded sense:");
if(senseBuffer != null)
DicConsole.Write("{0}", Decoders.SCSI.Sense.PrettifySense(senseBuffer));
if(senseBuffer != null) DicConsole.Write("{0}", Decoders.SCSI.Sense.PrettifySense(senseBuffer));
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 5:
goto start;
case 6:
goto parameters;
case 5: goto start;
case 6: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -509,7 +510,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -546,6 +547,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Persistent value?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out persistent))
@@ -555,22 +557,24 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.PreventAllowMediumRemoval(out byte[] senseBuffer, persistent, prevent, dev.Timeout, out double duration);
bool sense = dev.PreventAllowMediumRemoval(out byte[] senseBuffer, persistent, prevent, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending PREVENT ALLOW MEDIUM REMOVAL to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine("PREVENT ALLOW MEDIUM REMOVAL decoded sense:");
DicConsole.Write("{0}", Decoders.SCSI.Sense.PrettifySense(senseBuffer));
@@ -600,17 +604,14 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("PREVENT ALLOW MEDIUM REMOVAL sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 2:
goto start;
case 3:
goto parameters;
case 2: goto start;
case 3: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -636,7 +637,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -683,6 +684,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("{0}?: ", relative ? "Address" : "LBA");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out address))
@@ -692,6 +694,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("How many sectors to transfer?: ");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out length))
@@ -701,8 +704,11 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.WriteLine("Sector type");
DicConsole.WriteLine("Available values: {0} {1} {2} {3} {4} {5}", MmcSectorTypes.AllTypes, MmcSectorTypes.CDDA, MmcSectorTypes.Mode1, MmcSectorTypes.Mode2, MmcSectorTypes.Mode2Form1, MmcSectorTypes.Mode2Form2);
DicConsole.WriteLine("Available values: {0} {1} {2} {3} {4} {5}", MmcSectorTypes.AllTypes,
MmcSectorTypes.CDDA, MmcSectorTypes.Mode1, MmcSectorTypes.Mode2,
MmcSectorTypes.Mode2Form1, MmcSectorTypes.Mode2Form2);
DicConsole.Write("Choose?: ");
strDev = System.Console.ReadLine();
if(!System.Enum.TryParse(strDev, true, out sectorType))
@@ -712,6 +718,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Process audio?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out dap))
@@ -721,6 +728,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Retrieve sync bytes?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out sync))
@@ -730,8 +738,11 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.WriteLine("Header mode");
DicConsole.WriteLine("Available values: {0} {1} {2} {3}", MmcHeaderCodes.None, MmcHeaderCodes.HeaderOnly, MmcHeaderCodes.SubHeaderOnly, MmcHeaderCodes.AllHeaders);
DicConsole.WriteLine("Available values: {0} {1} {2} {3}", MmcHeaderCodes.None,
MmcHeaderCodes.HeaderOnly, MmcHeaderCodes.SubHeaderOnly,
MmcHeaderCodes.AllHeaders);
DicConsole.Write("Choose?: ");
strDev = System.Console.ReadLine();
if(!System.Enum.TryParse(strDev, true, out header))
@@ -741,6 +752,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Retrieve user data?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out user))
@@ -750,6 +762,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Retrieve EDC/ECC?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out edc))
@@ -759,8 +772,10 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.WriteLine("C2 mode");
DicConsole.WriteLine("Available values: {0} {1} {2}", MmcErrorField.None, MmcErrorField.C2Pointers, MmcErrorField.C2PointersAndBlock);
DicConsole.WriteLine("Available values: {0} {1} {2}", MmcErrorField.None,
MmcErrorField.C2Pointers, MmcErrorField.C2PointersAndBlock);
DicConsole.Write("Choose?: ");
strDev = System.Console.ReadLine();
if(!System.Enum.TryParse(strDev, true, out c2))
@@ -770,8 +785,10 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.WriteLine("Subchannel mode");
DicConsole.WriteLine("Available values: {0} {1} {2} {3}", MmcSubchannel.None, MmcSubchannel.Raw, MmcSubchannel.Q16, MmcSubchannel.RW);
DicConsole.WriteLine("Available values: {0} {1} {2} {3}", MmcSubchannel.None, MmcSubchannel.Raw,
MmcSubchannel.Q16, MmcSubchannel.RW);
DicConsole.Write("Choose?: ");
strDev = System.Console.ReadLine();
if(!System.Enum.TryParse(strDev, true, out subchan))
@@ -781,6 +798,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Expected block size?: ");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out blockSize))
@@ -790,24 +808,27 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.ReadCd(out byte[] buffer, out byte[] senseBuffer, address, blockSize, length, sectorType, dap, relative, sync, header, user, edc, c2, subchan, dev.Timeout, out double duration);
bool sense = dev.ReadCd(out byte[] buffer, out byte[] senseBuffer, address, blockSize, length, sectorType,
dap, relative, sync, header, user, edc, c2, subchan, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ CD to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -837,8 +858,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ CD response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -848,8 +868,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ CD sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -865,10 +884,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -897,7 +914,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -943,6 +960,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Start second?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out startSecond))
@@ -952,6 +970,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Start frame?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out startFrame))
@@ -961,6 +980,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("End minute?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out endMinute))
@@ -970,6 +990,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("End second?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out endMinute))
@@ -979,6 +1000,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("End frame?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out endFrame))
@@ -988,8 +1010,11 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.WriteLine("Sector type");
DicConsole.WriteLine("Available values: {0} {1} {2} {3} {4} {5}", MmcSectorTypes.AllTypes, MmcSectorTypes.CDDA, MmcSectorTypes.Mode1, MmcSectorTypes.Mode2, MmcSectorTypes.Mode2Form1, MmcSectorTypes.Mode2Form2);
DicConsole.WriteLine("Available values: {0} {1} {2} {3} {4} {5}", MmcSectorTypes.AllTypes,
MmcSectorTypes.CDDA, MmcSectorTypes.Mode1, MmcSectorTypes.Mode2,
MmcSectorTypes.Mode2Form1, MmcSectorTypes.Mode2Form2);
DicConsole.Write("Choose?: ");
strDev = System.Console.ReadLine();
if(!System.Enum.TryParse(strDev, true, out sectorType))
@@ -999,6 +1024,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Process audio?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out dap))
@@ -1008,6 +1034,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Retrieve sync bytes?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out sync))
@@ -1017,8 +1044,11 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.WriteLine("Header mode");
DicConsole.WriteLine("Available values: {0} {1} {2} {3}", MmcHeaderCodes.None, MmcHeaderCodes.HeaderOnly, MmcHeaderCodes.SubHeaderOnly, MmcHeaderCodes.AllHeaders);
DicConsole.WriteLine("Available values: {0} {1} {2} {3}", MmcHeaderCodes.None,
MmcHeaderCodes.HeaderOnly, MmcHeaderCodes.SubHeaderOnly,
MmcHeaderCodes.AllHeaders);
DicConsole.Write("Choose?: ");
strDev = System.Console.ReadLine();
if(!System.Enum.TryParse(strDev, true, out header))
@@ -1028,6 +1058,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Retrieve user data?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out user))
@@ -1037,6 +1068,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Retrieve EDC/ECC?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out edc))
@@ -1046,8 +1078,10 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.WriteLine("C2 mode");
DicConsole.WriteLine("Available values: {0} {1} {2}", MmcErrorField.None, MmcErrorField.C2Pointers, MmcErrorField.C2PointersAndBlock);
DicConsole.WriteLine("Available values: {0} {1} {2}", MmcErrorField.None,
MmcErrorField.C2Pointers, MmcErrorField.C2PointersAndBlock);
DicConsole.Write("Choose?: ");
strDev = System.Console.ReadLine();
if(!System.Enum.TryParse(strDev, true, out c2))
@@ -1057,8 +1091,10 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.WriteLine("Subchannel mode");
DicConsole.WriteLine("Available values: {0} {1} {2} {3}", MmcSubchannel.None, MmcSubchannel.Raw, MmcSubchannel.Q16, MmcSubchannel.RW);
DicConsole.WriteLine("Available values: {0} {1} {2} {3}", MmcSubchannel.None, MmcSubchannel.Raw,
MmcSubchannel.Q16, MmcSubchannel.RW);
DicConsole.Write("Choose?: ");
strDev = System.Console.ReadLine();
if(!System.Enum.TryParse(strDev, true, out subchan))
@@ -1068,6 +1104,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Expected block size?: ");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out blockSize))
@@ -1077,26 +1114,29 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
uint startMsf = (uint)((startMinute << 16) + (startSecond << 8) + startFrame);
uint endMsf = (uint)((startMinute << 16) + (startSecond << 8) + startFrame);
System.Console.Clear();
bool sense = dev.ReadCdMsf(out byte[] buffer, out byte[] senseBuffer, startMsf, endMsf, blockSize, sectorType, dap, sync, header, user, edc, c2, subchan, dev.Timeout, out double duration);
bool sense = dev.ReadCdMsf(out byte[] buffer, out byte[] senseBuffer, startMsf, endMsf, blockSize,
sectorType, dap, sync, header, user, edc, c2, subchan, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ CD MSF to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -1126,8 +1166,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ CD MSF response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1137,8 +1176,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ CD MSF sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1154,10 +1192,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -1172,7 +1208,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -1200,7 +1236,10 @@ namespace DiscImageChef.Tests.Devices.SCSI
return;
case 1:
DicConsole.WriteLine("Information type");
DicConsole.WriteLine("Available values: {0} {1} {2}", MmcDiscInformationDataTypes.DiscInformation, MmcDiscInformationDataTypes.TrackResources, MmcDiscInformationDataTypes.POWResources);
DicConsole.WriteLine("Available values: {0} {1} {2}",
MmcDiscInformationDataTypes.DiscInformation,
MmcDiscInformationDataTypes.TrackResources,
MmcDiscInformationDataTypes.POWResources);
DicConsole.Write("Choose?: ");
strDev = System.Console.ReadLine();
if(!System.Enum.TryParse(strDev, true, out info))
@@ -1210,24 +1249,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.ReadDiscInformation(out byte[] buffer, out byte[] senseBuffer, info, dev.Timeout, out double duration);
bool sense = dev.ReadDiscInformation(out byte[] buffer, out byte[] senseBuffer, info, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ DISC INFORMATION to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -1258,8 +1299,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ DISC INFORMATION response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1279,8 +1319,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ DISC INFORMATION sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1296,10 +1335,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 5:
goto start;
case 6:
goto parameters;
case 5: goto start;
case 6: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -1318,7 +1355,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -1350,7 +1387,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
return;
case 1:
DicConsole.WriteLine("Media type");
DicConsole.WriteLine("Available values: {0} {1}", MmcDiscStructureMediaType.DVD, MmcDiscStructureMediaType.BD);
DicConsole.WriteLine("Available values: {0} {1}", MmcDiscStructureMediaType.DVD,
MmcDiscStructureMediaType.BD);
DicConsole.Write("Choose?: ");
strDev = System.Console.ReadLine();
if(!System.Enum.TryParse(strDev, true, out mediaType))
@@ -1360,26 +1398,56 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.WriteLine("Format");
DicConsole.WriteLine("Available values:");
if(mediaType == MmcDiscStructureMediaType.DVD)
{
DicConsole.WriteLine("\t{0} {1} {2} {3}", MmcDiscStructureFormat.PhysicalInformation, MmcDiscStructureFormat.CopyrightInformation, MmcDiscStructureFormat.DiscKey, MmcDiscStructureFormat.BurstCuttingArea);
DicConsole.WriteLine("\t{0} {1} {2} {3}", MmcDiscStructureFormat.DiscManufacturingInformation, MmcDiscStructureFormat.SectorCopyrightInformation, MmcDiscStructureFormat.MediaIdentifier, MmcDiscStructureFormat.MediaKeyBlock);
DicConsole.WriteLine("\t{0} {1} {2} {3}", MmcDiscStructureFormat.DVDRAM_DDS, MmcDiscStructureFormat.DVDRAM_MediumStatus, MmcDiscStructureFormat.DVDRAM_SpareAreaInformation, MmcDiscStructureFormat.DVDRAM_RecordingType);
DicConsole.WriteLine("\t{0} {1} {2} {3}", MmcDiscStructureFormat.LastBorderOutRMD, MmcDiscStructureFormat.SpecifiedRMD, MmcDiscStructureFormat.PreRecordedInfo, MmcDiscStructureFormat.DVDR_MediaIdentifier);
DicConsole.WriteLine("\t{0} {1} {2} {3}", MmcDiscStructureFormat.DVDR_PhysicalInformation, MmcDiscStructureFormat.ADIP, MmcDiscStructureFormat.HDDVD_CopyrightInformation, MmcDiscStructureFormat.DVD_AACS);
DicConsole.WriteLine("\t{0} {1} {2} {3}", MmcDiscStructureFormat.HDDVDR_MediumStatus, MmcDiscStructureFormat.HDDVDR_LastRMD, MmcDiscStructureFormat.DVDR_LayerCapacity, MmcDiscStructureFormat.MiddleZoneStart);
DicConsole.WriteLine("\t{0} {1} {2} {3}", MmcDiscStructureFormat.JumpIntervalSize, MmcDiscStructureFormat.ManualLayerJumpStartLBA, MmcDiscStructureFormat.RemapAnchorPoint, MmcDiscStructureFormat.DCB);
DicConsole.WriteLine("\t{0} {1} {2} {3}", MmcDiscStructureFormat.PhysicalInformation,
MmcDiscStructureFormat.CopyrightInformation,
MmcDiscStructureFormat.DiscKey,
MmcDiscStructureFormat.BurstCuttingArea);
DicConsole.WriteLine("\t{0} {1} {2} {3}",
MmcDiscStructureFormat.DiscManufacturingInformation,
MmcDiscStructureFormat.SectorCopyrightInformation,
MmcDiscStructureFormat.MediaIdentifier,
MmcDiscStructureFormat.MediaKeyBlock);
DicConsole.WriteLine("\t{0} {1} {2} {3}", MmcDiscStructureFormat.DVDRAM_DDS,
MmcDiscStructureFormat.DVDRAM_MediumStatus,
MmcDiscStructureFormat.DVDRAM_SpareAreaInformation,
MmcDiscStructureFormat.DVDRAM_RecordingType);
DicConsole.WriteLine("\t{0} {1} {2} {3}", MmcDiscStructureFormat.LastBorderOutRMD,
MmcDiscStructureFormat.SpecifiedRMD,
MmcDiscStructureFormat.PreRecordedInfo,
MmcDiscStructureFormat.DVDR_MediaIdentifier);
DicConsole.WriteLine("\t{0} {1} {2} {3}", MmcDiscStructureFormat.DVDR_PhysicalInformation,
MmcDiscStructureFormat.ADIP,
MmcDiscStructureFormat.HDDVD_CopyrightInformation,
MmcDiscStructureFormat.DVD_AACS);
DicConsole.WriteLine("\t{0} {1} {2} {3}", MmcDiscStructureFormat.HDDVDR_MediumStatus,
MmcDiscStructureFormat.HDDVDR_LastRMD,
MmcDiscStructureFormat.DVDR_LayerCapacity,
MmcDiscStructureFormat.MiddleZoneStart);
DicConsole.WriteLine("\t{0} {1} {2} {3}", MmcDiscStructureFormat.JumpIntervalSize,
MmcDiscStructureFormat.ManualLayerJumpStartLBA,
MmcDiscStructureFormat.RemapAnchorPoint, MmcDiscStructureFormat.DCB);
}
if(mediaType == MmcDiscStructureMediaType.BD)
{
DicConsole.WriteLine("\t{0} {1} {2} {3}", MmcDiscStructureFormat.DiscInformation, MmcDiscStructureFormat.BD_BurstCuttingArea, MmcDiscStructureFormat.BD_DDS, MmcDiscStructureFormat.CartridgeStatus);
DicConsole.WriteLine("\t{0} {1} {2}", MmcDiscStructureFormat.BD_SpareAreaInformation, MmcDiscStructureFormat.RawDFL, MmcDiscStructureFormat.PAC);
DicConsole.WriteLine("\t{0} {1} {2} {3}", MmcDiscStructureFormat.DiscInformation,
MmcDiscStructureFormat.BD_BurstCuttingArea,
MmcDiscStructureFormat.BD_DDS, MmcDiscStructureFormat.CartridgeStatus);
DicConsole.WriteLine("\t{0} {1} {2}", MmcDiscStructureFormat.BD_SpareAreaInformation,
MmcDiscStructureFormat.RawDFL, MmcDiscStructureFormat.PAC);
}
DicConsole.WriteLine("\t{0} {1} {2} {3}", MmcDiscStructureFormat.AACSVolId, MmcDiscStructureFormat.AACSMediaSerial, MmcDiscStructureFormat.AACSMediaId, MmcDiscStructureFormat.AACSMKB);
DicConsole.WriteLine("\t{0} {1} {2} {3}", MmcDiscStructureFormat.AACSDataKeys, MmcDiscStructureFormat.AACSLBAExtents, MmcDiscStructureFormat.AACSMKBCPRM, MmcDiscStructureFormat.RecognizedFormatLayers);
DicConsole.WriteLine("\t{0} {1}", MmcDiscStructureFormat.WriteProtectionStatus, MmcDiscStructureFormat.CapabilityList);
DicConsole.WriteLine("\t{0} {1} {2} {3}", MmcDiscStructureFormat.AACSVolId,
MmcDiscStructureFormat.AACSMediaSerial, MmcDiscStructureFormat.AACSMediaId,
MmcDiscStructureFormat.AACSMKB);
DicConsole.WriteLine("\t{0} {1} {2} {3}", MmcDiscStructureFormat.AACSDataKeys,
MmcDiscStructureFormat.AACSLBAExtents, MmcDiscStructureFormat.AACSMKBCPRM,
MmcDiscStructureFormat.RecognizedFormatLayers);
DicConsole.WriteLine("\t{0} {1}", MmcDiscStructureFormat.WriteProtectionStatus,
MmcDiscStructureFormat.CapabilityList);
DicConsole.Write("Choose?: ");
strDev = System.Console.ReadLine();
if(!System.Enum.TryParse(strDev, true, out format))
@@ -1389,6 +1457,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Address?: ");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out address))
@@ -1398,6 +1467,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Layer?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out layer))
@@ -1407,6 +1477,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("AGID?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out agid))
@@ -1416,24 +1487,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.ReadDiscStructure(out byte[] buffer, out byte[] senseBuffer, mediaType, address, layer, format, agid, dev.Timeout, out double duration);
bool sense = dev.ReadDiscStructure(out byte[] buffer, out byte[] senseBuffer, mediaType, address, layer,
format, agid, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ DISC STRUCTURE to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -1464,8 +1537,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ DISC STRUCTURE response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1485,8 +1557,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ DISC STRUCTURE sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1502,10 +1573,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 5:
goto start;
case 6:
goto parameters;
case 5: goto start;
case 6: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -1522,7 +1591,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -1560,6 +1629,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Format?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out format))
@@ -1569,6 +1639,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Session?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out session))
@@ -1578,24 +1649,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.ReadTocPmaAtip(out byte[] buffer, out byte[] senseBuffer, msf, format, session, dev.Timeout, out double duration);
bool sense = dev.ReadTocPmaAtip(out byte[] buffer, out byte[] senseBuffer, msf, format, session,
dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ TOC/PMA/ATIP to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -1626,8 +1699,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ TOC/PMA/ATIP buffer:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1667,6 +1739,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
break;
}
}
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1676,8 +1749,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ TOC/PMA/ATIP sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1687,17 +1759,14 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ TOC/PMA/ATIP decoded sense:");
if(senseBuffer != null)
DicConsole.Write("{0}", Decoders.SCSI.Sense.PrettifySense(senseBuffer));
if(senseBuffer != null) DicConsole.Write("{0}", Decoders.SCSI.Sense.PrettifySense(senseBuffer));
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 5:
goto start;
case 6:
goto parameters;
case 5: goto start;
case 6: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -1717,7 +1786,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -1758,6 +1827,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Change format layer?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out changeFormatLayer))
@@ -1767,6 +1837,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Eject?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out loadEject))
@@ -1776,6 +1847,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Start?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out start))
@@ -1785,6 +1857,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Format layer?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out formatLayer))
@@ -1794,6 +1867,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Power conditions?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out powerConditions))
@@ -1803,22 +1877,24 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.StartStopUnit(out byte[] senseBuffer, immediate, formatLayer, powerConditions, changeFormatLayer, loadEject, start, dev.Timeout, out double duration);
bool sense = dev.StartStopUnit(out byte[] senseBuffer, immediate, formatLayer, powerConditions,
changeFormatLayer, loadEject, start, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending START STOP UNIT to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine("START STOP UNIT decoded sense:");
DicConsole.Write("{0}", Decoders.SCSI.Sense.PrettifySense(senseBuffer));
@@ -1848,17 +1924,14 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("START STOP UNIT sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 2:
goto start;
case 3:
goto parameters;
case 2: goto start;
case 3: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -1867,4 +1940,4 @@ namespace DiscImageChef.Tests.Devices.SCSI
}
}
}
}
}

View File

@@ -75,7 +75,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -112,6 +112,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("How many sectors to transfer?: ");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out length))
@@ -121,24 +122,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.NecReadCdDa(out byte[] buffer, out byte[] senseBuffer, address, length, dev.Timeout, out double duration);
bool sense = dev.NecReadCdDa(out byte[] buffer, out byte[] senseBuffer, address, length, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ CD-DA to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -168,8 +171,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ CD-DA response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -179,8 +181,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ CD-DA sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -196,10 +197,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -208,4 +207,4 @@ namespace DiscImageChef.Tests.Devices.SCSI
}
}
}
}
}

View File

@@ -85,7 +85,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -124,6 +124,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("How many sectors to transfer?: ");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out length))
@@ -133,8 +134,10 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.WriteLine("Subchannel mode");
DicConsole.WriteLine("Available values: {0} {1} {2} {3}", PioneerSubchannel.None, PioneerSubchannel.Q16, PioneerSubchannel.All, PioneerSubchannel.Only);
DicConsole.WriteLine("Available values: {0} {1} {2} {3}", PioneerSubchannel.None,
PioneerSubchannel.Q16, PioneerSubchannel.All, PioneerSubchannel.Only);
DicConsole.Write("Choose?: ");
strDev = System.Console.ReadLine();
if(!System.Enum.TryParse(strDev, true, out subchan))
@@ -144,6 +147,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
switch(subchan)
{
case PioneerSubchannel.Q16:
@@ -159,24 +163,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
blockSize = 2352;
break;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.PioneerReadCdDa(out byte[] buffer, out byte[] senseBuffer, address, blockSize, length, subchan, dev.Timeout, out double duration);
bool sense = dev.PioneerReadCdDa(out byte[] buffer, out byte[] senseBuffer, address, blockSize, length,
subchan, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ CD-DA to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -206,8 +212,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ CD-DA response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -217,8 +222,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ CD-DA sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -234,10 +238,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -259,7 +261,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -298,6 +300,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Start second?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out startSecond))
@@ -307,6 +310,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Start frame?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out startFrame))
@@ -316,6 +320,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("End minute?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out endMinute))
@@ -325,6 +330,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("End second?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out endMinute))
@@ -334,6 +340,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("End frame?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out endFrame))
@@ -343,8 +350,10 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.WriteLine("Subchannel mode");
DicConsole.WriteLine("Available values: {0} {1} {2} {3}", PioneerSubchannel.None, PioneerSubchannel.Q16, PioneerSubchannel.All, PioneerSubchannel.Only);
DicConsole.WriteLine("Available values: {0} {1} {2} {3}", PioneerSubchannel.None,
PioneerSubchannel.Q16, PioneerSubchannel.All, PioneerSubchannel.Only);
DicConsole.Write("Choose?: ");
strDev = System.Console.ReadLine();
if(!System.Enum.TryParse(strDev, true, out subchan))
@@ -354,6 +363,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
switch(subchan)
{
case PioneerSubchannel.Q16:
@@ -369,26 +379,28 @@ namespace DiscImageChef.Tests.Devices.SCSI
blockSize = 2352;
break;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
uint startMsf = (uint)((startMinute << 16) + (startSecond << 8) + startFrame);
uint endMsf = (uint)((startMinute << 16) + (startSecond << 8) + startFrame);
System.Console.Clear();
bool sense = dev.PioneerReadCdDaMsf(out byte[] buffer, out byte[] senseBuffer, startMsf, endMsf, blockSize, subchan, dev.Timeout, out double duration);
bool sense = dev.PioneerReadCdDaMsf(out byte[] buffer, out byte[] senseBuffer, startMsf, endMsf, blockSize,
subchan, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ CD-DA MSF to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -418,8 +430,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ CD-DA MSF response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -429,8 +440,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ CD-DA MSF sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -446,10 +456,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -467,7 +475,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -506,6 +514,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("How many sectors to transfer?: ");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out length))
@@ -515,6 +524,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Include error flags?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out errorFlags))
@@ -524,6 +534,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Read whole sector?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out wholeSector))
@@ -533,24 +544,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.PioneerReadCdXa(out byte[] buffer, out byte[] senseBuffer, address, length, errorFlags, wholeSector, dev.Timeout, out double duration);
bool sense = dev.PioneerReadCdXa(out byte[] buffer, out byte[] senseBuffer, address, length, errorFlags,
wholeSector, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ CD-XA to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -580,8 +593,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ CD-XA response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -591,8 +603,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ CD-XA sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -608,10 +619,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -619,6 +628,5 @@ namespace DiscImageChef.Tests.Devices.SCSI
goto menu;
}
}
}
}
}

View File

@@ -83,7 +83,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -92,8 +92,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
DicConsole.WriteLine("{0} Block Address: {1}", physical ? "Physical" : "Logical", address);
DicConsole.WriteLine("Relative?: {0}", relative);
DicConsole.WriteLine("Will transfer {0} {1}", length, sectorCount ? "sectors" : "bytes");
if(sectorCount)
DicConsole.WriteLine("Expected sector size: {0} bytes", bps);
if(sectorCount) DicConsole.WriteLine("Expected sector size: {0} bytes", bps);
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
DicConsole.WriteLine("1.- Change parameters.");
@@ -123,6 +122,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Relative address?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out relative))
@@ -132,6 +132,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("{0} Block Address?: ", physical ? "Physical" : "Logical");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out address))
@@ -141,6 +142,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Transfer sectors?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out sectorCount))
@@ -150,6 +152,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("How many {0} to transfer?: ", sectorCount ? "sectors" : "bytes");
strDev = System.Console.ReadLine();
if(!ushort.TryParse(strDev, out length))
@@ -159,6 +162,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
if(sectorCount)
{
DicConsole.Write("How many bytes to expect per sector?");
@@ -171,24 +175,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
continue;
}
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.PlasmonReadLong(out byte[] buffer, out byte[] senseBuffer, relative, address, length, bps, physical, sectorCount, dev.Timeout, out double duration);
bool sense = dev.PlasmonReadLong(out byte[] buffer, out byte[] senseBuffer, relative, address, length, bps,
physical, sectorCount, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ LONG to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -218,8 +224,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ LONG response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -229,8 +234,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ LONG sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -246,10 +250,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -265,7 +267,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -301,6 +303,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("{0} Block Address?: ", physical ? "Physical" : "Logical");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out address))
@@ -310,24 +313,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.PlasmonReadSectorLocation(out byte[] buffer, out byte[] senseBuffer, address, physical, dev.Timeout, out double duration);
bool sense = dev.PlasmonReadSectorLocation(out byte[] buffer, out byte[] senseBuffer, address, physical,
dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ SECTOR LOCATION to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -357,8 +362,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ SECTOR LOCATION response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -368,8 +372,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ SECTOR LOCATION sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -385,10 +388,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -397,4 +398,4 @@ namespace DiscImageChef.Tests.Devices.SCSI
}
}
}
}
}

View File

@@ -126,7 +126,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -162,24 +162,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.PlextorGetBitsetting(out byte[] buffer, out byte[] senseBuffer, dl, dev.Timeout, out double duration);
bool sense = dev.PlextorGetBitsetting(out byte[] buffer, out byte[] senseBuffer, dl, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending GET BOOK BITSETTING to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -209,8 +211,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("GET BOOK BITSETTING response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -220,8 +221,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("GET BOOK BITSETTING sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -237,10 +237,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -251,18 +249,20 @@ namespace DiscImageChef.Tests.Devices.SCSI
static void GetGigaRec(string devPath, Device dev)
{
start:
start:
System.Console.Clear();
bool sense = dev.PlextorGetGigaRec(out byte[] buffer, out byte[] senseBuffer, dev.Timeout, out double duration);
bool sense = dev.PlextorGetGigaRec(out byte[] buffer, out byte[] senseBuffer, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending GET GIGAREC to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -291,8 +291,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("GET GIGAREC response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -302,8 +301,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("GET GIGAREC sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -319,8 +317,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 4: goto start;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -331,18 +328,20 @@ namespace DiscImageChef.Tests.Devices.SCSI
static void GetSecuRec(string devPath, Device dev)
{
start:
start:
System.Console.Clear();
bool sense = dev.PlextorGetSecuRec(out byte[] buffer, out byte[] senseBuffer, dev.Timeout, out double duration);
bool sense = dev.PlextorGetSecuRec(out byte[] buffer, out byte[] senseBuffer, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending GET SECUREC to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -371,8 +370,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("GET SECUREC response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -382,8 +380,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("GET SECUREC sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -399,8 +396,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 4: goto start;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -411,18 +407,20 @@ namespace DiscImageChef.Tests.Devices.SCSI
static void GetSilentMode(string devPath, Device dev)
{
start:
start:
System.Console.Clear();
bool sense = dev.PlextorGetSilentMode(out byte[] buffer, out byte[] senseBuffer, dev.Timeout, out double duration);
bool sense = dev.PlextorGetSilentMode(out byte[] buffer, out byte[] senseBuffer, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending GET SILENT MODE to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -451,8 +449,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("GET SILENT MODE response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -462,8 +459,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("GET SILENT MODE sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -479,8 +475,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 4: goto start;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -491,18 +486,20 @@ namespace DiscImageChef.Tests.Devices.SCSI
static void GetSingleSessionHideCdR(string devPath, Device dev)
{
start:
start:
System.Console.Clear();
bool sense = dev.PlextorGetHiding(out byte[] buffer, out byte[] senseBuffer, dev.Timeout, out double duration);
bool sense = dev.PlextorGetHiding(out byte[] buffer, out byte[] senseBuffer, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending GET SINGLE-SESSION / HIDE CD-R to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -531,8 +528,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("GET SINGLE-SESSION / HIDE CD-R response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -542,8 +538,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("GET SINGLE-SESSION / HIDE CD-R sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -559,8 +554,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 4: goto start;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -571,18 +565,20 @@ namespace DiscImageChef.Tests.Devices.SCSI
static void GetSpeedRead(string devPath, Device dev)
{
start:
start:
System.Console.Clear();
bool sense = dev.PlextorGetSpeedRead(out byte[] buffer, out byte[] senseBuffer, dev.Timeout, out double duration);
bool sense = dev.PlextorGetSpeedRead(out byte[] buffer, out byte[] senseBuffer, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending GET SPEEDREAD to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -611,8 +607,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("GET SPEEDREAD response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -622,8 +617,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("GET SPEEDREAD sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -639,8 +633,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 4: goto start;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -651,18 +644,21 @@ namespace DiscImageChef.Tests.Devices.SCSI
static void GetTestWriteDvdPlus(string devPath, Device dev)
{
start:
start:
System.Console.Clear();
bool sense = dev.PlextorGetTestWriteDvdPlus(out byte[] buffer, out byte[] senseBuffer, dev.Timeout, out double duration);
bool sense =
dev.PlextorGetTestWriteDvdPlus(out byte[] buffer, out byte[] senseBuffer, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending GET TEST WRITE DVD+ to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -691,8 +687,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("GET TEST WRITE DVD+ response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -702,8 +697,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("GET TEST WRITE DVD+ sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -719,8 +713,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 4: goto start;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -735,7 +728,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -771,24 +764,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.PlextorGetVariRec(out byte[] buffer, out byte[] senseBuffer, dvd, dev.Timeout, out double duration);
bool sense = dev.PlextorGetVariRec(out byte[] buffer, out byte[] senseBuffer, dvd, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending GET VARIREC to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -818,8 +813,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("GET VARIREC response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -829,8 +823,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("GET VARIREC sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -846,10 +839,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -860,18 +851,20 @@ namespace DiscImageChef.Tests.Devices.SCSI
static void PoweRecGetSpeeds(string devPath, Device dev)
{
start:
start:
System.Console.Clear();
bool sense = dev.PlextorGetPoweRec(out byte[] senseBuffer, out bool enabled, out ushort speed, dev.Timeout, out double duration);
bool sense = dev.PlextorGetPoweRec(out byte[] senseBuffer, out bool enabled, out ushort speed, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending POWEREC GET SPEEDS to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("PoweRec is {0}.", enabled ? "enabled" : "disabled");
DicConsole.WriteLine("Speed: {0}", speed);
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine("POWEREC GET SPEEDS decoded sense:");
DicConsole.Write("{0}", Decoders.SCSI.Sense.PrettifySense(senseBuffer));
@@ -900,15 +893,13 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("POWEREC GET SPEEDS sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 2:
goto start;
case 2: goto start;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -926,7 +917,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -965,6 +956,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("How many sectors to transfer?: ");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out length))
@@ -974,8 +966,11 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.WriteLine("Subchannel mode");
DicConsole.WriteLine("Available values: {0} {1} {2} {3} {4}", PlextorSubchannel.None, PlextorSubchannel.Q16, PlextorSubchannel.All, PlextorSubchannel.Pack, PlextorSubchannel.RawC2);
DicConsole.WriteLine("Available values: {0} {1} {2} {3} {4}", PlextorSubchannel.None,
PlextorSubchannel.Q16, PlextorSubchannel.All, PlextorSubchannel.Pack,
PlextorSubchannel.RawC2);
DicConsole.Write("Choose?: ");
strDev = System.Console.ReadLine();
if(!System.Enum.TryParse(strDev, true, out subchan))
@@ -985,6 +980,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
switch(subchan)
{
case PlextorSubchannel.Q16:
@@ -1001,24 +997,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
blockSize = 2352;
break;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.PlextorReadCdDa(out byte[] buffer, out byte[] senseBuffer, address, blockSize, length, subchan, dev.Timeout, out double duration);
bool sense = dev.PlextorReadCdDa(out byte[] buffer, out byte[] senseBuffer, address, blockSize, length,
subchan, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ CD-DA to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -1048,8 +1046,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ CD-DA response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1059,8 +1056,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ CD-DA sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1076,10 +1072,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -1095,7 +1089,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -1132,6 +1126,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("LBA?: ");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out lba))
@@ -1141,24 +1136,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.PlextorReadRawDvd(out byte[] buffer, out byte[] senseBuffer, lba, count, dev.Timeout, out double duration);
bool sense = dev.PlextorReadRawDvd(out byte[] buffer, out byte[] senseBuffer, lba, count, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ DVD (RAW) to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -1188,8 +1185,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ DVD (RAW) response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1199,8 +1195,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ DVD (RAW) sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1216,10 +1211,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -1230,18 +1223,20 @@ namespace DiscImageChef.Tests.Devices.SCSI
static void ReadEepromCdR(string devPath, Device dev)
{
start:
start:
System.Console.Clear();
bool sense = dev.PlextorReadEepromCDR(out byte[] buffer, out byte[] senseBuffer, dev.Timeout, out double duration);
bool sense = dev.PlextorReadEepromCDR(out byte[] buffer, out byte[] senseBuffer, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ EEPROM to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -1270,8 +1265,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ EEPROM response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1281,8 +1275,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ EEPROM sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1298,8 +1291,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 4: goto start;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -1315,7 +1307,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -1352,6 +1344,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("EEPROM block size?: ");
strDev = System.Console.ReadLine();
if(!ushort.TryParse(strDev, out blockSize))
@@ -1361,24 +1354,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.PlextorReadEepromBlock(out byte[] buffer, out byte[] senseBuffer, block, blockSize, dev.Timeout, out double duration);
bool sense = dev.PlextorReadEepromBlock(out byte[] buffer, out byte[] senseBuffer, block, blockSize,
dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ EEPROM to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -1408,8 +1403,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ EEPROM response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1419,8 +1413,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ EEPROM sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1436,10 +1429,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -1450,18 +1441,20 @@ namespace DiscImageChef.Tests.Devices.SCSI
static void ReadEeprom(string devPath, Device dev)
{
start:
start:
System.Console.Clear();
bool sense = dev.PlextorReadEeprom(out byte[] buffer, out byte[] senseBuffer, dev.Timeout, out double duration);
bool sense = dev.PlextorReadEeprom(out byte[] buffer, out byte[] senseBuffer, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ EEPROM to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -1490,8 +1483,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ EEPROM response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1501,8 +1493,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ EEPROM sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1518,8 +1509,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 4: goto start;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -1528,4 +1518,4 @@ namespace DiscImageChef.Tests.Devices.SCSI
}
}
}
}
}

View File

@@ -104,7 +104,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -142,6 +142,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
if(lba > 0x1FFFFF)
{
DicConsole.WriteLine("Max LBA is {0}, setting to {0}", 0x1FFFFF);
@@ -156,6 +157,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("How many bytes to expect per block?: ");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out blockSize))
@@ -165,24 +167,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.Read6(out byte[] buffer, out byte[] senseBuffer, lba, blockSize, count, dev.Timeout, out double duration);
bool sense = dev.Read6(out byte[] buffer, out byte[] senseBuffer, lba, blockSize, count, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ (6) to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -212,8 +216,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ (6) response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -223,8 +226,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ (6) sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -240,10 +242,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -266,7 +266,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -310,6 +310,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("{0}?: ", relative ? "Address" : "LBA");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out lba))
@@ -319,6 +320,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Blocks to read (0 for 256 blocks)?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out count))
@@ -328,6 +330,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("How many bytes to expect per block?: ");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out blockSize))
@@ -337,6 +340,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("How to check protection information?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out rdprotect))
@@ -346,6 +350,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Give lowest cache priority?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out dpo))
@@ -355,6 +360,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Force bypassing cache and reading from medium?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out fua))
@@ -364,6 +370,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Force bypassing cache and reading from non-volatile cache?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out fuaNv))
@@ -373,6 +380,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Group number?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out count))
@@ -382,24 +390,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.Read10(out byte[] buffer, out byte[] senseBuffer, rdprotect, dpo, fua, fuaNv, relative, lba, blockSize, groupNumber, count, dev.Timeout, out double duration);
bool sense = dev.Read10(out byte[] buffer, out byte[] senseBuffer, rdprotect, dpo, fua, fuaNv, relative,
lba, blockSize, groupNumber, count, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ (10) to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -429,8 +439,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ (10) response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -440,8 +449,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ (10) sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -457,10 +465,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -484,7 +490,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -529,6 +535,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("{0}?: ", relative ? "Address" : "LBA");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out lba))
@@ -538,6 +545,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Blocks to read (0 for 256 blocks)?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out count))
@@ -547,6 +555,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("How many bytes to expect per block?: ");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out blockSize))
@@ -556,6 +565,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("How to check protection information?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out rdprotect))
@@ -565,6 +575,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Give lowest cache priority?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out dpo))
@@ -574,6 +585,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Force bypassing cache and reading from medium?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out fua))
@@ -583,6 +595,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Force bypassing cache and reading from non-volatile cache?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out fuaNv))
@@ -592,6 +605,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Group number?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out count))
@@ -601,6 +615,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Use streaming?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out streaming))
@@ -610,24 +625,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.Read12(out byte[] buffer, out byte[] senseBuffer, rdprotect, dpo, fua, fuaNv, relative, lba, blockSize, groupNumber, count, streaming, dev.Timeout, out double duration);
bool sense = dev.Read12(out byte[] buffer, out byte[] senseBuffer, rdprotect, dpo, fua, fuaNv, relative,
lba, blockSize, groupNumber, count, streaming, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ (12) to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -657,8 +674,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ (12) response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -668,8 +684,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ (12) sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -685,10 +700,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -711,7 +724,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -755,6 +768,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Blocks to read (0 for 256 blocks)?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out count))
@@ -764,6 +778,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("How many bytes to expect per block?: ");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out blockSize))
@@ -773,6 +788,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("How to check protection information?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out rdprotect))
@@ -782,6 +798,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Give lowest cache priority?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out dpo))
@@ -791,6 +808,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Force bypassing cache and reading from medium?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out fua))
@@ -800,6 +818,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Force bypassing cache and reading from non-volatile cache?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out fuaNv))
@@ -809,6 +828,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Group number?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out count))
@@ -818,6 +838,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Use streaming?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out streaming))
@@ -827,24 +848,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.Read16(out byte[] buffer, out byte[] senseBuffer, rdprotect, dpo, fua, fuaNv, lba, blockSize, groupNumber, count, streaming, dev.Timeout, out double duration);
bool sense = dev.Read16(out byte[] buffer, out byte[] senseBuffer, rdprotect, dpo, fua, fuaNv, lba,
blockSize, groupNumber, count, streaming, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ (16) to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -874,8 +897,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ (16) response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -885,8 +907,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ (16) sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -902,10 +923,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -923,7 +942,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -962,6 +981,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("{0}?: ", relative ? "Address" : "LBA");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out lba))
@@ -971,6 +991,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("How many bytes to expect per block?: ");
strDev = System.Console.ReadLine();
if(!ushort.TryParse(strDev, out blockSize))
@@ -980,6 +1001,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Try to error correct block?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out correct))
@@ -989,24 +1011,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.ReadLong10(out byte[] buffer, out byte[] senseBuffer, correct, relative, lba, blockSize, dev.Timeout, out double duration);
bool sense = dev.ReadLong10(out byte[] buffer, out byte[] senseBuffer, correct, relative, lba, blockSize,
dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ LONG (10) to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -1036,8 +1060,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ LONG (10) response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1047,8 +1070,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ LONG (10) sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1064,10 +1086,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -1084,7 +1104,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -1122,6 +1142,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("How many bytes to expect per block?: ");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out blockSize))
@@ -1131,6 +1152,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Try to error correct block?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out correct))
@@ -1140,24 +1162,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.ReadLong16(out byte[] buffer, out byte[] senseBuffer, correct, lba, blockSize, dev.Timeout, out double duration);
bool sense = dev.ReadLong16(out byte[] buffer, out byte[] senseBuffer, correct, lba, blockSize, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ LONG (16) to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -1187,8 +1211,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ LONG (16) response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1198,8 +1221,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ LONG (16) sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1215,10 +1237,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -1233,7 +1253,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -1269,27 +1289,28 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
if(lba > 0x1FFFFF)
{
DicConsole.WriteLine("Max LBA is {0}, setting to {0}", 0x1FFFFF);
lba = 0x1FFFFF;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.Seek6(out byte[] senseBuffer, lba, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending SEEK (6) to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine("SEEK (6) decoded sense:");
DicConsole.Write("{0}", Decoders.SCSI.Sense.PrettifySense(senseBuffer));
@@ -1319,17 +1340,14 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("SEEK (6) sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 2:
goto start;
case 3:
goto parameters;
case 2: goto start;
case 3: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -1344,7 +1362,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -1380,22 +1398,23 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.Seek10(out byte[] senseBuffer, lba, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending SEEK (10) to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine("SEEK (6) decoded sense:");
DicConsole.Write("{0}", Decoders.SCSI.Sense.PrettifySense(senseBuffer));
@@ -1425,17 +1444,14 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("SEEK (10) sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 2:
goto start;
case 3:
goto parameters;
case 2: goto start;
case 3: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -1444,4 +1460,4 @@ namespace DiscImageChef.Tests.Devices.SCSI
}
}
}
}
}

View File

@@ -80,7 +80,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -114,7 +114,10 @@ namespace DiscImageChef.Tests.Devices.SCSI
return;
case 1:
DicConsole.WriteLine("Attribute action");
DicConsole.WriteLine("Available values: {0} {1} {2} {3} {4}", ScsiAttributeAction.Values, ScsiAttributeAction.List, ScsiAttributeAction.VolumeList, ScsiAttributeAction.PartitionList, ScsiAttributeAction.ElementList, ScsiAttributeAction.Supported);
DicConsole.WriteLine("Available values: {0} {1} {2} {3} {4}", ScsiAttributeAction.Values,
ScsiAttributeAction.List, ScsiAttributeAction.VolumeList,
ScsiAttributeAction.PartitionList, ScsiAttributeAction.ElementList,
ScsiAttributeAction.Supported);
DicConsole.Write("Choose?: ");
strDev = System.Console.ReadLine();
if(!System.Enum.TryParse(strDev, true, out action))
@@ -124,6 +127,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Element?: ");
strDev = System.Console.ReadLine();
if(!ushort.TryParse(strDev, out element))
@@ -133,6 +137,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Element type?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out elementType))
@@ -142,6 +147,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Volume?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out volume))
@@ -151,6 +157,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Partition?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out partition))
@@ -160,6 +167,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("First attribute?: ");
strDev = System.Console.ReadLine();
if(!ushort.TryParse(strDev, out firstAttribute))
@@ -169,6 +177,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Use cache?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out cache))
@@ -178,24 +187,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.ReadAttribute(out byte[] buffer, out byte[] senseBuffer, action, element, elementType, volume, partition, firstAttribute, cache, dev.Timeout, out double duration);
bool sense = dev.ReadAttribute(out byte[] buffer, out byte[] senseBuffer, action, element, elementType,
volume, partition, firstAttribute, cache, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ ATTRIBUTE to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -225,8 +236,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ ATTRIBUTE response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -236,8 +246,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ ATTRIBUTE sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -253,10 +262,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -265,4 +272,4 @@ namespace DiscImageChef.Tests.Devices.SCSI
}
}
}
}
}

View File

@@ -107,18 +107,19 @@ namespace DiscImageChef.Tests.Devices.SCSI
static void Inquiry(string devPath, Device dev)
{
start:
start:
System.Console.Clear();
bool sense = dev.ScsiInquiry(out byte[] buffer, out byte[] senseBuffer, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending INQUIRY to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -148,8 +149,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("INQUIRY response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -159,8 +159,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("INQUIRY decoded response:");
if(buffer != null)
DicConsole.WriteLine("{0}", Decoders.SCSI.Inquiry.Prettify(buffer));
if(buffer != null) DicConsole.WriteLine("{0}", Decoders.SCSI.Inquiry.Prettify(buffer));
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -170,8 +169,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("INQUIRY sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -187,8 +185,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 5:
goto start;
case 5: goto start;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -203,7 +200,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -239,24 +236,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.ScsiInquiry(out byte[] buffer, out byte[] senseBuffer, page, dev.Timeout, out double duration);
bool sense = dev.ScsiInquiry(out byte[] buffer, out byte[] senseBuffer, page, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending INQUIRY to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -286,8 +285,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("INQUIRY response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -297,8 +295,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("INQUIRY sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -314,10 +311,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -335,7 +330,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -374,8 +369,11 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.WriteLine("Page control");
DicConsole.WriteLine("Available values: {0} {1} {2} {3}", ScsiModeSensePageControl.Changeable, ScsiModeSensePageControl.Current, ScsiModeSensePageControl.Default, ScsiModeSensePageControl.Saved);
DicConsole.WriteLine("Available values: {0} {1} {2} {3}", ScsiModeSensePageControl.Changeable,
ScsiModeSensePageControl.Current, ScsiModeSensePageControl.Default,
ScsiModeSensePageControl.Saved);
DicConsole.Write("Choose?: ");
strDev = System.Console.ReadLine();
if(!Enum.TryParse(strDev, true, out pageControl))
@@ -385,6 +383,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Page?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out page))
@@ -394,6 +393,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Subpage?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out subpage))
@@ -403,24 +403,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.ModeSense6(out byte[] buffer, out byte[] senseBuffer, dbd, pageControl, page, subpage, dev.Timeout, out double duration);
bool sense = dev.ModeSense6(out byte[] buffer, out byte[] senseBuffer, dbd, pageControl, page, subpage,
dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending MODE SENSE (6) to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -451,8 +453,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("MODE SENSE (6) response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -473,8 +474,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("MODE SENSE (6) sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -490,10 +490,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 5:
goto start;
case 6:
goto parameters;
case 5: goto start;
case 6: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -512,7 +510,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -552,6 +550,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("DBD?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out dbd))
@@ -561,8 +560,11 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.WriteLine("Page control");
DicConsole.WriteLine("Available values: {0} {1} {2} {3}", ScsiModeSensePageControl.Changeable, ScsiModeSensePageControl.Current, ScsiModeSensePageControl.Default, ScsiModeSensePageControl.Saved);
DicConsole.WriteLine("Available values: {0} {1} {2} {3}", ScsiModeSensePageControl.Changeable,
ScsiModeSensePageControl.Current, ScsiModeSensePageControl.Default,
ScsiModeSensePageControl.Saved);
DicConsole.Write("Choose?: ");
strDev = System.Console.ReadLine();
if(!Enum.TryParse(strDev, true, out pageControl))
@@ -572,6 +574,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Page?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out page))
@@ -581,6 +584,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Subpage?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out subpage))
@@ -590,24 +594,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.ModeSense10(out byte[] buffer, out byte[] senseBuffer, llba, dbd, pageControl, page, subpage, dev.Timeout, out double duration);
bool sense = dev.ModeSense10(out byte[] buffer, out byte[] senseBuffer, llba, dbd, pageControl, page,
subpage, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending MODE SENSE (10) to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -638,8 +644,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("MODE SENSE (10) response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -660,8 +665,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("MODE SENSE (10) sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -677,10 +681,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 5:
goto start;
case 6:
goto parameters;
case 5: goto start;
case 6: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -695,7 +697,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -723,7 +725,9 @@ namespace DiscImageChef.Tests.Devices.SCSI
return;
case 1:
DicConsole.WriteLine("Mode");
DicConsole.WriteLine("Available values: {0} {1} {2} {3}", ScsiPreventAllowMode.Allow, ScsiPreventAllowMode.Prevent, ScsiPreventAllowMode.PreventAll, ScsiPreventAllowMode.PreventChanger);
DicConsole.WriteLine("Available values: {0} {1} {2} {3}", ScsiPreventAllowMode.Allow,
ScsiPreventAllowMode.Prevent, ScsiPreventAllowMode.PreventAll,
ScsiPreventAllowMode.PreventChanger);
DicConsole.Write("Choose?: ");
strDev = System.Console.ReadLine();
if(!Enum.TryParse(strDev, true, out mode))
@@ -733,17 +737,18 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.SpcPreventAllowMediumRemoval(out byte[] senseBuffer, mode, dev.Timeout, out double duration);
bool sense =
dev.SpcPreventAllowMediumRemoval(out byte[] senseBuffer, mode, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending PREVENT ALLOW MEDIUM REMOVAL to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
@@ -771,10 +776,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
case 0:
DicConsole.WriteLine("Returning to SCSI Primary Commands menu...");
return;
case 1:
goto start;
case 2:
goto parameters;
case 1: goto start;
case 2: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -791,7 +794,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -829,6 +832,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Partial capacity?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out partial))
@@ -838,6 +842,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Address?: ");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out address))
@@ -847,24 +852,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.ReadCapacity(out byte[] buffer, out byte[] senseBuffer, relative, address, partial, dev.Timeout, out double duration);
bool sense = dev.ReadCapacity(out byte[] buffer, out byte[] senseBuffer, relative, address, partial,
dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ CAPACITY (10) to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -894,8 +901,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ CAPACITY (10) response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -905,8 +911,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ CAPACITY (10) sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -922,10 +927,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -941,7 +944,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -978,6 +981,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Address?: ");
strDev = System.Console.ReadLine();
if(!ulong.TryParse(strDev, out address))
@@ -987,24 +991,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.ReadCapacity16(out byte[] buffer, out byte[] senseBuffer, address, partial, dev.Timeout, out double duration);
bool sense = dev.ReadCapacity16(out byte[] buffer, out byte[] senseBuffer, address, partial, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ CAPACITY (16) to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -1034,8 +1040,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ CAPACITY (16) response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1045,8 +1050,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ CAPACITY (16) sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1062,10 +1066,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -1076,18 +1078,20 @@ namespace DiscImageChef.Tests.Devices.SCSI
static void ReadMediaSerialNumber(string devPath, Device dev)
{
start:
start:
System.Console.Clear();
bool sense = dev.ReadMediaSerialNumber(out byte[] buffer, out byte[] senseBuffer, dev.Timeout, out double duration);
bool sense = dev.ReadMediaSerialNumber(out byte[] buffer, out byte[] senseBuffer, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ MEDIA SERIAL NUMBER to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -1116,8 +1120,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ MEDIA SERIAL NUMBER response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1127,8 +1130,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ MEDIA SERIAL NUMBER sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -1144,8 +1146,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 4: goto start;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -1160,7 +1161,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -1196,22 +1197,23 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.RequestSense(descriptor, out byte[] senseBuffer, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending REQUEST SENSE to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine("REQUEST SENSE decoded sense:");
DicConsole.Write("{0}", Decoders.SCSI.Sense.PrettifySense(senseBuffer));
@@ -1241,17 +1243,14 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("REQUEST SENSE sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 2:
goto start;
case 3:
goto parameters;
case 2: goto start;
case 3: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -1262,16 +1261,17 @@ namespace DiscImageChef.Tests.Devices.SCSI
static void TestUnitReady(string devPath, Device dev)
{
start:
start:
System.Console.Clear();
bool sense = dev.ScsiTestUnitReady(out byte[] senseBuffer, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending TEST UNIT READY to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine("TEST UNIT READY decoded sense:");
DicConsole.Write("{0}", Decoders.SCSI.Sense.PrettifySense(senseBuffer));
@@ -1300,15 +1300,13 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("TEST UNIT READY sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 2:
goto start;
case 2: goto start;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -1317,4 +1315,4 @@ namespace DiscImageChef.Tests.Devices.SCSI
}
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -93,7 +93,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -132,6 +132,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
if(lba > 0x1FFFFF)
{
DicConsole.WriteLine("Max LBA is {0}, setting to {0}", 0x1FFFFF);
@@ -146,6 +147,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("How many bytes to expect per block?: ");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out blockSize))
@@ -155,6 +157,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Inhibit DMA?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out noDma))
@@ -164,24 +167,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.SyQuestRead6(out byte[] buffer, out byte[] senseBuffer, lba, blockSize, count, noDma, readlong, dev.Timeout, out double duration);
bool sense = dev.SyQuestRead6(out byte[] buffer, out byte[] senseBuffer, lba, blockSize, count, noDma,
readlong, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ {0}(6) to the device:", readlong ? "LONG " : "");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -211,8 +216,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ {0}(6) response:", readlong ? "LONG " : "");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -222,8 +226,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ {0}(6) sense:", readlong ? "LONG " : "");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -239,10 +242,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -260,7 +261,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
parameters:
parameters:
while(true)
{
System.Console.Clear();
@@ -299,6 +300,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Blocks to read (0 for 256 blocks)?: ");
strDev = System.Console.ReadLine();
if(!byte.TryParse(strDev, out count))
@@ -308,6 +310,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("How many bytes to expect per block?: ");
strDev = System.Console.ReadLine();
if(!uint.TryParse(strDev, out blockSize))
@@ -317,6 +320,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
DicConsole.Write("Inhibit DMA?: ");
strDev = System.Console.ReadLine();
if(!bool.TryParse(strDev, out noDma))
@@ -326,24 +330,26 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.ReadKey();
continue;
}
break;
case 2:
goto start;
case 2: goto start;
}
}
start:
start:
System.Console.Clear();
bool sense = dev.SyQuestRead10(out byte[] buffer, out byte[] senseBuffer, lba, blockSize, count, noDma, readlong, dev.Timeout, out double duration);
bool sense = dev.SyQuestRead10(out byte[] buffer, out byte[] senseBuffer, lba, blockSize, count, noDma,
readlong, dev.Timeout, out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ {0}(10) to the device:", readlong ? "LONG " : "");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -373,8 +379,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ {0}(10) response:", readlong ? "LONG " : "");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -384,8 +389,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ {0}(10) sense:", readlong ? "LONG " : "");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -401,10 +405,8 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 5:
goto parameters;
case 4: goto start;
case 5: goto parameters;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -418,18 +420,21 @@ namespace DiscImageChef.Tests.Devices.SCSI
string strDev;
int item;
start:
start:
System.Console.Clear();
bool sense = dev.SyQuestReadUsageCounter(out byte[] buffer, out byte[] senseBuffer, dev.Timeout, out double duration);
bool sense =
dev.SyQuestReadUsageCounter(out byte[] buffer, out byte[] senseBuffer, dev.Timeout,
out double duration);
menu:
menu:
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("Sending READ/RESET USAGE COUNTER to the device:");
DicConsole.WriteLine("Command took {0} ms.", duration);
DicConsole.WriteLine("Sense is {0}.", sense);
DicConsole.WriteLine("Buffer is {0} bytes.", buffer == null ? "null" : buffer.Length.ToString());
DicConsole.WriteLine("Buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(buffer));
DicConsole.WriteLine("Sense buffer is {0} bytes.", senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is {0} bytes.",
senseBuffer == null ? "null" : senseBuffer.Length.ToString());
DicConsole.WriteLine("Sense buffer is null or empty? {0}", ArrayHelpers.ArrayIsNullOrEmpty(senseBuffer));
DicConsole.WriteLine();
DicConsole.WriteLine("Choose what to do:");
@@ -458,8 +463,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ/RESET USAGE COUNTER response:");
if(buffer != null)
PrintHex.PrintHexArray(buffer, 64);
if(buffer != null) PrintHex.PrintHexArray(buffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -469,8 +473,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
DicConsole.WriteLine("READ/RESET USAGE COUNTER sense:");
if(senseBuffer != null)
PrintHex.PrintHexArray(senseBuffer, 64);
if(senseBuffer != null) PrintHex.PrintHexArray(senseBuffer, 64);
DicConsole.WriteLine("Press any key to continue...");
System.Console.ReadKey();
System.Console.Clear();
@@ -486,8 +489,7 @@ namespace DiscImageChef.Tests.Devices.SCSI
System.Console.Clear();
DicConsole.WriteLine("Device: {0}", devPath);
goto menu;
case 4:
goto start;
case 4: goto start;
default:
DicConsole.WriteLine("Incorrect option. Press any key to continue...");
System.Console.ReadKey();
@@ -496,4 +498,4 @@ namespace DiscImageChef.Tests.Devices.SCSI
}
}
}
}
}