Commit Graph

123 Commits

Author SHA1 Message Date
bb69a1b8d9 * DiscImageChef.CommonTypes/MediaTypeFromSCSI.cs:
* DiscImageChef.CommonTypes/DiscImageChef.CommonTypes.csproj:
	  Added method to calculate MediaType from SCSI parameters
	  (mode, density, medium type, device type, etc).

	* DiscImageChef.Metadata/DeviceReport.cs:
	  Added command to guess drive and media parameters and output
	  an XML report of them.

	* DiscImageChef/Commands/DeviceReport.cs:
	* DiscImageChef.Metadata/DiscImageChef.Metadata.csproj:
	  Added command to guess drive and media parameters and output
	  an XML report of them.

	* DiscImageChef/Commands/DumpMedia.cs:
	  Added preliminary command to dump media. Only SCSI for now.
	  CDs and tapes are not supported. Errors are blalanty
	  ignored. Options are incomplete. Not yet usable.

	* DiscImageChef/Core/Checksum.cs:
	* DiscImageChef/Commands/CreateSidecar.cs:
	  Moved checksum generation to a separate class.

	* CICMMetadata:
	  Added support for ADIP.

	* DiscImageChef.CommonTypes/MediaType.cs:
	  Added parameters of UDO media.
	Moved DataPlay outside of Iomega, as it's not from that
	  manufacturer.
	Added missing Exatape media and corrected 160m XL one.
	Added SyJet media.
	Added all ECMA defined magneto-optical (sectors calculated
	  from specifications, unchecked).
	Added PD media.
	Added Imation 320Gb RDX.
	Added generic USB flash drives.

	* DiscImageChef.Decoders/SCSI/Enums.cs:
	  Make enumerations public.

	* DiscImageChef.Decoders/SCSI/Inquiry.cs:
	* DiscImageChef.Devices/Device/Constructor.cs:
	  Trim space padded strings on SCSI INQUIRY.

	* DiscImageChef.Devices/Device/ScsiCommands/MMC.cs:
	  Added PREVENT ALLOW MEDIUM REMOVAL.
	Added START STOP UNIT.

	* DiscImageChef.Devices/Device/ScsiCommands/NEC.cs:
	  Rename NEC methods.

	* DiscImageChef.Devices/Device/ScsiCommands/Pioneer.cs:
	  Corrected Pioneer transfer length calculation.

	* DiscImageChef.Devices/Device/ScsiCommands/Plextor.cs:
	  Renamed Plextor methods.

	* DiscImageChef.Devices/Device/ScsiCommands/SPC.cs:
	  Renamed SSC PREVENT ALLOW MEDIUM REMOVAL to uncollide with
	  MMC same name but different command.

	* DiscImageChef.Devices/DiscImageChef.Devices.csproj:
	  Set platform target to x86 (does it really matter?).

	* DiscImageChef.Devices/Linux/Command.cs:
	  Reduced allocation for readlink() to current kernel
	  MAX_PATH.

	* DiscImageChef.Devices/Linux/Enums.cs:
	  Modified Linux ioctl to 32-bit. Works on 64-bit also. Solves
	  commands not working on 32-bit environments.

	* DiscImageChef.DiscImages/ZZZRawImage.cs:
	  Changed ECMA-184 and ECMA-183 enums.

	* DiscImageChef.Metadata/Dimensions.cs:
	  Added all ECMA defined magneto-opticals.
	Added PD media.
	Added 320Gb RDX.
	Corrected Exatape 160m XL.
	Added Exatape 22m and 28m.

	* DiscImageChef.Metadata/MediaType.cs:
	  Added 356mm magneto-optical media.
	Changed ECMA-184 and ECMA-183 enums.
	Added USB generic flash drive.

	* DiscImageChef/Commands/DeviceInfo.cs:
	  Corrected SCSI INQUIRY naming.
	Corrected SCSI MODE SENSE (6) parameters.
	Reduced SCSI MODE SENSE timeout, some devices just get stuck
	  with unsupported MODE SENSE commanda and must be left to
	  timeout.
	Changed FUJITSU vendor string comparison.

	* DiscImageChef/Commands/MediaInfo.cs:
	  Added method to calculate MediaType from SCSI parameters
	  (mode, density, medium type, device type, etc).
	Changed some error WriteLine() to debug ones. Too much
	  verbosity.
	Added DVD media type decoding from PFI.
	Found a drive that dumps ADIP, enabling it again (not
	  decoded).

	* DiscImageChef/Commands/MediaScan.cs:
	  Added option to generate ImgBurn compatible log to
	  media-scan command.

	* DiscImageChef/DiscImageChef.csproj:
	  Moved checksum generation to a separate class.
	Added command to guess drive and media parameters and output
	  an XML report of them.
	Added preliminary command to dump media. Only SCSI for now.
	  CDs and tapes are not supported. Errors are blalanty
	  ignored. Options are incomplete. Not yet usable.

	* DiscImageChef/Main.cs:
	  Added command to guess drive and media parameters and output
	  an XML report of them.
	Added preliminary command to dump media. Only SCSI for now.
	  CDs and tapes are not supported. Errors are blalanty
	  ignored. Options are incomplete. Not yet usable.

	* DiscImageChef/Options.cs:
	  Added command to guess drive and media parameters and output
	  an XML report of them.
	Added preliminary command to dump media. Only SCSI for now.
	  CDs and tapes are not supported. Errors are blalanty
	  ignored. Options are incomplete. Not yet usable.
	Added option to generate ImgBurn compatible log to media-scan
	  command.
