mirror of
https://github.com/holub/mame
synced 2025-10-05 00:38:58 +03:00
com8116: devcb2. (nw)
This commit is contained in:
parent
5f081ec3ee
commit
ab3134c696
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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 */
|
||||
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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")
|
||||
|
@ -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")
|
||||
|
@ -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)
|
||||
|
@ -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 )
|
||||
|
||||
|
@ -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 */
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user