diff --git a/src/mess/drivers/bullet.c b/src/mess/drivers/bullet.c index 00fbab47383..e80a50f90ce 100644 --- a/src/mess/drivers/bullet.c +++ b/src/mess/drivers/bullet.c @@ -769,17 +769,17 @@ static Z80DART_INTERFACE( dart_intf ) { 0, 0, 0, 0, - DEVCB_DEVICE_LINE_MEMBER(TERMINAL_TAG, serial_terminal_device, tx_r), - DEVCB_DEVICE_LINE_MEMBER(TERMINAL_TAG, serial_terminal_device, rx_w), - DEVCB_NULL, - DEVCB_NULL, + DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, rx), + DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, tx), + DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, dtr_w), + DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, rts_w), DEVCB_DRIVER_LINE_MEMBER(bullet_state, dartardy_w), DEVCB_NULL, - DEVCB_LINE_VCC, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, + DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, rx), + DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, tx), + DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, dtr_w), + DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, rts_w), DEVCB_DRIVER_LINE_MEMBER(bullet_state, dartbrdy_w), DEVCB_NULL, @@ -1085,11 +1085,34 @@ WRITE_LINE_MEMBER( bulletf_state::req_w ) //------------------------------------------------- -// serial_terminal_interface terminal_intf +// rs232_port_interface rs232a_intf //------------------------------------------------- -static serial_terminal_interface terminal_intf = +static DEVICE_INPUT_DEFAULTS_START( terminal ) + DEVICE_INPUT_DEFAULTS( "TERM_FRAME", 0x0f, 0x06 ) // 9600 + DEVICE_INPUT_DEFAULTS( "TERM_FRAME", 0x30, 0x00 ) // 8N1 +DEVICE_INPUT_DEFAULTS_END + +static const rs232_port_interface rs232a_intf = { + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL +}; + + +//------------------------------------------------- +// rs232_port_interface rs232b_intf +//------------------------------------------------- + +static const rs232_port_interface rs232b_intf = +{ + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, DEVCB_NULL }; @@ -1250,7 +1273,8 @@ static MACHINE_CONFIG_START( bullet, bullet_state ) MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":6", bullet_8_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":7", bullet_8_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics) - MCFG_SERIAL_TERMINAL_ADD(TERMINAL_TAG, terminal_intf, 9600) + MCFG_RS232_PORT_ADD(RS232_A_TAG, rs232b_intf, default_rs232_devices, "serial_terminal", terminal) + MCFG_RS232_PORT_ADD(RS232_B_TAG, rs232a_intf, default_rs232_devices, NULL, NULL) // software lists MCFG_SOFTWARE_LIST_ADD("flop_list", "wmbullet") @@ -1290,7 +1314,8 @@ static MACHINE_CONFIG_START( bulletf, bulletf_state ) MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":8", bullet_35_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":9", bullet_35_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics) - MCFG_SERIAL_TERMINAL_ADD(TERMINAL_TAG, terminal_intf, 9600) + MCFG_RS232_PORT_ADD(RS232_A_TAG, rs232b_intf, default_rs232_devices, "serial_terminal", terminal) + MCFG_RS232_PORT_ADD(RS232_B_TAG, rs232a_intf, default_rs232_devices, NULL, NULL) MCFG_SCSIBUS_ADD(SCSIBUS_TAG) MCFG_SCSIDEV_ADD(SCSIBUS_TAG ":harddisk0", SCSIHD, SCSI_ID_0) diff --git a/src/mess/drivers/ob68k1a.c b/src/mess/drivers/ob68k1a.c index b9222c5ac7b..11e49c24d35 100644 --- a/src/mess/drivers/ob68k1a.c +++ b/src/mess/drivers/ob68k1a.c @@ -215,9 +215,9 @@ static ACIA6850_INTERFACE( acia0_intf ) 0, DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, rx), DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, tx), - DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, cts_r), + DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, cts_r), DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, rts_w), - DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, dcd_r), + DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, dcd_r), DEVCB_NULL }; diff --git a/src/mess/drivers/softbox.c b/src/mess/drivers/softbox.c index eedf430b860..aed5c083622 100644 --- a/src/mess/drivers/softbox.c +++ b/src/mess/drivers/softbox.c @@ -88,11 +88,11 @@ INPUT_PORTS_END static const i8251_interface usart_intf = { - DEVCB_DEVICE_LINE_MEMBER(TERMINAL_TAG, serial_terminal_device, tx_r), - DEVCB_DEVICE_LINE_MEMBER(TERMINAL_TAG, serial_terminal_device, rx_w), - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, + 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, rs232_port_device, dsr_r), + DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, rs232_port_device, dtr_w), + DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, rs232_port_device, rts_w), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, @@ -265,7 +265,7 @@ static COM8116_INTERFACE( dbrg_intf ) //------------------------------------------------- -// serial_terminal_interface terminal_intf +// rs232_port_interface rs232_intf //------------------------------------------------- static DEVICE_INPUT_DEFAULTS_START( terminal ) @@ -273,8 +273,12 @@ static DEVICE_INPUT_DEFAULTS_START( terminal ) DEVICE_INPUT_DEFAULTS( "TERM_FRAME", 0x30, 0x10 ) // 7E1 DEVICE_INPUT_DEFAULTS_END -static const serial_terminal_interface terminal_intf = +static const rs232_port_interface rs232_intf = { + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, DEVCB_NULL }; @@ -300,8 +304,7 @@ static MACHINE_CONFIG_START( softbox, softbox_state ) MCFG_I8255A_ADD(I8255_1_TAG, ppi1_intf) MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, dbrg_intf) MCFG_CBM_IEEE488_ADD("c8050") - MCFG_SERIAL_TERMINAL_ADD(TERMINAL_TAG, terminal_intf, 9600) - MCFG_DEVICE_INPUT_DEFAULTS(terminal) + MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, "serial_terminal", terminal) // software lists //MCFG_SOFTWARE_LIST_ADD("flop_list", "softbox_flop") diff --git a/src/mess/drivers/super6.c b/src/mess/drivers/super6.c index 06a0dd9ffc5..ebb776b51a8 100644 --- a/src/mess/drivers/super6.c +++ b/src/mess/drivers/super6.c @@ -369,17 +369,17 @@ static Z80DART_INTERFACE( dart_intf ) { 0, 0, 0, 0, - DEVCB_DEVICE_LINE_MEMBER(TERMINAL_TAG, serial_terminal_device, tx_r), - DEVCB_DEVICE_LINE_MEMBER(TERMINAL_TAG, serial_terminal_device, rx_w), - DEVCB_NULL, - DEVCB_NULL, + DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, rx), + DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, tx), + DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, dtr_w), + DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, rts_w), DEVCB_NULL, DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, + DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, rx), + DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, tx), + DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, dtr_w), + DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, rts_w), DEVCB_NULL, DEVCB_NULL, @@ -502,7 +502,7 @@ static const z80_daisy_config super6_daisy_chain[] = //------------------------------------------------- -// GENERIC_TERMINAL_INTERFACE( terminal_intf ) +// rs232_port_interface rs232a_intf //------------------------------------------------- static DEVICE_INPUT_DEFAULTS_START( terminal ) @@ -510,14 +510,27 @@ static DEVICE_INPUT_DEFAULTS_START( terminal ) DEVICE_INPUT_DEFAULTS( "TERM_FRAME", 0x30, 0x00 ) // 8N1 DEVICE_INPUT_DEFAULTS_END -WRITE8_MEMBER( super6_state::dummy_w ) +static const rs232_port_interface rs232a_intf = { - // handled in Z80DART_INTERFACE -} + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL +}; -static GENERIC_TERMINAL_INTERFACE( terminal_intf ) + +//------------------------------------------------- +// rs232_port_interface rs232b_intf +//------------------------------------------------- + +static const rs232_port_interface rs232b_intf = { - DEVCB_DRIVER_MEMBER(super6_state, dummy_w) + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL }; @@ -586,8 +599,8 @@ static MACHINE_CONFIG_START( super6, super6_state ) MCFG_COM8116_ADD(BR1945_TAG, XTAL_5_0688MHz, brg_intf) MCFG_FLOPPY_DRIVE_ADD(WD2793_TAG":0", super6_floppies, "525dd", NULL, floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD(WD2793_TAG":1", super6_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) - MCFG_SERIAL_TERMINAL_ADD(TERMINAL_TAG, terminal_intf, 19200) - MCFG_DEVICE_INPUT_DEFAULTS(terminal) + MCFG_RS232_PORT_ADD(RS232_A_TAG, rs232b_intf, default_rs232_devices, "serial_terminal", terminal) + MCFG_RS232_PORT_ADD(RS232_B_TAG, rs232a_intf, default_rs232_devices, NULL, NULL) // internal ram MCFG_RAM_ADD(RAM_TAG) diff --git a/src/mess/drivers/xor100.c b/src/mess/drivers/xor100.c index 08635b1e808..2f70206788f 100644 --- a/src/mess/drivers/xor100.c +++ b/src/mess/drivers/xor100.c @@ -380,11 +380,11 @@ static COM8116_INTERFACE( com5016_intf ) static const i8251_interface printer_8251_intf = { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, + DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, rx), + DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, serial_port_device, tx), + DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, dsr_r), + DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, dtr_w), + DEVCB_DEVICE_LINE_MEMBER(RS232_A_TAG, rs232_port_device, rts_w), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, @@ -395,11 +395,11 @@ static const i8251_interface printer_8251_intf = static const i8251_interface terminal_8251_intf = { - DEVCB_DEVICE_LINE_MEMBER(TERMINAL_TAG, serial_terminal_device, tx_r), - DEVCB_DEVICE_LINE_MEMBER(TERMINAL_TAG, serial_terminal_device, rx_w), - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, + DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, rx), + DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, serial_port_device, tx), + DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, dsr_r), + DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, dtr_w), + DEVCB_DEVICE_LINE_MEMBER(RS232_B_TAG, rs232_port_device, rts_w), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, @@ -504,15 +504,36 @@ void xor100_state::fdc_drq_w(bool state) } } -/* Terminal Interface */ + +//------------------------------------------------- +// rs232_port_interface rs232a_intf +//------------------------------------------------- + +static const rs232_port_interface rs232a_intf = +{ + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL +}; + + +//------------------------------------------------- +// rs232_port_interface rs232b_intf +//------------------------------------------------- static DEVICE_INPUT_DEFAULTS_START( terminal ) DEVICE_INPUT_DEFAULTS( "TERM_FRAME", 0x0f, 0x06 ) // 9600 DEVICE_INPUT_DEFAULTS( "TERM_FRAME", 0x30, 0x00 ) // 8N1 DEVICE_INPUT_DEFAULTS_END -static GENERIC_TERMINAL_INTERFACE( xor100_terminal_intf ) +static const rs232_port_interface rs232b_intf = { + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, + DEVCB_NULL, DEVCB_NULL }; @@ -590,10 +611,9 @@ static MACHINE_CONFIG_START( xor100, xor100_state ) MCFG_FLOPPY_DRIVE_ADD(WD1795_TAG":1", xor100_floppies, "8ssdd", NULL, floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD(WD1795_TAG":2", xor100_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD(WD1795_TAG":3", xor100_floppies, NULL, NULL, floppy_image_device::default_floppy_formats) - MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, xor100_centronics_intf) - MCFG_SERIAL_TERMINAL_ADD(TERMINAL_TAG, xor100_terminal_intf, 9600) - MCFG_DEVICE_INPUT_DEFAULTS(terminal) + MCFG_RS232_PORT_ADD(RS232_A_TAG, rs232a_intf, default_rs232_devices, NULL, NULL) + MCFG_RS232_PORT_ADD(RS232_B_TAG, rs232b_intf, default_rs232_devices, "serial_terminal", terminal) // S-100 MCFG_S100_BUS_ADD(Z80_TAG, s100_intf) diff --git a/src/mess/includes/bullet.h b/src/mess/includes/bullet.h index 1f4b8feef66..9872d0536c0 100644 --- a/src/mess/includes/bullet.h +++ b/src/mess/includes/bullet.h @@ -3,7 +3,6 @@ #ifndef __BULLET__ #define __BULLET__ - #include "emu.h" #include "cpu/z80/z80.h" #include "machine/ctronics.h" @@ -11,7 +10,7 @@ #include "machine/scsibus.h" #include "machine/scsicb.h" #include "machine/scsihd.h" -#include "machine/terminal.h" +#include "machine/serial.h" #include "machine/wd_fdc.h" #include "machine/z80ctc.h" #include "machine/z80dart.h" @@ -26,6 +25,8 @@ #define MB8877_TAG "u55" #define CENTRONICS_TAG "centronics" #define SCSIBUS_TAG "scsi" +#define RS232_A_TAG "rs232a" +#define RS232_B_TAG "rs232b" class bullet_state : public driver_device { @@ -47,7 +48,6 @@ public: m_floppy6(*this, MB8877_TAG":6"), m_floppy7(*this, MB8877_TAG":7"), m_floppy(NULL), - m_terminal(*this, TERMINAL_TAG), m_centronics(*this, CENTRONICS_TAG), m_rom(*this, Z80_TAG), m_sw1(*this, "SW1"), @@ -71,7 +71,6 @@ public: required_device m_floppy6; required_device m_floppy7; floppy_image_device *m_floppy; - required_device m_terminal; required_device m_centronics; required_memory_region m_rom; required_ioport m_sw1; diff --git a/src/mess/includes/softbox.h b/src/mess/includes/softbox.h index a8cc76f0e46..3ecc1c53497 100644 --- a/src/mess/includes/softbox.h +++ b/src/mess/includes/softbox.h @@ -10,13 +10,14 @@ #include "machine/i8251.h" #include "machine/i8255.h" #include "machine/ieee488.h" -#include "machine/terminal.h" +#include "machine/serial.h" #define Z80_TAG "z80" #define I8251_TAG "i8251" #define I8255_0_TAG "ic17" #define I8255_1_TAG "ic16" #define COM8116_TAG "ic14" +#define RS232_TAG "rs232" class softbox_state : public driver_device { diff --git a/src/mess/includes/super6.h b/src/mess/includes/super6.h index 3a9c962f04a..906da7dc2af 100644 --- a/src/mess/includes/super6.h +++ b/src/mess/includes/super6.h @@ -8,7 +8,7 @@ #include "cpu/z80/z80daisy.h" #include "machine/com8116.h" #include "machine/ram.h" -#include "machine/terminal.h" +#include "machine/serial.h" #include "machine/wd_fdc.h" #include "machine/z80ctc.h" #include "machine/z80dart.h" @@ -23,7 +23,8 @@ #define WD2793_TAG "u27" #define BR1945_TAG "u31" #define SCREEN_TAG "screen" -#define TERMINAL_TAG "terminal" +#define RS232_A_TAG "rs232a" +#define RS232_B_TAG "rs232b" class super6_state : public driver_device { @@ -40,7 +41,6 @@ public: m_ram(*this, RAM_TAG), m_floppy0(*this, WD2793_TAG":0"), m_floppy1(*this, WD2793_TAG":1"), - m_terminal(*this, TERMINAL_TAG), m_rom(*this, Z80_TAG), m_j7(*this, "J7") { } @@ -55,7 +55,6 @@ public: required_device m_ram; required_device m_floppy0; required_device m_floppy1; - required_device m_terminal; required_memory_region m_rom; required_ioport m_j7; diff --git a/src/mess/includes/xor100.h b/src/mess/includes/xor100.h index a87f744056b..8dd4d992fcb 100644 --- a/src/mess/includes/xor100.h +++ b/src/mess/includes/xor100.h @@ -11,7 +11,7 @@ #include "machine/i8255.h" #include "machine/i8251.h" #include "machine/s100.h" -#include "machine/terminal.h" +#include "machine/serial.h" #include "machine/wd_fdc.h" #include "machine/z80ctc.h" @@ -24,6 +24,8 @@ #define Z80CTC_TAG "11b" #define WD1795_TAG "wd1795" #define CENTRONICS_TAG "centronics" +#define RS232_A_TAG "rs232a" +#define RS232_B_TAG "rs232b" class xor100_state : public driver_device { @@ -37,7 +39,6 @@ public: m_fdc(*this, WD1795_TAG), m_ctc(*this, Z80CTC_TAG), m_ram(*this, RAM_TAG), - m_terminal(*this, TERMINAL_TAG), m_centronics(*this, CENTRONICS_TAG), m_s100(*this, S100_TAG), m_floppy0(*this, WD1795_TAG":0"), @@ -54,7 +55,6 @@ public: required_device m_fdc; required_device m_ctc; required_device m_ram; - required_device m_terminal; required_device m_centronics; required_device m_s100; required_device m_floppy0;