com8116: devcb2. (nw)

This commit is contained in:
Curt Coder 2013-06-10 13:42:37 +00:00
parent 5f081ec3ee
commit ab3134c696
14 changed files with 151 additions and 209 deletions

View File

@ -7,7 +7,6 @@
**********************************************************************/
#include "emu.h"
#include "com8116.h"
@ -21,45 +20,41 @@
//**************************************************************************
// LIVE DEVICE
// DEVICE DEFINITIONS
//**************************************************************************
// device type definition
const device_type COM8116 = &device_creator<com8116_device>;
const int com8116_device::divisors_16X_5_0688MHz[] =
{ 6336, 4224, 2880, 2355, 2112, 1056, 528, 264, 176, 158, 132, 88, 66, 44, 33, 16 };
const int com8116_device::divisors_16X_4_9152MHz[] =
{ 6144, 4096, 2793, 2284, 2048, 1024, 512, 256, 171, 154, 128, 85, 64, 43, 32, 16 };
const int com8116_device::divisors_32X_5_0688MHz[] =
{ 3168, 2112, 1440, 1177, 1056, 792, 528, 264, 132, 88, 66, 44, 33, 22, 16, 8 };
//**************************************************************************
// LIVE DEVICE
//**************************************************************************
//-------------------------------------------------
// com8116_device - constructor
//-------------------------------------------------
com8116_device::com8116_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, COM8116, "COM8116", tag, owner, clock)
: device_t(mconfig, COM8116, "COM8116", tag, owner, clock),
m_write_fx4(*this),
m_write_fr(*this),
m_write_ft(*this)
{
}
//-------------------------------------------------
// device_config_complete - perform any
// operations now that the configuration is
// complete
//-------------------------------------------------
void com8116_device::device_config_complete()
{
// inherit a copy of the static data
const com8116_interface *intf = reinterpret_cast<const com8116_interface *>(static_config());
if (intf != NULL)
*static_cast<com8116_interface *>(this) = *intf;
// or initialize to defaults if none provided
else
{
memset(&m_out_fx4_cb, 0, sizeof(m_out_fx4_cb));
memset(&m_out_fr_cb, 0, sizeof(m_out_fr_cb));
memset(&m_out_ft_cb, 0, sizeof(m_out_ft_cb));
}
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
@ -67,16 +62,19 @@ void com8116_device::device_config_complete()
void com8116_device::device_start()
{
// resolve callbacks
m_out_fx4_func.resolve(m_out_fx4_cb, *this);
m_out_fr_func.resolve(m_out_fr_cb, *this);
m_out_ft_func.resolve(m_out_ft_cb, *this);
m_write_fx4.resolve_safe();
m_write_fr.resolve_safe();
m_write_ft.resolve_safe();
// allocate timers
m_fx4_timer = timer_alloc(TIMER_FX4);
m_fx4_timer->adjust(attotime::zero, 0, attotime::from_hz(clock() / 4));
m_fx4_timer->adjust(attotime::from_hz(clock() / 4), 0, attotime::from_hz(clock() / 4));
m_fr_timer = timer_alloc(TIMER_FR);
m_ft_timer = timer_alloc(TIMER_FT);
m_fr_divisors = divisors_16X_5_0688MHz;
m_ft_divisors = divisors_16X_5_0688MHz;
// register for state saving
save_item(NAME(m_fr));
save_item(NAME(m_ft));
@ -103,15 +101,15 @@ void com8116_device::device_timer(emu_timer &timer, device_timer_id id, int para
switch (id)
{
case TIMER_FX4:
m_out_fx4_func(1);
m_write_fx4(1);
break;
case TIMER_FR:
m_out_fr_func(1);
m_write_fr(1);
break;
case TIMER_FT:
m_out_ft_func(1);
m_write_ft(1);
break;
}
}

View File

@ -19,7 +19,6 @@
**********************************************************************/
#pragma once
#ifndef __COM8116__
@ -33,23 +32,11 @@
// INTERFACE CONFIGURATION MACROS
///*************************************************************************
#define MCFG_COM8116_ADD(_tag, _clock, _config) \
MCFG_DEVICE_ADD(_tag, COM8116, _clock) \
MCFG_DEVICE_CONFIG(_config)
#define COM8116_INTERFACE(name) \
const com8116_interface (name) =
#define COM8116_DIVISORS_16X_5_0688MHz \
{ 6336, 4224, 2880, 2355, 2112, 1056, 528, 264, 176, 158, 132, 88, 66, 44, 33, 16 }
#define COM8116_DIVISORS_16X_4_9152MHz \
{ 6144, 4096, 2793, 2284, 2048, 1024, 512, 256, 171, 154, 128, 85, 64, 43, 32, 16 }
#define COM8116_DIVISORS_32X_5_0688MHz \
{ 3168, 2112, 1440, 1177, 1056, 792, 528, 264, 132, 88, 66, 44, 33, 22, 16, 8 }
#define MCFG_COM8116_ADD(_tag, _clock, _fx4, _fr, _ft) \
MCFG_DEVICE_ADD(_tag, COM8116, _clock) \
downcast<com8116_device *>(device)->set_fx4_callback(DEVCB2_##_fx4); \
downcast<com8116_device *>(device)->set_fr_callback(DEVCB2_##_fr); \
downcast<com8116_device *>(device)->set_ft_callback(DEVCB2_##_ft);
@ -57,55 +44,51 @@
// TYPE DEFINITIONS
///*************************************************************************
// ======================> com8116_interface
struct com8116_interface
{
devcb_write_line m_out_fx4_cb;
devcb_write_line m_out_fr_cb;
devcb_write_line m_out_ft_cb;
// receiver divisor ROM (19-bit)
UINT32 m_fr_divisors[16];
// transmitter divisor ROM (19-bit)
UINT32 m_ft_divisors[16];
};
// ======================> com8116_device
class com8116_device : public device_t,
public com8116_interface
class com8116_device : public device_t
{
public:
// construction/destruction
com8116_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
template<class _fx4> void set_fx4_callback(_fx4 fx4) { m_write_fx4.set_callback(fx4); }
template<class _fr> void set_fr_callback(_fr fr) { m_write_fr.set_callback(fr); }
template<class _ft> void set_ft_callback(_ft ft) { m_write_ft.set_callback(ft); }
void str_w(UINT8 data);
DECLARE_WRITE8_MEMBER( str_w );
void stt_w(UINT8 data);
DECLARE_WRITE8_MEMBER( stt_w );
static const int divisors_16X_5_0688MHz[];
static const int divisors_16X_4_9152MHz[];
static const int divisors_32X_5_0688MHz[];
protected:
// device-level overrides
virtual void device_config_complete();
virtual void device_start();
virtual void device_reset();
virtual void device_timer(emu_timer &timer, device_timer_id id, int m_param, void *ptr);
private:
static const device_timer_id TIMER_FX4 = 0;
static const device_timer_id TIMER_FR = 1;
static const device_timer_id TIMER_FT = 2;
enum
{
TIMER_FX4,
TIMER_FR,
TIMER_FT
};
devcb_resolved_write_line m_out_fx4_func;
devcb_resolved_write_line m_out_fr_func;
devcb_resolved_write_line m_out_ft_func;
devcb2_write_line m_write_fx4;
devcb2_write_line m_write_fr;
devcb2_write_line m_write_ft;
int m_fr; // receiver frequency
int m_ft; // transmitter frequency
const int *m_fr_divisors;
const int *m_ft_divisors;
// timers
emu_timer *m_fx4_timer;
emu_timer *m_fr_timer;

View File

@ -170,23 +170,6 @@ static MC6845_INTERFACE( kaypro2x_crtc )
// downcast<z80sio_device *>(device)->tx_clock_in();
//}
static COM8116_INTERFACE( kayproii_brg_intf )
{
DEVCB_NULL, /* fX/4 output */
DEVCB_NULL, // DEVCB_DEVICE_LINE("z80sio", rx_tx_a_w), z80sio implementation has no clock pin
DEVCB_NULL, // DEVCB_DEVICE_LINE("z80sio", rx_tx_b_w),
COM8116_DIVISORS_16X_5_0688MHz, // receiver
COM8116_DIVISORS_16X_5_0688MHz // transmitter
};
static COM8116_INTERFACE( kaypro2x_brg_intf )
{
DEVCB_NULL, /* fX/4 output */
DEVCB_NULL,//DEVCB_DEVICE_LINE("z80sio", rx_tx_a_w),
DEVCB_NULL,//DEVCB_DEVICE_LINE("z80sio_2x", rx_tx_a_w),
COM8116_DIVISORS_16X_5_0688MHz, // receiver
COM8116_DIVISORS_16X_5_0688MHz // transmitter
};
/***********************************************************
@ -270,7 +253,7 @@ static MACHINE_CONFIG_START( kayproii, kaypro_state )
MCFG_QUICKLOAD_ADD("quickload", kaypro_state, kayproii, "com,cpm", 3)
MCFG_FD1793_ADD("wd1793", kaypro_wd1793_interface )
MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics)
MCFG_COM8116_ADD("brg", XTAL_5_0688MHz, kayproii_brg_intf) // WD1943, SMC8116
MCFG_COM8116_ADD("brg", XTAL_5_0688MHz, NULL, NULL, NULL) // WD1943, SMC8116
MCFG_Z80PIO_ADD( "z80pio_g", 2500000, kayproii_pio_g_intf )
MCFG_Z80PIO_ADD( "z80pio_s", 2500000, kayproii_pio_s_intf )
MCFG_Z80SIO_ADD( "z80sio", 4800, kaypro_sio_intf ) /* start at 300 baud */
@ -316,7 +299,7 @@ static MACHINE_CONFIG_START( kaypro2x, kaypro_state )
MCFG_QUICKLOAD_ADD("quickload", kaypro_state, kaypro2x, "com,cpm", 3)
MCFG_FD1793_ADD("wd1793", kaypro_wd1793_interface )
MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics)
MCFG_COM8116_ADD("brg", XTAL_5_0688MHz, kaypro2x_brg_intf) // WD1943, SMC8116
MCFG_COM8116_ADD("brg", XTAL_5_0688MHz, NULL, NULL, NULL) // WD1943, SMC8116
MCFG_Z80SIO_ADD( "z80sio", 4800, kaypro_sio_intf )
MCFG_Z80SIO_ADD( "z80sio_2x", 4800, kaypro_sio_intf ) /* extra sio for modem and printer */

View File

@ -255,15 +255,6 @@ WRITE_LINE_MEMBER( ob68k1a_state::rx_tx_1_w )
m_acia1->tx_clock_in();
}
static COM8116_INTERFACE( dbrg_intf )
{
DEVCB_NULL, /* fX/4 output */
DEVCB_DRIVER_LINE_MEMBER(ob68k1a_state, rx_tx_0_w),
DEVCB_DRIVER_LINE_MEMBER(ob68k1a_state, rx_tx_1_w),
COM8116_DIVISORS_16X_5_0688MHz, // receiver
COM8116_DIVISORS_16X_5_0688MHz // transmitter
};
//-------------------------------------------------
// rs232_port_interface rs232a_intf
@ -356,7 +347,7 @@ static MACHINE_CONFIG_START( ob68k1a, ob68k1a_state )
MCFG_PTM6840_ADD(MC6840_TAG, ptm_intf)
MCFG_ACIA6850_ADD(MC6850_0_TAG, acia0_intf)
MCFG_ACIA6850_ADD(MC6850_1_TAG, acia1_intf)
MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, dbrg_intf)
MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, NULL, WRITELINE(ob68k1a_state, rx_tx_0_w), WRITELINE(ob68k1a_state, rx_tx_1_w))
MCFG_RS232_PORT_ADD(RS232_A_TAG, rs232a_intf, default_rs232_devices, "serial_terminal")
MCFG_RS232_PORT_ADD(RS232_B_TAG, rs232b_intf, default_rs232_devices, NULL)

View File

@ -4,6 +4,83 @@
http://mikenaberezny.com/hardware/pet-cbm/sse-softbox-z80-computer/
Using the Corvus hard disk
--------------------------
The SoftBox distribution disk (softbox-distrib.d80) is configured for
a CBM 8050 as CP/M drives A/B and a 10MB Corvus hard disk as drives C/D.
Use the CHDMAN utility to create a 10MB hard disk image for the Corvus:
$ chdman createhd -o /path/to/corvus10mb.chd -chs 358,3,20 -ss 512
Start the SoftBox emulator with the floppy and hard disk images mounted:
$ mess softbox -flop1 /path/to/softbox-distrib.d80 \
-hard1 /path/to/corvus10mb.chd
Before the Corvus can be used under CP/M, it must be prepared
by running DIAG.COM and FORMAT.COM.
DIAG.COM
Enter "diag" (no arguments) at the CP/M prompt to run the Corvus diagnostics
program. This program will perform the Corvus low-level format.
Select option 6 (Update Controller Code) at the menu.
Enter "corvb184.fmt" when prompted for the filename.
Enter "y" at the confirmation prompts.
Enter "1" for the Corvus drive number (two prompts).
After formatting is complete, it will return to the menu.
Select option 3 (Read Controller Code Version #) at the menu.
Enter "1" for the Corvus drive number.
It should report "V18.4AP" and then return to the menu.
Select option 9 to return to CP/M.
FORMAT.COM
Enter "format" (no arguments) at the CP/M prompt to run the SoftBox disk
format program. This program will perform the CP/M filesystem format.
Enter drive letter "c" at the prompt.
Enter "y" to confirm the format.
After formatting is complete, it will prompt for a drive letter again.
Enter drive letter "d" at the prompt.
Enter "y" to confirm the format.
After formatting is complete, it will prompt for a drive letter again.
Press RETURN to return to CP/M.
STAT.COM
After all steps are completed, drives C and D should be usable from
CP/M. Each drive is one half of the Corvus 10MB disk. Running the
command "stat c: dsk:" should show 4712 kilobyte drive capacity.
Drive D should show the same information.
Using other Corvus hard disk sizes
----------------------------------
The SoftBox supports 5, 10, and 20 MB hard disks. The distribution disk
is configured for 10 MB as explained above. To use other sizes, make
a new image with CHDMAN. See the top of src/mess/includes/corvushd.h
for the parameters for the other drives.
After the image has been created and the SoftBox emulator started with
it mounted, the SoftBox BIOS needs to be told what size Corvus hard
disk is attached. Use the NEWSYS.COM utility to reconfigure the drive
size. When NEWSYS prompts for a source drive, enter "a" (the drive letter
of the CP/M distribution disk). Use option "d" (Disk drive assignment)
to reconfigure the Corvus size. After the change has been made, use option
"s" (Save new system) to write the configuration to the floppy (drive A) and
option "e" (Execute new system) to restart CP/M with the configuration.
DIAG.COM and FORMAT.COM can then be used to format the hard disk.
*/
#include "includes/softbox.h"
@ -246,20 +323,6 @@ static I8255A_INTERFACE( ppi1_intf )
};
//-------------------------------------------------
// COM8116_INTERFACE( dbrg_intf )
//-------------------------------------------------
static COM8116_INTERFACE( dbrg_intf )
{
DEVCB_NULL, // fX/4
DEVCB_DEVICE_LINE_MEMBER(I8251_TAG, i8251_device, rxc_w),
DEVCB_DEVICE_LINE_MEMBER(I8251_TAG, i8251_device, txc_w),
COM8116_DIVISORS_16X_5_0688MHz, // receiver
COM8116_DIVISORS_16X_5_0688MHz // transmitter
};
//-------------------------------------------------
// rs232_port_interface rs232_intf
//-------------------------------------------------
@ -313,7 +376,7 @@ static MACHINE_CONFIG_START( softbox, softbox_state )
MCFG_I8251_ADD(I8251_TAG, usart_intf)
MCFG_I8255A_ADD(I8255_0_TAG, ppi0_intf)
MCFG_I8255A_ADD(I8255_1_TAG, ppi1_intf)
MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, dbrg_intf)
MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, NULL, DEVWRITELINE(I8251_TAG, i8251_device, rxc_w), DEVWRITELINE(I8251_TAG, i8251_device, txc_w))
MCFG_CBM_IEEE488_ADD("c8050")
MCFG_HARDDISK_ADD("harddisk1")
MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, "serial_terminal")

