summaryrefslogtreecommitdiffstats
path: root/src/devices/bus/nes/disksys.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/nes/disksys.cpp')
-rw-r--r--src/devices/bus/nes/disksys.cpp29
1 files changed, 13 insertions, 16 deletions
diff --git a/src/devices/bus/nes/disksys.cpp b/src/devices/bus/nes/disksys.cpp
index 71622a3a9e6..d53a2be2aab 100644
--- a/src/devices/bus/nes/disksys.cpp
+++ b/src/devices/bus/nes/disksys.cpp
@@ -121,7 +121,7 @@ void nes_disksys_device::device_start()
m_disk->floppy_install_load_proc(nes_disksys_device::load_proc);
m_disk->floppy_install_unload_proc(nes_disksys_device::unload_proc);
- irq_timer = timer_alloc(TIMER_IRQ);
+ irq_timer = timer_alloc(FUNC(nes_disksys_device::irq_timer_tick), this);
irq_timer->adjust(attotime::zero, 0, clocks_to_attotime(1));
save_item(NAME(m_fds_motor_on));
@@ -212,7 +212,7 @@ uint8_t nes_disksys_device::read_m(offs_t offset)
return m_prgram[offset];
}
-void nes_disksys_device::hblank_irq(int scanline, int vblank, int blanked)
+void nes_disksys_device::hblank_irq(int scanline, bool vblank, bool blanked)
{
// FIXME: This looks like a gross hack that ties the disk byte transfer IRQ to the PPU. Seriously?
if (m_irq_transfer)
@@ -403,25 +403,22 @@ uint8_t nes_disksys_device::read_ex(offs_t offset)
}
//-------------------------------------------------
-// device_timer - handler timer events
+// irq_timer_tick - handle IRQ timer
//-------------------------------------------------
-void nes_disksys_device::device_timer(emu_timer &timer, device_timer_id id, int param)
+TIMER_CALLBACK_MEMBER(nes_disksys_device::irq_timer_tick)
{
- if (id == TIMER_IRQ)
+ if (m_irq_enable)
{
- if (m_irq_enable)
+ if (m_irq_count)
+ m_irq_count--;
+ else
{
- if (m_irq_count)
- m_irq_count--;
- else
- {
- set_irq_line(ASSERT_LINE);
- m_irq_count = m_irq_count_latch;
- if (!m_irq_repeat)
- m_irq_enable = 0;
- m_fds_status0 |= 0x01;
- }
+ set_irq_line(ASSERT_LINE);
+ m_irq_count = m_irq_count_latch;
+ if (!m_irq_repeat)
+ m_irq_enable = 0;
+ m_fds_status0 |= 0x01;
}
}
}