📄 ide.h
字号:
/******************************************************
ide.h
Contains register and bit field definitions for IDE.
******************************************************/
// Bits!
// Alternate status register.
typedef enum
{
AltStatusRegBitERR = 1,
AltStatusRegBitIDX = 2,
AltStatusRegBitCORR = 4,
AltStatusRegBitDRQ = 8,
AltStatusRegBitDSC = 0x10,
AltStatusRegBitDF = 0x20,
AltStatusRegBitDRDY = 0x40,
AltStatusRegBitBSY = 0x80
} IDE_ALTERNATE_STATUS_REGISTER_BITS;
// Could have an enum for command codes.
// Device control register
typedef enum
{
DevControlRegBitNIEN = 2,
DevControlRegBitSRST = 4,
} IDE_DEVICE_CONTROL_REGISTER_BITS;
// Device/Head register
typedef enum
{
DevHeadRegBitHeads = 0xF,
DevHeadRegBitDEV = 0x10,
DevHeadRegBitLBAMode = 0x40,
} IDE_DEVICE_HEAD_REGISTER_BITS;
// Error register
typedef enum
{
ErrorRegBitAMNF = 1,
ErrorRegBitTKNONF = 2,
ErrorRegBitABRT = 4,
ErrorRegBitMCR = 8,
ErrorRegBitIDNF = 0x10,
ErrorRegBitMC = 0x20,
ErrorRegBitUNC = 0x40,
} IDE_ERROR_REGISTER_BITS;
// Status register
typedef enum
{
StatusRegBitERR = 1,
StatusRegBitIDX = 2,
StatusRegBitCORR = 4,
StatusRegBitDRQ = 8,
StatusRegBitDSC = 0x10,
StatusRegBitDF = 0x20,
StatusRegBitDRDY = 0x40,
StatusRegBitBSY = 0x80
} IDE_STATUS_REGISTER_BITS;
typedef enum
{
IdentifyDeviceCmd = 0xEC,
ReadSectorWithRetries = 0x20,
ReadSectorWithoutRetries = 0x21,
WriteSectorWithRetries = 0x30,
WriteSectorWithoutRetries = 0x31,
InitializeDeviceParameters = 0x91,
ExecuteDeviceDiagnostic = 0x90,
DMAReadSectorWithRetries = 0xC8,
DMAReadSectorWithoutRetries = 0xC9,
DMAWriteSectorWithRetries = 0xCA,
DMAWriteSectorWithoutRetries = 0xCB,
} IDE_COMMANDS;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -