(nw) 6821 and 6850 have no clock for bus logic side, remove some MFCG_, fix build, tidy some stuff

This commit is contained in:
Vas Crabb 2018-07-13 19:15:40 +10:00
parent b3f639da1f
commit a53816282c
22 changed files with 237 additions and 236 deletions

View File

@ -72,11 +72,11 @@ ioport_constructor a2bus_pic_device::device_input_ports() const
//------------------------------------------------- //-------------------------------------------------
MACHINE_CONFIG_START(a2bus_pic_device::device_add_mconfig) MACHINE_CONFIG_START(a2bus_pic_device::device_add_mconfig)
MCFG_DEVICE_ADD(m_ctx, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_ctx, centronics_devices, "printer");
MCFG_CENTRONICS_DATA_INPUT_BUFFER("ctx_data_in") m_ctx->set_data_input_buffer(m_ctx_data_in);
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, a2bus_pic_device, ack_w)) m_ctx->ack_handler().set(FUNC(a2bus_pic_device::ack_w));
MCFG_DEVICE_ADD("ctx_data_in", INPUT_BUFFER, 0) INPUT_BUFFER(config, m_ctx_data_in);
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("ctx_data_out", PIC_CENTRONICS_TAG) MCFG_CENTRONICS_OUTPUT_LATCH_ADD("ctx_data_out", PIC_CENTRONICS_TAG)
MACHINE_CONFIG_END MACHINE_CONFIG_END

View File

@ -18,7 +18,6 @@
#define M6801_TAG "m6801" #define M6801_TAG "m6801"
#define MC2661_TAG "mc2661" #define MC2661_TAG "mc2661"
#define RS232_TAG "rs232" #define RS232_TAG "rs232"
#define CENTRONICS_TAG "centronics"
@ -85,10 +84,10 @@ MACHINE_CONFIG_START(adam_spi_device::device_add_mconfig)
MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr) MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr)
MCFG_DEVICE_ADD(CENTRONICS_TAG, CENTRONICS, centronics_devices, "printer") centronics_device &centronics(CENTRONICS(config, "centronics", centronics_devices, "printer"));
MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in") centronics.set_data_input_buffer("cent_data_in");
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0) INPUT_BUFFER(config, "cent_data_in");
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
MACHINE_CONFIG_END MACHINE_CONFIG_END
@ -102,9 +101,9 @@ MACHINE_CONFIG_END
//------------------------------------------------- //-------------------------------------------------
adam_spi_device::adam_spi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) adam_spi_device::adam_spi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, ADAM_SPI, tag, owner, clock), : device_t(mconfig, ADAM_SPI, tag, owner, clock)
device_adamnet_card_interface(mconfig, *this), , device_adamnet_card_interface(mconfig, *this)
m_maincpu(*this, M6801_TAG) , m_maincpu(*this, M6801_TAG)
{ {
} }

View File

@ -34,18 +34,6 @@
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_APRICOT_KEYBOARD_INTERFACE_ADD(_tag, _def_slot) \
MCFG_DEVICE_ADD(_tag, APRICOT_KEYBOARD_INTERFACE, 0) \
MCFG_DEVICE_SLOT_INTERFACE(apricot_keyboard_devices, _def_slot, false)
#define MCFG_APRICOT_KEYBOARD_IN_HANDLER(_devcb) \
downcast<apricot_keyboard_bus_device &>(*device).set_in_handler(DEVCB_##_devcb);
//************************************************************************** //**************************************************************************
// TYPE DEFINITIONS // TYPE DEFINITIONS
//************************************************************************** //**************************************************************************
@ -58,11 +46,20 @@ class apricot_keyboard_bus_device : public device_t, public device_slot_interfac
{ {
public: public:
// construction/destruction // construction/destruction
template <typename T>
apricot_keyboard_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&opts, const char *dflt)
: apricot_keyboard_bus_device(mconfig, tag, owner, 0)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(false);
}
apricot_keyboard_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); apricot_keyboard_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual ~apricot_keyboard_bus_device(); virtual ~apricot_keyboard_bus_device();
// callbacks // callbacks
template <class Object> devcb_base &set_in_handler(Object &&cb) { return m_in_handler.set_callback(std::forward<Object>(cb)); } auto in_handler() { return m_in_handler.bind(); }
// called from keyboard // called from keyboard
DECLARE_WRITE_LINE_MEMBER( in_w ) { m_in_handler(state); } DECLARE_WRITE_LINE_MEMBER( in_w ) { m_in_handler(state); }

View File

@ -76,16 +76,6 @@
MCFG_OUTPUT_LATCH_BIT6_HANDLER(WRITELINE(_centronics_tag, centronics_device, write_data6)) \ MCFG_OUTPUT_LATCH_BIT6_HANDLER(WRITELINE(_centronics_tag, centronics_device, write_data6)) \
MCFG_OUTPUT_LATCH_BIT7_HANDLER(WRITELINE(_centronics_tag, centronics_device, write_data7)) MCFG_OUTPUT_LATCH_BIT7_HANDLER(WRITELINE(_centronics_tag, centronics_device, write_data7))
#define MCFG_CENTRONICS_DATA_INPUT_BUFFER(_tag) \
MCFG_CENTRONICS_DATA0_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit0)) \
MCFG_CENTRONICS_DATA1_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit1)) \
MCFG_CENTRONICS_DATA2_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit2)) \
MCFG_CENTRONICS_DATA3_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit3)) \
MCFG_CENTRONICS_DATA4_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit4)) \
MCFG_CENTRONICS_DATA5_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit5)) \
MCFG_CENTRONICS_DATA6_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit6)) \
MCFG_CENTRONICS_DATA7_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit7))
DECLARE_DEVICE_TYPE(CENTRONICS, centronics_device) DECLARE_DEVICE_TYPE(CENTRONICS, centronics_device)
class device_centronics_peripheral_interface; class device_centronics_peripheral_interface;
@ -125,6 +115,8 @@ public:
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_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)); } 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 ack_handler() { return m_ack_handler.bind(); } auto ack_handler() { return m_ack_handler.bind(); }
auto busy_handler() { return m_busy_handler.bind(); } auto busy_handler() { return m_busy_handler.bind(); }
auto perror_handler() { return m_perror_handler.bind(); } auto perror_handler() { return m_perror_handler.bind(); }
@ -134,6 +126,18 @@ public:
auto init_handler() { return m_init_handler.bind(); } auto init_handler() { return m_init_handler.bind(); }
auto select_in_handler() { return m_select_in_handler.bind(); } auto select_in_handler() { return m_select_in_handler.bind(); }
template <typename T> void set_data_input_buffer(T &&tag)
{
m_data0_handler.bind().set(tag, FUNC(input_buffer_device::write_bit0));
m_data1_handler.bind().set(tag, FUNC(input_buffer_device::write_bit1));
m_data2_handler.bind().set(tag, FUNC(input_buffer_device::write_bit2));
m_data3_handler.bind().set(tag, FUNC(input_buffer_device::write_bit3));
m_data4_handler.bind().set(tag, FUNC(input_buffer_device::write_bit4));
m_data5_handler.bind().set(tag, FUNC(input_buffer_device::write_bit5));
m_data6_handler.bind().set(tag, FUNC(input_buffer_device::write_bit6));
m_data7_handler.bind().set(tag, FUNC(input_buffer_device::write_bit7));
}
DECLARE_WRITE_LINE_MEMBER( write_strobe ); DECLARE_WRITE_LINE_MEMBER( write_strobe );
DECLARE_WRITE_LINE_MEMBER( write_data0 ); DECLARE_WRITE_LINE_MEMBER( write_data0 );
DECLARE_WRITE_LINE_MEMBER( write_data1 ); DECLARE_WRITE_LINE_MEMBER( write_data1 );

View File

@ -74,25 +74,25 @@ void dmv_k210_device::device_timer(emu_timer &timer, device_timer_id tid, int pa
//------------------------------------------------- //-------------------------------------------------
MACHINE_CONFIG_START(dmv_k210_device::device_add_mconfig) MACHINE_CONFIG_START(dmv_k210_device::device_add_mconfig)
MCFG_DEVICE_ADD("ppi8255", I8255, 0) I8255(config, m_ppi, 0);
MCFG_I8255_IN_PORTA_CB(READ8(*this, dmv_k210_device, porta_r)) m_ppi->in_pa_callback().set(FUNC(dmv_k210_device::porta_r));
MCFG_I8255_IN_PORTB_CB(READ8(*this, dmv_k210_device, portb_r)) m_ppi->in_pb_callback().set(FUNC(dmv_k210_device::portb_r));
MCFG_I8255_IN_PORTC_CB(READ8(*this, dmv_k210_device, portc_r)) m_ppi->in_pc_callback().set(FUNC(dmv_k210_device::portc_r));
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, dmv_k210_device, porta_w)) m_ppi->out_pa_callback().set(FUNC(dmv_k210_device::porta_w));
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, dmv_k210_device, portb_w)) m_ppi->out_pb_callback().set(FUNC(dmv_k210_device::portb_w));
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, dmv_k210_device, portc_w)) m_ppi->out_pc_callback().set(FUNC(dmv_k210_device::portc_w));
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in") m_centronics->set_data_input_buffer(m_cent_data_in);
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, dmv_k210_device, cent_ack_w)) m_centronics->ack_handler().set(FUNC(dmv_k210_device::cent_ack_w));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, dmv_k210_device, cent_busy_w)) m_centronics->busy_handler().set(FUNC(dmv_k210_device::cent_busy_w));
MCFG_CENTRONICS_SELECT_IN_HANDLER(WRITELINE(*this, dmv_k210_device, cent_slct_w)) m_centronics->select_in_handler().set(FUNC(dmv_k210_device::cent_slct_w));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, dmv_k210_device, cent_pe_w)) m_centronics->perror_handler().set(FUNC(dmv_k210_device::cent_pe_w));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(*this, dmv_k210_device, cent_fault_w)) m_centronics->fault_handler().set(FUNC(dmv_k210_device::cent_fault_w));
MCFG_CENTRONICS_AUTOFD_HANDLER(WRITELINE(*this, dmv_k210_device, cent_autofd_w)) m_centronics->autofd_handler().set(FUNC(dmv_k210_device::cent_autofd_w));
MCFG_CENTRONICS_INIT_HANDLER(WRITELINE(*this, dmv_k210_device, cent_init_w)) m_centronics->init_handler().set(FUNC(dmv_k210_device::cent_init_w));
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0) INPUT_BUFFER(config, m_cent_data_in);
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
MACHINE_CONFIG_END MACHINE_CONFIG_END

View File