2016-01-31 08:05:56 +00:00
2a8b5d3cc5 * DiscImageChef/Commands/MediaInfo.cs:
* DiscImageChef/Commands/DeviceInfo.cs:
	  Added support for SCSI sequential devices.

	* DiscImageChef.Decoders/SCSI/SSC/BlockLimits.cs:
	* DiscImageChef.Decoders/SCSI/SSC/DensitySupport.cs:
	* DiscImageChef.Decoders/DiscImageChef.Decoders.csproj:
	  Added decoders for SCSI SSC READ BLOCK LIMITS and REPORT
	  DENSITY SUPPORT.

	* DiscImageChef.Devices/Device/ScsiCommands/SSC.cs:
	  Corrected ReportDensitySupport.

	* DiscImageChef.Decoders/SCSI/Modes.cs:
	  Corrected mode size.
2016-01-15 07:00:43 +00:00
14b7be1172 * DiscImageChef.Devices/Device/ScsiCommands/SyQuest.cs:
Corrected typo

	* DiscImageChef/Commands/DeviceInfo.cs:
	  Moved common code to a static method.
2016-01-14 21:10:39 +00:00
afdcc5b729 Added SyQuest vendor commands. 2016-01-14 20:40:45 +00:00
5828d60f15 * DiscImageChef.Devices/Enums.cs:
* DiscImageChef.Devices/DiscImageChef.Devices.csproj:
	* DiscImageChef.Devices/Device/ScsiCommands/Plasmon.cs:
	  Added Plasmon vendor commands.

	* DiscImageChef.Devices/Device/ScsiCommands/Pioneer.cs:
	  Added Pioner READ CD-XA vendor command.
2016-01-14 02:46:36 +00:00
e45a783fa4 Added M-Systems vendor commands. 2016-01-13 21:14:23 +00:00
fcf4c56f0e * DiscImageChef.Devices/Enums.cs:
* DiscImageChef.Helpers/ArrayFill.cs:
	* DiscImageChef.Helpers/ArrayIsEmpty.cs:
	* DiscImageChef.Devices/DiscImageChef.Devices.csproj:
	* DiscImageChef.Helpers/DiscImageChef.Helpers.csproj:
	  Implemented Certance, Fujitsu and Hewlett-Packard vendor
	  commands.

	* DiscImageChef.Devices/Device/ScsiCommands/Certance.cs:
	  Implemented Certance vendor commands.

	* DiscImageChef.Devices/Device/ScsiCommands/Fujitsu.cs:
	  Implemented Fujitsu vendor commands.

	* DiscImageChef.Devices/Device/ScsiCommands/HP.cs:
	  Implemented Hewlett-Packard vendor commands.
