mirror of
https://github.com/holub/mame
synced 2025-04-27 02:33:13 +03:00
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:
parent
409a4b02d7
commit
1aa3f4c200
@ -129,7 +129,6 @@ void mc2661_device::device_config_complete()
|
|||||||
// or initialize to defaults if none provided
|
// or initialize to defaults if none provided
|
||||||
else
|
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_txd_cb, 0, sizeof(m_out_txd_cb));
|
||||||
memset(&m_out_rxrdy_cb, 0, sizeof(m_out_rxrdy_cb));
|
memset(&m_out_rxrdy_cb, 0, sizeof(m_out_rxrdy_cb));
|
||||||
memset(&m_out_txrdy_cb, 0, sizeof(m_out_txrdy_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()
|
void mc2661_device::device_start()
|
||||||
{
|
{
|
||||||
// resolve callbacks
|
// resolve callbacks
|
||||||
m_in_rxd_func.resolve(m_in_rxd_cb, *this);
|
|
||||||
m_out_txd_func.resolve(m_out_txd_cb, *this);
|
m_out_txd_func.resolve(m_out_txd_cb, *this);
|
||||||
m_out_rxrdy_func.resolve(m_out_rxrdy_cb, *this);
|
m_out_rxrdy_func.resolve(m_out_rxrdy_cb, *this);
|
||||||
m_out_txrdy_func.resolve(m_out_txrdy_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()
|
void mc2661_device::rcv_callback()
|
||||||
{
|
{
|
||||||
if (m_in_rxd_func.isnull())
|
|
||||||
receive_register_update_bit(m_signal);
|
receive_register_update_bit(m_signal);
|
||||||
else
|
|
||||||
receive_register_update_bit(m_in_rxd_func());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -60,7 +60,6 @@ struct mc2661_interface
|
|||||||
int m_rxc;
|
int m_rxc;
|
||||||
int m_txc;
|
int m_txc;
|
||||||
|
|
||||||
devcb_read_line m_in_rxd_cb;
|
|
||||||
devcb_write_line m_out_txd_cb;
|
devcb_write_line m_out_txd_cb;
|
||||||
|
|
||||||
devcb_write_line m_out_rxrdy_cb;
|
devcb_write_line m_out_rxrdy_cb;
|
||||||
|
@ -963,7 +963,6 @@ static MC2661_INTERFACE( epci_intf )
|
|||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, serial_port_device, rx),
|
|
||||||
DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, serial_port_device, tx),
|
DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, serial_port_device, tx),
|
||||||
DEVCB_DRIVER_LINE_MEMBER(wangpc_state, epci_irq_w),
|
DEVCB_DRIVER_LINE_MEMBER(wangpc_state, epci_irq_w),
|
||||||
DEVCB_NULL,
|
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 ":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_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, centronics_intf)
|
MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, centronics_intf)
|
||||||
|
|
||||||
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL)
|
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()
|
MCFG_WANGPC_KEYBOARD_ADD()
|
||||||
|
|
||||||
// bus
|
// bus
|
||||||
|
@ -444,7 +444,6 @@ static mc2661_interface wicat_uart0_intf =
|
|||||||
{
|
{
|
||||||
19200, // RXC
|
19200, // RXC
|
||||||
19200, // TXC
|
19200, // TXC
|
||||||
DEVCB_NULL, // RXD in
|
|
||||||
DEVCB_DEVICE_LINE_MEMBER("videouart0",mc2661_device, rx_w), // TXD out
|
DEVCB_DEVICE_LINE_MEMBER("videouart0",mc2661_device, rx_w), // TXD out
|
||||||
DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2), // RXRDY out
|
DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2), // RXRDY out
|
||||||
DEVCB_NULL, // TXRDY out
|
DEVCB_NULL, // TXRDY out
|
||||||
@ -460,7 +459,6 @@ static mc2661_interface wicat_uart1_intf =
|
|||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
DEVCB_DEVICE_LINE_MEMBER("serial1", serial_port_device, rx),
|
|
||||||
DEVCB_DEVICE_LINE_MEMBER("serial1", serial_port_device, tx),
|
DEVCB_DEVICE_LINE_MEMBER("serial1", serial_port_device, tx),
|
||||||
DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2), // RXRDY out
|
DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2), // RXRDY out
|
||||||
DEVCB_NULL,
|
DEVCB_NULL,
|
||||||
@ -475,7 +473,6 @@ static mc2661_interface wicat_uart2_intf =
|
|||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
DEVCB_DEVICE_LINE_MEMBER("serial2", serial_port_device, rx),
|
|
||||||
DEVCB_DEVICE_LINE_MEMBER("serial2", serial_port_device, tx),
|
DEVCB_DEVICE_LINE_MEMBER("serial2", serial_port_device, tx),
|
||||||
DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2), // RXRDY out
|
DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2), // RXRDY out
|
||||||
DEVCB_NULL,
|
DEVCB_NULL,
|
||||||
@ -490,7 +487,6 @@ static mc2661_interface wicat_uart3_intf =
|
|||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
DEVCB_DEVICE_LINE_MEMBER("serial3", serial_port_device, rx),
|
|
||||||
DEVCB_DEVICE_LINE_MEMBER("serial3", serial_port_device, tx),
|
DEVCB_DEVICE_LINE_MEMBER("serial3", serial_port_device, tx),
|
||||||
DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2), // RXRDY out
|
DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2), // RXRDY out
|
||||||
DEVCB_NULL,
|
DEVCB_NULL,
|
||||||
@ -505,7 +501,6 @@ static mc2661_interface wicat_uart4_intf =
|
|||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
DEVCB_DEVICE_LINE_MEMBER("serial4", serial_port_device, rx),
|
|
||||||
DEVCB_DEVICE_LINE_MEMBER("serial4", serial_port_device, tx),
|
DEVCB_DEVICE_LINE_MEMBER("serial4", serial_port_device, tx),
|
||||||
DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2), // RXRDY out
|
DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2), // RXRDY out
|
||||||
DEVCB_NULL,
|
DEVCB_NULL,
|
||||||
@ -520,7 +515,6 @@ static mc2661_interface wicat_uart5_intf =
|
|||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
DEVCB_DEVICE_LINE_MEMBER("serial5", serial_port_device, rx),
|
|
||||||
DEVCB_DEVICE_LINE_MEMBER("serial5", serial_port_device, tx),
|
DEVCB_DEVICE_LINE_MEMBER("serial5", serial_port_device, tx),
|
||||||
DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2), // RXRDY out
|
DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2), // RXRDY out
|
||||||
DEVCB_NULL,
|
DEVCB_NULL,
|
||||||
@ -536,7 +530,6 @@ static mc2661_interface wicat_uart6_intf =
|
|||||||
{
|
{
|
||||||
0, // RXC
|
0, // RXC
|
||||||
0, // TXC
|
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_NULL, //DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, serial_port_device, tx), // RXD out
|
||||||
DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2), // RXRDY out
|
DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2), // RXRDY out
|
||||||
DEVCB_NULL, // TXRDY out
|
DEVCB_NULL, // TXRDY out
|
||||||
@ -552,7 +545,6 @@ static mc2661_interface wicat_video_uart0_intf =
|
|||||||
{
|
{
|
||||||
19200, // RXC
|
19200, // RXC
|
||||||
19200, // TXC
|
19200, // TXC
|
||||||
DEVCB_NULL, // RXD in
|
|
||||||
DEVCB_DEVICE_LINE_MEMBER("uart0",mc2661_device, rx_w), // RXD out
|
DEVCB_DEVICE_LINE_MEMBER("uart0",mc2661_device, rx_w), // RXD out
|
||||||
DEVCB_CPU_INPUT_LINE("videocpu",INPUT_LINE_IRQ0), // RXRDY out
|
DEVCB_CPU_INPUT_LINE("videocpu",INPUT_LINE_IRQ0), // RXRDY out
|
||||||
DEVCB_NULL, // TXRDY out
|
DEVCB_NULL, // TXRDY out
|
||||||
@ -567,7 +559,6 @@ static mc2661_interface wicat_video_uart1_intf =
|
|||||||
{
|
{
|
||||||
19200, // RXC
|
19200, // RXC
|
||||||
19200, // TXC
|
19200, // TXC
|
||||||
DEVCB_NULL, // RXD in
|
|
||||||
DEVCB_NULL, // RXD out
|
DEVCB_NULL, // RXD out
|
||||||
DEVCB_CPU_INPUT_LINE("videocpu",INPUT_LINE_IRQ0), // RXRDY out
|
DEVCB_CPU_INPUT_LINE("videocpu",INPUT_LINE_IRQ0), // RXRDY out
|
||||||
DEVCB_NULL, // TXRDY out
|
DEVCB_NULL, // TXRDY out
|
||||||
|
Loading…
Reference in New Issue
Block a user