diff --git a/Geometry.cs b/Geometry.cs
index bfc8bf8..94af1cf 100644
--- a/Geometry.cs
+++ b/Geometry.cs
@@ -75,6 +75,7 @@ namespace Aaru.CommonTypes
(74, 2, 15, 512, MediaEncoding.MFM, false, MediaType.IBM53FD_512),
(74, 2, 26, 128, MediaEncoding.FM, false, MediaType.IBM43FD_128),
(74, 2, 26, 256, MediaEncoding.MFM, false, MediaType.IBM53FD_256),
+ (77, 1, 16, 256, MediaEncoding.MFM, false, MediaType.MetaFloppy),
(77, 1, 26, 128, MediaEncoding.FM, false, MediaType.RX01),
(77, 1, 26, 256, MediaEncoding.MFM, false, MediaType.RX02),
(77, 2, 8, 1024, MediaEncoding.MFM, false, MediaType.NEC_525_HD),
diff --git a/MediaType.cs b/MediaType.cs
index ed5dc59..140b52a 100644
--- a/MediaType.cs
+++ b/MediaType.cs
@@ -806,6 +806,8 @@ namespace Aaru.CommonTypes
/// 3.5", 652 tracks, 2 sides, 512 bytes/sector, Floptical, ECMA-207, ISO 14169
Floptical = 662, HiFD = 663, QuickDisk = 664, UHD144 = 665,
VideoFloppy = 666, Wafer = 667, ZXMicrodrive = 668,
+ /// 5.25", SS, DD, 77 tracks, 16 spt, 256 bytes/sector, MFM, 100 tpi, 300rpm
+ MetaFloppy = 669,
#endregion Other floppy standards, types 660 to 669
#region Miscellaneous, types 670 to 689
diff --git a/MediaType.csv b/MediaType.csv
index ffefc12..89a8d83 100644
--- a/MediaType.csv
+++ b/MediaType.csv
@@ -441,6 +441,7 @@ Enum,Value,Summary
"VideoFloppy",666,
"Wafer",667,
"ZXMicrodrive",668,
+"MetaFloppy",669,"5.25"", SS, DD, 77 tracks, 16 spt, 256 bytes/sector, MFM, 100 tpi, 300rpm"
"BeeCard",670,
"Borsu",671,
"DataStore",672,
diff --git a/MediaTypeFromDevice/FromSbc.cs b/MediaTypeFromDevice/FromSbc.cs
index 4e15dde..c4ffe72 100644
--- a/MediaTypeFromDevice/FromSbc.cs
+++ b/MediaTypeFromDevice/FromSbc.cs
@@ -303,6 +303,12 @@ namespace Aaru.CommonTypes
mediumType, blocks, blockSize);
return MediaType.IBM33FD_256;
+ case 1232:
+ AaruConsole.DebugWriteLine("Media detection",
+ "SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to MetaFloppy formatted 5¼\" double density single sided floppy.",
+ mediumType, blocks, blockSize);
+
+ return MediaType.MetaFloppy;
case 1280 when mediumType == 0x01:
AaruConsole.DebugWriteLine("Media detection",
"SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to Acorn formatted 5¼\" double density floppy with 80 tracks.",
diff --git a/Metadata/Dimensions.cs b/Metadata/Dimensions.cs
index 07d6e8c..0ffda6d 100644
--- a/Metadata/Dimensions.cs
+++ b/Metadata/Dimensions.cs
@@ -87,6 +87,7 @@ namespace Aaru.CommonTypes.Metadata
case CommonTypes.MediaType.ECMA_99_26:
case CommonTypes.MediaType.FDFORMAT_525_DD:
case CommonTypes.MediaType.FDFORMAT_525_HD:
+ case CommonTypes.MediaType.MetaFloppy:
// According to ECMA-99 et al
dmns.Height = 133.3;
dmns.HeightSpecified = true;
diff --git a/Metadata/MediaType.cs b/Metadata/MediaType.cs
index 05d9bd1..0ec5785 100644
--- a/Metadata/MediaType.cs
+++ b/Metadata/MediaType.cs
@@ -2535,6 +2535,11 @@ namespace Aaru.CommonTypes.Metadata
discType = "Optical Disc Archive";
discSubType = "ODC5500R";
+ break;
+ case CommonTypes.MediaType.MetaFloppy:
+ discType = "5.25\" floppy";
+ discSubType = "Micropolis MetaFloppy";
+
break;
default:
discType = "Unknown";