So the drive, when ejecting a disk during a seek/read/write command, causes it to stop responding to the FDC until the next command starts (timing out any command pending for a read/write, both with and without implied seek)?
What would be reported in ST0/1/2 in that case?
Would that simply set the NO DATA bit in the ST registers and abort the command with an error condition?
So abnormal terminationation+unit check in ST0(others bits act normal for read/write/format abort, but values for the terminated sector that was read/written), DE+NDAT in ST1, NDAM in ST2, ESIG in ST3, all other bits in ST1-3 cleared(except perhaps CRCE in ST2 set if transferring a sector's data when it happens)?
Edit: Just implemented said behaviour for read/write/format when a full sector is processed. Ejecting during the command will cause those bits to be set(and erroring out. The registers ST1-2 other bits being cleared, ST0 being the same as normal successful finish, except error condition and drive fault being set).