diff options
Diffstat (limited to 'src/devices/machine/6522via.cpp')
-rw-r--r-- | src/devices/machine/6522via.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/devices/machine/6522via.cpp b/src/devices/machine/6522via.cpp index 1b1d0ea0766..d4a2de29f5c 100644 --- a/src/devices/machine/6522via.cpp +++ b/src/devices/machine/6522via.cpp @@ -535,7 +535,14 @@ TIMER_CALLBACK_MEMBER(via6522_device::t1_tick) if (T1_CONTINUOUS (m_acr)) { m_t1_pb7 = !m_t1_pb7; - m_t1->adjust(clocks_to_attotime(TIMER1_VALUE + IFR_DELAY)); + if (TIMER1_VALUE > 0) + { + m_t1->adjust(clocks_to_attotime(TIMER1_VALUE + IFR_DELAY)); + } + else + { + m_t1_active = 0; + } } else { @@ -934,8 +941,15 @@ void via6522_device::write(offs_t offset, u8 data) output_pb(); } - m_t1->adjust(clocks_to_attotime(TIMER1_VALUE + IFR_DELAY)); - m_t1_active = 1; + if (TIMER1_VALUE > 0) + { + m_t1->adjust(clocks_to_attotime(TIMER1_VALUE + IFR_DELAY)); + m_t1_active = 1; + } + else + { + m_t1_active = 0; + } break; case VIA_T2CL: |