@ -77,7 +77,7 @@ class pia6821_device : public device_t
{ {
public: public:
// construction/destruction // construction/destruction
pia6821_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); pia6821_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
// static configuration helpers // static configuration helpers
// TODO: REMOVE THESE // TODO: REMOVE THESE

View File

@ -27,7 +27,7 @@ class acia6850_device : public device_t
{ {
public: public:
// construction/destruction // construction/destruction
acia6850_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); acia6850_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
// static configuration helpers // static configuration helpers
template <class Object> devcb_base &set_txd_handler(Object &&cb) { return m_txd_handler.set_callback(std::forward<Object>(cb)); } template <class Object> devcb_base &set_txd_handler(Object &&cb) { return m_txd_handler.set_callback(std::forward<Object>(cb)); }

View File

@ -6,7 +6,7 @@
class input_buffer_device : public device_t class input_buffer_device : public device_t
{ {
public: public:
input_buffer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); input_buffer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
uint8_t read() { return m_input_data; } uint8_t read() { return m_input_data; }
DECLARE_READ8_MEMBER(bus_r) { return read(); } DECLARE_READ8_MEMBER(bus_r) { return read(); }

View File

@ -12,8 +12,8 @@
DEFINE_DEVICE_TYPE(PC_LPT, pc_lpt_device, "pc_lpt", "PC LPT") DEFINE_DEVICE_TYPE(PC_LPT, pc_lpt_device, "pc_lpt", "PC LPT")
pc_lpt_device::pc_lpt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) pc_lpt_device::pc_lpt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
: device_t(mconfig, PC_LPT, tag, owner, clock), device_t(mconfig, PC_LPT, tag, owner, clock),
m_irq(1), m_irq(1),
m_data(0xff), m_control(0), m_data(0xff), m_control(0),
m_irq_enabled(1), m_irq_enabled(1),
@ -47,31 +47,31 @@ void pc_lpt_device::device_reset()
} }
MACHINE_CONFIG_START(pc_lpt_device::device_add_mconfig) MACHINE_CONFIG_START(pc_lpt_device::device_add_mconfig)
MCFG_DEVICE_ADD("centronics", CENTRONICS, centronics_devices, "printer") centronics_device &centronics(CENTRONICS(config, "centronics", centronics_devices, "printer"));
MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in") centronics.set_data_input_buffer(m_cent_data_in);
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit3)) centronics.fault_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit3));
MCFG_CENTRONICS_SELECT_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit4)) centronics.select_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit4));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit5)) centronics.perror_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit5));
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, pc_lpt_device, write_centronics_ack)) centronics.ack_handler().set(FUNC(pc_lpt_device::write_centronics_ack));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit7)) centronics.busy_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit7));
MCFG_CENTRONICS_STROBE_HANDLER(WRITELINE("cent_ctrl_in", input_buffer_device, write_bit0)) centronics.strobe_handler().set(m_cent_ctrl_in, FUNC(input_buffer_device::write_bit0));
MCFG_CENTRONICS_AUTOFD_HANDLER(WRITELINE("cent_ctrl_in", input_buffer_device, write_bit1)) centronics.autofd_handler().set(m_cent_ctrl_in, FUNC(input_buffer_device::write_bit1));
MCFG_CENTRONICS_INIT_HANDLER(WRITELINE("cent_ctrl_in", input_buffer_device, write_bit2)) centronics.init_handler().set(m_cent_ctrl_in, FUNC(input_buffer_device::write_bit2));
MCFG_CENTRONICS_SELECT_IN_HANDLER(WRITELINE("cent_ctrl_in", input_buffer_device, write_bit3)) centronics.select_in_handler().set(m_cent_ctrl_in, FUNC(input_buffer_device::write_bit3));
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0) INPUT_BUFFER(config, m_cent_data_in);
MCFG_DEVICE_ADD("cent_ctrl_in", INPUT_BUFFER, 0) INPUT_BUFFER(config, m_cent_ctrl_in);
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") MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
MCFG_DEVICE_ADD("cent_ctrl_out", OUTPUT_LATCH, 0) OUTPUT_LATCH(config, m_cent_ctrl_out);
MCFG_OUTPUT_LATCH_BIT0_HANDLER(WRITELINE("centronics", centronics_device, write_strobe)) m_cent_ctrl_out->bit_handler<0>().set("centronics", FUNC(centronics_device::write_strobe));
MCFG_OUTPUT_LATCH_BIT1_HANDLER(WRITELINE("centronics", centronics_device, write_autofd)) m_cent_ctrl_out->bit_handler<1>().set("centronics", FUNC(centronics_device::write_autofd));
MCFG_OUTPUT_LATCH_BIT2_HANDLER(WRITELINE("centronics", centronics_device, write_init)) m_cent_ctrl_out->bit_handler<2>().set("centronics", FUNC(centronics_device::write_init));
MCFG_OUTPUT_LATCH_BIT3_HANDLER(WRITELINE("centronics", centronics_device, write_select_in)) m_cent_ctrl_out->bit_handler<3>().set("centronics", FUNC(centronics_device::write_select_in));
MCFG_OUTPUT_LATCH_BIT4_HANDLER(WRITELINE(*this, pc_lpt_device, write_irq_enabled)) m_cent_ctrl_out->bit_handler<4>().set(FUNC(pc_lpt_device::write_irq_enabled));
MACHINE_CONFIG_END MACHINE_CONFIG_END

View File

