From 5f484e857ef65d086dc3c9913ba56ee4c67491b5 Mon Sep 17 00:00:00 2001 From: mooglyguy Date: Thu, 2 Aug 2018 11:33:50 +0200 Subject: Make OG happier about output latches, nw --- src/devices/bus/abcbus/lux21056.cpp | 9 +-------- src/devices/bus/abcbus/lux4105.cpp | 9 +-------- src/devices/bus/econet/e01.cpp | 18 ++---------------- src/devices/bus/ieee488/d9060.cpp | 9 +-------- src/devices/bus/scsi/scsi.cpp | 12 ++++++++++++ src/devices/bus/scsi/scsi.h | 2 ++ src/devices/video/huc6272.cpp | 9 +-------- src/mame/drivers/bbc.cpp | 1 + src/mame/drivers/oric.cpp | 9 +-------- src/mame/drivers/rmnimbus.cpp | 18 ++---------------- 10 files changed, 24 insertions(+), 72 deletions(-) diff --git a/src/devices/bus/abcbus/lux21056.cpp b/src/devices/bus/abcbus/lux21056.cpp index 090d14b47c5..b8c67ceb99a 100644 --- a/src/devices/bus/abcbus/lux21056.cpp +++ b/src/devices/bus/abcbus/lux21056.cpp @@ -272,14 +272,7 @@ void luxor_55_21056_device::device_add_mconfig(machine_config &config) m_sasibus->set_slot_device(1, "harddisk", S1410, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_0)); OUTPUT_LATCH(config, m_sasi_data_out); - m_sasi_data_out->bit_handler<0>().set(m_sasibus, FUNC(scsi_port_device::write_data0)); - m_sasi_data_out->bit_handler<1>().set(m_sasibus, FUNC(scsi_port_device::write_data1)); - m_sasi_data_out->bit_handler<2>().set(m_sasibus, FUNC(scsi_port_device::write_data2)); - m_sasi_data_out->bit_handler<3>().set(m_sasibus, FUNC(scsi_port_device::write_data3)); - m_sasi_data_out->bit_handler<4>().set(m_sasibus, FUNC(scsi_port_device::write_data4)); - m_sasi_data_out->bit_handler<5>().set(m_sasibus, FUNC(scsi_port_device::write_data5)); - m_sasi_data_out->bit_handler<6>().set(m_sasibus, FUNC(scsi_port_device::write_data6)); - m_sasi_data_out->bit_handler<7>().set(m_sasibus, FUNC(scsi_port_device::write_data7)); + m_sasibus->set_output_latch(*m_sasi_data_out); INPUT_BUFFER(config, m_sasi_data_in); } diff --git a/src/devices/bus/abcbus/lux4105.cpp b/src/devices/bus/abcbus/lux4105.cpp index 1e89799a302..1d00d071fc8 100644 --- a/src/devices/bus/abcbus/lux4105.cpp +++ b/src/devices/bus/abcbus/lux4105.cpp @@ -83,14 +83,7 @@ void luxor_4105_device::device_add_mconfig(machine_config &config) m_sasibus->set_slot_device(1, "harddisk", S1410, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_0)); OUTPUT_LATCH(config, m_sasi_data_out); - m_sasi_data_out->bit_handler<0>().set(m_sasibus, FUNC(scsi_port_device::write_data0)); - m_sasi_data_out->bit_handler<1>().set(m_sasibus, FUNC(scsi_port_device::write_data1)); - m_sasi_data_out->bit_handler<2>().set(m_sasibus, FUNC(scsi_port_device::write_data2)); - m_sasi_data_out->bit_handler<3>().set(m_sasibus, FUNC(scsi_port_device::write_data3)); - m_sasi_data_out->bit_handler<4>().set(m_sasibus, FUNC(scsi_port_device::write_data4)); - m_sasi_data_out->bit_handler<5>().set(m_sasibus, FUNC(scsi_port_device::write_data5)); - m_sasi_data_out->bit_handler<6>().set(m_sasibus, FUNC(scsi_port_device::write_data6)); - m_sasi_data_out->bit_handler<7>().set(m_sasibus, FUNC(scsi_port_device::write_data7)); + m_sasibus->set_output_latch(*m_sasi_data_out); INPUT_BUFFER(config, m_sasi_data_in); } diff --git a/src/devices/bus/econet/e01.cpp b/src/devices/bus/econet/e01.cpp index ed897500b54..b7e8bab4002 100644 --- a/src/devices/bus/econet/e01.cpp +++ b/src/devices/bus/econet/e01.cpp @@ -275,14 +275,7 @@ void econet_e01_device::device_add_mconfig(machine_config &config) m_centronics->ack_handler().set(R6522_TAG, FUNC(via6522_device::write_ca1)); output_latch_device ¢_data_out(OUTPUT_LATCH(config, "cent_data_out")); - cent_data_out.bit_handler<0>().set(m_centronics, FUNC(centronics_device::write_data0)); - cent_data_out.bit_handler<1>().set(m_centronics, FUNC(centronics_device::write_data1)); - cent_data_out.bit_handler<2>().set(m_centronics, FUNC(centronics_device::write_data2)); - cent_data_out.bit_handler<3>().set(m_centronics, FUNC(centronics_device::write_data3)); - cent_data_out.bit_handler<4>().set(m_centronics, FUNC(centronics_device::write_data4)); - cent_data_out.bit_handler<5>().set(m_centronics, FUNC(centronics_device::write_data5)); - cent_data_out.bit_handler<6>().set(m_centronics, FUNC(centronics_device::write_data6)); - cent_data_out.bit_handler<7>().set(m_centronics, FUNC(centronics_device::write_data7)); + m_centronics->set_output_latch(cent_data_out); SCSI_PORT(config, m_scsibus); m_scsibus->set_data_input_buffer(m_scsi_data_in); @@ -297,14 +290,7 @@ void econet_e01_device::device_add_mconfig(machine_config &config) m_scsibus->set_slot_device(1, "harddisk", SCSIHD, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_0)); OUTPUT_LATCH(config, m_scsi_data_out); - m_scsi_data_out->bit_handler<0>().set(m_scsibus, FUNC(scsi_port_device::write_data0)); - m_scsi_data_out->bit_handler<1>().set(m_scsibus, FUNC(scsi_port_device::write_data1)); - m_scsi_data_out->bit_handler<2>().set(m_scsibus, FUNC(scsi_port_device::write_data2)); - m_scsi_data_out->bit_handler<3>().set(m_scsibus, FUNC(scsi_port_device::write_data3)); - m_scsi_data_out->bit_handler<4>().set(m_scsibus, FUNC(scsi_port_device::write_data4)); - m_scsi_data_out->bit_handler<5>().set(m_scsibus, FUNC(scsi_port_device::write_data5)); - m_scsi_data_out->bit_handler<6>().set(m_scsibus, FUNC(scsi_port_device::write_data6)); - m_scsi_data_out->bit_handler<7>().set(m_scsibus, FUNC(scsi_port_device::write_data7)); + m_scsibus->set_output_latch(*m_scsi_data_out); INPUT_BUFFER(config, m_scsi_data_in); INPUT_BUFFER(config, m_scsi_ctrl_in); diff --git a/src/devices/bus/ieee488/d9060.cpp b/src/devices/bus/ieee488/d9060.cpp index 061037ced8a..0005220c1e3 100644 --- a/src/devices/bus/ieee488/d9060.cpp +++ b/src/devices/bus/ieee488/d9060.cpp @@ -406,14 +406,7 @@ void d9060_device_base::device_add_mconfig(machine_config &config) m_sasibus->data7_handler().set(M6522_TAG, FUNC(via6522_device::write_pa7)); OUTPUT_LATCH(config, m_sasi_data_out); - m_sasi_data_out->bit_handler<0>().set(m_sasibus, FUNC(scsi_port_device::write_data0)); - m_sasi_data_out->bit_handler<1>().set(m_sasibus, FUNC(scsi_port_device::write_data1)); - m_sasi_data_out->bit_handler<2>().set(m_sasibus, FUNC(scsi_port_device::write_data2)); - m_sasi_data_out->bit_handler<3>().set(m_sasibus, FUNC(scsi_port_device::write_data3)); - m_sasi_data_out->bit_handler<4>().set(m_sasibus, FUNC(scsi_port_device::write_data4)); - m_sasi_data_out->bit_handler<5>().set(m_sasibus, FUNC(scsi_port_device::write_data5)); - m_sasi_data_out->bit_handler<6>().set(m_sasibus, FUNC(scsi_port_device::write_data6)); - m_sasi_data_out->bit_handler<7>().set(m_sasibus, FUNC(scsi_port_device::write_data7)); + m_sasibus->set_output_latch(*m_sasi_data_out); m_sasibus->set_slot_device(1, "harddisk", D9060HD, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_0)); } diff --git a/src/devices/bus/scsi/scsi.cpp b/src/devices/bus/scsi/scsi.cpp index d2cf678f239..5997266b84d 100644 --- a/src/devices/bus/scsi/scsi.cpp +++ b/src/devices/bus/scsi/scsi.cpp @@ -657,6 +657,18 @@ void scsi_port_device::set_slot_device(int index, const char *option, const devi slot(index).set_default_option(option); } +void scsi_port_device::set_output_latch(output_latch_device &latch) +{ + latch.bit_handler<0>().set(*this, FUNC(scsi_port_device::write_data0)); + latch.bit_handler<1>().set(*this, FUNC(scsi_port_device::write_data1)); + latch.bit_handler<2>().set(*this, FUNC(scsi_port_device::write_data2)); + latch.bit_handler<3>().set(*this, FUNC(scsi_port_device::write_data3)); + latch.bit_handler<4>().set(*this, FUNC(scsi_port_device::write_data4)); + latch.bit_handler<5>().set(*this, FUNC(scsi_port_device::write_data5)); + latch.bit_handler<6>().set(*this, FUNC(scsi_port_device::write_data6)); + latch.bit_handler<7>().set(*this, FUNC(scsi_port_device::write_data7)); +} + DEFINE_DEVICE_TYPE(SCSI_PORT, scsi_port_device, "scsi", "SCSI Port") scsi_port_slot_device::scsi_port_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : diff --git a/src/devices/bus/scsi/scsi.h b/src/devices/bus/scsi/scsi.h index 9dd4db673f0..e5995f970ab 100644 --- a/src/devices/bus/scsi/scsi.h +++ b/src/devices/bus/scsi/scsi.h @@ -148,6 +148,8 @@ public: data7_handler().set(tag, FUNC(input_buffer_device::write_bit7)); } + void set_output_latch(output_latch_device &latch); + DECLARE_WRITE_LINE_MEMBER( write_bsy ); DECLARE_WRITE_LINE_MEMBER( write_sel ); DECLARE_WRITE_LINE_MEMBER( write_cd ); diff --git a/src/devices/video/huc6272.cpp b/src/devices/video/huc6272.cpp index ffe856c1270..3755a1d870d 100644 --- a/src/devices/video/huc6272.cpp +++ b/src/devices/video/huc6272.cpp @@ -392,14 +392,7 @@ void huc6272_device::device_add_mconfig(machine_config &config) scsibus.sel_handler().set("scsi_ctrl_in", FUNC(input_buffer_device::write_bit1)); output_latch_device &scsiout(OUTPUT_LATCH(config, "scsi_data_out")); - scsiout.bit_handler<0>().set("scsi", FUNC(scsi_port_device::write_data0)); - scsiout.bit_handler<1>().set("scsi", FUNC(scsi_port_device::write_data1)); - scsiout.bit_handler<2>().set("scsi", FUNC(scsi_port_device::write_data2)); - scsiout.bit_handler<3>().set("scsi", FUNC(scsi_port_device::write_data3)); - scsiout.bit_handler<4>().set("scsi", FUNC(scsi_port_device::write_data4)); - scsiout.bit_handler<5>().set("scsi", FUNC(scsi_port_device::write_data5)); - scsiout.bit_handler<6>().set("scsi", FUNC(scsi_port_device::write_data6)); - scsiout.bit_handler<7>().set("scsi", FUNC(scsi_port_device::write_data7)); + scsibus.set_output_latch(scsiout); INPUT_BUFFER(config, "scsi_ctrl_in"); INPUT_BUFFER(config, "scsi_data_in"); diff --git a/src/mame/drivers/bbc.cpp b/src/mame/drivers/bbc.cpp index 07ae2bd1327..8e25967f9d1 100644 --- a/src/mame/drivers/bbc.cpp +++ b/src/mame/drivers/bbc.cpp @@ -1163,6 +1163,7 @@ MACHINE_CONFIG_START(bbc_state::abc110) //scsibus.set_slot_device(1, "harddisk", ACB4070, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_0)); //output_latch_device &scsiout(OUTPUT_LATCH(config, "scsi_data_out")); + //scsibus.set_output_latch(scsiout); //scsiout.bit_handler<0>().set("scsi", FUNC(scsi_port_device::write_data0)); //scsiout.bit_handler<1>().set("scsi", FUNC(scsi_port_device::write_data1)); //scsiout.bit_handler<2>().set("scsi", FUNC(scsi_port_device::write_data2)); diff --git a/src/mame/drivers/oric.cpp b/src/mame/drivers/oric.cpp index 63998c8be2e..942e24f46b7 100644 --- a/src/mame/drivers/oric.cpp +++ b/src/mame/drivers/oric.cpp @@ -809,14 +809,7 @@ void oric_state::oric(machine_config &config, bool add_ext) m_centronics->ack_handler().set(m_via, FUNC(via6522_device::write_ca1)); OUTPUT_LATCH(config, m_cent_data_out); - m_cent_data_out->bit_handler<0>().set(m_centronics, FUNC(centronics_device::write_data0)); - m_cent_data_out->bit_handler<1>().set(m_centronics, FUNC(centronics_device::write_data1)); - m_cent_data_out->bit_handler<2>().set(m_centronics, FUNC(centronics_device::write_data2)); - m_cent_data_out->bit_handler<3>().set(m_centronics, FUNC(centronics_device::write_data3)); - m_cent_data_out->bit_handler<4>().set(m_centronics, FUNC(centronics_device::write_data4)); - m_cent_data_out->bit_handler<5>().set(m_centronics, FUNC(centronics_device::write_data5)); - m_cent_data_out->bit_handler<6>().set(m_centronics, FUNC(centronics_device::write_data6)); - m_cent_data_out->bit_handler<7>().set(m_centronics, FUNC(centronics_device::write_data7)); + m_centronics->set_output_latch(*m_cent_data_out); /* cassette */ CASSETTE(config, m_cassette, 0); diff --git a/src/mame/drivers/rmnimbus.cpp b/src/mame/drivers/rmnimbus.cpp index 131c14bbb31..b28c37109a2 100644 --- a/src/mame/drivers/rmnimbus.cpp +++ b/src/mame/drivers/rmnimbus.cpp @@ -154,14 +154,7 @@ void rmnimbus_state::nimbus(machine_config &config) m_scsibus->set_slot_device(4, "harddisk", S1410, DEVICE_INPUT_DEFAULTS_NAME(SCSI_ID_3)); OUTPUT_LATCH(config, m_scsi_data_out); - m_scsi_data_out->bit_handler<0>().set(m_scsibus, FUNC(scsi_port_device::write_data0)); - m_scsi_data_out->bit_handler<1>().set(m_scsibus, FUNC(scsi_port_device::write_data1)); - m_scsi_data_out->bit_handler<2>().set(m_scsibus, FUNC(scsi_port_device::write_data2)); - m_scsi_data_out->bit_handler<3>().set(m_scsibus, FUNC(scsi_port_device::write_data3)); - m_scsi_data_out->bit_handler<4>().set(m_scsibus, FUNC(scsi_port_device::write_data4)); - m_scsi_data_out->bit_handler<5>().set(m_scsibus, FUNC(scsi_port_device::write_data5)); - m_scsi_data_out->bit_handler<6>().set(m_scsibus, FUNC(scsi_port_device::write_data6)); - m_scsi_data_out->bit_handler<7>().set(m_scsibus, FUNC(scsi_port_device::write_data7)); + m_scsibus->set_output_latch(*m_scsi_data_out); INPUT_BUFFER(config, m_scsi_data_in); @@ -202,14 +195,7 @@ void rmnimbus_state::nimbus(machine_config &config) m_centronics->ack_handler().set(m_via, FUNC(via6522_device::write_ca1)).invert(); output_latch_device ¢_data(OUTPUT_LATCH(config, "cent_data_out")); - cent_data.bit_handler<0>().set(m_centronics, FUNC(centronics_device::write_data0)); - cent_data.bit_handler<1>().set(m_centronics, FUNC(centronics_device::write_data1)); - cent_data.bit_handler<2>().set(m_centronics, FUNC(centronics_device::write_data2)); - cent_data.bit_handler<3>().set(m_centronics, FUNC(centronics_device::write_data3)); - cent_data.bit_handler<4>().set(m_centronics, FUNC(centronics_device::write_data4)); - cent_data.bit_handler<5>().set(m_centronics, FUNC(centronics_device::write_data5)); - cent_data.bit_handler<6>().set(m_centronics, FUNC(centronics_device::write_data6)); - cent_data.bit_handler<7>().set(m_centronics, FUNC(centronics_device::write_data7)); + m_centronics->set_output_latch(cent_data); /* sound hardware */ SPEAKER(config, MONO_TAG).front_center(); -- cgit v1.2.3