(MESS) wmbullet, softbox, super6, xor100: Refactored serial terminal to connect thru an RS-232 port. [Curt Coder]

This commit is contained in:
Curt Coder 2013-05-18 06:46:11 +00:00
parent a05a40b9e4
commit 64c9ce4de3
9 changed files with 126 additions and 66 deletions

View File

@ -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)

View File

@ -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
};

View File

@ -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")

View File

@ -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)

View File

@ -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)

View File

@ -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<floppy_connector> m_floppy6;
required_device<floppy_connector> m_floppy7;
floppy_image_device *m_floppy;
required_device<serial_terminal_device> m_terminal;
required_device<centronics_device> m_centronics;
required_memory_region m_rom;
required_ioport m_sw1;

View File

@ -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
{

View File

@ -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<ram_device> m_ram;
required_device<floppy_connector> m_floppy0;
required_device<floppy_connector> m_floppy1;
required_device<serial_terminal_device> m_terminal;
required_memory_region m_rom;
required_ioport m_j7;

View File

@ -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<fd1795_t> m_fdc;
required_device<z80ctc_device> m_ctc;
required_device<ram_device> m_ram;
required_device<generic_terminal_device> m_terminal;
required_device<centronics_device> m_centronics;
required_device<s100_device> m_s100;
required_device<floppy_connector> m_floppy0;