Previous 199869 Revisions Next

r26694 Sunday 22nd December, 2013 at 22:26:18 UTC by smf
replaced read rx callback in MC2661 with a write handler, which allows multiple chips to be connected together without using glue methods. [smf]
[src/emu/machine]mc2661.c mc2661.h
[src/mess/drivers]wangpc.c wicat.c

trunk/src/emu/machine/mc2661.c
r26693r26694
129129   // or initialize to defaults if none provided
130130   else
131131   {
132      memset(&m_in_rxd_cb, 0, sizeof(m_in_rxd_cb));
133132      memset(&m_out_txd_cb, 0, sizeof(m_out_txd_cb));
134133      memset(&m_out_rxrdy_cb, 0, sizeof(m_out_rxrdy_cb));
135134      memset(&m_out_txrdy_cb, 0, sizeof(m_out_txrdy_cb));
r26693r26694
149148void mc2661_device::device_start()
150149{
151150   // resolve callbacks
152   m_in_rxd_func.resolve(m_in_rxd_cb, *this);
153151   m_out_txd_func.resolve(m_out_txd_cb, *this);
154152   m_out_rxrdy_func.resolve(m_out_rxrdy_cb, *this);
155153   m_out_txrdy_func.resolve(m_out_txrdy_cb, *this);
r26693r26694
242240
243241void mc2661_device::rcv_callback()
244242{
245   if (m_in_rxd_func.isnull())
246      receive_register_update_bit(m_signal);
247   else
248      receive_register_update_bit(m_in_rxd_func());
243   receive_register_update_bit(m_signal);
249244}
250245
251246
trunk/src/emu/machine/mc2661.h
r26693r26694
6060   int m_rxc;
6161   int m_txc;
6262
63   devcb_read_line     m_in_rxd_cb;
6463   devcb_write_line    m_out_txd_cb;
6564
6665   devcb_write_line    m_out_rxrdy_cb;
trunk/src/mess/drivers/wicat.c
r26693r26694
444444{
445445   19200,  // RXC
446446   19200,  // TXC
447   DEVCB_NULL,  // RXD in
448447   DEVCB_DEVICE_LINE_MEMBER("videouart0",mc2661_device, rx_w),  // TXD out
449448   DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2),  // RXRDY out
450449   DEVCB_NULL,  // TXRDY out
r26693r26694
460459{
461460   0,
462461   0,
463   DEVCB_DEVICE_LINE_MEMBER("serial1", serial_port_device, rx),
464462   DEVCB_DEVICE_LINE_MEMBER("serial1", serial_port_device, tx),
465463   DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2),  // RXRDY out
466464   DEVCB_NULL,
r26693r26694
475473{
476474   0,
477475   0,
478   DEVCB_DEVICE_LINE_MEMBER("serial2", serial_port_device, rx),
479476   DEVCB_DEVICE_LINE_MEMBER("serial2", serial_port_device, tx),
480477   DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2),  // RXRDY out
481478   DEVCB_NULL,
r26693r26694
490487{
491488   0,
492489   0,
493   DEVCB_DEVICE_LINE_MEMBER("serial3", serial_port_device, rx),
494490   DEVCB_DEVICE_LINE_MEMBER("serial3", serial_port_device, tx),
495491   DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2),  // RXRDY out
496492   DEVCB_NULL,
r26693r26694
505501{
506502   0,
507503   0,
508   DEVCB_DEVICE_LINE_MEMBER("serial4", serial_port_device, rx),
509504   DEVCB_DEVICE_LINE_MEMBER("serial4", serial_port_device, tx),
510505   DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2),  // RXRDY out
511506   DEVCB_NULL,
r26693r26694
520515{
521516   0,
522517   0,
523   DEVCB_DEVICE_LINE_MEMBER("serial5", serial_port_device, rx),
524518   DEVCB_DEVICE_LINE_MEMBER("serial5", serial_port_device, tx),
525519   DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2),  // RXRDY out
526520   DEVCB_NULL,
r26693r26694
536530{
537531   0,  // RXC
538532   0,  // TXC
539   DEVCB_NULL, //DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, serial_port_device, rx),  // RXD in
540533   DEVCB_NULL, //DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, serial_port_device, tx),  // RXD out
541534   DEVCB_CPU_INPUT_LINE("maincpu",M68K_IRQ_2),  // RXRDY out
542535   DEVCB_NULL,  // TXRDY out
r26693r26694
552545{
553546   19200,  // RXC
554547   19200,  // TXC
555   DEVCB_NULL,  // RXD in
556548   DEVCB_DEVICE_LINE_MEMBER("uart0",mc2661_device, rx_w),  // RXD out
557549   DEVCB_CPU_INPUT_LINE("videocpu",INPUT_LINE_IRQ0),  // RXRDY out
558550   DEVCB_NULL,  // TXRDY out
r26693r26694
567559{
568560   19200,  // RXC
569561   19200,  // TXC
570   DEVCB_NULL,  // RXD in
571562   DEVCB_NULL,  // RXD out
572563   DEVCB_CPU_INPUT_LINE("videocpu",INPUT_LINE_IRQ0),  // RXRDY out
573564   DEVCB_NULL,  // TXRDY out
trunk/src/mess/drivers/wangpc.c
r26693r26694
963963{
964964   0,
965965   0,
966   DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, serial_port_device, rx),
967966   DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, serial_port_device, tx),
968967   DEVCB_DRIVER_LINE_MEMBER(wangpc_state, epci_irq_w),
969968   DEVCB_NULL,
r26693r26694
11921191   MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", wangpc_floppies, "525dd", wangpc_state::floppy_formats)
11931192   MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", wangpc_floppies, "525dd", wangpc_state::floppy_formats)
11941193   MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, centronics_intf)
1194
11951195   MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL)
1196   MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(SCN2661_TAG,mc2661_device,rx_w))
1197
11961198   MCFG_WANGPC_KEYBOARD_ADD()
11971199
11981200   // bus

Previous 199869 Revisions Next


© 1997-2024 The MAME Team