Isn't there also some form of masking or changing the drive devices around at the kernel level?
IIRC not on the kernel level but when creating the /dev/hd[x] devices.
Normally the drives on the first IDE chain are /dev/hda and hdb, on the second hdc and hdd. Since the MkI had two IDE chains and used the drives as primary on both chains, it used hda and hdc. To simplify coding, the MkII calls what's normally /dev/hdb /dev/hdc instead - by giving the mknod command the parameters (major/minor numbers) that are normally used for /dev/hdb when creating /dev/hdc.
So when addressing the drives by device name, when addressing /dev/hdc a MkII will automatically talk to the slave drive on the first chain, while a MkI will talk to the primary drive on the second chain, because the OS looks up the major/minor numbers from the /dev/hd[x] entry and then talks to the hardware according to the numbers instead of the name.
Or at least that's the way I believe it works...
/Michael