Fix support for 128Mb 3.5" magneto optical.

This commit is contained in:
2019-12-27 01:35:37 +00:00
parent d1d97d4202
commit 8862d8b9b4
4 changed files with 86 additions and 62 deletions

View File

@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ContentModelStore"> <component name="ContentModelStore">
<e p="$APPLICATION_CONFIG_DIR$/consoles/db" t="IncludeRecursive" />
<e p="$APPLICATION_PLUGINS_DIR$/puppet/lib/stubs" t="IncludeRecursive" />
<e p="$USER_HOME$/.Rider2019.3/system/extResources" t="IncludeRecursive" /> <e p="$USER_HOME$/.Rider2019.3/system/extResources" t="IncludeRecursive" />
<e p="$USER_HOME$/.Rider2019.3/system/resharper-host/local/Transient/ReSharperHost/v193/SolutionCaches/_DiscImageChef.-1491758497.00" t="ExcludeRecursive" /> <e p="$USER_HOME$/.Rider2019.3/system/resharper-host/local/Transient/ReSharperHost/v193/SolutionCaches/_DiscImageChef.-1491758497.00" t="ExcludeRecursive" />
<e p="$USER_HOME$/.config/git/ignore" t="IncludeRecursive" />
<e p="$USER_HOME$/.nuget/packages/sqlitepclraw.lib.e_sqlite3.linux/1.1.12/runtimes/linux-x64/native/libe_sqlite3.so" t="Include" /> <e p="$USER_HOME$/.nuget/packages/sqlitepclraw.lib.e_sqlite3.linux/1.1.12/runtimes/linux-x64/native/libe_sqlite3.so" t="Include" />
<e p="$PROJECT_DIR$" t="IncludeFlat"> <e p="$PROJECT_DIR$" t="IncludeFlat">
<e p=".git/info/exclude" t="IncludeRecursive" /> <e p=".git/info/exclude" t="IncludeRecursive" />

View File

