diff --git a/DiscImageChef.Devices/ChangeLog b/DiscImageChef.Devices/ChangeLog index 56469d555..9a3276c77 100644 --- a/DiscImageChef.Devices/ChangeLog +++ b/DiscImageChef.Devices/ChangeLog @@ -1,3 +1,8 @@ +2015-10-05 Natalia Portillo + + * Enums.cs: + Added SASI commands. + 2015-10-05 Natalia Portillo * Enums.cs: diff --git a/DiscImageChef.Devices/Enums.cs b/DiscImageChef.Devices/Enums.cs index c6a82ba78..d2d55f924 100644 --- a/DiscImageChef.Devices/Enums.cs +++ b/DiscImageChef.Devices/Enums.cs @@ -2,12 +2,351 @@ namespace DiscImageChef.Devices { - public class Enums + public static class Enums { - public enum ScsiCommands : byte + /// + /// SASI commands + /// Commands 0x00 to 0x1F are 6-byte + /// Commands 0x20 to 0x3F are 10-byte + /// Commands 0x40 to 0x5F are 8-byte + /// + #region SASI Commands + public enum SasiCommands : byte { - Inquiry = 0x12 + #region SASI Class 0 commands + /// + /// Returns zero status if requested unit is on and ready. + /// SASI 0a + /// + TestUnitReady = 0x00, + /// + /// Sets the unit to a specific known state. + /// SASI 0a + /// + RezeroUnit = 0x01, + /// + /// Unknown + /// SASI 0a + /// + RequestSyndrome = 0x02, + /// + /// Returns unit sense. + /// SASI 0a + /// + RequestSense = 0x03, + /// + /// Formats the entire media. + /// SASI 0a + /// + FormatUnit = 0x04, + /// + /// Unknown + /// SASI 0a + /// + CheckTrackFormat = 0x05, + /// + /// Unknown + /// SASI 0a + /// + FormatTrack = 0x06, + /// + /// Unknown + /// SASI 0a + /// + FormatBadTrack = 0x06, + /// + /// Reads a block from the device. + /// SASI 0a + /// + Read = 0x08, + /// + /// SASI 0a + /// Unknown + /// + WriteProtectSector = 0x09, + /// + /// Writes a block to the device. + /// SASI 0a + /// + Write = 0x0A, + /// + /// Moves the device reading mechanism to the specified block. + /// SASI 0a + /// + Seek = 0x0B, + /// + /// Unknown + /// SASI 0a + /// + VerifyRestore = 0x0D, + /// + /// Unknown + /// SASI 0a + /// + AssignAlternateDiskTrack = 0x0E, + /// + /// Writes a File Mark on the device. + /// SASI 0c + /// + WriteFileMark = 0x0F, + /// + /// Reserves the device for use by the iniator. + /// SASI 0a + /// + ReserveUnit = 0x12, + /// + /// Release the device from the reservation. + /// SASI 0a + /// + ReleaseUnit= 0x13, + /// + /// Unknown + /// SASI 0a + /// + WriteProtectDrive = 0x14, + /// + /// Writes and verifies blocks to the device. + /// SASI 0c + /// + WriteVerify = 0x14, + /// + /// Unknown + /// SASI 0a + /// + ReleaseWriteProtect = 0x15, + /// + /// Verifies blocks. + /// SASI 0c + /// + Verify = 0x15, + /// + /// Unknown + /// SASI 0a + /// + ReadNoSeek = 0x16, + /// + /// Gets the number of blocks in device. + /// SASI 0c + /// + ReadCapacity = 0x16, + /// + /// Searches data on blocks + /// SASI 0a + /// + SearchDataEqual = 0x17, + /// + /// Searches data on blocks using major than or equal comparison + /// SASI 0a + /// + SearchDataHigh = 0x18, + /// + /// Searches data on blocks using minor than or equal comparison + /// SASI 0a + /// + SearchDataLow = 0x19, + /// + /// Reads analysis data from a device + /// SASI 0a + /// + ReadDiagnostic = 0x1A, + /// + /// Unknown + /// SASI 0a + /// + VerifyData = 0x1B, + /// + /// Requests a device to run a diagnostic + /// SASI 0c + /// + WriteDiagnostic = 0x1B, + /// + /// Gets information about a device + /// SASI 0c + /// + Inquiry = 0x1F, + #endregion SASI Class 0 commands + + #region SASI Class 1 commands + /// + /// SASI 0a + /// Unknown + /// + Copy = 0x20, + /// + /// SASI 0a + /// Unknown + /// + Restore = 0x21, + /// + /// SASI 0a + /// Unknown + /// + Backup = 0x22, + /// + /// SASI 0a + /// Unknown + /// + SetBlockLimitsOld = 0x26, + /// + /// Sets write or read limits from a specified block + /// SASI 0c + /// + SetBlockLimits = 0x28, + #endregion SASI Class 1 commands + + #region SASI Class 2 commands + /// + /// Unknown + /// SASI 0a + /// + Load = 0x40, + /// + /// Unknown + /// SASI 0a + /// + Unload = 0x41, + /// + /// Unknown + /// SASI 0a + /// + Rewind = 0x42, + /// + /// Unknown + /// SASI 0a + /// + SpaceForward = 0x43, + /// + /// Unknown + /// SASI 0a + /// + SpaceForwardFileMark = 0x44, + /// + /// Unknown + /// SASI 0a + /// + SpaceReserve = 0x45, + /// + /// Unknown + /// SASI 0a + /// + SpaceReserveFileMark = 0x46, + /// + /// Unknown + /// SASI 0a + /// + TrackSelect = 0x47, + /// + /// Reads blocks from device + /// SASI 0a + /// + Read10 = 0x48, + /// + /// Unknown + /// SASI 0a + /// + ReadVerify = 0x49, + /// + /// Unknown + /// SASI 0a + /// + ReadDiagnosticClass2 = 0x4A, + /// + /// Writes blocks to device + /// SASI 0a + /// + Write10 = 0x4B, + /// + /// Unknown + /// SASI 0a + /// + WriteFileMarkClass2 = 0x4C, + /// + /// Unknown + /// SASI 0a + /// + WriteExtended = 0x4D, + /// + /// Unknown + /// SASI 0a + /// + WriteExtendedFileMark = 0x4E, + /// + /// Unknown + /// SASI 0a + /// + WriteErase = 0x4F, + #endregion SASI Class 2 commands + + #region SASI Class 3 commands + /// + /// SASI 0a + /// + Skip = 0x60, + /// + /// SASI 0a + /// + Space = 0x61, + /// + /// SASI 0a + /// + Return = 0x62, + /// + /// SASI 0a + /// + Tab = 0x63, + /// + /// SASI 0a + /// + ReadControl = 0x64, + /// + /// SASI 0a + /// + Write3 = 0x65, + /// + /// SASI 0a + /// + WriteControl = 0x66, + #endregion SASI Class 3 commands + + #region SASI Class 6 commands + /// + /// SASI 0a + /// + DefineFloppyDiskTracFormat = 0xC0, + /// + /// SASI 0a + /// + FormatDriveErrorMap = 0xC4, + /// + /// SASI 0a + /// + ReadErrorMap = 0xC5, + /// + /// SASI 0a + /// + ReadDriveType = 0xC6, + #endregion SASI Class 6 commands + + #region SASI Class 7 commands + /// + /// SASI 0a + /// + RamDiagnostic = 0xE0, + /// + /// SASI 0a + /// + WriteECC = 0xE1, + /// + /// SASI 0a + /// + ReadID = 0xE2, + /// + /// SASI 0a + /// + DriveDiagnostic = 0xE3 + #endregion SASI Class 7 commands } + #endregion SASI Commands } }