-mb87078,mb8795,mb89363b,mc14411: De-MCFG, nw

This commit is contained in:
mooglyguy 2018-09-07 21:37:48 +02:00
parent b726779643
commit bb0e5c9b7c
13 changed files with 129 additions and 243 deletions

View File

@ -148,7 +148,8 @@ namespace
IMPLEMENTATION
***************************************************************************/
MACHINE_CONFIG_START(coco_t4426_device::device_add_mconfig)
void coco_t4426_device::device_add_mconfig(machine_config &config)
{
PIA6821(config, m_pia, 0);
m_pia->writepa_handler().set(FUNC(coco_t4426_device::pia_A_w));
@ -156,22 +157,22 @@ MACHINE_CONFIG_START(coco_t4426_device::device_add_mconfig)
m_uart->txd_handler().set(SERIAL_TAG, FUNC(rs232_port_device::write_txd));
m_uart->rts_handler().set(SERIAL_TAG, FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD(SERIAL_TAG, RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE(UART_TAG, acia6850_device, write_rxd))
MCFG_RS232_CTS_HANDLER(WRITELINE(UART_TAG, acia6850_device, write_cts))
rs232_port_device &rs232(RS232_PORT(config, SERIAL_TAG, default_rs232_devices, nullptr));
rs232.rxd_handler().set(UART_TAG, FUNC(acia6850_device::write_rxd));
rs232.cts_handler().set(UART_TAG, FUNC(acia6850_device::write_cts));
/* Bit Rate Generator */
MCFG_DEVICE_ADD(BRG_TAG, MC14411, 1.8432_MHz_XTAL)
MCFG_MC14411_F1_CB(WRITELINE(*this, coco_t4426_device, write_f1_clock))
MCFG_MC14411_F3_CB(WRITELINE(*this, coco_t4426_device, write_f3_clock))
MCFG_MC14411_F5_CB(WRITELINE(*this, coco_t4426_device, write_f5_clock))
MCFG_MC14411_F7_CB(WRITELINE(*this, coco_t4426_device, write_f7_clock))
MCFG_MC14411_F8_CB(WRITELINE(*this, coco_t4426_device, write_f8_clock))
MCFG_MC14411_F9_CB(WRITELINE(*this, coco_t4426_device, write_f9_clock))
MCFG_MC14411_F11_CB(WRITELINE(*this, coco_t4426_device, write_f11_clock))
MCFG_MC14411_F13_CB(WRITELINE(*this, coco_t4426_device, write_f13_clock))
MCFG_MC14411_F15_CB(WRITELINE(*this, coco_t4426_device, write_f15_clock))
MACHINE_CONFIG_END
MC14411(config, m_brg, 1.8432_MHz_XTAL);
m_brg->out_f<1>().set(FUNC(coco_t4426_device::write_f1_clock));
m_brg->out_f<3>().set(FUNC(coco_t4426_device::write_f3_clock));
m_brg->out_f<5>().set(FUNC(coco_t4426_device::write_f5_clock));
m_brg->out_f<7>().set(FUNC(coco_t4426_device::write_f7_clock));
m_brg->out_f<8>().set(FUNC(coco_t4426_device::write_f8_clock));
m_brg->out_f<9>().set(FUNC(coco_t4426_device::write_f9_clock));
m_brg->out_f<11>().set(FUNC(coco_t4426_device::write_f11_clock));
m_brg->out_f<13>().set(FUNC(coco_t4426_device::write_f13_clock));
m_brg->out_f<15>().set(FUNC(coco_t4426_device::write_f15_clock));
}
ROM_START( coco_t4426 )
// Part of this region is filled by set_bank

View File

@ -12,24 +12,12 @@
#pragma once
/***************************************************************************
DEVICE CONFIGURATION MACROS
***************************************************************************/
#define MCFG_MB87078_GAIN_CHANGED_CB(_devcb) \
downcast<mb87078_device &>(*device).set_gain_changed_callback(DEVCB_##_devcb);
/***************************************************************************
TYPE DEFINITIONS
***************************************************************************/
class mb87078_device : public device_t
{
public:
mb87078_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
mb87078_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
template <class Object> devcb_base &set_gain_changed_callback(Object &&cb) { return m_gain_changed_cb.set_callback(std::forward<Object>(cb)); }
auto gain_changed() { return m_gain_changed_cb.bind(); }
void data_w(int data, int dsel);
void reset_comp_w(int level);

View File

@ -3,33 +3,16 @@
#ifndef MAME_MACHINE_MB8795_H
#define MAME_MACHINE_MB8795_H
#define MCFG_MB8795_ADD(_tag, _tx_irq, _rx_irq, _tx_drq, _rx_drq) \
MCFG_DEVICE_ADD(_tag, MB8795, 0) \
downcast<mb8795_device *>(device)->set_irq_cb(_tx_irq, _rx_irq); \
downcast<mb8795_device *>(device)->set_drq_cb(_tx_drq, _rx_drq);
#define MCFG_MB8795_TX_IRQ_CALLBACK(_write) \
downcast<mb8795_device &>(*device).set_tx_irq_wr_callback(DEVCB_##_write);
#define MCFG_MB8795_RX_IRQ_CALLBACK(_write) \
downcast<mb8795_device &>(*device).set_rx_irq_wr_callback(DEVCB_##_write);
#define MCFG_MB8795_TX_DRQ_CALLBACK(_write) \
downcast<mb8795_device &>(*device).set_tx_drq_wr_callback(DEVCB_##_write);
#define MCFG_MB8795_RX_DRQ_CALLBACK(_write) \
downcast<mb8795_device &>(*device).set_rx_drq_wr_callback(DEVCB_##_write);
class mb8795_device : public device_t,
public device_network_interface
{
public:
mb8795_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <class Object> devcb_base &set_tx_irq_wr_callback(Object &&cb) { return irq_tx_cb.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_rx_irq_wr_callback(Object &&cb) { return irq_rx_cb.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_tx_drq_wr_callback(Object &&cb) { return drq_tx_cb.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_rx_drq_wr_callback(Object &&cb) { return drq_rx_cb.set_callback(std::forward<Object>(cb)); }
auto tx_irq() { return irq_tx_cb.bind(); }
auto rx_irq() { return irq_rx_cb.bind(); }
auto tx_drq() { return drq_tx_cb.bind(); }
auto rx_drq() { return drq_rx_cb.bind(); }
void tx_dma_w(uint8_t data, bool eof);
void rx_dma_r(uint8_t &data, bool &eof);

View File

@ -12,78 +12,33 @@
#pragma once
#include "machine/i8255.h"
DECLARE_DEVICE_TYPE(MB89363B, mb89363b_device)
#define MCFG_MB89363B_ADD(_tag) \
MCFG_DEVICE_ADD(_tag, MB89363B, 0)
#define MCFG_MB89363B_IN_PORTA_CB(_devcb) \
downcast<mb89363b_device &>(*device).set_in_a_pa_callback(DEVCB_##_devcb);
#define MCFG_MB89363B_IN_PORTB_CB(_devcb) \
downcast<mb89363b_device &>(*device).set_in_a_pb_callback(DEVCB_##_devcb);
#define MCFG_MB89363B_IN_PORTC_CB(_devcb) \
downcast<mb89363b_device &>(*device).set_in_a_pc_callback(DEVCB_##_devcb);
#define MCFG_MB89363B_OUT_PORTA_CB(_devcb) \
downcast<mb89363b_device &>(*device).set_out_a_pa_callback(DEVCB_##_devcb);
#define MCFG_MB89363B_OUT_PORTB_CB(_devcb) \
downcast<mb89363b_device &>(*device).set_out_a_pb_callback(DEVCB_##_devcb);
#define MCFG_MB89363B_OUT_PORTC_CB(_devcb) \
downcast<mb89363b_device &>(*device).set_out_a_pc_callback(DEVCB_##_devcb);
#define MCFG_MB89363B_IN_PORTD_CB(_devcb) \
downcast<mb89363b_device &>(*device).set_in_b_pa_callback(DEVCB_##_devcb);
#define MCFG_MB89363B_IN_PORTE_CB(_devcb) \
downcast<mb89363b_device &>(*device).set_in_b_pb_callback(DEVCB_##_devcb);
#define MCFG_MB89363B_IN_PORTF_CB(_devcb) \
downcast<mb89363b_device &>(*device).set_in_b_pc_callback(DEVCB_##_devcb);
#define MCFG_MB89363B_OUT_PORTD_CB(_devcb) \
downcast<mb89363b_device &>(*device).set_out_b_pa_callback(DEVCB_##_devcb);
#define MCFG_MB89363B_OUT_PORTE_CB(_devcb) \
downcast<mb89363b_device &>(*device).set_out_b_pb_callback(DEVCB_##_devcb);
#define MCFG_MB89363B_OUT_PORTF_CB(_devcb) \
downcast<mb89363b_device &>(*device).set_out_b_pc_callback(DEVCB_##_devcb);
class mb89363b_device : public device_t
{
public:
// construction/destruction
mb89363b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
mb89363b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
DECLARE_READ8_MEMBER(read);
DECLARE_WRITE8_MEMBER(write);
template <class Object> devcb_base &set_in_a_pa_callback(Object &&cb) { return m_in_a_pa_cb.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_in_a_pb_callback(Object &&cb) { return m_in_a_pb_cb.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_in_a_pc_callback(Object &&cb) { return m_in_a_pc_cb.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_out_a_pa_callback(Object &&cb) { return m_out_a_pa_cb.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_out_a_pb_callback(Object &&cb) { return m_out_a_pb_cb.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_out_a_pc_callback(Object &&cb) { return m_out_a_pc_cb.set_callback(std::forward<Object>(cb)); }
auto in_pa() { return m_in_a_pa_cb.bind(); }
auto in_pb() { return m_in_a_pb_cb.bind(); }
auto in_pc() { return m_in_a_pc_cb.bind(); }
auto out_pa() { return m_out_a_pa_cb.bind(); }
auto out_pb() { return m_out_a_pb_cb.bind(); }
auto out_pc() { return m_out_a_pc_cb.bind(); }
template <class Object> devcb_base &set_in_b_pa_callback(Object &&cb) { return m_in_b_pa_cb.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_in_b_pb_callback(Object &&cb) { return m_in_b_pb_cb.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_in_b_pc_callback(Object &&cb) { return m_in_b_pc_cb.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_out_b_pa_callback(Object &&cb) { return m_out_b_pa_cb.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_out_b_pb_callback(Object &&cb) { return m_out_b_pb_cb.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_out_b_pc_callback(Object &&cb) { return m_out_b_pc_cb.set_callback(std::forward<Object>(cb)); }
auto in_pd() { return m_in_b_pa_cb.bind(); }
auto in_pe() { return m_in_b_pb_cb.bind(); }
auto in_pf() { return m_in_b_pc_cb.bind(); }
auto out_pd() { return m_out_b_pa_cb.bind(); }
auto out_pe() { return m_out_b_pb_cb.bind(); }
auto out_pf() { return m_out_b_pc_cb.bind(); }
protected:
virtual void device_add_mconfig(machine_config &config) override;

View File

@ -26,31 +26,6 @@
#pragma once
//**************************************************************************
// DEVICE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_MC14411_F1_CB(_devcb) downcast<mc14411_device &>(*device).set_out_fx_cb( 0, DEVCB_##_devcb);
#define MCFG_MC14411_F2_CB(_devcb) downcast<mc14411_device &>(*device).set_out_fx_cb( 1, DEVCB_##_devcb);
#define MCFG_MC14411_F3_CB(_devcb) downcast<mc14411_device &>(*device).set_out_fx_cb( 2, DEVCB_##_devcb);
#define MCFG_MC14411_F4_CB(_devcb) downcast<mc14411_device &>(*device).set_out_fx_cb( 3, DEVCB_##_devcb);
#define MCFG_MC14411_F5_CB(_devcb) downcast<mc14411_device &>(*device).set_out_fx_cb( 4, DEVCB_##_devcb);
#define MCFG_MC14411_F6_CB(_devcb) downcast<mc14411_device &>(*device).set_out_fx_cb( 5, DEVCB_##_devcb);
#define MCFG_MC14411_F7_CB(_devcb) downcast<mc14411_device &>(*device).set_out_fx_cb( 6, DEVCB_##_devcb);
#define MCFG_MC14411_F8_CB(_devcb) downcast<mc14411_device &>(*device).set_out_fx_cb( 7, DEVCB_##_devcb);
#define MCFG_MC14411_F9_CB(_devcb) downcast<mc14411_device &>(*device).set_out_fx_cb( 8, DEVCB_##_devcb);
#define MCFG_MC14411_F10_CB(_devcb) downcast<mc14411_device &>(*device).set_out_fx_cb( 9, DEVCB_##_devcb);
#define MCFG_MC14411_F11_CB(_devcb) downcast<mc14411_device &>(*device).set_out_fx_cb(10, DEVCB_##_devcb);
#define MCFG_MC14411_F12_CB(_devcb) downcast<mc14411_device &>(*device).set_out_fx_cb(11, DEVCB_##_devcb);
#define MCFG_MC14411_F13_CB(_devcb) downcast<mc14411_device &>(*device).set_out_fx_cb(12, DEVCB_##_devcb);
#define MCFG_MC14411_F14_CB(_devcb) downcast<mc14411_device &>(*device).set_out_fx_cb(13, DEVCB_##_devcb);
#define MCFG_MC14411_F15_CB(_devcb) downcast<mc14411_device &>(*device).set_out_fx_cb(14, DEVCB_##_devcb);
#define MCFG_MC14411_F16_CB(_devcb) downcast<mc14411_device &>(*device).set_out_fx_cb(15, DEVCB_##_devcb);
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
class mc14411_device : public device_t
{
public:
@ -86,23 +61,7 @@ public:
// construction/destruction
mc14411_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
template <class Object> devcb_base &set_out_fx_cb(int index, Object &&cb) { return m_out_fx_cbs[index].set_callback(std::forward<Object>(cb)); }
auto out_f1_cb() { return m_out_fx_cbs[0].bind(); }
auto out_f2_cb() { return m_out_fx_cbs[1].bind(); }
auto out_f3_cb() { return m_out_fx_cbs[2].bind(); }
auto out_f4_cb() { return m_out_fx_cbs[3].bind(); }
auto out_f5_cb() { return m_out_fx_cbs[4].bind(); }
auto out_f6_cb() { return m_out_fx_cbs[5].bind(); }
auto out_f7_cb() { return m_out_fx_cbs[6].bind(); }
auto out_f8_cb() { return m_out_fx_cbs[7].bind(); }
auto out_f9_cb() { return m_out_fx_cbs[8].bind(); }
auto out_f10_cb() { return m_out_fx_cbs[9].bind(); }
auto out_f11_cb() { return m_out_fx_cbs[10].bind(); }
auto out_f12_cb() { return m_out_fx_cbs[11].bind(); }
auto out_f13_cb() { return m_out_fx_cbs[12].bind(); }
auto out_f14_cb() { return m_out_fx_cbs[13].bind(); }
auto out_f15_cb() { return m_out_fx_cbs[14].bind(); }
auto out_f16_cb() { return m_out_fx_cbs[15].bind(); }
template <std::size_t Line> auto out_f() { return m_out_fx_cbs[Line-1].bind(); }
DECLARE_WRITE_LINE_MEMBER(reset_w);
DECLARE_WRITE8_MEMBER(rate_select_w);
@ -141,7 +100,6 @@ private:
bool m_timer_enabled[16];
};
// device type definition
DECLARE_DEVICE_TYPE(MC14411, mc14411_device)
#endif // MAME_MACHINE_MC14411_H

View File

@ -210,8 +210,8 @@ MACHINE_CONFIG_START(taito_en_device::device_add_mconfig)
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(*this, taito_en_device, duart_irq_handler))
MCFG_MC68681_OUTPORT_CALLBACK(WRITE8(*this, taito_en_device, duart_output))
MCFG_DEVICE_ADD("mb87078", MB87078, 0)
MCFG_MB87078_GAIN_CHANGED_CB(WRITE8(*this, taito_en_device, mb87078_gain_changed))
MB87078(config, m_mb87078);
m_mb87078->gain_changed().set(FUNC(taito_en_device::mb87078_gain_changed));
MCFG_DEVICE_ADD("dpram", MB8421, 0) // host accesses this from the other side

View File

@ -575,19 +575,19 @@ MACHINE_CONFIG_START(force68k_state::fccpu1)
ACIA6850(config, m_aciaremt, 0);
/* Bit Rate Generator */
MCFG_DEVICE_ADD("brg", MC14411, XTAL(1'843'200))
MCFG_MC14411_F1_CB(WRITELINE (*this, force68k_state, write_f1_clock))
MCFG_MC14411_F3_CB(WRITELINE (*this, force68k_state, write_f3_clock))
MCFG_MC14411_F5_CB(WRITELINE (*this, force68k_state, write_f5_clock))
MCFG_MC14411_F7_CB(WRITELINE (*this, force68k_state, write_f7_clock))
MCFG_MC14411_F8_CB(WRITELINE (*this, force68k_state, write_f8_clock))
MCFG_MC14411_F9_CB(WRITELINE (*this, force68k_state, write_f9_clock))
MCFG_MC14411_F11_CB(WRITELINE (*this, force68k_state, write_f11_clock))
MCFG_MC14411_F13_CB(WRITELINE (*this, force68k_state, write_f13_clock))
MCFG_MC14411_F15_CB(WRITELINE (*this, force68k_state, write_f15_clock))
MC14411(config, m_brg, XTAL(1'843'200));
m_brg->out_f<1>().set(FUNC(force68k_state::write_f1_clock));
m_brg->out_f<3>().set(FUNC(force68k_state::write_f3_clock));
m_brg->out_f<5>().set(FUNC(force68k_state::write_f5_clock));
m_brg->out_f<7>().set(FUNC(force68k_state::write_f7_clock));
m_brg->out_f<8>().set(FUNC(force68k_state::write_f8_clock));
m_brg->out_f<9>().set(FUNC(force68k_state::write_f9_clock));
m_brg->out_f<11>().set(FUNC(force68k_state::write_f11_clock));
m_brg->out_f<13>().set(FUNC(force68k_state::write_f13_clock));
m_brg->out_f<15>().set(FUNC(force68k_state::write_f15_clock));
/* RTC Real Time Clock device */
MCFG_DEVICE_ADD("rtc", MM58167, XTAL(32'768))
MM58167(config, m_rtc, XTAL(32'768));
/* PIT Parallel Interface and Timer device, assuming strapped for on board clock */
PIT68230(config, m_pit, XTAL(16'000'000) / 2);

View File

@ -477,7 +477,8 @@ static const z80_daisy_config daisy_chain_gamecpu[] =
{ nullptr }
};
MACHINE_CONFIG_START(kenseim_state::kenseim)
void kenseim_state::kenseim(machine_config &config)
{
cps1_12MHz(config);
/* basic machine hardware */
@ -493,18 +494,18 @@ MACHINE_CONFIG_START(kenseim_state::kenseim)
gamecpu.in_pc_callback().set_ioport("CAB-IN");
gamecpu.in_pd_callback().set(FUNC(kenseim_state::cpu_portd_r));
MCFG_MB89363B_ADD("mb89363b")
mb89363b_device &ppi_x2(MB89363B(config, "mb89363b"));
// a,b,c always $80: all ports set as output
// d,e,f always $92: port D and E as input, port F as output
MCFG_MB89363B_OUT_PORTA_CB(WRITE8(*this, kenseim_state, mb8936_porta_w))
MCFG_MB89363B_OUT_PORTB_CB(WRITE8(*this, kenseim_state, mb8936_portb_w))
MCFG_MB89363B_OUT_PORTC_CB(WRITE8(*this, kenseim_state, mb8936_portc_w))
MCFG_MB89363B_IN_PORTD_CB(IOPORT("MOLEA"))
MCFG_MB89363B_IN_PORTE_CB(IOPORT("MOLEB"))
MCFG_MB89363B_OUT_PORTF_CB(WRITE8(*this, kenseim_state, mb8936_portf_w))
ppi_x2.out_pa().set(FUNC(kenseim_state::mb8936_porta_w));
ppi_x2.out_pb().set(FUNC(kenseim_state::mb8936_portb_w));
ppi_x2.out_pc().set(FUNC(kenseim_state::mb8936_portc_w));
ppi_x2.in_pd().set_ioport("MOLEA");
ppi_x2.in_pe().set_ioport("MOLEB");
ppi_x2.out_pf().set(FUNC(kenseim_state::mb8936_portf_w));
MCFG_QUANTUM_PERFECT_CPU("maincpu")
MACHINE_CONFIG_END
config.m_perfect_cpu_quantum = subtag("maincpu");
}
static INPUT_PORTS_START( kenseim )
// the regular CPS1 input ports are used for comms with the extra board

View File

@ -1036,11 +1036,11 @@ MACHINE_CONFIG_START(next_state::next_base)
MCFG_NSCSI_ADD("scsibus:7", next_scsi_devices, "ncr5390", true)
MCFG_SLOT_OPTION_MACHINE_CONFIG("ncr5390", [this] (device_t *device) { ncr5390(device); })
MCFG_DEVICE_ADD("net", MB8795, 0)
MCFG_MB8795_TX_IRQ_CALLBACK(WRITELINE(*this, next_state, net_tx_irq))
MCFG_MB8795_RX_IRQ_CALLBACK(WRITELINE(*this, next_state, net_rx_irq))
MCFG_MB8795_TX_DRQ_CALLBACK(WRITELINE(*this, next_state, net_tx_drq))
MCFG_MB8795_RX_DRQ_CALLBACK(WRITELINE(*this, next_state, net_rx_drq))
MB8795(config, net, 0);
net->tx_irq().set(FUNC(next_state::net_tx_irq));
net->rx_irq().set(FUNC(next_state::net_rx_irq));
net->tx_drq().set(FUNC(next_state::net_tx_drq));
net->rx_drq().set(FUNC(next_state::net_rx_drq));
MCFG_DEVICE_ADD("mo", NEXTMO, 0)
MCFG_NEXTMO_IRQ_CALLBACK(WRITELINE(*this, next_state, mo_irq))

View File

@ -426,22 +426,22 @@ MACHINE_CONFIG_START(proteus3_state::proteus3)
MCFG_RS232_CTS_HANDLER(WRITELINE("acia2", acia6850_device, write_cts))
/* Bit Rate Generator */
MCFG_DEVICE_ADD ("brg", MC14411, XTAL(1'843'200)) // crystal needs verification but is the likely one
MCFG_MC14411_F1_CB(WRITELINE (*this, proteus3_state, write_f1_clock))
MCFG_MC14411_F2_CB(WRITELINE (*this, proteus3_state, write_f2_clock))
MCFG_MC14411_F3_CB(WRITELINE (*this, proteus3_state, write_f3_clock))
MCFG_MC14411_F4_CB(WRITELINE (*this, proteus3_state, write_f4_clock))
MCFG_MC14411_F5_CB(WRITELINE (*this, proteus3_state, write_f5_clock))
MCFG_MC14411_F6_CB(WRITELINE (*this, proteus3_state, write_f6_clock))
MCFG_MC14411_F7_CB(WRITELINE (*this, proteus3_state, write_f7_clock))
MCFG_MC14411_F8_CB(WRITELINE (*this, proteus3_state, write_f8_clock))
MCFG_MC14411_F9_CB(WRITELINE (*this, proteus3_state, write_f9_clock))
MCFG_MC14411_F10_CB(WRITELINE (*this, proteus3_state, write_f10_clock))
MCFG_MC14411_F11_CB(WRITELINE (*this, proteus3_state, write_f11_clock))
MCFG_MC14411_F12_CB(WRITELINE (*this, proteus3_state, write_f12_clock))
MCFG_MC14411_F13_CB(WRITELINE (*this, proteus3_state, write_f13_clock))
MCFG_MC14411_F14_CB(WRITELINE (*this, proteus3_state, write_f14_clock))
MCFG_MC14411_F15_CB(WRITELINE (*this, proteus3_state, write_f15_clock))
MC14411(config, m_brg, XTAL(1'843'200)); // crystal needs verification but is the likely one
m_brg->out_f<1>().set(FUNC(proteus3_state::write_f1_clock));
m_brg->out_f<2>().set(FUNC(proteus3_state::write_f2_clock));
m_brg->out_f<3>().set(FUNC(proteus3_state::write_f3_clock));
m_brg->out_f<4>().set(FUNC(proteus3_state::write_f4_clock));
m_brg->out_f<5>().set(FUNC(proteus3_state::write_f5_clock));
m_brg->out_f<6>().set(FUNC(proteus3_state::write_f6_clock));
m_brg->out_f<7>().set(FUNC(proteus3_state::write_f7_clock));
m_brg->out_f<8>().set(FUNC(proteus3_state::write_f8_clock));
m_brg->out_f<9>().set(FUNC(proteus3_state::write_f9_clock));
m_brg->out_f<10>().set(FUNC(proteus3_state::write_f10_clock));
m_brg->out_f<11>().set(FUNC(proteus3_state::write_f11_clock));
m_brg->out_f<12>().set(FUNC(proteus3_state::write_f12_clock));
m_brg->out_f<13>().set(FUNC(proteus3_state::write_f13_clock));
m_brg->out_f<14>().set(FUNC(proteus3_state::write_f14_clock));
m_brg->out_f<15>().set(FUNC(proteus3_state::write_f15_clock));
MACHINE_CONFIG_END

View File

@ -103,46 +103,46 @@ MACHINE_CONFIG_START(swtpc_state::swtpc)
MCFG_DEVICE_PROGRAM_MAP(mem_map)
MC14411(config, m_brg, XTAL(1'843'200));
m_brg->out_f7_cb().set("io0", FUNC(ss50_interface_port_device::f600_1200_w)); // 1200b
m_brg->out_f7_cb().append("io1", FUNC(ss50_interface_port_device::f600_1200_w));
m_brg->out_f7_cb().append("io2", FUNC(ss50_interface_port_device::f600_1200_w));
m_brg->out_f7_cb().append("io3", FUNC(ss50_interface_port_device::f600_1200_w));
m_brg->out_f7_cb().append("io4", FUNC(ss50_interface_port_device::f600_1200_w));
m_brg->out_f7_cb().append("io5", FUNC(ss50_interface_port_device::f600_1200_w));
m_brg->out_f7_cb().append("io6", FUNC(ss50_interface_port_device::f600_1200_w));
m_brg->out_f7_cb().append("io7", FUNC(ss50_interface_port_device::f600_1200_w));
m_brg->out_f8_cb().set("io0", FUNC(ss50_interface_port_device::f600_4800_w)); // 600b
m_brg->out_f8_cb().append("io1", FUNC(ss50_interface_port_device::f600_4800_w));
m_brg->out_f8_cb().append("io2", FUNC(ss50_interface_port_device::f600_4800_w));
m_brg->out_f8_cb().append("io3", FUNC(ss50_interface_port_device::f600_4800_w));
m_brg->out_f8_cb().append("io4", FUNC(ss50_interface_port_device::f600_4800_w));
m_brg->out_f8_cb().append("io5", FUNC(ss50_interface_port_device::f600_4800_w));
m_brg->out_f8_cb().append("io6", FUNC(ss50_interface_port_device::f600_4800_w));
m_brg->out_f8_cb().append("io7", FUNC(ss50_interface_port_device::f600_4800_w));
m_brg->out_f9_cb().set("io0", FUNC(ss50_interface_port_device::f300_w)); // 300b
m_brg->out_f9_cb().append("io1", FUNC(ss50_interface_port_device::f300_w));
m_brg->out_f9_cb().append("io2", FUNC(ss50_interface_port_device::f300_w));
m_brg->out_f9_cb().append("io3", FUNC(ss50_interface_port_device::f300_w));
m_brg->out_f9_cb().append("io4", FUNC(ss50_interface_port_device::f300_w));
m_brg->out_f9_cb().append("io5", FUNC(ss50_interface_port_device::f300_w));
m_brg->out_f9_cb().append("io6", FUNC(ss50_interface_port_device::f300_w));
m_brg->out_f9_cb().append("io7", FUNC(ss50_interface_port_device::f300_w));
m_brg->out_f11_cb().set("io0", FUNC(ss50_interface_port_device::f150_9600_w)); // 150b
m_brg->out_f11_cb().append("io1", FUNC(ss50_interface_port_device::f150_9600_w));
m_brg->out_f11_cb().append("io2", FUNC(ss50_interface_port_device::f150_9600_w));
m_brg->out_f11_cb().append("io3", FUNC(ss50_interface_port_device::f150_9600_w));
m_brg->out_f11_cb().append("io4", FUNC(ss50_interface_port_device::f150_9600_w));
m_brg->out_f11_cb().append("io5", FUNC(ss50_interface_port_device::f150_9600_w));
m_brg->out_f11_cb().append("io6", FUNC(ss50_interface_port_device::f150_9600_w));
m_brg->out_f11_cb().append("io7", FUNC(ss50_interface_port_device::f150_9600_w));
m_brg->out_f13_cb().set("io0", FUNC(ss50_interface_port_device::f110_w)); // 110b
m_brg->out_f13_cb().append("io1", FUNC(ss50_interface_port_device::f110_w));
m_brg->out_f13_cb().append("io2", FUNC(ss50_interface_port_device::f110_w));
m_brg->out_f13_cb().append("io3", FUNC(ss50_interface_port_device::f110_w));
m_brg->out_f13_cb().append("io4", FUNC(ss50_interface_port_device::f110_w));
m_brg->out_f13_cb().append("io5", FUNC(ss50_interface_port_device::f110_w));
m_brg->out_f13_cb().append("io6", FUNC(ss50_interface_port_device::f110_w));
m_brg->out_f13_cb().append("io7", FUNC(ss50_interface_port_device::f110_w));
m_brg->out_f<7>().set("io0", FUNC(ss50_interface_port_device::f600_1200_w)); // 1200b
m_brg->out_f<7>().append("io1", FUNC(ss50_interface_port_device::f600_1200_w));
m_brg->out_f<7>().append("io2", FUNC(ss50_interface_port_device::f600_1200_w));
m_brg->out_f<7>().append("io3", FUNC(ss50_interface_port_device::f600_1200_w));
m_brg->out_f<7>().append("io4", FUNC(ss50_interface_port_device::f600_1200_w));
m_brg->out_f<7>().append("io5", FUNC(ss50_interface_port_device::f600_1200_w));
m_brg->out_f<7>().append("io6", FUNC(ss50_interface_port_device::f600_1200_w));
m_brg->out_f<7>().append("io7", FUNC(ss50_interface_port_device::f600_1200_w));
m_brg->out_f<8>().set("io0", FUNC(ss50_interface_port_device::f600_4800_w)); // 600b
m_brg->out_f<8>().append("io1", FUNC(ss50_interface_port_device::f600_4800_w));
m_brg->out_f<8>().append("io2", FUNC(ss50_interface_port_device::f600_4800_w));
m_brg->out_f<8>().append("io3", FUNC(ss50_interface_port_device::f600_4800_w));
m_brg->out_f<8>().append("io4", FUNC(ss50_interface_port_device::f600_4800_w));
m_brg->out_f<8>().append("io5", FUNC(ss50_interface_port_device::f600_4800_w));
m_brg->out_f<8>().append("io6", FUNC(ss50_interface_port_device::f600_4800_w));
m_brg->out_f<8>().append("io7", FUNC(ss50_interface_port_device::f600_4800_w));
m_brg->out_f<9>().set("io0", FUNC(ss50_interface_port_device::f300_w)); // 300b
m_brg->out_f<9>().append("io1", FUNC(ss50_interface_port_device::f300_w));
m_brg->out_f<9>().append("io2", FUNC(ss50_interface_port_device::f300_w));
m_brg->out_f<9>().append("io3", FUNC(ss50_interface_port_device::f300_w));
m_brg->out_f<9>().append("io4", FUNC(ss50_interface_port_device::f300_w));
m_brg->out_f<9>().append("io5", FUNC(ss50_interface_port_device::f300_w));
m_brg->out_f<9>().append("io6", FUNC(ss50_interface_port_device::f300_w));
m_brg->out_f<9>().append("io7", FUNC(ss50_interface_port_device::f300_w));
m_brg->out_f<11>().set("io0", FUNC(ss50_interface_port_device::f150_9600_w)); // 150b
m_brg->out_f<11>().append("io1", FUNC(ss50_interface_port_device::f150_9600_w));
m_brg->out_f<11>().append("io2", FUNC(ss50_interface_port_device::f150_9600_w));
m_brg->out_f<11>().append("io3", FUNC(ss50_interface_port_device::f150_9600_w));
m_brg->out_f<11>().append("io4", FUNC(ss50_interface_port_device::f150_9600_w));
m_brg->out_f<11>().append("io5", FUNC(ss50_interface_port_device::f150_9600_w));
m_brg->out_f<11>().append("io6", FUNC(ss50_interface_port_device::f150_9600_w));
m_brg->out_f<11>().append("io7", FUNC(ss50_interface_port_device::f150_9600_w));
m_brg->out_f<13>().set("io0", FUNC(ss50_interface_port_device::f110_w)); // 110b
m_brg->out_f<13>().append("io1", FUNC(ss50_interface_port_device::f110_w));
m_brg->out_f<13>().append("io2", FUNC(ss50_interface_port_device::f110_w));
m_brg->out_f<13>().append("io3", FUNC(ss50_interface_port_device::f110_w));
m_brg->out_f<13>().append("io4", FUNC(ss50_interface_port_device::f110_w));
m_brg->out_f<13>().append("io5", FUNC(ss50_interface_port_device::f110_w));
m_brg->out_f<13>().append("io6", FUNC(ss50_interface_port_device::f110_w));
m_brg->out_f<13>().append("io7", FUNC(ss50_interface_port_device::f110_w));
MCFG_SS50_INTERFACE_PORT_ADD("io0", default_2rs_devices, nullptr)
MCFG_SS50_INTERFACE_IRQ_CALLBACK(WRITELINE("mainirq", input_merger_device, in_w<0>))

View File

@ -198,8 +198,8 @@ void swtpc09_state::swtpc09_base(machine_config &config)
m_acia->irq_handler().set(FUNC(swtpc09_state::acia_interrupt));
MC14411(config, m_brg, 1.8432_MHz_XTAL);
m_brg->out_f1_cb().set(m_acia, FUNC(acia6850_device::write_txc));
m_brg->out_f1_cb().append(m_acia, FUNC(acia6850_device::write_rxc));
m_brg->out_f<1>().set(m_acia, FUNC(acia6850_device::write_txc));
m_brg->out_f<1>().append(m_acia, FUNC(acia6850_device::write_rxc));
FD1793(config, m_fdc, 1_MHz_XTAL);
FLOPPY_CONNECTOR(config, "fdc:0", swtpc09_floppies, "dd", swtpc09_state::floppy_formats);

View File

@ -2203,8 +2203,8 @@ MACHINE_CONFIG_START(taitob_state::pbobble)
m_tc0640fio->write_4_callback().set(FUNC(taitob_state::player_12_coin_ctrl_w));
m_tc0640fio->read_7_callback().set_ioport("P1_P2_B");
MCFG_DEVICE_ADD("mb87078", MB87078, 0)
MCFG_MB87078_GAIN_CHANGED_CB(WRITE8(*this, taitob_state, mb87078_gain_changed))
MB87078(config, m_mb87078);
m_mb87078->gain_changed().set(FUNC(taitob_state::mb87078_gain_changed));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -2267,8 +2267,8 @@ MACHINE_CONFIG_START(taitob_state::spacedx)
m_tc0640fio->write_4_callback().set(FUNC(taitob_state::player_12_coin_ctrl_w));
m_tc0640fio->read_7_callback().set_ioport("P1_P2_B");
MCFG_DEVICE_ADD("mb87078", MB87078, 0)
MCFG_MB87078_GAIN_CHANGED_CB(WRITE8(*this, taitob_state, mb87078_gain_changed))
MB87078(config, m_mb87078);
m_mb87078->gain_changed().set(FUNC(taitob_state::mb87078_gain_changed));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@ -2389,8 +2389,8 @@ MACHINE_CONFIG_START(taitob_state::qzshowby)
m_tc0640fio->write_4_callback().set(FUNC(taitob_state::player_12_coin_ctrl_w));
m_tc0640fio->read_7_callback().set_ioport("P1_P2_B");
MCFG_DEVICE_ADD("mb87078", MB87078, 0)
MCFG_MB87078_GAIN_CHANGED_CB(WRITE8(*this, taitob_state, mb87078_gain_changed))
MB87078(config, m_mb87078);
m_mb87078->gain_changed().set(FUNC(taitob_state::mb87078_gain_changed));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)