summaryrefslogtreecommitdiffstats
path: root/src/mame/machine/hp48.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/machine/hp48.cpp')
-rw-r--r--src/mame/machine/hp48.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/mame/machine/hp48.cpp b/src/mame/machine/hp48.cpp
index 41b44ba5727..4c0a561a78f 100644
--- a/src/mame/machine/hp48.cpp
+++ b/src/mame/machine/hp48.cpp
@@ -108,7 +108,7 @@ void hp48_state::rs232_start_recv_byte(uint8_t data)
}
/* schedule end of reception */
- machine().scheduler().timer_set(RS232_DELAY, timer_expired_delegate(FUNC(hp48_state::rs232_byte_recv_cb),this), data);
+ m_recv_done_timer->adjust(RS232_DELAY, data);
}
@@ -137,7 +137,7 @@ void hp48_state::rs232_send_byte()
m_io[0x12] |= 3;
/* schedule transmission */
- machine().scheduler().timer_set(RS232_DELAY, timer_expired_delegate(FUNC(hp48_state::rs232_byte_sent_cb),this), data);
+ m_send_done_timer->adjust(RS232_DELAY, data);
}
@@ -976,16 +976,24 @@ void hp48_state::base_machine_start(hp48_models model)
}
/* timers */
- m_1st_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(hp48_state::timer1_cb), this));
+ m_1st_timer = timer_alloc(FUNC(hp48_state::timer1_cb), this);
m_1st_timer->adjust(attotime::from_hz(16), 0, attotime::from_hz(16));
- m_2nd_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(hp48_state::timer2_cb), this));
+ m_2nd_timer = timer_alloc(FUNC(hp48_state::timer2_cb), this);
m_2nd_timer->adjust(attotime::from_hz(8192), 0, attotime::from_hz(8192));
/* 1ms keyboard polling */
- m_kbd_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(hp48_state::kbd_cb), this));
+ m_kbd_timer = timer_alloc(FUNC(hp48_state::kbd_cb), this);
m_kbd_timer->adjust(attotime::from_msec(1), 0, attotime::from_msec(1));
+ /* serial receive done */
+ m_recv_done_timer = timer_alloc(FUNC(hp48_state::rs232_byte_recv_cb), this);
+ m_recv_done_timer->adjust(attotime::never);
+
+ /* serial send done */
+ m_send_done_timer = timer_alloc(FUNC(hp48_state::rs232_byte_sent_cb), this);
+ m_send_done_timer->adjust(attotime::never);
+
m_lshift0.resolve();
m_rshift0.resolve();
m_alpha0.resolve();