diff --git a/MediaType.cs b/MediaType.cs
index 2510db0..0e76d93 100644
--- a/MediaType.cs
+++ b/MediaType.cs
@@ -1029,6 +1029,8 @@ namespace Aaru.CommonTypes
ISO_14517 = 802,
/// 5,25", M.O., 2244958 sectors, 512 bytes/sector, ISO 14517, 2.3Gb/cart
ISO_14517_512 = 803,
+ /// 3,5", M.O., 1041500 sectors, 512 bytes/sector, ISO 15041, 540Mb/cart
+ ISO_15041_512 = 804,
#endregion Magneto-optical, types 800 to 819
}
}
\ No newline at end of file
diff --git a/MediaType.csv b/MediaType.csv
index 42210bd..fa0a0c8 100644
--- a/MediaType.csv
+++ b/MediaType.csv
@@ -526,3 +526,4 @@ Enum,Value,Summary
"ECMA_322_512",801,"5,25"", M.O., ??????? sectors, 512 bytes/sector, ECMA-322, ISO 22092, 9.1Gb/cart"
"ISO_14517",802,"5,25"", M.O., 1273011 sectors, 1024 bytes/sector, ISO 14517, 2.6Gb/cart"
"ISO_14517_512",803,"5,25"", M.O., 2244958 sectors, 512 bytes/sector, ISO 14517, 2.3Gb/cart"
+"ISO_15041_512",804,"3,5"", M.O., 1041500 sectors, 512 bytes/sector, ISO 15041, 540Mb/cart"
diff --git a/MediaTypeFromDevice/FromOdc.cs b/MediaTypeFromDevice/FromOdc.cs
index 757a878..f52f60e 100644
--- a/MediaTypeFromDevice/FromOdc.cs
+++ b/MediaTypeFromDevice/FromOdc.cs
@@ -94,6 +94,12 @@ namespace Aaru.CommonTypes
mediumType, blocks, blockSize);
return MediaType.ECMA_183_512;
+ case 1041500:
+ AaruConsole.DebugWriteLine("Media detection",
+ "SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ISO 15041 conforming 3½\" magneto-optical.",
+ mediumType, blocks, blockSize);
+
+ return MediaType.ISO_15041_512;
case 1128772:
case 1163337:
AaruConsole.DebugWriteLine("Media detection",
diff --git a/MediaTypeFromDevice/FromSbc.cs b/MediaTypeFromDevice/FromSbc.cs
index 2e6ba70..0070656 100644
--- a/MediaTypeFromDevice/FromSbc.cs
+++ b/MediaTypeFromDevice/FromSbc.cs
@@ -628,6 +628,12 @@ namespace Aaru.CommonTypes
mediumType, blocks, blockSize);
return MediaType.ECMA_183_512;
+ case 1041500 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 15041 conforming 3½\" magneto-optical.",
+ mediumType, blocks, blockSize);
+
+ return MediaType.ISO_15041_512;
case 1128772 when mediumType == 0x01 || mediumType == 0x02:
case 1163337 when mediumType == 0x01 || mediumType == 0x02:
AaruConsole.DebugWriteLine("Media detection",
diff --git a/Metadata/Dimensions.cs b/Metadata/Dimensions.cs
index 8215c12..82d288e 100644
--- a/Metadata/Dimensions.cs
+++ b/Metadata/Dimensions.cs
@@ -231,6 +231,7 @@ namespace Aaru.CommonTypes.Metadata
case CommonTypes.MediaType.ECMA_223_512:
case CommonTypes.MediaType.GigaMo:
case CommonTypes.MediaType.GigaMo2:
+ case CommonTypes.MediaType.ISO_15041_512:
// According to ECMA-154 et al
dmns.Height = 94;
dmns.HeightSpecified = true;
diff --git a/Metadata/MediaType.cs b/Metadata/MediaType.cs
index 95c1746..21e2c62 100644
--- a/Metadata/MediaType.cs
+++ b/Metadata/MediaType.cs
@@ -907,6 +907,11 @@ namespace Aaru.CommonTypes.Metadata
discType = "3.5\" magneto-optical";
discSubType = "ECMA-201";
+ break;
+ case CommonTypes.MediaType.ISO_15041_512:
+ discType = "3.5\" magneto-optical";
+ discSubType = "ISO 15041";
+
break;
case CommonTypes.MediaType.FlashDrive:
discType = "USB flash drive";