To read data, read the low byte followed by the high byte. To write data, write the high byte followed by the low byte. An 8 bit transfer can be done by reading or writing only the low byte. The high byte is bit-reversed (bit 7 is swapped with bit 0, 6 with 1, etc). This makes the board layout much saner. Software can use a 256 byte table to convert, or just ignore it. The high byte is only used when transferring data, and data that gets reversed when it is written will be reversed back when it is read. $DE00 data low $DE01 data high $DE02 error $DE04 sector count $DE06 sector number / lba 0-7 $DE08 cylinder low / lba 8-15 $DE0A cylinder high / lba 16-23 $DE0C device/head / lba 24-27 $DE0E read: status write: command $DE1C read: alternate status write: device control