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