READ CD, READ CD OLD, and READ CD MSF with all flag bits cleared, are now treated as a non-data command.

This commit is contained in:
OBattler
2022-01-10 14:36:53 +01:00
parent 50679f8faa
commit 273d5af048

View File

@@ -1623,7 +1623,12 @@ scsi_cdrom_command(scsi_common_t *sc, uint8_t *cdb)
dev->sector_len -= dev->sector_pos;
dev->sector_len++;
msf = 1;
/* If all the flag bits are cleared, then treat it as a non-data command. */
if (cdb[9] == 0x00)
dev->sector_len = 0;
break;
case GPCMD_READ_CD_OLD:
case GPCMD_READ_CD:
@@ -1632,6 +1637,10 @@ scsi_cdrom_command(scsi_common_t *sc, uint8_t *cdb)
dev->sector_pos = (cdb[2] << 24) | (cdb[3] << 16) | (cdb[4] << 8) | cdb[5];
msf = 0;
/* If all the flag bits are cleared, then treat it as a non-data command. */
if (cdb[9] == 0x00)
dev->sector_len = 0;
break;
}