replaced read rx callback in MC2661 with a write handler, which allows multiple chips to be connected together without using glue methods. [smf]

This commit is contained in:
smf- 2013-12-22 22:26:18 +00:00
parent 409a4b02d7
commit 1aa3f4c200
4 changed files with 4 additions and 17 deletions

View File

@ -129,7 +129,6 @@ void mc2661_device::device_config_complete()
// or initialize to defaults if none provided
else
{
memset(&m_in_rxd_cb, 0, sizeof(m_in_rxd_cb));
memset(&m_out_txd_cb, 0, sizeof(m_out_txd_cb));
memset(&m_out_rxrdy_cb, 0, sizeof(m_out_rxrdy_cb));
memset(&m_out_txrdy_cb, 0, sizeof(m_out_txrdy_cb));
@ -149,7 +148,6 @@ void mc2661_device::device_config_complete()
void mc2661_device::device_start()
{
// resolve callbacks
m_in_rxd_func.resolve(m_in_rxd_cb, *this);
m_out_txd_func.resolve(m_out_txd_cb, *this);
m_out_rxrdy_func.resolve(m_out_rxrdy_cb, *this);
m_out_txrdy_func.resolve(m_out_txrdy_cb, *this);
@ -242,10 +240,7 @@ void mc2661_device::tra_complete()
void mc2661_device::rcv_callback()
{
if (m_in_rxd_func.isnull())
receive_register_update_bit(m_signal);
else
receive_register_update_bit(m_in_rxd_func());
}

View File

@ -60,7 +60,6 @@ struct mc2661_interface
int m_rxc;
int m_txc;
devcb_read_line m_in_rxd_cb;
devcb_write_line m_out_txd_cb;
devcb_write_line m_out_rxrdy_cb;

View File

@ -963,7 +963,6 @@ static MC2661_INTERFACE( epci_intf )
{
0,
0,
DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, serial_port_device, tx),
DEVCB_DRIVER_LINE_MEMBER(wangpc_state, epci_irq_w),
DEVCB_NULL,
@ -1192,7 +1191,10 @@ static MACHINE_CONFIG_START( wangpc, wangpc_state )
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_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, centronics_intf)
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL)
MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(SCN2661_TAG,mc2661_device,rx_w))
MCFG_WANGPC_KEYBOARD_ADD()
// bus

View File

@ -444,7 +444,6 @@ static mc2661_interface wicat_uart0_intf =
{
19200, // RXC
19200, // TXC
DEVCB_NULL, // RXD in
DEVCB_DEVICE_LINE_MEMBER("videouart0",mc2661_device, rx_w), // TXD out
DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2), // RXRDY out
DEVCB_NULL, // TXRDY out
@ -460,7 +459,6 @@ static mc2661_interface wicat_uart1_intf =
{
0,
0,
DEVCB_DEVICE_LINE_MEMBER("serial1", serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER("serial1", serial_port_device, tx),
DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2), // RXRDY out
DEVCB_NULL,
@ -475,7 +473,6 @@ static mc2661_interface wicat_uart2_intf =
{
0,
0,
DEVCB_DEVICE_LINE_MEMBER("serial2", serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER("serial2", serial_port_device, tx),
DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2), // RXRDY out
DEVCB_NULL,
@ -490,7 +487,6 @@ static mc2661_interface wicat_uart3_intf =
{
0,
0,
DEVCB_DEVICE_LINE_MEMBER("serial3", serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER("serial3", serial_port_device, tx),
DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2), // RXRDY out
DEVCB_NULL,
@ -505,7 +501,6 @@ static mc2661_interface wicat_uart4_intf =
{
0,
0,
DEVCB_DEVICE_LINE_MEMBER("serial4", serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER("serial4", serial_port_device, tx),
DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2), // RXRDY out
DEVCB_NULL,
@ -520,7 +515,6 @@ static mc2661_interface wicat_uart5_intf =
{
0,
0,
DEVCB_DEVICE_LINE_MEMBER("serial5", serial_port_device, rx),
DEVCB_DEVICE_LINE_MEMBER("serial5", serial_port_device, tx),
DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2), // RXRDY out
DEVCB_NULL,
@ -536,7 +530,6 @@ static mc2661_interface wicat_uart6_intf =
{
0, // RXC
0, // TXC
DEVCB_NULL, //DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, serial_port_device, rx), // RXD in
DEVCB_NULL, //DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, serial_port_device, tx), // RXD out
DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2), // RXRDY out
DEVCB_NULL, // TXRDY out
@ -552,7 +545,6 @@ static mc2661_interface wicat_video_uart0_intf =
{
19200, // RXC
19200, // TXC
DEVCB_NULL, // RXD in
DEVCB_DEVICE_LINE_MEMBER("uart0",mc2661_device, rx_w), // RXD out
DEVCB_CPU_INPUT_LINE("videocpu",INPUT_LINE_IRQ0), // RXRDY out
DEVCB_NULL, // TXRDY out
@ -567,7 +559,6 @@ static mc2661_interface wicat_video_uart1_intf =
{
19200, // RXC
19200, // TXC
DEVCB_NULL, // RXD in
DEVCB_NULL, // RXD out
DEVCB_CPU_INPUT_LINE("videocpu",INPUT_LINE_IRQ0), // RXRDY out
DEVCB_NULL, // TXRDY out