/* read/write */ #define HDC_DATA 0x1F0 #define HDC_ERROR 0x1F1 #define HDC_SECCOU 0x1F2 #define HDC_SECNUM 0x1F3 #define HDC_CYLLOW 0x1F4 #define HDC_CYLHIGH 0x1F5 #define HDC_SDH 0x1F6 /* read */ #define HDC_STATUS 0x1F7 #define HDC_ALTSTA 0x3F6 /* write */ #define HDC_COMMAND 0x1F7 #define HDC_FIXED 0x3F6 /* commands */ #define HDC_COMMAND_RESTORE 0x10 #define HDC_COMMAND_SEEK 0x70 #define HDC_COMMAND_READ 0x20 #define HDC_COMMAND_WRITE 0x30 #define HDC_COMMAND_FORMAT 0x50 #define HDC_COMMAND_READVER 0x90 #define HDC_COMMAND_DIAG 0x90 #define HDC_COMMAND_SETPAR 0x91 #define HDC_COMMAND_WRSTACK 0xE8 #define HDC_COMMAND_RDSTACK 0xE4 #define HDC_COMMAND_READPAR 0xEC #define HDC_COMMAND_POWER 0xE0 #define HDC_FIXED_IRQ 0x02 #define HDC_FIXED_RESET 0x04 #define HDC_STATUS_ERROR 0x01 #define HDC_STATUS_INDEX 0x02 #define HDC_STATUS_ECC 0x04 #define HDC_STATUS_DRQ 0x08 #define HDC_STATUS_COMPLETE 0x10 #define HDC_STATUS_WRFAULT 0x20 #define HDC_STATUS_READY 0x40 #define HDC_STATUS_BUSY 0x80