output_latch: removed MCFG macros (nw)

This commit is contained in:
Ivan Vangelista 2019-01-29 18:03:29 +01:00
parent 08bb5cacb0
commit ca1b0f3d41
78 changed files with 548 additions and 619 deletions

View File

@ -71,14 +71,16 @@ ioport_constructor a2bus_pic_device::device_input_ports() const
// device_add_mconfig - add device configuration // device_add_mconfig - add device configuration
//------------------------------------------------- //-------------------------------------------------
MACHINE_CONFIG_START(a2bus_pic_device::device_add_mconfig) void a2bus_pic_device::device_add_mconfig(machine_config &config)
{
CENTRONICS(config, m_ctx, centronics_devices, "printer"); CENTRONICS(config, m_ctx, centronics_devices, "printer");
m_ctx->set_data_input_buffer(m_ctx_data_in); m_ctx->set_data_input_buffer(m_ctx_data_in);
m_ctx->ack_handler().set(FUNC(a2bus_pic_device::ack_w)); m_ctx->ack_handler().set(FUNC(a2bus_pic_device::ack_w));
INPUT_BUFFER(config, m_ctx_data_in); INPUT_BUFFER(config, m_ctx_data_in);
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("ctx_data_out", PIC_CENTRONICS_TAG) OUTPUT_LATCH(config, m_ctx_data_out);
MACHINE_CONFIG_END m_ctx->set_output_latch(*m_ctx_data_out);
}
//------------------------------------------------- //-------------------------------------------------
// rom_region - device-specific ROM region // rom_region - device-specific ROM region

View File

@ -51,18 +51,20 @@ INPUT_PORTS_END
// device_add_mconfig - add device configuration // device_add_mconfig - add device configuration
//------------------------------------------------- //-------------------------------------------------
MACHINE_CONFIG_START(a2bus_agat7_ports_device::device_add_mconfig) void a2bus_agat7_ports_device::device_add_mconfig(machine_config &config)
{
I8255(config, m_d9); I8255(config, m_d9);
m_d9->out_pa_callback().set("cent_data_out", FUNC(output_latch_device::bus_w)); m_d9->out_pa_callback().set("cent_data_out", FUNC(output_latch_device::bus_w));
m_d9->out_pb_callback().set(FUNC(a2bus_agat7_ports_device::write_portb)); m_d9->out_pb_callback().set(FUNC(a2bus_agat7_ports_device::write_portb));
m_d9->in_pc_callback().set(FUNC(a2bus_agat7_ports_device::read_portc)); m_d9->in_pc_callback().set(FUNC(a2bus_agat7_ports_device::read_portc));
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, a2bus_agat7_ports_device, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(a2bus_agat7_ports_device::write_centronics_busy));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
I8251(config, m_d10, 0); I8251(config, m_d10, 0);
MACHINE_CONFIG_END }
//------------------------------------------------- //-------------------------------------------------
// input_ports - device-specific input ports // input_ports - device-specific input ports

View File

@ -26,7 +26,8 @@ DEFINE_DEVICE_TYPE(ACORN_VIB, acorn_vib_device, "acorn_vib", "Acorn Versatile In
// device_add_mconfig - add device configuration // device_add_mconfig - add device configuration
//------------------------------------------------- //-------------------------------------------------
MACHINE_CONFIG_START(acorn_vib_device::device_add_mconfig) void acorn_vib_device::device_add_mconfig(machine_config &config)
{
INPUT_MERGER_ANY_HIGH(config, m_irqs).output_handler().set(FUNC(acorn_vib_device::irq_w)); INPUT_MERGER_ANY_HIGH(config, m_irqs).output_handler().set(FUNC(acorn_vib_device::irq_w));
VIA6522(config, m_via6522, XTAL(1'000'000)); VIA6522(config, m_via6522, XTAL(1'000'000));
@ -37,7 +38,8 @@ MACHINE_CONFIG_START(acorn_vib_device::device_add_mconfig)
CENTRONICS(config, m_centronics, centronics_devices, "printer"); CENTRONICS(config, m_centronics, centronics_devices, "printer");
m_centronics->ack_handler().set(m_via6522, FUNC(via6522_device::write_ca1)); m_centronics->ack_handler().set(m_via6522, FUNC(via6522_device::write_ca1));
m_centronics->busy_handler().set(m_via6522, FUNC(via6522_device::write_pa7)); m_centronics->busy_handler().set(m_via6522, FUNC(via6522_device::write_pa7));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
I8255(config, m_ppi8255, 0); I8255(config, m_ppi8255, 0);
@ -53,7 +55,7 @@ MACHINE_CONFIG_START(acorn_vib_device::device_add_mconfig)
CLOCK(config, m_acia_clock, 1.8432_MHz_XTAL); CLOCK(config, m_acia_clock, 1.8432_MHz_XTAL);
m_acia_clock->signal_handler().set(FUNC(acorn_vib_device::write_acia_clock)); m_acia_clock->signal_handler().set(FUNC(acorn_vib_device::write_acia_clock));
MACHINE_CONFIG_END }
//************************************************************************** //**************************************************************************
// LIVE DEVICE // LIVE DEVICE

View File

@ -64,7 +64,8 @@ void adam_spi_device::adam_spi_mem(address_map &map)
// device_add_mconfig - add device configuration // device_add_mconfig - add device configuration
//------------------------------------------------- //-------------------------------------------------
MACHINE_CONFIG_START(adam_spi_device::device_add_mconfig) void adam_spi_device::device_add_mconfig(machine_config &config)
{
M6801(config, m_maincpu, XTAL(4'000'000)); M6801(config, m_maincpu, XTAL(4'000'000));
m_maincpu->set_addrmap(AS_PROGRAM, &adam_spi_device::adam_spi_mem); m_maincpu->set_addrmap(AS_PROGRAM, &adam_spi_device::adam_spi_mem);
m_maincpu->in_p2_cb().set(FUNC(adam_spi_device::p2_r)); m_maincpu->in_p2_cb().set(FUNC(adam_spi_device::p2_r));
@ -78,8 +79,9 @@ MACHINE_CONFIG_START(adam_spi_device::device_add_mconfig)
centronics_device &centronics(CENTRONICS(config, "centronics", centronics_devices, "printer")); centronics_device &centronics(CENTRONICS(config, "centronics", centronics_devices, "printer"));
centronics.set_data_input_buffer("cent_data_in"); centronics.set_data_input_buffer("cent_data_in");
INPUT_BUFFER(config, "cent_data_in"); INPUT_BUFFER(config, "cent_data_in");
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
MACHINE_CONFIG_END centronics.set_output_latch(cent_data_out);
}

View File

@ -30,10 +30,11 @@ DEFINE_DEVICE_TYPE(C64_GEOCABLE, c64_geocable_device, "c64_geocable", "C64 geoCa
// device_add_mconfig - add device configuration // device_add_mconfig - add device configuration
//------------------------------------------------- //-------------------------------------------------
MACHINE_CONFIG_START(c64_geocable_device::device_add_mconfig) void c64_geocable_device::device_add_mconfig(machine_config &config)
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") {
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, c64_geocable_device, output_b)) CENTRONICS(config, m_centronics, centronics_devices, "printer");
MACHINE_CONFIG_END m_centronics->busy_handler().set(FUNC(c64_geocable_device::output_b));
}

View File

@ -14,68 +14,6 @@
#include "machine/output_latch.h" #include "machine/output_latch.h"
#define MCFG_CENTRONICS_STROBE_HANDLER(_devcb) \
downcast<centronics_device &>(*device).set_strobe_handler(DEVCB_##_devcb);
#define MCFG_CENTRONICS_DATA0_HANDLER(_devcb) \
downcast<centronics_device &>(*device).set_data0_handler(DEVCB_##_devcb);
#define MCFG_CENTRONICS_DATA1_HANDLER(_devcb) \
downcast<centronics_device &>(*device).set_data1_handler(DEVCB_##_devcb);
#define MCFG_CENTRONICS_DATA2_HANDLER(_devcb) \
downcast<centronics_device &>(*device).set_data2_handler(DEVCB_##_devcb);
#define MCFG_CENTRONICS_DATA3_HANDLER(_devcb) \
downcast<centronics_device &>(*device).set_data3_handler(DEVCB_##_devcb);
#define MCFG_CENTRONICS_DATA4_HANDLER(_devcb) \
downcast<centronics_device &>(*device).set_data4_handler(DEVCB_##_devcb);
#define MCFG_CENTRONICS_DATA5_HANDLER(_devcb) \
downcast<centronics_device &>(*device).set_data5_handler(DEVCB_##_devcb);
#define MCFG_CENTRONICS_DATA6_HANDLER(_devcb) \
downcast<centronics_device &>(*device).set_data6_handler(DEVCB_##_devcb);
#define MCFG_CENTRONICS_DATA7_HANDLER(_devcb) \
downcast<centronics_device &>(*device).set_data7_handler(DEVCB_##_devcb);
#define MCFG_CENTRONICS_ACK_HANDLER(_devcb) \
downcast<centronics_device &>(*device).set_ack_handler(DEVCB_##_devcb);
#define MCFG_CENTRONICS_BUSY_HANDLER(_devcb) \
downcast<centronics_device &>(*device).set_busy_handler(DEVCB_##_devcb);
#define MCFG_CENTRONICS_PERROR_HANDLER(_devcb) \
downcast<centronics_device &>(*device).set_perror_handler(DEVCB_##_devcb);
#define MCFG_CENTRONICS_SELECT_HANDLER(_devcb) \
downcast<centronics_device &>(*device).set_select_handler(DEVCB_##_devcb);
#define MCFG_CENTRONICS_AUTOFD_HANDLER(_devcb) \
downcast<centronics_device &>(*device).set_autofd_handler(DEVCB_##_devcb);
#define MCFG_CENTRONICS_FAULT_HANDLER(_devcb) \
downcast<centronics_device &>(*device).set_fault_handler(DEVCB_##_devcb);
#define MCFG_CENTRONICS_INIT_HANDLER(_devcb) \
downcast<centronics_device &>(*device).set_init_handler(DEVCB_##_devcb);
#define MCFG_CENTRONICS_SELECT_IN_HANDLER(_devcb) \
downcast<centronics_device &>(*device).set_select_in_handler(DEVCB_##_devcb);
#define MCFG_CENTRONICS_OUTPUT_LATCH_ADD(_tag, _centronics_tag) \
MCFG_DEVICE_ADD(_tag, OUTPUT_LATCH, 0) \
MCFG_OUTPUT_LATCH_BIT0_HANDLER(WRITELINE(_centronics_tag, centronics_device, write_data0)) \
MCFG_OUTPUT_LATCH_BIT1_HANDLER(WRITELINE(_centronics_tag, centronics_device, write_data1)) \
MCFG_OUTPUT_LATCH_BIT2_HANDLER(WRITELINE(_centronics_tag, centronics_device, write_data2)) \
MCFG_OUTPUT_LATCH_BIT3_HANDLER(WRITELINE(_centronics_tag, centronics_device, write_data3)) \
MCFG_OUTPUT_LATCH_BIT4_HANDLER(WRITELINE(_centronics_tag, centronics_device, write_data4)) \
MCFG_OUTPUT_LATCH_BIT5_HANDLER(WRITELINE(_centronics_tag, centronics_device, write_data5)) \
MCFG_OUTPUT_LATCH_BIT6_HANDLER(WRITELINE(_centronics_tag, centronics_device, write_data6)) \
MCFG_OUTPUT_LATCH_BIT7_HANDLER(WRITELINE(_centronics_tag, centronics_device, write_data7))
DECLARE_DEVICE_TYPE(CENTRONICS, centronics_device) DECLARE_DEVICE_TYPE(CENTRONICS, centronics_device)
class device_centronics_peripheral_interface; class device_centronics_peripheral_interface;
@ -97,24 +35,6 @@ public:
} }
centronics_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); centronics_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <class Object> devcb_base &set_strobe_handler(Object &&cb) { return m_strobe_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_data0_handler(Object &&cb) { return m_data0_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_data1_handler(Object &&cb) { return m_data1_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_data2_handler(Object &&cb) { return m_data2_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_data3_handler(Object &&cb) { return m_data3_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_data4_handler(Object &&cb) { return m_data4_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_data5_handler(Object &&cb) { return m_data5_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_data6_handler(Object &&cb) { return m_data6_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_data7_handler(Object &&cb) { return m_data7_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_ack_handler(Object &&cb) { return m_ack_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_busy_handler(Object &&cb) { return m_busy_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_perror_handler(Object &&cb) { return m_perror_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_select_handler(Object &&cb) { return m_select_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_autofd_handler(Object &&cb) { return m_autofd_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_fault_handler(Object &&cb) { return m_fault_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_init_handler(Object &&cb) { return m_init_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_select_in_handler(Object &&cb) { return m_select_in_handler.set_callback(std::forward<Object>(cb)); }
auto strobe_handler() { return m_strobe_handler.bind(); } auto strobe_handler() { return m_strobe_handler.bind(); }
auto ack_handler() { return m_ack_handler.bind(); } auto ack_handler() { return m_ack_handler.bind(); }

View File

@ -27,14 +27,17 @@ DEFINE_DEVICE_TYPE(CGENIE_PRINTER, cgenie_printer_device, "cgenie_printer", "Pri
// device_add_mconfig - add device configuration // device_add_mconfig - add device configuration
//------------------------------------------------- //-------------------------------------------------
MACHINE_CONFIG_START(cgenie_printer_device::device_add_mconfig) void cgenie_printer_device::device_add_mconfig(machine_config &config)
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") {
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, cgenie_printer_device, busy_w)) CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, cgenie_printer_device, perror_w)) m_centronics->busy_handler().set(FUNC(cgenie_printer_device::busy_w));
MCFG_CENTRONICS_SELECT_HANDLER(WRITELINE(*this, cgenie_printer_device, select_w)) m_centronics->perror_handler().set(FUNC(cgenie_printer_device::perror_w));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(*this, cgenie_printer_device, fault_w)) m_centronics->select_handler().set(FUNC(cgenie_printer_device::select_w));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("latch", "centronics") m_centronics->fault_handler().set(FUNC(cgenie_printer_device::fault_w));
MACHINE_CONFIG_END
OUTPUT_LATCH(config, m_latch);
m_centronics->set_output_latch(*m_latch);
}
//************************************************************************** //**************************************************************************

View File

@ -55,16 +55,19 @@ const tiny_rom_entry *comx_prn_device::device_rom_region() const
// device_add_mconfig - add device configuration // device_add_mconfig - add device configuration
//------------------------------------------------- //-------------------------------------------------
MACHINE_CONFIG_START(comx_prn_device::device_add_mconfig) void comx_prn_device::device_add_mconfig(machine_config &config)
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") {
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit0)) CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit1)) m_centronics->ack_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit0));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit2)) m_centronics->busy_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit1));
MCFG_CENTRONICS_SELECT_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit3)) m_centronics->perror_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit2));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") m_centronics->select_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit3));
MCFG_DEVICE_ADD("cent_status_in", INPUT_BUFFER, 0) OUTPUT_LATCH(config, m_cent_data_out);
MACHINE_CONFIG_END m_centronics->set_output_latch(*m_cent_data_out);
INPUT_BUFFER(config, m_cent_status_in);
}

View File

@ -73,7 +73,8 @@ void dmv_k210_device::device_timer(emu_timer &timer, device_timer_id tid, int pa
// device_add_mconfig - add device configuration // device_add_mconfig - add device configuration
//------------------------------------------------- //-------------------------------------------------
MACHINE_CONFIG_START(dmv_k210_device::device_add_mconfig) void dmv_k210_device::device_add_mconfig(machine_config &config)
{
I8255(config, m_ppi, 0); I8255(config, m_ppi, 0);
m_ppi->in_pa_callback().set(FUNC(dmv_k210_device::porta_r)); m_ppi->in_pa_callback().set(FUNC(dmv_k210_device::porta_r));
m_ppi->in_pb_callback().set(FUNC(dmv_k210_device::portb_r)); m_ppi->in_pb_callback().set(FUNC(dmv_k210_device::portb_r));
@ -93,8 +94,10 @@ MACHINE_CONFIG_START(dmv_k210_device::device_add_mconfig)
m_centronics->init_handler().set(FUNC(dmv_k210_device::cent_init_w)); m_centronics->init_handler().set(FUNC(dmv_k210_device::cent_init_w));
INPUT_BUFFER(config, m_cent_data_in); INPUT_BUFFER(config, m_cent_data_in);
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
MACHINE_CONFIG_END OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
}
void dmv_k210_device::io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data) void dmv_k210_device::io_read(address_space &space, int ifsel, offs_t offset, uint8_t &data)
{ {

View File

@ -33,28 +33,31 @@ DEFINE_DEVICE_TYPE(POFO_HPC101, pofo_hpc101_device, "pofo_hpc101", "Atari Portfo
// device_add_mconfig - add device configuration // device_add_mconfig - add device configuration
//------------------------------------------------- //-------------------------------------------------
MACHINE_CONFIG_START(pofo_hpc101_device::device_add_mconfig) void pofo_hpc101_device::device_add_mconfig(machine_config &config)
{
I8255A(config, m_ppi); I8255A(config, m_ppi);
m_ppi->out_pa_callback().set("cent_data_out", FUNC(output_latch_device::bus_w)); m_ppi->out_pa_callback().set("cent_data_out", FUNC(output_latch_device::bus_w));
m_ppi->out_pb_callback().set("cent_ctrl_out", FUNC(output_latch_device::bus_w)); m_ppi->out_pb_callback().set("cent_ctrl_out", FUNC(output_latch_device::bus_w));
m_ppi->in_pc_callback().set("cent_status_in", FUNC(input_buffer_device::bus_r)); m_ppi->in_pc_callback().set("cent_status_in", FUNC(input_buffer_device::bus_r));
MCFG_DEVICE_ADD(CENTRONICS_TAG, CENTRONICS, centronics_devices, "printer") centronics_device &centronics(CENTRONICS(config, CENTRONICS_TAG, centronics_devices, "printer"));
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit5)) centronics.ack_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit5));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit4)) centronics.busy_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit4));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit3)) centronics.fault_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit3));
MCFG_CENTRONICS_SELECT_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit1)) centronics.select_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit1));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit0)) centronics.perror_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit0));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
MCFG_DEVICE_ADD("cent_status_in", INPUT_BUFFER, 0) centronics.set_output_latch(cent_data_out);
MCFG_DEVICE_ADD("cent_ctrl_out", OUTPUT_LATCH, 0) INPUT_BUFFER(config, "cent_status_in");
MCFG_OUTPUT_LATCH_BIT0_HANDLER(WRITELINE(CENTRONICS_TAG, centronics_device, write_strobe))
MCFG_OUTPUT_LATCH_BIT1_HANDLER(WRITELINE(CENTRONICS_TAG, centronics_device, write_autofd)) output_latch_device &cent_ctrl_out(OUTPUT_LATCH(config, "cent_ctrl_out"));
MCFG_OUTPUT_LATCH_BIT2_HANDLER(WRITELINE(CENTRONICS_TAG, centronics_device, write_init)) cent_ctrl_out.bit_handler<0>().set(CENTRONICS_TAG, FUNC(centronics_device::write_strobe));
MCFG_OUTPUT_LATCH_BIT3_HANDLER(WRITELINE(CENTRONICS_TAG, centronics_device, write_select_in)) cent_ctrl_out.bit_handler<1>().set(CENTRONICS_TAG, FUNC(centronics_device::write_autofd));
MACHINE_CONFIG_END cent_ctrl_out.bit_handler<2>().set(CENTRONICS_TAG, FUNC(centronics_device::write_init));
cent_ctrl_out.bit_handler<3>().set(CENTRONICS_TAG, FUNC(centronics_device::write_select_in));
}
//************************************************************************** //**************************************************************************