View File

@ -455,15 +455,6 @@ WRITE_LINE_MEMBER( super6_state::fr_w )
m_ctc->trg1(state);
}
static COM8116_INTERFACE( brg_intf )
{
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(super6_state, fr_w),
DEVCB_DEVICE_LINE_MEMBER(Z80DART_TAG, z80dart_device, rxtxcb_w),
COM8116_DIVISORS_16X_5_0688MHz, // receiver
COM8116_DIVISORS_16X_5_0688MHz // transmitter
};
//-------------------------------------------------
// floppy_format_type floppy_formats
@ -596,7 +587,7 @@ static MACHINE_CONFIG_START( super6, super6_state )
MCFG_Z80DMA_ADD(Z80DMA_TAG, XTAL_24MHz/6, dma_intf)
MCFG_Z80PIO_ADD(Z80PIO_TAG, XTAL_24MHz/4, pio_intf)
MCFG_WD2793x_ADD(WD2793_TAG, 1000000)
MCFG_COM8116_ADD(BR1945_TAG, XTAL_5_0688MHz, brg_intf)
MCFG_COM8116_ADD(BR1945_TAG, XTAL_5_0688MHz, NULL, WRITELINE(super6_state, fr_w), DEVWRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w))
MCFG_FLOPPY_DRIVE_ADD(WD2793_TAG":0", super6_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(WD2793_TAG":1", super6_floppies, NULL, floppy_image_device::default_floppy_formats)
MCFG_RS232_PORT_ADD(RS232_A_TAG, rs232b_intf, default_rs232_devices, "serial_terminal")

View File

@ -265,15 +265,6 @@ WRITE_LINE_MEMBER( superslave_state::ft_w )
m_dart1->rxtxcb_w(state);
}
static COM8116_INTERFACE( dbrg_intf )
{
DEVCB_NULL,
DEVCB_DRIVER_LINE_MEMBER(superslave_state, fr_w),
DEVCB_DRIVER_LINE_MEMBER(superslave_state, ft_w),
COM8116_DIVISORS_16X_5_0688MHz, // receiver
COM8116_DIVISORS_16X_5_0688MHz // transmitter
};
//-------------------------------------------------
// Z80DART_INTERFACE( dart0_intf )
@ -466,7 +457,7 @@ static MACHINE_CONFIG_START( superslave, superslave_state )
MCFG_Z80DART_ADD(Z80DART_0_TAG, XTAL_8MHz/2, dart0_intf)
MCFG_Z80DART_ADD(Z80DART_1_TAG, XTAL_8MHz/2, dart1_intf)
MCFG_Z80PIO_ADD(Z80PIO_TAG, XTAL_8MHz/2, pio_intf)
MCFG_COM8116_ADD(BR1941_TAG, XTAL_5_0688MHz, dbrg_intf)
MCFG_COM8116_ADD(BR1941_TAG, XTAL_5_0688MHz, NULL, WRITELINE(superslave_state, fr_w), WRITELINE(superslave_state, ft_w))
MCFG_RS232_PORT_ADD(RS232_A_TAG, rs232a_intf, default_rs232_devices, "serial_terminal")
MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("serial_terminal", terminal)
MCFG_RS232_PORT_ADD(RS232_B_TAG, rs232b_intf, default_rs232_devices, NULL)

