Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
I updated the struct. Now it should be the right size. As for the H2D register's content, it seems fine. (0x407 >> 8 = 0x4) and (0x407 & 0xFF = 0x7) However, the D2H register seems to increase the value by one. LBA0 should be 0x7 but it's 0x8 instead. If you ask why I increment the count by one, it seems that sector counts start by 1 instead of 0