View File

@ -17,77 +17,6 @@
#define SCSI_PORT_DEVICE6 "6" #define SCSI_PORT_DEVICE6 "6"
#define SCSI_PORT_DEVICE7 "7" #define SCSI_PORT_DEVICE7 "7"
#define MCFG_SCSI_BSY_HANDLER(_devcb) \
downcast<scsi_port_device &>(*device).set_bsy_handler(DEVCB_##_devcb);
#define MCFG_SCSI_SEL_HANDLER(_devcb) \
downcast<scsi_port_device &>(*device).set_sel_handler(DEVCB_##_devcb);
#define MCFG_SCSI_CD_HANDLER(_devcb) \
downcast<scsi_port_device &>(*device).set_cd_handler(DEVCB_##_devcb);
#define MCFG_SCSI_IO_HANDLER(_devcb) \
downcast<scsi_port_device &>(*device).set_io_handler(DEVCB_##_devcb);
#define MCFG_SCSI_MSG_HANDLER(_devcb) \
downcast<scsi_port_device &>(*device).set_msg_handler(DEVCB_##_devcb);
#define MCFG_SCSI_REQ_HANDLER(_devcb) \
downcast<scsi_port_device &>(*device).set_req_handler(DEVCB_##_devcb);
#define MCFG_SCSI_ACK_HANDLER(_devcb) \
downcast<scsi_port_device &>(*device).set_ack_handler(DEVCB_##_devcb);
#define MCFG_SCSI_ATN_HANDLER(_devcb) \
downcast<scsi_port_device &>(*device).set_atn_handler(DEVCB_##_devcb);
#define MCFG_SCSI_RST_HANDLER(_devcb) \
downcast<scsi_port_device &>(*device).set_rst_handler(DEVCB_##_devcb);
#define MCFG_SCSI_DATA0_HANDLER(_devcb) \
downcast<scsi_port_device &>(*device).set_data0_handler(DEVCB_##_devcb);
#define MCFG_SCSI_DATA1_HANDLER(_devcb) \
downcast<scsi_port_device &>(*device).set_data1_handler(DEVCB_##_devcb);
#define MCFG_SCSI_DATA2_HANDLER(_devcb) \
downcast<scsi_port_device &>(*device).set_data2_handler(DEVCB_##_devcb);
#define MCFG_SCSI_DATA3_HANDLER(_devcb) \
downcast<scsi_port_device &>(*device).set_data3_handler(DEVCB_##_devcb);
#define MCFG_SCSI_DATA4_HANDLER(_devcb) \
downcast<scsi_port_device &>(*device).set_data4_handler(DEVCB_##_devcb);
#define MCFG_SCSI_DATA5_HANDLER(_devcb) \
downcast<scsi_port_device &>(*device).set_data5_handler(DEVCB_##_devcb);
#define MCFG_SCSI_DATA6_HANDLER(_devcb) \
downcast<scsi_port_device &>(*device).set_data6_handler(DEVCB_##_devcb);
#define MCFG_SCSI_DATA7_HANDLER(_devcb) \
downcast<scsi_port_device &>(*device).set_data7_handler(DEVCB_##_devcb);
#define MCFG_SCSI_OUTPUT_LATCH_ADD(_tag, scsi_port_tag) \
MCFG_DEVICE_ADD(_tag, OUTPUT_LATCH, 0) \
MCFG_OUTPUT_LATCH_BIT0_HANDLER(WRITELINE(scsi_port_tag, scsi_port_device, write_data0)) \
MCFG_OUTPUT_LATCH_BIT1_HANDLER(WRITELINE(scsi_port_tag, scsi_port_device, write_data1)) \
MCFG_OUTPUT_LATCH_BIT2_HANDLER(WRITELINE(scsi_port_tag, scsi_port_device, write_data2)) \
MCFG_OUTPUT_LATCH_BIT3_HANDLER(WRITELINE(scsi_port_tag, scsi_port_device, write_data3)) \
MCFG_OUTPUT_LATCH_BIT4_HANDLER(WRITELINE(scsi_port_tag, scsi_port_device, write_data4)) \
MCFG_OUTPUT_LATCH_BIT5_HANDLER(WRITELINE(scsi_port_tag, scsi_port_device, write_data5)) \
MCFG_OUTPUT_LATCH_BIT6_HANDLER(WRITELINE(scsi_port_tag, scsi_port_device, write_data6)) \
MCFG_OUTPUT_LATCH_BIT7_HANDLER(WRITELINE(scsi_port_tag, scsi_port_device, write_data7))
#define MCFG_SCSI_DATA_INPUT_BUFFER(_tag) \
MCFG_SCSI_DATA0_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit0)) \
MCFG_SCSI_DATA1_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit1)) \
MCFG_SCSI_DATA2_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit2)) \
MCFG_SCSI_DATA3_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit3)) \
MCFG_SCSI_DATA4_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit4)) \
MCFG_SCSI_DATA5_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit5)) \
MCFG_SCSI_DATA6_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit6)) \
MCFG_SCSI_DATA7_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit7))
class scsi_port_slot_device; class scsi_port_slot_device;
class scsi_port_interface; class scsi_port_interface;
@ -100,23 +29,6 @@ public:
// construction/destruction // construction/destruction
scsi_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); scsi_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
template <class Object> devcb_base &set_bsy_handler(Object &&cb) { return m_bsy_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_sel_handler(Object &&cb) { return m_sel_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_cd_handler(Object &&cb) { return m_cd_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_io_handler(Object &&cb) { return m_io_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_msg_handler(Object &&cb) { return m_msg_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_req_handler(Object &&cb) { return m_req_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_ack_handler(Object &&cb) { return m_ack_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_atn_handler(Object &&cb) { return m_atn_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_rst_handler(Object &&cb) { return m_rst_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_data0_handler(Object &&cb) { return m_data0_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_data1_handler(Object &&cb) { return m_data1_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_data2_handler(Object &&cb) { return m_data2_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_data3_handler(Object &&cb) { return m_data3_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_data4_handler(Object &&cb) { return m_data4_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_data5_handler(Object &&cb) { return m_data5_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_data6_handler(Object &&cb) { return m_data6_handler.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_data7_handler(Object &&cb) { return m_data7_handler.set_callback(std::forward<Object>(cb)); }
auto bsy_handler() { return m_bsy_handler.bind(); } auto bsy_handler() { return m_bsy_handler.bind(); }
auto sel_handler() { return m_sel_handler.bind(); } auto sel_handler() { return m_sel_handler.bind(); }
auto cd_handler() { return m_cd_handler.bind(); } auto cd_handler() { return m_cd_handler.bind(); }

View File

@ -20,12 +20,14 @@ DEFINE_DEVICE_TYPE(SV802, sv802_device, "sv802", "SV-802 Centronics Printer Inte
// device_add_mconfig - add device configuration // device_add_mconfig - add device configuration
//------------------------------------------------- //-------------------------------------------------
MACHINE_CONFIG_START(sv802_device::device_add_mconfig) void sv802_device::device_add_mconfig(machine_config &config)
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") {
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, sv802_device, busy_w)) CENTRONICS(config, m_centronics, centronics_devices, "printer");
m_centronics->busy_handler().set(FUNC(sv802_device::busy_w));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") OUTPUT_LATCH(config, m_cent_data_out);
MACHINE_CONFIG_END m_centronics->set_output_latch(*m_cent_data_out);
}
//************************************************************************** //**************************************************************************

View File

@ -23,11 +23,14 @@ DEFINE_DEVICE_TYPE(VTECH_PRINTER_INTERFACE, vtech_printer_interface_device, "vte
// device_add_mconfig - add device configuration // device_add_mconfig - add device configuration
//------------------------------------------------- //-------------------------------------------------
MACHINE_CONFIG_START(vtech_printer_interface_device::device_add_mconfig) void vtech_printer_interface_device::device_add_mconfig(machine_config &config)
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") {
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, vtech_printer_interface_device, busy_w)) CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("latch", "centronics") m_centronics->busy_handler().set(FUNC(vtech_printer_interface_device::busy_w));
MACHINE_CONFIG_END
OUTPUT_LATCH(config, m_latch);
m_centronics->set_output_latch(*m_latch);
}
//************************************************************************** //**************************************************************************

View File

@ -6,36 +6,11 @@
#pragma once #pragma once
#define MCFG_OUTPUT_LATCH_BIT0_HANDLER(_devcb) \
downcast<output_latch_device &>(*device).set_bit_handler<0>(DEVCB_##_devcb);
#define MCFG_OUTPUT_LATCH_BIT1_HANDLER(_devcb) \
downcast<output_latch_device &>(*device).set_bit_handler<1>(DEVCB_##_devcb);
#define MCFG_OUTPUT_LATCH_BIT2_HANDLER(_devcb) \
downcast<output_latch_device &>(*device).set_bit_handler<2>(DEVCB_##_devcb);
#define MCFG_OUTPUT_LATCH_BIT3_HANDLER(_devcb) \
downcast<output_latch_device &>(*device).set_bit_handler<3>(DEVCB_##_devcb);
#define MCFG_OUTPUT_LATCH_BIT4_HANDLER(_devcb) \
downcast<output_latch_device &>(*device).set_bit_handler<4>(DEVCB_##_devcb);
#define MCFG_OUTPUT_LATCH_BIT5_HANDLER(_devcb) \
downcast<output_latch_device &>(*device).set_bit_handler<5>(DEVCB_##_devcb);
#define MCFG_OUTPUT_LATCH_BIT6_HANDLER(_devcb) \
downcast<output_latch_device &>(*device).set_bit_handler<6>(DEVCB_##_devcb);
#define MCFG_OUTPUT_LATCH_BIT7_HANDLER(_devcb) \
downcast<output_latch_device &>(*device).set_bit_handler<7>(DEVCB_##_devcb);
class output_latch_device : public device_t class output_latch_device : public device_t
{ {
public: public:
output_latch_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); output_latch_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
template <unsigned Bit, class Object> devcb_base &set_bit_handler(Object &&cb) { return m_bit_handlers[Bit].set_callback(std::forward<Object>(cb)); }
template <unsigned Bit> auto bit_handler() { return m_bit_handlers[Bit].bind(); } template <unsigned Bit> auto bit_handler() { return m_bit_handlers[Bit].bind(); }
void write(uint8_t data); void write(uint8_t data);

View File

@ -46,7 +46,8 @@ void pc_lpt_device::device_reset()
m_cent_ctrl_out->write(m_control); m_cent_ctrl_out->write(m_control);
} }
MACHINE_CONFIG_START(pc_lpt_device::device_add_mconfig) void pc_lpt_device::device_add_mconfig(machine_config &config)
{
centronics_device &centronics(CENTRONICS(config, "centronics", centronics_devices, "printer")); centronics_device &centronics(CENTRONICS(config, "centronics", centronics_devices, "printer"));
centronics.set_data_input_buffer(m_cent_data_in); centronics.set_data_input_buffer(m_cent_data_in);
centronics.fault_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit3)); centronics.fault_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit3));
@ -64,7 +65,8 @@ MACHINE_CONFIG_START(pc_lpt_device::device_add_mconfig)
INPUT_BUFFER(config, m_cent_ctrl_in); INPUT_BUFFER(config, m_cent_ctrl_in);
INPUT_BUFFER(config, m_cent_status_in); INPUT_BUFFER(config, m_cent_status_in);
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") OUTPUT_LATCH(config, m_cent_data_out);
centronics.set_output_latch(*m_cent_data_out);
OUTPUT_LATCH(config, m_cent_ctrl_out); OUTPUT_LATCH(config, m_cent_ctrl_out);
m_cent_ctrl_out->bit_handler<0>().set("centronics", FUNC(centronics_device::write_strobe)); m_cent_ctrl_out->bit_handler<0>().set("centronics", FUNC(centronics_device::write_strobe));
@ -72,7 +74,7 @@ MACHINE_CONFIG_START(pc_lpt_device::device_add_mconfig)
m_cent_ctrl_out->bit_handler<2>().set("centronics", FUNC(centronics_device::write_init)); m_cent_ctrl_out->bit_handler<2>().set("centronics", FUNC(centronics_device::write_init));
m_cent_ctrl_out->bit_handler<3>().set("centronics", FUNC(centronics_device::write_select_in)); m_cent_ctrl_out->bit_handler<3>().set("centronics", FUNC(centronics_device::write_select_in));
m_cent_ctrl_out->bit_handler<4>().set(FUNC(pc_lpt_device::write_irq_enabled)); m_cent_ctrl_out->bit_handler<4>().set(FUNC(pc_lpt_device::write_irq_enabled));
MACHINE_CONFIG_END }
READ8_MEMBER( pc_lpt_device::data_r ) READ8_MEMBER( pc_lpt_device::data_r )

View File

@ -315,11 +315,11 @@ WRITE8_MEMBER(asteroid_state::asteroid_noise_reset_w)
} }
MACHINE_CONFIG_START(asteroid_state::asteroid_sound) void asteroid_state::asteroid_sound(machine_config &config)
{
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("discrete", DISCRETE, asteroid_discrete) DISCRETE(config, m_discrete, asteroid_discrete).add_route(ALL_OUTPUTS, "mono", 1.4);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.4)
ls259_device &audiolatch(LS259(config, "audiolatch")); // M10 ls259_device &audiolatch(LS259(config, "audiolatch")); // M10
audiolatch.q_out_cb<0>().set("discrete", FUNC(discrete_device::write_line<ASTEROID_SAUCER_SND_EN>)); audiolatch.q_out_cb<0>().set("discrete", FUNC(discrete_device::write_line<ASTEROID_SAUCER_SND_EN>));
@ -328,15 +328,15 @@ MACHINE_CONFIG_START(asteroid_state::asteroid_sound)
audiolatch.q_out_cb<3>().set("discrete", FUNC(discrete_device::write_line<ASTEROID_THRUST_EN>)); audiolatch.q_out_cb<3>().set("discrete", FUNC(discrete_device::write_line<ASTEROID_THRUST_EN>));
audiolatch.q_out_cb<4>().set("discrete", FUNC(discrete_device::write_line<ASTEROID_SHIP_FIRE_EN>)); audiolatch.q_out_cb<4>().set("discrete", FUNC(discrete_device::write_line<ASTEROID_SHIP_FIRE_EN>));
audiolatch.q_out_cb<5>().set("discrete", FUNC(discrete_device::write_line<ASTEROID_LIFE_EN>)); audiolatch.q_out_cb<5>().set("discrete", FUNC(discrete_device::write_line<ASTEROID_LIFE_EN>));
MACHINE_CONFIG_END }
MACHINE_CONFIG_START(asteroid_state::astdelux_sound) void asteroid_state::astdelux_sound(machine_config &config)
{
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("discrete", DISCRETE, astdelux_discrete) DISCRETE(config, m_discrete, astdelux_discrete).add_route(ALL_OUTPUTS, "mono", 1.0);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
ls259_device &audiolatch(LS259(config, "audiolatch")); // M10 ls259_device &audiolatch(LS259(config, "audiolatch")); // M10
audiolatch.q_out_cb<3>().set("discrete", FUNC(discrete_device::write_line<ASTEROID_THRUST_EN>)); audiolatch.q_out_cb<3>().set("discrete", FUNC(discrete_device::write_line<ASTEROID_THRUST_EN>));
MACHINE_CONFIG_END }

View File

@ -1611,12 +1611,14 @@ MACHINE_CONFIG_START(amiga_state::amiga_base)
rs232.cts_handler().set(FUNC(amiga_state::rs232_cts_w)); rs232.cts_handler().set(FUNC(amiga_state::rs232_cts_w));
// centronics // centronics
MCFG_DEVICE_ADD("centronics", CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, amiga_state, centronics_ack_w)) m_centronics->ack_handler().set(FUNC(amiga_state::centronics_ack_w));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, amiga_state, centronics_busy_w)) m_centronics->busy_handler().set(FUNC(amiga_state::centronics_busy_w));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, amiga_state, centronics_perror_w)) m_centronics->perror_handler().set(FUNC(amiga_state::centronics_perror_w));
MCFG_CENTRONICS_SELECT_HANDLER(WRITELINE(*this, amiga_state, centronics_select_w)) m_centronics->select_handler().set(FUNC(amiga_state::centronics_select_w));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
// software // software
MCFG_SOFTWARE_LIST_ADD("wb_list", "amiga_workbench") MCFG_SOFTWARE_LIST_ADD("wb_list", "amiga_workbench")

View File

@ -950,8 +950,8 @@ MACHINE_CONFIG_START(amstrad_state::amstrad_base)
m_ay->add_route(ALL_OUTPUTS, "mono", 0.25); m_ay->add_route(ALL_OUTPUTS, "mono", 0.25);
/* printer */ /* printer */
MCFG_DEVICE_ADD("centronics", CENTRONICS, amstrad_centronics_devices, "printer") CENTRONICS(config, m_centronics, amstrad_centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, amstrad_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(amstrad_state::write_centronics_busy));
/* snapshot */ /* snapshot */
MCFG_SNAPSHOT_ADD("snapshot", amstrad_state, amstrad, "sna", 0) MCFG_SNAPSHOT_ADD("snapshot", amstrad_state, amstrad, "sna", 0)
@ -1071,8 +1071,8 @@ MACHINE_CONFIG_START(amstrad_state::cpcplus)
m_ay->add_route(ALL_OUTPUTS, "mono", 0.25); m_ay->add_route(ALL_OUTPUTS, "mono", 0.25);
/* printer */ /* printer */
MCFG_DEVICE_ADD("centronics", CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, amstrad_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(amstrad_state::write_centronics_busy));
/* snapshot */ /* snapshot */
MCFG_SNAPSHOT_ADD("snapshot", amstrad_state, amstrad, "sna", 0) MCFG_SNAPSHOT_ADD("snapshot", amstrad_state, amstrad, "sna", 0)

View File

@ -904,11 +904,12 @@ MACHINE_CONFIG_START(applix_state::applix)
m_via->writepb_handler().set(FUNC(applix_state::applix_pb_w)); m_via->writepb_handler().set(FUNC(applix_state::applix_pb_w));
m_via->irq_handler().set_inputline("maincpu", M68K_IRQ_2); m_via->irq_handler().set_inputline("maincpu", M68K_IRQ_2);
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE("via6522", via6522_device, write_ca1)) m_centronics->ack_handler().set(m_via, FUNC(via6522_device::write_ca1));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE("via6522", via6522_device, write_pa0)) m_centronics->busy_handler().set(m_via, FUNC(via6522_device::write_pa0));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
CASSETTE(config, m_cass); CASSETTE(config, m_cass);
m_cass->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED); m_cass->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED);

View File

@ -376,10 +376,11 @@ MACHINE_CONFIG_START(f1_state::act_f1)
m_ctc->zc_callback<1>().set(FUNC(f1_state::ctc_z1_w)); m_ctc->zc_callback<1>().set(FUNC(f1_state::ctc_z1_w));
m_ctc->zc_callback<2>().set(FUNC(f1_state::ctc_z2_w)); m_ctc->zc_callback<2>().set(FUNC(f1_state::ctc_z2_w));
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(m_sio, z80sio_device, ctsa_w)) m_centronics->busy_handler().set(m_sio, FUNC(z80sio_device::ctsa_w));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
// floppy // floppy
WD2797(config, m_fdc, 4_MHz_XTAL / 2 /* ? */); WD2797(config, m_fdc, 4_MHz_XTAL / 2 /* ? */);

View File

@ -642,7 +642,8 @@ MACHINE_CONFIG_START(fp_state::fp)
m_centronics->fault_handler().set(FUNC(fp_state::write_centronics_fault)); m_centronics->fault_handler().set(FUNC(fp_state::write_centronics_fault));
m_centronics->perror_handler().set(FUNC(fp_state::write_centronics_perror)); m_centronics->perror_handler().set(FUNC(fp_state::write_centronics_perror));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
/* internal ram */ /* internal ram */
RAM(config, RAM_TAG).set_default_size("256K").set_extra_options("512K,1M"); RAM(config, RAM_TAG).set_default_size("256K").set_extra_options("512K,1M");

View File

@ -808,7 +808,7 @@ void asteroid_state::astdelux(machine_config &config)
audiolatch.q_out_cb<5>().set(FUNC(asteroid_state::coin_counter_left_w)); // LEFT COIN audiolatch.q_out_cb<5>().set(FUNC(asteroid_state::coin_counter_left_w)); // LEFT COIN
audiolatch.q_out_cb<6>().set(FUNC(asteroid_state::coin_counter_center_w)); // CENTER COIN audiolatch.q_out_cb<6>().set(FUNC(asteroid_state::coin_counter_center_w)); // CENTER COIN
audiolatch.q_out_cb<7>().set(FUNC(asteroid_state::coin_counter_right_w)); // RIGHT COIN audiolatch.q_out_cb<7>().set(FUNC(asteroid_state::coin_counter_right_w)); // RIGHT COIN
MACHINE_CONFIG_END }
MACHINE_CONFIG_START(asteroid_state::llander) MACHINE_CONFIG_START(asteroid_state::llander)
@ -824,13 +824,13 @@ MACHINE_CONFIG_START(asteroid_state::llander)
MCFG_SCREEN_VISIBLE_AREA(522, 1566, 270, 1070) MCFG_SCREEN_VISIBLE_AREA(522, 1566, 270, 1070)
MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update) MCFG_SCREEN_UPDATE_DEVICE("vector", vector_device, screen_update)
MCFG_DEVICE_MODIFY("outlatch") // LS174 at N11 output_latch_device &outlatch(*subdevice<output_latch_device>("outlatch")); // LS174 at N11
MCFG_OUTPUT_LATCH_BIT0_HANDLER(OUTPUT("lamp4")) // LAMP5 (COMMAND MISSION) outlatch.bit_handler<0>().set_output("lamp4"); // LAMP5 (COMMAND MISSION)
MCFG_OUTPUT_LATCH_BIT1_HANDLER(OUTPUT("lamp3")) // LAMP4 (PRIME MISSION) outlatch.bit_handler<1>().set_output("lamp3"); // LAMP4 (PRIME MISSION)
MCFG_OUTPUT_LATCH_BIT2_HANDLER(OUTPUT("lamp2")) // LAMP3 (CADET MISSION) outlatch.bit_handler<2>().set_output("lamp2"); // LAMP3 (CADET MISSION)
MCFG_OUTPUT_LATCH_BIT3_HANDLER(OUTPUT("lamp1")) // LAMP2 (TRAINING MISSION) outlatch.bit_handler<3>().set_output("lamp1"); // LAMP2 (TRAINING MISSION)
MCFG_OUTPUT_LATCH_BIT4_HANDLER(OUTPUT("lamp0")) // START/SELECT LEDs outlatch.bit_handler<4>().set_output("lamp0"); // START/SELECT LEDs
MCFG_OUTPUT_LATCH_BIT5_HANDLER(NOOP) outlatch.bit_handler<5>().set_nop();
/* sound hardware */ /* sound hardware */
llander_sound(config); llander_sound(config);