2016-01-13 19:59:44 +00:00
6d2b9089eb * DiscImageChef.Devices/Enums.cs:
* DiscImageChef.Devices/DiscImageChef.Devices.csproj:
	* DiscImageChef.Devices/Device/ScsiCommands/ArchiveCorp.cs:
	  Added vendor commands for Archive Corporation Viper 2060S,
	  2125S and 2150S.

	* DiscImageChef.Devices/Device/ScsiCommands/Adaptec.cs:
	  Corrected documentation typo.
2016-01-13 05:57:35 +00:00
9389d4bb3e Added Adaptec ACB-4000A and ACB-4070 vendor commands. 2016-01-13 05:04:45 +00:00
3b318a56e3 * DiscImageChef.Devices/Device/ScsiCommands/SMC.cs:
* DiscImageChef.Devices/DiscImageChef.Devices.csproj:
	  Added read-only Streaming Commands.

	* DiscImageChef.Devices/Device/ScsiCommands/SSC.cs:
	  Added READ ATTRIBUTE.

	* DiscImageChef.Devices/Device/ScsiCommands/MMC.cs:
	  Corrected typo on header

	* DiscImageChef.Devices/Device/ScsiCommands/SPC.cs:
	  Corrected buffer mislength.
	Added support for READ ATTRIBUTE.

	* DiscImageChef.Devices/Enums.cs:
	  Corrected opcode for SCSI WRITE ATTRIBUTE.
	Added SCSI Streaming and Attribute enumerations.
2016-01-13 03:47:25 +00:00
8c24edf3dd Separated SCSI commands by category/vendor. 2016-01-11 19:40:58 +00:00
c98d64e544 * DiscImageChef.Devices/Enums.cs:
* DiscImageChef/Commands/DeviceInfo.cs:
	* DiscImageChef.Devices/Device/ScsiCommands.cs:
	  Added Plextor vendor commands.

	* DiscImageChef/Plugins.cs:
	* DiscImageChef/Commands/Analyze.cs:
	* DiscImageChef/Commands/Compare.cs:
	* DiscImageChef/Commands/CreateSidecar.cs:
	  Do not call system console directly.
2016-01-11 19:24:17 +00:00
f9dc4f31a1 Added support for FireWire devices. 2015-12-31 16:33:20 +00:00
eac5aae66c * DiscImageChef.Devices/Device/Constructor.cs:
Added support for USB on Linux.

	* DiscImageChef/Commands/DeviceInfo.cs:
	* DiscImageChef.Devices/Device/Variables.cs:
	  Added support for USB detection and metadata.

	* DiscImageChef.Devices/Linux/Extern.cs:
	* DiscImageChef.Devices/Linux/Command.cs:
	  Added readlink(3) support, for getting symlink destinations.
2015-12-31 16:12:22 +00:00
da29ec63eb * DiscImageChef/Main.cs:
* DiscImageChef/Options.cs:
	* DiscImageChef/DiscImageChef.csproj:
	* DiscImageChef/Commands/MediaScan.cs:
	  Added media-scan command.

	* DiscImageChef.Decoders/SCSI/Inquiry.cs:
	  Fixes decoding for devices that follow old 5-byte SCSI
	  INQUIRY format.

	* DiscImageChef.Decoders/SCSI/Sense.cs:
	  Fixes printing of sense block missing a newline.

	* DiscImageChef.Devices/Device/Variables.cs:
	* DiscImageChef.Devices/Device/Constructor.cs:
	  Added an IsRemovable field.

	* DiscImageChef.Devices/Device/ScsiCommands.cs:
	  Fixed SCSI READ CAPACITY CDB size.
	Fixed READ CD-DA MSF method name.
	Implemented SCSI SEEK (6) and SEEK (10) commands.

	* DiscImageChef.Devices/Linux/Command.cs:
	* DiscImageChef.Devices/Windows/Command.cs:
	  Fixed memory leaking on unmanaged heap.

	* DiscImageChef.Helpers/StringHandlers.cs:
	  Fixed string conversion when input byte array is null.

	* DiscImageChef/Commands/MediaInfo.cs:
	  Check for inserted medium only on removable media devices.