@ -84,6 +84,13 @@ public:
template <class Object> devcb_base &set_out_mreq_callback(Object &&cb) { return m_out_mreq_cb.set_callback(std::forward<Object>(cb)); } template <class Object> devcb_base &set_out_mreq_callback(Object &&cb) { return m_out_mreq_cb.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_in_iorq_callback(Object &&cb) { return m_in_iorq_cb.set_callback(std::forward<Object>(cb)); } template <class Object> devcb_base &set_in_iorq_callback(Object &&cb) { return m_in_iorq_cb.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_out_iorq_callback(Object &&cb) { return m_out_iorq_cb.set_callback(std::forward<Object>(cb)); } template <class Object> devcb_base &set_out_iorq_callback(Object &&cb) { return m_out_iorq_cb.set_callback(std::forward<Object>(cb)); }
auto out_busreq_callback() { return m_out_busreq_cb.bind(); }
auto out_int_callback() { return m_out_int_cb.bind(); }
auto out_bao_callback() { return m_out_bao_cb.bind(); }
auto in_mreq_callback() { return m_in_mreq_cb.bind(); }
auto out_mreq_callback() { return m_out_mreq_cb.bind(); }
auto in_iorq_callback() { return m_in_iorq_cb.bind(); }
auto out_iorq_callback() { return m_out_iorq_cb.bind(); }
uint8_t read(); uint8_t read();
void write(uint8_t data); void write(uint8_t data);

View File

@ -26,6 +26,7 @@ public:
votrax_sc01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); votrax_sc01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <class Object> devcb_base &set_ar_callback(Object &&cb) { return m_ar_cb.set_callback(std::forward<Object>(cb)); } template <class Object> devcb_base &set_ar_callback(Object &&cb) { return m_ar_cb.set_callback(std::forward<Object>(cb)); }
auto ar_callback() { return m_ar_cb.bind(); }
DECLARE_WRITE8_MEMBER(write); DECLARE_WRITE8_MEMBER(write);
DECLARE_WRITE8_MEMBER(inflection_w); DECLARE_WRITE8_MEMBER(inflection_w);

View File

@ -398,15 +398,15 @@ MACHINE_CONFIG_START(apricot_state::apricot)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
// devices // devices
MCFG_DEVICE_ADD("ic17", I8255A, 0) I8255A(config, m_ppi, 0);
MCFG_I8255_IN_PORTA_CB(READ8("cent_data_in", input_buffer_device, bus_r)) m_ppi->in_pa_callback().set("cent_data_in", FUNC(input_buffer_device::bus_r));
MCFG_I8255_OUT_PORTA_CB(WRITE8("cent_data_out", output_latch_device, bus_w)) m_ppi->out_pa_callback().set("cent_data_out", FUNC(output_latch_device::bus_w));
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, apricot_state, i8255_portb_w)) m_ppi->out_pb_callback().set(FUNC(apricot_state::i8255_portb_w));
MCFG_I8255_IN_PORTC_CB(READ8(*this, apricot_state, i8255_portc_r)) m_ppi->in_pc_callback().set(FUNC(apricot_state::i8255_portc_r));
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, apricot_state, i8255_portc_w)) m_ppi->out_pc_callback().set(FUNC(apricot_state::i8255_portc_w));
MCFG_DEVICE_ADD("ic31", PIC8259, 0) PIC8259(config, m_pic, 0);
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("ic91", 0)) m_pic->out_int_callback().set_inputline(m_cpu, 0);
PIT8253(config, m_pit, 0); PIT8253(config, m_pit, 0);
m_pit->set_clk<0>(4_MHz_XTAL / 16); m_pit->set_clk<0>(4_MHz_XTAL / 16);
@ -422,19 +422,18 @@ MACHINE_CONFIG_START(apricot_state::apricot)
MCFG_TTL153_ZA_CB(WRITELINE("ic15", z80sio_device, rxca_w)) MCFG_TTL153_ZA_CB(WRITELINE("ic15", z80sio_device, rxca_w))
MCFG_TTL153_ZB_CB(WRITELINE("ic15", z80sio_device, txca_w)) MCFG_TTL153_ZB_CB(WRITELINE("ic15", z80sio_device, txca_w))
MCFG_CLOCK_ADD("ic15_rxtxcb", 4_MHz_XTAL / 16) CLOCK(config, "ic15_rxtxcb", 4_MHz_XTAL / 16).signal_handler().set(m_sio, FUNC(z80sio_device::rxtxcb_w));
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE("ic15", z80sio_device, rxtxcb_w))
MCFG_DEVICE_ADD("ic15", Z80SIO, 15_MHz_XTAL / 6) Z80SIO(config, m_sio, 15_MHz_XTAL / 6);
MCFG_Z80SIO_CPU("ic91") m_sio->set_cputag(m_cpu);
MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("rs232", rs232_port_device, write_txd)) m_sio->out_txda_callback().set(m_rs232, FUNC(rs232_port_device::write_txd));
MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE("rs232", rs232_port_device, write_dtr)) m_sio->out_dtra_callback().set(m_rs232, FUNC(rs232_port_device::write_dtr));
MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("rs232", rs232_port_device, write_rts)) m_sio->out_rtsa_callback().set(m_rs232, FUNC(rs232_port_device::write_rts));
MCFG_Z80SIO_OUT_WRDYA_CB(WRITELINE("ic71", i8089_device, drq2_w)) m_sio->out_wrdya_callback().set(m_iop, FUNC(i8089_device::drq2_w));
MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("kbd", apricot_keyboard_bus_device, out_w)) m_sio->out_txdb_callback().set("kbd", FUNC(apricot_keyboard_bus_device::out_w));
MCFG_Z80SIO_OUT_DTRB_CB(WRITELINE("ic14", ttl153_device, s0_w)) m_sio->out_dtrb_callback().set("ic14", FUNC(ttl153_device::s0_w));
MCFG_Z80SIO_OUT_RTSB_CB(WRITELINE("ic14", ttl153_device, s1_w)) m_sio->out_rtsb_callback().set("ic14", FUNC(ttl153_device::s1_w));
MCFG_Z80SIO_OUT_INT_CB(WRITELINE("ic31", pic8259_device, ir5_w)) m_sio->out_int_callback().set(m_pic, FUNC(pic8259_device::ir5_w));
// rs232 port // rs232 port
RS232_PORT(config, m_rs232, default_rs232_devices, nullptr); RS232_PORT(config, m_rs232, default_rs232_devices, nullptr);
@ -445,19 +444,18 @@ MACHINE_CONFIG_START(apricot_state::apricot)
m_rs232->cts_handler().set(m_sio, FUNC(z80sio_device::ctsa_w)).invert(); m_rs232->cts_handler().set(m_sio, FUNC(z80sio_device::ctsa_w)).invert();
// keyboard // keyboard
MCFG_APRICOT_KEYBOARD_INTERFACE_ADD("kbd", "hle") APRICOT_KEYBOARD_INTERFACE(config, "kbd", apricot_keyboard_devices, "hle").in_handler().set(m_sio, FUNC(z80sio_device::rxb_w));
MCFG_APRICOT_KEYBOARD_IN_HANDLER(WRITELINE("ic15", z80sio_device, rxb_w))
// centronics printer // centronics printer
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in") m_centronics->set_data_input_buffer("cent_data_in");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE("ic15", z80sio_device, ctsb_w)) m_centronics->ack_handler().set(m_sio, FUNC(z80sio_device::ctsb_w));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE("ic15", z80sio_device, dcdb_w)) m_centronics->busy_handler().set(m_sio, FUNC(z80sio_device::dcdb_w));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(*this, apricot_state, write_centronics_fault)) m_centronics->fault_handler().set(FUNC(apricot_state::write_centronics_fault));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, apricot_state, write_centronics_perror)) m_centronics->perror_handler().set(FUNC(apricot_state::write_centronics_perror));
//MCFG_CENTRONICS_SELECT_HANDLER() // schematic page 294 says this is connected to pc4, but that is an output to the printer //m_centronics->select_handler().set(); // schematic page 294 says this is connected to pc4, but that is an output to the printer
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0) INPUT_BUFFER(config, "cent_data_in");
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
// floppy // floppy

View File

