If any one has ever worked with DOS 2.0 (yeah, yeah, ancient I know) in assembler, there were a lot of screwy things in there. Always had to remember sides and cylinders were base 0 and sectors were base 1. 12-bit FATs were screwy as well with the center byte reversed. I could go on but the mistake IBM made was hiring Bill Gates with that sweet heart contract they gave him.
Would have been interesting if Gary Kildall had gotten that deal for CP/M. I guess the lesson to learn here is sign the damned NDA when someone as big as IBM asks. Instead, they wound up making a deal for a purloined copy of something Gates and Allen bought from a guy at a computer store.