summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/abc80.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/abc80.cpp')
-rw-r--r--src/mame/drivers/abc80.cpp88
1 files changed, 44 insertions, 44 deletions
diff --git a/src/mame/drivers/abc80.cpp b/src/mame/drivers/abc80.cpp
index df28cb13058..9860410d024 100644
--- a/src/mame/drivers/abc80.cpp
+++ b/src/mame/drivers/abc80.cpp
@@ -365,7 +365,7 @@ void abc80_state::kbd_w(u8 data)
u8 pio_data = 0x80 | data;
m_pio->port_a_write(pio_data);
- timer_set(attotime::from_msec(50), TIMER_ID_FAKE_KEYBOARD_CLEAR);
+ m_keyboard_clear_timer->adjust(attotime::from_msec(50));
}
@@ -375,74 +375,74 @@ void abc80_state::kbd_w(u8 data)
//**************************************************************************
//-------------------------------------------------
-// device_timer - handler timer events
+// timer events
//-------------------------------------------------
-void abc80_state::device_timer(emu_timer &timer, device_timer_id id, int param)
+TIMER_CALLBACK_MEMBER(abc80_state::scanline_tick)
{
- switch (id)
- {
- case TIMER_ID_SCANLINE:
- draw_scanline(m_bitmap, m_screen->vpos());
+ draw_scanline(m_bitmap, m_screen->vpos());
- m_pio_astb = !m_pio_astb;
+ m_pio_astb = !m_pio_astb;
- m_pio->strobe_a(m_pio_astb);
- break;
+ m_pio->strobe_a(m_pio_astb);
+}
- case TIMER_ID_CASSETTE:
- {
- if (!m_motor) return;
+TIMER_CALLBACK_MEMBER(abc80_state::cassette_update)
+{
+ if (!m_motor)
+ return;
- int tape_in = m_cassette->input() > 0;
+ int tape_in = m_cassette->input() > 0;
- if (m_tape_in != tape_in)
- if (LOG) logerror("%s tape flank %u\n", machine().time().as_string(), tape_in);
+ if (m_tape_in != tape_in)
+ if (LOG) logerror("%s tape flank %u\n", machine().time().as_string(), tape_in);
- if (m_tape_in_latch && (m_tape_in != tape_in))
- {
- if (LOG) logerror("%s set tape in latch\n", machine().time().as_string());
- m_tape_in_latch = 0;
+ if (m_tape_in_latch && (m_tape_in != tape_in))
+ {
+ if (LOG) logerror("%s set tape in latch\n", machine().time().as_string());
+ m_tape_in_latch = 0;
- m_pio->port_b_write(m_tape_in_latch << 7);
- }
+ m_pio->port_b_write(m_tape_in_latch << 7);
+ }
- m_tape_in = tape_in;
- }
- break;
+ m_tape_in = tape_in;
+}
- case TIMER_ID_BLINK:
- m_blink = !m_blink;
- break;
+TIMER_CALLBACK_MEMBER(abc80_state::blink_tick)
+{
+ m_blink = !m_blink;
+}
- case TIMER_ID_VSYNC_ON:
- if (LOG) logerror("%s vsync 1\n", machine().time().as_string());
- m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
- break;
+TIMER_CALLBACK_MEMBER(abc80_state::vsync_on)
+{
+ if (LOG) logerror("%s vsync 1\n", machine().time().as_string());
+ m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
+}
- case TIMER_ID_VSYNC_OFF:
- if (LOG) logerror("%s vsync 0\n", machine().time().as_string());
- m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
- break;
+TIMER_CALLBACK_MEMBER(abc80_state::vsync_off)
+{
+ if (LOG) logerror("%s vsync 0\n", machine().time().as_string());
+ m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
+}
- case TIMER_ID_FAKE_KEYBOARD_CLEAR:
- m_pio->port_a_write(m_key_data);
- m_key_strobe = 0;
- m_key_data = 0;
- break;
- }
+TIMER_CALLBACK_MEMBER(abc80_state::clear_keyboard)
+{
+ m_pio->port_a_write(m_key_data);
+ m_key_strobe = 0;
+ m_key_data = 0;
}
//-------------------------------------------------
-// MACHINE_START( abc80 )
+// machine_start
//-------------------------------------------------
void abc80_state::machine_start()
{
// start timers
- m_cassette_timer = timer_alloc(TIMER_ID_CASSETTE);
+ m_cassette_timer = timer_alloc(FUNC(abc80_state::cassette_update), this);
m_cassette_timer->adjust(attotime::from_hz(44100), 0, attotime::from_hz(44100));
+ m_keyboard_clear_timer = timer_alloc(FUNC(abc80_state::clear_keyboard), this);
// register for state saving
save_item(NAME(m_key_data));