mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Added information from SCSI-3 SBC-1.
This commit is contained in:
@@ -1,3 +1,8 @@
|
|||||||
|
2015-10-25 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
|
* SCSI/Modes.cs:
|
||||||
|
Added information from SCSI-3 SBC-1.
|
||||||
|
|
||||||
2015-10-24 Natalia Portillo <claunia@claunia.com>
|
2015-10-24 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
* SCSI/Modes.cs:
|
* SCSI/Modes.cs:
|
||||||
|
|||||||
@@ -111,6 +111,33 @@ namespace DiscImageChef.Decoders.SCSI
|
|||||||
Tape24 = 0x44,
|
Tape24 = 0x44,
|
||||||
#endregion Medium Types defined in SCSI-2 for Direct-Access devices
|
#endregion Medium Types defined in SCSI-2 for Direct-Access devices
|
||||||
|
|
||||||
|
#region Medium Types defined in SCSI-3 SBC-1 for Optical devices
|
||||||
|
/// <summary>
|
||||||
|
/// Read-only medium
|
||||||
|
/// </summary>
|
||||||
|
ReadOnly = 0x01,
|
||||||
|
/// <summary>
|
||||||
|
/// Write-once Read-many medium
|
||||||
|
/// </summary>
|
||||||
|
WORM = 0x02,
|
||||||
|
/// <summary>
|
||||||
|
/// Erasable medium
|
||||||
|
/// </summary>
|
||||||
|
Erasable = 0x03,
|
||||||
|
/// <summary>
|
||||||
|
/// Combination of read-only and write-once medium
|
||||||
|
/// </summary>
|
||||||
|
RO_WORM = 0x04,
|
||||||
|
/// <summary>
|
||||||
|
/// Combination of read-only and erasable medium
|
||||||
|
/// </summary>
|
||||||
|
RO_RW = 0x05,
|
||||||
|
/// <summary>
|
||||||
|
/// Combination of write-once and erasable medium
|
||||||
|
/// </summary>
|
||||||
|
WORM_RW = 0x06,
|
||||||
|
#endregion Medium Types defined in SCSI-3 SBC-1 for Optical devices
|
||||||
|
|
||||||
#region Medium Types defined in SCSI-2 for MultiMedia devices
|
#region Medium Types defined in SCSI-2 for MultiMedia devices
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 120 mm CD-ROM
|
/// 120 mm CD-ROM
|
||||||
@@ -272,41 +299,41 @@ namespace DiscImageChef.Decoders.SCSI
|
|||||||
|
|
||||||
#region Density Types defined in SCSI-2 for Optical devices
|
#region Density Types defined in SCSI-2 for Optical devices
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 86 mm Read/Write single-sided optical disc with 12500 tracks
|
/// ISO/IEC 10090: 86 mm Read/Write single-sided optical disc with 12500 tracks
|
||||||
/// </summary>
|
/// </summary>
|
||||||
D660 = 0x01,
|
ISO10090 = 0x01,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 89 mm Read/Write double-sided optical disc with 12500 tracks
|
/// 89 mm Read/Write double-sided optical disc with 12500 tracks
|
||||||
/// </summary>
|
/// </summary>
|
||||||
D581 = 0x02,
|
D581 = 0x02,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 130 mm Read/Write double-sided optical disc with 18750 tracks
|
/// ANSI X3.212: 130 mm Read/Write double-sided optical disc with 18750 tracks
|
||||||
/// </summary>
|
/// </summary>
|
||||||
I607 = 0x03,
|
X3_212 = 0x03,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 130 mm Write-Once double-sided optical disc with 30000 tracks
|
/// ANSI X3.191: 130 mm Write-Once double-sided optical disc with 30000 tracks
|
||||||
/// </summary>
|
/// </summary>
|
||||||
D655 = 0x04,
|
X3_191 = 0x04,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 130 mm Write-Once double-sided optical disc with 20000 tracks
|
/// ANSI X3.214: 130 mm Write-Once double-sided optical disc with 20000 tracks
|
||||||
/// </summary>
|
/// </summary>
|
||||||
D659 = 0x05,
|
X3_214 = 0x05,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 130 mm Write-Once double-sided optical disc with 18750 tracks
|
/// ANSI X3.211: 130 mm Write-Once double-sided optical disc with 18750 tracks
|
||||||
/// </summary>
|
/// </summary>
|
||||||
D457 = 0x06,
|
X3_211 = 0x06,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 200 mm optical disc
|
/// 200 mm optical disc
|
||||||
/// </summary>
|
/// </summary>
|
||||||
D407 = 0x07,
|
D407 = 0x07,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 300 mm double-sided optical disc
|
/// ISO/IEC 13614: 300 mm double-sided optical disc
|
||||||
/// </summary>
|
/// </summary>
|
||||||
D408 = 0x08,
|
ISO13614 = 0x08,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 356 mm double-sided optical disc with 56350 tracks
|
/// ANSI X3.200: 356 mm double-sided optical disc with 56350 tracks
|
||||||
/// </summary>
|
/// </summary>
|
||||||
D456 = 0x09
|
X3_200 = 0x09
|
||||||
#endregion Density Types defined in SCSI-2 for Optical devices
|
#endregion Density Types defined in SCSI-2 for Optical devices
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -330,7 +357,7 @@ namespace DiscImageChef.Decoders.SCSI
|
|||||||
|
|
||||||
public static ModeHeader? DecodeModeHeader6(byte[] modeResponse, PeripheralDeviceTypes deviceType)
|
public static ModeHeader? DecodeModeHeader6(byte[] modeResponse, PeripheralDeviceTypes deviceType)
|
||||||
{
|
{
|
||||||
if (modeResponse.Length < modeResponse[0] + 1)
|
if (modeResponse == null || modeResponse.Length < 4 || modeResponse.Length < modeResponse[0] + 1)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
ModeHeader header = new ModeHeader();
|
ModeHeader header = new ModeHeader();
|
||||||
@@ -395,58 +422,61 @@ namespace DiscImageChef.Decoders.SCSI
|
|||||||
{
|
{
|
||||||
case PeripheralDeviceTypes.DirectAccess:
|
case PeripheralDeviceTypes.DirectAccess:
|
||||||
{
|
{
|
||||||
sb.Append("Medium is ");
|
if (header.Value.MediumType != MediumTypes.Default)
|
||||||
|
|
||||||
switch (header.Value.MediumType)
|
|
||||||
{
|
{
|
||||||
case MediumTypes.ECMA54:
|
sb.Append("Medium is ");
|
||||||
sb.AppendLine("ECMA-54: 200 mm Flexible Disk Cartridge using Two-Frequency Recording at 13262 ftprad on One Side");
|
|
||||||
break;
|
switch (header.Value.MediumType)
|
||||||
case MediumTypes.ECMA59:
|
{
|
||||||
sb.AppendLine("ECMA-59 & ANSI X3.121-1984: 200 mm Flexible Disk Cartridge using Two-Frequency Recording at 13262 ftprad on Both Sides");
|
case MediumTypes.ECMA54:
|
||||||
break;
|
sb.AppendLine("ECMA-54: 200 mm Flexible Disk Cartridge using Two-Frequency Recording at 13262 ftprad on One Side");
|
||||||
case MediumTypes.ECMA69:
|
break;
|
||||||
sb.AppendLine("ECMA-69: 200 mm Flexible Disk Cartridge using MFM Recording at 13262 ftprad on Both Sides");
|
case MediumTypes.ECMA59:
|
||||||
break;
|
sb.AppendLine("ECMA-59 & ANSI X3.121-1984: 200 mm Flexible Disk Cartridge using Two-Frequency Recording at 13262 ftprad on Both Sides");
|
||||||
case MediumTypes.ECMA66:
|
break;
|
||||||
sb.AppendLine("ECMA-66: 130 mm Flexible Disk Cartridge using Two-Frequency Recording at 7958 ftprad on One Side");
|
case MediumTypes.ECMA69:
|
||||||
break;
|
sb.AppendLine("ECMA-69: 200 mm Flexible Disk Cartridge using MFM Recording at 13262 ftprad on Both Sides");
|
||||||
case MediumTypes.ECMA70:
|
break;
|
||||||
sb.AppendLine("ECMA-70 & ANSI X3.125-1985: 130 mm Flexible Disk Cartridge using MFM Recording at 7958 ftprad on Both Sides; 1,9 Tracks per mm");
|
case MediumTypes.ECMA66:
|
||||||
break;
|
sb.AppendLine("ECMA-66: 130 mm Flexible Disk Cartridge using Two-Frequency Recording at 7958 ftprad on One Side");
|
||||||
case MediumTypes.ECMA78:
|
break;
|
||||||
sb.AppendLine("ECMA-78 & ANSI X3.126-1986: 130 mm Flexible Disk Cartridge using MFM Recording at 7958 ftprad on Both Sides; 3,8 Tracks per mm");
|
case MediumTypes.ECMA70:
|
||||||
break;
|
sb.AppendLine("ECMA-70 & ANSI X3.125-1985: 130 mm Flexible Disk Cartridge using MFM Recording at 7958 ftprad on Both Sides; 1,9 Tracks per mm");
|
||||||
case MediumTypes.ECMA99:
|
break;
|
||||||
sb.AppendLine("ECMA-99 & ISO 8630-1985: 130 mm Flexible Disk Cartridge using MFM Recording at 13262 ftprad on Both Sides; 3,8 Tracks per mm");
|
case MediumTypes.ECMA78:
|
||||||
break;
|
sb.AppendLine("ECMA-78 & ANSI X3.126-1986: 130 mm Flexible Disk Cartridge using MFM Recording at 7958 ftprad on Both Sides; 3,8 Tracks per mm");
|
||||||
case MediumTypes.ECMA100:
|
break;
|
||||||
sb.AppendLine("ECMA-100 & ANSI X3.137: 90 mm Flexible Disk Cartridge using MFM Recording at 7859 ftprad on Both Sides; 5,3 Tracks per mm");
|
case MediumTypes.ECMA99:
|
||||||
break;
|
sb.AppendLine("ECMA-99 & ISO 8630-1985: 130 mm Flexible Disk Cartridge using MFM Recording at 13262 ftprad on Both Sides; 3,8 Tracks per mm");
|
||||||
case MediumTypes.Unspecified_SS:
|
break;
|
||||||
sb.AppendLine("Unspecified single sided flexible disk");
|
case MediumTypes.ECMA100:
|
||||||
break;
|
sb.AppendLine("ECMA-100 & ANSI X3.137: 90 mm Flexible Disk Cartridge using MFM Recording at 7859 ftprad on Both Sides; 5,3 Tracks per mm");
|
||||||
case MediumTypes.Unspecified_DS:
|
break;
|
||||||
sb.AppendLine("Unspecified double sided flexible disk");
|
case MediumTypes.Unspecified_SS:
|
||||||
break;
|
sb.AppendLine("Unspecified single sided flexible disk");
|
||||||
case MediumTypes.X3_73:
|
break;
|
||||||
sb.AppendLine("ANSI X3.73-1980: 200 mm, 6631 ftprad, 1,9 Tracks per mm, 1 side");
|
case MediumTypes.Unspecified_DS:
|
||||||
break;
|
sb.AppendLine("Unspecified double sided flexible disk");
|
||||||
case MediumTypes.X3_73_DS:
|
break;
|
||||||
sb.AppendLine("ANSI X3.73-1980: 200 mm, 6631 ftprad, 1,9 Tracks per mm, 2 sides");
|
case MediumTypes.X3_73:
|
||||||
break;
|
sb.AppendLine("ANSI X3.73-1980: 200 mm, 6631 ftprad, 1,9 Tracks per mm, 1 side");
|
||||||
case MediumTypes.X3_82:
|
break;
|
||||||
sb.AppendLine("ANSI X3.80-1980: 130 mm, 3979 ftprad, 1,9 Tracks per mm, 1 side");
|
case MediumTypes.X3_73_DS:
|
||||||
break;
|
sb.AppendLine("ANSI X3.73-1980: 200 mm, 6631 ftprad, 1,9 Tracks per mm, 2 sides");
|
||||||
case MediumTypes.Tape12:
|
break;
|
||||||
sb.AppendLine("6,3 mm tape with 12 tracks at 394 ftpmm");
|
case MediumTypes.X3_82:
|
||||||
break;
|
sb.AppendLine("ANSI X3.80-1980: 130 mm, 3979 ftprad, 1,9 Tracks per mm, 1 side");
|
||||||
case MediumTypes.Tape24:
|
break;
|
||||||
sb.AppendLine("6,3 mm tape with 24 tracks at 394 ftpmm");
|
case MediumTypes.Tape12:
|
||||||
break;
|
sb.AppendLine("6,3 mm tape with 12 tracks at 394 ftpmm");
|
||||||
default:
|
break;
|
||||||
sb.AppendFormat("Unknown medium type 0x{0:X2}", header.Value.MediumType).AppendLine();
|
case MediumTypes.Tape24:
|
||||||
break;
|
sb.AppendLine("6,3 mm tape with 24 tracks at 394 ftpmm");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
sb.AppendFormat("Unknown medium type 0x{0:X2}", header.Value.MediumType).AppendLine();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (header.Value.WriteProtected)
|
if (header.Value.WriteProtected)
|
||||||
@@ -654,6 +684,36 @@ namespace DiscImageChef.Decoders.SCSI
|
|||||||
}
|
}
|
||||||
case PeripheralDeviceTypes.OpticalDevice:
|
case PeripheralDeviceTypes.OpticalDevice:
|
||||||
{
|
{
|
||||||
|
if (header.Value.MediumType != MediumTypes.Default)
|
||||||
|
{
|
||||||
|
sb.Append("Medium is ");
|
||||||
|
|
||||||
|
switch (header.Value.MediumType)
|
||||||
|
{
|
||||||
|
case MediumTypes.ReadOnly:
|
||||||
|
sb.AppendLine("a Read-only optical");
|
||||||
|
break;
|
||||||
|
case MediumTypes.WORM:
|
||||||
|
sb.AppendLine("a Write-once Read-many optical");
|
||||||
|
break;
|
||||||
|
case MediumTypes.Erasable:
|
||||||
|
sb.AppendLine("a Erasable optical");
|
||||||
|
break;
|
||||||
|
case MediumTypes.RO_WORM:
|
||||||
|
sb.AppendLine("a combination of read-only and write-once optical");
|
||||||
|
break;
|
||||||
|
case MediumTypes.RO_RW:
|
||||||
|
sb.AppendLine("a combination of read-only and erasable optical");
|
||||||
|
break;
|
||||||
|
case MediumTypes.WORM_RW:
|
||||||
|
sb.AppendLine("a combination of write-once and erasable optical");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
sb.AppendFormat("an unknown medium type 0x{0:X2}", header.Value.MediumType).AppendLine();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (header.Value.WriteProtected)
|
if (header.Value.WriteProtected)
|
||||||
sb.AppendLine("Medium is write protected");
|
sb.AppendLine("Medium is write protected");
|
||||||
if (header.Value.EBC)
|
if (header.Value.EBC)
|
||||||
@@ -668,32 +728,32 @@ namespace DiscImageChef.Decoders.SCSI
|
|||||||
{
|
{
|
||||||
case DensityType.Default:
|
case DensityType.Default:
|
||||||
break;
|
break;
|
||||||
case DensityType.D660:
|
case DensityType.ISO10090:
|
||||||
density = "86 mm Read/Write single-sided optical disc with 12500 tracks";
|
density = "ISO/IEC 10090: 86 mm Read/Write single-sided optical disc with 12500 tracks";
|
||||||
break;
|
break;
|
||||||
case DensityType.D581:
|
case DensityType.D581:
|
||||||
density = "89 mm Read/Write double-sided optical disc with 12500 tracks";
|
density = "89 mm Read/Write double-sided optical disc with 12500 tracks";
|
||||||
break;
|
break;
|
||||||
case DensityType.I607:
|
case DensityType.X3_212:
|
||||||
density = "130 mm Read/Write double-sided optical disc with 18750 tracks";
|
density = "ANSI X3.212: 130 mm Read/Write double-sided optical disc with 18750 tracks";
|
||||||
break;
|
break;
|
||||||
case DensityType.D655:
|
case DensityType.X3_191:
|
||||||
density = "130 mm Write-Once double-sided optical disc with 30000 tracks";
|
density = "ANSI X3.191: 130 mm Write-Once double-sided optical disc with 30000 tracks";
|
||||||
break;
|
break;
|
||||||
case DensityType.D659:
|
case DensityType.X3_214:
|
||||||
density = "130 mm Write-Once double-sided optical disc with 20000 tracks";
|
density = "ANSI X3.214: 130 mm Write-Once double-sided optical disc with 20000 tracks";
|
||||||
break;
|
break;
|
||||||
case DensityType.D457:
|
case DensityType.X3_211:
|
||||||
density = "130 mm Write-Once double-sided optical disc with 18750 tracks";
|
density = "ANSI X3.211: 130 mm Write-Once double-sided optical disc with 18750 tracks";
|
||||||
break;
|
break;
|
||||||
case DensityType.D407:
|
case DensityType.D407:
|
||||||
density = "200 mm optical disc";
|
density = "200 mm optical disc";
|
||||||
break;
|
break;
|
||||||
case DensityType.D408:
|
case DensityType.ISO13614:
|
||||||
density = "300 mm double-sided optical disc";
|
density = "ISO/IEC 13614: 300 mm double-sided optical disc";
|
||||||
break;
|
break;
|
||||||
case DensityType.D456:
|
case DensityType.X3_200:
|
||||||
density = "356 mm double-sided optical disc with 56350 tracks";
|
density = "ANSI X3.200: 356 mm double-sided optical disc with 56350 tracks";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
density = String.Format("Unknown density code 0x{0:X2}", descriptor.Density);
|
density = String.Format("Unknown density code 0x{0:X2}", descriptor.Density);
|
||||||
|
|||||||
Reference in New Issue
Block a user