mirror of
https://github.com/holub/mame
synced 2025-07-04 17:38:08 +03:00
i8251, upd765: Allow read side effects to be disabled (nw)
This commit is contained in:
parent
79040abaf0
commit
afd80b1a98
@ -674,9 +674,11 @@ uint8_t i8251_device::data_r()
|
||||
{
|
||||
LOG("read data: %02x, STATUS=%02x\n",m_rx_data,m_status);
|
||||
/* reading clears */
|
||||
if (!machine().side_effects_disabled())
|
||||
{
|
||||
m_status &= ~I8251_STATUS_RX_READY;
|
||||
|
||||
update_rx_ready();
|
||||
}
|
||||
return m_rx_data;
|
||||
}
|
||||
|
||||
|
@ -444,7 +444,7 @@ uint8_t upd765_family_device::msr_r()
|
||||
}
|
||||
msr |= get_drive_busy();
|
||||
|
||||
if(data_irq) {
|
||||
if(data_irq && !machine().side_effects_disabled()) {
|
||||
data_irq = false;
|
||||
check_irq();
|
||||
}
|
||||
@ -471,6 +471,8 @@ uint8_t upd765_family_device::fifo_r()
|
||||
uint8_t r = 0xff;
|
||||
switch(main_phase) {
|
||||
case PHASE_EXEC:
|
||||
if(machine().side_effects_disabled())
|
||||
return fifo[0];
|
||||
if(internal_drq)
|
||||
return fifo_pop(false);
|
||||
LOGFIFO("fifo_r in phase %d\n", main_phase);
|
||||
@ -478,6 +480,7 @@ uint8_t upd765_family_device::fifo_r()
|
||||
|
||||
case PHASE_RESULT:
|
||||
r = result[0];
|
||||
if(!machine().side_effects_disabled()) {
|
||||
result_pos--;
|
||||
memmove(result, result+1, result_pos);
|
||||
if(!result_pos)
|
||||
@ -489,6 +492,7 @@ uint8_t upd765_family_device::fifo_r()
|
||||
fi.main_state = IDLE;
|
||||
clr_drive_busy();
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
LOGFIFO("fifo_r in phase %d\n", main_phase);
|
||||
@ -645,6 +649,8 @@ void upd765_family_device::fifo_expect(int size, bool write)
|
||||
|
||||
uint8_t upd765_family_device::dma_r()
|
||||
{
|
||||
if(machine().side_effects_disabled())
|
||||
return fifo[0];
|
||||
return fifo_pop(false);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user