summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/6850acia.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/6850acia.cpp')
-rw-r--r--src/devices/machine/6850acia.cpp25
1 files changed, 15 insertions, 10 deletions
diff --git a/src/devices/machine/6850acia.cpp b/src/devices/machine/6850acia.cpp
index 0671dd04ecc..6527608bf0f 100644
--- a/src/devices/machine/6850acia.cpp
+++ b/src/devices/machine/6850acia.cpp
@@ -16,7 +16,7 @@
MACROS
***************************************************************************/
-//#define VERBOSE 1
+#define VERBOSE 1
//#define LOG_OUTPUT_STREAM std::cout
#include "logmacro.h"
@@ -582,15 +582,20 @@ void acia6850_device::output_irq(int irq)
{
m_irq = irq;
- if (irq)
- {
- m_status &= ~SR_IRQ;
- }
- else
- {
- m_status |= SR_IRQ;
- }
+ machine().scheduler().synchronize(timer_expired_delegate(FUNC(acia6850_device::delayed_output_irq), this), irq);
+ }
+}
- m_irq_handler(!m_irq);
+TIMER_CALLBACK_MEMBER(acia6850_device::delayed_output_irq)
+{
+ if (m_irq)
+ {
+ m_status &= ~SR_IRQ;
+ }
+ else
+ {
+ m_status |= SR_IRQ;
}
+
+ m_irq_handler(!m_irq);
}