summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/mc68328.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/mc68328.cpp')
-rw-r--r--src/devices/machine/mc68328.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/devices/machine/mc68328.cpp b/src/devices/machine/mc68328.cpp
index 6f453483102..9117801749f 100644
--- a/src/devices/machine/mc68328.cpp
+++ b/src/devices/machine/mc68328.cpp
@@ -353,6 +353,11 @@ void mc68328_device::internal_map(address_map &map)
map(0xfff000, 0xffffff).rw(FUNC(mc68328_device::internal_read), FUNC(mc68328_device::internal_write));
}
+void mc68328_device::cpu_space_map(address_map &map)
+{
+ map(0xfffff2, 0xffffff).r(FUNC(mc68328_device::irq_callback));
+}
+
mc68328_device::mc68328_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: m68000_device(mconfig, tag, owner, clock, MC68328, 16, 24, address_map_constructor(FUNC(mc68328_device::internal_map), this))
@@ -448,8 +453,6 @@ void mc68328_device::device_reset()
{
m68000_device::device_reset();
- m_int_ack_callback = device_irq_acknowledge_delegate(FUNC(mc68328_device::vector_gen), this);
-
m_regs.scr = 0x0c;
m_regs.grpbasea = 0x0000;
m_regs.grpbaseb = 0x0000;
@@ -705,9 +708,9 @@ void mc68328_device::set_port_d_lines(uint8_t state, int bit)
poll_port_d_interrupts();
}
-IRQ_CALLBACK_MEMBER( mc68328_device::vector_gen )
+u16 mc68328_device::irq_callback(offs_t offset)
{
- return m_regs.ivr | irqline;
+ return m_regs.ivr | (offset + 1);
}
uint32_t mc68328_device::get_timer_frequency(uint32_t index)