View File

@ -1031,15 +1031,6 @@ static const rs232_port_interface rs232_intf =
DEVCB_NULL
};
static COM8116_INTERFACE( dbrg_intf )
{
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER("i8251", i8251_device, rxc_w),
DEVCB_DEVICE_LINE_MEMBER("i8251", i8251_device, txc_w),
COM8116_DIVISORS_16X_5_0688MHz, // receiver
COM8116_DIVISORS_16X_5_0688MHz // transmitter
};
static MACHINE_CONFIG_START( vk100, vk100_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", I8085A, XTAL_5_0688MHz)
@ -1056,7 +1047,7 @@ static MACHINE_CONFIG_START( vk100, vk100_state )
/* i8251 uart */
MCFG_I8251_ADD("i8251", i8251_intf)
MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, NULL)
MCFG_COM8116_ADD(COM5016T_TAG, XTAL_5_0688MHz, dbrg_intf)
MCFG_COM8116_ADD(COM5016T_TAG, XTAL_5_0688MHz, NULL, DEVWRITELINE("i8251", i8251_device, rxc_w), DEVWRITELINE("i8251", i8251_device, txc_w))
MCFG_DEFAULT_LAYOUT( layout_vk100 )

View File

@ -428,15 +428,6 @@ static const rs232_port_interface rs232_intf =
DEVCB_NULL
};
static COM8116_INTERFACE( dbrg_intf )
{
DEVCB_NULL,
DEVCB_DEVICE_LINE_MEMBER("i8251", i8251_device, rxc_w),
DEVCB_DEVICE_LINE_MEMBER("i8251", i8251_device, txc_w),
COM8116_DIVISORS_16X_5_0688MHz, // receiver
COM8116_DIVISORS_16X_5_0688MHz // transmitter
};
static MACHINE_CONFIG_START( vt100, vt100_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu",I8080, XTAL_24_8832MHz / 9)
@ -465,7 +456,7 @@ static MACHINE_CONFIG_START( vt100, vt100_state )
/* i8251 uart */
MCFG_I8251_ADD("i8251", i8251_intf)
MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, NULL)
MCFG_COM8116_ADD(COM5016T_TAG, XTAL_5_0688MHz, dbrg_intf)
MCFG_COM8116_ADD(COM5016T_TAG, XTAL_5_0688MHz, NULL, DEVWRITELINE("i8251", i8251_device, rxc_w), DEVWRITELINE("i8251", i8251_device, txc_w))
/* audio hardware */