@ -513,17 +513,16 @@ MACHINE_CONFIG_START(aussiebyte_state::aussiebyte)
/* 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", 0.50);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) VOTRAX_SC01(config, m_votrax, 720000); // 720kHz? needs verify
MCFG_DEVICE_ADD("votrax", VOTRAX_SC01, 720000) /* 720kHz? needs verify */ m_votrax->ar_callback().set(FUNC(aussiebyte_state::votrax_w));
MCFG_VOTRAX_SC01_REQUEST_CB(WRITELINE(*this, aussiebyte_state, votrax_w)) m_votrax->add_route(ALL_OUTPUTS, "mono", 1.00);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
/* devices */ /* devices */
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in") m_centronics->set_data_input_buffer("cent_data_in");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, aussiebyte_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(aussiebyte_state::write_centronics_busy));
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0) INPUT_BUFFER(config, "cent_data_in");
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
clock_device &ctc_clock(CLOCK(config, "ctc_clock", 4.9152_MHz_XTAL / 4)); clock_device &ctc_clock(CLOCK(config, "ctc_clock", 4.9152_MHz_XTAL / 4));
@ -541,14 +540,14 @@ MACHINE_CONFIG_START(aussiebyte_state::aussiebyte)
m_ctc->zc_callback<2>().set(FUNC(aussiebyte_state::ctc_z2_w)); // SIO2 Ch B, CTC Ch 3 m_ctc->zc_callback<2>().set(FUNC(aussiebyte_state::ctc_z2_w)); // SIO2 Ch B, CTC Ch 3
m_ctc->zc_callback<2>().append("sio2", FUNC(z80sio_device::rxtxcb_w)); m_ctc->zc_callback<2>().append("sio2", FUNC(z80sio_device::rxtxcb_w));
MCFG_DEVICE_ADD("dma", Z80DMA, 16_MHz_XTAL / 4) Z80DMA(config, m_dma, 16_MHz_XTAL / 4);
MCFG_Z80DMA_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) m_dma->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
MCFG_Z80DMA_OUT_BUSREQ_CB(WRITELINE(*this, aussiebyte_state, busreq_w)) m_dma->out_busreq_callback().set(FUNC(aussiebyte_state::busreq_w));
// BAO, not used // BAO, not used
MCFG_Z80DMA_IN_MREQ_CB(READ8(*this, aussiebyte_state, memory_read_byte)) m_dma->in_mreq_callback().set(FUNC(aussiebyte_state::memory_read_byte));
MCFG_Z80DMA_OUT_MREQ_CB(WRITE8(*this, aussiebyte_state, memory_write_byte)) m_dma->out_mreq_callback().set(FUNC(aussiebyte_state::memory_write_byte));
MCFG_Z80DMA_IN_IORQ_CB(READ8(*this, aussiebyte_state, io_read_byte)) m_dma->in_iorq_callback().set(FUNC(aussiebyte_state::io_read_byte));
MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(*this, aussiebyte_state, io_write_byte)) m_dma->out_iorq_callback().set(FUNC(aussiebyte_state::io_write_byte));
Z80PIO(config, m_pio1, 16_MHz_XTAL / 4); Z80PIO(config, m_pio1, 16_MHz_XTAL / 4);
m_pio1->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_pio1->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
@ -556,9 +555,9 @@ MACHINE_CONFIG_START(aussiebyte_state::aussiebyte)
m_pio1->in_pb_callback().set("cent_data_in", FUNC(input_buffer_device::bus_r)); m_pio1->in_pb_callback().set("cent_data_in", FUNC(input_buffer_device::bus_r));
m_pio1->out_ardy_callback().set(m_centronics, FUNC(centronics_device::write_strobe)).invert(); m_pio1->out_ardy_callback().set(m_centronics, FUNC(centronics_device::write_strobe)).invert();
MCFG_DEVICE_ADD("pio2", Z80PIO, 16_MHz_XTAL / 4) Z80PIO(config, m_pio2, 16_MHz_XTAL / 4);
MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) m_pio2->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
MCFG_Z80PIO_OUT_PA_CB(WRITE8(*this, aussiebyte_state, port20_w)) m_pio2->out_pa_callback().set(FUNC(aussiebyte_state::port20_w));
MCFG_DEVICE_ADD("sio1", Z80SIO, 16_MHz_XTAL / 4) MCFG_DEVICE_ADD("sio1", Z80SIO, 16_MHz_XTAL / 4)
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))

View File

@ -595,24 +595,24 @@ MACHINE_CONFIG_START(elwro800_state::elwro800)
MCFG_VIDEO_START_OVERRIDE(elwro800_state, spectrum) MCFG_VIDEO_START_OVERRIDE(elwro800_state, spectrum)
MCFG_UPD765A_ADD("upd765", true, true) UPD765A(config, "upd765", true, true);
MCFG_DEVICE_ADD("ppi8255", I8255A, 0) I8255A(config, m_i8255, 0);
MCFG_I8255_IN_PORTA_CB(IOPORT("JOY")) m_i8255->in_pa_callback().set_ioport("JOY");
MCFG_I8255_IN_PORTB_CB(READ8("cent_data_in", input_buffer_device, bus_r)) m_i8255->in_pb_callback().set("cent_data_in", FUNC(input_buffer_device::bus_r));
MCFG_I8255_OUT_PORTB_CB(WRITE8("cent_data_out", output_latch_device, bus_w)) m_i8255->out_pb_callback().set("cent_data_out", FUNC(output_latch_device::bus_w));
MCFG_I8255_IN_PORTC_CB(READ8(*this, elwro800_state, i8255_port_c_r)) m_i8255->in_pc_callback().set(FUNC(elwro800_state::i8255_port_c_r));
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, elwro800_state, i8255_port_c_w)) m_i8255->out_pc_callback().set(FUNC(elwro800_state::i8255_port_c_w));
/* printer */ /* printer */
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in") m_centronics->set_data_input_buffer("cent_data_in");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, elwro800_state, write_centronics_ack)) m_centronics->ack_handler().set(FUNC(elwro800_state::write_centronics_ack));
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0) INPUT_BUFFER(config, "cent_data_in");
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
MCFG_DEVICE_ADD("i8251", I8251, 0) I8251(config, m_i8251, 0);
/* sound hardware */ /* sound hardware */
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();

View File