2015-12-30 11:45:27 +00:00
6928fc1363 Added all known READ, READ LONG, READ CD and READ CD-DA
commands.
2015-12-26 19:02:31 +00:00
b21a807ae1 Finally CD-Text on lead-in is getting decoded correctly... 2015-12-04 03:34:44 +00:00
2a1f2a9738 Solved when CD-TEXT is bigger than 1KiB. 2015-12-04 02:14:28 +00:00
09da786c1f * DiscImageChef/Commands/MediaInfo.cs:
Added a workaround for Nintendo GameCube and Wii discs.
	Added SCSI READ MEDIA SERIAL NUMBER support.

	* DiscImageChef.Devices/Device/ScsiCommands.cs:
	  Use a bigger buffer for CD-TEXT.
2015-11-24 05:03:26 +00:00
67eb49b66e * DiscImageChef.CommonTypes/DiskType.cs:
Added DVD-RW DL, DVD-Download, HD DVD-R DL and HD DVD-RW DL.

	* DiscImageChef.Decoders/CD/ATIP.cs:
	  ATIP not always contain S4.
	Corrected typo.

	* DiscImageChef.Decoders/CD/Session.cs:
	  Added missing newlines.

	* DiscImageChef.Decoders/CD/TOC.cs:
	  Added missing newlines.
	Recognize Lead-Out track.

	* DiscImageChef.Decoders/SCSI/MMC/DiscInformation.cs:
	  Added structures for Disc Informations 001b and 010b.

	* DiscImageChef.Devices/Device/ScsiCommands.cs:
	  On READ TOC/PMA/ATIP and READ DISC INFORMATION if trying
	  small buffer and then real-sized buffer, some drives send
	  garbage, so get a big enough buffer and return only the
	  applicable data size.

	* DiscImageChef/Commands/MediaInfo.cs:
	  Check current profile and prettify TOC, PMA, ATIP, Session
	  and CD-TEXT.
2015-11-24 00:40:33 +00:00
d0a35ff00e Implemented SCSI READ DISC INFORMATION. 2015-11-23 17:10:59 +00:00
eb98bf28b6 * DiscImageChef.Devices/Device/ScsiCommands.cs:
Implemented SCSI READ CAPACITY(16).

	* DiscImageChef.Devices/Enums.cs:
	  Added SCSI SERVICE ACTIONs.
2015-11-23 05:52:45 +00:00
e7560c761c Added missing documentation. 2015-11-23 05:22:52 +00:00
86648c5132 Implemented SCSI READ CAPACITY(10). 2015-11-23 05:19:43 +00:00
be93167b26 * DiscImageChef.Devices/Device/ScsiCommands.cs:
Corrected typo.

	* DiscImageChef/Commands/DeviceInfo.cs:
	  Decode SCSI sense.
2015-11-23 05:15:37 +00:00
0ebbd87548 * DiscImageChef.Devices/Command.cs:
* DiscImageChef.Decoders/ATA/Errors.cs:
	* DiscImageChef/Commands/DeviceInfo.cs:
	* DiscImageChef.Devices/Linux/Command.cs:
	* DiscImageChef.Devices/Device/Commands.cs:
	* DiscImageChef.Devices/Device/AtaCommands.cs:
	* DiscImageChef.Devices/Device/Constructor.cs:
	* DiscImageChef.Devices/Device/AtapiCommands.cs:
	* DiscImageChef.Devices/DiscImageChef.Devices.csproj:
	* DiscImageChef.Decoders/DiscImageChef.Decoders.csproj:
	  Moved ATA register definition to a more common place.

	* DiscImageChef.Decoders/SCSI/Sense.cs:
	  Added information from SAT-4.
