Change ATAPI CD-ROM phase earlier (the ATAPI specification's flow chart says it should happen when data is ready, but that behavior is not listed as mandatory, and at least one DOS CD-ROM driver from Acer expects it to be set right after the current command phase has finished).

This commit is contained in:
OBattler
2022-10-26 06:07:02 +02:00
parent 177fe6a3ac
commit d8eb5c7ff4

View File

@@ -689,6 +689,7 @@ scsi_cdrom_command_complete(scsi_cdrom_t *dev)
ui_sb_update_icon(SB_CDROM | dev->id, 0);
dev->packet_status = PHASE_COMPLETE;
scsi_cdrom_command_common(dev);
dev->phase = 3;
}
static void
@@ -696,6 +697,7 @@ scsi_cdrom_command_read(scsi_cdrom_t *dev)
{
dev->packet_status = PHASE_DATA_IN;
scsi_cdrom_command_common(dev);
dev->phase = !(dev->packet_status & 0x01) << 1;
}
static void
@@ -710,6 +712,7 @@ scsi_cdrom_command_write(scsi_cdrom_t *dev)
{
dev->packet_status = PHASE_DATA_OUT;
scsi_cdrom_command_common(dev);
dev->phase = !(dev->packet_status & 0x01) << 1;
}
static void