Ewww... It looks like one of your data lines is tied high - either from cable damage or header damage...

ide_data_test: wrote 0x0000 read 0x0100
ide_data_test: wrote 0xffff read 0xffff
ide_data_test: wrote 0xaaaa read 0xabaa
ide_data_test: wrote 0x5555 read 0x5555

Note that the last bit of the second byte is always a 1...

Inspect your cable very carefully, along with the header pins connecting to the main board. Also look for any damage on the cable or bent pins on the drive.
_________________________
Paul Grzelak
200GB with 48MB RAM, Illuminated Buttons and Digital Outputs