As a spinoff of a larger project, I've made a library available for PIO operations from PIC18 (in our case PIC18F6680) to attached ATA(PI) devices (master and slave). It's been tested with at least two hardware prototypes and with several different hard/CD-ROM/DVD-ROM drives. Transfer speeds of up to 2MB/sec peak are attainable with an external clock of 40MHz.
The code builds with gputils under UNIX compatible O/S
Source is available from Subversion repository at
--Toby