diff options
Diffstat (limited to 'src/mame/drivers/cgc7900.cpp')
-rw-r--r-- | src/mame/drivers/cgc7900.cpp | 9 |
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); |