2015-11-23 04:26:53 +00:00
361b8977b0 * DiscImageChef.Decoders/SCSI/Modes.cs:
Check for vendor pages not following page format (even if
	  they must).

	* DiscImageChef.Devices/Device/Constructor.cs:
	  Some devices (at least smsc usb-floppy) crash and reset when
	  receiving ata over the ATA PASS-THROUGH scsi command. This
	  will check for SCSI compliance first giving devices time to
	  reset.

	* DiscImageChef.Devices/Device/ScsiCommands.cs:
	  Some devices (smsc usb floppies) return the real command
	  result size disregarding allocation length and generating a
	  buffer overflow.

	* DiscImageChef.Devices/Enums.cs:
	  Added some vendor commands for Plextor and HL-DT-ST devices.

	* DiscImageChef/Commands/DeviceInfo.cs:
	  Mode sense should be written even if it can't be decoded.
2015-11-05 06:50:02 +00:00
ca8a152d8f Added READ DISC STRUCTURE. 2015-11-02 19:12:19 +00:00
f02e668173 * DiscImageChef.Decoders/SCSI/MMC/Features.cs:
Correct math priority

	* DiscImageChef.Devices/Device/ScsiCommands.cs:
	  Correct command size typo

	* DiscImageChef/Commands/DeviceInfo.cs:
	  Add MMC GET CONFIGURATION
2015-11-01 22:09:10 +00:00
dfb15d0e4f * DiscImageChef.Decoders/SCSI/MMC/Features.cs:
Added code to separate features and the feature header.

	* DiscImageChef.Devices/Enums.cs:
	* DiscImageChef.Devices/Device/ScsiCommands.cs:
	  Added SCSI GET CONFIGURATION
2015-11-01 20:06:24 +00:00
dac9e415d4 Added feature structures from MMC-1. 2015-11-01 02:16:29 +00:00
b3361d5554 Added MMC features and profiles enumerations. 2015-11-01 00:32:16 +00:00
6b9f8f97c8 * DiscImageChef.Decoders/SCSI/Modes.cs:
Polished some bugs and typos and format

	* DiscImageChef.Devices/Device/ScsiCommands.cs:
	  Corrected math typo.

	* DiscImageChef/Commands/DeviceInfo.cs:
	  Added MODE SENSE to device information.
2015-10-31 21:03:18 +00:00
4ecec3373a Implemented SCSI PREVENT ALLOW MEDIUM REMOVAL command. 2015-10-24 04:46:11 +01:00
589452272c Added SCSI MODE SENSE(6) and MODE SENSE(10) commands. 2015-10-24 04:13:55 +01:00
67dc2df4c1 Added SCSI TEST UNIT READY. 2015-10-24 03:07:17 +01:00
a53603ce6a * README.md:
Added AppVeyor badge.

	* DiscImageChef.Devices/Enums.cs:
	  Added X68k controller command.
2015-10-24 00:48:32 +01:00
f8a3f770a3 Added information from ANSI X3T9.3 No. 185 (SASI) 2015-10-24 00:03:54 +01:00
94157df03e SCSI commands that are IDENTICAL on SASI are now aliased for
source code readability.
2015-10-23 21:51:25 +01:00
1eed71488a Correct typo and add missing SASI commands. 2015-10-23 21:39:42 +01:00
40309ae712 Typo 2015-10-23 21:02:38 +01:00
0d146b7f42 Added information from ECMA-111. 2015-10-23 20:58:13 +01:00
8a4c93c7f4 Make some variables readonly so they cannot be modified after
construction.
2015-10-19 05:21:35 +01:00
6a2cb7cf50 Having a globally accessed static SCSI Peripheral Device Type
allows easier command filtering.
2015-10-19 05:20:42 +01:00
e873377777 Device type, manufacturer, model, revision and serial number
are now obtained in device constructor.
2015-10-19 05:11:28 +01:00
c8fb4e0123 Upgrade .NET version to 4.0. 2015-10-19 04:48:17 +01:00
4cf5e18059 Added some device static values to variables. 2015-10-19 04:46:09 +01:00
efcc294202 Moved devices enums and structs out of classes. 2015-10-19 04:39:39 +01:00
ac491f6f5c Implemented SCSI VPDs 0x00 to 0x80. 2015-10-19 04:32:16 +01:00
4f407e3d15 Added specific console handling for standard, verbose, debug
and error outputs.
2015-10-18 22:04:03 +01:00