View File

@ -745,11 +745,12 @@ MACHINE_CONFIG_START(atom_state::atom)
FLOPPY_CONNECTOR(config, I8271_TAG ":0", atom_floppies, "525sssd", atom_state::floppy_formats).enable_sound(true); FLOPPY_CONNECTOR(config, I8271_TAG ":0", atom_floppies, "525sssd", atom_state::floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, I8271_TAG ":1", atom_floppies, "525sssd", atom_state::floppy_formats).enable_sound(true); FLOPPY_CONNECTOR(config, I8271_TAG ":1", atom_floppies, "525sssd", atom_state::floppy_formats).enable_sound(true);
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(R6522_TAG, via6522_device, write_ca1)) m_centronics->ack_handler().set(R6522_TAG, FUNC(via6522_device::write_ca1));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(R6522_TAG, via6522_device, write_pa7)) m_centronics->busy_handler().set(R6522_TAG, FUNC(via6522_device::write_pa7));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
CASSETTE(config, m_cassette); CASSETTE(config, m_cassette);
m_cassette->set_formats(atom_cassette_formats); m_cassette->set_formats(atom_cassette_formats);
@ -814,10 +815,11 @@ MACHINE_CONFIG_END
MACHINE_DRIVER( atombb ) MACHINE_DRIVER( atombb )
-------------------------------------------------*/ -------------------------------------------------*/
MACHINE_CONFIG_START(atom_state::atombb) void atom_state::atombb(machine_config &config)
{
/* basic machine hardware */ /* basic machine hardware */
MCFG_DEVICE_ADD(SY6502_TAG, M6502, X2/4) M6502(config, m_maincpu, X2/4);
MCFG_DEVICE_PROGRAM_MAP(atombb_mem) m_maincpu->set_addrmap(AS_PROGRAM, &atom_state::atombb_mem);
/* video hardware */ /* video hardware */
SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER); SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER);
@ -828,8 +830,7 @@ MACHINE_CONFIG_START(atom_state::atombb)
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 1.00);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
/* devices */ /* devices */
TIMER(config, "hz2400").configure_periodic(FUNC(atom_state::cassette_output_tick), attotime::from_hz(4806)); TIMER(config, "hz2400").configure_periodic(FUNC(atom_state::cassette_output_tick), attotime::from_hz(4806));
@ -845,11 +846,12 @@ MACHINE_CONFIG_START(atom_state::atombb)
ppi.in_pc_callback().set(FUNC(atom_state::ppi_pc_r)); ppi.in_pc_callback().set(FUNC(atom_state::ppi_pc_r));
ppi.out_pc_callback().set(FUNC(atom_state::ppi_pc_w)); ppi.out_pc_callback().set(FUNC(atom_state::ppi_pc_w));
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(R6522_TAG, via6522_device, write_ca1)) m_centronics->ack_handler().set(R6522_TAG, FUNC(via6522_device::write_ca1));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(R6522_TAG, via6522_device, write_pa7)) m_centronics->busy_handler().set(R6522_TAG, FUNC(via6522_device::write_pa7));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
CASSETTE(config, m_cassette); CASSETTE(config, m_cassette);
m_cassette->set_formats(atom_cassette_formats); m_cassette->set_formats(atom_cassette_formats);
@ -858,7 +860,7 @@ MACHINE_CONFIG_START(atom_state::atombb)
/* internal ram */ /* internal ram */
RAM(config, RAM_TAG).set_default_size("16K").set_extra_options("8K,12K"); RAM(config, RAM_TAG).set_default_size("16K").set_extra_options("8K,12K");
MACHINE_CONFIG_END }
/*------------------------------------------------- /*-------------------------------------------------
MACHINE_DRIVER( prophet2 ) MACHINE_DRIVER( prophet2 )

View File

@ -522,7 +522,8 @@ MACHINE_CONFIG_START(aussiebyte_state::aussiebyte)
m_centronics->set_data_input_buffer("cent_data_in"); m_centronics->set_data_input_buffer("cent_data_in");
m_centronics->busy_handler().set(FUNC(aussiebyte_state::write_centronics_busy)); m_centronics->busy_handler().set(FUNC(aussiebyte_state::write_centronics_busy));
INPUT_BUFFER(config, "cent_data_in"); INPUT_BUFFER(config, "cent_data_in");
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
Z80CTC(config, m_ctc, 16_MHz_XTAL / 4); Z80CTC(config, m_ctc, 16_MHz_XTAL / 4);
m_ctc->intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_ctc->intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);

View File

@ -559,7 +559,8 @@ MACHINE_CONFIG_START(bitgraph_state::bg_motherboard)
MACHINE_CONFIG_END MACHINE_CONFIG_END
#ifdef UNUSED_FUNCTION #ifdef UNUSED_FUNCTION
MACHINE_CONFIG_START(bitgraph_state::bg_ppu) void bitgraph_state::bg_ppu(machine_config &config)
{
i8035_device &ppu(I8035(config, PPU_TAG, XTAL(6'900'000))); i8035_device &ppu(I8035(config, PPU_TAG, XTAL(6'900'000)));
ppu.set_addrmap(AS_IO, &bitgraph_state::ppu_io); ppu.set_addrmap(AS_IO, &bitgraph_state::ppu_io);
// ppu.t0_in_cb().set(FUNC(bitgraph_state::ppu_t0_r)); // ppu.t0_in_cb().set(FUNC(bitgraph_state::ppu_t0_r));
@ -569,16 +570,17 @@ MACHINE_CONFIG_START(bitgraph_state::bg_ppu)
i8243.read_handler().set_nop(); i8243.read_handler().set_nop();
i8243.write_handler().set(FUNC(bitgraph_state::ppu_i8243_w)); i8243.write_handler().set(FUNC(bitgraph_state::ppu_i8243_w));
MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit6)) m_centronics->ack_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit6));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit7)) m_centronics->busy_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit7));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit4)) m_centronics->fault_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit4));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit5)) m_centronics->perror_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit5));
MCFG_DEVICE_ADD("cent_status_in", INPUT_BUFFER, 0) INPUT_BUFFER(config, "cent_status_in");
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
MACHINE_CONFIG_END m_centronics->set_output_latch(cent_data_out);
}
#endif #endif
void bitgraph_state::bitgrpha(machine_config &config) void bitgraph_state::bitgrpha(machine_config &config)

View File

@ -1158,13 +1158,14 @@ MACHINE_CONFIG_START(bullet_state::bullet)
FLOPPY_CONNECTOR(config, MB8877_TAG":6", bullet_8_floppies, nullptr, floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, MB8877_TAG":6", bullet_8_floppies, nullptr, floppy_image_device::default_floppy_formats);
FLOPPY_CONNECTOR(config, MB8877_TAG":7", bullet_8_floppies, nullptr, floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, MB8877_TAG":7", bullet_8_floppies, nullptr, floppy_image_device::default_floppy_formats);
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, bullet_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(bullet_state::write_centronics_busy));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, bullet_state, write_centronics_perror)) m_centronics->perror_handler().set(FUNC(bullet_state::write_centronics_perror));
MCFG_CENTRONICS_SELECT_HANDLER(WRITELINE(*this, bullet_state, write_centronics_select)) m_centronics->select_handler().set(FUNC(bullet_state::write_centronics_select));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(*this, bullet_state, write_centronics_fault)) m_centronics->fault_handler().set(FUNC(bullet_state::write_centronics_fault));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, "terminal")); rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, "terminal"));
rs232a.rxd_handler().set(m_dart, FUNC(z80dart_device::rxa_w)); rs232a.rxd_handler().set(m_dart, FUNC(z80dart_device::rxa_w));
@ -1241,10 +1242,11 @@ MACHINE_CONFIG_START(bulletf_state::bulletf)
FLOPPY_CONNECTOR(config, MB8877_TAG":8", bullet_35_floppies, nullptr, floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, MB8877_TAG":8", bullet_35_floppies, nullptr, floppy_image_device::default_floppy_formats);
FLOPPY_CONNECTOR(config, MB8877_TAG":9", bullet_35_floppies, nullptr, floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, MB8877_TAG":9", bullet_35_floppies, nullptr, floppy_image_device::default_floppy_formats);
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, bullet_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(bullet_state::write_centronics_busy));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, "terminal")); rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, "terminal"));
rs232a.rxd_handler().set(m_dart, FUNC(z80dart_device::rxa_w)); rs232a.rxd_handler().set(m_dart, FUNC(z80dart_device::rxa_w));
@ -1253,17 +1255,18 @@ MACHINE_CONFIG_START(bulletf_state::bulletf)
rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, nullptr)); rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, nullptr));
rs232b.rxd_handler().set(m_dart, FUNC(z80dart_device::rxb_w)); rs232b.rxd_handler().set(m_dart, FUNC(z80dart_device::rxb_w));
MCFG_DEVICE_ADD(SCSIBUS_TAG, SCSI_PORT, 0) SCSI_PORT(config, m_scsibus, 0);
MCFG_SCSI_BSY_HANDLER(WRITELINE("scsi_ctrl_in", input_buffer_device, write_bit3)) m_scsibus->bsy_handler().set(m_scsi_ctrl_in, FUNC(input_buffer_device::write_bit3));
MCFG_SCSI_MSG_HANDLER(WRITELINE("scsi_ctrl_in", input_buffer_device, write_bit4)) m_scsibus->msg_handler().set(m_scsi_ctrl_in, FUNC(input_buffer_device::write_bit4));
MCFG_SCSI_CD_HANDLER(WRITELINE("scsi_ctrl_in", input_buffer_device, write_bit5)) m_scsibus->cd_handler().set(m_scsi_ctrl_in, FUNC(input_buffer_device::write_bit5));
MCFG_SCSI_REQ_HANDLER(WRITELINE(*this, bulletf_state, req_w)) m_scsibus->req_handler().set(FUNC(bulletf_state::req_w));
MCFG_SCSI_IO_HANDLER(WRITELINE("scsi_ctrl_in", input_buffer_device, write_bit7)) m_scsibus->io_handler().set(m_scsi_ctrl_in, FUNC(input_buffer_device::write_bit7));
MCFG_SCSI_DATA_INPUT_BUFFER("scsi_data_in") m_scsibus->set_data_input_buffer(m_scsi_data_in);
MCFG_SCSI_OUTPUT_LATCH_ADD("scsi_data_out", SCSIBUS_TAG) OUTPUT_LATCH(config, m_scsi_data_out);
MCFG_DEVICE_ADD("scsi_ctrl_in", INPUT_BUFFER, 0) m_scsibus->set_output_latch(*m_scsi_data_out);
MCFG_DEVICE_ADD("scsi_data_in", INPUT_BUFFER, 0) INPUT_BUFFER(config, m_scsi_data_in);
INPUT_BUFFER(config, m_scsi_ctrl_in);
MCFG_SCSIDEV_ADD(SCSIBUS_TAG ":" SCSI_PORT_DEVICE1, "harddisk", SCSIHD, SCSI_ID_0) MCFG_SCSIDEV_ADD(SCSIBUS_TAG ":" SCSI_PORT_DEVICE1, "harddisk", SCSIHD, SCSI_ID_0)

View File

@ -632,13 +632,14 @@ MACHINE_CONFIG_START(bw12_state::common)
rs232b.cts_handler().set(m_sio, FUNC(z80dart_device::ctsb_w)); rs232b.cts_handler().set(m_sio, FUNC(z80dart_device::ctsb_w));
/* printer */ /* printer */
MCFG_DEVICE_ADD(CENTRONICS_TAG, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(PIA6821_TAG, pia6821_device, ca1_w)) m_centronics->ack_handler().set(m_pia, FUNC(pia6821_device::ca1_w));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, bw12_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(bw12_state::write_centronics_busy));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(*this, bw12_state, write_centronics_fault)) m_centronics->fault_handler().set(FUNC(bw12_state::write_centronics_fault));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, bw12_state, write_centronics_perror)) m_centronics->perror_handler().set(FUNC(bw12_state::write_centronics_perror));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
MACHINE_CONFIG_END MACHINE_CONFIG_END
MACHINE_CONFIG_START(bw12_state::bw12) MACHINE_CONFIG_START(bw12_state::bw12)

