SCSI CD-ROM change of the day (December 31st, 2024)

Added undocumented 0xC5 NEC SCSI-2 CD-ROM command (most likely a no op command like 0x0D).
This commit is contained in:
TC1995
2024-12-31 21:29:59 +01:00
parent fb54333805
commit e0daf34629
2 changed files with 10 additions and 3 deletions

View File

@@ -2114,7 +2114,7 @@ scsi_cdrom_command_matsushita(void *sc, uint8_t *cdb, int32_t *BufLen)
dev->current_cdb[0] = cdb[0];
/* Keep cmd_stat at 0x00, therefore, it's going to process it as GPCMD_PLAY_AUDIO_MSF. */
break;
case GPCMD_PLAY_AUDIO_TRACK_INDEX_MATSUSHITA:
cdb[0] = GPCMD_PLAY_AUDIO_TRACK_INDEX;
dev->current_cdb[0] = cdb[0];
@@ -2166,6 +2166,12 @@ scsi_cdrom_command_nec(void *sc, uint8_t *cdb, int32_t *BufLen)
cmd_stat = 0x01;
break;
case GPCMD_UNKNOWN_SCSI2_NEC:
scsi_cdrom_set_phase(dev, SCSI_PHASE_STATUS);
scsi_cdrom_command_complete(dev);
cmd_stat = 0x01;
break;
case GPCMD_AUDIO_TRACK_SEARCH_NEC:
scsi_cdrom_set_phase(dev, SCSI_PHASE_STATUS);
if ((dev->drv->image_path[0] == 0x00) || (dev->drv->cd_status <= CD_STATUS_DATA_ONLY))
@@ -2305,7 +2311,7 @@ scsi_cdrom_command_pioneer(void *sc, uint8_t *cdb, int32_t *BufLen)
else {
ret = cdrom_read_disc_info_toc(dev->drv, dev->buffer, cdb[2], cdb[1] & 3);
len = 4;
if (ret) {
scsi_cdrom_set_buf_len(dev, BufLen, &len);
scsi_cdrom_data_command_finish(dev, len, len, len, 0);
@@ -2844,7 +2850,7 @@ scsi_cdrom_command(scsi_common_t *sc, uint8_t *cdb)
}
} else
ret = scsi_cdrom_read_blocks(dev, &alloc_length, 1, 0);
if (ret > 0) {
dev->requested_blocks = max_len;
dev->packet_len = alloc_length;