diff options
Diffstat (limited to 'src/mame/hp/hp9k_3xx.cpp')
-rw-r--r-- | src/mame/hp/hp9k_3xx.cpp | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/src/mame/hp/hp9k_3xx.cpp b/src/mame/hp/hp9k_3xx.cpp index 4c5222cbb03..42998f3103e 100644 --- a/src/mame/hp/hp9k_3xx.cpp +++ b/src/mame/hp/hp9k_3xx.cpp @@ -97,13 +97,12 @@ public: void hp9k382(machine_config &config); protected: - virtual void machine_reset() override; virtual void machine_start() override; virtual void driver_start() override; private: void hp9k300(machine_config &config); - required_device<m68000_base_device> m_maincpu; + required_device<m68000_musashi_device> m_maincpu; output_finder<8> m_diag_led; @@ -129,13 +128,13 @@ private: void add_dio16_bus(machine_config &mconfig); void add_dio32_bus(machine_config &mconfig); - DECLARE_WRITE_LINE_MEMBER(dio_irq1_w) { m_maincpu->set_input_line(M68K_IRQ_1, state); }; - DECLARE_WRITE_LINE_MEMBER(dio_irq2_w) { m_maincpu->set_input_line(M68K_IRQ_2, state); }; - DECLARE_WRITE_LINE_MEMBER(dio_irq3_w) { m_maincpu->set_input_line(M68K_IRQ_3, state); }; - DECLARE_WRITE_LINE_MEMBER(dio_irq4_w) { m_maincpu->set_input_line(M68K_IRQ_4, state); }; - DECLARE_WRITE_LINE_MEMBER(dio_irq5_w) { m_maincpu->set_input_line(M68K_IRQ_5, state); }; - DECLARE_WRITE_LINE_MEMBER(dio_irq6_w) { m_maincpu->set_input_line(M68K_IRQ_6, state); }; - DECLARE_WRITE_LINE_MEMBER(dio_irq7_w) { m_maincpu->set_input_line(M68K_IRQ_7, state); }; + void dio_irq1_w(int state) { m_maincpu->set_input_line(M68K_IRQ_1, state); } + void dio_irq2_w(int state) { m_maincpu->set_input_line(M68K_IRQ_2, state); } + void dio_irq3_w(int state) { m_maincpu->set_input_line(M68K_IRQ_3, state); } + void dio_irq4_w(int state) { m_maincpu->set_input_line(M68K_IRQ_4, state); } + void dio_irq5_w(int state) { m_maincpu->set_input_line(M68K_IRQ_5, state); } + void dio_irq6_w(int state) { m_maincpu->set_input_line(M68K_IRQ_6, state); } + void dio_irq7_w(int state) { m_maincpu->set_input_line(M68K_IRQ_7, state); } bool m_bus_error = false; emu_timer *m_bus_error_timer = nullptr; @@ -227,13 +226,6 @@ void hp9k3xx_state::driver_start() m_diag_led.resolve(); } -void hp9k3xx_state::machine_reset() -{ - auto *dio = subdevice<bus::hp_dio::dio16_device>("diobus"); - if (dio) - m_maincpu->set_reset_callback(*dio, FUNC(bus::hp_dio::dio16_device::reset_in)); -} - void hp9k3xx_state::machine_start() { m_bus_error_timer = timer_alloc(FUNC(hp9k3xx_state::bus_error_timeout), this); @@ -267,6 +259,7 @@ void hp9k3xx_state::add_dio16_bus(machine_config &config) { bus::hp_dio::dio16_device &dio16(DIO16(config, "diobus", 0)); dio16.set_program_space(m_maincpu, AS_PROGRAM); + m_maincpu->reset_cb().set(dio16, FUNC(bus::hp_dio::dio16_device::reset_in)); dio16.irq1_out_cb().set(FUNC(hp9k3xx_state::dio_irq1_w)); dio16.irq2_out_cb().set(FUNC(hp9k3xx_state::dio_irq2_w)); |