summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/cat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/cat.cpp')
-rw-r--r--src/mame/drivers/cat.cpp15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/mame/drivers/cat.cpp b/src/mame/drivers/cat.cpp
index 8fb88335a64..389779d6f54 100644
--- a/src/mame/drivers/cat.cpp
+++ b/src/mame/drivers/cat.cpp
@@ -355,10 +355,11 @@ public:
//TIMER_CALLBACK_MEMBER(keyboard_callback);
TIMER_CALLBACK_MEMBER(counter_6ms_callback);
- IRQ_CALLBACK_MEMBER(cat_int_ack);
void cat(machine_config &config);
void cat_mem(address_map &map);
+ void cpu_space_map(address_map &map);
+
protected:
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
};
@@ -915,10 +916,10 @@ TIMER_CALLBACK_MEMBER(cat_state::counter_6ms_callback)
m_6ms_counter++;
}
-IRQ_CALLBACK_MEMBER(cat_state::cat_int_ack)
+void cat_state::cpu_space_map(address_map &map)
{
- m_maincpu->set_input_line(M68K_IRQ_1,CLEAR_LINE);
- return M68K_INT_ACK_AUTOVECTOR;
+ map(0xfffff0, 0xffffff).m(m_maincpu, FUNC(m68000_base_device::autovectors_map));
+ map(0xfffff2, 0xfffff3).lr16("interrupt 1", [this]() -> u16 { m_maincpu->set_input_line(1, CLEAR_LINE); return 0x19; });
}
MACHINE_START_MEMBER(cat_state,cat)
@@ -983,12 +984,10 @@ uint32_t cat_state::screen_update_cat(screen_device &screen, bitmap_rgb32 &bitma
*/
WRITE_LINE_MEMBER(cat_state::cat_duart_irq_handler)
{
- int irqvector = m_duart->get_irq_vector();
-
#ifdef DEBUG_DUART_IRQ_HANDLER
fprintf(stderr, "Duart IRQ handler called: state: %02X, vector: %06X\n", state, irqvector);
#endif
- m_maincpu->set_input_line_and_vector(M68K_IRQ_1, state, irqvector);
+ m_maincpu->set_input_line(M68K_IRQ_1, state);
}
WRITE_LINE_MEMBER(cat_state::cat_duart_txa) // semit sends stuff here; connects to the serial port on the back
@@ -1059,7 +1058,7 @@ void cat_state::cat(machine_config &config)
/* basic machine hardware */
M68000(config, m_maincpu, XTAL(19'968'000)/4);
m_maincpu->set_addrmap(AS_PROGRAM, &cat_state::cat_mem);
- m_maincpu->set_irq_acknowledge_callback(FUNC(cat_state::cat_int_ack));
+ m_maincpu->set_addrmap(m68000_base_device::AS_CPU_SPACE, &cat_state::cpu_space_map);
MCFG_MACHINE_START_OVERRIDE(cat_state,cat)
MCFG_MACHINE_RESET_OVERRIDE(cat_state,cat)