diff --git a/Aaru.CommonTypes/AaruMetadata/Dimensions.cs b/Aaru.CommonTypes/AaruMetadata/Dimensions.cs
index 450b361bd..0426782b8 100644
--- a/Aaru.CommonTypes/AaruMetadata/Dimensions.cs
+++ b/Aaru.CommonTypes/AaruMetadata/Dimensions.cs
@@ -737,6 +737,14 @@ public static Dimensions FromMediaType(MediaType mediaType)
dmns.Thickness = 15;
+ return dmns;
+ case MediaType.SQ100:
+ case MediaType.SQ200:
+ case MediaType.SQ300:
+ dmns.Height = 112.014;
+ dmns.Width = 109.982;
+ dmns.Thickness = 10.922;
+
return dmns;
case MediaType.EZ135:
case MediaType.EZ230:
diff --git a/Aaru.CommonTypes/MediaType.cs b/Aaru.CommonTypes/MediaType.cs
index 6b01ed61e..f6475f841 100644
--- a/Aaru.CommonTypes/MediaType.cs
+++ b/Aaru.CommonTypes/MediaType.cs
@@ -773,9 +773,15 @@ public enum MediaType : uint
Quest = 432,
/// SyQuest SparQ 1Gb cartridge
SparQ = 433,
- /// SyQuest 5Mb cartridge for SQ306RD drive
+ ///
+ /// SyQuest 5Mb, 3.9", 306 tracks, 2 sides, 32 sectors per track, 256 bytes/sector cartridge for SQ306RD
+ /// drive
+ ///
SQ100 = 434,
- /// SyQuest 10Mb cartridge for SQ312RD drive
+ ///
+ /// SyQuest 10Mb, 3.9", 615 tracks, 2 sides, 32 sectors per track, 256 bytes/sector cartridge for SQ312RD
+ /// drive
+ ///
SQ200 = 435,
/// SyQuest 15Mb cartridge for SQ319RD drive
SQ300 = 436,
diff --git a/Aaru.CommonTypes/MediaType.csv b/Aaru.CommonTypes/MediaType.csv
index 154aa40ee..cadb8c1eb 100644
--- a/Aaru.CommonTypes/MediaType.csv
+++ b/Aaru.CommonTypes/MediaType.csv
@@ -294,8 +294,8 @@ Enum,Value,Summary
"EZ230",431,"SyQuest EZFlyer 230Mb cartridge for use in EZFlyer drive"
"Quest",432,"SyQuest 4.7Gb for use in Quest drive"
"SparQ",433,"SyQuest SparQ 1Gb cartridge"
-"SQ100",434,"SyQuest 5Mb cartridge for SQ306RD drive"
-"SQ200",435,"SyQuest 10Mb cartridge for SQ312RD drive"
+"SQ100",434,"SyQuest 5Mb, 3.9"", 306 tracks, 2 sides, 32 sectors per track, 256 bytes/sector cartridge for SQ306RD drive"
+"SQ200",435,"SyQuest 10Mb, 3.9"", 615 tracks, 2 sides, 32 sectors per track, 256 bytes/sector cartridge for SQ312RD drive"
"SQ300",436,"SyQuest 15Mb cartridge for SQ319RD drive"
"SQ310",437,"SyQuest 105Mb cartridge for SQ3105 and SQ3270 drives"
"SQ327",438,"SyQuest 270Mb cartridge for SQ3270 drive"
diff --git a/Aaru.CommonTypes/MediaTypeFromDevice/FromSbc.cs b/Aaru.CommonTypes/MediaTypeFromDevice/FromSbc.cs
index 0faead035..ac25edd74 100644
--- a/Aaru.CommonTypes/MediaTypeFromDevice/FromSbc.cs
+++ b/Aaru.CommonTypes/MediaTypeFromDevice/FromSbc.cs
@@ -433,6 +433,17 @@ static MediaType GetFromSbc(string vendor, string model, byte mediumType, ulong
blockSize);
return MediaType.ECMA_99_26;
+ case 19584 when vendor.Equals("syquest", StringComparison.InvariantCultureIgnoreCase):
+ AaruConsole.DebugWriteLine(MODULE_NAME,
+ "Drive manufacturer is SyQuest, media has 19584 blocks of 256 bytes, setting media type to SQ100.");
+
+ return MediaType.SQ200;
+ case 39360 when vendor.Equals("syquest", StringComparison.InvariantCultureIgnoreCase):
+ AaruConsole.DebugWriteLine(MODULE_NAME,
+ "Drive manufacturer is SyQuest, media has 39360 blocks of 256 bytes, setting media type to SQ200.");
+
+ return MediaType.SQ200;
+
case 39168 when vendor.StartsWith("iomega", StringComparison.OrdinalIgnoreCase):
case 41004 when vendor.StartsWith("iomega", StringComparison.OrdinalIgnoreCase):
AaruConsole.DebugWriteLine(MODULE_NAME,
diff --git a/Aaru.Images/ZZZRawImage/Helpers.cs b/Aaru.Images/ZZZRawImage/Helpers.cs
index c5e7d79f2..796a4d93c 100644
--- a/Aaru.Images/ZZZRawImage/Helpers.cs
+++ b/Aaru.Images/ZZZRawImage/Helpers.cs
@@ -175,8 +175,12 @@ MediaType CalculateDiskType()
return MediaType.XDF_35;
case 2949120:
return MediaType.DOS_35_ED;
+ case 5013504: // SyQuest SQ100 cartridge
+ return MediaType.SQ100;
case 9338880:
return MediaType.NEC_35_TD;
+ case 10076160: // SyQuest SQ100 cartridge
+ return MediaType.SQ200;
case 20818944:
return MediaType.Floptical;
case 33554432:
diff --git a/Aaru.Images/ZZZRawImage/Read.cs b/Aaru.Images/ZZZRawImage/Read.cs
index a9d814821..9c98d9fdc 100644
--- a/Aaru.Images/ZZZRawImage/Read.cs
+++ b/Aaru.Images/ZZZRawImage/Read.cs
@@ -223,6 +223,11 @@ public ErrorNumber Open(IFilter imageFilter)
case 1638400:
_imageInfo.SectorSize = 1024;
+ break;
+ case 5013504: // SyQuest SQ100 cartridge
+ case 10076160: // SyQuest SQ200 cartridge
+ _imageInfo.SectorSize = 256;
+
break;
case 35002122240:
_imageInfo.SectorSize = 2048;
@@ -903,6 +908,18 @@ public ErrorNumber Open(IFilter imageFilter)
_imageInfo.Heads = 2;
_imageInfo.SectorsPerTrack = 23;
+ break;
+ case MediaType.SQ100:
+ _imageInfo.Cylinders = 306;
+ _imageInfo.Heads = 2;
+ _imageInfo.SectorsPerTrack = 32;
+
+ break;
+ case MediaType.SQ200:
+ _imageInfo.Cylinders = 615;
+ _imageInfo.Heads = 2;
+ _imageInfo.SectorsPerTrack = 32;
+
break;
// Following ones are what the device itself report, not the physical geometry