mirror of
https://github.com/holub/mame
synced 2025-07-03 00:56:03 +03:00
68307, mc68681, tmp68301: Disable side effects for interrupt acknowledgment (nw)
This commit is contained in:
parent
3826322efb
commit
a4742d0129
@ -225,7 +225,8 @@ void m68307_cpu_device::licr2_interrupt()
|
||||
uint8_t m68307_cpu_device::int_ack(offs_t offset)
|
||||
{
|
||||
uint8_t type = m_m68307SIM->get_int_type(this, offset);
|
||||
logerror("Interrupt acknowledged: level %d, type %01X\n", offset, type);
|
||||
if (!machine().side_effects_disabled())
|
||||
logerror("Interrupt acknowledged: level %d, type %01X\n", offset, type);
|
||||
|
||||
// UART provides its own vector
|
||||
if (type == 0x0c)
|
||||
|
@ -357,6 +357,14 @@ void mc68681_device::update_interrupts()
|
||||
m_read_vector = false; // clear IACK too
|
||||
}
|
||||
|
||||
uint8_t mc68681_device::get_irq_vector()
|
||||
{
|
||||
if (!machine().side_effects_disabled())
|
||||
m_read_vector = true;
|
||||
|
||||
return IVR;
|
||||
}
|
||||
|
||||
double duart_base_device::get_ct_rate()
|
||||
{
|
||||
double rate = 0.0f;
|
||||
|
@ -197,7 +197,7 @@ public:
|
||||
|
||||
virtual uint8_t read(offs_t offset) override;
|
||||
virtual void write(offs_t offset, uint8_t data) override;
|
||||
uint8_t get_irq_vector() { m_read_vector = true; return IVR; }
|
||||
uint8_t get_irq_vector();
|
||||
|
||||
protected:
|
||||
virtual void device_start() override;
|
||||
|
@ -217,12 +217,15 @@ uint8_t tmp68301_device::irq_callback(offs_t offset)
|
||||
u16 mask = (src > 2 ? 2 : 1) << src;
|
||||
if ((m_ipr & mask) != 0 && (m_imr & mask) == 0)
|
||||
{
|
||||
// add cause to interrupt in-service register
|
||||
m_iisr |= mask;
|
||||
if (!machine().side_effects_disabled())
|
||||
{
|
||||
// add cause to interrupt in-service register
|
||||
m_iisr |= mask;
|
||||
|
||||
// no longer pending
|
||||
m_ipr &= ~mask;
|
||||
update_ipl();
|
||||
// no longer pending
|
||||
m_ipr &= ~mask;
|
||||
update_ipl();
|
||||
}
|
||||
|
||||
// vary vector number by type
|
||||
if (src > 6)
|
||||
|
Loading…
Reference in New Issue
Block a user