title: How can a program access an IDE hard disk?
body: <p>If I have some device that is connected to a parallel port, and I want to write a program (an OS) that accesses that device, I can't access the device registers directly, but rather I can only access the parallel port registers, and so communicate indirectly with the device through the parallel port.</p>
  
  <p>But I am wondering how can I access an IDE hard disk, can the registers of an IDE hard disk be accessed directly?</p>