@ -638,38 +638,37 @@ MACHINE_CONFIG_START(kdt6_state::psi98)
// sound hardware // sound hardware
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD("beeper", BEEP, 1000) // frequency unknown BEEP(config, m_beeper, 1000); // frequency unknown
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) m_beeper->add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_TIMER_DRIVER_ADD("beep_timer", kdt6_state, beeper_off) MCFG_TIMER_DRIVER_ADD("beep_timer", kdt6_state, beeper_off)
MCFG_DEVICE_ADD("dma", Z80DMA, XTAL(16'000'000) / 4) Z80DMA(config, m_dma, 16_MHz_XTAL / 4);
MCFG_Z80DMA_OUT_BUSREQ_CB(WRITELINE(*this, kdt6_state, busreq_w)) m_dma->out_busreq_callback().set(FUNC(kdt6_state::busreq_w));
MCFG_Z80DMA_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) m_dma->out_int_callback().set_inputline(m_cpu, INPUT_LINE_IRQ0);
MCFG_Z80DMA_IN_MREQ_CB(READ8(*this, kdt6_state, memory_r)) m_dma->in_mreq_callback().set(FUNC(kdt6_state::memory_r));
MCFG_Z80DMA_OUT_MREQ_CB(WRITE8(*this, kdt6_state, memory_w)) m_dma->out_mreq_callback().set(FUNC(kdt6_state::memory_w));
MCFG_Z80DMA_IN_IORQ_CB(READ8(*this, kdt6_state, io_r)) m_dma->in_iorq_callback().set(FUNC(kdt6_state::io_r));
MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(*this, kdt6_state, io_w)) m_dma->out_iorq_callback().set(FUNC(kdt6_state::io_w));
// jumper J3 allows selection of 16MHz / 8 instead // jumper J3 allows selection of 16MHz / 8 instead
clock_device &uart_clk(CLOCK(config, "uart_clk", XTAL(9'830'400) / 8)); clock_device &uart_clk(CLOCK(config, "uart_clk", XTAL(9'830'400) / 8));
uart_clk.signal_handler().set("ctc1", FUNC(z80ctc_device::trg1)); uart_clk.signal_handler().set("ctc1", FUNC(z80ctc_device::trg1));
uart_clk.signal_handler().append("ctc1", FUNC(z80ctc_device::trg2)); uart_clk.signal_handler().append("ctc1", FUNC(z80ctc_device::trg2));
z80ctc_device &ctc1(Z80CTC(config, "ctc1", XTAL(16'000'000) / 4)); z80ctc_device &ctc1(Z80CTC(config, "ctc1", 16_MHz_XTAL / 4));
ctc1.intr_callback().set_inputline(m_cpu, INPUT_LINE_IRQ0); ctc1.intr_callback().set_inputline(m_cpu, INPUT_LINE_IRQ0);
ctc1.zc_callback<1>().set(m_sio, FUNC(z80sio_device::rxtxcb_w)); ctc1.zc_callback<1>().set(m_sio, FUNC(z80sio_device::rxtxcb_w));
ctc1.zc_callback<2>().set(m_sio, FUNC(z80sio_device::rxca_w)); ctc1.zc_callback<2>().set(m_sio, FUNC(z80sio_device::rxca_w));
ctc1.zc_callback<2>().append(m_sio, FUNC(z80sio_device::txca_w)); ctc1.zc_callback<2>().append(m_sio, FUNC(z80sio_device::txca_w));
z80ctc_device &ctc2(Z80CTC(config, "ctc2", XTAL(16'000'000) / 4)); z80ctc_device &ctc2(Z80CTC(config, "ctc2", 16_MHz_XTAL / 4));
ctc2.intr_callback().set_inputline(m_cpu, INPUT_LINE_IRQ0); ctc2.intr_callback().set_inputline(m_cpu, INPUT_LINE_IRQ0);
ctc2.zc_callback<0>().set("speaker", FUNC(speaker_sound_device::level_w)); ctc2.zc_callback<0>().set("speaker", FUNC(speaker_sound_device::level_w));
ctc2.zc_callback<2>().set("ctc2", FUNC(z80ctc_device::trg3)); ctc2.zc_callback<2>().set("ctc2", FUNC(z80ctc_device::trg3));
Z80SIO(config, m_sio, XTAL(16'000'000) / 4); Z80SIO(config, m_sio, 16_MHz_XTAL / 4);
m_sio->out_int_callback().set_inputline(m_cpu, INPUT_LINE_IRQ0); m_sio->out_int_callback().set_inputline(m_cpu, INPUT_LINE_IRQ0);
m_sio->out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd)); m_sio->out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd));
m_sio->out_dtra_callback().set("rs232a", FUNC(rs232_port_device::write_dtr)); m_sio->out_dtra_callback().set("rs232a", FUNC(rs232_port_device::write_dtr));
@ -690,20 +689,20 @@ MACHINE_CONFIG_START(kdt6_state::psi98)
m_rs232b->dsr_handler().set(m_sio, FUNC(z80sio_device::syncb_w)); m_rs232b->dsr_handler().set(m_sio, FUNC(z80sio_device::syncb_w));
m_rs232b->cts_handler().set(m_sio, FUNC(z80sio_device::ctsb_w)).invert(); m_rs232b->cts_handler().set(m_sio, FUNC(z80sio_device::ctsb_w)).invert();
MCFG_DEVICE_ADD("pio", Z80PIO, XTAL(16'000'000) / 4) z80pio_device &pio(Z80PIO(config, "pio", 16_MHz_XTAL / 4));
MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) pio.out_int_callback().set_inputline(m_cpu, INPUT_LINE_IRQ0);
MCFG_Z80PIO_OUT_PA_CB(WRITE8(*this, kdt6_state, pio_porta_w)) pio.out_pa_callback().set(FUNC(kdt6_state::pio_porta_w));
MCFG_Z80PIO_IN_PB_CB(READ8("cent_data_in", input_buffer_device, bus_r)) pio.in_pb_callback().set("cent_data_in", FUNC(input_buffer_device::bus_r));
MCFG_Z80PIO_OUT_PB_CB(WRITE8("cent_data_out", 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_DATA_INPUT_BUFFER("cent_data_in") m_centronics->set_data_input_buffer("cent_data_in");
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE("pio", z80pio_device, pa2_w)) m_centronics->fault_handler().set("pio", FUNC(z80pio_device::pa2_w));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE("pio", z80pio_device, pa3_w)) m_centronics->perror_handler().set("pio", FUNC(z80pio_device::pa3_w));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE("pio", z80pio_device, pa4_w)) m_centronics->busy_handler().set("pio", FUNC(z80pio_device::pa4_w));
MCFG_CENTRONICS_SELECT_HANDLER(WRITELINE("pio", z80pio_device, pa5_w)) m_centronics->select_handler().set("pio", FUNC(z80pio_device::pa5_w));
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0) INPUT_BUFFER(config, "cent_data_in");
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
MCFG_UPD1990A_ADD("rtc", XTAL(32'768), NOOP, NOOP) MCFG_UPD1990A_ADD("rtc", XTAL(32'768), NOOP, NOOP)

View File

