mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
* DiscImageChef.CommonTypes/DiskType.cs:
Added Acorn Archimedes and Commodore 15xx floppies. * DiscImageChef.DiscImages/ImagePlugin.cs: Added DiskTag for PCMCIA CIS and SecureDigital/MMC CID, CSD and extended CSD. * DiscImageChef.Metadata/DiskType.cs: Added known floppies and magneto-opticals. * DiscImageChef/Commands/CreateSidecar.cs: Implemented most support for block media sidecars.
This commit is contained in:
@@ -1,3 +1,8 @@
|
|||||||
|
2015-12-31 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
|
* DiskType.cs:
|
||||||
|
Added Acorn Archimedes and Commodore 15xx floppies.
|
||||||
|
|
||||||
2015-12-03 Natalia Portillo <claunia@claunia.com>
|
2015-12-03 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
* DiskType.cs:
|
* DiskType.cs:
|
||||||
|
|||||||
@@ -294,6 +294,8 @@ namespace DiscImageChef.CommonTypes
|
|||||||
ACORN_525_SS_DD_80,
|
ACORN_525_SS_DD_80,
|
||||||
/// <summary>5,25", DS, DD, 80 tracks, 16 spt, 256 bytes/sector, MFM</summary>
|
/// <summary>5,25", DS, DD, 80 tracks, 16 spt, 256 bytes/sector, MFM</summary>
|
||||||
ACORN_525_DS_DD,
|
ACORN_525_DS_DD,
|
||||||
|
/// <summary>3,5", DS, DD, 80 tracks, 10 spt, 512 bytes/sector, MFM</summary>
|
||||||
|
ACORN_35_DS_DD,
|
||||||
|
|
||||||
// Atari standard floppy formats
|
// Atari standard floppy formats
|
||||||
/// <summary>5,25", SS, SD, 40 tracks, 18 spt, 128 bytes/sector, FM</summary>
|
/// <summary>5,25", SS, SD, 40 tracks, 18 spt, 128 bytes/sector, FM</summary>
|
||||||
@@ -304,12 +306,14 @@ namespace DiscImageChef.CommonTypes
|
|||||||
ATARI_525_DD,
|
ATARI_525_DD,
|
||||||
|
|
||||||
// Commodore standard floppy formats
|
// Commodore standard floppy formats
|
||||||
/// <summary>3,5", DS, DD, 80 tracks, 10 spt, 512 bytes/sector, MFM</summary>
|
/// <summary>3,5", DS, DD, 80 tracks, 10 spt, 512 bytes/sector, MFM (1581)</summary>
|
||||||
CBM_35_DD,
|
CBM_35_DD,
|
||||||
/// <summary>3,5", DS, DD, 80 tracks, 11 spt, 512 bytes/sector, MFM (Amiga)</summary>
|
/// <summary>3,5", DS, DD, 80 tracks, 11 spt, 512 bytes/sector, MFM (Amiga)</summary>
|
||||||
CBM_AMIGA_35_DD,
|
CBM_AMIGA_35_DD,
|
||||||
/// <summary>3,5", DS, HD, 80 tracks, 22 spt, 512 bytes/sector, MFM (Amiga)</summary>
|
/// <summary>3,5", DS, HD, 80 tracks, 22 spt, 512 bytes/sector, MFM (Amiga)</summary>
|
||||||
CBM_AMIGA_35_HD,
|
CBM_AMIGA_35_HD,
|
||||||
|
/// <summary>5,25", SS, DD, 35 tracks, GCR</summary>
|
||||||
|
CBM_1540,
|
||||||
|
|
||||||
// NEC standard floppy formats
|
// NEC standard floppy formats
|
||||||
/// <summary>8", SS, SD, 77 tracks, 26 spt, 128 bytes/sector, FM</summary>
|
/// <summary>8", SS, SD, 77 tracks, 26 spt, 128 bytes/sector, FM</summary>
|
||||||
@@ -378,9 +382,9 @@ namespace DiscImageChef.CommonTypes
|
|||||||
FDFORMAT_525_DD,
|
FDFORMAT_525_DD,
|
||||||
/// <summary>5,25", DS, HD, 82 tracks, 17 spt, 512 bytes/sector, MFM</summary>
|
/// <summary>5,25", DS, HD, 82 tracks, 17 spt, 512 bytes/sector, MFM</summary>
|
||||||
FDFORMAT_525_HD,
|
FDFORMAT_525_HD,
|
||||||
/// <summary>5,25", DS, DD, 82 tracks, 10 spt, 512 bytes/sector, MFM</summary>
|
/// <summary>3,5", DS, DD, 82 tracks, 10 spt, 512 bytes/sector, MFM</summary>
|
||||||
FDFORMAT_35_DD,
|
FDFORMAT_35_DD,
|
||||||
/// <summary>5,25", DS, HD, 82 tracks, 21 spt, 512 bytes/sector, MFM</summary>
|
/// <summary>3,5", DS, HD, 82 tracks, 21 spt, 512 bytes/sector, MFM</summary>
|
||||||
FDFORMAT_35_HD,
|
FDFORMAT_35_HD,
|
||||||
|
|
||||||
// Generic hard disks
|
// Generic hard disks
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
2015-12-31 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
|
* ImagePlugin.cs:
|
||||||
|
Added DiskTag for PCMCIA CIS and SecureDigital/MMC CID, CSD
|
||||||
|
and extended CSD.
|
||||||
|
|
||||||
2015-12-25 Natalia Portillo <claunia@claunia.com>
|
2015-12-25 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
* GDI.cs:
|
* GDI.cs:
|
||||||
|
|||||||
@@ -662,7 +662,15 @@ namespace DiscImageChef.ImagePlugins
|
|||||||
/// <summary>ATA IDENTIFY DEVICE response</summary>
|
/// <summary>ATA IDENTIFY DEVICE response</summary>
|
||||||
ATA_IDENTIFY,
|
ATA_IDENTIFY,
|
||||||
/// <summary>ATA IDENTIFY PACKET DEVICE response</summary>
|
/// <summary>ATA IDENTIFY PACKET DEVICE response</summary>
|
||||||
ATAPI_IDENTIFY
|
ATAPI_IDENTIFY,
|
||||||
|
/// <summary>PCMCIA/CardBus Card Information Structure</summary>
|
||||||
|
PCMCIA_CIS,
|
||||||
|
/// <summary>SecureDigital / MMC CID</summary>
|
||||||
|
SD_CID,
|
||||||
|
/// <summary>SecureDigital / MMC CSD</summary>
|
||||||
|
SD_CSD,
|
||||||
|
/// <summary>SecureDigital Extended CSD</summary>
|
||||||
|
SD_ExtendedCSD
|
||||||
};
|
};
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -1,3 +1,8 @@
|
|||||||
|
2015-12-31 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
|
* DiskType.cs:
|
||||||
|
Added known floppies and magneto-opticals.
|
||||||
|
|
||||||
2015-12-13 Natalia Portillo <claunia@claunia.com>
|
2015-12-13 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
* DiskType.cs:
|
* DiskType.cs:
|
||||||
|
|||||||
@@ -341,6 +341,297 @@ namespace DiscImageChef.Metadata
|
|||||||
DiscType = "BD";
|
DiscType = "BD";
|
||||||
DiscSubType = "Xbox One Game Disc (XGD4)";
|
DiscSubType = "Xbox One Game Disc (XGD4)";
|
||||||
break;
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.Apple32SS:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "Apple DOS 3.2";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.Apple32DS:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "Apple DOS 3.2 (double-sided)";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.Apple33SS:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "Apple DOS 3.3";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.Apple33DS:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "Apple DOS 3.3 (double-sided)";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.AppleSonySS:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "Apple 400K";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.AppleSonyDS:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "Apple 800K";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.AppleFileWare:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "Apple FileWare";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.DOS_525_SS_DD_8:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "IBM double-density, single-sided, 8 sectors";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.DOS_525_SS_DD_9:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "IBM double-density, single-sided, 9 sectors";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.DOS_525_DS_DD_8:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "IBM double-density, double-sided, 8 sectors";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.DOS_525_DS_DD_9:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "IBM double-density, double-sided, 9 sectors";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.DOS_525_HD:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "IBM high-density";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.DOS_35_SS_DD_8:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "IBM double-density, single-sided, 8 sectors";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.DOS_35_SS_DD_9:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "IBM double-density, single-sided, 9 sectors";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.DOS_35_DS_DD_8:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "IBM double-density, double-sided, 8 sectors";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.DOS_35_DS_DD_9:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "IBM double-density, double-sided, 9 sectors";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.DOS_35_HD:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "IBM high-density";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.DOS_35_ED:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "IBM extra-density";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.DMF:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "Microsoft DMF";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.DMF_82:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "Microsoft DMF (82-track)";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.XDF_35:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "IBM XDF";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.XDF_525:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "IBM XDF";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.IBM23FD:
|
||||||
|
DiscType = "8\" floppy";
|
||||||
|
DiscSubType = "IBM 23FD";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.IBM33FD_128:
|
||||||
|
DiscType = "8\" floppy";
|
||||||
|
DiscSubType = "IBM 33FD (128 bytes/sector)";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.IBM33FD_256:
|
||||||
|
DiscType = "8\" floppy";
|
||||||
|
DiscSubType = "IBM 33FD (256 bytes/sector)";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.IBM33FD_512:
|
||||||
|
DiscType = "8\" floppy";
|
||||||
|
DiscSubType = "IBM 33FD (512 bytes/sector)";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.IBM43FD_128:
|
||||||
|
DiscType = "8\" floppy";
|
||||||
|
DiscSubType = "IBM 43FD (128 bytes/sector)";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.IBM43FD_256:
|
||||||
|
DiscType = "8\" floppy";
|
||||||
|
DiscSubType = "IBM 43FD (256 bytes/sector)";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.IBM53FD_256:
|
||||||
|
DiscType = "8\" floppy";
|
||||||
|
DiscSubType = "IBM 53FD (256 bytes/sector)";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.IBM53FD_512:
|
||||||
|
DiscType = "8\" floppy";
|
||||||
|
DiscSubType = "IBM 53FD (512 bytes/sector)";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.IBM53FD_1024:
|
||||||
|
DiscType = "8\" floppy";
|
||||||
|
DiscSubType = "IBM 53FD (1024 bytes/sector)";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.RX01:
|
||||||
|
DiscType = "8\" floppy";
|
||||||
|
DiscSubType = "DEC RX-01";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.RX02:
|
||||||
|
DiscType = "8\" floppy";
|
||||||
|
DiscSubType = "DEC RX-02";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ACORN_525_SS_SD_40:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "BBC Micro 100K";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ACORN_525_SS_SD_80:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "BBC Micro 200K";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ACORN_525_SS_DD_40:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "Acorn S";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ACORN_525_SS_DD_80:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "Acorn M";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ACORN_525_DS_DD:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "Acorn L";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ACORN_35_DS_DD:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "Acorn Archimedes";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ATARI_525_SD:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "Atari single-density";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ATARI_525_ED:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "Atari enhanced-density";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ATARI_525_DD:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "Atari double-density";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.CBM_1540:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "Commodore 1540/1541";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.CBM_35_DD:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "Commodore 1581";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.CBM_AMIGA_35_DD:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "Amiga double-density";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.CBM_AMIGA_35_HD:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "Amiga high-density";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.NEC_8_SD:
|
||||||
|
DiscType = "8\" floppy";
|
||||||
|
DiscSubType = "NEC single-sided";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.NEC_8_DD:
|
||||||
|
DiscType = "8\" floppy";
|
||||||
|
DiscSubType = "NEC double-sided";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.NEC_525_HD:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "NEC high-density";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.NEC_35_HD_8:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "NEC high-density";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.NEC_35_HD_15:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "NEC floppy mode 3";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.SHARP_525:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "Sharp";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.SHARP_35:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "Sharp";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ECMA_54:
|
||||||
|
DiscType = "8\" floppy";
|
||||||
|
DiscSubType = "ECMA-54";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ECMA_59:
|
||||||
|
DiscType = "8\" floppy";
|
||||||
|
DiscSubType = "ECMA-59";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ECMA_69_8:
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ECMA_69_15:
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ECMA_69_26:
|
||||||
|
DiscType = "8\" floppy";
|
||||||
|
DiscSubType = "ECMA-69";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ECMA_66:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "ECMA-66";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ECMA_70:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "ECMA-70";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ECMA_78:
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ECMA_78_2:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "ECMA-78";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ECMA_99_8:
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ECMA_99_15:
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ECMA_99_26:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "ECMA-99";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ECMA_100:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "ECMA-99";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ECMA_125:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "ECMA-125";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ECMA_147:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "ECMA-147";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.FDFORMAT_525_DD:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "FDFORMAT double-density";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.FDFORMAT_525_HD:
|
||||||
|
DiscType = "5.25\" floppy";
|
||||||
|
DiscSubType = "FDFORMAT high-density";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.FDFORMAT_35_DD:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "FDFORMAT double-density";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.FDFORMAT_35_HD:
|
||||||
|
DiscType = "3.5\" floppy";
|
||||||
|
DiscSubType = "FDFORMAT high-density";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ECMA_183_512:
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ECMA_183_1024:
|
||||||
|
DiscType = "5.25\" magneto-optical";
|
||||||
|
DiscSubType = "ECMA-183";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ECMA_184_512:
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ECMA_184_1024:
|
||||||
|
DiscType = "5.25\" magneto-optical";
|
||||||
|
DiscSubType = "ECMA-184";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ECMA_154:
|
||||||
|
DiscType = "3.5\" magneto-optical";
|
||||||
|
DiscSubType = "ECMA-154";
|
||||||
|
break;
|
||||||
|
case DiscImageChef.CommonTypes.DiskType.ECMA_201:
|
||||||
|
DiscType = "3.5\" magneto-optical";
|
||||||
|
DiscSubType = "ECMA-201";
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
DiscType = "Unknown";
|
DiscType = "Unknown";
|
||||||
DiscSubType = "Unknown";
|
DiscSubType = "Unknown";
|
||||||
|
|||||||
@@ -1,3 +1,8 @@
|
|||||||
|
2015-12-31 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
|
* Commands/CreateSidecar.cs:
|
||||||
|
Implemented most support for block media sidecars.
|
||||||
|
|
||||||
2015-12-31 Natalia Portillo <claunia@claunia.com>
|
2015-12-31 Natalia Portillo <claunia@claunia.com>
|
||||||
|
|
||||||
* Commands/DeviceInfo.cs:
|
* Commands/DeviceInfo.cs:
|
||||||
|
|||||||
@@ -1096,8 +1096,200 @@ namespace DiscImageChef.Commands
|
|||||||
}
|
}
|
||||||
sidecar.BlockMedia[0].Sequence.MediaTitle = _imageFormat.GetImageName();
|
sidecar.BlockMedia[0].Sequence.MediaTitle = _imageFormat.GetImageName();
|
||||||
|
|
||||||
//DiskType dskType = _imageFormat.ImageInfo.diskType;
|
foreach (DiskTagType tagType in _imageFormat.ImageInfo.readableDiskTags)
|
||||||
// TODO: Complete it
|
{
|
||||||
|
switch (tagType)
|
||||||
|
{
|
||||||
|
case DiskTagType.ATAPI_IDENTIFY:
|
||||||
|
sidecar.BlockMedia[0].ATA = new ATAType();
|
||||||
|
sidecar.BlockMedia[0].ATA.Identify = new DumpType();
|
||||||
|
sidecar.BlockMedia[0].ATA.Identify.Checksums = GetChecksums(_imageFormat.ReadDiskTag(DiskTagType.ATAPI_IDENTIFY)).ToArray();
|
||||||
|
sidecar.BlockMedia[0].ATA.Identify.Size = _imageFormat.ReadDiskTag(DiskTagType.ATAPI_IDENTIFY).Length;
|
||||||
|
break;
|
||||||
|
case DiskTagType.ATA_IDENTIFY:
|
||||||
|
sidecar.BlockMedia[0].ATA = new ATAType();
|
||||||
|
sidecar.BlockMedia[0].ATA.Identify = new DumpType();
|
||||||
|
sidecar.BlockMedia[0].ATA.Identify.Checksums = GetChecksums(_imageFormat.ReadDiskTag(DiskTagType.ATA_IDENTIFY)).ToArray();
|
||||||
|
sidecar.BlockMedia[0].ATA.Identify.Size = _imageFormat.ReadDiskTag(DiskTagType.ATA_IDENTIFY).Length;
|
||||||
|
break;
|
||||||
|
case DiskTagType.PCMCIA_CIS:
|
||||||
|
sidecar.BlockMedia[0].PCMCIA = new PCMCIAType();
|
||||||
|
sidecar.BlockMedia[0].PCMCIA.CIS = new DumpType();
|
||||||
|
sidecar.BlockMedia[0].PCMCIA.CIS.Checksums = GetChecksums(_imageFormat.ReadDiskTag(DiskTagType.PCMCIA_CIS)).ToArray();
|
||||||
|
sidecar.BlockMedia[0].PCMCIA.CIS.Size = _imageFormat.ReadDiskTag(DiskTagType.PCMCIA_CIS).Length;
|
||||||
|
break;
|
||||||
|
case DiskTagType.SCSI_INQUIRY:
|
||||||
|
sidecar.BlockMedia[0].SCSI = new SCSIType();
|
||||||
|
sidecar.BlockMedia[0].SCSI.Inquiry = new DumpType();
|
||||||
|
sidecar.BlockMedia[0].SCSI.Inquiry.Checksums = GetChecksums(_imageFormat.ReadDiskTag(DiskTagType.SCSI_INQUIRY)).ToArray();
|
||||||
|
sidecar.BlockMedia[0].SCSI.Inquiry.Size = _imageFormat.ReadDiskTag(DiskTagType.SCSI_INQUIRY).Length;
|
||||||
|
break;
|
||||||
|
case DiskTagType.SD_CID:
|
||||||
|
if(sidecar.BlockMedia[0].SecureDigital == null)
|
||||||
|
sidecar.BlockMedia[0].SecureDigital = new SecureDigitalType();
|
||||||
|
sidecar.BlockMedia[0].SecureDigital.CID = new DumpType();
|
||||||
|
sidecar.BlockMedia[0].SecureDigital.CID.Checksums = GetChecksums(_imageFormat.ReadDiskTag(DiskTagType.SD_CID)).ToArray();
|
||||||
|
sidecar.BlockMedia[0].SecureDigital.CID.Size = _imageFormat.ReadDiskTag(DiskTagType.SD_CID).Length;
|
||||||
|
break;
|
||||||
|
case DiskTagType.SD_CSD:
|
||||||
|
if(sidecar.BlockMedia[0].SecureDigital == null)
|
||||||
|
sidecar.BlockMedia[0].SecureDigital = new SecureDigitalType();
|
||||||
|
sidecar.BlockMedia[0].SecureDigital.CSD = new DumpType();
|
||||||
|
sidecar.BlockMedia[0].SecureDigital.CSD.Checksums = GetChecksums(_imageFormat.ReadDiskTag(DiskTagType.SD_CSD)).ToArray();
|
||||||
|
sidecar.BlockMedia[0].SecureDigital.CSD.Size = _imageFormat.ReadDiskTag(DiskTagType.SD_CSD).Length;
|
||||||
|
break;
|
||||||
|
case DiskTagType.SD_ExtendedCSD:
|
||||||
|
if(sidecar.BlockMedia[0].SecureDigital == null)
|
||||||
|
sidecar.BlockMedia[0].SecureDigital = new SecureDigitalType();
|
||||||
|
sidecar.BlockMedia[0].SecureDigital.ExtendedCSD = new DumpType();
|
||||||
|
sidecar.BlockMedia[0].SecureDigital.ExtendedCSD.Checksums = GetChecksums(_imageFormat.ReadDiskTag(DiskTagType.SD_ExtendedCSD)).ToArray();
|
||||||
|
sidecar.BlockMedia[0].SecureDigital.ExtendedCSD.Size = _imageFormat.ReadDiskTag(DiskTagType.SD_ExtendedCSD).Length;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
string dskType, dskSubType;
|
||||||
|
Metadata.DiskType.DiskTypeToString(_imageFormat.ImageInfo.diskType, out dskType, out dskSubType);
|
||||||
|
sidecar.BlockMedia[0].DiskType = dskType;
|
||||||
|
sidecar.BlockMedia[0].DiskSubType = dskSubType;
|
||||||
|
|
||||||
|
switch(dskType)
|
||||||
|
{
|
||||||
|
case "8\" floppy":
|
||||||
|
// According to ECMA-59 et al
|
||||||
|
sidecar.BlockMedia[0].Dimensions = new DimensionsType();
|
||||||
|
sidecar.BlockMedia[0].Dimensions.Height = 203.2;
|
||||||
|
sidecar.BlockMedia[0].Dimensions.HeightSpecified = true;;
|
||||||
|
sidecar.BlockMedia[0].Dimensions.Width = 203.2;
|
||||||
|
sidecar.BlockMedia[0].Dimensions.WidthSpecified = true;;
|
||||||
|
sidecar.BlockMedia[0].Dimensions.Thickness = 1.65;
|
||||||
|
break;
|
||||||
|
case "5.25\" floppy":
|
||||||
|
// According to ECMA-99 et al
|
||||||
|
sidecar.BlockMedia[0].Dimensions = new DimensionsType();
|
||||||
|
sidecar.BlockMedia[0].Dimensions.Height = 133.3;
|
||||||
|
sidecar.BlockMedia[0].Dimensions.HeightSpecified = true;;
|
||||||
|
sidecar.BlockMedia[0].Dimensions.Width = 133.3;
|
||||||
|
sidecar.BlockMedia[0].Dimensions.WidthSpecified = true;;
|
||||||
|
sidecar.BlockMedia[0].Dimensions.Thickness = 1.65;
|
||||||
|
break;
|
||||||
|
case "3.5\" floppy":
|
||||||
|
// According to ECMA-100 et al
|
||||||
|
sidecar.BlockMedia[0].Dimensions = new DimensionsType();
|
||||||
|
sidecar.BlockMedia[0].Dimensions.Height = 94;
|
||||||
|
sidecar.BlockMedia[0].Dimensions.HeightSpecified = true;;
|
||||||
|
sidecar.BlockMedia[0].Dimensions.Width = 90;
|
||||||
|
sidecar.BlockMedia[0].Dimensions.WidthSpecified = true;;
|
||||||
|
sidecar.BlockMedia[0].Dimensions.Thickness = 3.3;
|
||||||
|
break;
|
||||||
|
case "5.25\" magneto-optical":
|
||||||
|
// According to ECMA-183 et al
|
||||||
|
sidecar.BlockMedia[0].Dimensions = new DimensionsType();
|
||||||
|
sidecar.BlockMedia[0].Dimensions.Height = 153;
|
||||||
|
sidecar.BlockMedia[0].Dimensions.HeightSpecified = true;;
|
||||||
|
sidecar.BlockMedia[0].Dimensions.Width = 135;
|
||||||
|
sidecar.BlockMedia[0].Dimensions.WidthSpecified = true;;
|
||||||
|
sidecar.BlockMedia[0].Dimensions.Thickness = 11;
|
||||||
|
break;
|
||||||
|
case "3.5\" magneto-optical":
|
||||||
|
// According to ECMA-154 et al
|
||||||
|
sidecar.BlockMedia[0].Dimensions = new DimensionsType();
|
||||||
|
sidecar.BlockMedia[0].Dimensions.Height = 94;
|
||||||
|
sidecar.BlockMedia[0].Dimensions.HeightSpecified = true;;
|
||||||
|
sidecar.BlockMedia[0].Dimensions.Width = 90;
|
||||||
|
sidecar.BlockMedia[0].Dimensions.WidthSpecified = true;;
|
||||||
|
sidecar.BlockMedia[0].Dimensions.Thickness = 6;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
sidecar.BlockMedia[0].LogicalBlocks = (long)_imageFormat.GetSectors();
|
||||||
|
sidecar.BlockMedia[0].LogicalBlockSize = (int)_imageFormat.GetSectorSize();
|
||||||
|
// TODO: Detect it
|
||||||
|
sidecar.BlockMedia[0].PhysicalBlockSize = (int)_imageFormat.GetSectorSize();
|
||||||
|
|
||||||
|
DicConsole.WriteLine("Checking filesystems...");
|
||||||
|
|
||||||
|
List<Partition> partitions = new List<Partition>();
|
||||||
|
|
||||||
|
foreach (PartPlugin _partplugin in plugins.PartPluginsList.Values)
|
||||||
|
{
|
||||||
|
List<Partition> _partitions;
|
||||||
|
|
||||||
|
if (_partplugin.GetInformation(_imageFormat, out _partitions))
|
||||||
|
{
|
||||||
|
partitions = _partitions;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sidecar.BlockMedia[0].FileSystemInformation = new PartitionType[1];
|
||||||
|
if (partitions.Count > 0)
|
||||||
|
{
|
||||||
|
sidecar.BlockMedia[0].FileSystemInformation = new PartitionType[partitions.Count];
|
||||||
|
for (int i = 0; i < partitions.Count; i++)
|
||||||
|
{
|
||||||
|
sidecar.BlockMedia[0].FileSystemInformation[i] = new PartitionType();
|
||||||
|
sidecar.BlockMedia[0].FileSystemInformation[i].Description = partitions[i].PartitionDescription;
|
||||||
|
sidecar.BlockMedia[0].FileSystemInformation[i].EndSector = (int)(partitions[i].PartitionStartSector + partitions[i].PartitionSectors - 1);
|
||||||
|
sidecar.BlockMedia[0].FileSystemInformation[i].Name = partitions[i].PartitionName;
|
||||||
|
sidecar.BlockMedia[0].FileSystemInformation[i].Sequence = (int)partitions[i].PartitionSequence;
|
||||||
|
sidecar.BlockMedia[0].FileSystemInformation[i].StartSector = (int)partitions[i].PartitionStartSector;
|
||||||
|
sidecar.BlockMedia[0].FileSystemInformation[i].Type = partitions[i].PartitionType;
|
||||||
|
|
||||||
|
List<FileSystemType> lstFs = new List<FileSystemType>();
|
||||||
|
|
||||||
|
foreach (Plugin _plugin in plugins.PluginsList.Values)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (_plugin.Identify(_imageFormat, partitions[i].PartitionStartSector, partitions[i].PartitionStartSector + partitions[i].PartitionSectors - 1))
|
||||||
|
{
|
||||||
|
string foo;
|
||||||
|
_plugin.GetInformation(_imageFormat, partitions[i].PartitionStartSector, partitions[i].PartitionStartSector + partitions[i].PartitionSectors - 1, out foo);
|
||||||
|
lstFs.Add(_plugin.XmlFSType);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
//DicConsole.DebugWriteLine("Create-sidecar command", "Plugin {0} crashed", _plugin.Name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lstFs.Count > 0)
|
||||||
|
sidecar.BlockMedia[0].FileSystemInformation[i].FileSystems = lstFs.ToArray();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sidecar.BlockMedia[0].FileSystemInformation[0] = new PartitionType();
|
||||||
|
sidecar.BlockMedia[0].FileSystemInformation[0].StartSector = 0;
|
||||||
|
sidecar.BlockMedia[0].FileSystemInformation[0].EndSector = (int)(_imageFormat.GetSectors() - 1);
|
||||||
|
|
||||||
|
List<FileSystemType> lstFs = new List<FileSystemType>();
|
||||||
|
|
||||||
|
foreach (Plugin _plugin in plugins.PluginsList.Values)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (_plugin.Identify(_imageFormat, 0, _imageFormat.GetSectors() - 1))
|
||||||
|
{
|
||||||
|
string foo;
|
||||||
|
_plugin.GetInformation(_imageFormat, 0, _imageFormat.GetSectors() - 1, out foo);
|
||||||
|
lstFs.Add(_plugin.XmlFSType);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
//DicConsole.DebugWriteLine("Create-sidecar command", "Plugin {0} crashed", _plugin.Name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lstFs.Count > 0)
|
||||||
|
sidecar.BlockMedia[0].FileSystemInformation[0].FileSystems = lstFs.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// TODO: Implement support for getting CHS
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case XmlMediaType.LinearMedia:
|
case XmlMediaType.LinearMedia:
|
||||||
|
|||||||
Reference in New Issue
Block a user