summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2020-02-23 11:35:29 -0500
committer AJR <ajrhacker@users.noreply.github.com>2020-02-23 11:38:36 -0500
commit6b02c2bb13254bd0754d9284fb3a4e9ea6802f46 (patch)
tree9a68dd526a78e1116493f876b53cbbcaab12b0ad /src
parentab21d3bf5a50609e550e900c1912813227e4fc5d (diff)
Eliminate legacy Z80 SIO emulation
trs80m2: Modernize CTC clocking (nw)
Diffstat (limited to 'src')
-rw-r--r--src/devices/bus/wangpc/mcc.cpp2
-rw-r--r--src/devices/bus/wangpc/mcc.h3
-rw-r--r--src/devices/bus/wangpc/rtc.cpp4
-rw-r--r--src/devices/bus/wangpc/rtc.h4
-rw-r--r--src/devices/cpu/z80/tmpz84c015.cpp4
-rw-r--r--src/devices/cpu/z80/tmpz84c015.h6
-rw-r--r--src/devices/machine/z80dart.cpp33
-rw-r--r--src/devices/machine/z80dart.h122
-rw-r--r--src/devices/machine/z80sio.cpp5
-rw-r--r--src/mame/drivers/huebler.cpp6
-rw-r--r--src/mame/drivers/mcr.cpp4
-rw-r--r--src/mame/drivers/pve500.cpp9
-rw-r--r--src/mame/drivers/pwrview.cpp6
-rw-r--r--src/mame/drivers/rmnimbus.cpp18
-rw-r--r--src/mame/drivers/tdv2324.cpp12
-rw-r--r--src/mame/drivers/trs80m2.cpp40
-rw-r--r--src/mame/drivers/x1.cpp4
-rw-r--r--src/mame/drivers/xerox820.cpp26
-rw-r--r--src/mame/includes/huebler.h4
-rw-r--r--src/mame/includes/mcr.h4
-rw-r--r--src/mame/includes/rmnimbus.h4
-rw-r--r--src/mame/includes/tdv2324.h4
-rw-r--r--src/mame/includes/trs80m2.h4
-rw-r--r--src/mame/includes/x1.h2
-rw-r--r--src/mame/includes/xerox820.h4
25 files changed, 85 insertions, 249 deletions
diff --git a/src/devices/bus/wangpc/mcc.cpp b/src/devices/bus/wangpc/mcc.cpp
index a3419f7c373..7eb56eb479e 100644
--- a/src/devices/bus/wangpc/mcc.cpp
+++ b/src/devices/bus/wangpc/mcc.cpp
@@ -57,7 +57,7 @@ DEFINE_DEVICE_TYPE(WANGPC_MCC, wangpc_mcc_device, "wangpc_mcc", "Wang PC-PM043 M
void wangpc_mcc_device::device_add_mconfig(machine_config &config)
{
- Z80SIO2(config, m_sio, 4000000);
+ Z80SIO(config, m_sio, 4000000); // SIO/2?
Z80DART(config, m_dart, 4000000);
}
diff --git a/src/devices/bus/wangpc/mcc.h b/src/devices/bus/wangpc/mcc.h
index 58b8931f5fa..3f08991d785 100644
--- a/src/devices/bus/wangpc/mcc.h
+++ b/src/devices/bus/wangpc/mcc.h
@@ -13,6 +13,7 @@
#include "wangpc.h"
#include "machine/z80dart.h"
+#include "machine/z80sio.h"
@@ -42,7 +43,7 @@ protected:
private:
inline void set_irq(int state);
- required_device<z80dart_device> m_sio;
+ required_device<z80sio_device> m_sio;
required_device<z80dart_device> m_dart;
uint8_t m_option;
diff --git a/src/devices/bus/wangpc/rtc.cpp b/src/devices/bus/wangpc/rtc.cpp
index 21e395d031b..bb299017730 100644
--- a/src/devices/bus/wangpc/rtc.cpp
+++ b/src/devices/bus/wangpc/rtc.cpp
@@ -70,7 +70,7 @@ void wangpc_rtc_device::wangpc_rtc_mem(address_map &map)
void wangpc_rtc_device::wangpc_rtc_io(address_map &map)
{
map.global_mask(0xff);
- map(0x00, 0x03).rw(m_sio, FUNC(z80sio0_device::cd_ba_r), FUNC(z80sio0_device::cd_ba_w));
+ map(0x00, 0x03).rw(m_sio, FUNC(z80sio_device::cd_ba_r), FUNC(z80sio_device::cd_ba_w));
map(0x10, 0x1f).rw(AM9517A_TAG, FUNC(am9517a_device::read), FUNC(am9517a_device::write));
map(0x20, 0x23).rw(m_ctc0, FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
map(0x30, 0x30); //.w(FUNC(wangpc_rtc_device::clear_char_w));
@@ -120,7 +120,7 @@ void wangpc_rtc_device::device_add_mconfig(machine_config &config)
Z80CTC(config, m_ctc1, 2000000);
m_ctc1->intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
- Z80SIO0(config, m_sio, 2000000);
+ Z80SIO(config, m_sio, 2000000); // SIO/0?
m_sio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
}
diff --git a/src/devices/bus/wangpc/rtc.h b/src/devices/bus/wangpc/rtc.h
index 9233222a4f9..eb848b599ec 100644
--- a/src/devices/bus/wangpc/rtc.h
+++ b/src/devices/bus/wangpc/rtc.h
@@ -15,7 +15,7 @@
#include "cpu/z80/z80.h"
#include "machine/am9517a.h"
#include "machine/z80ctc.h"
-#include "machine/z80dart.h"
+#include "machine/z80sio.h"
@@ -51,7 +51,7 @@ private:
required_device<am9517a_device> m_dmac;
required_device<z80ctc_device> m_ctc0;
required_device<z80ctc_device> m_ctc1;
- required_device<z80dart_device> m_sio;
+ required_device<z80sio_device> m_sio;
optional_shared_ptr<uint8_t> m_char_ram;
void wangpc_rtc_io(address_map &map);
diff --git a/src/devices/cpu/z80/tmpz84c015.cpp b/src/devices/cpu/z80/tmpz84c015.cpp
index 1828907b99a..5c6b82a8f88 100644
--- a/src/devices/cpu/z80/tmpz84c015.cpp
+++ b/src/devices/cpu/z80/tmpz84c015.cpp
@@ -20,7 +20,7 @@ DEFINE_DEVICE_TYPE(TMPZ84C015, tmpz84c015_device, "tmpz84c015", "Toshiba TMPZ84C
void tmpz84c015_device::tmpz84c015_internal_io_map(address_map &map)
{
map(0x10, 0x13).mirror(0xff00).rw(m_ctc, FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
- map(0x18, 0x1b).mirror(0xff00).rw(m_sio, FUNC(z80dart_device::ba_cd_r), FUNC(z80dart_device::ba_cd_w));
+ map(0x18, 0x1b).mirror(0xff00).rw(m_sio, FUNC(z80sio_device::ba_cd_r), FUNC(z80sio_device::ba_cd_w));
map(0x1c, 0x1f).mirror(0xff00).rw(m_pio, FUNC(z80pio_device::read_alt), FUNC(z80pio_device::write_alt));
map(0xf4, 0xf4).mirror(0xff00).w(FUNC(tmpz84c015_device::irq_priority_w));
}
@@ -179,7 +179,7 @@ WRITE8_MEMBER(tmpz84c015_device::irq_priority_w)
void tmpz84c015_device::device_add_mconfig(machine_config &config)
{
/* basic machine hardware */
- Z80SIO0(config, m_sio, DERIVED_CLOCK(1,1));
+ Z80SIO(config, m_sio, DERIVED_CLOCK(1,1));
m_sio->out_int_callback().set_inputline(DEVICE_SELF, INPUT_LINE_IRQ0);
m_sio->out_txda_callback().set(FUNC(tmpz84c015_device::out_txda_cb_trampoline_w));
diff --git a/src/devices/cpu/z80/tmpz84c015.h b/src/devices/cpu/z80/tmpz84c015.h
index 1e6fdfda735..bb012d5cd14 100644
--- a/src/devices/cpu/z80/tmpz84c015.h
+++ b/src/devices/cpu/z80/tmpz84c015.h
@@ -13,9 +13,9 @@
#pragma once
#include "z80.h"
-#include "machine/z80dart.h"
#include "machine/z80ctc.h"
#include "machine/z80pio.h"
+#include "machine/z80sio.h"
/***************************************************************************
@@ -66,8 +66,6 @@ public:
DECLARE_WRITE_LINE_MEMBER( ctsb_w ) { m_sio->ctsb_w(state); }
DECLARE_WRITE_LINE_MEMBER( dcda_w ) { m_sio->dcda_w(state); }
DECLARE_WRITE_LINE_MEMBER( dcdb_w ) { m_sio->dcdb_w(state); }
- DECLARE_WRITE_LINE_MEMBER( ria_w ) { m_sio->ria_w(state); }
- DECLARE_WRITE_LINE_MEMBER( rib_w ) { m_sio->rib_w(state); }
DECLARE_WRITE_LINE_MEMBER( rxca_w ) { m_sio->rxca_w(state); }
DECLARE_WRITE_LINE_MEMBER( rxcb_w ) { m_sio->rxcb_w(state); }
DECLARE_WRITE_LINE_MEMBER( txca_w ) { m_sio->txca_w(state); }
@@ -127,7 +125,7 @@ protected:
private:
// devices/pointers
required_device<z80ctc_device> m_ctc;
- required_device<z80dart_device> m_sio;
+ required_device<z80sio_device> m_sio;
required_device<z80pio_device> m_pio;
// internal state
diff --git a/src/devices/machine/z80dart.cpp b/src/devices/machine/z80dart.cpp
index b0c61f083d0..a5f80551712 100644
--- a/src/devices/machine/z80dart.cpp
+++ b/src/devices/machine/z80dart.cpp
@@ -3,7 +3,6 @@
/***************************************************************************
Z80-DART Dual Asynchronous Receiver/Transmitter emulation
- Z80-SIO/0/1/2/3/4 Serial Input/Output Controller emulation
The z80dart/z80sio itself is based on an older intel serial chip, the i8274 MPSC
(see http://doc.chipfind.ru/pdf/intel/8274.pdf), which also has almost identical
@@ -22,8 +21,6 @@
- wr0 reset tx interrupt pending
- wait/ready
- 1.5 stop bits
- - synchronous mode (Z80-SIO/1,2)
- - SDLC mode (Z80-SIO/1,2)
*/
@@ -44,11 +41,6 @@
// device type definition
DEFINE_DEVICE_TYPE(Z80DART, z80dart_device, "z80dart", "Z80 DART")
DEFINE_DEVICE_TYPE(Z80DART_CHANNEL, z80dart_channel, "z80dart_channel", "Z80 DART channel")
-DEFINE_DEVICE_TYPE(Z80SIO0, z80sio0_device, "z80sio0", "Z80 SIO/0")
-DEFINE_DEVICE_TYPE(Z80SIO1, z80sio1_device, "z80sio1", "Z80 SIO/1")
-DEFINE_DEVICE_TYPE(Z80SIO2, z80sio2_device, "z80sio2", "Z80 SIO/2")
-DEFINE_DEVICE_TYPE(Z80SIO3, z80sio3_device, "z80sio3", "Z80 SIO/3")
-DEFINE_DEVICE_TYPE(Z80SIO4, z80sio4_device, "z80sio4", "Z80 SIO/4")
//-------------------------------------------------
@@ -105,31 +97,6 @@ z80dart_device::z80dart_device(const machine_config &mconfig, const char *tag, d
{
}
-z80sio0_device::z80sio0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : z80dart_device(mconfig, Z80SIO0, tag, owner, clock, TYPE_SIO0)
-{
-}
-
-z80sio1_device::z80sio1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : z80dart_device(mconfig, Z80SIO1, tag, owner, clock, TYPE_SIO1)
-{
-}
-
-z80sio2_device::z80sio2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : z80dart_device(mconfig, Z80SIO2, tag, owner, clock, TYPE_SIO2)
-{
-}
-
-z80sio3_device::z80sio3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : z80dart_device(mconfig, Z80SIO3, tag, owner, clock, TYPE_SIO3)
-{
-}
-
-z80sio4_device::z80sio4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : z80dart_device(mconfig, Z80SIO4, tag, owner, clock, TYPE_SIO4)
-{
-}
-
//-------------------------------------------------
// device_start - device-specific startup
diff --git a/src/devices/machine/z80dart.h b/src/devices/machine/z80dart.h
index 8e5aac52705..69a5b8caf26 100644
--- a/src/devices/machine/z80dart.h
+++ b/src/devices/machine/z80dart.h
@@ -3,7 +3,6 @@
/***************************************************************************
Z80-DART Dual Asynchronous Receiver/Transmitter emulation
- Z80-SIO/0/1/2/3/4 Serial Input/Output Controller emulation
****************************************************************************
_____ _____
@@ -28,72 +27,6 @@
_DCDA 19 | | 22 _DCDB
CLK 20 |_____________| 21 _RESET
- _____ _____
- D1 1 |* \_/ | 40 D0
- D3 2 | | 39 D2
- D5 3 | | 38 D4
- D7 4 | | 37 D6
- _INT 5 | | 36 _IORQ
- IEI 6 | | 35 _CE
- IEO 7 | | 34 B/_A
- _M1 8 | | 33 C/_D
- Vdd 9 | | 32 _RD
- _W/RDYA 10 | Z80-SIO/0 | 31 GND
- _SYNCA 11 | Z8440 | 30 _W/RDYB
- RxDA 12 | | 29 _SYNCB
- _RxCA 13 | | 28 RxDB
- _TxCA 14 | | 27 _RxTxCB
- TxDA 15 | | 26 TxDB
- _DTRA 16 | | 25 _DTRB
- _RTSA 17 | | 24 _RTSB
- _CTSA 18 | | 23 _CTSB
- _DCDA 19 | | 22 _DCDB
- CLK 20 |_____________| 21 _RESET
-
- _____ _____
- D1 1 |* \_/ | 40 D0
- D3 2 | | 39 D2
- D5 3 | | 38 D4
- D7 4 | | 37 D6
- _INT 5 | | 36 _IORQ
- IEI 6 | | 35 _CE
- IEO 7 | | 34 B/_A
- _M1 8 | | 33 C/_D
- Vdd 9 | | 32 _RD
- _W/RDYA 10 | Z80-SIO/1 | 31 GND
- _SYNCA 11 | Z8441 | 30 _W/RDYB
- RxDA 12 | | 29 _SYNCB
- _RxCA 13 | | 28 RxDB
- _TxCA 14 | | 27 _RxCB
- TxDA 15 | | 26 _TxCB
- _DTRA 16 | | 25 TxDB
- _RTSA 17 | | 24 _RTSB
- _CTSA 18 | | 23 _CTSB
- _DCDA 19 | | 22 _DCDB
- CLK 20 |_____________| 21 _RESET
-
- _____ _____
- D1 1 |* \_/ | 40 D0
- D3 2 | | 39 D2
- D5 3 | | 38 D4
- D7 4 | | 37 D6
- _INT 5 | | 36 _IORQ
- IEI 6 | | 35 _CE
- IEO 7 | | 34 B/_A
- _M1 8 | | 33 C/_D
- Vdd 9 | | 32 _RD
- _W/RDYA 10 | Z80-SIO/2 | 31 GND
- _SYNCA 11 | Z8442 | 30 _W/RDYB
- RxDA 12 | | 29 _RxDB
- _RxCA 13 | | 28 _RxCB
- _TxCA 14 | | 27 _TxCB
- TxDA 15 | | 26 TxDB
- _DTRA 16 | | 25 _DTRB
- _RTSA 17 | | 24 _RTSB
- _CTSA 18 | | 23 _CTSB
- _DCDA 19 | | 22 _DCDB
- CLK 20 |_____________| 21 _RESET
-
***************************************************************************/
#ifndef MAME_MACHINE_Z80DART_H
@@ -476,63 +409,8 @@ protected:
};
-// ======================> z80sio0_device
-
-class z80sio0_device : public z80dart_device
-{
-public:
- // construction/destruction
- z80sio0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
-};
-
-
-// ======================> z80sio1_device
-
-class z80sio1_device : public z80dart_device
-{
-public:
- // construction/destruction
- z80sio1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
-};
-
-
-// ======================> z80sio2_device
-
-class z80sio2_device : public z80dart_device
-{
-public:
- // construction/destruction
- z80sio2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
-};
-
-
-// ======================> z80sio3_device
-
-class z80sio3_device : public z80dart_device
-{
-public:
- // construction/destruction
- z80sio3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
-};
-
-
-// ======================> z80sio4_device
-
-class z80sio4_device : public z80dart_device
-{
-public:
- // construction/destruction
- z80sio4_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
-};
-
-
// device type definition
DECLARE_DEVICE_TYPE(Z80DART_CHANNEL, z80dart_channel)
DECLARE_DEVICE_TYPE(Z80DART, z80dart_device)
-DECLARE_DEVICE_TYPE(Z80SIO0, z80sio0_device)
-DECLARE_DEVICE_TYPE(Z80SIO1, z80sio1_device)
-DECLARE_DEVICE_TYPE(Z80SIO2, z80sio2_device)
-DECLARE_DEVICE_TYPE(Z80SIO3, z80sio3_device)
-DECLARE_DEVICE_TYPE(Z80SIO4, z80sio4_device)
#endif // MAME_MACHINE_Z80DART_H
diff --git a/src/devices/machine/z80sio.cpp b/src/devices/machine/z80sio.cpp
index e6c7532dc1f..767ef2e6e1e 100644
--- a/src/devices/machine/z80sio.cpp
+++ b/src/devices/machine/z80sio.cpp
@@ -13,7 +13,10 @@
check that an operation is invalid because of package type but relies
on the software to be adapated for the particular version.
- Package: DIP40 SIO/0, SIO/1, SIO/2, SIO/9
+ Package: DIP40 SIO/0 (RxCB and TxCB share one pin)
+ DIP40 SIO/1 (no DTRB pin)
+ DIP40 SIO/2 (no SYNCB pin)
+ DIP40 SIO/9 (channel B is nonfunctional)
QFP44 SIO/3
PLCC44 SIO/4
-------------------------------------------------------------------
diff --git a/src/mame/drivers/huebler.cpp b/src/mame/drivers/huebler.cpp
index f15cf98e907..fecc51f7567 100644
--- a/src/mame/drivers/huebler.cpp
+++ b/src/mame/drivers/huebler.cpp
@@ -119,7 +119,7 @@ void amu880_state::amu880_io(address_map &map)
map(0x0c, 0x0f).rw(Z80PIO2_TAG, FUNC(z80pio_device::read_alt), FUNC(z80pio_device::write_alt));
map(0x10, 0x13).rw(Z80PIO1_TAG, FUNC(z80pio_device::read_alt), FUNC(z80pio_device::write_alt));
map(0x14, 0x17).rw(Z80CTC_TAG, FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
- map(0x18, 0x1b).rw(m_sio, FUNC(z80sio0_device::ba_cd_r), FUNC(z80sio0_device::ba_cd_w));
+ map(0x18, 0x1b).rw(m_sio, FUNC(z80sio_device::ba_cd_r), FUNC(z80sio_device::ba_cd_w));
}
/* Input Ports */
@@ -369,7 +369,7 @@ void amu880_state::amu880(machine_config &config)
z80ctc_device& ctc(Z80CTC(config, Z80CTC_TAG, XTAL(10'000'000)/4));
ctc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
ctc.zc_callback<0>().set(FUNC(amu880_state::ctc_z0_w));
- ctc.zc_callback<1>().set(m_sio, FUNC(z80dart_device::rxtxcb_w));
+ ctc.zc_callback<1>().set(m_sio, FUNC(z80sio_device::rxtxcb_w));
ctc.zc_callback<2>().set(FUNC(amu880_state::ctc_z2_w));
z80pio_device& pio1(Z80PIO(config, Z80PIO1_TAG, XTAL(10'000'000)/4));
@@ -378,7 +378,7 @@ void amu880_state::amu880(machine_config &config)
z80pio_device& pio2(Z80PIO(config, Z80PIO2_TAG, XTAL(10'000'000)/4));
pio2.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
- Z80SIO0(config, m_sio, XTAL(10'000'000)/4); // U856
+ Z80SIO(config, m_sio, XTAL(10'000'000)/4); // U856
m_sio->out_txda_callback().set(FUNC(amu880_state::cassette_w));
m_sio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
diff --git a/src/mame/drivers/mcr.cpp b/src/mame/drivers/mcr.cpp
index ee2acf5d34c..75e23c47632 100644
--- a/src/mame/drivers/mcr.cpp
+++ b/src/mame/drivers/mcr.cpp
@@ -796,7 +796,7 @@ void mcr_nflfoot_state::ipu_91695_portmap(address_map &map)
map.unmap_value_high();
map.global_mask(0xff);
map(0x00, 0x03).mirror(0xe0).rw(m_ipu_pio0, FUNC(z80pio_device::read), FUNC(z80pio_device::write));
- map(0x04, 0x07).mirror(0xe0).rw(m_ipu_sio, FUNC(z80dart_device::cd_ba_r), FUNC(z80dart_device::cd_ba_w));
+ map(0x04, 0x07).mirror(0xe0).rw(m_ipu_sio, FUNC(z80sio_device::cd_ba_r), FUNC(z80sio_device::cd_ba_w));
map(0x08, 0x0b).mirror(0xe0).rw(m_ipu_ctc, FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
map(0x0c, 0x0f).mirror(0xe0).rw(m_ipu_pio1, FUNC(z80pio_device::read), FUNC(z80pio_device::write));
map(0x10, 0x13).mirror(0xe0).w(FUNC(mcr_nflfoot_state::ipu_laserdisk_w));
@@ -1891,7 +1891,7 @@ void mcr_nflfoot_state::mcr_91490_ipu(machine_config &config)
Z80PIO(config, m_ipu_pio1, 7372800/2);
m_ipu_pio1->out_int_callback().set_inputline(m_ipu, INPUT_LINE_IRQ0);
- Z80SIO0(config, m_ipu_sio, 7372800/2);
+ Z80SIO(config, m_ipu_sio, 7372800/2); // Z8440BB1
m_ipu_sio->out_int_callback().set_inputline(m_ipu, INPUT_LINE_IRQ0);
m_ipu_sio->out_txda_callback().set(FUNC(mcr_nflfoot_state::sio_txda_w));
m_ipu_sio->out_txdb_callback().set(FUNC(mcr_nflfoot_state::sio_txdb_w));
diff --git a/src/mame/drivers/pve500.cpp b/src/mame/drivers/pve500.cpp
index c8844ff77bd..30e3be2c217 100644
--- a/src/mame/drivers/pve500.cpp
+++ b/src/mame/drivers/pve500.cpp
@@ -52,6 +52,7 @@
#include "machine/cxd1095.h"
#include "machine/eepromser.h"
#include "machine/mb8421.h"
+#include "machine/z80sio.h"
#include "sound/beep.h"
#include "speaker.h"
@@ -138,7 +139,7 @@ static const z80_daisy_config maincpu_daisy_chain[] =
void pve500_state::maincpu_io(address_map &map)
{
- map(0x00, 0x03).mirror(0xff00).rw("external_sio", FUNC(z80sio0_device::cd_ba_r), FUNC(z80sio0_device::cd_ba_w));
+ map(0x00, 0x03).mirror(0xff00).rw("external_sio", FUNC(z80sio_device::cd_ba_r), FUNC(z80sio_device::cd_ba_w));
map(0x08, 0x0B).mirror(0xff00).rw("external_ctc", FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
}
@@ -375,7 +376,7 @@ void pve500_state::pve500(machine_config &config)
z80ctc_device& ctc(Z80CTC(config, "external_ctc", 12_MHz_XTAL / 2));
ctc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
- z80sio0_device& sio(Z80SIO0(config, "external_sio", 12_MHz_XTAL / 2));
+ z80sio_device& sio(Z80SIO(config, "external_sio", 12_MHz_XTAL / 2)); // TMPZ84C40AP-8
sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
sio.out_txda_callback().set("player2", FUNC(rs232_port_device::write_txd));
sio.out_txdb_callback().set("edl_inout", FUNC(rs232_port_device::write_txd));
@@ -417,10 +418,10 @@ void pve500_state::pve500(machine_config &config)
player1.rxd_handler().set(m_maincpu, FUNC(tmpz84c015_device::rxb_w));
rs232_port_device &player2(RS232_PORT(config, "player2", default_rs232_devices, nullptr));
- player2.rxd_handler().set("external_sio", FUNC(z80dart_device::rxa_w));
+ player2.rxd_handler().set("external_sio", FUNC(z80sio_device::rxa_w));
rs232_port_device &edl_inout(RS232_PORT(config, "edl_inout", default_rs232_devices, nullptr));
- edl_inout.rxd_handler().set("external_sio", FUNC(z80dart_device::rxb_w));
+ edl_inout.rxd_handler().set("external_sio", FUNC(z80sio_device::rxb_w));
rs232_port_device &switcher(RS232_PORT(config, "switcher", default_rs232_devices, nullptr));
switcher.rxd_handler().set(m_subcpu, FUNC(tmpz84c015_device::rxa_w));
diff --git a/src/mame/drivers/pwrview.cpp b/src/mame/drivers/pwrview.cpp
index 36ca813386e..8a02e68a93a 100644
--- a/src/mame/drivers/pwrview.cpp
+++ b/src/mame/drivers/pwrview.cpp
@@ -11,7 +11,7 @@
#include "imagedev/floppy.h"
#include "machine/upd765.h"
#include "machine/i8251.h"
-#include "machine/z80dart.h"
+#include "machine/z80sio.h"
#include "machine/pit8253.h"
#include "machine/bankdev.h"
#include "screen.h"
@@ -392,7 +392,7 @@ void pwrview_state::pwrview_io(address_map &map)
map(0xc08a, 0xc08a).rw("crtc", FUNC(hd6845s_device::register_r), FUNC(hd6845s_device::register_w));
map(0xc280, 0xc287).rw(FUNC(pwrview_state::unk3_r), FUNC(pwrview_state::unk3_w)).umask16(0x00ff);
map(0xc288, 0xc28f).rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
- map(0xc2a0, 0xc2a7).rw("sio", FUNC(z80sio2_device::cd_ba_r), FUNC(z80sio2_device::cd_ba_w)).umask16(0x00ff);
+ map(0xc2a0, 0xc2a7).rw("sio", FUNC(z80sio_device::cd_ba_r), FUNC(z80sio_device::cd_ba_w)).umask16(0x00ff);
map(0xc2c0, 0xc2c3).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
map(0xc2e0, 0xc2e3).m("fdc", FUNC(upd765a_device::map)).umask16(0x00ff);
map(0xc2e4, 0xc2e5).ram();
@@ -429,7 +429,7 @@ void pwrview_state::pwrview(machine_config &config)
I8251(config, "uart", 0);
- Z80SIO2(config, "sio", 4000000);
+ Z80SIO(config, "sio", 4000000); // Z8442BPS (SIO/2)
hd6845s_device &crtc(HD6845S(config, "crtc", XTAL(64'000'000)/64)); // clock unknown
crtc.set_char_width(32); /* ? */
diff --git a/src/mame/drivers/rmnimbus.cpp b/src/mame/drivers/rmnimbus.cpp
index a9ce8c7e1cc..fcf5857e60b 100644
--- a/src/mame/drivers/rmnimbus.cpp
+++ b/src/mame/drivers/rmnimbus.cpp
@@ -59,7 +59,7 @@ void rmnimbus_state::nimbus_io(address_map &map)
map(0x00a4, 0x00a4).rw(FUNC(rmnimbus_state::nimbus_mouse_js_r), FUNC(rmnimbus_state::nimbus_mouse_js_w));
map(0x00c0, 0x00cf).rw(FUNC(rmnimbus_state::nimbus_pc8031_r), FUNC(rmnimbus_state::nimbus_pc8031_w)).umask16(0x00ff);
map(0x00e0, 0x00ef).rw(AY8910_TAG, FUNC(ay8910_device::data_r), FUNC(ay8910_device::address_data_w)).umask16(0x00ff);
- map(0x00f0, 0x00f7).rw(m_z80sio, FUNC(z80sio2_device::cd_ba_r), FUNC(z80sio2_device::cd_ba_w)).umask16(0x00ff);
+ map(0x00f0, 0x00f7).rw(m_z80sio, FUNC(z80sio_device::cd_ba_r), FUNC(z80sio_device::cd_ba_w)).umask16(0x00ff);
map(0x0400, 0x0400).w(FUNC(rmnimbus_state::fdc_ctl_w));
map(0x0408, 0x040f).rw(m_fdc, FUNC(wd2793_device::read), FUNC(wd2793_device::write)).umask16(0x00ff);
map(0x0410, 0x041f).rw(FUNC(rmnimbus_state::scsi_r), FUNC(rmnimbus_state::scsi_w)).umask16(0x00ff);
@@ -112,8 +112,8 @@ void rmnimbus_state::nimbus(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &rmnimbus_state::nimbus_mem);
m_maincpu->set_addrmap(AS_IO, &rmnimbus_state::nimbus_io);
m_maincpu->read_slave_ack_callback().set(FUNC(rmnimbus_state::cascade_callback));
- m_maincpu->tmrout0_handler().set(Z80SIO_TAG, FUNC(z80dart_device::rxca_w));
- m_maincpu->tmrout1_handler().set(Z80SIO_TAG, FUNC(z80dart_device::rxtxcb_w));
+ m_maincpu->tmrout0_handler().set(m_z80sio, FUNC(z80sio_device::rxca_w));
+ m_maincpu->tmrout1_handler().set(m_z80sio, FUNC(z80sio_device::rxtxcb_w));
I8031(config, m_iocpu, 11059200);
m_iocpu->set_addrmap(AS_PROGRAM, &rmnimbus_state::nimbus_iocpu_mem);
@@ -168,20 +168,20 @@ void rmnimbus_state::nimbus(machine_config &config)
m_ram->set_extra_options("128K,256K,384K,512K,640K,1024K");
/* Peripheral chips */
- Z80SIO2(config, m_z80sio, 4000000);
+ Z80SIO(config, m_z80sio, 4000000); // Z0844006PSC (SIO/0)
m_z80sio->out_txdb_callback().set("rs232b", FUNC(rs232_port_device::write_txd));
m_z80sio->out_dtrb_callback().set("rs232b", FUNC(rs232_port_device::write_dtr));
m_z80sio->out_rtsb_callback().set("rs232b", FUNC(rs232_port_device::write_rts));
m_z80sio->out_int_callback().set(FUNC(rmnimbus_state::sio_interrupt));
rs232_port_device &rs232a(RS232_PORT(config, "rs232a", keyboard, "rmnkbd"));
- rs232a.rxd_handler().set(Z80SIO_TAG, FUNC(z80dart_device::rxa_w));
+ rs232a.rxd_handler().set(m_z80sio, FUNC(z80sio_device::rxa_w));
rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, nullptr));
- rs232b.rxd_handler().set(Z80SIO_TAG, FUNC(z80dart_device::rxb_w));
- rs232b.dcd_handler().set(Z80SIO_TAG, FUNC(z80dart_device::dcdb_w));
- rs232b.ri_handler().set(Z80SIO_TAG, FUNC(z80dart_device::rib_w));
- rs232b.cts_handler().set(Z80SIO_TAG, FUNC(z80dart_device::ctsb_w));
+ rs232b.rxd_handler().set(m_z80sio, FUNC(z80sio_device::rxb_w));
+ rs232b.dcd_handler().set(m_z80sio, FUNC(z80sio_device::dcdb_w));
+ rs232b.ri_handler().set(m_z80sio, FUNC(z80sio_device::syncb_w));
+ rs232b.cts_handler().set(m_z80sio, FUNC(z80sio_device::ctsb_w));
EEPROM_93C06_16BIT(config, m_eeprom);
diff --git a/src/mame/drivers/tdv2324.cpp b/src/mame/drivers/tdv2324.cpp
index f1f47245bab..a5add5199fa 100644
--- a/src/mame/drivers/tdv2324.cpp
+++ b/src/mame/drivers/tdv2324.cpp
@@ -28,7 +28,7 @@
*40-pin: P8085AH-2, F4265030, C INTEL '80 (cpus, there are 2 of these)
*28-pin: JAPAN 8442, 00009SS0, HN4827128G-25 (eprom, sticker: "962107")
*22-pin: ER3400, GI 8401HHA (EAROM)
- * -pin: MOSTEK C 8424, MK3887N-4 (Z80 Serial I/O Controller)
+ * -pin: MOSTEK C 8424, MK3887N-4 (Z80-SIO/2 Serial I/O Controller)
*20-pin: (pal, sticker: "961420 0")
*24-pin: D2716, L3263271, INTEL '77 (eprom, sticker: "962058 1")
*3 tiny 16-pins which look socketed (proms)
@@ -158,7 +158,7 @@ void tdv2324_state::tdv2324_io(address_map &map)
// map(0xe2, 0xe2).w(FUNC(tdv2324_state::tdv2324_main_io_e2)); console output
map(0xe6, 0xe6).r(FUNC(tdv2324_state::tdv2324_main_io_e6));
// map(0x, 0x).rw(P8253_5_0_TAG, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
-// map(0x, 0x).rw(MK3887N4_TAG, FUNC(z80dart_device::ba_cd_r), FUNC(z80dart_device::ba_cd_w));
+// map(0x, 0x).rw(MK3887N4_TAG, FUNC(z80sio_device::ba_cd_r), FUNC(z80sio_device::ba_cd_w));
// map(0x, 0x).rw(P8259A_TAG, FUNC(pic8259_device::read), FUNC(pic8259_device::write));
}
@@ -291,13 +291,13 @@ void tdv2324_state::tdv2324(machine_config &config)
TMS9927(config, m_tms, 25.39836_MHz_XTAL / 8).set_char_width(8);
// devices
- PIC8259(config, m_pic, 0);
+ PIC8259(config, m_pic);
- PIT8253(config, m_pit0, 0);
+ PIT8253(config, m_pit0);
- PIT8253(config, m_pit1, 0);
+ PIT8253(config, m_pit1);
- Z80SIO2(config, MK3887N4_TAG, 8000000/2);
+ Z80SIO(config, MK3887N4_TAG, 8000000/2);
FD1797(config, FD1797PL02_TAG, 8000000/4);
FLOPPY_CONNECTOR(config, FD1797PL02_TAG":0", tdv2324_floppies, "8dsdd", floppy_image_device::default_floppy_formats);
diff --git a/src/mame/drivers/trs80m2.cpp b/src/mame/drivers/trs80m2.cpp
index 85e9e14fb61..9c9f8d74c44 100644
--- a/src/mame/drivers/trs80m2.cpp
+++ b/src/mame/drivers/trs80m2.cpp
@@ -336,7 +336,7 @@ void trs80m2_state::z80_io(address_map &map)
map(0xe4, 0xe7).rw(FUNC(trs80m2_state::fdc_r), FUNC(trs80m2_state::fdc_w));
map(0xef, 0xef).w(FUNC(trs80m2_state::drvslt_w));
map(0xf0, 0xf3).rw(m_ctc, FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
- map(0xf4, 0xf7).rw(Z80SIO_TAG, FUNC(z80sio0_device::cd_ba_r), FUNC(z80sio0_device::cd_ba_w));
+ map(0xf4, 0xf7).rw(Z80SIO_TAG, FUNC(z80sio_device::cd_ba_r), FUNC(z80sio_device::cd_ba_w));
map(0xf8, 0xf8).rw(m_dmac, FUNC(z80dma_device::bus_r), FUNC(z80dma_device::bus_w));
map(0xf9, 0xf9).w(FUNC(trs80m2_state::rom_enable_w));
map(0xfc, 0xfc).r(FUNC(trs80m2_state::keyboard_r)).w(m_crtc, FUNC(mc6845_device::address_w));
@@ -609,18 +609,6 @@ WRITE_LINE_MEMBER( trs80m2_state::strobe_w )
// Z80CTC
//-------------------------------------------------
-TIMER_DEVICE_CALLBACK_MEMBER(trs80m2_state::ctc_tick)
-{
- m_ctc->trg0(1);
- m_ctc->trg0(0);
-
- m_ctc->trg1(1);
- m_ctc->trg1(0);
-
- m_ctc->trg2(1);
- m_ctc->trg2(0);
-}
-
static void trs80m2_floppies(device_slot_interface &device)
{
device.option_add("8ssdd", FLOPPY_8_SSDD); // Shugart SA-800
@@ -744,11 +732,12 @@ void trs80m2_state::trs80m2(machine_config &config)
Z80CTC(config, m_ctc, 8_MHz_XTAL / 2);
m_ctc->intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
- m_ctc->zc_callback<0>().set(Z80SIO_TAG, FUNC(z80dart_device::rxca_w));
- m_ctc->zc_callback<1>().set(Z80SIO_TAG, FUNC(z80dart_device::txca_w));
- m_ctc->zc_callback<2>().set(Z80SIO_TAG, FUNC(z80dart_device::rxtxcb_w));
-
- TIMER(config, "ctc").configure_periodic(FUNC(trs80m2_state::ctc_tick), attotime::from_hz(8_MHz_XTAL / 2 / 2));
+ m_ctc->set_clk<0>(8_MHz_XTAL / 2 / 2);
+ m_ctc->set_clk<1>(8_MHz_XTAL / 2 / 2);
+ m_ctc->set_clk<2>(8_MHz_XTAL / 2 / 2);
+ m_ctc->zc_callback<0>().set(Z80SIO_TAG, FUNC(z80sio_device::rxca_w));
+ m_ctc->zc_callback<1>().set(Z80SIO_TAG, FUNC(z80sio_device::txca_w));
+ m_ctc->zc_callback<2>().set(Z80SIO_TAG, FUNC(z80sio_device::rxtxcb_w));
Z80DMA(config, m_dmac, 8_MHz_XTAL / 2);
m_dmac->out_busreq_callback().set_inputline(m_maincpu, INPUT_LINE_HALT);
@@ -765,7 +754,7 @@ void trs80m2_state::trs80m2(machine_config &config)
m_pio->out_pb_callback().set("cent_data_out", FUNC(output_latch_device::bus_w));
m_pio->out_brdy_callback().set(FUNC(trs80m2_state::strobe_w));
- z80sio0_device& sio(Z80SIO0(config, Z80SIO_TAG, 8_MHz_XTAL / 2));
+ z80sio_device& sio(Z80SIO(config, Z80SIO_TAG, 8_MHz_XTAL / 2)); // SIO/0
sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
CENTRONICS(config, m_centronics, centronics_devices, "printer");
@@ -836,11 +825,12 @@ void trs80m16_state::trs80m16(machine_config &config)
Z80CTC(config, m_ctc, 8_MHz_XTAL / 2);
m_ctc->intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
- m_ctc->zc_callback<0>().set(Z80SIO_TAG, FUNC(z80dart_device::rxca_w));
- m_ctc->zc_callback<1>().set(Z80SIO_TAG, FUNC(z80dart_device::txca_w));
- m_ctc->zc_callback<2>().set(Z80SIO_TAG, FUNC(z80dart_device::rxtxcb_w));
-
- TIMER(config, "ctc").configure_periodic(FUNC(trs80m2_state::ctc_tick), attotime::from_hz(8_MHz_XTAL / 2 / 2));
+ m_ctc->set_clk<0>(8_MHz_XTAL / 2 / 2);
+ m_ctc->set_clk<1>(8_MHz_XTAL / 2 / 2);
+ m_ctc->set_clk<2>(8_MHz_XTAL / 2 / 2);
+ m_ctc->zc_callback<0>().set(Z80SIO_TAG, FUNC(z80sio_device::rxca_w));
+ m_ctc->zc_callback<1>().set(Z80SIO_TAG, FUNC(z80sio_device::txca_w));
+ m_ctc->zc_callback<2>().set(Z80SIO_TAG, FUNC(z80sio_device::rxtxcb_w));
Z80DMA(config, m_dmac, 8_MHz_XTAL / 2);
m_dmac->out_busreq_callback().set_inputline(m_maincpu, INPUT_LINE_HALT);
@@ -857,7 +847,7 @@ void trs80m16_state::trs80m16(machine_config &config)
m_pio->out_pb_callback().set("cent_data_out", FUNC(output_latch_device::bus_w));
m_pio->out_brdy_callback().set(FUNC(trs80m2_state::strobe_w));
- z80sio0_device& sio(Z80SIO0(config, Z80SIO_TAG, 8_MHz_XTAL / 2));
+ z80sio_device& sio(Z80SIO(config, Z80SIO_TAG, 8_MHz_XTAL / 2));
sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
AM9519(config, m_uic, 0);
diff --git a/src/mame/drivers/x1.cpp b/src/mame/drivers/x1.cpp
index b0ab8b7bee3..b55affe33ed 100644
--- a/src/mame/drivers/x1.cpp
+++ b/src/mame/drivers/x1.cpp
@@ -1404,7 +1404,7 @@ void x1_state::x1turbo_io_banks(address_map &map)
map(0x1000, 0x12ff).w(FUNC(x1_state::x1turboz_4096_palette_w));
map(0x1f80, 0x1f80).mirror(0x000f).rw(m_dma, FUNC(z80dma_device::bus_r), FUNC(z80dma_device::bus_w));
- map(0x1f90, 0x1f93).rw("sio", FUNC(z80sio0_device::ba_cd_r), FUNC(z80sio0_device::ba_cd_w));
+ map(0x1f90, 0x1f93).rw("sio", FUNC(z80sio_device::ba_cd_r), FUNC(z80sio_device::ba_cd_w));
map(0x1f98, 0x1f9f).rw(FUNC(x1_state::ext_sio_ctc_r), FUNC(x1_state::ext_sio_ctc_w));
map(0x1fb0, 0x1fb0).rw(FUNC(x1_state::x1turbo_pal_r), FUNC(x1_state::x1turbo_pal_w)); // Z only!
map(0x1fb8, 0x1fbf).rw(FUNC(x1_state::x1turbo_txpal_r), FUNC(x1_state::x1turbo_txpal_w)); // Z only!
@@ -2299,7 +2299,7 @@ void x1_state::x1turbo(machine_config &config)
m_iobank->set_map(&x1_state::x1turbo_io_banks);
- z80sio0_device& sio(Z80SIO0(config, "sio", MAIN_CLOCK/4));
+ z80sio_device& sio(Z80SIO(config, "sio", MAIN_CLOCK/4));
sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
Z80DMA(config, m_dma, MAIN_CLOCK/4);
diff --git a/src/mame/drivers/xerox820.cpp b/src/mame/drivers/xerox820.cpp
index f208d96f4c1..ef9b7abe611 100644
--- a/src/mame/drivers/xerox820.cpp
+++ b/src/mame/drivers/xerox820.cpp
@@ -181,7 +181,7 @@ void xerox820_state::xerox820_mem(address_map &map)
void xerox820_state::xerox820_io(address_map &map)
{
map(0x00, 0x00).mirror(0xff03).w(COM8116_TAG, FUNC(com8116_device::str_w));
- map(0x04, 0x07).mirror(0xff00).rw(m_sio, FUNC(z80sio0_device::ba_cd_r), FUNC(z80sio0_device::ba_cd_w));
+ map(0x04, 0x07).mirror(0xff00).rw(m_sio, FUNC(z80sio_device::ba_cd_r), FUNC(z80sio_device::ba_cd_w));
map(0x08, 0x0b).mirror(0xff00).rw(Z80PIO_GP_TAG, FUNC(z80pio_device::read_alt), FUNC(z80pio_device::write_alt));
map(0x0c, 0x0c).mirror(0xff03).w(COM8116_TAG, FUNC(com8116_device::stt_w));
map(0x10, 0x13).mirror(0xff00).rw(FUNC(xerox820_state::fdc_r), FUNC(xerox820_state::fdc_w));
@@ -639,7 +639,7 @@ void xerox820_state::xerox820(machine_config &config)
FLOPPY_CONNECTOR(config, FD1771_TAG":0", xerox820_floppies, "sa400l", floppy_image_device::default_floppy_formats);
FLOPPY_CONNECTOR(config, FD1771_TAG":1", xerox820_floppies, "sa400l", floppy_image_device::default_floppy_formats);
- Z80SIO0(config, m_sio, 20_MHz_XTAL / 8);
+ Z80SIO(config, m_sio, 20_MHz_XTAL / 8); // MK3884 (SIO/0)
m_sio->out_txda_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_txd));
m_sio->out_dtra_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_dtr));
m_sio->out_rtsa_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_rts));
@@ -649,15 +649,15 @@ void xerox820_state::xerox820(machine_config &config)
m_sio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, nullptr));
- rs232a.rxd_handler().set(m_sio, FUNC(z80sio0_device::rxa_w));
+ rs232a.rxd_handler().set(m_sio, FUNC(z80sio_device::rxa_w));
rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, nullptr));
- rs232b.rxd_handler().set(m_sio, FUNC(z80sio0_device::rxb_w));
+ rs232b.rxd_handler().set(m_sio, FUNC(z80sio_device::rxb_w));
com8116_device &dbrg(COM8116(config, COM8116_TAG, 5.0688_MHz_XTAL));
- dbrg.fr_handler().set(m_sio, FUNC(z80dart_device::rxca_w));
- dbrg.fr_handler().append(m_sio, FUNC(z80dart_device::txca_w));
- dbrg.ft_handler().set(m_sio, FUNC(z80dart_device::rxtxcb_w));
+ dbrg.fr_handler().set(m_sio, FUNC(z80sio_device::rxca_w));
+ dbrg.fr_handler().append(m_sio, FUNC(z80sio_device::txca_w));
+ dbrg.ft_handler().set(m_sio, FUNC(z80sio_device::rxtxcb_w));
XEROX_820_KEYBOARD(config, m_kb, 0);
m_kb->kbstb_wr_callback().set(m_kbpio, FUNC(z80pio_device::strobe_b));
@@ -728,7 +728,7 @@ void xerox820ii_state::xerox820ii(machine_config &config)
FLOPPY_CONNECTOR(config, FD1797_TAG":0", xerox820_floppies, "sa450", floppy_image_device::default_floppy_formats);
FLOPPY_CONNECTOR(config, FD1797_TAG":1", xerox820_floppies, "sa450", floppy_image_device::default_floppy_formats);
- Z80SIO0(config, m_sio, 16_MHz_XTAL / 4);
+ Z80SIO(config, m_sio, 16_MHz_XTAL / 4); // MK3884 (SIO/0)
m_sio->out_txda_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_txd));
m_sio->out_dtra_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_dtr));
m_sio->out_rtsa_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_rts));
@@ -738,15 +738,15 @@ void xerox820ii_state::xerox820ii(machine_config &config)
m_sio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, nullptr));
- rs232a.rxd_handler().set(m_sio, FUNC(z80sio0_device::rxa_w));
+ rs232a.rxd_handler().set(m_sio, FUNC(z80sio_device::rxa_w));
rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, nullptr));
- rs232b.rxd_handler().set(m_sio, FUNC(z80sio0_device::rxb_w));
+ rs232b.rxd_handler().set(m_sio, FUNC(z80sio_device::rxb_w));
com8116_device &dbrg(COM8116(config, COM8116_TAG, 5.0688_MHz_XTAL));
- dbrg.fr_handler().set(m_sio, FUNC(z80dart_device::rxca_w));
- dbrg.fr_handler().append(m_sio, FUNC(z80dart_device::txca_w));
- dbrg.ft_handler().set(m_sio, FUNC(z80dart_device::rxtxcb_w));
+ dbrg.fr_handler().set(m_sio, FUNC(z80sio_device::rxca_w));
+ dbrg.fr_handler().append(m_sio, FUNC(z80sio_device::txca_w));
+ dbrg.ft_handler().set(m_sio, FUNC(z80sio_device::rxtxcb_w));
XEROX_820_KEYBOARD(config, m_kb, 0);
m_kb->kbstb_wr_callback().set(m_kbpio, FUNC(z80pio_device::strobe_b));
diff --git a/src/mame/includes/huebler.h b/src/mame/includes/huebler.h
index 5df0dcb8ce6..6d679fae324 100644
--- a/src/mame/includes/huebler.h
+++ b/src/mame/includes/huebler.h
@@ -17,7 +17,7 @@
#include "machine/ram.h"
#include "machine/timer.h"
#include "machine/z80pio.h"
-#include "machine/z80dart.h"
+#include "machine/z80sio.h"
#include "machine/z80ctc.h"
#include "emupal.h"
@@ -49,7 +49,7 @@ protected:
private:
required_device<z80_device> m_maincpu;
required_device<cassette_image_device> m_cassette;
- required_device<z80dart_device> m_sio;
+ required_device<z80sio_device> m_sio;
required_device<palette_device> m_palette;
required_memory_region m_kb_rom;
required_memory_region m_char_rom;
diff --git a/src/mame/includes/mcr.h b/src/mame/includes/mcr.h
index 8276bd32bcf..15e3a1cc098 100644
--- a/src/mame/includes/mcr.h
+++ b/src/mame/includes/mcr.h
@@ -15,7 +15,7 @@
#include "machine/timer.h"
#include "machine/z80ctc.h"
#include "machine/z80pio.h"
-#include "machine/z80dart.h"
+#include "machine/z80sio.h"
#include "machine/watchdog.h"
#include "audio/bally.h"
#include "audio/midway.h"
@@ -214,7 +214,7 @@ private:
emu_timer *m_ipu_watchdog_timer;
required_device<z80_device> m_ipu;
- required_device<z80dart_device> m_ipu_sio;
+ required_device<z80sio_device> m_ipu_sio;
required_device<z80ctc_device> m_ipu_ctc;
required_device<z80pio_device> m_ipu_pio0;
required_device<z80pio_device> m_ipu_pio1;
diff --git a/src/mame/includes/rmnimbus.h b/src/mame/includes/rmnimbus.h
index d2f83a6edb6..ad9feff9319 100644
--- a/src/mame/includes/rmnimbus.h
+++ b/src/mame/includes/rmnimbus.h
@@ -14,7 +14,7 @@
#include "cpu/i86/i186.h"
#include "cpu/mcs51/mcs51.h"
-#include "machine/z80dart.h"
+#include "machine/z80sio.h"
#include "machine/wd_fdc.h"
#include "bus/scsi/scsi.h"
#include "machine/6522via.h"
@@ -106,7 +106,7 @@ private:
required_device<input_buffer_device> m_scsi_data_in;
required_device<output_latch_device> m_scsi_ctrl_out;
required_device<wd2793_device> m_fdc;
- required_device<z80sio2_device> m_z80sio;
+ required_device<z80sio_device> m_z80sio;
required_device<screen_device> m_screen;
required_ioport m_io_config;
required_ioport m_io_joystick0;
diff --git a/src/mame/includes/tdv2324.h b/src/mame/includes/tdv2324.h
index 69b4c2fa512..f111e2db1c6 100644
--- a/src/mame/includes/tdv2324.h
+++ b/src/mame/includes/tdv2324.h
@@ -14,7 +14,7 @@
#include "machine/pic8259.h"
#include "machine/ram.h"
#include "machine/wd_fdc.h"
-#include "machine/z80dart.h"
+#include "machine/z80sio.h"
#include "video/tms9927.h"
@@ -66,7 +66,7 @@ private:
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_subcpu;
required_device<m6802_cpu_device> m_fdccpu;
- required_device<z80dart_device> m_sio;
+ required_device<z80sio_device> m_sio;
required_device<pic8259_device> m_pic;
required_device<pit8253_device> m_pit0;
required_device<pit8253_device> m_pit1;
diff --git a/src/mame/includes/trs80m2.h b/src/mame/includes/trs80m2.h
index b60215aaa85..d70c41c9933 100644
--- a/src/mame/includes/trs80m2.h
+++ b/src/mame/includes/trs80m2.h
@@ -15,13 +15,12 @@
#include "machine/am9519.h"
#include "machine/keyboard.h"
#include "machine/ram.h"
-#include "machine/timer.h"
#include "machine/trs80m2kb.h"
#include "machine/wd_fdc.h"
#include "machine/z80ctc.h"
#include "machine/z80dma.h"
#include "machine/z80pio.h"
-#include "machine/z80dart.h"
+#include "machine/z80sio.h"
#include "video/mc6845.h"
#include "emupal.h"
@@ -87,7 +86,6 @@ public:
MC6845_UPDATE_ROW( crtc_update_row );
- TIMER_DEVICE_CALLBACK_MEMBER(ctc_tick);
DECLARE_READ8_MEMBER(io_read_byte);
DECLARE_WRITE8_MEMBER(io_write_byte);
diff --git a/src/mame/includes/x1.h b/src/mame/includes/x1.h
index f86a47784f5..b12867bc522 100644
--- a/src/mame/includes/x1.h
+++ b/src/mame/includes/x1.h
@@ -22,8 +22,8 @@
#include "machine/timer.h"
#include "machine/wd_fdc.h"
#include "machine/z80ctc.h"
-#include "machine/z80dart.h"
#include "machine/z80dma.h"
+#include "machine/z80sio.h"
#include "sound/ay8910.h"
#include "sound/ym2151.h"
#include "video/mc6845.h"
diff --git a/src/mame/includes/xerox820.h b/src/mame/includes/xerox820.h
index 20ec0f5258f..4627c469fe1 100644
--- a/src/mame/includes/xerox820.h
+++ b/src/mame/includes/xerox820.h
@@ -19,7 +19,7 @@
#include "machine/x820kb.h"
#include "machine/z80pio.h"
#include "machine/z80ctc.h"
-#include "machine/z80dart.h"
+#include "machine/z80sio.h"
#include "sound/spkrdev.h"
#include "sound/beep.h"
#include "imagedev/floppy.h"
@@ -101,7 +101,7 @@ protected:
required_device<z80_device> m_maincpu;
required_device<z80pio_device> m_kbpio;
required_device<z80ctc_device> m_ctc;
- required_device<z80sio0_device> m_sio;
+ required_device<z80sio_device> m_sio;
required_device<wd_fdc_device_base> m_fdc;
required_device<ram_device> m_ram;
required_device<palette_device> m_palette;