@ -1,5 +1,5 @@
// license:BSD-3-Clause // license:BSD-3-Clause
// copyright-holders: TODO // copyright-holders:
/*********************************************************************************************************************************** /***********************************************************************************************************************************
2017-11-20 Skeleton 2017-11-20 Skeleton

View File

@ -298,37 +298,37 @@ MACHINE_CONFIG_START(osborne1_state::osborne1)
MCFG_PALETTE_ADD_MONOCHROME_HIGHLIGHT("palette") MCFG_PALETTE_ADD_MONOCHROME_HIGHLIGHT("palette")
SPEAKER(config, "mono").front_center(); SPEAKER(config, "mono").front_center();
MCFG_DEVICE_ADD(m_speaker, SPEAKER_SOUND) SPEAKER_SOUND(config, m_speaker);
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) m_speaker->add_route(ALL_OUTPUTS, "mono", 1.00);
MCFG_DEVICE_ADD(m_pia0, PIA6821, 0) PIA6821(config, m_pia0);
MCFG_PIA_READPA_HANDLER(READ8(m_ieee, ieee488_device, dio_r)) m_pia0->readpa_handler().set(m_ieee, FUNC(ieee488_device::dio_r));
MCFG_PIA_READPB_HANDLER(READ8(*this, osborne1_state, ieee_pia_pb_r)) m_pia0->readpb_handler().set(FUNC(osborne1_state::ieee_pia_pb_r));
MCFG_PIA_WRITEPA_HANDLER(WRITE8(m_ieee, ieee488_device, host_dio_w)) m_pia0->writepa_handler().set(m_ieee, FUNC(ieee488_device::host_dio_w));
MCFG_PIA_WRITEPB_HANDLER(WRITE8(*this, osborne1_state, ieee_pia_pb_w)) m_pia0->writepb_handler().set(FUNC(osborne1_state::ieee_pia_pb_w));
MCFG_PIA_CA2_HANDLER(WRITELINE(m_ieee, ieee488_device, host_ifc_w)) m_pia0->ca2_handler().set(m_ieee, FUNC(ieee488_device::host_ifc_w));
MCFG_PIA_CB2_HANDLER(WRITELINE(m_ieee, ieee488_device, host_ren_w)) m_pia0->cb2_handler().set(m_ieee, FUNC(ieee488_device::host_ren_w));
MCFG_PIA_IRQA_HANDLER(WRITELINE(*this, osborne1_state, ieee_pia_irq_a_func)) m_pia0->irqa_handler().set(FUNC(osborne1_state::ieee_pia_irq_a_func));
MCFG_IEEE488_BUS_ADD() MCFG_IEEE488_BUS_ADD()
MCFG_IEEE488_SRQ_CALLBACK(WRITELINE(m_pia0, pia6821_device, ca2_w)) MCFG_IEEE488_SRQ_CALLBACK(WRITELINE(m_pia0, pia6821_device, ca2_w))
MCFG_DEVICE_ADD(m_pia1, PIA6821, 0) PIA6821(config, m_pia1);
MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, osborne1_state, video_pia_port_a_w)) m_pia1->writepa_handler().set(FUNC(osborne1_state::video_pia_port_a_w));
MCFG_PIA_WRITEPB_HANDLER(WRITE8(*this, osborne1_state, video_pia_port_b_w)) m_pia1->writepb_handler().set(FUNC(osborne1_state::video_pia_port_b_w));
MCFG_PIA_CB2_HANDLER(WRITELINE(*this, osborne1_state, video_pia_out_cb2_dummy)) m_pia1->cb2_handler().set(FUNC(osborne1_state::video_pia_out_cb2_dummy));
MCFG_PIA_IRQA_HANDLER(WRITELINE(*this, osborne1_state, video_pia_irq_a_func)) m_pia1->irqa_handler().set(FUNC(osborne1_state::video_pia_irq_a_func));
MCFG_DEVICE_ADD(m_acia, ACIA6850, 0) ACIA6850(config, m_acia);
MCFG_ACIA6850_TXD_HANDLER(WRITELINE("rs232", rs232_port_device, write_txd)) m_acia->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd));
MCFG_ACIA6850_RTS_HANDLER(WRITELINE("rs232", rs232_port_device, write_rts)) m_acia->rts_handler().set("rs232", FUNC(rs232_port_device::write_rts));
MCFG_ACIA6850_IRQ_HANDLER(WRITELINE(*this, osborne1_state, serial_acia_irq_func)) m_acia->irq_handler().set(FUNC(osborne1_state::serial_acia_irq_func));
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr) rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr));
MCFG_RS232_RXD_HANDLER(WRITELINE(m_acia, acia6850_device, write_rxd)) rs232.rxd_handler().set(m_acia, FUNC(acia6850_device::write_rxd));
MCFG_RS232_DCD_HANDLER(WRITELINE(m_acia, acia6850_device, write_dcd)) rs232.dcd_handler().set(m_acia, FUNC(acia6850_device::write_dcd));
MCFG_RS232_CTS_HANDLER(WRITELINE(m_acia, acia6850_device, write_cts)) rs232.cts_handler().set(m_acia, FUNC(acia6850_device::write_cts));
MCFG_RS232_RI_HANDLER(WRITELINE(m_pia1, pia6821_device, ca2_w)) rs232.ri_handler().set(m_pia1, FUNC(pia6821_device::ca2_w));
MCFG_DEVICE_ADD(m_fdc, MB8877, MAIN_CLOCK/16) MCFG_DEVICE_ADD(m_fdc, MB8877, MAIN_CLOCK/16)
MCFG_WD_FDC_FORCE_READY MCFG_WD_FDC_FORCE_READY

View File

@ -1485,6 +1485,7 @@ INPUT_PORTS_END
MACHINE_CONFIG_START(thomson_state::to9) MACHINE_CONFIG_START(thomson_state::to9)
to7(config); to7(config);
MCFG_MACHINE_START_OVERRIDE( thomson_state, to9 ) MCFG_MACHINE_START_OVERRIDE( thomson_state, to9 )
MCFG_MACHINE_RESET_OVERRIDE( thomson_state, to9 ) MCFG_MACHINE_RESET_OVERRIDE( thomson_state, to9 )
@ -1502,8 +1503,8 @@ MACHINE_CONFIG_START(thomson_state::to9)
MCFG_DEVICE_MODIFY("mc6846") MCFG_DEVICE_MODIFY("mc6846")
MCFG_MC6846_OUT_PORT_CB(WRITE8(*this, thomson_state, to9_timer_port_out)) MCFG_MC6846_OUT_PORT_CB(WRITE8(*this, thomson_state, to9_timer_port_out))
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, thomson_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(thomson_state::write_centronics_busy));
/* internal ram */ /* internal ram */
MCFG_RAM_MODIFY(RAM_TAG) MCFG_RAM_MODIFY(RAM_TAG)
@ -1723,8 +1724,8 @@ MACHINE_CONFIG_START(thomson_state::to8)
MCFG_PIA_CB2_HANDLER(NOOP) MCFG_PIA_CB2_HANDLER(NOOP)
MCFG_PIA_IRQA_HANDLER(NOOP) MCFG_PIA_IRQA_HANDLER(NOOP)
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, thomson_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(thomson_state::write_centronics_busy));
MCFG_DEVICE_MODIFY("mc6846") MCFG_DEVICE_MODIFY("mc6846")
MCFG_MC6846_OUT_PORT_CB(WRITE8(*this, thomson_state, to8_timer_port_out)) MCFG_MC6846_OUT_PORT_CB(WRITE8(*this, thomson_state, to8_timer_port_out))
@ -1890,8 +1891,8 @@ MACHINE_CONFIG_START(thomson_state::to9p)
MCFG_PIA_IRQA_HANDLER(NOOP) MCFG_PIA_IRQA_HANDLER(NOOP)
MCFG_PIA_IRQB_HANDLER(WRITELINE("mainfirq", input_merger_device, in_w<1>)) MCFG_PIA_IRQB_HANDLER(WRITELINE("mainfirq", input_merger_device, in_w<1>))
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, thomson_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(thomson_state::write_centronics_busy));
MCFG_DEVICE_MODIFY("mc6846") MCFG_DEVICE_MODIFY("mc6846")
MCFG_MC6846_OUT_PORT_CB(WRITE8(*this, thomson_state, to9p_timer_port_out)) MCFG_MC6846_OUT_PORT_CB(WRITE8(*this, thomson_state, to9p_timer_port_out))
@ -2249,8 +2250,8 @@ MACHINE_CONFIG_START(thomson_state::mo6)
MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, thomson_state, mo6_game_porta_out)) MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, thomson_state, mo6_game_porta_out))
MCFG_PIA_CB2_HANDLER(WRITELINE(*this, thomson_state, mo6_game_cb2_out)) MCFG_PIA_CB2_HANDLER(WRITELINE(*this, thomson_state, mo6_game_cb2_out))
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, 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") MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
@ -2518,11 +2519,11 @@ MACHINE_CONFIG_START(thomson_state::mo5nr)
MCFG_DEVICE_MODIFY(THOM_PIA_GAME) MCFG_DEVICE_MODIFY(THOM_PIA_GAME)
MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, thomson_state, mo6_game_porta_out)) MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, thomson_state, mo6_game_porta_out))
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in") m_centronics->set_data_input_buffer("cent_data_in");
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, thomson_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(thomson_state::write_centronics_busy));
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0) INPUT_BUFFER(config, "cent_data_in");
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
MCFG_DEVICE_REMOVE("cartslot") MCFG_DEVICE_REMOVE("cartslot")

