So you're only updating the MSR status at the time it's read?
No, "Specify" does not generate an IRQ. But it has no Result phase either, so the XT BIOS source code doesn't bother reading MSR at the end of the reset code.
The bootstrap loader (F000:E61B) in that BIOS calls Int13 AH=0, then if it succeeded, Int13 AH=2 to read the boot sector. Int13 AH=0 resets the controller, waits for an IRQ, then sends "Sense Interrupt Status" and expects ST0 to contain C0h. If this succeeds, "Specify" is executed, otherwise it immediately returns. This must have succeeded, otherwise "Specify" would not be observed. After sending the last of the two data bytes of "Specify", the Int 13 AH=0 code does not bother to check MSR again, but immediately returns, and the bootstrap loader proceeds to INt 13 AH=2.
Starting in the source code at line 2562, this one immediately programs the DMA, then writes 0Ch OR the drive bitmask SHL 4 to DOR. Now THIS is the strange part --- it should write 1Ch, not 0Ch, to actually turn drive 0's motor on.
Is there a way of setting breakpoints in your debugger to a specific address? I know how to call up the debugger, but find it hard to get to the point where it actually performs the disk access.