Add support for detection of ISO/IEC 15286 2048bps and 1024bps media.

This commit is contained in:
2020-10-17 04:07:05 +01:00
parent 9fe94d9b71
commit 5d174b5af5
5 changed files with 40 additions and 0 deletions

View File

@@ -781,6 +781,12 @@ namespace Aaru.CommonTypes
GigaMo = 653,
/// <summary>3,5", M.O., 1063146 sectors, 2048 bytes/sector, Cherry Book 2, GigaMo 2, ECMA-353, ISO 22533</summary>
GigaMo2 = 654,
/// <summary>5,25", M.O., 1263472 sectors, 2048 bytes/sector, ISO 15286, 5.2Gb/cart</summary>
ISO_15286 = 655,
/// <summary>5,25", M.O., 2319786 sectors, 1024 bytes/sector, ISO 15286, 4.8Gb/cart</summary>
ISO_15286_1024 = 656,
/// <summary>5,25", M.O., ??????? sectors, 512 bytes/sector, ISO 15286, 4.1Gb/cart</summary>
ISO_15286_512 = 657,
#endregion Magneto-optical, types 630 to 659
#region Other floppy standards, types 660 to 689

View File

@@ -160,6 +160,12 @@ namespace Aaru.CommonTypes
mediumType, blocks, blockSize);
return MediaType.ECMA_238;
case 2319786:
AaruConsole.DebugWriteLine("Media detection",
"SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ISO 15286 conforming 5¼\" magneto-optical.",
mediumType, blocks, blockSize);
return MediaType.ISO_15286_1024;
case 14476734:
AaruConsole.DebugWriteLine("Media detection",
"SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-260 / ISO 15898 conforming 356mm magneto-optical.",
@@ -212,6 +218,12 @@ namespace Aaru.CommonTypes
mediumType, blocks, blockSize);
return MediaType.ECMA_280;
case 1263472:
AaruConsole.DebugWriteLine("Media detection",
"SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ISO 15286 conforming 5¼\" magneto-optical.",
mediumType, blocks, blockSize);
return MediaType.ISO_15286;
case 2043664:
AaruConsole.DebugWriteLine("Media detection",
"SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-322 / ISO 22092 conforming 5¼\" magneto-optical.",

View File

@@ -755,6 +755,12 @@ namespace Aaru.CommonTypes
mediumType, blocks, blockSize);
return MediaType.ECMA_238;
case 2319786 when mediumType == 0x01 || mediumType == 0x02:
AaruConsole.DebugWriteLine("Media detection",
"SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ISO 15286 conforming 5¼\" magneto-optical.",
mediumType, blocks, blockSize);
return MediaType.ISO_15286_1024;
case 14476734 when mediumType == 0x01 || mediumType == 0x02:
AaruConsole.DebugWriteLine("Media detection",
"SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-260 / ISO 15898 conforming 356mm magneto-optical.",
@@ -826,6 +832,12 @@ namespace Aaru.CommonTypes
mediumType, blocks, blockSize);
return MediaType.ECMA_280;
case 1263472 when mediumType == 0x01 || mediumType == 0x02:
AaruConsole.DebugWriteLine("Media detection",
"SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ISO 15286 conforming 5¼\" magneto-optical.",
mediumType, blocks, blockSize);
return MediaType.ISO_15286;
case 2043664 when mediumType == 0x01 || mediumType == 0x02:
AaruConsole.DebugWriteLine("Media detection",
"SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-322 / ISO 22092 conforming 5¼\" magneto-optical.",

View File

@@ -200,6 +200,9 @@ namespace Aaru.CommonTypes.Metadata
case CommonTypes.MediaType.UDO:
case CommonTypes.MediaType.UDO2:
case CommonTypes.MediaType.UDO2_WORM:
case CommonTypes.MediaType.ISO_15286:
case CommonTypes.MediaType.ISO_15286_1024:
case CommonTypes.MediaType.ISO_15286_512:
// According to ECMA-183 et al
dmns.Height = 153;
dmns.HeightSpecified = true;

View File

@@ -1858,6 +1858,13 @@ namespace Aaru.CommonTypes.Metadata
discType = "5.25\" magneto-optical";
discSubType = "ECMA-322";
break;
case CommonTypes.MediaType.ISO_15286:
case CommonTypes.MediaType.ISO_15286_1024:
case CommonTypes.MediaType.ISO_15286_512:
discType = "5.25\" magneto-optical";
discSubType = "ISO-15286";
break;
case CommonTypes.MediaType.GigaMo:
discType = "3.5\" magneto-optical";