View File

@ -758,13 +758,13 @@ MACHINE_CONFIG_START(tiki100_state::tiki100)
MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr) MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, rxb_w)) MCFG_RS232_RXD_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, rxb_w))
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") CENTRONICS(config, m_centronics, centronics_devices, "printer");
MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in") m_centronics->set_data_input_buffer("cent_data_in");
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, tiki100_state, write_centronics_ack)) m_centronics->ack_handler().set(FUNC(tiki100_state::write_centronics_ack));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, tiki100_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(tiki100_state::write_centronics_busy));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, tiki100_state, write_centronics_perror)) m_centronics->perror_handler().set(FUNC(tiki100_state::write_centronics_perror));
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0) INPUT_BUFFER(config, "cent_data_in");
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
MCFG_CASSETTE_ADD(CASSETTE_TAG) MCFG_CASSETTE_ADD(CASSETTE_TAG)

View File

@ -1332,14 +1332,14 @@ MACHINE_CONFIG_START(wangpc_state::wangpc)
MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", wangpc_floppies, "525dd", wangpc_state::floppy_formats) MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", wangpc_floppies, "525dd", wangpc_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", wangpc_floppies, "525dd", wangpc_state::floppy_formats) MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", wangpc_floppies, "525dd", wangpc_state::floppy_formats)
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer");
MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in") m_centronics->set_data_input_buffer(m_cent_data_in);
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, wangpc_state, write_centronics_ack)) m_centronics->ack_handler().set(FUNC(wangpc_state::write_centronics_ack));
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, wangpc_state, write_centronics_busy)) m_centronics->busy_handler().set(FUNC(wangpc_state::write_centronics_busy));
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(*this, wangpc_state, write_centronics_fault)) m_centronics->fault_handler().set(FUNC(wangpc_state::write_centronics_fault));
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, wangpc_state, write_centronics_perror)) m_centronics->perror_handler().set(FUNC(wangpc_state::write_centronics_perror));
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0) INPUT_BUFFER(config, m_cent_data_in);
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr) MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr)

View File

@ -1299,35 +1299,31 @@ DISPCTL EQU $FD92 ; set to $D by INITMIKEY
void lynx_state::lynx_draw_line() void lynx_state::lynx_draw_line()
{ {
const pen_t *pen = m_palette->pens(); pen_t const *const pen = m_palette->pens();
int x, y;
uint16_t j; // clipping needed! uint16_t j; // clipping needed!
uint8_t byte;
uint16_t *line;
// calculate y: first three lines are vblank, // calculate y: first three lines are vblank,
y = 101-m_timer[2].counter; int const y = 101-m_timer[2].counter;
// Documentation states lower two bits of buffer address are ignored (thus 0xfffc mask) // Documentation states lower two bits of buffer address are ignored (thus 0xfffc mask)
j = (m_mikey.disp_addr & 0xfffc) + y * 160 / 2; j = (m_mikey.disp_addr & 0xfffc) + y * 160 / 2;
if (m_mikey.data[0x92] & 0x02) if (m_mikey.data[0x92] & 0x02)
{ {
j -= 160 * 102 / 2 - 1; j -= 160 * 102 / 2 - 1;
line = &m_bitmap_temp.pix32(102 - 1 - y); uint32_t *const line = &m_bitmap_temp.pix32(102 - 1 - y);
for (x = 160 - 2; x >= 0; j++, x -= 2) for (int x = 160 - 2; x >= 0; j++, x -= 2)
{ {
byte = lynx_read_ram(j); uint8_t const byte = lynx_read_ram(j);
line[x + 1] = pen[(byte >> 4) & 0x0f]; line[x + 1] = pen[(byte >> 4) & 0x0f];
line[x + 0] = pen[(byte >> 0) & 0x0f]; line[x + 0] = pen[(byte >> 0) & 0x0f];
} }
} }
else else
{ {
line = &m_bitmap_temp.pix32(y); uint32_t *const line = &m_bitmap_temp.pix32(y);
for (x = 0; x < 160; j++, x += 2) for (int x = 0; x < 160; j++, x += 2)
{ {
byte = lynx_read_ram(j); uint8_t const byte = lynx_read_ram(j);
line[x + 0] = pen[(byte >> 4) & 0x0f]; line[x + 0] = pen[(byte >> 4) & 0x0f];
line[x + 1] = pen[(byte >> 0) & 0x0f]; line[x + 1] = pen[(byte >> 0) & 0x0f];
} }