IDE drives now return BUSY status in reset mode, and AT MFM and ESDI controllers now return the READY bit in the status register set also for the first sector of the WRITE command, fixes #1281.
This commit is contained in:
@@ -1338,6 +1338,20 @@ ide_write_devctl(uint16_t addr, uint8_t val, void *priv)
|
||||
ide->sc->callback = 0.0;
|
||||
ide_set_callback(ide, 0.0);
|
||||
ide_set_callback(ide_other, 0.0);
|
||||
|
||||
/* We must set set the status to busy in reset mode or
|
||||
some 286 and 386 machines error out. */
|
||||
if (ide->type != IDE_NONE) {
|
||||
ide->atastat = BSY_STAT;
|
||||
if (ide->type == IDE_ATAPI)
|
||||
ide->sc->status = BSY_STAT;
|
||||
}
|
||||
|
||||
if (ide_other->type != IDE_NONE) {
|
||||
ide_other->atastat = BSY_STAT;
|
||||
if (ide_other->type == IDE_ATAPI)
|
||||
ide_other->sc->status = BSY_STAT;
|
||||
}
|
||||
} else if (!(val & 4) && (ide->fdisk & 4)) {
|
||||
/* Reset toggled from 1 to 0. */
|
||||
if (!(ch & 1)) {
|
||||
|
||||
Reference in New Issue
Block a user