summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/cgc7900.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/cgc7900.cpp')
-rw-r--r--src/mame/drivers/cgc7900.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/mame/drivers/cgc7900.cpp b/src/mame/drivers/cgc7900.cpp
index 6a9ee61a639..6ac7e730d22 100644
--- a/src/mame/drivers/cgc7900.cpp
+++ b/src/mame/drivers/cgc7900.cpp
@@ -233,6 +233,11 @@ WRITE16_MEMBER( cgc7900_state::interrupt_mask_w )
m_int_mask = data;
}
+void cgc7900_state::cpu_space_map(address_map &map)
+{
+ map(0xfffff2, 0xffffff).lr16("interrupt", [this](offs_t offset) -> u16 { return int_vectors[offset+1]; });
+}
+
void cgc7900_state::irq_encoder(int pin, int state)
{
if (state == ASSERT_LINE)
@@ -242,7 +247,7 @@ void cgc7900_state::irq_encoder(int pin, int state)
if (!BIT(m_int_mask, pin))
{
- m_maincpu->set_input_line_and_vector(int_levels[pin], state, int_vectors[pin]);
+ m_maincpu->set_input_line(int_levels[pin], state);
}
}
@@ -463,6 +468,8 @@ void cgc7900_state::cgc7900(machine_config &config)
/* basic machine hardware */
M68000(config, m_maincpu, XTAL(28'480'000)/4);
m_maincpu->set_addrmap(AS_PROGRAM, &cgc7900_state::cgc7900_mem);
+ m_maincpu->set_addrmap(m68000_base_device::AS_CPU_SPACE, &cgc7900_state::cpu_space_map);
+
i8035_device &kbmcu(I8035(config, I8035_TAG, 1000000));
kbmcu.set_addrmap(AS_PROGRAM, &cgc7900_state::keyboard_mem);