View File

@ -577,10 +577,11 @@ MACHINE_CONFIG_START(bw2_state::bw2)
MCFG_DEVICE_ADDRESS_MAP(0, lcdc_map) MCFG_DEVICE_ADDRESS_MAP(0, lcdc_map)
MCFG_VIDEO_SET_SCREEN(SCREEN_TAG) MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, bw2_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(bw2_state::write_centronics_busy));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) output_latch_device &latch(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(latch);
I8251(config, m_uart, 0); I8251(config, m_uart, 0);
m_uart->txd_handler().set(RS232_TAG, FUNC(rs232_port_device::write_txd)); m_uart->txd_handler().set(RS232_TAG, FUNC(rs232_port_device::write_txd));

View File

@ -1083,7 +1083,9 @@ MACHINE_CONFIG_START(cat_state::cat)
CENTRONICS(config, m_ctx, centronics_devices, "printer"); CENTRONICS(config, m_ctx, centronics_devices, "printer");
m_ctx->ack_handler().set(FUNC(cat_state::prn_ack_ff)); m_ctx->ack_handler().set(FUNC(cat_state::prn_ack_ff));
m_ctx->busy_handler().set(m_duart, FUNC(mc68681_device::ip4_w)).invert(); m_ctx->busy_handler().set(m_duart, FUNC(mc68681_device::ip4_w)).invert();
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("ctx_data_out", "ctx")
OUTPUT_LATCH(config, m_ctx_data_out);
m_ctx->set_output_latch(*m_ctx_data_out);
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 1.00); SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 1.00);

View File

@ -633,13 +633,14 @@ MACHINE_CONFIG_START(einstein_state::einstein)
adc.ch4_callback().set_ioport("analogue_2_y"); adc.ch4_callback().set_ioport("analogue_2_y");
/* printer */ /* printer */
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(IC_I063, z80pio_device, strobe_a)) m_centronics->ack_handler().set(IC_I063, FUNC(z80pio_device::strobe_a));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, einstein_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(einstein_state::write_centronics_busy));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, einstein_state, write_centronics_perror)) m_centronics->perror_handler().set(FUNC(einstein_state::write_centronics_perror));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(*this, einstein_state, write_centronics_fault)) m_centronics->fault_handler().set(FUNC(einstein_state::write_centronics_fault));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
TIMER(config, m_strobe_timer).configure_generic(FUNC(einstein_state::strobe_callback)); TIMER(config, m_strobe_timer).configure_generic(FUNC(einstein_state::strobe_callback));

View File

@ -593,7 +593,8 @@ MACHINE_CONFIG_START(elwro800_state::elwro800)
m_centronics->ack_handler().set(FUNC(elwro800_state::write_centronics_ack)); m_centronics->ack_handler().set(FUNC(elwro800_state::write_centronics_ack));
INPUT_BUFFER(config, "cent_data_in"); INPUT_BUFFER(config, "cent_data_in");
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
I8251(config, m_i8251, 14_MHz_XTAL / 4); I8251(config, m_i8251, 14_MHz_XTAL / 4);

View File

@ -623,9 +623,11 @@ MACHINE_CONFIG_START(excali64_state::excali64)
m_u12->set_clear_pin_value(1); /* Clear pin - pulled high */ m_u12->set_clear_pin_value(1); /* Clear pin - pulled high */
m_u12->out_cb().set(FUNC(excali64_state::motor_w)); m_u12->out_cb().set(FUNC(excali64_state::motor_w));
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, excali64_state, cent_busy_w)) m_centronics->busy_handler().set(FUNC(excali64_state::cent_busy_w));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
MACHINE_CONFIG_END MACHINE_CONFIG_END
/* ROM definition */ /* ROM definition */

View File

@ -560,11 +560,14 @@ MACHINE_CONFIG_START(fc100_state::fc100)
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "fc100_cart") MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "fc100_cart")
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit4)) m_centronics->ack_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit4));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit5)) m_centronics->busy_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit5));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
MCFG_DEVICE_ADD("cent_status_in", INPUT_BUFFER, 0) output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
INPUT_BUFFER(config, "cent_status_in");
MACHINE_CONFIG_END MACHINE_CONFIG_END
/* ROM definition */ /* ROM definition */

View File

