diff --git a/src/devices/disk/mo.c b/src/devices/disk/mo.c index 7b14c5d..1e7142c 100644 --- a/src/devices/disk/mo.c +++ b/src/devices/disk/mo.c @@ -1407,12 +1407,23 @@ do_command(void *p, uint8_t *cdb) case GPCMD_VERIFY_6: case GPCMD_VERIFY_10: case GPCMD_VERIFY_12: - if (! (cdb[1] & 2)) { + // Data and blank verification cannot be set at the same time + if((cdb[1] & 2) && (cdb[1] & 4)) + { + invalid_field(dev); + return; + } + + if (! (cdb[1] & 2) || (cdb[1] & 4)) { set_phase(dev, SCSI_PHASE_STATUS); command_complete(dev); break; } + // TODO: Implement + invalid_field(dev); + return; + case GPCMD_WRITE_6: case GPCMD_WRITE_10: case GPCMD_WRITE_AND_VERIFY_10: