On 19/01/2016 05:51, John Snow wrote: > + /* Only RESET is allowed to an ATAPI device while BSY and/or DRQ are > set. */ > + if (s->status & (BUSY_STAT|DRQ_STAT)) { > + if (!(val == WIN_DEVICE_RESET) && (s->drive_kind == IDE_CD)) {
I was going to complain about Pascal-ish parentheses, but actually I think there is a bug here; the expression just looks weird. Did you mean if (!(val == WIN_DEVICE_RESET && s->drive_kind == IDE_CD)) or equivalently applying de Morgan's law: if (s->drive_kind != IDE_CD || val != WIN_DEVICE_RESET) ? Paolo > + return;