@ -2075,14 +2075,15 @@ MACHINE_CONFIG_START(fm7_state::fm7)
MCFG_SOFTWARE_LIST_ADD("flop_list","fm7_disk") MCFG_SOFTWARE_LIST_ADD("flop_list","fm7_disk")
MCFG_DEVICE_ADD("centronics", CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_SLOT_OPTION_ADD( "dsjoy", DEMPA_SHINBUNSHA_JOYSTICK ) m_centronics->option_add("dsjoy", DEMPA_SHINBUNSHA_JOYSTICK);
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, fm7_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(fm7_state::write_centronics_busy));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(*this, fm7_state, write_centronics_fault)) m_centronics->fault_handler().set(FUNC(fm7_state::write_centronics_fault));
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, fm7_state, write_centronics_ack)) m_centronics->ack_handler().set(FUNC(fm7_state::write_centronics_ack));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, fm7_state, write_centronics_perror)) m_centronics->perror_handler().set(FUNC(fm7_state::write_centronics_perror));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
MACHINE_CONFIG_END MACHINE_CONFIG_END
MACHINE_CONFIG_START(fm7_state::fm8) MACHINE_CONFIG_START(fm7_state::fm8)
@ -2122,13 +2123,14 @@ MACHINE_CONFIG_START(fm7_state::fm8)
FLOPPY_CONNECTOR(config, m_floppy0, fm7_floppies, "qd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, m_floppy0, fm7_floppies, "qd", floppy_image_device::default_floppy_formats);
FLOPPY_CONNECTOR(config, m_floppy1, fm7_floppies, "qd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, m_floppy1, fm7_floppies, "qd", floppy_image_device::default_floppy_formats);
MCFG_DEVICE_ADD("centronics", CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, fm7_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(fm7_state::write_centronics_busy));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(*this, fm7_state, write_centronics_fault)) m_centronics->fault_handler().set(FUNC(fm7_state::write_centronics_fault));
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, fm7_state, write_centronics_ack)) m_centronics->ack_handler().set(FUNC(fm7_state::write_centronics_ack));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, fm7_state, write_centronics_perror)) m_centronics->perror_handler().set(FUNC(fm7_state::write_centronics_perror));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
MACHINE_CONFIG_END MACHINE_CONFIG_END
MACHINE_CONFIG_START(fm7_state::fm77av) MACHINE_CONFIG_START(fm7_state::fm77av)
@ -2184,13 +2186,14 @@ MACHINE_CONFIG_START(fm7_state::fm77av)
MCFG_SOFTWARE_LIST_ADD("av_flop_list", "fm77av") MCFG_SOFTWARE_LIST_ADD("av_flop_list", "fm77av")
MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("flop_list", "fm7_disk") MCFG_SOFTWARE_LIST_COMPATIBLE_ADD("flop_list", "fm7_disk")
MCFG_DEVICE_ADD("centronics", CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, fm7_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(fm7_state::write_centronics_busy));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(*this, fm7_state, write_centronics_fault)) m_centronics->fault_handler().set(FUNC(fm7_state::write_centronics_fault));
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, fm7_state, write_centronics_ack)) m_centronics->ack_handler().set(FUNC(fm7_state::write_centronics_ack));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, fm7_state, write_centronics_perror)) m_centronics->perror_handler().set(FUNC(fm7_state::write_centronics_perror));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
MACHINE_CONFIG_END MACHINE_CONFIG_END
MACHINE_CONFIG_START(fm7_state::fm11) MACHINE_CONFIG_START(fm7_state::fm11)
@ -2239,13 +2242,14 @@ MACHINE_CONFIG_START(fm7_state::fm11)
FLOPPY_CONNECTOR(config, m_floppy0, fm7_floppies, "qd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, m_floppy0, fm7_floppies, "qd", floppy_image_device::default_floppy_formats);
FLOPPY_CONNECTOR(config, m_floppy1, fm7_floppies, "qd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, m_floppy1, fm7_floppies, "qd", floppy_image_device::default_floppy_formats);
MCFG_DEVICE_ADD("centronics", CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, fm7_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(fm7_state::write_centronics_busy));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(*this, fm7_state, write_centronics_fault)) m_centronics->fault_handler().set(FUNC(fm7_state::write_centronics_fault));
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, fm7_state, write_centronics_ack)) m_centronics->ack_handler().set(FUNC(fm7_state::write_centronics_ack));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, fm7_state, write_centronics_perror)) m_centronics->perror_handler().set(FUNC(fm7_state::write_centronics_perror));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
MACHINE_CONFIG_END MACHINE_CONFIG_END
MACHINE_CONFIG_START(fm7_state::fm16beta) MACHINE_CONFIG_START(fm7_state::fm16beta)
@ -2285,13 +2289,14 @@ MACHINE_CONFIG_START(fm7_state::fm16beta)
FLOPPY_CONNECTOR(config, m_floppy0, fm7_floppies, "qd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, m_floppy0, fm7_floppies, "qd", floppy_image_device::default_floppy_formats);
FLOPPY_CONNECTOR(config, m_floppy1, fm7_floppies, "qd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, m_floppy1, fm7_floppies, "qd", floppy_image_device::default_floppy_formats);
MCFG_DEVICE_ADD("centronics", CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, fm7_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(fm7_state::write_centronics_busy));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(*this, fm7_state, write_centronics_fault)) m_centronics->fault_handler().set(FUNC(fm7_state::write_centronics_fault));
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, fm7_state, write_centronics_ack)) m_centronics->ack_handler().set(FUNC(fm7_state::write_centronics_ack));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, fm7_state, write_centronics_perror)) m_centronics->perror_handler().set(FUNC(fm7_state::write_centronics_perror));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
MACHINE_CONFIG_END MACHINE_CONFIG_END
/* ROM definition */ /* ROM definition */

View File

@ -595,12 +595,14 @@ MACHINE_CONFIG_START(force68k_state::fccpu1)
m_pit->h2_out_callback().set(m_centronics, FUNC(centronics_device::write_strobe)); m_pit->h2_out_callback().set(m_centronics, FUNC(centronics_device::write_strobe));
// Centronics // Centronics
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE (*this, force68k_state, centronics_ack_w)) m_centronics->ack_handler().set(FUNC(force68k_state::centronics_ack_w));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE (*this, force68k_state, centronics_busy_w)) m_centronics->busy_handler().set(FUNC(force68k_state::centronics_busy_w));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE (*this, force68k_state, centronics_perror_w)) m_centronics->perror_handler().set(FUNC(force68k_state::centronics_perror_w));
MCFG_CENTRONICS_SELECT_HANDLER(WRITELINE (*this, force68k_state, centronics_select_w)) m_centronics->select_handler().set(FUNC(force68k_state::centronics_select_w));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
output_latch_device &latch(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(latch);
// EPROM sockets // EPROM sockets
fccpu1_eprom_sockets(config); fccpu1_eprom_sockets(config);

View File

@ -677,9 +677,11 @@ MACHINE_CONFIG_START(fp1100_state::fp1100)
m_crtc->set_update_row_callback(FUNC(fp1100_state::crtc_update_row), this); m_crtc->set_update_row_callback(FUNC(fp1100_state::crtc_update_row), this);
/* Printer */ /* Printer */
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, fp1100_state, centronics_busy_w)) m_centronics->busy_handler().set(FUNC(fp1100_state::centronics_busy_w));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
output_latch_device &latch(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(latch);
/* Cassette */ /* Cassette */
CASSETTE(config, m_cass); CASSETTE(config, m_cass);

View File

@ -827,8 +827,8 @@ MACHINE_CONFIG_START(jtc_state::basic)
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05); WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.05);
/* printer */ /* printer */
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, jtc_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(jtc_state::write_centronics_busy));
/* quickload */ /* quickload */
MCFG_QUICKLOAD_ADD("quickload", jtc_state, jtc, "jtc,bin", 2) MCFG_QUICKLOAD_ADD("quickload", jtc_state, jtc, "jtc,bin", 2)

View File

@ -802,8 +802,10 @@ MACHINE_CONFIG_START(ace_state::ace)
m_z80pio->out_pa_callback().set(FUNC(ace_state::pio_pa_w)); m_z80pio->out_pa_callback().set(FUNC(ace_state::pio_pa_w));
m_z80pio->out_pb_callback().set("cent_data_out", FUNC(output_latch_device::bus_w)); m_z80pio->out_pb_callback().set("cent_data_out", FUNC(output_latch_device::bus_w));
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
// internal ram // internal ram
RAM(config, RAM_TAG).set_default_size("1K").set_extra_options("16K,32K,48K"); RAM(config, RAM_TAG).set_default_size("1K").set_extra_options("16K,32K,48K");

View File

@ -230,10 +230,11 @@ MACHINE_CONFIG_START(kaypro_state::kayproii)
kbd.rxd_cb().set("sio", FUNC(z80sio_device::rxb_w)); kbd.rxd_cb().set("sio", FUNC(z80sio_device::rxb_w));
kbd.rxd_cb().append("sio", FUNC(z80sio_device::syncb_w)); kbd.rxd_cb().append("sio", FUNC(z80sio_device::syncb_w));
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, kaypro_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(kaypro_state::write_centronics_busy));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &latch(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(latch);
rs232_port_device &serial(RS232_PORT(config, "serial", default_rs232_devices, nullptr)); rs232_port_device &serial(RS232_PORT(config, "serial", default_rs232_devices, nullptr));
serial.rxd_handler().set("sio", FUNC(z80sio_device::rxa_w)); serial.rxd_handler().set("sio", FUNC(z80sio_device::rxa_w));
@ -322,10 +323,11 @@ MACHINE_CONFIG_START(kaypro_state::kaypro484)
CLOCK(config, "kbdtxrxc", 4800).signal_handler().set("sio_1", FUNC(z80sio_device::rxtxcb_w)); CLOCK(config, "kbdtxrxc", 4800).signal_handler().set("sio_1", FUNC(z80sio_device::rxtxcb_w));
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, kaypro_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(kaypro_state::write_centronics_busy));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &latch(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(latch);
rs232_port_device &modem(RS232_PORT(config, "modem", default_rs232_devices, nullptr)); rs232_port_device &modem(RS232_PORT(config, "modem", default_rs232_devices, nullptr));
modem.rxd_handler().set("sio_1", FUNC(z80sio_device::rxa_w)); modem.rxd_handler().set("sio_1", FUNC(z80sio_device::rxa_w));

View File

@ -705,7 +705,8 @@ MACHINE_CONFIG_START(kdt6_state::psi98)
m_centronics->select_handler().set("pio", FUNC(z80pio_device::pa5_w)); m_centronics->select_handler().set("pio", FUNC(z80pio_device::pa5_w));
INPUT_BUFFER(config, "cent_data_in"); INPUT_BUFFER(config, "cent_data_in");
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &latch(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(latch);
UPD1990A(config, m_rtc); UPD1990A(config, m_rtc);

View File

@ -1426,10 +1426,11 @@ MACHINE_CONFIG_START(m5_state::m5)
// CK0 = EXINT, CK1 = GND, CK2 = TCK, CK3 = VDP INT // CK0 = EXINT, CK1 = GND, CK2 = TCK, CK3 = VDP INT
// ZC2 = EXCLK // ZC2 = EXCLK
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, m5_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(m5_state::write_centronics_busy));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
CASSETTE(config, m_cassette); CASSETTE(config, m_cassette);
m_cassette->set_formats(sordm5_cassette_formats); m_cassette->set_formats(sordm5_cassette_formats);

View File

@ -689,10 +689,11 @@ MACHINE_CONFIG_START(mbee_state::mbee)
MCFG_QUICKLOAD_ADD("quickload", mbee_state, mbee, "mwb,com,bee", 3) MCFG_QUICKLOAD_ADD("quickload", mbee_state, mbee, "mwb,com,bee", 3)
MCFG_QUICKLOAD_ADD("quickload2", mbee_state, mbee_z80bin, "bin", 3) MCFG_QUICKLOAD_ADD("quickload2", mbee_state, mbee_z80bin, "bin", 3)
MCFG_DEVICE_ADD("centronics", CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE("z80pio", z80pio_device, strobe_a)) m_centronics->ack_handler().set(m_pio, FUNC(z80pio_device::strobe_a));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
CASSETTE(config, m_cassette); CASSETTE(config, m_cassette);
m_cassette->set_formats(mbee_cassette_formats); m_cassette->set_formats(mbee_cassette_formats);
@ -746,10 +747,11 @@ MACHINE_CONFIG_START(mbee_state::mbeeic)
MCFG_QUICKLOAD_ADD("quickload", mbee_state, mbee, "mwb,com,bee", 2) MCFG_QUICKLOAD_ADD("quickload", mbee_state, mbee, "mwb,com,bee", 2)
MCFG_QUICKLOAD_ADD("quickload2", mbee_state, mbee_z80bin, "bin", 2) MCFG_QUICKLOAD_ADD("quickload2", mbee_state, mbee_z80bin, "bin", 2)
MCFG_DEVICE_ADD("centronics", CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(m_pio, z80pio_device, strobe_a)) m_centronics->ack_handler().set(m_pio, FUNC(z80pio_device::strobe_a));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
CASSETTE(config, m_cassette); CASSETTE(config, m_cassette);
m_cassette->set_formats(mbee_cassette_formats); m_cassette->set_formats(mbee_cassette_formats);

View File

@ -584,10 +584,11 @@ MACHINE_CONFIG_START(mc1000_state::mc1000)
MCFG_SOFTWARE_LIST_ADD("cass_list", "mc1000_cass") MCFG_SOFTWARE_LIST_ADD("cass_list", "mc1000_cass")
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, mc1000_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(mc1000_state::write_centronics_busy));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) output_latch_device &latch(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(latch);
/* internal ram */ /* internal ram */
RAM(config, RAM_TAG).set_default_size("16K").set_extra_options("48K"); RAM(config, RAM_TAG).set_default_size("16K").set_extra_options("48K");

View File

@ -293,15 +293,16 @@ MACHINE_CONFIG_START(mc1502_state::mc1502)
WAVE(config, "wave", m_cassette); // FIXME: really no output routes for the cassette sound? WAVE(config, "wave", m_cassette); // FIXME: really no output routes for the cassette sound?
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.80); SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.80);
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit6)) m_centronics->ack_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit6));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit7)) m_centronics->busy_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit7));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit4)) m_centronics->fault_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit4));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit5)) m_centronics->perror_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit5));
MCFG_DEVICE_ADD("cent_status_in", INPUT_BUFFER, 0) INPUT_BUFFER(config, "cent_status_in");
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
CASSETTE(config, m_cassette); CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED); m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED);

View File

@ -1377,14 +1377,15 @@ MACHINE_CONFIG_START(msx_state::msx)
m_ay8910->add_route(ALL_OUTPUTS, "speaker", 0.3); m_ay8910->add_route(ALL_OUTPUTS, "speaker", 0.3);
/* printer */ /* printer */
MCFG_DEVICE_ADD("centronics", CENTRONICS, centronics_devices, "printer") centronics_device &centronics(CENTRONICS(config, "centronics", centronics_devices, "printer"));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit1)) centronics.busy_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit1));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
MCFG_DEVICE_ADD("cent_status_in", INPUT_BUFFER, 0) centronics.set_output_latch(cent_data_out);
INPUT_BUFFER(config, "cent_status_in");
MCFG_DEVICE_ADD("cent_ctrl_out", OUTPUT_LATCH, 0) output_latch_device &cent_ctrl_out(OUTPUT_LATCH(config, "cent_ctrl_out"));
MCFG_OUTPUT_LATCH_BIT1_HANDLER(WRITELINE("centronics", centronics_device, write_strobe)) cent_ctrl_out.bit_handler<1>().set(centronics, FUNC(centronics_device::write_strobe));
/* cassette */ /* cassette */
CASSETTE(config, m_cassette); CASSETTE(config, m_cassette);
@ -1447,14 +1448,15 @@ MACHINE_CONFIG_START(msx2_state::msx2)
m_ay8910->add_route(ALL_OUTPUTS, "speaker", 0.3); m_ay8910->add_route(ALL_OUTPUTS, "speaker", 0.3);
/* printer */ /* printer */
MCFG_DEVICE_ADD("centronics", CENTRONICS, centronics_devices, "printer") centronics_device &centronics(CENTRONICS(config, "centronics", centronics_devices, "printer"));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit1)) centronics.busy_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit1));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
MCFG_DEVICE_ADD("cent_status_in", INPUT_BUFFER, 0) centronics.set_output_latch(cent_data_out);
INPUT_BUFFER(config, "cent_status_in");
MCFG_DEVICE_ADD("cent_ctrl_out", OUTPUT_LATCH, 0) output_latch_device &cent_ctrl_out(OUTPUT_LATCH(config, "cent_ctrl_out"));
MCFG_OUTPUT_LATCH_BIT1_HANDLER(WRITELINE("centronics", centronics_device, write_strobe)) cent_ctrl_out.bit_handler<1>().set(centronics, FUNC(centronics_device::write_strobe));
/* cassette */ /* cassette */
CASSETTE(config, m_cassette); CASSETTE(config, m_cassette);
@ -1508,14 +1510,15 @@ MACHINE_CONFIG_START(msx2_state::msx2p)
m_ay8910->add_route(ALL_OUTPUTS, "speaker", 0.3); m_ay8910->add_route(ALL_OUTPUTS, "speaker", 0.3);
/* printer */ /* printer */
MCFG_DEVICE_ADD("centronics", CENTRONICS, centronics_devices, "printer") centronics_device &centronics(CENTRONICS(config, "centronics", centronics_devices, "printer"));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit1)) centronics.busy_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit1));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
MCFG_DEVICE_ADD("cent_status_in", INPUT_BUFFER, 0) centronics.set_output_latch(cent_data_out);
INPUT_BUFFER(config, "cent_status_in");
MCFG_DEVICE_ADD("cent_ctrl_out", OUTPUT_LATCH, 0) output_latch_device &cent_ctrl_out(OUTPUT_LATCH(config, "cent_ctrl_out"));
MCFG_OUTPUT_LATCH_BIT1_HANDLER(WRITELINE("centronics", centronics_device, write_strobe)) cent_ctrl_out.bit_handler<1>().set(centronics, FUNC(centronics_device::write_strobe));
/* cassette */ /* cassette */
CASSETTE(config, m_cassette); CASSETTE(config, m_cassette);

