mirror of
https://github.com/aaru-dps/Aaru.Server.git
synced 2025-12-16 19:24:27 +00:00
Add support for D64, D71 and D81 disk images.
This commit is contained in:
@@ -353,6 +353,10 @@ namespace DiscImageChef.CommonTypes
|
||||
CBM_AMIGA_35_HD,
|
||||
/// <summary>5,25", SS, DD, 35 tracks, GCR</summary>
|
||||
CBM_1540,
|
||||
/// <summary>5,25", SS, DD, 40 tracks, GCR</summary>
|
||||
CBM_1540_Ext,
|
||||
/// <summary>5,25", DS, DD, 35 tracks, GCR</summary>
|
||||
CBM_1571,
|
||||
#endregion Commodore standard floppy formats
|
||||
|
||||
#region NEC standard floppy formats
|
||||
|
||||
@@ -85,6 +85,13 @@ namespace DiscImageChef.ImagePlugins
|
||||
// Check known disk sizes with sectors smaller than 512
|
||||
switch(imageFilter.GetDataForkLength())
|
||||
{
|
||||
#region Commodore
|
||||
case 174848:
|
||||
case 175531:
|
||||
case 197376:
|
||||
case 351062:
|
||||
case 822400:
|
||||
#endregion Commodore
|
||||
case 81664:
|
||||
case 116480:
|
||||
case 242944:
|
||||
@@ -115,11 +122,13 @@ namespace DiscImageChef.ImagePlugins
|
||||
stream.Seek(0, SeekOrigin.Begin);
|
||||
|
||||
string extension = Path.GetExtension(imageFilter.GetFilename()).ToLower();
|
||||
if(extension == ".iso" && (imageFilter.GetDataForkLength() % 2048) == 0)
|
||||
ImageInfo.sectorSize = 2048;
|
||||
else
|
||||
{
|
||||
switch(imageFilter.GetDataForkLength())
|
||||
if(extension == ".iso" && (imageFilter.GetDataForkLength() % 2048) == 0)
|
||||
ImageInfo.sectorSize = 2048;
|
||||
else if(extension == ".d81" && imageFilter.GetDataForkLength() == 819200)
|
||||
ImageInfo.sectorSize = 256;
|
||||
else
|
||||
{
|
||||
switch(imageFilter.GetDataForkLength())
|
||||
{
|
||||
case 242944:
|
||||
case 256256:
|
||||
@@ -145,7 +154,16 @@ namespace DiscImageChef.ImagePlugins
|
||||
case 80384: // T0S0 = 128bps
|
||||
case 325632: // T0S0 = 128bps, T0S1 = 256bps
|
||||
case 653312: // T0S0 = 128bps, T0S1 = 256bps
|
||||
ImageInfo.sectorSize = 256;
|
||||
#region Commodore
|
||||
case 174848:
|
||||
case 175531:
|
||||
case 196608:
|
||||
case 197376:
|
||||
case 349696:
|
||||
case 351062:
|
||||
case 822400:
|
||||
#endregion Commodore
|
||||
ImageInfo.sectorSize = 256;
|
||||
break;
|
||||
case 81664:
|
||||
ImageInfo.sectorSize = 319;
|
||||
@@ -249,7 +267,19 @@ namespace DiscImageChef.ImagePlugins
|
||||
ImageInfo.sectorSize = 8192; // Biggest sector size
|
||||
differentTrackZeroSize = true;
|
||||
break;
|
||||
default:
|
||||
case 175531:
|
||||
ImageInfo.sectors = 683;
|
||||
break;
|
||||
case 197375:
|
||||
ImageInfo.sectors = 768;
|
||||
break;
|
||||
case 351062:
|
||||
ImageInfo.sectors = 1366;
|
||||
break;
|
||||
case 822400:
|
||||
ImageInfo.sectors = 3200;
|
||||
break;
|
||||
default:
|
||||
ImageInfo.sectors = ImageInfo.imageSize / ImageInfo.sectorSize;
|
||||
break;
|
||||
}
|
||||
@@ -279,6 +309,7 @@ namespace DiscImageChef.ImagePlugins
|
||||
{
|
||||
ImageInfo.sectorSize = 256;
|
||||
ImageInfo.sectors = ImageInfo.imageSize / ImageInfo.sectorSize;
|
||||
ImageInfo.mediaType = MediaType.GENERIC_HDD;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -628,6 +659,8 @@ namespace DiscImageChef.ImagePlugins
|
||||
case 737280:
|
||||
return MediaType.DOS_35_DS_DD_9;
|
||||
case 819200:
|
||||
if(ImageInfo.sectorSize == 256)
|
||||
return MediaType.CBM_35_DD;
|
||||
return MediaType.AppleSonyDS;
|
||||
case 839680:
|
||||
return MediaType.FDFORMAT_35_DD;
|
||||
@@ -683,7 +716,18 @@ namespace DiscImageChef.ImagePlugins
|
||||
return MediaType.ECMA_184_512;
|
||||
case 654540800:
|
||||
return MediaType.ECMA_184;
|
||||
default:
|
||||
#region Commodore
|
||||
case 174848:
|
||||
case 175531:
|
||||
return MediaType.CBM_1540;
|
||||
case 196608:
|
||||
case 197376:
|
||||
return MediaType.CBM_1540_Ext;
|
||||
case 349696:
|
||||
case 351062:
|
||||
return MediaType.CBM_1571;
|
||||
#endregion Commodore
|
||||
default:
|
||||
return MediaType.GENERIC_HDD;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,6 +63,8 @@ namespace DiscImageChef.Metadata
|
||||
case CommonTypes.MediaType.ATARI_525_ED:
|
||||
case CommonTypes.MediaType.ATARI_525_DD:
|
||||
case CommonTypes.MediaType.CBM_1540:
|
||||
case CommonTypes.MediaType.CBM_1540_Ext:
|
||||
case CommonTypes.MediaType.CBM_1571:
|
||||
case CommonTypes.MediaType.ECMA_66:
|
||||
case CommonTypes.MediaType.ECMA_70:
|
||||
case CommonTypes.MediaType.NEC_525_HD:
|
||||
|
||||
@@ -503,9 +503,14 @@ namespace DiscImageChef.Metadata
|
||||
DiscSubType = "Atari double-density";
|
||||
break;
|
||||
case CommonTypes.MediaType.CBM_1540:
|
||||
case CommonTypes.MediaType.CBM_1540_Ext:
|
||||
DiscType = "5.25\" floppy";
|
||||
DiscSubType = "Commodore 1540/1541";
|
||||
break;
|
||||
case CommonTypes.MediaType.CBM_1571:
|
||||
DiscType = "5.25\" floppy";
|
||||
DiscSubType = "Commodore 1571";
|
||||
break;
|
||||
case CommonTypes.MediaType.CBM_35_DD:
|
||||
DiscType = "3.5\" floppy";
|
||||
DiscSubType = "Commodore 1581";
|
||||
|
||||
Reference in New Issue
Block a user