summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/x68k.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/x68k.cpp')
-rw-r--r--src/mame/drivers/x68k.cpp52
1 files changed, 16 insertions, 36 deletions
diff --git a/src/mame/drivers/x68k.cpp b/src/mame/drivers/x68k.cpp
index d782e63a6e8..ea060b0599d 100644
--- a/src/mame/drivers/x68k.cpp
+++ b/src/mame/drivers/x68k.cpp
@@ -147,36 +147,16 @@
static constexpr uint32_t adpcm_clock[2] = { 8000000, 4000000 };
static constexpr uint32_t adpcm_div[4] = { 1024, 768, 512, /* Reserved */512 };
-void x68k_state::device_timer(emu_timer &timer, device_timer_id id, int param)
+TIMER_CALLBACK_MEMBER(x68k_state::floppy_tc_tick)
{
- switch (id)
- {
- case TIMER_X68K_LED:
- led_callback(param);
- break;
- case TIMER_X68K_SCC_ACK:
- scc_ack(param);
- break;
- case TIMER_MD_6BUTTON_PORT1_TIMEOUT:
- md_6button_port1_timeout(param);
- break;
- case TIMER_MD_6BUTTON_PORT2_TIMEOUT:
- md_6button_port2_timeout(param);
- break;
- case TIMER_X68K_BUS_ERROR:
- bus_error(param);
- break;
- case TIMER_X68K_FDC_TC:
- m_upd72065->tc_w(ASSERT_LINE);
- m_upd72065->tc_w(CLEAR_LINE);
- break;
- case TIMER_X68K_ADPCM:
- m_hd63450->drq3_w(1);
- m_hd63450->drq3_w(0);
- break;
- default:
- throw emu_fatalerror("Unknown id in x68k_state::device_timer");
- }
+ m_upd72065->tc_w(ASSERT_LINE);
+ m_upd72065->tc_w(CLEAR_LINE);
+}
+
+TIMER_CALLBACK_MEMBER(x68k_state::adpcm_drq_tick)
+{
+ m_hd63450->drq3_w(1);
+ m_hd63450->drq3_w(0);
}
// LED timer callback
@@ -373,8 +353,8 @@ TIMER_CALLBACK_MEMBER(x68k_state::md_6button_port2_timeout)
void x68k_state::md_6button_init()
{
- m_mdctrl.io_timeout1 = timer_alloc(TIMER_MD_6BUTTON_PORT1_TIMEOUT);
- m_mdctrl.io_timeout2 = timer_alloc(TIMER_MD_6BUTTON_PORT2_TIMEOUT);
+ m_mdctrl.io_timeout1 = timer_alloc(FUNC(x68k_state::md_6button_port1_timeout), this);
+ m_mdctrl.io_timeout2 = timer_alloc(FUNC(x68k_state::md_6button_port2_timeout), this);
}
uint8_t x68k_state::md_6button_r(int port)
@@ -1580,11 +1560,11 @@ void x68k_state::driver_init()
// copy last half of BIOS to a user region, to use for initial startup
memcpy(user2,(rom+0xff0000),0x10000);
- m_mouse_timer = timer_alloc(TIMER_X68K_SCC_ACK);
- m_led_timer = timer_alloc(TIMER_X68K_LED);
- m_fdc_tc = timer_alloc(TIMER_X68K_FDC_TC);
- m_adpcm_timer = timer_alloc(TIMER_X68K_ADPCM);
- m_bus_error_timer = timer_alloc(TIMER_X68K_BUS_ERROR);
+ m_mouse_timer = timer_alloc(FUNC(x68ksupr_state::scc_ack), this);
+ m_led_timer = timer_alloc(FUNC(x68ksupr_state::led_callback), this);
+ m_fdc_tc = timer_alloc(FUNC(x68ksupr_state::floppy_tc_tick), this);
+ m_adpcm_timer = timer_alloc(FUNC(x68ksupr_state::adpcm_drq_tick), this);
+ m_bus_error_timer = timer_alloc(FUNC(x68ksupr_state::bus_error), this);
// Initialise timers for 6-button MD controllers
md_6button_init();