diff options
Diffstat (limited to 'src/mame/drivers/isbc.cpp')
-rw-r--r-- | src/mame/drivers/isbc.cpp | 52 |
1 files changed, 12 insertions, 40 deletions
diff --git a/src/mame/drivers/isbc.cpp b/src/mame/drivers/isbc.cpp index 46d8354e137..b187183d0a2 100644 --- a/src/mame/drivers/isbc.cpp +++ b/src/mame/drivers/isbc.cpp @@ -48,7 +48,6 @@ public: , m_statuslatch(*this, "statuslatch") , m_bios(*this, "user1") , m_biosram(*this, "biosram") - , m_leds(*this, "led%u", 0U) { } void isbc2861(machine_config &config); @@ -73,12 +72,8 @@ private: DECLARE_WRITE8_MEMBER(edge_intr_clear_w); DECLARE_WRITE8_MEMBER(status_register_w); DECLARE_WRITE_LINE_MEMBER(nmi_mask_w); - DECLARE_WRITE_LINE_MEMBER(override_w); DECLARE_WRITE_LINE_MEMBER(bus_intr_out1_w); DECLARE_WRITE_LINE_MEMBER(bus_intr_out2_w); - DECLARE_WRITE_LINE_MEMBER(led_ds1_w); - DECLARE_WRITE_LINE_MEMBER(led_ds3_w); - DECLARE_WRITE_LINE_MEMBER(megabyte_select_w); void isbc2861_mem(address_map &map); void isbc286_io(address_map &map); void isbc286_mem(address_map &map); @@ -89,7 +84,6 @@ private: void rpc86_io(address_map &map); void rpc86_mem(address_map &map); - virtual void machine_start() override { m_leds.resolve(); } virtual void machine_reset() override; required_device<cpu_device> m_maincpu; @@ -103,7 +97,6 @@ private: optional_device<ls259_device> m_statuslatch; optional_memory_region m_bios; optional_shared_ptr<u16> m_biosram; - output_finder<2> m_leds; bool m_upperen; offs_t m_megabyte_page; @@ -323,12 +316,6 @@ WRITE_LINE_MEMBER(isbc_state::nmi_mask_w) m_nmi_enable = state; } -WRITE_LINE_MEMBER(isbc_state::override_w) -{ - // 1 = access onboard dual-port RAM - m_override = state; -} - WRITE_LINE_MEMBER(isbc_state::bus_intr_out1_w) { // Multibus interrupt request (active high) @@ -339,21 +326,6 @@ WRITE_LINE_MEMBER(isbc_state::bus_intr_out2_w) // Multibus interrupt request (active high) } -WRITE_LINE_MEMBER(isbc_state::led_ds1_w) -{ - m_leds[0] = state ? 0 : 1; -} - -WRITE_LINE_MEMBER(isbc_state::led_ds3_w) -{ - m_leds[1] = state ? 0 : 1; -} - -WRITE_LINE_MEMBER(isbc_state::megabyte_select_w) -{ - m_megabyte_enable = !state; -} - MACHINE_CONFIG_START(isbc_state::isbc86) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", I8086, XTAL(5'000'000)) @@ -445,16 +417,16 @@ MACHINE_CONFIG_START(isbc_state::isbc8630) MCFG_DEVICE_ADD("isbc_215g", ISBC_215G, 0x100, "maincpu") MCFG_ISBC_215_IRQ(WRITELINE("pic_0", pic8259_device, ir5_w)) - MCFG_DEVICE_ADD("statuslatch", LS259, 0) // U14 -// MCFG_ADDRESSABLE_LATCH_Q0_OUT_CB(WRITELINE("pit", pit8253_device, write_gate0)) -// MCFG_ADDRESSABLE_LATCH_Q1_OUT_CB(WRITELINE("pit", pit8253_device, write_gate1)) - MCFG_ADDRESSABLE_LATCH_Q2_OUT_CB(WRITELINE(*this, isbc_state, nmi_mask_w)) - MCFG_ADDRESSABLE_LATCH_Q3_OUT_CB(WRITELINE(*this, isbc_state, override_w)) - MCFG_ADDRESSABLE_LATCH_Q4_OUT_CB(WRITELINE(*this, isbc_state, bus_intr_out1_w)) - MCFG_ADDRESSABLE_LATCH_Q5_OUT_CB(WRITELINE(*this, isbc_state, bus_intr_out2_w)) - MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE(*this, isbc_state, led_ds1_w)) - MCFG_ADDRESSABLE_LATCH_Q6_OUT_CB(WRITELINE(*this, isbc_state, led_ds3_w)) - MCFG_ADDRESSABLE_LATCH_Q7_OUT_CB(WRITELINE(*this, isbc_state, megabyte_select_w)) + LS259(config, m_statuslatch); // U14 +// m_statuslatch->q_out_cb<0>().set("pit", FUNC(pit8253_device::write_gate0)); +// m_statuslatch->q_out_cb<1>().set("pit", FUNC(pit8253_device::write_gate1)); + m_statuslatch->q_out_cb<2>().set(FUNC(isbc_state::nmi_mask_w)); + m_statuslatch->q_out_cb<3>().set([this] (int state) { m_override = state; }); // 1 = access onboard dual-port RAM + m_statuslatch->q_out_cb<4>().set(FUNC(isbc_state::bus_intr_out1_w)); + m_statuslatch->q_out_cb<5>().set(FUNC(isbc_state::bus_intr_out2_w)); + m_statuslatch->q_out_cb<5>().append_output("led0").invert(); // ds1 + m_statuslatch->q_out_cb<6>().set_output("led1").invert(); // ds3 + m_statuslatch->q_out_cb<7>().set([this] (int state) { m_megabyte_enable = !state; }); MACHINE_CONFIG_END MACHINE_CONFIG_START(isbc_state::isbc286) @@ -466,12 +438,12 @@ MACHINE_CONFIG_START(isbc_state::isbc286) MCFG_DEVICE_ADD("pic_0", PIC8259, 0) MCFG_PIC8259_OUT_INT_CB(INPUTLINE("maincpu", 0)) - MCFG_PIC8259_IN_SP_CB(VCC) + MCFG_PIC8259_IN_SP_CB(CONSTANT(1)) MCFG_PIC8259_CASCADE_ACK_CB(READ8(*this, isbc_state, get_slave_ack)) MCFG_DEVICE_ADD("pic_1", PIC8259, 0) MCFG_PIC8259_OUT_INT_CB(WRITELINE("pic_0", pic8259_device, ir7_w)) - MCFG_PIC8259_IN_SP_CB(GND) + MCFG_PIC8259_IN_SP_CB(CONSTANT(0)) MCFG_DEVICE_ADD("pit", PIT8254, 0) MCFG_PIT8253_CLK0(XTAL(22'118'400)/18) |