summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/isbc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/isbc.cpp')
-rw-r--r--src/mame/drivers/isbc.cpp52
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)