@@ -36,33 +36,49 @@ namespace DiscImageChef.DiscImages
{ {
public partial class ZZZRawImage public partial class ZZZRawImage
{ {
private MediaType CalculateDiskType() MediaType CalculateDiskType()
{ {
if (imageInfo.SectorSize == 2048) if(imageInfo.SectorSize == 2048)
{ {
if (imageInfo.Sectors == 58620544) return MediaType.REV120; if(imageInfo.Sectors == 58620544)
if (imageInfo.Sectors == 17090880) return MediaType.REV35; return MediaType.REV120;
if (imageInfo.Sectors <= 360000) return MediaType.CD;
if (imageInfo.Sectors <= 2295104) return MediaType.DVDPR; if(imageInfo.Sectors == 17090880)
if (imageInfo.Sectors <= 2298496) return MediaType.DVDR; return MediaType.REV35;
if (imageInfo.Sectors <= 4171712) return MediaType.DVDRDL;
if (imageInfo.Sectors <= 4173824) return MediaType.DVDPRDL; if(imageInfo.Sectors <= 360000)
if (imageInfo.Sectors <= 24438784) return MediaType.BDR; return MediaType.CD;
if(imageInfo.Sectors <= 2295104)
return MediaType.DVDPR;
if(imageInfo.Sectors <= 2298496)
return MediaType.DVDR;
if(imageInfo.Sectors <= 4171712)
return MediaType.DVDRDL;
if(imageInfo.Sectors <= 4173824)
return MediaType.DVDPRDL;
if(imageInfo.Sectors <= 24438784)
return MediaType.BDR;
return imageInfo.Sectors <= 62500864 ? MediaType.BDRXL : MediaType.Unknown; return imageInfo.Sectors <= 62500864 ? MediaType.BDRXL : MediaType.Unknown;
} }
switch (imageInfo.ImageSize) switch(imageInfo.ImageSize)
{ {
case 80384: return MediaType.ECMA_66; case 80384: return MediaType.ECMA_66;
case 81664: return MediaType.IBM23FD; case 81664: return MediaType.IBM23FD;
case 92160: return MediaType.ATARI_525_SD; case 92160: return MediaType.ATARI_525_SD;
case 102400: return MediaType.ACORN_525_SS_SD_40; case 102400: return MediaType.ACORN_525_SS_SD_40;
case 116480: return MediaType.Apple32SS; case 116480: return MediaType.Apple32SS;
case 133120: return MediaType.ATARI_525_ED; case 133120: return MediaType.ATARI_525_ED;
case 143360: return MediaType.Apple33SS; case 143360: return MediaType.Apple33SS;
case 163840: case 163840:
if (imageInfo.SectorSize == 256) return MediaType.ACORN_525_SS_DD_40; if(imageInfo.SectorSize == 256)
return MediaType.ACORN_525_SS_DD_40;
return MediaType.DOS_525_SS_DD_8; return MediaType.DOS_525_SS_DD_8;
case 184320: return MediaType.DOS_525_SS_DD_9; case 184320: return MediaType.DOS_525_SS_DD_9;
@@ -76,15 +92,18 @@ namespace DiscImageChef.DiscImages
case 322560: return MediaType.Apricot_35; case 322560: return MediaType.Apricot_35;
case 325632: return MediaType.ECMA_70; case 325632: return MediaType.ECMA_70;
case 327680: case 327680:
if (imageInfo.SectorSize == 256) return MediaType.ACORN_525_SS_DD_80; if(imageInfo.SectorSize == 256)
return MediaType.ACORN_525_SS_DD_80;
return MediaType.DOS_525_DS_DD_8; return MediaType.DOS_525_DS_DD_8;
case 368640: case 368640:
if (extension == ".st") return MediaType.DOS_35_SS_DD_9; if(extension == ".st")
return MediaType.DOS_35_SS_DD_9;
return MediaType.DOS_525_DS_DD_9; return MediaType.DOS_525_DS_DD_9;
case 409600: case 409600:
if (extension == ".st") return MediaType.ATARI_35_SS_DD; if(extension == ".st")
return MediaType.ATARI_35_SS_DD;
return MediaType.AppleSonySS; return MediaType.AppleSonySS;
case 450560: return MediaType.ATARI_35_SS_DD_11; case 450560: return MediaType.ATARI_35_SS_DD_11;
@@ -94,64 +113,68 @@ namespace DiscImageChef.DiscImages
case 655360: return MediaType.ACORN_525_DS_DD; case 655360: return MediaType.ACORN_525_DS_DD;
case 737280: return MediaType.DOS_35_DS_DD_9; case 737280: return MediaType.DOS_35_DS_DD_9;
case 819200: case 819200:
if (imageInfo.SectorSize == 256) return MediaType.CBM_35_DD; if(imageInfo.SectorSize == 256)
if ((extension == ".adf" || extension == ".adl") && imageInfo.SectorSize == 1024) return MediaType.CBM_35_DD;
if((extension == ".adf" || extension == ".adl") &&
imageInfo.SectorSize == 1024)
return MediaType.ACORN_35_DS_DD; return MediaType.ACORN_35_DS_DD;
if (extension == ".st") return MediaType.ATARI_35_DS_DD;
if(extension == ".st")
return MediaType.ATARI_35_DS_DD;
return MediaType.AppleSonyDS; return MediaType.AppleSonyDS;
case 839680: return MediaType.FDFORMAT_35_DD; case 839680: return MediaType.FDFORMAT_35_DD;
case 901120: case 901120:
if (extension == ".st") return MediaType.ATARI_35_DS_DD_11; if(extension == ".st")
return MediaType.ATARI_35_DS_DD_11;
return MediaType.CBM_AMIGA_35_DD; return MediaType.CBM_AMIGA_35_DD;
case 988416: return MediaType.IBM43FD_256; case 988416: return MediaType.IBM43FD_256;
case 995072: return MediaType.IBM53FD_256; case 995072: return MediaType.IBM53FD_256;
case 1021696: return MediaType.ECMA_99_26; case 1021696: return MediaType.ECMA_99_26;
case 1146624: return MediaType.IBM53FD_512; case 1146624: return MediaType.IBM53FD_512;
case 1177344: return MediaType.ECMA_99_15; case 1177344: return MediaType.ECMA_99_15;
case 1222400: return MediaType.IBM53FD_1024; case 1222400: return MediaType.IBM53FD_1024;
case 1228800: return MediaType.DOS_525_HD; case 1228800: return MediaType.DOS_525_HD;
case 1255168: return MediaType.ECMA_69_8; case 1255168: return MediaType.ECMA_69_8;
case 1261568: return MediaType.NEC_525_HD; case 1261568: return MediaType.NEC_525_HD;
case 1304320: return MediaType.ECMA_99_8; case 1304320: return MediaType.ECMA_99_8;
case 1427456: return MediaType.FDFORMAT_525_HD; case 1427456: return MediaType.FDFORMAT_525_HD;
case 1474560: return MediaType.DOS_35_HD; case 1474560: return MediaType.DOS_35_HD;
case 1638400: return MediaType.ACORN_35_DS_HD; case 1638400: return MediaType.ACORN_35_DS_HD;
case 1720320: return MediaType.DMF; case 1720320: return MediaType.DMF;
case 1763328: return MediaType.FDFORMAT_35_HD; case 1763328: return MediaType.FDFORMAT_35_HD;
case 1802240: return MediaType.CBM_AMIGA_35_HD; case 1802240: return MediaType.CBM_AMIGA_35_HD;
case 1880064: return MediaType.XDF_35; case 1880064: return MediaType.XDF_35;
case 1884160: return MediaType.XDF_35; case 1884160: return MediaType.XDF_35;
case 2949120: return MediaType.DOS_35_ED; case 2949120: return MediaType.DOS_35_ED;
case 9338880: return MediaType.NEC_35_TD; case 9338880: return MediaType.NEC_35_TD;
case 20818944: return MediaType.Floptical; case 20818944: return MediaType.Floptical;
case 33554432: return MediaType.FD32MB; case 33554432: return MediaType.FD32MB;
case 40387584: return MediaType.PocketZip; case 40387584: return MediaType.PocketZip;
case 100663296: return MediaType.ZIP100; case 100663296: return MediaType.ZIP100;
case 126222336: return MediaType.LS120; case 126222336: return MediaType.LS120;
case 127923200: return MediaType.ECMA_154; case 127398912: return MediaType.ECMA_154;
case 201410560: return MediaType.HiFD; case 201410560: return MediaType.HiFD;
case 229632000: return MediaType.ECMA_201; case 228518400: return MediaType.ECMA_201;
case 240386048: return MediaType.LS240; case 240386048: return MediaType.LS240;
case 250640384: return MediaType.ZIP250; case 250640384: return MediaType.ZIP250;
case 481520640: return MediaType.ECMA_183_512; case 481520640: return MediaType.ECMA_183_512;
case 533403648: return MediaType.ECMA_183; case 533403648: return MediaType.ECMA_183;
case 596787200: return MediaType.ECMA_184_512; case 596787200: return MediaType.ECMA_184_512;
case 654540800: return MediaType.ECMA_184; case 654540800: return MediaType.ECMA_184;
case 656310272 when imageInfo.SectorSize == 512: return MediaType.PD650; case 656310272 when imageInfo.SectorSize == 512: return MediaType.PD650;
case 664829952 when imageInfo.SectorSize == 512: return MediaType.PD650; case 664829952 when imageInfo.SectorSize == 512: return MediaType.PD650;
case 1070617600: return MediaType.Jaz; case 1070617600: return MediaType.Jaz;
#region Commodore #region Commodore
case 174848: case 174848:
case 175531: return MediaType.CBM_1540; case 175531: return MediaType.CBM_1540;
case 196608: case 196608:
case 197376: return MediaType.CBM_1540_Ext; case 197376: return MediaType.CBM_1540_Ext;
case 349696: case 349696:
case 351062: return MediaType.CBM_1571; case 351062: return MediaType.CBM_1571;
#endregion Commodore #endregion Commodore
default: return MediaType.GENERIC_HDD; default: return MediaType.GENERIC_HDD;

View File

@@ -61,7 +61,7 @@ doubt, please contact us.
Media Media
===== =====
This is the media for the drives listed above, or media for drives we do have, but lack and thus cannot test the actual hardware. This is the media for the drives listed above, or media for drives we do have, but lack and thus cannot test the actual hardware.
- 3.5" magneto-optical media: 540MiB - 3.5" magneto-optical media: 540MiB, 2.3GiB GigaMO
- 5.25" magneto-optical media: 128MiB, 640MiB, 9.6GiB - 5.25" magneto-optical media: 128MiB, 640MiB, 9.6GiB
- ADR tapes - ADR tapes
- AIT tapes - AIT tapes