REFACTOR: Fixed MOST name inconsistencies.

This commit is contained in:
2017-12-20 17:15:26 +00:00
parent 542520f5cd
commit a4650c61aa
428 changed files with 16205 additions and 16320 deletions

View File

@@ -39,29 +39,29 @@ using DiscImageChef.CommonTypes;
using DiscImageChef.Console;
using DiscImageChef.Filters;
namespace DiscImageChef.ImagePlugins
namespace DiscImageChef.DiscImages
{
public class DIM : ImagePlugin
public class Dim : ImagePlugin
{
#region Internal enumerations
enum DiskType : byte
{
HD2 = 0,
HS2 = 1,
HC2 = 2,
HDE2 = 3,
HQ2 = 9,
Hd2 = 0,
Hs2 = 1,
Hc2 = 2,
Hde2 = 3,
Hq2 = 9,
N88 = 17
}
#endregion
#region Internal constants
readonly byte[] HeaderID = {0x44, 0x49, 0x46, 0x43, 0x20, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x20, 0x20};
readonly byte[] headerId = {0x44, 0x49, 0x46, 0x43, 0x20, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x20, 0x20};
#endregion
#region Internal variables
/// <summary>Start of data sectors in disk image, should be 0x100</summary>
const uint dataOffset = 0x100;
const uint DATA_OFFSET = 0x100;
/// <summary>Disk image file</summary>
Filter dimImageFilter;
byte[] comment;
@@ -69,31 +69,31 @@ namespace DiscImageChef.ImagePlugins
DiskType dskType;
#endregion
public DIM()
public Dim()
{
Name = "DIM Disk Image";
PluginUUID = new Guid("0240B7B1-E959-4CDC-B0BD-386D6E467B88");
PluginUuid = new Guid("0240B7B1-E959-4CDC-B0BD-386D6E467B88");
ImageInfo = new ImageInfo();
ImageInfo.readableSectorTags = new List<SectorTagType>();
ImageInfo.readableMediaTags = new List<MediaTagType>();
ImageInfo.imageHasPartitions = false;
ImageInfo.imageHasSessions = false;
ImageInfo.imageVersion = null;
ImageInfo.imageApplication = null;
ImageInfo.imageApplicationVersion = null;
ImageInfo.imageCreator = null;
ImageInfo.imageComments = null;
ImageInfo.mediaManufacturer = null;
ImageInfo.mediaModel = null;
ImageInfo.mediaSerialNumber = null;
ImageInfo.mediaBarcode = null;
ImageInfo.mediaPartNumber = null;
ImageInfo.mediaSequence = 0;
ImageInfo.lastMediaSequence = 0;
ImageInfo.driveManufacturer = null;
ImageInfo.driveModel = null;
ImageInfo.driveSerialNumber = null;
ImageInfo.driveFirmwareRevision = null;
ImageInfo.ReadableSectorTags = new List<SectorTagType>();
ImageInfo.ReadableMediaTags = new List<MediaTagType>();
ImageInfo.ImageHasPartitions = false;
ImageInfo.ImageHasSessions = false;
ImageInfo.ImageVersion = null;
ImageInfo.ImageApplication = null;
ImageInfo.ImageApplicationVersion = null;
ImageInfo.ImageCreator = null;
ImageInfo.ImageComments = null;
ImageInfo.MediaManufacturer = null;
ImageInfo.MediaModel = null;
ImageInfo.MediaSerialNumber = null;
ImageInfo.MediaBarcode = null;
ImageInfo.MediaPartNumber = null;
ImageInfo.MediaSequence = 0;
ImageInfo.LastMediaSequence = 0;
ImageInfo.DriveManufacturer = null;
ImageInfo.DriveModel = null;
ImageInfo.DriveSerialNumber = null;
ImageInfo.DriveFirmwareRevision = null;
}
public override bool IdentifyImage(Filter imageFilter)
@@ -101,7 +101,7 @@ namespace DiscImageChef.ImagePlugins
Stream stream = imageFilter.GetDataForkStream();
stream.Seek(0, SeekOrigin.Begin);
if(stream.Length < dataOffset) return false;
if(stream.Length < DATA_OFFSET) return false;
comment = new byte[60];
hdrId = new byte[13];
@@ -112,7 +112,7 @@ namespace DiscImageChef.ImagePlugins
stream.Seek(0xC2, SeekOrigin.Begin);
stream.Read(comment, 0, 60);
return HeaderID.SequenceEqual(hdrId);
return headerId.SequenceEqual(hdrId);
}
public override bool OpenImage(Filter imageFilter)
@@ -120,9 +120,9 @@ namespace DiscImageChef.ImagePlugins
Stream stream = imageFilter.GetDataForkStream();
stream.Seek(0, SeekOrigin.Begin);
if(stream.Length < dataOffset) return false;
if(stream.Length < DATA_OFFSET) return false;
long diskSize = stream.Length - dataOffset;
long diskSize = stream.Length - DATA_OFFSET;
comment = new byte[60];
hdrId = new byte[13];
@@ -133,78 +133,78 @@ namespace DiscImageChef.ImagePlugins
stream.Seek(0xC2, SeekOrigin.Begin);
stream.Read(comment, 0, 60);
if(!HeaderID.SequenceEqual(hdrId)) return false;
if(!headerId.SequenceEqual(hdrId)) return false;
ImageInfo.mediaType = MediaType.Unknown;
ImageInfo.MediaType = MediaType.Unknown;
switch(dskType)
{
// 8 spt, 1024 bps
case DiskType.HD2:
case DiskType.Hd2:
if(diskSize % (2 * 8 * 1024) != 0)
{
DicConsole.ErrorWriteLine("DIM shows unknown image with {0} tracks", diskSize / (2 * 8 * 1024));
return false;
}
if(diskSize / (2 * 8 * 1024) == 77) ImageInfo.mediaType = MediaType.SHARP_525;
ImageInfo.sectorSize = 1024;
if(diskSize / (2 * 8 * 1024) == 77) ImageInfo.MediaType = MediaType.SHARP_525;
ImageInfo.SectorSize = 1024;
break;
// 9 spt, 1024 bps
case DiskType.HS2:
case DiskType.Hs2:
if(diskSize % (2 * 9 * 512) != 0)
{
DicConsole.ErrorWriteLine("DIM shows unknown image with {0} tracks", diskSize / (2 * 9 * 512));
return false;
}
if(diskSize / (2 * 9 * 512) == 80) ImageInfo.mediaType = MediaType.SHARP_525_9;
ImageInfo.sectorSize = 512;
if(diskSize / (2 * 9 * 512) == 80) ImageInfo.MediaType = MediaType.SHARP_525_9;
ImageInfo.SectorSize = 512;
break;
// 15 spt, 512 bps
case DiskType.HC2:
case DiskType.Hc2:
if(diskSize % (2 * 15 * 512) != 0)
{
DicConsole.ErrorWriteLine("DIM shows unknown image with {0} tracks", diskSize / (2 * 15 * 512));
return false;
}
if(diskSize / (2 * 15 * 512) == 80) ImageInfo.mediaType = MediaType.DOS_525_HD;
ImageInfo.sectorSize = 512;
if(diskSize / (2 * 15 * 512) == 80) ImageInfo.MediaType = MediaType.DOS_525_HD;
ImageInfo.SectorSize = 512;
break;
// 9 spt, 1024 bps
case DiskType.HDE2:
case DiskType.Hde2:
if(diskSize % (2 * 9 * 512) != 0)
{
DicConsole.ErrorWriteLine("DIM shows unknown image with {0} tracks", diskSize / (2 * 9 * 512));
return false;
}
if(diskSize / (2 * 9 * 512) == 80) ImageInfo.mediaType = MediaType.SHARP_35_9;
ImageInfo.sectorSize = 512;
if(diskSize / (2 * 9 * 512) == 80) ImageInfo.MediaType = MediaType.SHARP_35_9;
ImageInfo.SectorSize = 512;
break;
// 18 spt, 512 bps
case DiskType.HQ2:
case DiskType.Hq2:
if(diskSize % (2 * 18 * 512) != 0)
{
DicConsole.ErrorWriteLine("DIM shows unknown image with {0} tracks", diskSize / (2 * 18 * 512));
return false;
}
if(diskSize / (2 * 18 * 512) == 80) ImageInfo.mediaType = MediaType.DOS_35_HD;
ImageInfo.sectorSize = 512;
if(diskSize / (2 * 18 * 512) == 80) ImageInfo.MediaType = MediaType.DOS_35_HD;
ImageInfo.SectorSize = 512;
break;
// 26 spt, 256 bps
case DiskType.N88:
if(diskSize % (2 * 26 * 256) == 0)
{
if(diskSize % (2 * 26 * 256) == 77) ImageInfo.mediaType = MediaType.NEC_8_DD;
ImageInfo.sectorSize = 256;
if(diskSize % (2 * 26 * 256) == 77) ImageInfo.MediaType = MediaType.NEC_8_DD;
ImageInfo.SectorSize = 256;
}
else if(diskSize % (2 * 26 * 128) == 0)
{
if(diskSize % (2 * 26 * 128) == 77) ImageInfo.mediaType = MediaType.NEC_8_SD;
ImageInfo.sectorSize = 256;
if(diskSize % (2 * 26 * 128) == 77) ImageInfo.MediaType = MediaType.NEC_8_SD;
ImageInfo.SectorSize = 256;
}
else
{
@@ -216,52 +216,52 @@ namespace DiscImageChef.ImagePlugins
default: return false;
}
DicConsole.VerboseWriteLine("DIM image contains a disk of type {0}", ImageInfo.mediaType);
if(!string.IsNullOrEmpty(ImageInfo.imageComments))
DicConsole.VerboseWriteLine("DIM comments: {0}", ImageInfo.imageComments);
DicConsole.VerboseWriteLine("DIM image contains a disk of type {0}", ImageInfo.MediaType);
if(!string.IsNullOrEmpty(ImageInfo.ImageComments))
DicConsole.VerboseWriteLine("DIM comments: {0}", ImageInfo.ImageComments);
dimImageFilter = imageFilter;
ImageInfo.imageSize = (ulong)diskSize;
ImageInfo.imageCreationTime = imageFilter.GetCreationTime();
ImageInfo.imageLastModificationTime = imageFilter.GetLastWriteTime();
ImageInfo.imageName = Path.GetFileNameWithoutExtension(imageFilter.GetFilename());
ImageInfo.sectors = ImageInfo.imageSize / ImageInfo.sectorSize;
ImageInfo.imageComments = StringHandlers.CToString(comment, Encoding.GetEncoding(932));
ImageInfo.xmlMediaType = XmlMediaType.BlockMedia;
ImageInfo.ImageSize = (ulong)diskSize;
ImageInfo.ImageCreationTime = imageFilter.GetCreationTime();
ImageInfo.ImageLastModificationTime = imageFilter.GetLastWriteTime();
ImageInfo.ImageName = Path.GetFileNameWithoutExtension(imageFilter.GetFilename());
ImageInfo.Sectors = ImageInfo.ImageSize / ImageInfo.SectorSize;
ImageInfo.ImageComments = StringHandlers.CToString(comment, Encoding.GetEncoding(932));
ImageInfo.XmlMediaType = XmlMediaType.BlockMedia;
switch(ImageInfo.mediaType)
switch(ImageInfo.MediaType)
{
case MediaType.SHARP_525:
ImageInfo.cylinders = 77;
ImageInfo.heads = 2;
ImageInfo.sectorsPerTrack = 8;
ImageInfo.Cylinders = 77;
ImageInfo.Heads = 2;
ImageInfo.SectorsPerTrack = 8;
break;
case MediaType.SHARP_525_9:
ImageInfo.cylinders = 80;
ImageInfo.heads = 2;
ImageInfo.sectorsPerTrack = 9;
ImageInfo.Cylinders = 80;
ImageInfo.Heads = 2;
ImageInfo.SectorsPerTrack = 9;
break;
case MediaType.DOS_525_HD:
ImageInfo.cylinders = 80;
ImageInfo.heads = 2;
ImageInfo.sectorsPerTrack = 15;
ImageInfo.Cylinders = 80;
ImageInfo.Heads = 2;
ImageInfo.SectorsPerTrack = 15;
break;
case MediaType.SHARP_35_9:
ImageInfo.cylinders = 80;
ImageInfo.heads = 2;
ImageInfo.sectorsPerTrack = 9;
ImageInfo.Cylinders = 80;
ImageInfo.Heads = 2;
ImageInfo.SectorsPerTrack = 9;
break;
case MediaType.DOS_35_HD:
ImageInfo.cylinders = 80;
ImageInfo.heads = 2;
ImageInfo.sectorsPerTrack = 18;
ImageInfo.Cylinders = 80;
ImageInfo.Heads = 2;
ImageInfo.SectorsPerTrack = 18;
break;
case MediaType.NEC_8_DD:
case MediaType.NEC_8_SD:
ImageInfo.cylinders = 77;
ImageInfo.heads = 2;
ImageInfo.sectorsPerTrack = 26;
ImageInfo.Cylinders = 77;
ImageInfo.Heads = 2;
ImageInfo.SectorsPerTrack = 26;
break;
}
@@ -275,17 +275,17 @@ namespace DiscImageChef.ImagePlugins
public override ulong GetImageSize()
{
return ImageInfo.imageSize;
return ImageInfo.ImageSize;
}
public override ulong GetSectors()
{
return ImageInfo.sectors;
return ImageInfo.Sectors;
}
public override uint GetSectorSize()
{
return ImageInfo.sectorSize;
return ImageInfo.SectorSize;
}
public override string GetImageFormat()
@@ -295,47 +295,47 @@ namespace DiscImageChef.ImagePlugins
public override string GetImageVersion()
{
return ImageInfo.imageVersion;
return ImageInfo.ImageVersion;
}
public override string GetImageApplication()
{
return ImageInfo.imageApplication;
return ImageInfo.ImageApplication;
}
public override string GetImageApplicationVersion()
{
return ImageInfo.imageApplicationVersion;
return ImageInfo.ImageApplicationVersion;
}
public override string GetImageCreator()
{
return ImageInfo.imageCreator;
return ImageInfo.ImageCreator;
}
public override DateTime GetImageCreationTime()
{
return ImageInfo.imageCreationTime;
return ImageInfo.ImageCreationTime;
}
public override DateTime GetImageLastModificationTime()
{
return ImageInfo.imageLastModificationTime;
return ImageInfo.ImageLastModificationTime;
}
public override string GetImageName()
{
return ImageInfo.imageName;
return ImageInfo.ImageName;
}
public override string GetImageComments()
{
return ImageInfo.imageComments;
return ImageInfo.ImageComments;
}
public override MediaType GetMediaType()
{
return ImageInfo.mediaType;
return ImageInfo.MediaType;
}
public override byte[] ReadSector(ulong sectorAddress)
@@ -345,19 +345,19 @@ namespace DiscImageChef.ImagePlugins
public override byte[] ReadSectors(ulong sectorAddress, uint length)
{
if(sectorAddress > ImageInfo.sectors - 1)
if(sectorAddress > ImageInfo.Sectors - 1)
throw new ArgumentOutOfRangeException(nameof(sectorAddress), "Sector address not found");
if(sectorAddress + length > ImageInfo.sectors)
if(sectorAddress + length > ImageInfo.Sectors)
throw new ArgumentOutOfRangeException(nameof(length), "Requested more sectors than available");
byte[] buffer = new byte[length * ImageInfo.sectorSize];
byte[] buffer = new byte[length * ImageInfo.SectorSize];
Stream stream = dimImageFilter.GetDataForkStream();
stream.Seek((long)(dataOffset + sectorAddress * ImageInfo.sectorSize), SeekOrigin.Begin);
stream.Seek((long)(DATA_OFFSET + sectorAddress * ImageInfo.SectorSize), SeekOrigin.Begin);
stream.Read(buffer, 0, (int)(length * ImageInfo.sectorSize));
stream.Read(buffer, 0, (int)(length * ImageInfo.SectorSize));
return buffer;
}
@@ -503,18 +503,18 @@ namespace DiscImageChef.ImagePlugins
throw new FeatureUnsupportedImageException("Feature not supported by image format");
}
public override bool? VerifySectors(ulong sectorAddress, uint length, out List<ulong> FailingLBAs,
out List<ulong> UnknownLBAs)
public override bool? VerifySectors(ulong sectorAddress, uint length, out List<ulong> failingLbas,
out List<ulong> unknownLbas)
{
FailingLBAs = new List<ulong>();
UnknownLBAs = new List<ulong>();
for(ulong i = 0; i < ImageInfo.sectors; i++) UnknownLBAs.Add(i);
failingLbas = new List<ulong>();
unknownLbas = new List<ulong>();
for(ulong i = 0; i < ImageInfo.Sectors; i++) unknownLbas.Add(i);
return null;
}
public override bool? VerifySectors(ulong sectorAddress, uint length, uint track, out List<ulong> FailingLBAs,
out List<ulong> UnknownLBAs)
public override bool? VerifySectors(ulong sectorAddress, uint length, uint track, out List<ulong> failingLbas,
out List<ulong> unknownLbas)
{
throw new FeatureUnsupportedImageException("Feature not supported by image format");
}