View File

@ -314,13 +314,14 @@ MACHINE_CONFIG_START(mtx_state::mtx512)
TIMER(config, "z80ctc_timer").configure_periodic(FUNC(mtx_state::ctc_tick), attotime::from_hz(XTAL(4'000'000)/13)); TIMER(config, "z80ctc_timer").configure_periodic(FUNC(mtx_state::ctc_tick), attotime::from_hz(XTAL(4'000'000)/13));
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, mtx_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(mtx_state::write_centronics_busy));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(*this, mtx_state, write_centronics_fault)) m_centronics->fault_handler().set(FUNC(mtx_state::write_centronics_fault));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, mtx_state, write_centronics_perror)) m_centronics->perror_handler().set(FUNC(mtx_state::write_centronics_perror));
MCFG_CENTRONICS_SELECT_HANDLER(WRITELINE(*this, mtx_state, write_centronics_select)) m_centronics->select_handler().set(FUNC(mtx_state::write_centronics_select));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
MCFG_SNAPSHOT_ADD("snapshot", mtx_state, mtx, "mtx", 1) MCFG_SNAPSHOT_ADD("snapshot", mtx_state, mtx, "mtx", 1)
CASSETTE(config, m_cassette); CASSETTE(config, m_cassette);

View File

@ -1005,12 +1005,15 @@ MACHINE_CONFIG_START(myb3k_state::myb3k)
MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "isa", stepone_isa_cards, nullptr, false) MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "isa", stepone_isa_cards, nullptr, false)
/* Centronics */ /* Centronics */
MCFG_DEVICE_ADD (m_centronics, CENTRONICS, centronics_devices, "printer")
MCFG_CENTRONICS_ACK_HANDLER (WRITELINE (*this, myb3k_state, centronics_ack_w)) CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER (WRITELINE (*this, myb3k_state, centronics_busy_w)) m_centronics->ack_handler().set(FUNC(myb3k_state::centronics_ack_w));
MCFG_CENTRONICS_PERROR_HANDLER (WRITELINE (*this, myb3k_state, centronics_perror_w)) m_centronics->busy_handler().set(FUNC(myb3k_state::centronics_busy_w));
MCFG_CENTRONICS_SELECT_HANDLER (WRITELINE (*this, myb3k_state, centronics_select_w)) m_centronics->perror_handler().set(FUNC(myb3k_state::centronics_perror_w));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD ("cent_data_out", "centronics") m_centronics->select_handler().set(FUNC(myb3k_state::centronics_select_w));
output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
/* Sound */ /* Sound */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();

View File

@ -461,9 +461,10 @@ MACHINE_CONFIG_START(mz_state::mz800)
pio.out_pa_callback().set(FUNC(mz_state::mz800_z80pio_port_a_w)); pio.out_pa_callback().set(FUNC(mz_state::mz800_z80pio_port_a_w));
pio.out_pb_callback().set("cent_data_out", FUNC(output_latch_device::bus_w)); pio.out_pb_callback().set("cent_data_out", FUNC(output_latch_device::bus_w));
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
MACHINE_CONFIG_END MACHINE_CONFIG_END

View File

@ -1398,10 +1398,11 @@ MACHINE_CONFIG_START(nc_state::nc_base)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
/* printer */ /* printer */
MCFG_DEVICE_ADD("centronics", CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, nc_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(nc_state::write_centronics_busy));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
/* uart */ /* uart */
I8251(config, m_uart, 0); I8251(config, m_uart, 0);
@ -1435,8 +1436,7 @@ MACHINE_CONFIG_START(nc100_state::nc100)
MCFG_SCREEN_UPDATE_DRIVER(nc100_state, screen_update_nc100) MCFG_SCREEN_UPDATE_DRIVER(nc100_state, screen_update_nc100)
/* printer */ /* printer */
MCFG_DEVICE_MODIFY("centronics") m_centronics->ack_handler().set(FUNC(nc100_state::write_nc100_centronics_ack));
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, nc100_state, write_nc100_centronics_ack))
/* uart */ /* uart */
m_uart->rxrdy_handler().set(FUNC(nc100_state::nc100_rxrdy_callback)); m_uart->rxrdy_handler().set(FUNC(nc100_state::nc100_rxrdy_callback));
@ -1475,8 +1475,7 @@ MACHINE_CONFIG_START(nc200_state::nc200)
palette.set_init(FUNC(nc200_state::nc_colours)); palette.set_init(FUNC(nc200_state::nc_colours));
/* printer */ /* printer */
MCFG_DEVICE_MODIFY("centronics") m_centronics->ack_handler().set(FUNC(nc200_state::write_nc200_centronics_ack));
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, nc200_state, write_nc200_centronics_ack))
/* uart */ /* uart */
m_uart->rxrdy_handler().set(FUNC(nc200_state::nc200_rxrdy_callback)); m_uart->rxrdy_handler().set(FUNC(nc200_state::nc200_rxrdy_callback));
@ -1487,7 +1486,7 @@ MACHINE_CONFIG_START(nc200_state::nc200)
FLOPPY_CONNECTOR(config, "upd765:0", ibmpc_floppies, "525dd", ibmpc_floppy_formats); FLOPPY_CONNECTOR(config, "upd765:0", ibmpc_floppies, "525dd", ibmpc_floppy_formats);
FLOPPY_CONNECTOR(config, "upd765:1", ibmpc_floppies, "525dd", ibmpc_floppy_formats); FLOPPY_CONNECTOR(config, "upd765:1", ibmpc_floppies, "525dd", ibmpc_floppy_formats);
MCFG_DEVICE_ADD("mc", MC146818, 4.194304_MHz_XTAL) MC146818(config, "mc", 4.194304_MHz_XTAL);
/* internal ram */ /* internal ram */
m_ram->set_default_size("128K"); m_ram->set_default_size("128K");

View File

@ -1008,9 +1008,9 @@ MACHINE_CONFIG_START(octopus_state::octopus)
serial_b.cts_handler().set(m_serial, FUNC(z80sio_device::ctsb_w)).invert(); serial_b.cts_handler().set(m_serial, FUNC(z80sio_device::ctsb_w)).invert();
//serial_b.ri_handler().set(m_serial, FUNC(z80sio_device::rib_w)).invert(); //serial_b.ri_handler().set(m_serial, FUNC(z80sio_device::rib_w)).invert();
MCFG_DEVICE_ADD(m_parallel, CENTRONICS, octopus_centronics_devices, "printer") CENTRONICS(config, m_parallel, octopus_centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, octopus_state, parallel_busy_w)) m_parallel->busy_handler().set(FUNC(octopus_state::parallel_busy_w));
MCFG_CENTRONICS_SELECT_HANDLER(WRITELINE(*this, octopus_state, parallel_slctout_w)) m_parallel->select_handler().set(FUNC(octopus_state::parallel_slctout_w));
// TODO: Winchester HD controller (Xebec/SASI compatible? uses TTL logic) // TODO: Winchester HD controller (Xebec/SASI compatible? uses TTL logic)
/* video hardware */ /* video hardware */

View File

@ -1222,13 +1222,15 @@ MACHINE_CONFIG_START(pc1512_state::pc1512)
m_uart->out_rts_callback().set(RS232_TAG, FUNC(rs232_port_device::write_rts)); m_uart->out_rts_callback().set(RS232_TAG, FUNC(rs232_port_device::write_rts));
m_uart->out_int_callback().set(m_pic, FUNC(pic8259_device::ir4_w)); m_uart->out_int_callback().set(m_pic, FUNC(pic8259_device::ir4_w));
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, pc1512_state, write_centronics_ack)) m_centronics->ack_handler().set(FUNC(pc1512_state::write_centronics_ack));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, pc1512_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(pc1512_state::write_centronics_busy));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, pc1512_state, write_centronics_perror)) m_centronics->perror_handler().set(FUNC(pc1512_state::write_centronics_perror));
MCFG_CENTRONICS_SELECT_HANDLER(WRITELINE(*this, pc1512_state, write_centronics_select)) m_centronics->select_handler().set(FUNC(pc1512_state::write_centronics_select));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(*this, pc1512_state, write_centronics_fault)) m_centronics->fault_handler().set(FUNC(pc1512_state::write_centronics_fault));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr)); rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr));
rs232.rxd_handler().set(m_uart, FUNC(ins8250_uart_device::rx_w)); rs232.rxd_handler().set(m_uart, FUNC(ins8250_uart_device::rx_w));
@ -1354,13 +1356,15 @@ MACHINE_CONFIG_START(pc1640_state::pc1640)
m_uart->out_rts_callback().set(RS232_TAG, FUNC(rs232_port_device::write_rts)); m_uart->out_rts_callback().set(RS232_TAG, FUNC(rs232_port_device::write_rts));
m_uart->out_int_callback().set(m_pic, FUNC(pic8259_device::ir4_w)); m_uart->out_int_callback().set(m_pic, FUNC(pic8259_device::ir4_w));
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, pc1512_base_state, write_centronics_ack)) m_centronics->ack_handler().set(FUNC(pc1512_state::write_centronics_ack));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, pc1512_base_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(pc1512_state::write_centronics_busy));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, pc1512_base_state, write_centronics_perror)) m_centronics->perror_handler().set(FUNC(pc1512_state::write_centronics_perror));
MCFG_CENTRONICS_SELECT_HANDLER(WRITELINE(*this, pc1512_base_state, write_centronics_select)) m_centronics->select_handler().set(FUNC(pc1512_state::write_centronics_select));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(*this, pc1512_base_state, write_centronics_fault)) m_centronics->fault_handler().set(FUNC(pc1512_state::write_centronics_fault));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr)); rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr));
rs232.rxd_handler().set(m_uart, FUNC(ins8250_uart_device::rx_w)); rs232.rxd_handler().set(m_uart, FUNC(ins8250_uart_device::rx_w));

View File

@ -515,11 +515,12 @@ MACHINE_CONFIG_START(pc8001_state::pc8001)
m_crtc->drq_wr_callback().set(m_dma, FUNC(i8257_device::dreq2_w)); m_crtc->drq_wr_callback().set(m_dma, FUNC(i8257_device::dreq2_w));
m_crtc->set_screen(SCREEN_TAG); m_crtc->set_screen(SCREEN_TAG);
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, pc8001_state, write_centronics_ack)) m_centronics->ack_handler().set(FUNC(pc8001_state::write_centronics_ack));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, pc8001_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(pc8001_state::write_centronics_busy));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
CASSETTE(config, m_cassette); CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED); m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED);
@ -563,9 +564,10 @@ MACHINE_CONFIG_START(pc8001mk2_state::pc8001mk2)
m_crtc->drq_wr_callback().set(m_dma, FUNC(i8257_device::dreq2_w)); m_crtc->drq_wr_callback().set(m_dma, FUNC(i8257_device::dreq2_w));
m_crtc->set_screen(SCREEN_TAG); m_crtc->set_screen(SCREEN_TAG);
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
CASSETTE(config, m_cassette); CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED); m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED);

View File

@ -2375,7 +2375,7 @@ MACHINE_CONFIG_START(pc8801_state::pc8801)
I8214(config, I8214_TAG, MASTER_CLOCK); I8214(config, I8214_TAG, MASTER_CLOCK);
#endif #endif
UPD1990A(config, m_rtc); UPD1990A(config, m_rtc);
//MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer") //CENTRONICS(config, "centronics", centronics_devices, "printer");
CASSETTE(config, m_cassette); CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED); m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED);

View File

@ -337,11 +337,12 @@ MACHINE_CONFIG_START(pencil2_state::pencil2)
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "pencil2_cart") MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "pencil2_cart")
/* printer */ /* printer */
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, pencil2_state, write_centronics_ack)) m_centronics->ack_handler().set(FUNC(pencil2_state::write_centronics_ack));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, pencil2_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(pencil2_state::write_centronics_busy));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
/* Software lists */ /* Software lists */
MCFG_SOFTWARE_LIST_ADD("cart_list", "pencil2") MCFG_SOFTWARE_LIST_ADD("cart_list", "pencil2")

View File

@ -328,10 +328,11 @@ MACHINE_CONFIG_START(phc25_state::phc25)
m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED); m_cassette->set_default_state(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_ENABLED);
m_cassette->set_interface("phc25_cass"); m_cassette->set_interface("phc25_cass");
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, phc25_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(phc25_state::write_centronics_busy));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
/* internal ram */ /* internal ram */
RAM(config, RAM_TAG).set_default_size("16K"); RAM(config, RAM_TAG).set_default_size("16K");

View File

@ -259,10 +259,12 @@ MACHINE_CONFIG_START(prof180x_state::prof180x)
FLOPPY_CONNECTOR(config, FDC9268_TAG ":2", prof180x_floppies, "35dd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, FDC9268_TAG ":2", prof180x_floppies, "35dd", floppy_image_device::default_floppy_formats);
FLOPPY_CONNECTOR(config, FDC9268_TAG ":3", prof180x_floppies, "35dd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, FDC9268_TAG ":3", prof180x_floppies, "35dd", floppy_image_device::default_floppy_formats);
//MCFG_RTC8583_ADD(MK3835_TAG, rtc_intf) //RTC8583(config, MK3835_TAG, rtc_intf);
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) CENTRONICS(config, m_centronics, centronics_devices, "printer");
output_latch_device &latch(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(latch);
/* internal ram */ /* internal ram */
RAM(config, RAM_TAG).set_default_size("128K").set_extra_options("256K,512K"); RAM(config, RAM_TAG).set_default_size("128K").set_extra_options("256K,512K");

View File

@ -364,9 +364,10 @@ MACHINE_CONFIG_START(proteus_state::proteus)
m_pia->irqa_handler().set("irqs", FUNC(input_merger_device::in_w<2>)); m_pia->irqa_handler().set("irqs", FUNC(input_merger_device::in_w<2>));
m_pia->irqb_handler().set("irqs", FUNC(input_merger_device::in_w<3>)); m_pia->irqb_handler().set("irqs", FUNC(input_merger_device::in_w<3>));
MCFG_DEVICE_ADD("parallel", CENTRONICS, centronics_devices, "printer") centronics_device &parallel(CENTRONICS(config, "parallel", centronics_devices, "printer"));
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE("pia", pia6821_device, ca1_w)) parallel.ack_handler().set(m_pia, FUNC(pia6821_device::ca1_w));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "parallel") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
parallel.set_output_latch(cent_data_out);
/* terminal port */ /* terminal port */
ACIA6850(config, m_acia[0], 0); ACIA6850(config, m_acia[0], 0);

View File