View File

@ -502,20 +502,6 @@ WRITE_LINE_MEMBER( xerox820_state::fr_w )
m_sio->txca_w(state);
}
WRITE_LINE_MEMBER( xerox820_state::ft_w )
{
m_sio->rxtxcb_w(state);
}
static COM8116_INTERFACE( com8116_intf )
{
DEVCB_NULL, /* fX/4 output */
DEVCB_DRIVER_LINE_MEMBER(xerox820_state, fr_w),
DEVCB_DRIVER_LINE_MEMBER(xerox820_state, ft_w),
COM8116_DIVISORS_16X_5_0688MHz, // receiver
COM8116_DIVISORS_16X_5_0688MHz // transmitter
};
WRITE8_MEMBER( xerox820_state::kbd_w )
{
m_keydata = ~data;
@ -738,7 +724,7 @@ static MACHINE_CONFIG_START( xerox820, xerox820_state )
MCFG_FD1771x_ADD(FD1771_TAG, XTAL_20MHz/20)
MCFG_FLOPPY_DRIVE_ADD(FD1771_TAG":0", xerox820_floppies, "sa400", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(FD1771_TAG":1", xerox820_floppies, "sa400", floppy_image_device::default_floppy_formats)
MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, com8116_intf)
MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, NULL, WRITELINE(xerox820_state, fr_w), DEVWRITELINE(Z80SIO_TAG, z80dart_device, rxtxcb_w))
MCFG_RS232_PORT_ADD(RS232_A_TAG, rs232a_intf, default_rs232_devices, NULL)
MCFG_RS232_PORT_ADD(RS232_B_TAG, rs232b_intf, default_rs232_devices, NULL)
MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)
@ -786,7 +772,7 @@ static MACHINE_CONFIG_START( xerox820ii, xerox820ii_state )
MCFG_FD1797x_ADD(FD1797_TAG, XTAL_16MHz/8)
MCFG_FLOPPY_DRIVE_ADD(FD1797_TAG":0", xerox820_floppies, "sa450", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(FD1797_TAG":1", xerox820_floppies, "sa450", floppy_image_device::default_floppy_formats)
MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, com8116_intf)
MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, NULL, WRITELINE(xerox820_state, fr_w), DEVWRITELINE(Z80SIO_TAG, z80dart_device, rxtxcb_w))
MCFG_RS232_PORT_ADD(RS232_A_TAG, rs232a_intf, default_rs232_devices, NULL)
MCFG_RS232_PORT_ADD(RS232_B_TAG, rs232b_intf, default_rs232_devices, NULL)
MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf)

