summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/6522via.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/6522via.cpp')
-rw-r--r--src/devices/machine/6522via.cpp20
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: