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;