@ -1515,11 +1515,12 @@ MACHINE_CONFIG_START(px4_state::px4)
NVRAM(config, "nvram", nvram_device::DEFAULT_NONE); NVRAM(config, "nvram", nvram_device::DEFAULT_NONE);
// centronics printer // centronics printer
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, px4_state, centronics_busy_w)) m_centronics->busy_handler().set(FUNC(px4_state::centronics_busy_w));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, px4_state, centronics_perror_w)) m_centronics->perror_handler().set(FUNC(px4_state::centronics_perror_w));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &latch(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(latch);
// external cassette // external cassette
CASSETTE(config, m_ext_cas); CASSETTE(config, m_ext_cas);

View File

@ -470,14 +470,15 @@ MACHINE_CONFIG_START(sage2_state::sage2)
UPD765A(config, m_fdc, 8'000'000, false, false); UPD765A(config, m_fdc, 8'000'000, false, false);
m_fdc->intrq_wr_callback().set(FUNC(sage2_state::fdc_irq)); m_fdc->intrq_wr_callback().set(FUNC(sage2_state::fdc_irq));
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, sage2_state, write_centronics_ack)) m_centronics->ack_handler().set(FUNC(sage2_state::write_centronics_ack));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, sage2_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(sage2_state::write_centronics_busy));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, sage2_state, write_centronics_perror)) m_centronics->perror_handler().set(FUNC(sage2_state::write_centronics_perror));
MCFG_CENTRONICS_SELECT_HANDLER(WRITELINE(*this, sage2_state, write_centronics_select)) m_centronics->select_handler().set(FUNC(sage2_state::write_centronics_select));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(*this, sage2_state, write_centronics_fault)) m_centronics->fault_handler().set(FUNC(sage2_state::write_centronics_fault));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
FLOPPY_CONNECTOR(config, UPD765_TAG ":0", sage2_floppies, "525qd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, UPD765_TAG ":0", sage2_floppies, "525qd", floppy_image_device::default_floppy_formats);
FLOPPY_CONNECTOR(config, UPD765_TAG ":1", sage2_floppies, "525qd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, UPD765_TAG ":1", sage2_floppies, "525qd", floppy_image_device::default_floppy_formats);

View File

@ -654,9 +654,10 @@ MACHINE_CONFIG_START(sf7000_state::sf7000)
UPD765A(config, m_fdc, 8'000'000, false, false); UPD765A(config, m_fdc, 8'000'000, false, false);
FLOPPY_CONNECTOR(config, UPD765_TAG ":0", sf7000_floppies, "3ssdd", sf7000_state::floppy_formats); FLOPPY_CONNECTOR(config, UPD765_TAG ":0", sf7000_floppies, "3ssdd", sf7000_state::floppy_formats);
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
/* sf7000 (sc3000) has all sk1100 features built-in, so add it as a fixed slot */ /* sf7000 (sc3000) has all sk1100 features built-in, so add it as a fixed slot */
MCFG_SG1000_EXPANSION_ADD(EXPSLOT_TAG, sg1000_expansion_devices, "sk1100", true) MCFG_SG1000_EXPANSION_ADD(EXPSLOT_TAG, sg1000_expansion_devices, "sk1100", true)

View File

@ -132,17 +132,18 @@ MACHINE_CONFIG_START(slicer_state::slicer)
drivelatch.q_out_cb<6>().set(FUNC(slicer_state::drive_size_w)); drivelatch.q_out_cb<6>().set(FUNC(slicer_state::drive_size_w));
drivelatch.q_out_cb<7>().set("fdc", FUNC(fd1797_device::dden_w)); drivelatch.q_out_cb<7>().set("fdc", FUNC(fd1797_device::dden_w));
MCFG_DEVICE_ADD("sasi", SCSI_PORT, 0) SCSI_PORT(config, m_sasi, 0);
MCFG_SCSI_DATA_INPUT_BUFFER("sasi_data_in") m_sasi->set_data_input_buffer("sasi_data_in");
MCFG_SCSI_BSY_HANDLER(WRITELINE("sasi_ctrl_in", input_buffer_device, write_bit3)) m_sasi->bsy_handler().set("sasi_ctrl_in", FUNC(input_buffer_device::write_bit3));
MCFG_SCSI_MSG_HANDLER(WRITELINE("sasi_ctrl_in", input_buffer_device, write_bit4)) m_sasi->msg_handler().set("sasi_ctrl_in", FUNC(input_buffer_device::write_bit4));
MCFG_SCSI_CD_HANDLER(WRITELINE("sasi_ctrl_in", input_buffer_device, write_bit5)) m_sasi->cd_handler().set("sasi_ctrl_in", FUNC(input_buffer_device::write_bit5));
MCFG_SCSI_REQ_HANDLER(WRITELINE("sasi_ctrl_in", input_buffer_device, write_bit6)) m_sasi->req_handler().set("sasi_ctrl_in", FUNC(input_buffer_device::write_bit6));
MCFG_SCSI_IO_HANDLER(WRITELINE("sasi_ctrl_in", input_buffer_device, write_bit7)) m_sasi->io_handler().set("sasi_ctrl_in", FUNC(input_buffer_device::write_bit7));
MCFG_SCSI_OUTPUT_LATCH_ADD("sasi_data_out", "sasi") output_latch_device &sasi_data_out(OUTPUT_LATCH(config, "sasi_data_out"));
MCFG_DEVICE_ADD("sasi_data_in", INPUT_BUFFER, 0) m_sasi->set_output_latch(sasi_data_out);
MCFG_DEVICE_ADD("sasi_ctrl_in", INPUT_BUFFER, 0) INPUT_BUFFER(config, "sasi_data_in");
INPUT_BUFFER(config, "sasi_ctrl_in");
MACHINE_CONFIG_END MACHINE_CONFIG_END
ROM_START( slicer ) ROM_START( slicer )

View File

@ -437,13 +437,12 @@ MACHINE_CONFIG_START(sorcerer_state::sorcerer)
RS232_PORT(config, "rs232", default_rs232_devices, "null_modem").set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); RS232_PORT(config, "rs232", default_rs232_devices, "null_modem").set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal));
/* printer */ /* printer */
MCFG_DEVICE_ADD("centronics", CENTRONICS, centronics_devices, "covox")
/* The use of the parallel port as a general purpose port is not emulated. /* The use of the parallel port as a general purpose port is not emulated.
Currently the only use is to read the printer status in the Centronics CENDRV bios routine. */ Currently the only use is to read the printer status in the Centronics CENDRV bios routine. */
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit7)) CENTRONICS(config, m_centronics, centronics_devices, "covox");
m_centronics->busy_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit7));
MCFG_DEVICE_ADD("cent_status_in", INPUT_BUFFER, 0) INPUT_BUFFER(config, "cent_status_in");
/* quickload */ /* quickload */
MCFG_SNAPSHOT_ADD("snapshot", sorcerer_state, sorcerer, "snp", 2) MCFG_SNAPSHOT_ADD("snapshot", sorcerer_state, sorcerer, "snp", 2)

View File

@ -494,10 +494,13 @@ MACHINE_CONFIG_START(spc1000_state::spc1000)
MCFG_DEVICE_ADD("ext1", SPC1000_EXP_SLOT, 0) MCFG_DEVICE_ADD("ext1", SPC1000_EXP_SLOT, 0)
MCFG_DEVICE_SLOT_INTERFACE(spc1000_exp, nullptr, false) MCFG_DEVICE_SLOT_INTERFACE(spc1000_exp, nullptr, false)
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, spc1000_state, centronics_busy_w)) m_centronics->busy_handler().set(FUNC(spc1000_state::centronics_busy_w));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
MCFG_DEVICE_ADD("cent_status_in", INPUT_BUFFER, 0) output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
INPUT_BUFFER(config, "cent_status_in");
CASSETTE(config, m_cass); CASSETTE(config, m_cass);
m_cass->set_formats(spc1000_cassette_formats); m_cass->set_formats(spc1000_cassette_formats);

View File

@ -921,10 +921,13 @@ MACHINE_CONFIG_START(spc1500_state::spc1500)
m_sound->add_route(ALL_OUTPUTS, "mono", 1.00); m_sound->add_route(ALL_OUTPUTS, "mono", 1.00);
WAVE(config, "wave", m_cass).add_route(ALL_OUTPUTS, "mono", 0.25); WAVE(config, "wave", m_cass).add_route(ALL_OUTPUTS, "mono", 0.25);
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, spc1500_state, centronics_busy_w)) m_centronics->busy_handler().set(FUNC(spc1500_state::centronics_busy_w));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
MCFG_DEVICE_ADD("cent_status_in", INPUT_BUFFER, 0) output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
INPUT_BUFFER(config, "cent_status_in");
CASSETTE(config, m_cass); CASSETTE(config, m_cass);
m_cass->set_formats(spc1000_cassette_formats); m_cass->set_formats(spc1000_cassette_formats);

View File

@ -2229,7 +2229,8 @@ MACHINE_CONFIG_START(thomson_state::mo6)
CENTRONICS(config, m_centronics, centronics_devices, "printer"); CENTRONICS(config, m_centronics, centronics_devices, "printer");
m_centronics->busy_handler().set(FUNC(thomson_state::write_centronics_busy)); m_centronics->busy_handler().set(FUNC(thomson_state::write_centronics_busy));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
config.device_remove("cartslot"); config.device_remove("cartslot");
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "mo_cart") MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "mo_cart")
@ -2494,7 +2495,9 @@ MACHINE_CONFIG_START(thomson_state::mo5nr)
m_centronics->busy_handler().set(FUNC(thomson_state::write_centronics_busy)); m_centronics->busy_handler().set(FUNC(thomson_state::write_centronics_busy));
INPUT_BUFFER(config, "cent_data_in"); INPUT_BUFFER(config, "cent_data_in");
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
config.device_remove("cartslot"); config.device_remove("cartslot");
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "mo_cart") MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "mo_cart")

View File

@ -765,7 +765,9 @@ MACHINE_CONFIG_START(tiki100_state::tiki100)
m_centronics->perror_handler().set(FUNC(tiki100_state::write_centronics_perror)); m_centronics->perror_handler().set(FUNC(tiki100_state::write_centronics_perror));
INPUT_BUFFER(config, "cent_data_in"); INPUT_BUFFER(config, "cent_data_in");
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
CASSETTE(config, m_cassette); CASSETTE(config, m_cassette);
m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED); m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED);

View File

@ -544,15 +544,16 @@ MACHINE_CONFIG_START(trs80_state::model1) // model I, level II
FLOPPY_CONNECTOR(config, "fdc:2", trs80_floppies, "", trs80_state::floppy_formats).enable_sound(true); FLOPPY_CONNECTOR(config, "fdc:2", trs80_floppies, "", trs80_state::floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, "fdc:3", trs80_floppies, "", trs80_state::floppy_formats).enable_sound(true); FLOPPY_CONNECTOR(config, "fdc:3", trs80_floppies, "", trs80_state::floppy_formats).enable_sound(true);
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit7)) m_centronics->busy_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit7));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit6)) m_centronics->perror_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit6));
MCFG_CENTRONICS_SELECT_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit5)) m_centronics->select_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit5));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit4)) m_centronics->fault_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit4));
MCFG_DEVICE_ADD("cent_status_in", INPUT_BUFFER, 0) INPUT_BUFFER(config, m_cent_status_in);
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
COM8116(config, m_brg, 5.0688_MHz_XTAL); // BR1941L COM8116(config, m_brg, 5.0688_MHz_XTAL); // BR1941L
m_brg->fr_handler().set(m_uart, FUNC(ay31015_device::write_rcp)); m_brg->fr_handler().set(m_uart, FUNC(ay31015_device::write_rcp));

View File

@ -767,12 +767,14 @@ MACHINE_CONFIG_START(trs80m2_state::trs80m2)
z80sio0_device& sio(Z80SIO0(config, Z80SIO_TAG, 8_MHz_XTAL / 2)); z80sio0_device& sio(Z80SIO0(config, Z80SIO_TAG, 8_MHz_XTAL / 2));
sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(m_pio, z80pio_device, strobe_b)) m_centronics->ack_handler().set(m_pio, FUNC(z80pio_device::strobe_b));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, trs80m2_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(trs80m2_state::write_centronics_busy));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(*this, trs80m2_state, write_centronics_fault)) m_centronics->fault_handler().set(FUNC(trs80m2_state::write_centronics_fault));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, trs80m2_state, write_centronics_perror)) m_centronics->perror_handler().set(FUNC(trs80m2_state::write_centronics_perror));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
TRS80M2_KEYBOARD(config, m_kb, 0); TRS80M2_KEYBOARD(config, m_kb, 0);
m_kb->clock_wr_callback().set(FUNC(trs80m2_state::kb_clock_w)); m_kb->clock_wr_callback().set(FUNC(trs80m2_state::kb_clock_w));
@ -859,12 +861,14 @@ MACHINE_CONFIG_START(trs80m16_state::trs80m16)
AM9519(config, m_uic, 0); AM9519(config, m_uic, 0);
m_uic->out_int_callback().set_inputline(M68000_TAG, M68K_IRQ_5); m_uic->out_int_callback().set_inputline(M68000_TAG, M68K_IRQ_5);
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(m_pio, z80pio_device, strobe_b)) m_centronics->ack_handler().set(m_pio, FUNC(z80pio_device::strobe_b));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, trs80m2_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(trs80m2_state::write_centronics_busy));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(*this, trs80m2_state, write_centronics_fault)) m_centronics->fault_handler().set(FUNC(trs80m2_state::write_centronics_fault));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, trs80m2_state, write_centronics_perror)) m_centronics->perror_handler().set(FUNC(trs80m2_state::write_centronics_perror));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
TRS80M2_KEYBOARD(config, m_kb, 0); TRS80M2_KEYBOARD(config, m_kb, 0);
m_kb->clock_wr_callback().set(FUNC(trs80m2_state::kb_clock_w)); m_kb->clock_wr_callback().set(FUNC(trs80m2_state::kb_clock_w));

View File

@ -369,15 +369,16 @@ MACHINE_CONFIG_START(trs80m3_state::model3)
FLOPPY_CONNECTOR(config, "fdc:0", trs80_floppies, "sssd", trs80m3_state::floppy_formats).enable_sound(true); FLOPPY_CONNECTOR(config, "fdc:0", trs80_floppies, "sssd", trs80m3_state::floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, "fdc:1", trs80_floppies, "sssd", trs80m3_state::floppy_formats).enable_sound(true); FLOPPY_CONNECTOR(config, "fdc:1", trs80_floppies, "sssd", trs80m3_state::floppy_formats).enable_sound(true);
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit7)) m_centronics->busy_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit7));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit6)) m_centronics->perror_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit6));
MCFG_CENTRONICS_SELECT_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit5)) m_centronics->select_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit5));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit4)) m_centronics->fault_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit4));
MCFG_DEVICE_ADD("cent_status_in", INPUT_BUFFER, 0) INPUT_BUFFER(config, m_cent_status_in);
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
COM8116(config, m_brg, 20.2752_MHz_XTAL / 4); // BR1943 (or BR1941L) COM8116(config, m_brg, 20.2752_MHz_XTAL / 4); // BR1943 (or BR1941L)
m_brg->fr_handler().set(m_uart, FUNC(ay31015_device::write_rcp)); m_brg->fr_handler().set(m_uart, FUNC(ay31015_device::write_rcp));

View File

