pcecd: send status immediately after receiving an invalid command
* pcecd: fix command SAPEP (stop cdda when mode=0) * pcecd: send status immediately after receiving an invalid command
This commit is contained in:
@@ -82,6 +82,7 @@ public:
|
||||
int GetStatus(uint8_t* buf);
|
||||
int SetCommand(uint8_t* buf);
|
||||
void PendStatus(uint8_t status, uint8_t message);
|
||||
void SendStatus(uint8_t status, uint8_t message);
|
||||
|
||||
private:
|
||||
toc_t toc;
|
||||
|
||||
@@ -721,7 +721,7 @@ void pcecdd_t::CommandExec() {
|
||||
|
||||
default:
|
||||
CommandError(SENSEKEY_ILLEGAL_REQUEST, NSE_INVALID_COMMAND, 0, 0);
|
||||
PendStatus(PCECD_STATUS_CHECK_COND, 0);
|
||||
SendStatus(PCECD_STATUS_CHECK_COND, 0);
|
||||
|
||||
printf("\x1b[32mPCECD: Command undefined, [0] = %02X, [1] = %02X, [2] = %02X, [3] = %02X, [4] = %02X, [5] = %02X\n\x1b[0m", comm[0], comm[1], comm[2], comm[3], comm[4], comm[5]);
|
||||
break;
|
||||
@@ -744,6 +744,16 @@ void pcecdd_t::PendStatus(uint8_t status, uint8_t message) {
|
||||
has_status = 1;
|
||||
}
|
||||
|
||||
void pcecdd_t::SendStatus(uint8_t status, uint8_t message) {
|
||||
uint16_t s = ((uint16_t)message << 8) | status;
|
||||
|
||||
spi_uio_cmd_cont(UIO_CD_SET);
|
||||
spi_w(s);
|
||||
spi_w(0);
|
||||
DisableIO();
|
||||
}
|
||||
|
||||
|
||||
void pcecdd_t::LBAToMSF(int lba, msf_t* msf) {
|
||||
msf->m = (lba / 75) / 60;
|
||||
msf->s = (lba / 75) % 60;
|
||||
|
||||
Reference in New Issue
Block a user