summaryrefslogtreecommitdiffstats
path: root/src/mame/machine/amiga.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/machine/amiga.cpp')
-rw-r--r--src/mame/machine/amiga.cpp31
1 files changed, 5 insertions, 26 deletions
diff --git a/src/mame/machine/amiga.cpp b/src/mame/machine/amiga.cpp
index e1a21ae7fc9..bf729fe3d58 100644
--- a/src/mame/machine/amiga.cpp
+++ b/src/mame/machine/amiga.cpp
@@ -163,10 +163,10 @@ void amiga_state::machine_start()
m_chip_ram_mask = (m_chip_ram.bytes() - 1) & ~1;
// set up the timers
- m_irq_timer = timer_alloc(TIMER_AMIGA_IRQ);
- m_blitter_timer = timer_alloc(TIMER_AMIGA_BLITTER);
- m_serial_timer = timer_alloc(TIMER_SERIAL);
- m_scanline_timer = timer_alloc(TIMER_SCANLINE);
+ m_irq_timer = timer_alloc(FUNC(amiga_state::amiga_irq_proc), this);
+ m_blitter_timer = timer_alloc(FUNC(amiga_state::amiga_blitter_proc), this);
+ m_serial_timer = timer_alloc(FUNC(amiga_state::serial_shift), this);
+ m_scanline_timer = timer_alloc(FUNC(amiga_state::scanline_callback), this);
// start the scanline timer
m_scanline_timer->adjust(m_screen->time_until_pos(0));
@@ -226,27 +226,6 @@ uint32_t amiga_state::rom_mirror32_r(offs_t offset, uint32_t mem_mask)
return m_maincpu->space(AS_PROGRAM).read_dword(offset + 0xf80000, mem_mask);
}
-void amiga_state::device_timer(emu_timer &timer, device_timer_id id, int param)
-{
- switch (id)
- {
- case TIMER_SCANLINE:
- scanline_callback(param);
- break;
- case TIMER_AMIGA_IRQ:
- amiga_irq_proc(param);
- break;
- case TIMER_AMIGA_BLITTER:
- amiga_blitter_proc(param);
- break;
- case TIMER_SERIAL:
- serial_shift();
- break;
- default:
- fatalerror("Invalid timer: %d\n", id);
- }
-}
-
/*************************************
*
@@ -1725,7 +1704,7 @@ void amiga_state::serial_adjust()
m_serial_timer->adjust(attotime::from_hz(baud) / 2, 0, attotime::from_hz(baud));
}
-void amiga_state::serial_shift()
+TIMER_CALLBACK_MEMBER(amiga_state::serial_shift)
{
if (CUSTOM_REG(REG_ADKCON) & ADKCON_UARTBRK)
{