@ -743,7 +743,8 @@ static INPUT_PORTS_START(pyuutajr)
PORT_BIT(0xff, IP_ACTIVE_HIGH, IPT_UNUSED) PORT_BIT(0xff, IP_ACTIVE_HIGH, IPT_UNUSED)
INPUT_PORTS_END INPUT_PORTS_END
MACHINE_CONFIG_START(tutor_state::tutor) void tutor_state::tutor(machine_config &config)
{
// basic machine hardware // basic machine hardware
// TMS9995 CPU @ 10.7 MHz // TMS9995 CPU @ 10.7 MHz
// No lines connected yet // No lines connected yet
@ -763,7 +764,8 @@ MACHINE_CONFIG_START(tutor_state::tutor)
CENTRONICS(config, m_centronics, centronics_devices, "printer").busy_handler().set(FUNC(tutor_state::write_centronics_busy)); CENTRONICS(config, m_centronics, centronics_devices, "printer").busy_handler().set(FUNC(tutor_state::write_centronics_busy));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
// Cassette // Cassette
SPEAKER(config, "cass_out").front_center(); SPEAKER(config, "cass_out").front_center();
@ -775,15 +777,15 @@ MACHINE_CONFIG_START(tutor_state::tutor)
// software lists // software lists
SOFTWARE_LIST(config, "cart_list").set_type("tutor", SOFTWARE_LIST_ORIGINAL_SYSTEM); SOFTWARE_LIST(config, "cart_list").set_type("tutor", SOFTWARE_LIST_ORIGINAL_SYSTEM);
MACHINE_CONFIG_END }
MACHINE_CONFIG_START(tutor_state::pyuutajr) void tutor_state::pyuutajr(machine_config &config)
{
tutor(config); tutor(config);
MCFG_DEVICE_MODIFY("maincpu") m_maincpu->set_addrmap(AS_PROGRAM, &tutor_state::pyuutajr_mem);
MCFG_DEVICE_PROGRAM_MAP(pyuutajr_mem) //config.device_remove("centronics");
//MCFG_DEVICE_REMOVE("centronics") //config.device_remove("cassette");
//MCFG_DEVICE_REMOVE("cassette") }
MACHINE_CONFIG_END
/* /*
ROM loading ROM loading

View File

@ -798,10 +798,11 @@ MACHINE_CONFIG_START(tvc_state::tvc)
m_sound->sndint_wr_callback().set(FUNC(tvc_state::int_ff_set)); m_sound->sndint_wr_callback().set(FUNC(tvc_state::int_ff_set));
m_sound->add_route(ALL_OUTPUTS, "mono", 0.75); m_sound->add_route(ALL_OUTPUTS, "mono", 0.75);
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, tvc_state, centronics_ack)) m_centronics->ack_handler().set(FUNC(tvc_state::centronics_ack));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
/* cartridge */ /* cartridge */
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "tvc_cart") MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "tvc_cart")

View File

@ -391,21 +391,22 @@ MACHINE_CONFIG_START(unixpc_state::unixpc)
mpsc.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); mpsc.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr));
mpsc.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts)); mpsc.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD("kbc", ACIA6850, 0) ACIA6850(config, "kbc", 0);
// TODO: HDC // TODO: HDC
//MCFG_DEVICE_ADD("hdc", WD1010, 40_MHz_XTAL / 8) //WD1010(config, "hdc", 40_MHz_XTAL / 8);
// TODO: RTC // TODO: RTC
//MCFG_DEVICE_ADD("rtc", TC8250, 32.768_kHz_XTAL) //TC8250(config, "rtc", 32.768_kHz_XTAL);
rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr)); rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr));
rs232.rxd_handler().set("mpsc", FUNC(upd7201_new_device::rxa_w)); rs232.rxd_handler().set("mpsc", FUNC(upd7201_new_device::rxa_w));
rs232.dsr_handler().set("mpsc", FUNC(upd7201_new_device::dcda_w)); rs232.dsr_handler().set("mpsc", FUNC(upd7201_new_device::dcda_w));
rs232.cts_handler().set("mpsc", FUNC(upd7201_new_device::ctsa_w)); rs232.cts_handler().set("mpsc", FUNC(upd7201_new_device::ctsa_w));
MCFG_DEVICE_ADD("printer", CENTRONICS, centronics_devices, nullptr) centronics_device &printer(CENTRONICS(config, "printer", centronics_devices, nullptr));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("printlatch", "printer") output_latch_device &printlatch(OUTPUT_LATCH(config, "printlatch"));
printer.set_output_latch(printlatch);
MACHINE_CONFIG_END MACHINE_CONFIG_END

View File

@ -1108,17 +1108,18 @@ MACHINE_CONFIG_START(v1050_state::v1050)
// SASI bus // SASI bus
SCSI_PORT(config, m_sasibus, 0); SCSI_PORT(config, m_sasibus, 0);
m_sasibus->set_data_input_buffer("scsi_data_in"); m_sasibus->set_data_input_buffer(m_sasi_data_in);
m_sasibus->req_handler().set("scsi_ctrl_in", FUNC(input_buffer_device::write_bit0)).exor(1); m_sasibus->req_handler().set(m_sasi_ctrl_in, FUNC(input_buffer_device::write_bit0)).exor(1);
m_sasibus->bsy_handler().set("scsi_ctrl_in", FUNC(input_buffer_device::write_bit1)); m_sasibus->bsy_handler().set(m_sasi_ctrl_in, FUNC(input_buffer_device::write_bit1));
m_sasibus->msg_handler().set("scsi_ctrl_in", FUNC(input_buffer_device::write_bit2)); m_sasibus->msg_handler().set(m_sasi_ctrl_in, FUNC(input_buffer_device::write_bit2));
m_sasibus->cd_handler().set("scsi_ctrl_in", FUNC(input_buffer_device::write_bit3)); m_sasibus->cd_handler().set(m_sasi_ctrl_in, FUNC(input_buffer_device::write_bit3));
m_sasibus->io_handler().set(FUNC(v1050_state::write_sasi_io)).exor(1); // bit4 m_sasibus->io_handler().set(FUNC(v1050_state::write_sasi_io)).exor(1); // bit4
MCFG_SCSIDEV_ADD(SASIBUS_TAG ":" SCSI_PORT_DEVICE1, "harddisk", S1410, SCSI_ID_0) MCFG_SCSIDEV_ADD(SASIBUS_TAG ":" SCSI_PORT_DEVICE1, "harddisk", S1410, SCSI_ID_0)
MCFG_SCSI_OUTPUT_LATCH_ADD("scsi_data_out", SASIBUS_TAG) OUTPUT_LATCH(config, m_sasi_data_out);
MCFG_DEVICE_ADD("scsi_data_in", INPUT_BUFFER, 0) m_sasibus->set_output_latch(*m_sasi_data_out);
MCFG_DEVICE_ADD("scsi_ctrl_in", INPUT_BUFFER, 0) INPUT_BUFFER(config, m_sasi_data_in);
INPUT_BUFFER(config, m_sasi_ctrl_in);
TIMER(config, m_timer_ack).configure_generic(FUNC(v1050_state::sasi_ack_tick)); TIMER(config, m_timer_ack).configure_generic(FUNC(v1050_state::sasi_ack_tick));
TIMER(config, m_timer_rst).configure_generic(FUNC(v1050_state::sasi_rst_tick)); TIMER(config, m_timer_rst).configure_generic(FUNC(v1050_state::sasi_rst_tick));
@ -1128,11 +1129,12 @@ MACHINE_CONFIG_START(v1050_state::v1050)
MCFG_SOFTWARE_LIST_ADD("hdd_list", "v1050_hdd") MCFG_SOFTWARE_LIST_ADD("hdd_list", "v1050_hdd")
// printer // printer
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, v1050_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(v1050_state::write_centronics_busy));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, v1050_state, write_centronics_perror)) m_centronics->perror_handler().set(FUNC(v1050_state::write_centronics_perror));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
// internal ram // internal ram
RAM(config, RAM_TAG).set_default_size("128K"); RAM(config, RAM_TAG).set_default_size("128K");

View File

@ -1333,7 +1333,7 @@ MACHINE_CONFIG_START(wangpc_state::wangpc)
FLOPPY_CONNECTOR(config, UPD765_TAG ":0", wangpc_floppies, "525dd", wangpc_state::floppy_formats); FLOPPY_CONNECTOR(config, UPD765_TAG ":0", wangpc_floppies, "525dd", wangpc_state::floppy_formats);
FLOPPY_CONNECTOR(config, UPD765_TAG ":1", wangpc_floppies, "525dd", wangpc_state::floppy_formats); FLOPPY_CONNECTOR(config, UPD765_TAG ":1", wangpc_floppies, "525dd", wangpc_state::floppy_formats);
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer"); CENTRONICS(config, m_centronics, centronics_devices, "printer");
m_centronics->set_data_input_buffer(m_cent_data_in); m_centronics->set_data_input_buffer(m_cent_data_in);
m_centronics->ack_handler().set(FUNC(wangpc_state::write_centronics_ack)); m_centronics->ack_handler().set(FUNC(wangpc_state::write_centronics_ack));
m_centronics->busy_handler().set(FUNC(wangpc_state::write_centronics_busy)); m_centronics->busy_handler().set(FUNC(wangpc_state::write_centronics_busy));
@ -1341,7 +1341,9 @@ MACHINE_CONFIG_START(wangpc_state::wangpc)
m_centronics->perror_handler().set(FUNC(wangpc_state::write_centronics_perror)); m_centronics->perror_handler().set(FUNC(wangpc_state::write_centronics_perror));
INPUT_BUFFER(config, m_cent_data_in); INPUT_BUFFER(config, m_cent_data_in);
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr)); rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr));
rs232.rxd_handler().set(m_epci, FUNC(mc2661_device::rx_w)); rs232.rxd_handler().set(m_epci, FUNC(mc2661_device::rx_w));

View File

@ -761,9 +761,10 @@ MACHINE_CONFIG_START(xerox820ii_state::xerox820ii)
MCFG_SCSIDEV_ADD(SASIBUS_TAG ":" SCSI_PORT_DEVICE1, "harddisk", SA1403D, SCSI_ID_0) MCFG_SCSIDEV_ADD(SASIBUS_TAG ":" SCSI_PORT_DEVICE1, "harddisk", SA1403D, SCSI_ID_0)
MCFG_SCSI_OUTPUT_LATCH_ADD("sasi_data_out", SASIBUS_TAG) output_latch_device &sasi_data_out(OUTPUT_LATCH(config, "sasi_data_out"));
MCFG_DEVICE_ADD("sasi_data_in", INPUT_BUFFER, 0) m_sasibus->set_output_latch(sasi_data_out);
MCFG_DEVICE_ADD("sasi_ctrl_in", INPUT_BUFFER, 0) INPUT_BUFFER(config, "sasi_data_in");
INPUT_BUFFER(config, "sasi_ctrl_in");
/* internal ram */ /* internal ram */
RAM(config, m_ram).set_default_size("64K"); RAM(config, m_ram).set_default_size("64K");

View File

@ -526,12 +526,13 @@ MACHINE_CONFIG_START(xor100_state::xor100)
FLOPPY_CONNECTOR(config, WD1795_TAG":2", xor100_floppies, nullptr, floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, WD1795_TAG":2", xor100_floppies, nullptr, floppy_image_device::default_floppy_formats);
FLOPPY_CONNECTOR(config, WD1795_TAG":3", xor100_floppies, nullptr, floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, WD1795_TAG":3", xor100_floppies, nullptr, floppy_image_device::default_floppy_formats);
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(I8255A_TAG, i8255_device, pc4_w)) m_centronics->ack_handler().set(I8255A_TAG, FUNC(i8255_device::pc4_w));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, xor100_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(xor100_state::write_centronics_busy));
MCFG_CENTRONICS_SELECT_HANDLER(WRITELINE(*this, xor100_state, write_centronics_select)) m_centronics->select_handler().set(FUNC(xor100_state::write_centronics_select));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
m_centronics->set_output_latch(cent_data_out);
// S-100 // S-100
MCFG_DEVICE_ADD(S100_TAG, S100_BUS, 8_MHz_XTAL / 4) MCFG_DEVICE_ADD(S100_TAG, S100_BUS, 8_MHz_XTAL / 4)

View File

@ -238,13 +238,15 @@ MACHINE_CONFIG_START(zorba_state::zorba)
rs232.dsr_handler().set(m_uart0, FUNC(i8251_device::write_dsr)); rs232.dsr_handler().set(m_uart0, FUNC(i8251_device::write_dsr));
// J3 Parallel printer // J3 Parallel printer
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("parprndata", "parprn")
centronics_device &parprn(CENTRONICS(config, "parprn", centronics_devices, "printer")); centronics_device &parprn(CENTRONICS(config, "parprn", centronics_devices, "printer"));
parprn.busy_handler().set(m_uart1, FUNC(i8251_device::write_cts)); parprn.busy_handler().set(m_uart1, FUNC(i8251_device::write_cts));
parprn.busy_handler().append(m_uart1, FUNC(i8251_device::write_dsr)); // TODO: shared with serial CTS parprn.busy_handler().append(m_uart1, FUNC(i8251_device::write_dsr)); // TODO: shared with serial CTS
parprn.fault_handler().set(FUNC(zorba_state::printer_fault_w)); parprn.fault_handler().set(FUNC(zorba_state::printer_fault_w));
parprn.select_handler().set(FUNC(zorba_state::printer_select_w)); parprn.select_handler().set(FUNC(zorba_state::printer_select_w));
output_latch_device &parprndata(OUTPUT_LATCH(config, "parprndata"));
parprn.set_output_latch(parprndata);
// J3 Serial printer // J3 Serial printer
rs232_port_device &serprn(RS232_PORT(config, "serprn", default_rs232_devices, nullptr)); rs232_port_device &serprn(RS232_PORT(config, "serprn", default_rs232_devices, nullptr));
serprn.rxd_handler().set(m_uart1, FUNC(i8251_device::write_rxd)); // TODO: this line has a LED attached serprn.rxd_handler().set(m_uart1, FUNC(i8251_device::write_rxd)); // TODO: this line has a LED attached

View File

@ -520,7 +520,8 @@ to7_io_line_device::to7_io_line_device(const machine_config &mconfig, const char
{ {
} }
MACHINE_CONFIG_START(to7_io_line_device::device_add_mconfig) void to7_io_line_device::device_add_mconfig(machine_config &config)
{
/// THIS PIO is part of CC 90-232 expansion /// THIS PIO is part of CC 90-232 expansion
PIA6821(config, m_pia_io, 0); PIA6821(config, m_pia_io, 0);
m_pia_io->readpa_handler().set(FUNC(to7_io_line_device::porta_in)); m_pia_io->readpa_handler().set(FUNC(to7_io_line_device::porta_in));
@ -535,13 +536,13 @@ MACHINE_CONFIG_START(to7_io_line_device::device_add_mconfig)
m_rs232->cts_handler().set(FUNC(to7_io_line_device::write_cts)); m_rs232->cts_handler().set(FUNC(to7_io_line_device::write_cts));
m_rs232->dsr_handler().set(FUNC(to7_io_line_device::write_dsr)); m_rs232->dsr_handler().set(FUNC(to7_io_line_device::write_dsr));
MCFG_DEVICE_ADD("centronics", CENTRONICS, centronics_devices, "printer") centronics_device &centronics(CENTRONICS(config, "centronics", centronics_devices, "printer"));
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(THOM_PIA_IO, pia6821_device, cb1_w)) centronics.ack_handler().set(m_pia_io, FUNC(pia6821_device::cb1_w));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, to7_io_line_device, write_centronics_busy)) centronics.busy_handler().set(FUNC(to7_io_line_device::write_centronics_busy));
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
centronics.set_output_latch(cent_data_out);
MACHINE_CONFIG_END }
void to7_io_line_device::device_start() void to7_io_line_device::device_start()