View File

@ -367,15 +367,6 @@ WRITE_LINE_MEMBER( xor100_state::com5016_ft_w )
m_uart_b->receive_clock();
}
static COM8116_INTERFACE( com5016_intf )
{
DEVCB_NULL, /* fX/4 output */
DEVCB_DRIVER_LINE_MEMBER(xor100_state, com5016_fr_w), /* fR output */
DEVCB_DRIVER_LINE_MEMBER(xor100_state, com5016_ft_w), /* fT output */
COM8116_DIVISORS_16X_5_0688MHz, // receiver
COM8116_DIVISORS_16X_5_0688MHz // transmitter
};
/* Printer 8251A Interface */
static const i8251_interface printer_8251_intf =
@ -604,7 +595,7 @@ static MACHINE_CONFIG_START( xor100, xor100_state )
MCFG_I8251_ADD(I8251_B_TAG, /*XTAL_8MHz/2,*/ terminal_8251_intf)
MCFG_I8255A_ADD(I8255A_TAG, printer_8255_intf)
MCFG_Z80CTC_ADD(Z80CTC_TAG, XTAL_8MHz/2, ctc_intf)
MCFG_COM8116_ADD(COM5016_TAG, XTAL_5_0688MHz, com5016_intf)
MCFG_COM8116_ADD(COM5016_TAG, XTAL_5_0688MHz, NULL, WRITELINE(xor100_state, com5016_fr_w), WRITELINE(xor100_state, com5016_ft_w))
MCFG_FD1795x_ADD(WD1795_TAG, XTAL_8MHz/4)
MCFG_FLOPPY_DRIVE_ADD(WD1795_TAG":0", xor100_floppies, "8ssdd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(WD1795_TAG":1", xor100_floppies, "8ssdd", floppy_image_device::default_floppy_formats)

View File

@ -64,14 +64,10 @@ const rom_entry *s100_dj2db_device::device_rom_region() const
// COM8116_INTERFACE( brg_intf )
//-------------------------------------------------
static COM8116_INTERFACE( brg_intf )
WRITE_LINE_MEMBER( s100_dj2db_device::fr_w )
{
DEVCB_NULL,
DEVCB_NULL, // S1602 RRC/TRC
DEVCB_NULL,
COM8116_DIVISORS_16X_5_0688MHz, // receiver
COM8116_DIVISORS_16X_5_0688MHz // transmitter
};
// S1602 RRC/TRC
}
//-------------------------------------------------
@ -111,7 +107,7 @@ void s100_dj2db_device::fdc_drq_w(bool state)
//-------------------------------------------------
static MACHINE_CONFIG_FRAGMENT( s100_dj2db )
MCFG_COM8116_ADD(BR1941_TAG, XTAL_5_0688MHz, brg_intf)
MCFG_COM8116_ADD(BR1941_TAG, XTAL_5_0688MHz, NULL, DEVWRITELINE(DEVICE_SELF_OWNER, s100_dj2db_device, fr_w), NULL)
MCFG_MB8866x_ADD(MB8866_TAG, XTAL_10MHz/5)
MCFG_FLOPPY_DRIVE_ADD(MB8866_TAG":0", s100_dj2db_floppies, "8dsdd", floppy_image_device::default_floppy_formats)

View File

@ -39,6 +39,7 @@ public:
virtual ioport_constructor device_input_ports() const;
// not really public
DECLARE_WRITE_LINE_MEMBER( fr_w );
void fdc_intrq_w(bool state);
void fdc_drq_w(bool state);

View File

@ -247,20 +247,6 @@ static I8255A_INTERFACE( ppi1_intf )
};
//-------------------------------------------------
// COM8116_INTERFACE( dbrg_intf )
//-------------------------------------------------
static COM8116_INTERFACE( dbrg_intf )
{
DEVCB_NULL, // fX/4
DEVCB_DEVICE_LINE_MEMBER(I8251_TAG, i8251_device, rxc_w),
DEVCB_DEVICE_LINE_MEMBER(I8251_TAG, i8251_device, txc_w),
COM8116_DIVISORS_16X_5_0688MHz, // receiver
COM8116_DIVISORS_16X_5_0688MHz // transmitter
};
//-------------------------------------------------
// rs232_port_interface rs232_intf
//-------------------------------------------------
@ -289,7 +275,7 @@ static MACHINE_CONFIG_FRAGMENT( softbox )
MCFG_I8251_ADD(I8251_TAG, usart_intf)
MCFG_I8255A_ADD(I8255_0_TAG, ppi0_intf)
MCFG_I8255A_ADD(I8255_1_TAG, ppi1_intf)
MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, dbrg_intf)
MCFG_COM8116_ADD(COM8116_TAG, XTAL_5_0688MHz, NULL, DEVWRITELINE(I8251_TAG, i8251_device, rxc_w), DEVWRITELINE(I8251_TAG, i8251_device, txc_w))
MCFG_HARDDISK_ADD("harddisk1")
MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, NULL)
MACHINE_CONFIG_END