summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-09-16 20:44:28 -0400
committer AJR <ajrhacker@users.noreply.github.com>2018-09-16 20:48:43 -0400
commite15011b974e3ddb4704beb32a6a6a33d284cac3a (patch)
tree2a84c6683806cb29bb6e149e8d2a0602c6fe5d58
parent383c4c530c152ed2d797b233e92b6a9be1ab20f2 (diff)
i8251: Provide standard read/write handlers; eliminate memory space as argument (nw)
swa, wingwar, netmerc: Fix crashes due to reading from nonexistent memory region tandy2k: Correct 8251 register mapping (nw)
-rw-r--r--src/devices/bus/a2bus/agat7ports.cpp18
-rw-r--r--src/devices/bus/isa/myb3k_com.cpp9
-rw-r--r--src/devices/bus/isa/p1_sound.cpp8
-rw-r--r--src/devices/cpu/nec/v53.cpp12
-rw-r--r--src/devices/machine/i8251.cpp35
-rw-r--r--src/devices/machine/i8251.h15
-rw-r--r--src/mame/audio/dsbz80.cpp3
-rw-r--r--src/mame/audio/segam1audio.cpp3
-rw-r--r--src/mame/drivers/a7150.cpp3
-rw-r--r--src/mame/drivers/alphatpx.cpp6
-rw-r--r--src/mame/drivers/alphatro.cpp3
-rw-r--r--src/mame/drivers/amust.cpp6
-rw-r--r--src/mame/drivers/att4425.cpp3
-rw-r--r--src/mame/drivers/b2m.cpp6
-rw-r--r--src/mame/drivers/bingoc.cpp24
-rw-r--r--src/mame/drivers/bw2.cpp3
-rw-r--r--src/mame/drivers/cgc7900.cpp6
-rw-r--r--src/mame/drivers/cit101.cpp18
-rw-r--r--src/mame/drivers/cit220.cpp3
-rw-r--r--src/mame/drivers/compis.cpp18
-rw-r--r--src/mame/drivers/decwritr.cpp3
-rw-r--r--src/mame/drivers/duet16.cpp3
-rw-r--r--src/mame/drivers/dvk_ksm.cpp6
-rw-r--r--src/mame/drivers/ec7915.cpp3
-rw-r--r--src/mame/drivers/ecoinfr.cpp3
-rw-r--r--src/mame/drivers/einstein.cpp3
-rw-r--r--src/mame/drivers/elwro800.cpp18
-rw-r--r--src/mame/drivers/excali64.cpp3
-rw-r--r--src/mame/drivers/fanucspmg.cpp12
-rw-r--r--src/mame/drivers/fb01.cpp3
-rw-r--r--src/mame/drivers/fk1.cpp3
-rw-r--r--src/mame/drivers/fmtowns.cpp7
-rw-r--r--src/mame/drivers/h8.cpp6
-rw-r--r--src/mame/drivers/hp64k.cpp14
-rw-r--r--src/mame/drivers/ibm6580.cpp6
-rw-r--r--src/mame/drivers/icebox.cpp6
-rw-r--r--src/mame/drivers/imds2.cpp6
-rw-r--r--src/mame/drivers/imsai.cpp6
-rw-r--r--src/mame/drivers/ipc.cpp6
-rw-r--r--src/mame/drivers/irisha.cpp3
-rw-r--r--src/mame/drivers/isbc.cpp12
-rw-r--r--src/mame/drivers/isbc8010.cpp3
-rw-r--r--src/mame/drivers/isbc8030.cpp3
-rw-r--r--src/mame/drivers/kyocera.cpp3
-rw-r--r--src/mame/drivers/mbc200.cpp6
-rw-r--r--src/mame/drivers/mc1502.cpp3
-rw-r--r--src/mame/drivers/meritum.cpp3
-rw-r--r--src/mame/drivers/mfabfz.cpp9
-rw-r--r--src/mame/drivers/mice.cpp6
-rw-r--r--src/mame/drivers/microdec.cpp6
-rw-r--r--src/mame/drivers/model1.cpp22
-rw-r--r--src/mame/drivers/model2.cpp8
-rw-r--r--src/mame/drivers/model3.cpp8
-rw-r--r--src/mame/drivers/ms6102.cpp3
-rw-r--r--src/mame/drivers/multi8.cpp3
-rw-r--r--src/mame/drivers/nc.cpp6
-rw-r--r--src/mame/drivers/ngen.cpp26
-rw-r--r--src/mame/drivers/octopus.cpp3
-rw-r--r--src/mame/drivers/okean240.cpp6
-rw-r--r--src/mame/drivers/pc.cpp3
-rw-r--r--src/mame/drivers/pc100.cpp3
-rw-r--r--src/mame/drivers/pc6001.cpp9
-rw-r--r--src/mame/drivers/pc8001.cpp3
-rw-r--r--src/mame/drivers/pc8401a.cpp3
-rw-r--r--src/mame/drivers/pc8801.cpp3
-rw-r--r--src/mame/drivers/pc9801.cpp3
-rw-r--r--src/mame/drivers/peoplepc.cpp6
-rw-r--r--src/mame/drivers/pg685.cpp12
-rw-r--r--src/mame/drivers/pimps.cpp6
-rw-r--r--src/mame/drivers/poly88.cpp3
-rw-r--r--src/mame/drivers/pp01.cpp3
-rw-r--r--src/mame/drivers/pwrview.cpp3
-rw-r--r--src/mame/drivers/px8.cpp3
-rw-r--r--src/mame/drivers/qtsbc.cpp9
-rw-r--r--src/mame/drivers/rainbow.cpp3
-rw-r--r--src/mame/drivers/sage2.cpp6
-rw-r--r--src/mame/drivers/sbrain.cpp6
-rw-r--r--src/mame/drivers/scopus.cpp3
-rw-r--r--src/mame/drivers/sdk80.cpp3
-rw-r--r--src/mame/drivers/sdk86.cpp3
-rw-r--r--src/mame/drivers/seattlecmp.cpp3
-rw-r--r--src/mame/drivers/segam1.cpp3
-rw-r--r--src/mame/drivers/seibucats.cpp6
-rw-r--r--src/mame/drivers/selz80.cpp3
-rw-r--r--src/mame/drivers/sg1000.cpp3
-rw-r--r--src/mame/drivers/sm1800.cpp3
-rw-r--r--src/mame/drivers/sm7238.cpp9
-rw-r--r--src/mame/drivers/softbox.cpp3
-rw-r--r--src/mame/drivers/sys9002.cpp10
-rw-r--r--src/mame/drivers/tandy2k.cpp2
-rw-r--r--src/mame/drivers/tim100.cpp6
-rw-r--r--src/mame/drivers/trs80.cpp3
-rw-r--r--src/mame/drivers/tsispch.cpp3
-rw-r--r--src/mame/drivers/unior.cpp3
-rw-r--r--src/mame/drivers/v100.cpp6
-rw-r--r--src/mame/drivers/v102.cpp3
-rw-r--r--src/mame/drivers/v1050.cpp8
-rw-r--r--src/mame/drivers/v550.cpp3
-rw-r--r--src/mame/drivers/vector4.cpp9
-rw-r--r--src/mame/drivers/vectrix.cpp3
-rw-r--r--src/mame/drivers/vixen.cpp3
-rw-r--r--src/mame/drivers/vk100.cpp6
-rw-r--r--src/mame/drivers/votrpss.cpp3
-rw-r--r--src/mame/drivers/vp122.cpp3
-rw-r--r--src/mame/drivers/vt100.cpp3
-rw-r--r--src/mame/drivers/xor100.cpp6
-rw-r--r--src/mame/drivers/zorba.cpp9
-rw-r--r--src/mame/includes/model1.h6
-rw-r--r--src/mame/machine/mbc55x.cpp8
-rw-r--r--src/mame/machine/model1.cpp2
-rw-r--r--src/mame/machine/pk8020.cpp24
-rw-r--r--src/mame/machine/pmd85.cpp13
-rw-r--r--src/mame/video/model1.cpp2
113 files changed, 246 insertions, 491 deletions
diff --git a/src/devices/bus/a2bus/agat7ports.cpp b/src/devices/bus/a2bus/agat7ports.cpp
index aee242fb6fb..a2d8e8b81cc 100644
--- a/src/devices/bus/a2bus/agat7ports.cpp
+++ b/src/devices/bus/a2bus/agat7ports.cpp
@@ -122,14 +122,7 @@ uint8_t a2bus_agat7_ports_device::read_c0nx(uint8_t offset)
break;
case 8:
- if (offset & 1)
- {
- data = m_d10->status_r(machine().dummy_space(), 0);
- }
- else
- {
- data = m_d10->data_r(machine().dummy_space(), 0);
- }
+ data = m_d10->read(offset & 1);
break;
}
@@ -150,14 +143,7 @@ void a2bus_agat7_ports_device::write_c0nx(uint8_t offset, uint8_t data)
break;
case 8:
- if (offset & 1)
- {
- m_d10->control_w(machine().dummy_space(), 0, data);
- }
- else
- {
- m_d10->data_w(machine().dummy_space(), 0, data);
- }
+ m_d10->write(offset & 1, data);
break;
}
}
diff --git a/src/devices/bus/isa/myb3k_com.cpp b/src/devices/bus/isa/myb3k_com.cpp
index fdc0a527c6f..df0ce634ea7 100644
--- a/src/devices/bus/isa/myb3k_com.cpp
+++ b/src/devices/bus/isa/myb3k_com.cpp
@@ -101,12 +101,9 @@ void isa8_myb3k_com_device::device_reset()
{
// IO base factory setting is 0x540
uint32_t base = m_iobase->read();
- m_isa->install_device(base, base,
- read8_delegate(FUNC(i8251_device::data_r), subdevice<i8251_device>("usart")),
- write8_delegate(FUNC(i8251_device::data_w), subdevice<i8251_device>("usart")) );
- m_isa->install_device(base + 1, base + 1,
- read8_delegate(FUNC(i8251_device::status_r), subdevice<i8251_device>("usart")),
- write8_delegate(FUNC(i8251_device::control_w), subdevice<i8251_device>("usart")) );
+ m_isa->install_device(base, base + 1,
+ read8sm_delegate(FUNC(i8251_device::read), m_usart.target()),
+ write8sm_delegate(FUNC(i8251_device::write), m_usart.target()) );
m_isa->install_device(base + 2, base + 2,
read8_delegate(FUNC(isa8_myb3k_com_device::dce_status), this),
diff --git a/src/devices/bus/isa/p1_sound.cpp b/src/devices/bus/isa/p1_sound.cpp
index 62b0bbca1d6..15fa04af149 100644
--- a/src/devices/bus/isa/p1_sound.cpp
+++ b/src/devices/bus/isa/p1_sound.cpp
@@ -165,11 +165,11 @@ void p1_sound_device::device_start()
write8_delegate(FUNC(p1_sound_device::dac_w), this));
m_isa->install_memory(0xee000, 0xee000,
- read8_delegate(FUNC(i8251_device::data_r), (i8251_device*)m_midi),
- write8_delegate(FUNC(i8251_device::data_w), (i8251_device*)m_midi));
+ read8smo_delegate(FUNC(i8251_device::data_r), m_midi.target()),
+ write8smo_delegate(FUNC(i8251_device::data_w), m_midi.target()));
m_isa->install_memory(0xee002, 0xee002,
- read8_delegate(FUNC(i8251_device::status_r), (i8251_device*)m_midi),
- write8_delegate(FUNC(i8251_device::control_w), (i8251_device*)m_midi));
+ read8smo_delegate(FUNC(i8251_device::status_r), m_midi.target()),
+ write8smo_delegate(FUNC(i8251_device::control_w), m_midi.target()));
// sync generator
m_isa->install_memory(0xef000, 0xef007,
diff --git a/src/devices/cpu/nec/v53.cpp b/src/devices/cpu/nec/v53.cpp
index 82b811c873a..5abd00210c9 100644
--- a/src/devices/cpu/nec/v53.cpp
+++ b/src/devices/cpu/nec/v53.cpp
@@ -314,16 +314,16 @@ void v53_base_device::install_peripheral_io()
if (IOAG) // 8-bit
{
- space(AS_IO).install_readwrite_handler(base+0x00, base+0x01, read8_delegate(FUNC(v53_scu_device::data_r), (v53_scu_device*)m_v53scu), write8_delegate(FUNC(v53_scu_device::data_w), (v53_scu_device*)m_v53scu), 0x00ff);
- space(AS_IO).install_readwrite_handler(base+0x00, base+0x01, read8_delegate(FUNC(v53_scu_device::status_r), (v53_scu_device*)m_v53scu), write8_delegate(FUNC(v53_scu_device::command_w), (v53_scu_device*)m_v53scu), 0xff00);
- space(AS_IO).install_write_handler(base+0x02, base+0x03, write8_delegate(FUNC(v53_scu_device::mode_w), (v53_scu_device*)m_v53scu), 0x00ff);
+ space(AS_IO).install_readwrite_handler(base+0x00, base+0x01, read8smo_delegate(FUNC(v53_scu_device::data_r), m_v53scu.target()), write8smo_delegate(FUNC(v53_scu_device::data_w), m_v53scu.target()), 0x00ff);
+ space(AS_IO).install_readwrite_handler(base+0x00, base+0x01, read8smo_delegate(FUNC(v53_scu_device::status_r), m_v53scu.target()), write8smo_delegate(FUNC(v53_scu_device::command_w), m_v53scu.target()), 0xff00);
+ space(AS_IO).install_write_handler(base+0x02, base+0x03, write8smo_delegate(FUNC(v53_scu_device::mode_w), m_v53scu.target()), 0x00ff);
space(AS_IO).install_readwrite_handler(base+0x02, base+0x03, read8_delegate(FUNC(v53_base_device::scu_simk_r), this), write8_delegate(FUNC(v53_base_device::scu_simk_w), this), 0xff00);
}
else
{
- space(AS_IO).install_readwrite_handler(base+0x00, base+0x01, read8_delegate(FUNC(v53_scu_device::data_r), (v53_scu_device*)m_v53scu), write8_delegate(FUNC(v53_scu_device::data_w), (v53_scu_device*)m_v53scu), 0x00ff);
- space(AS_IO).install_readwrite_handler(base+0x02, base+0x03, read8_delegate(FUNC(v53_scu_device::status_r), (v53_scu_device*)m_v53scu), write8_delegate(FUNC(v53_scu_device::command_w), (v53_scu_device*)m_v53scu), 0x00ff);
- space(AS_IO).install_write_handler(base+0x04, base+0x05, write8_delegate(FUNC(v53_scu_device::mode_w), (v53_scu_device*)m_v53scu), 0x00ff);
+ space(AS_IO).install_readwrite_handler(base+0x00, base+0x01, read8smo_delegate(FUNC(v53_scu_device::data_r), m_v53scu.target()), write8smo_delegate(FUNC(v53_scu_device::data_w), m_v53scu.target()), 0x00ff);
+ space(AS_IO).install_readwrite_handler(base+0x02, base+0x03, read8smo_delegate(FUNC(v53_scu_device::status_r), m_v53scu.target()), write8smo_delegate(FUNC(v53_scu_device::command_w), m_v53scu.target()), 0x00ff);
+ space(AS_IO).install_write_handler(base+0x04, base+0x05, write8smo_delegate(FUNC(v53_scu_device::mode_w), m_v53scu.target()), 0x00ff);
space(AS_IO).install_readwrite_handler(base+0x06, base+0x07, read8_delegate(FUNC(v53_base_device::scu_simk_r), this), write8_delegate(FUNC(v53_base_device::scu_simk_w), this), 0x00ff);
}
diff --git a/src/devices/machine/i8251.cpp b/src/devices/machine/i8251.cpp
index d10c724a8f9..da883cd7b06 100644
--- a/src/devices/machine/i8251.cpp
+++ b/src/devices/machine/i8251.cpp
@@ -561,7 +561,7 @@ void i8251_device::mode_w(uint8_t data)
}
}
-WRITE8_MEMBER(i8251_device::control_w)
+void i8251_device::control_w(uint8_t data)
{
if (m_flags & I8251_EXPECTING_MODE)
{
@@ -599,7 +599,7 @@ WRITE8_MEMBER(i8251_device::control_w)
status_r
-------------------------------------------------*/
-READ8_MEMBER(i8251_device::status_r)
+uint8_t i8251_device::status_r()
{
uint8_t status = (m_dsr << 7) | m_status;
@@ -613,7 +613,7 @@ READ8_MEMBER(i8251_device::status_r)
data_w
-------------------------------------------------*/
-WRITE8_MEMBER(i8251_device::data_w)
+void i8251_device::data_w(uint8_t data)
{
m_tx_data = data;
@@ -666,7 +666,7 @@ void i8251_device::receive_character(uint8_t ch)
data_r - read data
-------------------------------------------------*/
-READ8_MEMBER(i8251_device::data_r)
+uint8_t i8251_device::data_r()
{
LOG("read data: %02x, STATUS=%02x\n",m_rx_data,m_status);
/* reading clears */
@@ -677,6 +677,23 @@ READ8_MEMBER(i8251_device::data_r)
}
+uint8_t i8251_device::read(offs_t offset)
+{
+ if (BIT(offset, 0))
+ return status_r();
+ else
+ return data_r();
+}
+
+void i8251_device::write(offs_t offset, uint8_t data)
+{
+ if (BIT(offset, 0))
+ control_w(data);
+ else
+ data_w(data);
+}
+
+
WRITE_LINE_MEMBER(i8251_device::write_rxd)
{
m_rxd = state;
@@ -723,13 +740,3 @@ READ_LINE_MEMBER(i8251_device::txrdy_r)
{
return is_tx_enabled() && (m_status & I8251_STATUS_TX_READY) != 0;
}
-
-WRITE8_MEMBER(v53_scu_device::command_w)
-{
- i8251_device::command_w(data);
-}
-
-WRITE8_MEMBER(v53_scu_device::mode_w)
-{
- i8251_device::mode_w(data);
-}
diff --git a/src/devices/machine/i8251.h b/src/devices/machine/i8251.h
index 2cf0e67cea6..4a9f7bb3eba 100644
--- a/src/devices/machine/i8251.h
+++ b/src/devices/machine/i8251.h
@@ -38,10 +38,13 @@ public:
auto txempty_handler() { return m_txempty_handler.bind(); }
auto syndet_handler() { return m_syndet_handler.bind(); }
- DECLARE_READ8_MEMBER(data_r);
- DECLARE_WRITE8_MEMBER(data_w);
- DECLARE_READ8_MEMBER(status_r);
- DECLARE_WRITE8_MEMBER(control_w);
+ uint8_t data_r();
+ void data_w(uint8_t data);
+ uint8_t status_r();
+ void control_w(uint8_t data);
+
+ uint8_t read(offs_t offset);
+ void write(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER( write_rxd );
DECLARE_WRITE_LINE_MEMBER( write_cts );
@@ -141,8 +144,8 @@ public:
// construction/destruction
v53_scu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_WRITE8_MEMBER(command_w);
- DECLARE_WRITE8_MEMBER(mode_w);
+ void command_w(uint8_t data) { i8251_device::command_w(data); }
+ void mode_w(uint8_t data) { i8251_device::mode_w(data); }
};
diff --git a/src/mame/audio/dsbz80.cpp b/src/mame/audio/dsbz80.cpp
index c521ac825b6..a55613566cd 100644
--- a/src/mame/audio/dsbz80.cpp
+++ b/src/mame/audio/dsbz80.cpp
@@ -29,8 +29,7 @@ void dsbz80_device::dsbz80io_map(address_map &map)
map(0xe5, 0xe7).w(FUNC(dsbz80_device::mpeg_end_w));
map(0xe8, 0xe8).w(FUNC(dsbz80_device::mpeg_volume_w));
map(0xe9, 0xe9).w(FUNC(dsbz80_device::mpeg_stereo_w));
- map(0xf0, 0xf0).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xf1, 0xf1).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xf0, 0xf1).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
}
diff --git a/src/mame/audio/segam1audio.cpp b/src/mame/audio/segam1audio.cpp
index 4638106761a..1dd071940b1 100644
--- a/src/mame/audio/segam1audio.cpp
+++ b/src/mame/audio/segam1audio.cpp
@@ -26,8 +26,7 @@ void segam1audio_device::segam1audio_map(address_map &map)
{
map(0x000000, 0x03ffff).rom();
map(0x080000, 0x09ffff).rom().region(M68000_TAG, 0x20000); // mirror of upper ROM socket
- map(0xc20001, 0xc20001).rw(UART_TAG, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xc20003, 0xc20003).rw(UART_TAG, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xc20000, 0xc20003).rw(UART_TAG, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
map(0xc40000, 0xc40007).rw(MULTIPCM_1_TAG, FUNC(multipcm_device::read), FUNC(multipcm_device::write)).umask16(0x00ff);
map(0xc40012, 0xc40013).nopw();
map(0xc50000, 0xc50001).w(FUNC(segam1audio_device::m1_snd_mpcm_bnk1_w));
diff --git a/src/mame/drivers/a7150.cpp b/src/mame/drivers/a7150.cpp
index ff46df7a1d8..ef44b6550a8 100644
--- a/src/mame/drivers/a7150.cpp
+++ b/src/mame/drivers/a7150.cpp
@@ -327,8 +327,7 @@ void a7150_state::a7150_io(address_map &map)
map(0x00c0, 0x00c3).rw(m_pic8259, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff);
map(0x00c8, 0x00cf).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff);
map(0x00d0, 0x00d7).rw(m_pit8253, FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
- map(0x00d8, 0x00d8).rw(m_uart8251, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x00da, 0x00da).rw(m_uart8251, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x00d8, 0x00db).rw(m_uart8251, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
map(0x0200, 0x0203).rw(FUNC(a7150_state::a7150_kgs_r), FUNC(a7150_state::a7150_kgs_w)).umask16(0x00ff); // ABS/KGS board
map(0x0300, 0x031f).unmaprw(); // ASP board #1
map(0x0320, 0x033f).unmaprw(); // ASP board #2
diff --git a/src/mame/drivers/alphatpx.cpp b/src/mame/drivers/alphatpx.cpp
index 71225a67d7e..6376b1b318a 100644
--- a/src/mame/drivers/alphatpx.cpp
+++ b/src/mame/drivers/alphatpx.cpp
@@ -269,8 +269,7 @@ void alphatp_12_state::alphatp2_map(address_map &map)
void alphatp_12_state::alphatp2_io(address_map &map)
{
map.unmap_value_high();
- map(0x04, 0x04).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x05, 0x05).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x04, 0x05).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x10, 0x11).rw(m_kbdmcu, FUNC(i8041_device::upi41_master_r), FUNC(i8041_device::upi41_master_w));
map(0x12, 0x12).w(FUNC(alphatp_12_state::beep_w));
map(0x50, 0x53).rw(FUNC(alphatp_12_state::fdc_r), FUNC(alphatp_12_state::fdc_w));
@@ -309,8 +308,7 @@ void alphatp_34_state::alphatp3_io(address_map &map)
{
map.unmap_value_high();
//AM_RANGE(0x00, 0x00) AM_READ // unknown
- map(0x04, 0x04).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x05, 0x05).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x04, 0x05).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x08, 0x09).rw(FUNC(alphatp_34_state::comm88_r), FUNC(alphatp_34_state::comm88_w));
map(0x10, 0x11).rw(m_kbdmcu, FUNC(i8041_device::upi41_master_r), FUNC(i8041_device::upi41_master_w));
map(0x12, 0x12).w(FUNC(alphatp_34_state::beep_w));
diff --git a/src/mame/drivers/alphatro.cpp b/src/mame/drivers/alphatro.cpp
index 7e69c57b949..09b1e263844 100644
--- a/src/mame/drivers/alphatro.cpp
+++ b/src/mame/drivers/alphatro.cpp
@@ -438,8 +438,7 @@ void alphatro_state::alphatro_io(address_map &map)
map(0x2b, 0x2b).portr("XB");
map(0x30, 0x30).rw(FUNC(alphatro_state::port30_r), FUNC(alphatro_state::port30_w));
// USART for cassette reading and writing
- map(0x40, 0x40).rw(m_usart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x41, 0x41).rw(m_usart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x40, 0x41).rw(m_usart, FUNC(i8251_device::read), FUNC(i8251_device::write));
// CRTC - HD46505 / HD6845SP
map(0x50, 0x50).w(m_crtc, FUNC(mc6845_device::address_w));
map(0x51, 0x51).rw(m_crtc, FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
diff --git a/src/mame/drivers/amust.cpp b/src/mame/drivers/amust.cpp
index 7f9f315c240..8a810dce397 100644
--- a/src/mame/drivers/amust.cpp
+++ b/src/mame/drivers/amust.cpp
@@ -193,10 +193,8 @@ void amust_state::io_map(address_map &map)
{
map.unmap_value_high();
map.global_mask(0xff);
- map(0x00, 0x00).rw("uart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x01, 0x01).rw("uart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x02, 0x02).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x03, 0x03).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x00, 0x01).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0x02, 0x03).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x04, 0x07).rw("ppi1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x08, 0x0b).rw("ppi2", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x0d, 0x0d).nopr().w(FUNC(amust_state::port0d_w));
diff --git a/src/mame/drivers/att4425.cpp b/src/mame/drivers/att4425.cpp
index 11cdf80bf5d..a6ce9fa3314 100644
--- a/src/mame/drivers/att4425.cpp
+++ b/src/mame/drivers/att4425.cpp
@@ -110,8 +110,7 @@ void att4425_state::att4425_mem(address_map &map)
void att4425_state::att4425_io(address_map &map)
{
map.global_mask(0xff);
- map(0x00, 0x00).rw(m_i8251, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x01, 0x01).rw(m_i8251, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x00, 0x01).rw(m_i8251, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x10, 0x10).w(FUNC(att4425_state::port10_w));
map(0x14, 0x14).rw(FUNC(att4425_state::port14_r), FUNC(att4425_state::port14_w));
map(0x15, 0x15).r(FUNC(att4425_state::port15_r));
diff --git a/src/mame/drivers/b2m.cpp b/src/mame/drivers/b2m.cpp
index e3584d0b747..f3c7b2ab6a6 100644
--- a/src/mame/drivers/b2m.cpp
+++ b/src/mame/drivers/b2m.cpp
@@ -42,8 +42,7 @@ void b2m_state::b2m_io(address_map &map)
map(0x0c, 0x0c).rw(FUNC(b2m_state::b2m_localmachine_r), FUNC(b2m_state::b2m_localmachine_w));
map(0x10, 0x13).rw(FUNC(b2m_state::b2m_palette_r), FUNC(b2m_state::b2m_palette_w));
map(0x14, 0x15).rw(m_pic, FUNC(pic8259_device::read), FUNC(pic8259_device::write));
- map(0x18, 0x18).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x19, 0x19).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x18, 0x19).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x1c, 0x1f).rw(m_fdc, FUNC(fd1793_device::read), FUNC(fd1793_device::write));
}
@@ -56,8 +55,7 @@ void b2m_state::b2m_rom_io(address_map &map)
map(0x0c, 0x0c).rw(FUNC(b2m_state::b2m_localmachine_r), FUNC(b2m_state::b2m_localmachine_w));
map(0x10, 0x13).rw(FUNC(b2m_state::b2m_palette_r), FUNC(b2m_state::b2m_palette_w));
map(0x14, 0x15).rw(m_pic, FUNC(pic8259_device::read), FUNC(pic8259_device::write));
- map(0x18, 0x18).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x19, 0x19).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x18, 0x19).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
}
diff --git a/src/mame/drivers/bingoc.cpp b/src/mame/drivers/bingoc.cpp
index f4b3e9c3296..51266ba6d62 100644
--- a/src/mame/drivers/bingoc.cpp
+++ b/src/mame/drivers/bingoc.cpp
@@ -129,22 +129,14 @@ WRITE8_MEMBER(bingoc_state::sound_play_w)
void bingoc_state::main_map(address_map &map)
{
map(0x000000, 0x03ffff).rom();
- map(0x100001, 0x100001).rw("uart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x100003, 0x100003).rw("uart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x100009, 0x100009).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x10000b, 0x10000b).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x100011, 0x100011).rw("uart3", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x100013, 0x100013).rw("uart3", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x100019, 0x100019).rw("uart4", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x10001b, 0x10001b).rw("uart4", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x100021, 0x100021).rw("uart5", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x100023, 0x100023).rw("uart5", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x100029, 0x100029).rw("uart6", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x10002b, 0x10002b).rw("uart6", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x100031, 0x100031).rw("uart7", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x100033, 0x100033).rw("uart7", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x100039, 0x100039).rw("uart8", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x10003b, 0x10003b).rw("uart8", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x100000, 0x100003).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
+ map(0x100008, 0x10000b).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
+ map(0x100010, 0x100013).rw("uart3", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
+ map(0x100018, 0x10001b).rw("uart4", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
+ map(0x100020, 0x100023).rw("uart5", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
+ map(0x100028, 0x10002b).rw("uart6", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
+ map(0x100030, 0x100033).rw("uart7", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
+ map(0x100038, 0x10003b).rw("uart8", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
map(0x180000, 0x18001f).rw("io", FUNC(sega_315_5338a_device::read), FUNC(sega_315_5338a_device::write)).umask16(0x00ff); //lamps?
#if 0 // !SOUND_TEST
map(0x180010, 0x180011).w(FUNC(bingoc_state::main_sound_latch_w)); //WRONG there...
diff --git a/src/mame/drivers/bw2.cpp b/src/mame/drivers/bw2.cpp
index 55dd940c817..564a3d000af 100644
--- a/src/mame/drivers/bw2.cpp
+++ b/src/mame/drivers/bw2.cpp
@@ -191,8 +191,7 @@ void bw2_state::bw2_io(address_map &map)
map(0x10, 0x13).rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
map(0x20, 0x21).m(m_lcdc, FUNC(msm6255_device::map));
map(0x30, 0x3f).rw(m_exp, FUNC(bw2_expansion_slot_device::slot_r), FUNC(bw2_expansion_slot_device::slot_w));
- map(0x40, 0x40).rw(m_uart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x41, 0x41).rw(m_uart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x40, 0x41).rw(m_uart, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x50, 0x50).w("cent_data_out", FUNC(output_latch_device::bus_w));
map(0x60, 0x63).rw(m_fdc, FUNC(wd2797_device::read), FUNC(wd2797_device::write));
map(0x70, 0x7f).rw(m_exp, FUNC(bw2_expansion_slot_device::modsel_r), FUNC(bw2_expansion_slot_device::modsel_w));
diff --git a/src/mame/drivers/cgc7900.cpp b/src/mame/drivers/cgc7900.cpp
index 6b02457a645..d14c727179c 100644
--- a/src/mame/drivers/cgc7900.cpp
+++ b/src/mame/drivers/cgc7900.cpp
@@ -347,10 +347,8 @@ void cgc7900_state::cgc7900_mem(address_map &map)
// AM_RANGE(0xefc446, 0xefc447) HVG Load dY
// AM_RANGE(0xefc448, 0xefc449) HVG Load Pixel Color
// AM_RANGE(0xefc44a, 0xefc44b) HVG Load Trip
- map(0xff8001, 0xff8001).rw(m_i8251_0, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xff8003, 0xff8003).rw(m_i8251_0, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0xff8041, 0xff8041).rw(m_i8251_1, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xff8043, 0xff8043).rw(m_i8251_1, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xff8000, 0xff8003).rw(m_i8251_0, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
+ map(0xff8040, 0xff8043).rw(m_i8251_1, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
map(0xff8080, 0xff8081).rw(FUNC(cgc7900_state::keyboard_r), FUNC(cgc7900_state::keyboard_w));
// AM_RANGE(0xff80c6, 0xff80c7) Joystick X axis
// AM_RANGE(0xff80ca, 0xff80cb) Joystick Y axis
diff --git a/src/mame/drivers/cit101.cpp b/src/mame/drivers/cit101.cpp
index 62848c4adbd..0f450b1276b 100644
--- a/src/mame/drivers/cit101.cpp
+++ b/src/mame/drivers/cit101.cpp
@@ -306,12 +306,9 @@ void cit101_state::mem_map(address_map &map)
map(0x8000, 0xbfff).ram().share("extraram"); // only 4 bits wide?
map(0x8000, 0x8000).w(FUNC(cit101_state::screen_control_w));
map(0xc000, 0xdfff).rw(FUNC(cit101_state::c000_ram_r), FUNC(cit101_state::c000_ram_w));
- map(0xfc00, 0xfc00).rw("auxuart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xfc01, 0xfc01).rw("auxuart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0xfc20, 0xfc20).rw("comuart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xfc21, 0xfc21).rw("comuart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0xfc40, 0xfc40).rw("kbduart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xfc41, 0xfc41).rw("kbduart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xfc00, 0xfc01).rw("auxuart", FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0xfc20, 0xfc21).rw("comuart", FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0xfc40, 0xfc41).rw("kbduart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0xfc60, 0xfc63).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xfc80, 0xfc83).w("pit0", FUNC(pit8253_device::write));
map(0xfcc0, 0xfcc3).w("pit1", FUNC(pit8253_device::write));
@@ -319,12 +316,9 @@ void cit101_state::mem_map(address_map &map)
void cit101_state::io_map(address_map &map)
{
- map(0x00, 0x00).rw("auxuart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x01, 0x01).rw("auxuart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x20, 0x20).rw("comuart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x21, 0x21).rw("comuart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x40, 0x40).rw("kbduart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x41, 0x41).rw("kbduart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x00, 0x01).rw("auxuart", FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0x20, 0x21).rw("comuart", FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0x40, 0x41).rw("kbduart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x60, 0x63).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xa0, 0xa0).w(FUNC(cit101_state::brightness_w));
map(0xe0, 0xe0).rw(FUNC(cit101_state::e0_latch_r), FUNC(cit101_state::e0_latch_w));
diff --git a/src/mame/drivers/cit220.cpp b/src/mame/drivers/cit220.cpp
index 851c8fd4309..17ce79680d7 100644
--- a/src/mame/drivers/cit220.cpp
+++ b/src/mame/drivers/cit220.cpp
@@ -70,8 +70,7 @@ void cit220_state::mem_map(address_map &map)
void cit220_state::io_map(address_map &map)
{
map(0x00, 0x0f).rw("duart", FUNC(scn2681_device::read), FUNC(scn2681_device::write));
- map(0x10, 0x10).rw("usart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x11, 0x11).rw("usart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x10, 0x11).rw("usart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x20, 0x27).rw("avdc", FUNC(scn2674_device::read), FUNC(scn2674_device::write));
map(0xa0, 0xa0).rw("avdc", FUNC(scn2674_device::attr_buffer_r), FUNC(scn2674_device::attr_buffer_w));
map(0xc0, 0xc0).rw("avdc", FUNC(scn2674_device::buffer_r), FUNC(scn2674_device::buffer_w));
diff --git a/src/mame/drivers/compis.cpp b/src/mame/drivers/compis.cpp
index ce70b1e4a79..a7ad6f25013 100644
--- a/src/mame/drivers/compis.cpp
+++ b/src/mame/drivers/compis.cpp
@@ -203,14 +203,7 @@ READ16_MEMBER( compis_state::pcs6_2_3_r )
}
else
{
- if (BIT(offset, 0))
- {
- return m_uart->status_r(space, 0) << 8;
- }
- else
- {
- return m_uart->data_r(space, 0) << 8;
- }
+ return m_uart->read(offset & 1) << 8;
}
}
@@ -221,14 +214,7 @@ WRITE16_MEMBER( compis_state::pcs6_2_3_w )
}
else
{
- if (BIT(offset, 0))
- {
- m_uart->control_w(space, 0, data >> 8);
- }
- else
- {
- m_uart->data_w(space, 0, data >> 8);
- }
+ m_uart->write(offset & 1, data >> 8);
}
}
diff --git a/src/mame/drivers/decwritr.cpp b/src/mame/drivers/decwritr.cpp
index b3eb04a948d..e1e2b450db7 100644
--- a/src/mame/drivers/decwritr.cpp
+++ b/src/mame/drivers/decwritr.cpp
@@ -255,8 +255,7 @@ void decwriter_state::la120_mem(address_map &map)
void decwriter_state::la120_io(address_map &map)
{
map.unmap_value_high();
- map(0x00, 0x00).mirror(0x7C).rw(m_usart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w)); // 8251 Data
- map(0x01, 0x01).mirror(0x7C).rw(m_usart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w)); // 8251 Status/Control
+ map(0x00, 0x01).mirror(0x7C).rw(m_usart, FUNC(i8251_device::read), FUNC(i8251_device::write)); // 8251 Status/Control
//map(0x02, 0x02).mirror(0x7D); // other io ports, serial loopback etc, see table 4-9 in TM
// 0x80-0xff are reserved for expansion (i.e. unused, open bus)
map.global_mask(0xff);
diff --git a/src/mame/drivers/duet16.cpp b/src/mame/drivers/duet16.cpp
index 382be0445b9..a66c507484d 100644
--- a/src/mame/drivers/duet16.cpp
+++ b/src/mame/drivers/duet16.cpp
@@ -157,8 +157,7 @@ void duet16_state::duet16_mem(address_map &map)
map(0xf8040, 0xf804f).rw("itm", FUNC(ptm6840_device::read), FUNC(ptm6840_device::write)).umask16(0x00ff);
map(0xf8060, 0xf8067).rw("bgpit", FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
map(0xf8080, 0xf8087).rw("sio", FUNC(upd7201_new_device::ba_cd_r), FUNC(upd7201_new_device::ba_cd_w)).umask16(0x00ff);
- map(0xf80a0, 0xf80a0).rw("kbusart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xf80a2, 0xf80a2).rw("kbusart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xf80a0, 0xf80a3).rw("kbusart", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
map(0xf80c0, 0xf80c0).rw("crtc", FUNC(h46505_device::status_r), FUNC(h46505_device::address_w));
map(0xf80c2, 0xf80c2).rw("crtc", FUNC(h46505_device::register_r), FUNC(h46505_device::register_w));
map(0xf80e0, 0xf80e3).rw("i8741", FUNC(upi41_cpu_device::upi41_master_r), FUNC(upi41_cpu_device::upi41_master_w)).umask16(0x00ff);
diff --git a/src/mame/drivers/dvk_ksm.cpp b/src/mame/drivers/dvk_ksm.cpp
index cc9e8188705..7f2ce0b4754 100644
--- a/src/mame/drivers/dvk_ksm.cpp
+++ b/src/mame/drivers/dvk_ksm.cpp
@@ -174,10 +174,8 @@ void ksm_state::ksm_io(address_map &map)
{
map.unmap_value_high();
map(0x5e, 0x5f).rw(m_pic8259, FUNC(pic8259_device::read), FUNC(pic8259_device::write));
- map(0x6e, 0x6e).rw(m_i8251kbd, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x6f, 0x6f).rw(m_i8251kbd, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x76, 0x76).rw(m_i8251line, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x77, 0x77).rw(m_i8251line, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x6e, 0x6f).rw(m_i8251kbd, FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0x76, 0x77).rw(m_i8251line, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x78, 0x7b).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write));
}
diff --git a/src/mame/drivers/ec7915.cpp b/src/mame/drivers/ec7915.cpp
index 37edfc352fa..e2e8de9a3fb 100644
--- a/src/mame/drivers/ec7915.cpp
+++ b/src/mame/drivers/ec7915.cpp
@@ -46,8 +46,7 @@ void ec7915_state::io_map(address_map &map)
{
map(0x00, 0x03).rw("ppi1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x04, 0x07).rw("ppi2", FUNC(i8255_device::read), FUNC(i8255_device::write));
- map(0x08, 0x08).rw("usart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x09, 0x09).rw("usart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x08, 0x09).rw("usart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x0c, 0x0f).rw("ppi3", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x10, 0x13).w("pit", FUNC(pit8253_device::write));
//map(0x14, 0x14).w("picu", FUNC(i8214_device::write));
diff --git a/src/mame/drivers/ecoinfr.cpp b/src/mame/drivers/ecoinfr.cpp
index bd7facf240d..18cc6751b29 100644
--- a/src/mame/drivers/ecoinfr.cpp
+++ b/src/mame/drivers/ecoinfr.cpp
@@ -488,8 +488,7 @@ void ecoinfr_state::memmap(address_map &map)
map(0x0000, 0x7fff).rom();
map(0x8000, 0x9fff).ram();
- map(0xa000, 0xa000).rw(UPD8251_TAG, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xa001, 0xa001).rw(UPD8251_TAG, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xa000, 0xa001).rw(UPD8251_TAG, FUNC(i8251_device::read), FUNC(i8251_device::write));
}
diff --git a/src/mame/drivers/einstein.cpp b/src/mame/drivers/einstein.cpp
index 7b5a7951cd0..a284efde7fc 100644
--- a/src/mame/drivers/einstein.cpp
+++ b/src/mame/drivers/einstein.cpp
@@ -430,8 +430,7 @@ void einstein_state::einstein_io(address_map &map)
map(0x03, 0x03).mirror(0xff04).w(m_psg, FUNC(ay8910_device::data_w));
map(0x08, 0x08).mirror(0xff06).rw("vdp", FUNC(tms9129_device::vram_r), FUNC(tms9129_device::vram_w));
map(0x09, 0x09).mirror(0xff06).rw("vdp", FUNC(tms9129_device::register_r), FUNC(tms9129_device::register_w));
- map(0x10, 0x10).mirror(0xff06).rw(IC_I060, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x11, 0x11).mirror(0xff06).rw(IC_I060, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x10, 0x11).mirror(0xff06).rw(IC_I060, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x18, 0x1b).mirror(0xff04).rw(m_fdc, FUNC(wd1770_device::read), FUNC(wd1770_device::write));
map(0x20, 0x20).mirror(0xff00).rw(FUNC(einstein_state::kybint_msk_r), FUNC(einstein_state::kybint_msk_w));
map(0x21, 0x21).mirror(0xff00).w(FUNC(einstein_state::adcint_msk_w));
diff --git a/src/mame/drivers/elwro800.cpp b/src/mame/drivers/elwro800.cpp
index 3cc87788e42..295fe086310 100644
--- a/src/mame/drivers/elwro800.cpp
+++ b/src/mame/drivers/elwro800.cpp
@@ -294,14 +294,7 @@ READ8_MEMBER(elwro800_state::elwro800jr_io_r)
else if (!BIT(cs,4))
{
// CS51
- if (offset & 1)
- {
- return m_i8251->status_r(space, 0);
- }
- else
- {
- return m_i8251->data_r(space, 0);
- }
+ return m_i8251->read(offset & 1);
}
else if (!BIT(cs,5))
{
@@ -345,14 +338,7 @@ WRITE8_MEMBER(elwro800_state::elwro800jr_io_w)
else if (!BIT(cs,4))
{
// CS51
- if (offset & 1)
- {
- m_i8251->control_w(space, 0, data);
- }
- else
- {
- m_i8251->data_w(space, 0, data);
- }
+ m_i8251->write(offset & 1, data);
}
else if (!BIT(cs,5))
{
diff --git a/src/mame/drivers/excali64.cpp b/src/mame/drivers/excali64.cpp
index 037615aee37..8111dc96b40 100644
--- a/src/mame/drivers/excali64.cpp
+++ b/src/mame/drivers/excali64.cpp
@@ -136,8 +136,7 @@ void excali64_state::io_map(address_map &map)
{
map.global_mask(0xff);
map(0x00, 0x0f).r(FUNC(excali64_state::port00_r));
- map(0x10, 0x10).mirror(0x0e).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x11, 0x11).mirror(0x0e).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x10, 0x11).mirror(0x0e).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x20, 0x23).mirror(0x0c).rw("pit", FUNC(pit8253_device::read), FUNC(pit8253_device::write));
map(0x30, 0x30).mirror(0x0e).rw(m_crtc, FUNC(mc6845_device::status_r), FUNC(mc6845_device::address_w));
map(0x31, 0x31).mirror(0x0e).rw(m_crtc, FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
diff --git a/src/mame/drivers/fanucspmg.cpp b/src/mame/drivers/fanucspmg.cpp
index b367305eaa9..a444ee32f8b 100644
--- a/src/mame/drivers/fanucspmg.cpp
+++ b/src/mame/drivers/fanucspmg.cpp
@@ -728,14 +728,10 @@ void fanucspmg_state::maincpu_mem(address_map &map)
map(0xf0000, 0xf0003).rw(m_pic0, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff);
map(0xf0004, 0xf0007).m(m_fdc, FUNC(upd765a_device::map)).umask16(0x00ff);
map(0xf0008, 0xf000f).rw(m_pit0, FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
- map(0xf0010, 0xf0010).rw(m_usart0, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xf0012, 0xf0012).rw(m_usart0, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0xf0014, 0xf0014).rw(m_usart1, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xf0016, 0xf0016).rw(m_usart1, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0xf0018, 0xf0018).rw(m_usart2, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xf001a, 0xf001a).rw(m_usart2, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0xf001c, 0xf001c).rw(m_usart3, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xf001e, 0xf001e).rw(m_usart3, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xf0010, 0xf0013).rw(m_usart0, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
+ map(0xf0014, 0xf0017).rw(m_usart1, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
+ map(0xf0018, 0xf001b).rw(m_usart2, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
+ map(0xf001c, 0xf001f).rw(m_usart3, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
map(0xf0020, 0xf0029).rw(m_dmac, FUNC(i8257_device::read), FUNC(i8257_device::write));
map(0xf0042, 0xf0043).r(FUNC(fanucspmg_state::magic_r));
map(0xf0046, 0xf0046).w(FUNC(fanucspmg_state::dma_page_w));
diff --git a/src/mame/drivers/fb01.cpp b/src/mame/drivers/fb01.cpp
index fc1834ccb0a..018714dbb66 100644
--- a/src/mame/drivers/fb01.cpp
+++ b/src/mame/drivers/fb01.cpp
@@ -82,8 +82,7 @@ void fb01_state::fb01_io(address_map &map)
map(0x01, 0x01).rw("ym2164", FUNC(ym2151_device::status_r), FUNC(ym2151_device::data_w));
// 10-11 USART uPD71051C 4MHz & 4MHz / 8
- map(0x10, 0x10).rw(m_upd71051, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x11, 0x11).rw(m_upd71051, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x10, 0x11).rw(m_upd71051, FUNC(i8251_device::read), FUNC(i8251_device::write));
// 20 PANEL SWITCH
map(0x20, 0x20).portr("PANEL");
diff --git a/src/mame/drivers/fk1.cpp b/src/mame/drivers/fk1.cpp
index 16b8bde9d5f..982f5155c43 100644
--- a/src/mame/drivers/fk1.cpp
+++ b/src/mame/drivers/fk1.cpp
@@ -328,8 +328,7 @@ void fk1_state::fk1_io(address_map &map)
map(0x10, 0x13).rw("pit8253", FUNC(pit8253_device::read), FUNC(pit8253_device::write));
map(0x20, 0x23).rw("ppi8255_2", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x30, 0x30).rw(FUNC(fk1_state::fk1_bank_ram_r), FUNC(fk1_state::fk1_intr_w));
- map(0x40, 0x40).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x41, 0x41).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x40, 0x41).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x50, 0x50).rw(FUNC(fk1_state::fk1_bank_rom_r), FUNC(fk1_state::fk1_disk_w));
map(0x60, 0x63).rw("ppi8255_3", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x70, 0x70).rw(FUNC(fk1_state::fk1_mouse_r), FUNC(fk1_state::fk1_reset_int_w));
diff --git a/src/mame/drivers/fmtowns.cpp b/src/mame/drivers/fmtowns.cpp
index 62681fb91b2..656db340a54 100644
--- a/src/mame/drivers/fmtowns.cpp
+++ b/src/mame/drivers/fmtowns.cpp
@@ -2122,10 +2122,8 @@ WRITE8_MEMBER( towns_state::towns_serial_w )
switch(offset)
{
case 0:
- m_i8251->data_w(space,0,data);
- break;
case 1:
- m_i8251->control_w(space,0,data);
+ m_i8251->write(offset, data);
break;
case 4:
m_serial_irq_enable = data;
@@ -2140,9 +2138,8 @@ READ8_MEMBER( towns_state::towns_serial_r )
switch(offset)
{
case 0:
- return m_i8251->data_r(space,0);
case 1:
- return m_i8251->status_r(space,0);
+ return m_i8251->read(offset);
case 3:
return m_serial_irq_source;
default:
diff --git a/src/mame/drivers/h8.cpp b/src/mame/drivers/h8.cpp
index eca8a3cdb83..188e2a7ebaa 100644
--- a/src/mame/drivers/h8.cpp
+++ b/src/mame/drivers/h8.cpp
@@ -197,11 +197,9 @@ void h8_state::h8_io(address_map &map)
map.global_mask(0xff);
map(0xf0, 0xf0).rw(FUNC(h8_state::portf0_r), FUNC(h8_state::portf0_w));
map(0xf1, 0xf1).w(FUNC(h8_state::portf1_w));
- map(0xf8, 0xf8).rw(m_uart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xf9, 0xf9).rw(m_uart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xf8, 0xf9).rw(m_uart, FUNC(i8251_device::read), FUNC(i8251_device::write));
// optional connection to a serial terminal @ 600 baud
- //AM_RANGE(0xfa, 0xfa) AM_DEVREADWRITE("uart1", i8251_device, data_r, data_w)
- //AM_RANGE(0xfb, 0xfb) AM_DEVREADWRITE("uart1", i8251_device, status_r, control_w)
+ //map(0xfa, 0xfb).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
}
/* Input ports */
diff --git a/src/mame/drivers/hp64k.cpp b/src/mame/drivers/hp64k.cpp
index 9528f53c968..2034176ae86 100644
--- a/src/mame/drivers/hp64k.cpp
+++ b/src/mame/drivers/hp64k.cpp
@@ -961,13 +961,7 @@ void hp64k_state::hp64k_floppy_wpt_cb(floppy_image_device *floppy , int state)
READ16_MEMBER(hp64k_state::hp64k_usart_r)
{
- uint16_t tmp;
-
- if ((offset & 1) == 0) {
- tmp = m_uart->status_r(space , 0);
- } else {
- tmp = m_uart->data_r(space , 0);
- }
+ uint16_t tmp = m_uart->read(~offset & 1);
// bit 8 == bit 7 rear panel switches (modem/terminal) ???
@@ -982,11 +976,7 @@ READ16_MEMBER(hp64k_state::hp64k_usart_r)
WRITE16_MEMBER(hp64k_state::hp64k_usart_w)
{
- if ((offset & 1) == 0) {
- m_uart->control_w(space , 0 , (uint8_t)(data & 0xff));
- } else {
- m_uart->data_w(space , 0 , (uint8_t)(data & 0xff));
- }
+ m_uart->write(~offset & 1, data & 0xff);
}
WRITE_LINE_MEMBER(hp64k_state::hp64k_rxrdy_w)
diff --git a/src/mame/drivers/ibm6580.cpp b/src/mame/drivers/ibm6580.cpp
index 1abb11bda65..9512ff266da 100644
--- a/src/mame/drivers/ibm6580.cpp
+++ b/src/mame/drivers/ibm6580.cpp
@@ -701,10 +701,8 @@ void ibm6580_state::ibm6580_io(address_map &map)
map(0x0040, 0x005f).rw(FUNC(ibm6580_state::p40_r), FUNC(ibm6580_state::p40_w)).umask16(0x00ff);
map(0x0070, 0x007f).unmaprw();
map(0x0120, 0x0127).rw(m_pit8253, FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
- map(0x0140, 0x0140).rw("upd8251a", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x0142, 0x0142).rw("upd8251a", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x0160, 0x0160).rw("upd8251b", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x0162, 0x0162).rw("upd8251b", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x0140, 0x0143).rw("upd8251a", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
+ map(0x0160, 0x0163).rw("upd8251b", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
map(0x4000, 0x400f).unmaprw();
map(0x5000, 0x500f).unmaprw();
map(0x6000, 0x601f).unmaprw();
diff --git a/src/mame/drivers/icebox.cpp b/src/mame/drivers/icebox.cpp
index b658c38753d..b1052d290fb 100644
--- a/src/mame/drivers/icebox.cpp
+++ b/src/mame/drivers/icebox.cpp
@@ -169,10 +169,8 @@ void icebox_state::io_map(address_map &map)
{
map.global_mask(0xff);
map.unmap_value_high();
- map(0xe0, 0xe0).rw(m_uart0, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xe1, 0xe1).rw(m_uart0, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0xe2, 0xe2).rw(m_uart1, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xe3, 0xe3).rw(m_uart1, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xe0, 0xe1).rw(m_uart0, FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0xe2, 0xe3).rw(m_uart1, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0xe4, 0xe7).lrw8("fdc_usage",
[this](offs_t offset) { return m_fdc->read(offset^3); },
[this](offs_t offset, u8 data) { m_fdc->write(offset^3, data); });
diff --git a/src/mame/drivers/imds2.cpp b/src/mame/drivers/imds2.cpp
index b0f44b148c7..777003cbbf1 100644
--- a/src/mame/drivers/imds2.cpp
+++ b/src/mame/drivers/imds2.cpp
@@ -143,10 +143,8 @@ void imds2_state::ipc_io_map(address_map &map)
map.unmap_value_low();
map(0xc0, 0xc1).rw(m_ioc, FUNC(imds2ioc_device::dbb_master_r), FUNC(imds2ioc_device::dbb_master_w));
map(0xf0, 0xf3).rw(m_ipctimer, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
- map(0xf4, 0xf4).rw(m_ipcusart[0], FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xf5, 0xf5).rw(m_ipcusart[0], FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0xf6, 0xf6).rw(m_ipcusart[1], FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xf7, 0xf7).rw(m_ipcusart[1], FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xf4, 0xf5).rw(m_ipcusart[0], FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0xf6, 0xf7).rw(m_ipcusart[1], FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0xf8, 0xf9).rw(m_ioc, FUNC(imds2ioc_device::pio_master_r), FUNC(imds2ioc_device::pio_master_w));
map(0xfa, 0xfb).rw(FUNC(imds2_state::ipclocpic_r), FUNC(imds2_state::ipclocpic_w));
map(0xfc, 0xfd).rw(FUNC(imds2_state::ipcsyspic_r), FUNC(imds2_state::ipcsyspic_w));
diff --git a/src/mame/drivers/imsai.cpp b/src/mame/drivers/imsai.cpp
index d58b9ec0166..327d326ddc6 100644
--- a/src/mame/drivers/imsai.cpp
+++ b/src/mame/drivers/imsai.cpp
@@ -68,10 +68,8 @@ void imsai_state::imsai_io(address_map &map)
map.global_mask(0xff);
map(0x02, 0x02).r(FUNC(imsai_state::keyin_r)).w(m_terminal, FUNC(generic_terminal_device::write));
map(0x03, 0x03).r(FUNC(imsai_state::status_r));
- map(0x04, 0x04).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x05, 0x05).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x12, 0x12).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x13, 0x13).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x04, 0x05).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0x12, 0x13).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x14, 0x14).r(FUNC(imsai_state::keyin_r)).w(m_terminal, FUNC(generic_terminal_device::write));
map(0x15, 0x15).r(FUNC(imsai_state::status_r));
map(0xf3, 0xf3).w(FUNC(imsai_state::control_w));
diff --git a/src/mame/drivers/ipc.cpp b/src/mame/drivers/ipc.cpp
index 339ce3e5a92..b126c30b61a 100644
--- a/src/mame/drivers/ipc.cpp
+++ b/src/mame/drivers/ipc.cpp
@@ -77,10 +77,8 @@ void ipc_state::ipc_io(address_map &map)
map.unmap_value_high();
map.global_mask(0xff);
map(0xf0, 0xf3).rw("pit", FUNC(pit8253_device::read), FUNC(pit8253_device::write));
- map(0xf4, 0xf4).rw("uart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xf5, 0xf5).rw("uart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0xf6, 0xf6).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xf7, 0xf7).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xf4, 0xf5).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0xf6, 0xf7).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
}
/* Input ports */
diff --git a/src/mame/drivers/irisha.cpp b/src/mame/drivers/irisha.cpp
index b468d88bd40..ed792c68df7 100644
--- a/src/mame/drivers/irisha.cpp
+++ b/src/mame/drivers/irisha.cpp
@@ -83,8 +83,7 @@ void irisha_state::irisha_mem(address_map &map)
void irisha_state::irisha_io(address_map &map)
{
map(0x04, 0x05).r(FUNC(irisha_state::irisha_keyboard_r));
- map(0x06, 0x06).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x07, 0x07).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x06, 0x07).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x08, 0x0B).rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
map(0x0C, 0x0F).rw("pic8259", FUNC(pic8259_device::read), FUNC(pic8259_device::write)).mask(0x01);
map(0x10, 0x13).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write));
diff --git a/src/mame/drivers/isbc.cpp b/src/mame/drivers/isbc.cpp
index 052249359c8..9e738703524 100644
--- a/src/mame/drivers/isbc.cpp
+++ b/src/mame/drivers/isbc.cpp
@@ -135,10 +135,8 @@ void isbc_state::rpc86_io(address_map &map)
map(0x00c4, 0x00c7).rw(m_pic_0, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff);
map(0x00c8, 0x00cf).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff);
map(0x00d0, 0x00d7).rw("pit", FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
- map(0x00d8, 0x00d8).rw(m_uart8251, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x00da, 0x00da).rw(m_uart8251, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x00dc, 0x00dc).rw(m_uart8251, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x00de, 0x00de).rw(m_uart8251, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x00d8, 0x00db).rw(m_uart8251, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
+ map(0x00dc, 0x00df).rw(m_uart8251, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
}
void isbc_state::isbc8605_io(address_map &map)
@@ -169,10 +167,8 @@ void isbc_state::isbc_io(address_map &map)
map(0x00c4, 0x00c7).rw(m_pic_0, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff);
map(0x00c8, 0x00cf).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff);
map(0x00d0, 0x00d7).rw("pit", FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
- map(0x00d8, 0x00d8).rw(m_uart8251, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x00da, 0x00da).rw(m_uart8251, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x00dc, 0x00dc).rw(m_uart8251, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x00de, 0x00de).rw(m_uart8251, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x00d8, 0x00db).rw(m_uart8251, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
+ map(0x00dc, 0x00df).rw(m_uart8251, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
}
void isbc_state::isbc286_io(address_map &map)
diff --git a/src/mame/drivers/isbc8010.cpp b/src/mame/drivers/isbc8010.cpp
index 5535f9bb504..4b36693b786 100644
--- a/src/mame/drivers/isbc8010.cpp
+++ b/src/mame/drivers/isbc8010.cpp
@@ -106,8 +106,7 @@ void isbc8010_state::isbc8010_io(address_map &map)
map.global_mask(0xff);
map(0xe4, 0xe7).rw(m_ppi_0, FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xe8, 0xeb).rw(m_ppi_1, FUNC(i8255_device::read), FUNC(i8255_device::write));
- map(0xec, 0xec).mirror(0x02).rw(m_usart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xed, 0xed).mirror(0x02).rw(m_usart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xec, 0xed).mirror(0x02).rw(m_usart, FUNC(i8251_device::read), FUNC(i8251_device::write));
//AM_RANGE(0xf0, 0xf7) MCS0 - iSBX Multimodule
//AM_RANGE(0xf8, 0xff) MCS1 - iSBX Multimodule
}
diff --git a/src/mame/drivers/isbc8030.cpp b/src/mame/drivers/isbc8030.cpp
index 4f7cc6d2ed6..36752136c1f 100644
--- a/src/mame/drivers/isbc8030.cpp
+++ b/src/mame/drivers/isbc8030.cpp
@@ -79,8 +79,7 @@ void isbc8030_state::isbc8030_io(address_map &map)
map(0xd8, 0xd9).rw(m_pic, FUNC(pic8259_device::read), FUNC(pic8259_device::write));
map(0xdc, 0xdf).rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
map(0xe8, 0xeb).rw(m_ppi, FUNC(i8255_device::read), FUNC(i8255_device::write));
- map(0xec, 0xec).mirror(0x02).rw(m_usart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xed, 0xed).mirror(0x02).rw(m_usart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xec, 0xed).mirror(0x02).rw(m_usart, FUNC(i8251_device::read), FUNC(i8251_device::write));
}
static INPUT_PORTS_START( isbc8030 )
diff --git a/src/mame/drivers/kyocera.cpp b/src/mame/drivers/kyocera.cpp
index 4d76285f6d5..6f1838c37fb 100644
--- a/src/mame/drivers/kyocera.cpp
+++ b/src/mame/drivers/kyocera.cpp
@@ -628,8 +628,7 @@ void tandy200_state::tandy200_io(address_map &map)
map(0x90, 0x9f).rw(m_rtc, FUNC(rp5c01_device::read), FUNC(rp5c01_device::write));
// AM_RANGE(0xa0, 0xa0) AM_MIRROR(0x0f) AM_DEVWRITE(TCM5089_TAG, write)
map(0xb0, 0xb7).mirror(0x08).rw(I8155_TAG, FUNC(i8155_device::io_r), FUNC(i8155_device::io_w));
- map(0xc0, 0xc0).mirror(0x0e).rw(I8251_TAG, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xc1, 0xc1).mirror(0x0e).rw(I8251_TAG, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xc0, 0xc1).mirror(0x0e).rw(I8251_TAG, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0xd0, 0xd0).mirror(0x0f).rw(FUNC(tandy200_state::bank_r), FUNC(tandy200_state::bank_w));
map(0xe0, 0xe0).mirror(0x0f).rw(FUNC(tandy200_state::stbk_r), FUNC(tandy200_state::stbk_w));
map(0xf0, 0xf0).mirror(0x0e).rw(m_lcdc, FUNC(hd61830_device::data_r), FUNC(hd61830_device::data_w));
diff --git a/src/mame/drivers/mbc200.cpp b/src/mame/drivers/mbc200.cpp
index bcb7bd74dd4..9038c0eb99e 100644
--- a/src/mame/drivers/mbc200.cpp
+++ b/src/mame/drivers/mbc200.cpp
@@ -151,13 +151,11 @@ void mbc200_state::mbc200_io(address_map &map)
{
map.unmap_value_high();
map.global_mask(0xff);
- //AM_RANGE(0xe0, 0xe0) AM_DEVREADWRITE("uart1", i8251_device, data_r, data_w)
- //AM_RANGE(0xe1, 0xe1) AM_DEVREADWRITE("uart1", i8251_device, status_r, control_w)
+ //map(0xe0, 0xe1).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0xe0, 0xe1).r(FUNC(mbc200_state::keyboard_r)).nopw();
map(0xe4, 0xe7).rw(m_fdc, FUNC(mb8876_device::read), FUNC(mb8876_device::write));
map(0xe8, 0xeb).rw(m_ppi_m, FUNC(i8255_device::read), FUNC(i8255_device::write));
- map(0xec, 0xec).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xed, 0xed).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xec, 0xed).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
}
diff --git a/src/mame/drivers/mc1502.cpp b/src/mame/drivers/mc1502.cpp
index 72bbcb21df6..8c3c7d3cd6c 100644
--- a/src/mame/drivers/mc1502.cpp
+++ b/src/mame/drivers/mc1502.cpp
@@ -219,8 +219,7 @@ void mc1502_state::mc1502_map(address_map &map)
void mc1502_state::mc1502_io(address_map &map)
{
map(0x0020, 0x0021).rw(m_pic8259, FUNC(pic8259_device::read), FUNC(pic8259_device::write));
- map(0x0028, 0x0028).rw(m_upd8251, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x0029, 0x0029).rw(m_upd8251, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x0028, 0x0029).rw(m_upd8251, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x0040, 0x0043).rw(m_pit8253, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
map(0x0060, 0x0063).rw(m_ppi8255n1, FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x0068, 0x006B).rw(m_ppi8255n2, FUNC(i8255_device::read), FUNC(i8255_device::write)); // keyboard poll
diff --git a/src/mame/drivers/meritum.cpp b/src/mame/drivers/meritum.cpp
index 94ef2df1218..84bd6e27743 100644
--- a/src/mame/drivers/meritum.cpp
+++ b/src/mame/drivers/meritum.cpp
@@ -110,8 +110,7 @@ void meritum_state::io_map(address_map &map)
map(0xf0, 0xf3).rw("flopppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xf4, 0xf7).rw("mainppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xf8, 0xfb).rw("mainpit", FUNC(pit8253_device::read), FUNC(pit8253_device::write));
- map(0xfc, 0xfc).rw("usart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xfd, 0xfd).rw("usart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xfc, 0xfd).rw("usart", FUNC(i8251_device::read), FUNC(i8251_device::write));
// map(0xfe, 0xfe) audio interface
map(0xff, 0xff).rw(FUNC(meritum_state::port_ff_r), FUNC(meritum_state::port_ff_w));
}
diff --git a/src/mame/drivers/mfabfz.cpp b/src/mame/drivers/mfabfz.cpp
index 0c9b3aa76f9..fd2c520e10b 100644
--- a/src/mame/drivers/mfabfz.cpp
+++ b/src/mame/drivers/mfabfz.cpp
@@ -78,18 +78,15 @@ void mfabfz_state::mfabfz_io(address_map &map)
{
map.unmap_value_high();
map.global_mask(0xff);
- map(0xbe, 0xbe).rw("uart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xbf, 0xbf).rw("uart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0xfe, 0xfe).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xff, 0xff).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xbe, 0xbf).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0xfe, 0xff).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
}
void mfabfz_state::mfabfz85_io(address_map &map)
{
map.unmap_value_high();
map.global_mask(0xff);
- map(0xfe, 0xfe).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xff, 0xff).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xfe, 0xff).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
}
/* Input ports */
diff --git a/src/mame/drivers/mice.cpp b/src/mame/drivers/mice.cpp
index 6a49a3e5f0c..4159256be1f 100644
--- a/src/mame/drivers/mice.cpp
+++ b/src/mame/drivers/mice.cpp
@@ -69,8 +69,7 @@ void mice_state::mice_io(address_map &map)
{
map.unmap_value_high();
map.global_mask(0xff);
- map(0x50, 0x50).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x51, 0x51).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x50, 0x51).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x60, 0x67).rw("rpt", FUNC(i8155_device::io_r), FUNC(i8155_device::io_w));
map(0x70, 0x73).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
}
@@ -88,8 +87,7 @@ void mice_state::mice2_io(address_map &map)
{
map.unmap_value_high();
map.global_mask(0xff);
- map(0x80, 0x80).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x81, 0x81).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x80, 0x81).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x90, 0x97).rw("rpt", FUNC(i8155_device::io_r), FUNC(i8155_device::io_w));
map(0xa0, 0xa3).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xc0, 0xc3).rw("rttppi1", FUNC(i8255_device::read), FUNC(i8255_device::write));
diff --git a/src/mame/drivers/microdec.cpp b/src/mame/drivers/microdec.cpp
index bd1cfb699a9..f8a3d10e8eb 100644
--- a/src/mame/drivers/microdec.cpp
+++ b/src/mame/drivers/microdec.cpp
@@ -142,10 +142,8 @@ void microdec_state::microdec_io(address_map &map)
map(0xf7, 0xf7).rw(FUNC(microdec_state::portf7_r), FUNC(microdec_state::portf7_w));
map(0xf8, 0xf8).w(FUNC(microdec_state::portf8_w));
map(0xfa, 0xfb).m(m_fdc, FUNC(upd765a_device::map));
- map(0xfc, 0xfc).rw("uart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xfd, 0xfd).rw("uart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0xfe, 0xfe).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xff, 0xff).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xfc, 0xfd).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0xfe, 0xff).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
// AM_RANGE(0xf0, 0xf3) 8253 PIT (md3 only) used as a baud rate generator for serial ports
// AM_RANGE(0xf4, 0xf4) Centronics data
// AM_RANGE(0xf5, 0xf5) motor check (md1/2)
diff --git a/src/mame/drivers/model1.cpp b/src/mame/drivers/model1.cpp
index f6221e7382d..e0d35d30806 100644
--- a/src/mame/drivers/model1.cpp
+++ b/src/mame/drivers/model1.cpp
@@ -838,7 +838,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(model1_state::model1_interrupt)
}
}
-MACHINE_RESET_MEMBER(model1_state,model1)
+void model1_state::machine_reset()
{
membank("bank1")->set_base(memregion("maincpu")->base() + 0x1000000);
irq_init();
@@ -938,8 +938,7 @@ void model1_state::model1_mem(address_map &map)
map(0xc00000, 0xc00fff).r(FUNC(model1_state::dpram_r)).w(m_dpram, FUNC(mb8421_device::right_w)).umask16(0x00ff); // 2k*8-bit dual port ram
- map(0xc40000, 0xc40000).rw(m_m1uart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xc40002, 0xc40002).rw(m_m1uart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xc40000, 0xc40003).rw(m_m1uart, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
map(0xd00000, 0xd00001).rw(FUNC(model1_state::v60_copro_ram_adr_r), FUNC(model1_state::v60_copro_ram_adr_w));
map(0xd20000, 0xd20003).w(FUNC(model1_state::v60_copro_ram_w));
@@ -1400,7 +1399,7 @@ ROM_START( swa )
ROM_LOAD32_WORD( "mpr-16480.30", 0x800000, 0x200000, CRC(3185547a) SHA1(9871937372c2c755717802117a3ad39e1a11410e) )
ROM_LOAD32_WORD( "mpr-16481.31", 0x800002, 0x200000, CRC(ce8d76fe) SHA1(0406f0500d19d6707515627b4143f92a9a5db769) )
- ROM_REGION32_LE( 0x200000, "tgp_data", 0 ) /* TGP data roms */
+ ROM_REGION32_LE( 0x200000, "copro_data", 0 ) /* TGP data roms */
ROM_LOAD32_BYTE( "mpr-16472.39", 0x000000, 0x80000, CRC(5a0d7553) SHA1(ba8e08e5a0c6b7fbc10084ad7ad3edf61efb0d70) )
ROM_LOAD32_BYTE( "mpr-16473.40", 0x000001, 0x80000, CRC(876c5399) SHA1(be7e40c77a385600941f11c24852cd73c71696f0) )
ROM_LOAD32_BYTE( "mpr-16474.41", 0x000002, 0x80000, CRC(5864a26f) SHA1(be0c22dfff37408f6b401b1970f7fcc6fc7fbcd2) )
@@ -1453,7 +1452,7 @@ ROM_START( wingwar )
ROM_LOAD32_WORD( "mpr-16749.32", 0xc00000, 0x200000, CRC(0e36dc1a) SHA1(4939177a6ac51ca57d0acd118ff14af4f4e438bb) )
ROM_LOAD32_WORD( "mpr-16750.33", 0xc00002, 0x200000, CRC(e4f0b98d) SHA1(e69de2e5ccea2834fb8326bdd61fc6b517bc60b7) )
- ROM_REGION32_LE( 0x200000, "tgp_data", 0 ) /* TGP data roms */
+ ROM_REGION32_LE( 0x200000, "copro_data", 0 ) /* TGP data roms */
ROM_LOAD32_BYTE( "mpr-16741.39", 0x000000, 0x80000, CRC(84b2ffd8) SHA1(0eba3855d20b88567c6fa08046e12429664d87cb) )
ROM_LOAD32_BYTE( "mpr-16742.40", 0x000001, 0x80000, CRC(e9cc12bb) SHA1(40c83c968be3b11fad193a00e7b760f074450683) )
ROM_LOAD32_BYTE( "mpr-16739.41", 0x000002, 0x80000, CRC(6c73e98f) SHA1(7b31e62922ab6d0df97c3ecc52b78e6d086c8635) )
@@ -1514,7 +1513,7 @@ ROM_START( wingwaru )
ROM_LOAD32_WORD( "mpr-16749.32", 0xc00000, 0x200000, CRC(0e36dc1a) SHA1(4939177a6ac51ca57d0acd118ff14af4f4e438bb) )
ROM_LOAD32_WORD( "mpr-16750.33", 0xc00002, 0x200000, CRC(e4f0b98d) SHA1(e69de2e5ccea2834fb8326bdd61fc6b517bc60b7) )
- ROM_REGION32_LE( 0x200000, "tgp_data", 0 ) /* TGP data roms */
+ ROM_REGION32_LE( 0x200000, "copro_data", 0 ) /* TGP data roms */
ROM_LOAD32_BYTE( "mpr-16741.39", 0x000000, 0x80000, CRC(84b2ffd8) SHA1(0eba3855d20b88567c6fa08046e12429664d87cb) )
ROM_LOAD32_BYTE( "mpr-16742.40", 0x000001, 0x80000, CRC(e9cc12bb) SHA1(40c83c968be3b11fad193a00e7b760f074450683) )
ROM_LOAD32_BYTE( "mpr-16739.41", 0x000002, 0x80000, CRC(6c73e98f) SHA1(7b31e62922ab6d0df97c3ecc52b78e6d086c8635) )
@@ -1566,7 +1565,7 @@ ROM_START( wingwarj )
ROM_LOAD32_WORD( "mpr-16749.32", 0xc00000, 0x200000, CRC(0e36dc1a) SHA1(4939177a6ac51ca57d0acd118ff14af4f4e438bb) )
ROM_LOAD32_WORD( "mpr-16750.33", 0xc00002, 0x200000, CRC(e4f0b98d) SHA1(e69de2e5ccea2834fb8326bdd61fc6b517bc60b7) )
- ROM_REGION32_LE( 0x200000, "tgp_data", 0 ) /* TGP data roms */
+ ROM_REGION32_LE( 0x200000, "copro_data", 0 ) /* TGP data roms */
ROM_LOAD32_BYTE( "mpr-16741.39", 0x000000, 0x80000, CRC(84b2ffd8) SHA1(0eba3855d20b88567c6fa08046e12429664d87cb) )
ROM_LOAD32_BYTE( "mpr-16742.40", 0x000001, 0x80000, CRC(e9cc12bb) SHA1(40c83c968be3b11fad193a00e7b760f074450683) )
ROM_LOAD32_BYTE( "mpr-16739.41", 0x000002, 0x80000, CRC(6c73e98f) SHA1(7b31e62922ab6d0df97c3ecc52b78e6d086c8635) )
@@ -1620,7 +1619,7 @@ ROM_START( wingwar360 )
ROM_LOAD32_WORD( "mpr-16749.32", 0xc00000, 0x200000, CRC(0e36dc1a) SHA1(4939177a6ac51ca57d0acd118ff14af4f4e438bb) )
ROM_LOAD32_WORD( "mpr-16750.33", 0xc00002, 0x200000, CRC(e4f0b98d) SHA1(e69de2e5ccea2834fb8326bdd61fc6b517bc60b7) )
- ROM_REGION32_LE( 0x200000, "tgp_data", 0 ) /* TGP data roms */
+ ROM_REGION32_LE( 0x200000, "copro_data", 0 ) /* TGP data roms */
ROM_LOAD32_BYTE( "mpr-16741.39", 0x000000, 0x80000, CRC(84b2ffd8) SHA1(0eba3855d20b88567c6fa08046e12429664d87cb) )
ROM_LOAD32_BYTE( "mpr-16742.40", 0x000001, 0x80000, CRC(e9cc12bb) SHA1(40c83c968be3b11fad193a00e7b760f074450683) )
ROM_LOAD32_BYTE( "mpr-16739.41", 0x000002, 0x80000, CRC(6c73e98f) SHA1(7b31e62922ab6d0df97c3ecc52b78e6d086c8635) )
@@ -1668,7 +1667,7 @@ ROM_START( netmerc )
ROM_LOAD32_WORD( "mpr-18132.ic30", 0x800000, 0x200000, CRC(a17e3ac2) SHA1(19827c06ebc3e9de63668ef07675224e169d853e) )
ROM_LOAD32_WORD( "mpr-18133.ic31", 0x800002, 0x200000, CRC(f56354dd) SHA1(2ef1fe8b4995a67b70b565adf8f0ea0ad6e10094) )
- ROM_REGION32_LE( 0x200000, "tgp_data", ROMREGION_ERASE00 ) // IC39-IC42 unpopulated
+ ROM_REGION32_LE( 0x200000, "copro_data", ROMREGION_ERASE00 ) // IC39-IC42 unpopulated
ROM_REGION( 0x8000, "polhemus", 0 ) /* POLHEMUS board */
ROM_LOAD16_BYTE( "u1", 0x0000, 0x4000, CRC(7073a312) SHA1(d2582f9520b8c8c051708dd372633112af59206e) )
@@ -1694,9 +1693,6 @@ MACHINE_CONFIG_START(model1_state::model1)
MCFG_DEVICE_ADDRESS_MAP(mb86233_device::AS_RF, copro_rf_map)
#endif
- MCFG_MACHINE_START_OVERRIDE(model1_state,model1)
- MCFG_MACHINE_RESET_OVERRIDE(model1_state,model1)
-
model1io_device &ioboard(SEGA_MODEL1IO(config, "ioboard", 0));
ioboard.read_callback().set(m_dpram, FUNC(mb8421_device::left_r));
ioboard.write_callback().set(m_dpram, FUNC(mb8421_device::left_w));
@@ -1717,8 +1713,6 @@ MACHINE_CONFIG_START(model1_state::model1)
MCFG_PALETTE_ADD("palette", 8192)
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
- MCFG_VIDEO_START_OVERRIDE(model1_state,model1)
-
SEGAM1AUDIO(config, m_m1audio, 0);
m_m1audio->rxd_handler().set(m_m1uart, FUNC(i8251_device::write_rxd));
diff --git a/src/mame/drivers/model2.cpp b/src/mame/drivers/model2.cpp
index aa84d4c004a..e3487f79106 100644
--- a/src/mame/drivers/model2.cpp
+++ b/src/mame/drivers/model2.cpp
@@ -990,9 +990,9 @@ READ32_MEMBER(model2_state::model2_serial_r)
{
u32 result = 0;
if (ACCESSING_BITS_0_7 && (offset == 0))
- result |= m_uart->data_r(space, 0);
+ result |= m_uart->data_r();
if (ACCESSING_BITS_16_23 && (offset == 0))
- result |= m_uart->status_r(space, 0) << 16;
+ result |= m_uart->status_r() << 16;
return result;
}
@@ -1004,7 +1004,7 @@ WRITE32_MEMBER(model2_state::model2_serial_w)
{
if (ACCESSING_BITS_0_7 && (offset == 0))
{
- m_uart->data_w(space, 0, data & 0xff);
+ m_uart->data_w(data & 0xff);
if (m_scsp.found())
{
@@ -1017,7 +1017,7 @@ WRITE32_MEMBER(model2_state::model2_serial_w)
}
if (ACCESSING_BITS_16_23 && (offset == 0))
{
- m_uart->control_w(space, 0, (data >> 16) & 0xff);
+ m_uart->control_w((data >> 16) & 0xff);
}
}
diff --git a/src/mame/drivers/model3.cpp b/src/mame/drivers/model3.cpp
index 8e31ee66491..e4aeb0cae7d 100644
--- a/src/mame/drivers/model3.cpp
+++ b/src/mame/drivers/model3.cpp
@@ -1729,7 +1729,7 @@ READ8_MEMBER(model3_state::model3_sound_r)
case 0:
{
if (m_uart.found())
- return m_uart->data_r(space, 0);
+ return m_uart->data_r();
break;
}
@@ -1737,7 +1737,7 @@ READ8_MEMBER(model3_state::model3_sound_r)
case 4:
{
if (m_uart.found())
- return m_uart->status_r(space, 0);
+ return m_uart->status_r();
uint8_t res = 0;
res |= 1;
@@ -1757,7 +1757,7 @@ WRITE8_MEMBER(model3_state::model3_sound_w)
set_irq_line(0x40, CLEAR_LINE);
if (m_uart.found())
- m_uart->data_w(space, 0, data);
+ m_uart->data_w(data);
// send to the sound board
m_scsp1->midi_in(data);
@@ -1771,7 +1771,7 @@ WRITE8_MEMBER(model3_state::model3_sound_w)
case 4:
if (m_uart.found())
- m_uart->control_w(space, 0, data);
+ m_uart->control_w(data);
if (data == 0x27)
{
diff --git a/src/mame/drivers/ms6102.cpp b/src/mame/drivers/ms6102.cpp
index 5ac1f1c6778..622a52318f1 100644
--- a/src/mame/drivers/ms6102.cpp
+++ b/src/mame/drivers/ms6102.cpp
@@ -135,8 +135,7 @@ void ms6102_state::ms6102_mem(address_map &map)
void ms6102_state::ms6102_io(address_map &map)
{
map.unmap_value_high();
- map(0x00, 0x00).rw(m_i8251, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x01, 0x01).rw(m_i8251, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x00, 0x01).rw(m_i8251, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x10, 0x18).rw(m_dma8257, FUNC(i8257_device::read), FUNC(i8257_device::write));
map(0x20, 0x23).rw("pit8253", FUNC(pit8253_device::read), FUNC(pit8253_device::write));
map(0x30, 0x30).mirror(0x0f).rw("589wa1", FUNC(ay31015_device::receive), FUNC(ay31015_device::transmit));
diff --git a/src/mame/drivers/multi8.cpp b/src/mame/drivers/multi8.cpp
index 466d08e9f04..84bcf4220a2 100644
--- a/src/mame/drivers/multi8.cpp
+++ b/src/mame/drivers/multi8.cpp
@@ -310,8 +310,7 @@ void multi8_state::multi8_io(address_map &map)
map(0x1a, 0x1a).r(FUNC(multi8_state::ay8912_1_r));
map(0x1c, 0x1c).rw(m_crtc, FUNC(mc6845_device::status_r), FUNC(mc6845_device::address_w));
map(0x1d, 0x1d).rw(m_crtc, FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
- map(0x20, 0x20).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x21, 0x21).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w)); //cmt
+ map(0x20, 0x21).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write)); //cmt
map(0x24, 0x27).rw("pit", FUNC(pit8253_device::read), FUNC(pit8253_device::write)); //pit
map(0x28, 0x2b).rw(m_ppi, FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x2c, 0x2d).rw("pic", FUNC(pic8259_device::read), FUNC(pic8259_device::write)); //i8259
diff --git a/src/mame/drivers/nc.cpp b/src/mame/drivers/nc.cpp
index 9591e98f3a5..6b622164f45 100644
--- a/src/mame/drivers/nc.cpp
+++ b/src/mame/drivers/nc.cpp
@@ -855,8 +855,7 @@ void nc100_state::nc100_io(address_map &map)
map(0x91, 0x9f).r(FUNC(nc100_state::nc_irq_status_r));
map(0xa0, 0xaf).r(FUNC(nc100_state::nc100_card_battery_status_r));
map(0xb0, 0xb9).r(FUNC(nc100_state::nc_key_data_in_r));
- map(0xc0, 0xc0).rw(m_uart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xc1, 0xc1).rw(m_uart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xc0, 0xc1).rw(m_uart, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0xd0, 0xdf).rw("rtc", FUNC(tc8521_device::read), FUNC(tc8521_device::write));
}
@@ -1259,8 +1258,7 @@ void nc200_state::nc200_io(address_map &map)
map(0x90, 0x90).rw(FUNC(nc200_state::nc_irq_status_r), FUNC(nc200_state::nc200_irq_status_w));
map(0xa0, 0xa0).r(FUNC(nc200_state::nc200_card_battery_status_r));
map(0xb0, 0xb9).r(FUNC(nc200_state::nc_key_data_in_r));
- map(0xc0, 0xc0).rw(m_uart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xc1, 0xc1).rw(m_uart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xc0, 0xc1).rw(m_uart, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0xd0, 0xd1).rw("mc", FUNC(mc146818_device::read), FUNC(mc146818_device::write));
map(0xe0, 0xe1).m("upd765", FUNC(upd765a_device::map));
}
diff --git a/src/mame/drivers/ngen.cpp b/src/mame/drivers/ngen.cpp
index 9d7e2e0bbda..3535c8d365e 100644
--- a/src/mame/drivers/ngen.cpp
+++ b/src/mame/drivers/ngen.cpp
@@ -346,12 +346,9 @@ WRITE16_MEMBER(ngen_state::peripheral_w)
m_crtc->register_w(space,0,data & 0xff);
break;
case 0x146:
- if(ACCESSING_BITS_0_7)
- m_viduart->data_w(space,0,data & 0xff);
- break;
case 0x147:
if(ACCESSING_BITS_0_7)
- m_viduart->control_w(space,0,data & 0xff);
+ m_viduart->write(offset & 1, data & 0xff);
break;
case 0x1a0: // serial?
logerror("Serial(?) 0x1a0 write offset %04x data %04x mask %04x\n",offset,data,mem_mask);
@@ -420,13 +417,10 @@ READ16_MEMBER(ngen_state::peripheral_r)
ret = m_crtc->register_r(space,0);
break;
case 0x146:
- if(ACCESSING_BITS_0_7)
- ret = m_viduart->data_r(space,0);
- break;
case 0x147: // keyboard UART
- // expects bit 0 to be set (UART transmit ready)
+ // status expects bit 0 to be set (UART transmit ready)
if(ACCESSING_BITS_0_7)
- ret = m_viduart->status_r(space,0);
+ ret = m_viduart->read(offset & 1);
break;
case 0x1a0: // I/O control register?
ret = m_control; // end of DMA transfer? (maybe a per-channel EOP?) Bit 6 is set during a transfer?
@@ -791,13 +785,10 @@ READ16_MEMBER( ngen_state::b38_keyboard_r )
switch(offset)
{
case 0:
- if(ACCESSING_BITS_0_7)
- ret = m_viduart->data_r(space,0);
- break;
case 1: // keyboard UART
- // expects bit 0 to be set (UART transmit ready)
+ // status expects bit 0 to be set (UART transmit ready)
if(ACCESSING_BITS_0_7)
- ret = m_viduart->status_r(space,0);
+ ret = m_viduart->read(offset & 1);
break;
}
return ret;
@@ -808,12 +799,9 @@ WRITE16_MEMBER( ngen_state::b38_keyboard_w )
switch(offset)
{
case 0:
- if(ACCESSING_BITS_0_7)
- m_viduart->data_w(space,0,data & 0xff);
- break;
case 1:
if(ACCESSING_BITS_0_7)
- m_viduart->control_w(space,0,data & 0xff);
+ m_viduart->write(offset & 1, data & 0xff);
break;
}
}
@@ -829,7 +817,7 @@ READ16_MEMBER( ngen_state::b38_crtc_r )
break;
case 1:
if(ACCESSING_BITS_0_7)
- ret = m_viduart->data_r(space,0);
+ ret = m_viduart->data_r();
break;
}
return ret;
diff --git a/src/mame/drivers/octopus.cpp b/src/mame/drivers/octopus.cpp
index 7f1a2da06a3..85b40554c79 100644
--- a/src/mame/drivers/octopus.cpp
+++ b/src/mame/drivers/octopus.cpp
@@ -305,8 +305,7 @@ void octopus_state::octopus_io(address_map &map)
map(0x20, 0x20).portr("DSWA");
map(0x21, 0x2f).rw(FUNC(octopus_state::system_r), FUNC(octopus_state::system_w));
map(0x31, 0x33).rw(FUNC(octopus_state::bank_sel_r), FUNC(octopus_state::bank_sel_w));
- map(0x50, 0x50).rw(m_kb_uart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x51, 0x51).rw(m_kb_uart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x50, 0x51).rw(m_kb_uart, FUNC(i8251_device::read), FUNC(i8251_device::write));
// 0x70-73: HD controller
map(0x80, 0x83).rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
map(0xa0, 0xa0).rw(m_serial, FUNC(z80sio_device::da_r), FUNC(z80sio_device::da_w));
diff --git a/src/mame/drivers/okean240.cpp b/src/mame/drivers/okean240.cpp
index 7114a44014e..5bcc07378c7 100644
--- a/src/mame/drivers/okean240.cpp
+++ b/src/mame/drivers/okean240.cpp
@@ -255,8 +255,7 @@ void okean240_state::okean240a_io(address_map &map)
map(0x60, 0x63).rw("pit", FUNC(pit8253_device::read), FUNC(pit8253_device::write));
map(0x80, 0x81).rw("pic", FUNC(pic8259_device::read), FUNC(pic8259_device::write));
map(0x80, 0x80).r(FUNC(okean240_state::okean240a_kbd_status_r));
- map(0xa0, 0xa0).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xa1, 0xa1).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xa0, 0xa1).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0xc0, 0xc3).rw("ppic", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xe0, 0xe3).rw("ppie", FUNC(i8255_device::read), FUNC(i8255_device::write));
// AM_RANGE(0x00, 0x1f)=ppa00.data
@@ -279,8 +278,7 @@ void okean240_state::okean240t_io(address_map &map)
map(0x60, 0x63).rw("pit", FUNC(pit8253_device::read), FUNC(pit8253_device::write));
map(0x80, 0x81).rw("pic", FUNC(pic8259_device::read), FUNC(pic8259_device::write));
map(0x80, 0x80).r(FUNC(okean240_state::okean240_kbd_status_r));
- map(0xa0, 0xa0).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xa1, 0xa1).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xa0, 0xa1).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0xc0, 0xc3).rw("ppic", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xe0, 0xe3).rw("ppie", FUNC(i8255_device::read), FUNC(i8255_device::write));
}
diff --git a/src/mame/drivers/pc.cpp b/src/mame/drivers/pc.cpp
index bc1db9a5efc..9f82b9e2cb9 100644
--- a/src/mame/drivers/pc.cpp
+++ b/src/mame/drivers/pc.cpp
@@ -454,8 +454,7 @@ void pc_state::epc_io(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0x00ff).m("mb", FUNC(ibm5160_mb_device::map));
- map(0x0070, 0x0070).rw("i8251", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x0071, 0x0071).rw("i8251", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x0070, 0x0071).rw("i8251", FUNC(i8251_device::read), FUNC(i8251_device::write));
}
INPUT_CHANGED_MEMBER(pc_state::pc_turbo_callback)
diff --git a/src/mame/drivers/pc100.cpp b/src/mame/drivers/pc100.cpp
index b92eaee0d04..c1dd19b6a40 100644
--- a/src/mame/drivers/pc100.cpp
+++ b/src/mame/drivers/pc100.cpp
@@ -347,8 +347,7 @@ void pc100_state::pc100_io(address_map &map)
map(0x20, 0x23).r(FUNC(pc100_state::pc100_key_r)).umask16(0x00ff); //i/o, keyboard, mouse
map(0x22, 0x22).w(FUNC(pc100_state::pc100_output_w)); //i/o, keyboard, mouse
map(0x24, 0x24).w(FUNC(pc100_state::pc100_tc_w)); //i/o, keyboard, mouse
- map(0x28, 0x28).rw("uart8251", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x2a, 0x2a).rw("uart8251", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x28, 0x2b).rw("uart8251", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
map(0x30, 0x30).rw(FUNC(pc100_state::pc100_shift_r), FUNC(pc100_state::pc100_shift_w)); // crtc shift
map(0x38, 0x38).w(FUNC(pc100_state::pc100_crtc_addr_w)); //crtc address reg
map(0x3a, 0x3a).w(FUNC(pc100_state::pc100_crtc_data_w)); //crtc data reg
diff --git a/src/mame/drivers/pc6001.cpp b/src/mame/drivers/pc6001.cpp
index 3396f9e1736..285b9c140d7 100644
--- a/src/mame/drivers/pc6001.cpp
+++ b/src/mame/drivers/pc6001.cpp
@@ -240,8 +240,7 @@ void pc6001_state::pc6001_io(address_map &map)
{
map.unmap_value_high();
map.global_mask(0xff);
- map(0x80, 0x80).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x81, 0x81).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x80, 0x81).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x90, 0x93).mirror(0x0c).rw(FUNC(pc6001_state::nec_ppi8255_r), FUNC(pc6001_state::nec_ppi8255_w));
map(0xa0, 0xa0).mirror(0x0c).w("ay8910", FUNC(ay8910_device::address_w));
map(0xa1, 0xa1).mirror(0x0c).w("ay8910", FUNC(ay8910_device::data_w));
@@ -696,8 +695,7 @@ void pc6001mk2_state::pc6001mk2_io(address_map &map)
{
map.unmap_value_high();
map.global_mask(0xff);
- map(0x80, 0x80).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x81, 0x81).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x80, 0x81).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x90, 0x93).mirror(0x0c).rw(FUNC(pc6001mk2_state::nec_ppi8255_r), FUNC(pc6001mk2_state::necmk2_ppi8255_w));
@@ -933,8 +931,7 @@ void pc6001sr_state::pc6001sr_io(address_map &map)
// 0x40-0x43 palette indexes
map(0x60, 0x67).rw(FUNC(pc6001sr_state::sr_bank_rn_r), FUNC(pc6001sr_state::sr_bank_rn_w));
map(0x68, 0x6f).rw(FUNC(pc6001sr_state::sr_bank_wn_r), FUNC(pc6001sr_state::sr_bank_wn_w));
- map(0x80, 0x80).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x81, 0x81).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x80, 0x81).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x90, 0x93).mirror(0x0c).rw(FUNC(pc6001sr_state::nec_ppi8255_r), FUNC(pc6001sr_state::necsr_ppi8255_w));
diff --git a/src/mame/drivers/pc8001.cpp b/src/mame/drivers/pc8001.cpp
index 4b15d2a3f6e..88fec2ddf37 100644
--- a/src/mame/drivers/pc8001.cpp
+++ b/src/mame/drivers/pc8001.cpp
@@ -188,8 +188,7 @@ void pc8001_state::pc8001_io(address_map &map)
map(0x08, 0x08).portr("Y8");
map(0x09, 0x09).portr("Y9");
map(0x10, 0x10).mirror(0x0f).w(FUNC(pc8001_state::port10_w));
- map(0x20, 0x20).mirror(0x0e).rw(I8251_TAG, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x21, 0x21).mirror(0x0e).rw(I8251_TAG, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x20, 0x21).mirror(0x0e).rw(I8251_TAG, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x30, 0x30).mirror(0x0f).w(FUNC(pc8001_state::port30_w));
map(0x40, 0x40).mirror(0x0f).rw(FUNC(pc8001_state::port40_r), FUNC(pc8001_state::port40_w));
map(0x50, 0x51).rw(m_crtc, FUNC(upd3301_device::read), FUNC(upd3301_device::write));
diff --git a/src/mame/drivers/pc8401a.cpp b/src/mame/drivers/pc8401a.cpp
index c70d2d835dc..f0c70f598a9 100644
--- a/src/mame/drivers/pc8401a.cpp
+++ b/src/mame/drivers/pc8401a.cpp
@@ -361,8 +361,7 @@ void pc8401a_state::pc8500_io(address_map &map)
map(0x08, 0x08).portr("Y.8");
map(0x09, 0x09).portr("Y.9");
map(0x10, 0x10).w(FUNC(pc8401a_state::rtc_cmd_w));
- map(0x20, 0x20).rw(I8251_TAG, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x21, 0x21).rw(I8251_TAG, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x20, 0x21).rw(I8251_TAG, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x30, 0x30).rw(FUNC(pc8401a_state::mmr_r), FUNC(pc8401a_state::mmr_w));
// AM_RANGE(0x31, 0x31)
map(0x40, 0x40).rw(FUNC(pc8401a_state::rtc_r), FUNC(pc8401a_state::rtc_ctrl_w));
diff --git a/src/mame/drivers/pc8801.cpp b/src/mame/drivers/pc8801.cpp
index b75c37bce6a..098301df216 100644
--- a/src/mame/drivers/pc8801.cpp
+++ b/src/mame/drivers/pc8801.cpp
@@ -1553,8 +1553,7 @@ void pc8801_state::pc8801_io(address_map &map)
map(0x0f, 0x0f).portr("KEY15");
map(0x00, 0x02).w(FUNC(pc8801_state::pc8801_pcg8100_w));
map(0x10, 0x10).w(FUNC(pc8801_state::pc8801_rtc_w));
- map(0x20, 0x20).mirror(0x0e).rw(I8251_TAG, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w)); /* RS-232C and CMT */
- map(0x21, 0x21).mirror(0x0e).rw(I8251_TAG, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x20, 0x21).mirror(0x0e).rw(I8251_TAG, FUNC(i8251_device::read), FUNC(i8251_device::write)); /* RS-232C and CMT */
map(0x30, 0x30).portr("DSW1").w(FUNC(pc8801_state::pc8801_txt_cmt_ctrl_w));
map(0x31, 0x31).portr("DSW2").w(FUNC(pc8801_state::pc8801_gfx_ctrl_w));
map(0x32, 0x32).rw(FUNC(pc8801_state::pc8801_misc_ctrl_r), FUNC(pc8801_state::pc8801_misc_ctrl_w));
diff --git a/src/mame/drivers/pc9801.cpp b/src/mame/drivers/pc9801.cpp
index f57ddeeb266..b49dbc553e7 100644
--- a/src/mame/drivers/pc9801.cpp
+++ b/src/mame/drivers/pc9801.cpp
@@ -675,8 +675,7 @@ void pc9801_state::pc9801_common_io(address_map &map)
map(0x0090, 0x0090).r(m_fdc_2hd, FUNC(upd765a_device::msr_r));
map(0x0092, 0x0092).rw(m_fdc_2hd, FUNC(upd765a_device::fifo_r), FUNC(upd765a_device::fifo_w));
map(0x0094, 0x0094).rw(FUNC(pc9801_state::fdc_2hd_ctrl_r), FUNC(pc9801_state::fdc_2hd_ctrl_w));
- map(0x0091, 0x0091).rw(m_sio, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x0093, 0x0093).rw(m_sio, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x0090, 0x0093).rw(m_sio, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0xff00);
map(0x7fd8, 0x7fdf).rw("ppi8255_mouse", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0xff00);
}
diff --git a/src/mame/drivers/peoplepc.cpp b/src/mame/drivers/peoplepc.cpp
index 9d45727b24e..565fa2c21c3 100644
--- a/src/mame/drivers/peoplepc.cpp
+++ b/src/mame/drivers/peoplepc.cpp
@@ -212,10 +212,8 @@ void peoplepc_state::peoplepc_io(address_map &map)
map(0x0020, 0x0031).rw(m_dmac, FUNC(i8257_device::read), FUNC(i8257_device::write)).umask16(0x00ff);
map(0x0040, 0x0047).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff);
map(0x0048, 0x004f).rw("pit8253", FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
- map(0x0054, 0x0054).rw(m_8251key, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x0056, 0x0056).rw(m_8251key, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x005c, 0x005c).rw(m_8251ser, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x005e, 0x005e).rw(m_8251ser, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x0054, 0x0057).rw(m_8251key, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
+ map(0x005c, 0x005f).rw(m_8251ser, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
map(0x0064, 0x0067).m(m_fdc, FUNC(upd765a_device::map)).umask16(0x00ff);
map(0x006c, 0x006c).w("h46505", FUNC(mc6845_device::address_w));
map(0x006e, 0x006e).rw("h46505", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
diff --git a/src/mame/drivers/pg685.cpp b/src/mame/drivers/pg685.cpp
index 60a6f89e2ad..177fadb2ca4 100644
--- a/src/mame/drivers/pg685.cpp
+++ b/src/mame/drivers/pg685.cpp
@@ -167,14 +167,12 @@ void pg685_state::pg675_mem(address_map &map)
map(0xf9f03, 0xf9f03).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
map(0xf9f04, 0xf9f04).rw(FUNC(pg685_state::f9f04_r), FUNC(pg685_state::f9f04_w));
map(0xf9f06, 0xf9f07).rw("mainpic", FUNC(pic8259_device::read), FUNC(pic8259_device::write));
- map(0xf9f08, 0xf9f08).rw("mainuart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xf9f09, 0xf9f09).rw("mainuart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xf9f08, 0xf9f09).rw("mainuart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0xf9f20, 0xf9f23).rw(m_fdc, FUNC(fd1797_device::read), FUNC(fd1797_device::write));
map(0xf9f24, 0xf9f24).rw(FUNC(pg685_state::f9f24_r), FUNC(pg685_state::f9f24_w));
map(0xf9f28, 0xf9f2b).rw("modppi1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xf9f2c, 0xf9f2f).rw("modppi2", FUNC(i8255_device::read), FUNC(i8255_device::write));
- map(0xf9f30, 0xf9f30).rw("moduart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xf9f31, 0xf9f31).rw("moduart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xf9f30, 0xf9f31).rw("moduart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0xf9f32, 0xf9f32).w(FUNC(pg685_state::f9f32_w));
map(0xf9f33, 0xf9f33).r(FUNC(pg685_state::f9f33_r));
map(0xf9f40, 0xf9f5f).rw("rtc", FUNC(mm58167_device::read), FUNC(mm58167_device::write));
@@ -205,14 +203,12 @@ void pg685_state::pg685oua12_mem(address_map &map)
map(0xf9f00, 0xf9f01).rw("kbdc", FUNC(i8279_device::read), FUNC(i8279_device::write));
map(0xf9f04, 0xf9f04).rw(FUNC(pg685_state::f9f04_r), FUNC(pg685_state::f9f04_w));
map(0xf9f06, 0xf9f07).rw("mainpic", FUNC(pic8259_device::read), FUNC(pic8259_device::write));
- map(0xf9f08, 0xf9f08).rw("mainuart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xf9f09, 0xf9f09).rw("mainuart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xf9f08, 0xf9f09).rw("mainuart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0xf9f20, 0xf9f23).rw(m_fdc, FUNC(fd1797_device::read), FUNC(fd1797_device::write));
map(0xf9f24, 0xf9f24).rw(FUNC(pg685_state::f9f24_r), FUNC(pg685_state::f9f24_w));
map(0xf9f28, 0xf9f2b).rw("modppi1", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xf9f2c, 0xf9f2f).rw("modppi2", FUNC(i8255_device::read), FUNC(i8255_device::write));
- map(0xf9f30, 0xf9f30).rw("moduart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xf9f31, 0xf9f31).rw("moduart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xf9f30, 0xf9f31).rw("moduart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0xf9f32, 0xf9f32).w(FUNC(pg685_state::f9f32_w));
map(0xf9f33, 0xf9f33).r(FUNC(pg685_state::f9f33_r));
map(0xf9f34, 0xf9f37).rw("bppit", FUNC(pit8253_device::read), FUNC(pit8253_device::write));
diff --git a/src/mame/drivers/pimps.cpp b/src/mame/drivers/pimps.cpp
index b93bacbd965..e7d2cbf5918 100644
--- a/src/mame/drivers/pimps.cpp
+++ b/src/mame/drivers/pimps.cpp
@@ -103,10 +103,8 @@ void pimps_state::mem_map(address_map &map)
void pimps_state::io_map(address_map &map)
{
map.unmap_value_high();
- map(0xf0, 0xf0).rw("uart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xf1, 0xf1).rw("uart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0xf2, 0xf2).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xf3, 0xf3).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xf0, 0xf1).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0xf2, 0xf3).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
}
/* Input ports */
diff --git a/src/mame/drivers/poly88.cpp b/src/mame/drivers/poly88.cpp
index 218b727a0e9..c6177449de5 100644
--- a/src/mame/drivers/poly88.cpp
+++ b/src/mame/drivers/poly88.cpp
@@ -65,8 +65,7 @@ void poly88_state::poly88_io(address_map &map)
{
map.unmap_value_high();
map.global_mask(0xff);
- map(0x00, 0x00).rw(m_uart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x01, 0x01).rw(m_uart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x00, 0x01).rw(m_uart, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x04, 0x04).w(FUNC(poly88_state::poly88_baud_rate_w));
map(0x08, 0x08).w(FUNC(poly88_state::poly88_intr_w));
map(0xf8, 0xf8).r(FUNC(poly88_state::poly88_keyboard_r));
diff --git a/src/mame/drivers/pp01.cpp b/src/mame/drivers/pp01.cpp
index 1e0a6460d8b..3263cf7f740 100644
--- a/src/mame/drivers/pp01.cpp
+++ b/src/mame/drivers/pp01.cpp
@@ -40,8 +40,7 @@ void pp01_state::pp01_io(address_map &map)
{
map(0xc0, 0xc3).rw("ppi8255", FUNC(i8255_device::read), FUNC(i8255_device::write)); // system
//AM_RANGE(0xc4, 0xc7) AM_DEVREADWRITE("ppi8255", i8255_device, read, write) // user
- map(0xc8, 0xc8).mirror(2).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xc9, 0xc9).mirror(2).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xc8, 0xc9).mirror(2).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0xcc, 0xcf).w(FUNC(pp01_state::pp01_video_write_mode_w));
map(0xd0, 0xd3).rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
map(0xe0, 0xef).mirror(0x10).rw(FUNC(pp01_state::pp01_mem_block_r), FUNC(pp01_state::pp01_mem_block_w));
diff --git a/src/mame/drivers/pwrview.cpp b/src/mame/drivers/pwrview.cpp
index 98b580297d6..0e66b61a15e 100644
--- a/src/mame/drivers/pwrview.cpp
+++ b/src/mame/drivers/pwrview.cpp
@@ -392,8 +392,7 @@ void pwrview_state::pwrview_io(address_map &map)
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(0xc2c0, 0xc2c0).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xc2c2, 0xc2c2).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ 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();
map(0xc2e6, 0xc2e6).r(FUNC(pwrview_state::pitclock_r));
diff --git a/src/mame/drivers/px8.cpp b/src/mame/drivers/px8.cpp
index 4f13ddcefec..af96e8c3c7a 100644
--- a/src/mame/drivers/px8.cpp
+++ b/src/mame/drivers/px8.cpp
@@ -527,8 +527,7 @@ void px8_state::px8_io(address_map &map)
map.unmap_value_high();
map.global_mask(0x0f);
map(0x00, 0x07).rw(FUNC(px8_state::gah40m_r), FUNC(px8_state::gah40m_w));
- map(0x0c, 0x0c).rw(I8251_TAG, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x0d, 0x0d).rw(I8251_TAG, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x0c, 0x0d).rw(I8251_TAG, FUNC(i8251_device::read), FUNC(i8251_device::write));
// AM_RANGE(0x0e, 0x0e) AM_DEVREADWRITE(SED1320_TAG, sed1330_device, status_r, data_w)
// AM_RANGE(0x0f, 0x0f) AM_DEVREADWRITE(SED1320_TAG, sed1330_device, data_r, command_w)
}
diff --git a/src/mame/drivers/qtsbc.cpp b/src/mame/drivers/qtsbc.cpp
index 7bdc8061e12..6e4ca0e4688 100644
--- a/src/mame/drivers/qtsbc.cpp
+++ b/src/mame/drivers/qtsbc.cpp
@@ -150,10 +150,8 @@ READ8_MEMBER(qtsbc_state::io_r)
return 0xff;
case 6:
- return m_usart->data_r(space, 0);
-
case 7:
- return m_usart->status_r(space, 0);
+ return m_usart->read(offset & 1);
}
}
else
@@ -192,11 +190,8 @@ WRITE8_MEMBER(qtsbc_state::io_w)
break;
case 6:
- m_usart->data_w(space, 0, data);
- break;
-
case 7:
- m_usart->control_w(space, 0, data);
+ m_usart->write(offset & 1, data);
break;
}
}
diff --git a/src/mame/drivers/rainbow.cpp b/src/mame/drivers/rainbow.cpp
index 83918c57854..df625970c02 100644
--- a/src/mame/drivers/rainbow.cpp
+++ b/src/mame/drivers/rainbow.cpp
@@ -957,8 +957,7 @@ void rainbow_state::rainbow8088_io(address_map &map)
map(0x0e, 0x0e).w(FUNC(rainbow_state::printer_bitrate_w));
- map(0x10, 0x10).rw(m_kbd8251, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x11, 0x11).rw(m_kbd8251, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x10, 0x11).rw(m_kbd8251, FUNC(i8251_device::read), FUNC(i8251_device::write));
// ===========================================================
// There are 4 select lines for Option Select 1 to 4
diff --git a/src/mame/drivers/sage2.cpp b/src/mame/drivers/sage2.cpp
index 02962af2659..b3a7ddd1eb6 100644
--- a/src/mame/drivers/sage2.cpp
+++ b/src/mame/drivers/sage2.cpp
@@ -42,13 +42,11 @@ void sage2_state::sage2_mem(address_map &map)
map(0xffc000, 0xffc007).rw(I8253_1_TAG, FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
map(0xffc010, 0xffc01f).noprw(); //AM_DEVREADWRITE8(TMS9914_TAG, tms9914_device, read, write, 0x00ff)
map(0xffc020, 0xffc027).rw(I8255A_0_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff); // i8255, DIPs + Floppy ctrl port
- map(0xffc031, 0xffc031).rw(m_usart1, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xffc033, 0xffc033).rw(m_usart1, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xffc030, 0xffc033).rw(m_usart1, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
map(0xffc040, 0xffc043).rw(m_pic, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff);
map(0xffc050, 0xffc053).m(m_fdc, FUNC(upd765a_device::map)).umask16(0x00ff);
map(0xffc060, 0xffc067).rw(I8255A_1_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff); // i8255, Printer
- map(0xffc071, 0xffc071).rw(m_usart0, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xffc073, 0xffc073).rw(m_usart0, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xffc070, 0xffc073).rw(m_usart0, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
map(0xffc080, 0xffc087).mirror(0x78).rw(I8253_0_TAG, FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
// AM_RANGE(0xffc400, 0xffc407) AM_DEVREADWRITE8(S2651_0_TAG, s2651_device, read, write, 0x00ff)
// AM_RANGE(0xffc440, 0xffc447) AM_DEVREADWRITE8(S2651_1_TAG, s2651_device, read, write, 0x00ff)
diff --git a/src/mame/drivers/sbrain.cpp b/src/mame/drivers/sbrain.cpp
index fc1b7caa0ff..8b088a092d1 100644
--- a/src/mame/drivers/sbrain.cpp
+++ b/src/mame/drivers/sbrain.cpp
@@ -138,12 +138,10 @@ void sbrain_state::sbrain_mem(address_map &map)
void sbrain_state::sbrain_io(address_map &map)
{
map.global_mask(0xff);
- map(0x40, 0x40).mirror(6).rw(m_u0, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x41, 0x41).mirror(6).rw(m_u0, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x40, 0x41).mirror(6).rw(m_u0, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x48, 0x4f).r(FUNC(sbrain_state::port48_r)); //chr_int_latch
map(0x50, 0x57).r(FUNC(sbrain_state::port50_r));
- map(0x58, 0x58).mirror(6).rw(m_u1, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x59, 0x59).mirror(6).rw(m_u1, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x58, 0x59).mirror(6).rw(m_u1, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x60, 0x60).mirror(7).w("brg", FUNC(com8116_device::stt_str_w));
map(0x68, 0x6b).mirror(4).rw(m_ppi, FUNC(i8255_device::read), FUNC(i8255_device::write));
}
diff --git a/src/mame/drivers/scopus.cpp b/src/mame/drivers/scopus.cpp
index 8f0d45ed5ea..1228aa52d88 100644
--- a/src/mame/drivers/scopus.cpp
+++ b/src/mame/drivers/scopus.cpp
@@ -133,8 +133,7 @@ void sagitta180_state::maincpu_map(address_map &map)
void sagitta180_state::maincpu_io_map(address_map &map)
{
map(0x00, 0x00).portr("DSW");
- map(0x20, 0x20).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x21, 0x21).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x20, 0x21).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x30, 0x31).rw(m_crtc, FUNC(i8275_device::read), FUNC(i8275_device::write));
map(0x40, 0x48).rw(m_dma8257, FUNC(i8257_device::read), FUNC(i8257_device::write));
}
diff --git a/src/mame/drivers/sdk80.cpp b/src/mame/drivers/sdk80.cpp
index ebdc7cd6a2d..1a3be1c2c6f 100644
--- a/src/mame/drivers/sdk80.cpp
+++ b/src/mame/drivers/sdk80.cpp
@@ -83,8 +83,7 @@ void sdk80_state::sdk80_io(address_map &map)
map.global_mask(0xff);
map(0xec, 0xef).rw(m_ppi_1, FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0xf4, 0xf7).rw(m_ppi_0, FUNC(i8255_device::read), FUNC(i8255_device::write));
- map(0xfa, 0xfa).rw(m_usart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xfb, 0xfb).rw(m_usart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xfa, 0xfb).rw(m_usart, FUNC(i8251_device::read), FUNC(i8251_device::write));
}
static INPUT_PORTS_START( sdk80 )
diff --git a/src/mame/drivers/sdk86.cpp b/src/mame/drivers/sdk86.cpp
index 7bec26e7c31..bec2b643446 100644
--- a/src/mame/drivers/sdk86.cpp
+++ b/src/mame/drivers/sdk86.cpp
@@ -73,8 +73,7 @@ void sdk86_state::sdk86_mem(address_map &map)
void sdk86_state::sdk86_io(address_map &map)
{
map.unmap_value_high();
- map(0xfff0, 0xfff0).mirror(4).rw(I8251_TAG, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xfff2, 0xfff2).mirror(4).rw(I8251_TAG, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xfff0, 0xfff3).mirror(4).rw(I8251_TAG, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
map(0xffe8, 0xffeb).mirror(4).rw("i8279", FUNC(i8279_device::read), FUNC(i8279_device::write)).umask16(0x00ff);
map(0xfff8, 0xffff).rw("port1", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0xff00);
map(0xfff8, 0xffff).rw("port2", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff);
diff --git a/src/mame/drivers/seattlecmp.cpp b/src/mame/drivers/seattlecmp.cpp
index 0d9a1745a07..eaedcf1ab3f 100644
--- a/src/mame/drivers/seattlecmp.cpp
+++ b/src/mame/drivers/seattlecmp.cpp
@@ -83,8 +83,7 @@ void seattle_comp_state::io_map(address_map &map)
map(0xf0, 0xf1).rw("pic1", FUNC(pic8259_device::read), FUNC(pic8259_device::write));
map(0xf2, 0xf3).rw("pic2", FUNC(pic8259_device::read), FUNC(pic8259_device::write));
map(0xf4, 0xf5).rw("stc", FUNC(am9513_device::read8), FUNC(am9513_device::write8));
- map(0xf6, 0xf6).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xf7, 0xf7).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xf6, 0xf7).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
//AM_RANGE(0xfc, 0xfd) Parallel data, status, serial DCD
//AM_RANGE(0xfe, 0xff) Eprom disable bit, read sense switches (bank of 8 dipswitches)
}
diff --git a/src/mame/drivers/segam1.cpp b/src/mame/drivers/segam1.cpp
index 6894a9183ae..944e974b39d 100644
--- a/src/mame/drivers/segam1.cpp
+++ b/src/mame/drivers/segam1.cpp
@@ -235,8 +235,7 @@ void segam1_state::segam1_comms_map(address_map &map)
map(0x0000, 0x7fff).rom();
map(0x8000, 0x9fff).ram();
map(0xa000, 0xa7ff).rw("dpram", FUNC(mb8421_device::left_r), FUNC(mb8421_device::left_w));
- map(0xc000, 0xc000).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xc001, 0xc001).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xc000, 0xc001).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0xe003, 0xe003).nopw(); // ???
}
diff --git a/src/mame/drivers/seibucats.cpp b/src/mame/drivers/seibucats.cpp
index 7e29e907ea1..45d9018dacf 100644
--- a/src/mame/drivers/seibucats.cpp
+++ b/src/mame/drivers/seibucats.cpp
@@ -184,10 +184,8 @@ void seibucats_state::seibucats_map(address_map &map)
map(0x01200000, 0x01200007).rw("ymz", FUNC(ymz280b_device::read), FUNC(ymz280b_device::write)).umask32(0x000000ff);
map(0x01200100, 0x01200107).nopw(); // YMF721-S MIDI data
map(0x01200104, 0x01200107).nopr(); // YMF721-S MIDI status
- map(0x01200200, 0x01200200).rw("usart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x01200204, 0x01200204).rw("usart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x01200300, 0x01200300).rw("usart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x01200304, 0x01200304).rw("usart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x01200200, 0x01200207).rw("usart1", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask32(0x000000ff);
+ map(0x01200300, 0x01200307).rw("usart2", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask32(0x000000ff);
map(0xa0000000, 0xa1ffffff).noprw(); // NVRAM on ROM board
map(0xa2000000, 0xa2000001).w(FUNC(seibucats_state::aux_rtc_w));
map(0xffe00000, 0xffffffff).rom().region("ipl", 0);
diff --git a/src/mame/drivers/selz80.cpp b/src/mame/drivers/selz80.cpp
index ef9388a11e5..ca1ac40da97 100644
--- a/src/mame/drivers/selz80.cpp
+++ b/src/mame/drivers/selz80.cpp
@@ -95,8 +95,7 @@ void selz80_state::selz80_io(address_map &map)
map.unmap_value_high();
map.global_mask(0xff);
map(0x00, 0x01).rw("i8279", FUNC(i8279_device::read), FUNC(i8279_device::write));
- map(0x18, 0x18).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x19, 0x19).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x18, 0x19).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
}
/* Input ports */
diff --git a/src/mame/drivers/sg1000.cpp b/src/mame/drivers/sg1000.cpp
index 5b4b29f1c78..d7a5a34579e 100644
--- a/src/mame/drivers/sg1000.cpp
+++ b/src/mame/drivers/sg1000.cpp
@@ -228,8 +228,7 @@ void sf7000_state::sf7000_io_map(address_map &map)
map(0xdc, 0xdf).rw(FUNC(sf7000_state::peripheral_r), FUNC(sf7000_state::peripheral_w));
map(0xe0, 0xe1).m(m_fdc, FUNC(upd765a_device::map));
map(0xe4, 0xe7).rw(UPD9255_1_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write));
- map(0xe8, 0xe8).rw(UPD8251_TAG, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xe9, 0xe9).rw(UPD8251_TAG, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xe8, 0xe9).rw(UPD8251_TAG, FUNC(i8251_device::read), FUNC(i8251_device::write));
}
/***************************************************************************
diff --git a/src/mame/drivers/sm1800.cpp b/src/mame/drivers/sm1800.cpp
index b56ae565924..6d8cc7187d6 100644
--- a/src/mame/drivers/sm1800.cpp
+++ b/src/mame/drivers/sm1800.cpp
@@ -71,8 +71,7 @@ void sm1800_state::sm1800_io(address_map &map)
map.global_mask(0xff);
map.unmap_value_high();
map(0x3c, 0x3d).rw(m_crtc, FUNC(i8275_device::read), FUNC(i8275_device::write));
- map(0x5c, 0x5c).rw(m_uart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x5d, 0x5d).rw(m_uart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x5c, 0x5d).rw(m_uart, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x6c, 0x6f).rw(m_ppi, FUNC(i8255_device::read), FUNC(i8255_device::write));
//AM_RANGE( 0x74, 0x74 ) AM_DEVREADWRITE("i8279", i8279_device, status_r, cmd_w)
//AM_RANGE( 0x75, 0x75 ) AM_DEVREADWRITE("i8279", i8279_device, data_r, data_w)
diff --git a/src/mame/drivers/sm7238.cpp b/src/mame/drivers/sm7238.cpp
index 42865b42358..1a1c26dafda 100644
--- a/src/mame/drivers/sm7238.cpp
+++ b/src/mame/drivers/sm7238.cpp
@@ -150,16 +150,13 @@ void sm7238_state::sm7238_io(address_map &map)
{
map.unmap_value_high();
// AM_RANGE (0x40, 0x4f) AM_RAM // LUT
- map(0xa0, 0xa0).rw(m_i8251line, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xa1, 0xa1).rw(m_i8251line, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0xa4, 0xa4).rw(m_i8251kbd, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xa5, 0xa5).rw(m_i8251kbd, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xa0, 0xa1).rw(m_i8251line, FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0xa4, 0xa5).rw(m_i8251kbd, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0xa8, 0xab).rw(m_t_color, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
map(0xac, 0xad).rw(m_pic8259, FUNC(pic8259_device::read), FUNC(pic8259_device::write));
map(0xb0, 0xb3).rw(m_t_hblank, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
map(0xb4, 0xb7).rw(m_t_vblank, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
- map(0xb8, 0xb8).rw(m_i8251prn, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xb9, 0xb9).rw(m_i8251prn, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xb8, 0xb9).rw(m_i8251prn, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0xbc, 0xbf).rw(m_t_iface, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
}
diff --git a/src/mame/drivers/softbox.cpp b/src/mame/drivers/softbox.cpp
index dcb1c435812..7ec99a421fe 100644
--- a/src/mame/drivers/softbox.cpp
+++ b/src/mame/drivers/softbox.cpp
@@ -126,8 +126,7 @@ void softbox_state::softbox_mem(address_map &map)
void softbox_state::softbox_io(address_map &map)
{
map.global_mask(0xff);
- map(0x08, 0x08).rw(I8251_TAG, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x09, 0x09).rw(I8251_TAG, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x08, 0x09).rw(I8251_TAG, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x0c, 0x0c).w(COM8116_TAG, FUNC(com8116_device::stt_str_w));
map(0x10, 0x13).rw(I8255_0_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x14, 0x17).rw(I8255_1_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write));
diff --git a/src/mame/drivers/sys9002.cpp b/src/mame/drivers/sys9002.cpp
index 70c16c2e744..ce93ab675a7 100644
--- a/src/mame/drivers/sys9002.cpp
+++ b/src/mame/drivers/sys9002.cpp
@@ -66,11 +66,9 @@ void sys9002_state::sys9002_io(address_map &map)
map.global_mask(0xff);
//AM_RANGE(0x04, 0x04) AM_DEVREADWRITE("crtc", mc6845_device, status_r, address_w) // left commented out as mame freezes after about 2 seconds
//AM_RANGE(0x05, 0x05) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w)
- map(0x08, 0x08).rw("uart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x09, 0x09).rw("uart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w)); // 7 bits even parity, x64
+ map(0x08, 0x09).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x11, 0x11).nopr(); // continuous read
- map(0x1c, 0x1c).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x1d, 0x1d).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w)); // enabled for transmit only, 8 bits odd parity, x64
+ map(0x1c, 0x1d).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
}
/* Input ports */
@@ -151,7 +149,7 @@ MACHINE_CONFIG_START(sys9002_state::sys9002)
uart_clock.signal_handler().append("uart2", FUNC(i8251_device::write_txc));
uart_clock.signal_handler().append("uart2", FUNC(i8251_device::write_rxc));
- i8251_device &uart1(I8251(config, "uart1", 0));
+ i8251_device &uart1(I8251(config, "uart1", 0)); // 7 bits even parity, x64
uart1.txd_handler().set("rs232a", FUNC(rs232_port_device::write_txd));
uart1.dtr_handler().set("rs232a", FUNC(rs232_port_device::write_dtr));
uart1.rts_handler().set("rs232a", FUNC(rs232_port_device::write_rts));
@@ -162,7 +160,7 @@ MACHINE_CONFIG_START(sys9002_state::sys9002)
MCFG_RS232_CTS_HANDLER(WRITELINE("uart1", i8251_device, write_cts))
MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", uart1)
- i8251_device &uart2(I8251(config, "uart2", 0));
+ i8251_device &uart2(I8251(config, "uart2", 0)); // enabled for transmit only, 8 bits odd parity, x64
uart2.txd_handler().set("rs232b", FUNC(rs232_port_device::write_txd));
uart2.dtr_handler().set("rs232b", FUNC(rs232_port_device::write_dtr));
uart2.rts_handler().set("rs232b", FUNC(rs232_port_device::write_rts));
diff --git a/src/mame/drivers/tandy2k.cpp b/src/mame/drivers/tandy2k.cpp
index 8f3a0a9d414..03b12ee5e0c 100644
--- a/src/mame/drivers/tandy2k.cpp
+++ b/src/mame/drivers/tandy2k.cpp
@@ -321,7 +321,7 @@ void tandy2k_state::tandy2k_io(address_map &map)
map(0x00000, 0x00000).mirror(0x8).rw(FUNC(tandy2k_state::enable_r), FUNC(tandy2k_state::enable_w));
map(0x00002, 0x00002).mirror(0x8).w(FUNC(tandy2k_state::dma_mux_w));
map(0x00004, 0x00004).mirror(0x8).rw(FUNC(tandy2k_state::fldtc_r), FUNC(tandy2k_state::fldtc_w));
- map(0x00010, 0x00013).mirror(0xc).rw(m_uart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w)).umask16(0x00ff);
+ map(0x00010, 0x00013).mirror(0xc).rw(m_uart, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
map(0x00030, 0x00033).mirror(0xc).m(m_fdc, FUNC(i8272a_device::map)).umask16(0x00ff);
map(0x00040, 0x00047).mirror(0x8).rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
map(0x00050, 0x00057).mirror(0x8).rw(m_i8255a, FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff);
diff --git a/src/mame/drivers/tim100.cpp b/src/mame/drivers/tim100.cpp
index de2e6397b74..f62678f26c3 100644
--- a/src/mame/drivers/tim100.cpp
+++ b/src/mame/drivers/tim100.cpp
@@ -59,10 +59,8 @@ void tim100_state::tim100_mem(address_map &map)
map.unmap_value_high();
map(0x0000, 0x1fff).rom(); // 2764 at U16
map(0x2000, 0x27ff).ram().share("videoram"); // 2KB static ram CDM6116A at U15
- map(0x6000, 0x6000).rw("uart_u17", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x6001, 0x6001).rw("uart_u17", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x8000, 0x8000).rw("uart_u18", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x8001, 0x8001).rw("uart_u18", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x6000, 0x6001).rw("uart_u17", FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0x8000, 0x8001).rw("uart_u18", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0xa000, 0xa000).nopw(); // continuously writes 00 here
map(0xc000, 0xc001).rw(m_crtc, FUNC(i8276_device::read), FUNC(i8276_device::write)); // i8276
}
diff --git a/src/mame/drivers/trs80.cpp b/src/mame/drivers/trs80.cpp
index ad7bf3fae89..adcd9636b6a 100644
--- a/src/mame/drivers/trs80.cpp
+++ b/src/mame/drivers/trs80.cpp
@@ -264,8 +264,7 @@ void trs80_state::radionic_mem(address_map &map)
{
m1_mem(map);
// Optional external RS232 module with 8251
- //map(0x3400, 0x3400).mirror(0xfe).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- //map(0x3401, 0x3401).mirror(0xfe).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ //map(0x3400, 0x3401).mirror(0xfe).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
// Internal colour controls (need details)
//map(0x3500, 0x35ff).w(FUNC(trs80_state::colour_w));
// Internal interface to external slots
diff --git a/src/mame/drivers/tsispch.cpp b/src/mame/drivers/tsispch.cpp
index e6d8fc853bc..a6fe540acc3 100644
--- a/src/mame/drivers/tsispch.cpp
+++ b/src/mame/drivers/tsispch.cpp
@@ -309,8 +309,7 @@ void tsispch_state::i8086_mem(address_map &map)
{
map.unmap_value_high();
map(0x00000, 0x02FFF).mirror(0x34000).ram(); // verified; 6264*2 sram, only first 3/4 used
- map(0x03000, 0x03000).mirror(0x341FC).rw("i8251a_u15", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x03002, 0x03002).mirror(0x341FC).rw("i8251a_u15", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x03000, 0x03003).mirror(0x341FC).rw("i8251a_u15", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
map(0x03200, 0x03203).mirror(0x341FC).rw(m_pic, FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff); // AMD P8259 PIC @ U5 (reads as 04 and 7c, upper byte is open bus)
map(0x03400, 0x03400).mirror(0x341FE).r(FUNC(tsispch_state::dsw_r)); // verified, read from dipswitch s4
map(0x03401, 0x03401).mirror(0x341FE).w(FUNC(tsispch_state::peripheral_w)); // verified, write to the 4 leds, plus 4 control bits
diff --git a/src/mame/drivers/unior.cpp b/src/mame/drivers/unior.cpp
index ac4c02df4ba..bcfc520f54c 100644
--- a/src/mame/drivers/unior.cpp
+++ b/src/mame/drivers/unior.cpp
@@ -110,8 +110,7 @@ void unior_state::unior_io(address_map &map)
map(0x50, 0x50).w(FUNC(unior_state::scroll_w));
map(0x60, 0x61).rw("crtc", FUNC(i8275_device::read), FUNC(i8275_device::write));
map(0xdc, 0xdf).rw(m_pit, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
- map(0xec, 0xec).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0xed, 0xed).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0xec, 0xed).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
}
/* Input ports */
diff --git a/src/mame/drivers/v100.cpp b/src/mame/drivers/v100.cpp
index 0ee61d45b6a..427f3c82504 100644
--- a/src/mame/drivers/v100.cpp
+++ b/src/mame/drivers/v100.cpp
@@ -218,10 +218,8 @@ void v100_state::io_map(address_map &map)
map.global_mask(0xff);
map(0x00, 0x0f).w(m_vtac, FUNC(crt5037_device::write));
map(0x10, 0x10).w("brg1", FUNC(com8116_device::stt_str_w));
- map(0x12, 0x12).rw("usart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x13, 0x13).rw("usart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x14, 0x14).rw("usart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x15, 0x15).rw("usart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x12, 0x13).rw("usart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0x14, 0x15).rw("usart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x16, 0x16).w("brg2", FUNC(com8116_device::stt_str_w));
map(0x20, 0x20).r(FUNC(v100_state::earom_r));
map(0x30, 0x30).w(FUNC(v100_state::port30_w));
diff --git a/src/mame/drivers/v102.cpp b/src/mame/drivers/v102.cpp
index 210c1815ac6..36e02a821f5 100644
--- a/src/mame/drivers/v102.cpp
+++ b/src/mame/drivers/v102.cpp
@@ -63,8 +63,7 @@ void v102_state::io_map(address_map &map)
//AM_RANGE(0x00, 0x3f) AM_DEVREADWRITE("vpac", crt9007_device, read, write)
map(0x18, 0x19).nopw();
map(0x40, 0x43).rw("mpsc", FUNC(upd7201_new_device::ba_cd_r), FUNC(upd7201_new_device::ba_cd_w));
- map(0x60, 0x60).rw("usart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x61, 0x61).rw("usart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x60, 0x61).rw("usart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x80, 0x83).w("pit", FUNC(pit8253_device::write));
map(0xa0, 0xa3).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
//AM_RANGE(0xbf, 0xbf) ???
diff --git a/src/mame/drivers/v1050.cpp b/src/mame/drivers/v1050.cpp
index f90de13df63..d6ad0852bc8 100644
--- a/src/mame/drivers/v1050.cpp
+++ b/src/mame/drivers/v1050.cpp
@@ -336,7 +336,7 @@ READ8_MEMBER( v1050_state::kb_data_r )
READ8_MEMBER( v1050_state::kb_status_r )
{
- uint8_t val = m_uart_kb->status_r(space, 0);
+ uint8_t val = m_uart_kb->status_r();
return val | (m_keyavail ? 0x02 : 0x00);
}
@@ -481,12 +481,10 @@ void v1050_state::v1050_io(address_map &map)
map.unmap_value_high();
map.global_mask(0xff);
map(0x84, 0x87).rw(m_ppi_disp, FUNC(i8255_device::read), FUNC(i8255_device::write));
-// AM_RANGE(0x88, 0x88) AM_DEVREADWRITE(I8251A_KB_TAG, i8251_device, data_r, data_w)
-// AM_RANGE(0x89, 0x89) AM_DEVREADWRITE(I8251A_KB_TAG, i8251_device, status_r, control_w)
+// map(0x88, 0x89).rw(m_uart_kb, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x88, 0x88).r(FUNC(v1050_state::kb_data_r)).w(m_uart_kb, FUNC(i8251_device::data_w));
map(0x89, 0x89).r(FUNC(v1050_state::kb_status_r)).w(m_uart_kb, FUNC(i8251_device::control_w));
- map(0x8c, 0x8c).rw(m_uart_sio, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x8d, 0x8d).rw(m_uart_sio, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x8c, 0x8d).rw(m_uart_sio, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x90, 0x93).rw(I8255A_MISC_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x94, 0x97).rw(m_fdc, FUNC(mb8877_device::read), FUNC(mb8877_device::write));
map(0x9c, 0x9f).rw(I8255A_RTC_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write));
diff --git a/src/mame/drivers/v550.cpp b/src/mame/drivers/v550.cpp
index eafbd292fbd..c8b9f504978 100644
--- a/src/mame/drivers/v550.cpp
+++ b/src/mame/drivers/v550.cpp
@@ -70,8 +70,7 @@ void v550_state::io_map(address_map &map)
map(0x00, 0x01).rw("gdc", FUNC(upd7220_device::read), FUNC(upd7220_device::write));
map(0x10, 0x10).w("brg1", FUNC(com8116_device::stt_str_w));
map(0x20, 0x23).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
- map(0x30, 0x30).rw(m_usart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x31, 0x31).rw(m_usart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x30, 0x31).rw(m_usart, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x40, 0x40).rw("mpsc", FUNC(upd7201_new_device::da_r), FUNC(upd7201_new_device::da_w));
map(0x41, 0x41).rw("mpsc", FUNC(upd7201_new_device::ca_r), FUNC(upd7201_new_device::ca_w));
map(0x48, 0x48).rw("mpsc", FUNC(upd7201_new_device::db_r), FUNC(upd7201_new_device::db_w));
diff --git a/src/mame/drivers/vector4.cpp b/src/mame/drivers/vector4.cpp
index e73108e1973..1d338f6b3c6 100644
--- a/src/mame/drivers/vector4.cpp
+++ b/src/mame/drivers/vector4.cpp
@@ -48,12 +48,9 @@ void vector4_state::vector4_io(address_map &map)
{
map.unmap_value_high();
map.global_mask(0xff);
- map(0x02, 0x02).rw("uart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x03, 0x03).rw("uart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x04, 0x04).rw("uart2", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x05, 0x05).rw("uart2", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x06, 0x06).rw("uart3", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x07, 0x07).rw("uart3", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x02, 0x03).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0x04, 0x05).rw("uart2", FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0x06, 0x07).rw("uart3", FUNC(i8251_device::read), FUNC(i8251_device::write));
}
/* Input ports */
diff --git a/src/mame/drivers/vectrix.cpp b/src/mame/drivers/vectrix.cpp
index dc1fdead34e..477fbb07386 100644
--- a/src/mame/drivers/vectrix.cpp
+++ b/src/mame/drivers/vectrix.cpp
@@ -44,8 +44,7 @@ void vectrix_state::mem_map(address_map &map)
void vectrix_state::io_map(address_map &map)
{
- map(0x3000, 0x3000).rw("uart1", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x3001, 0x3001).rw("uart1", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x3000, 0x3001).rw("uart1", FUNC(i8251_device::read), FUNC(i8251_device::write));
}
static INPUT_PORTS_START( vectrix )
diff --git a/src/mame/drivers/vixen.cpp b/src/mame/drivers/vixen.cpp
index 9751536838a..9f349bcae61 100644
--- a/src/mame/drivers/vixen.cpp
+++ b/src/mame/drivers/vixen.cpp
@@ -292,8 +292,7 @@ void vixen_state::vixen_io(address_map &map)
map(0x18, 0x18).mirror(0x07).r(FUNC(vixen_state::ieee488_r));
map(0x20, 0x21).mirror(0x04).w(m_io_i8155, FUNC(i8155_device::ale_w));
map(0x28, 0x28).mirror(0x05).rw(m_io_i8155, FUNC(i8155_device::read), FUNC(i8155_device::write));
- map(0x30, 0x30).mirror(0x06).rw(m_usart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x31, 0x31).mirror(0x06).rw(m_usart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x30, 0x31).mirror(0x06).rw(m_usart, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x38, 0x38).mirror(0x07).r(FUNC(vixen_state::port3_r));
// AM_RANGE(0xf0, 0xff) Hard Disk?
}
diff --git a/src/mame/drivers/vk100.cpp b/src/mame/drivers/vk100.cpp
index 3090162f4e1..0b9fa43acb5 100644
--- a/src/mame/drivers/vk100.cpp
+++ b/src/mame/drivers/vk100.cpp
@@ -749,15 +749,13 @@ void vk100_state::vk100_io(address_map &map)
map(0x64, 0x67).mirror(0x80).w(FUNC(vk100_state::vgEX)); //EX MOV, DOT, VEC, ER
map(0x68, 0x68).mirror(0x83).w(FUNC(vk100_state::KBDW)); //KBDW (probably AM_MIRROR(0x03))
map(0x6C, 0x6C).mirror(0x83).w(COM5016T_TAG, FUNC(com8116_device::stt_str_w)); //LD BAUD (baud rate clock divider setting for i8251 tx and rx clocks) (probably AM_MIRROR(0x03))
- map(0x70, 0x70).mirror(0x82).w(m_uart, FUNC(i8251_device::data_w)); //LD COMD (i8251 data reg)
- map(0x71, 0x71).mirror(0x82).w(m_uart, FUNC(i8251_device::control_w)); //LD COM (i8251 control reg)
+ map(0x70, 0x71).mirror(0x82).w(m_uart, FUNC(i8251_device::write)); //LD COMD
//AM_RANGE (0x74, 0x74) AM_MIRROR(0x83) AM_WRITE(unknown_74)
//AM_RANGE (0x78, 0x78) AM_MIRROR(0x83) AM_WRITE(kbdw) //KBDW ?(mirror?)
//AM_RANGE (0x7C, 0x7C) AM_MIRROR(0x83) AM_WRITE(unknown_7C)
map(0x40, 0x47).mirror(0x80).r(FUNC(vk100_state::SYSTAT_A)); // SYSTAT A (state machine done and last 4 bits of vram, as well as dipswitches)
map(0x48, 0x48).mirror(0x87/*0x80*/).r(FUNC(vk100_state::SYSTAT_B)); // SYSTAT B (uart stuff)
- map(0x50, 0x50).mirror(0x86).r(m_uart, FUNC(i8251_device::data_r)); // UART O
- map(0x51, 0x51).mirror(0x86).r(m_uart, FUNC(i8251_device::status_r)); // UAR
+ map(0x50, 0x51).mirror(0x86).r(m_uart, FUNC(i8251_device::read)); // UART O
//AM_RANGE (0x58, 0x58) AM_MIRROR(0x87) AM_READ(unknown_58)
//AM_RANGE (0x60, 0x60) AM_MIRROR(0x87) AM_READ(unknown_60)
//AM_RANGE (0x68, 0x68) AM_MIRROR(0x87) AM_READ(unknown_68) // NOT USED
diff --git a/src/mame/drivers/votrpss.cpp b/src/mame/drivers/votrpss.cpp
index 29148b476b1..2406bf53c2d 100644
--- a/src/mame/drivers/votrpss.cpp
+++ b/src/mame/drivers/votrpss.cpp
@@ -136,8 +136,7 @@ void votrpss_state::votrpss_io(address_map &map)
{
map.global_mask(0xff);
map(0x00, 0x03).mirror(0x3c).rw(m_ppi, FUNC(i8255_device::read), FUNC(i8255_device::write));
- map(0x40, 0x40).mirror(0x3e).rw("uart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x41, 0x41).mirror(0x3e).rw("uart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x40, 0x41).mirror(0x3e).rw("uart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x80, 0x83).mirror(0x3c).rw("pit", FUNC(pit8253_device::read), FUNC(pit8253_device::write));
map(0xc0, 0xc0).mirror(0x3e).rw("ay", FUNC(ay8910_device::data_r), FUNC(ay8910_device::address_w));
map(0xc1, 0xc1).mirror(0x3e).rw("ay", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
diff --git a/src/mame/drivers/vp122.cpp b/src/mame/drivers/vp122.cpp
index 4f96e34bd76..704659218ec 100644
--- a/src/mame/drivers/vp122.cpp
+++ b/src/mame/drivers/vp122.cpp
@@ -61,8 +61,7 @@ void vp122_state::io_map(address_map &map)
{
map(0x00, 0x07).rw("avdc", FUNC(scn2674_device::read), FUNC(scn2674_device::write));
map(0x10, 0x1f).rw("duart", FUNC(scn2681_device::read), FUNC(scn2681_device::write));
- map(0x20, 0x20).rw("usart", FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x21, 0x21).rw("usart", FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x20, 0x21).rw("usart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x50, 0x50).rw("avdc", FUNC(scn2674_device::buffer_r), FUNC(scn2674_device::buffer_w));
map(0x60, 0x60).rw("avdc", FUNC(scn2674_device::attr_buffer_r), FUNC(scn2674_device::attr_buffer_w));
map(0x70, 0x73).w("pit", FUNC(pit8253_device::write));
diff --git a/src/mame/drivers/vt100.cpp b/src/mame/drivers/vt100.cpp
index cc960891fd2..5d10f0d04f5 100644
--- a/src/mame/drivers/vt100.cpp
+++ b/src/mame/drivers/vt100.cpp
@@ -190,8 +190,7 @@ void vt100_state::vt100_io(address_map &map)
map.unmap_value_high();
map.global_mask(0xff);
// 0x00, 0x01 PUSART (Intel 8251)
- map(0x00, 0x00).rw(m_pusart, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x01, 0x01).rw(m_pusart, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x00, 0x01).rw(m_pusart, FUNC(i8251_device::read), FUNC(i8251_device::write));
// 0x02 Baud rate generator
map(0x02, 0x02).w("dbrg", FUNC(com8116_device::stt_str_w));
// 0x22 Modem buffer
diff --git a/src/mame/drivers/xor100.cpp b/src/mame/drivers/xor100.cpp
index 92e00a2856b..4fa4b8b013f 100644
--- a/src/mame/drivers/xor100.cpp
+++ b/src/mame/drivers/xor100.cpp
@@ -257,10 +257,8 @@ void xor100_state::xor100_mem(address_map &map)
void xor100_state::xor100_io(address_map &map)
{
map.global_mask(0xff);
- map(0x00, 0x00).rw(m_uart_a, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x01, 0x01).rw(m_uart_a, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x02, 0x02).rw(m_uart_b, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x03, 0x03).rw(m_uart_b, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x00, 0x01).rw(m_uart_a, FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0x02, 0x03).rw(m_uart_b, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x04, 0x07).rw(I8255A_TAG, FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x08, 0x08).w(FUNC(xor100_state::mmu_w));
map(0x09, 0x09).w(FUNC(xor100_state::prom_toggle_w));
diff --git a/src/mame/drivers/zorba.cpp b/src/mame/drivers/zorba.cpp
index c51bb983378..74bce8a0af0 100644
--- a/src/mame/drivers/zorba.cpp
+++ b/src/mame/drivers/zorba.cpp
@@ -85,12 +85,9 @@ void zorba_state::zorba_io(address_map &map)
map(0x04, 0x04).rw(FUNC(zorba_state::rom_r), FUNC(zorba_state::rom_w));
map(0x05, 0x05).rw(FUNC(zorba_state::ram_r), FUNC(zorba_state::ram_w));
map(0x10, 0x11).rw(m_crtc, FUNC(i8275_device::read), FUNC(i8275_device::write));
- map(0x20, 0x20).rw(m_uart0, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x21, 0x21).rw(m_uart0, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x22, 0x22).rw(m_uart1, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x23, 0x23).rw(m_uart1, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x24, 0x24).rw(m_uart2, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x25, 0x25).rw(m_uart2, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
+ map(0x20, 0x21).rw(m_uart0, FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0x22, 0x23).rw(m_uart1, FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0x24, 0x25).rw(m_uart2, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x26, 0x26).w(FUNC(zorba_state::intmask_w));
map(0x30, 0x30).rw(m_dma, FUNC(z80dma_device::bus_r), FUNC(z80dma_device::bus_w));
map(0x40, 0x43).rw(m_fdc, FUNC(fd1793_device::read), FUNC(fd1793_device::write));
diff --git a/src/mame/includes/model1.h b/src/mame/includes/model1.h
index f04d4b2843b..44a5b3c2504 100644
--- a/src/mame/includes/model1.h
+++ b/src/mame/includes/model1.h
@@ -103,8 +103,8 @@ public:
private:
// Machine
- DECLARE_MACHINE_START(model1);
- DECLARE_MACHINE_RESET(model1);
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
DECLARE_READ8_MEMBER(io_r);
DECLARE_WRITE8_MEMBER(io_w);
@@ -165,7 +165,7 @@ private:
DECLARE_WRITE8_MEMBER(r360_w);
// Rendering
- DECLARE_VIDEO_START(model1);
+ virtual void video_start() override;
DECLARE_READ16_MEMBER(model1_listctl_r);
DECLARE_WRITE16_MEMBER(model1_listctl_w);
diff --git a/src/mame/machine/mbc55x.cpp b/src/mame/machine/mbc55x.cpp
index dc4852e3568..fbed99ad7af 100644
--- a/src/mame/machine/mbc55x.cpp
+++ b/src/mame/machine/mbc55x.cpp
@@ -251,11 +251,11 @@ READ8_MEMBER(mbc55x_state::mbc55x_kb_usart_r)
switch (offset)
{
case 0: //logerror("%s read kb_uart\n",machine().describe_context());
- result = m_kb_uart->data_r(space,0);
+ result = m_kb_uart->data_r();
break;
case 1:
- result = m_kb_uart->status_r(space,0);
+ result = m_kb_uart->status_r();
if (m_keyboard.key_special & KEY_BIT_CTRL) // Parity error used to flag control down
result |= i8251_device::I8251_STATUS_PARITY_ERROR;
break;
@@ -270,8 +270,8 @@ WRITE8_MEMBER(mbc55x_state::mbc55x_kb_usart_w)
switch (offset)
{
- case 0 : m_kb_uart->data_w(space, 0, data); break;
- case 1 : m_kb_uart->control_w(space, 0, data); break;
+ case 0 : m_kb_uart->data_w(data); break;
+ case 1 : m_kb_uart->control_w(data); break;
}
}
diff --git a/src/mame/machine/model1.cpp b/src/mame/machine/model1.cpp
index c02b21d71ca..75eadf9a4d1 100644
--- a/src/mame/machine/model1.cpp
+++ b/src/mame/machine/model1.cpp
@@ -1723,7 +1723,7 @@ void model1_state::copro_hle_swa()
}
}
-MACHINE_START_MEMBER(model1_state,model1)
+void model1_state::machine_start()
{
m_digits.resolve();
m_copro_ram_data = std::make_unique<u32[]>(0x8000);
diff --git a/src/mame/machine/pk8020.cpp b/src/mame/machine/pk8020.cpp
index 74f6852501f..700a95a4eb9 100644
--- a/src/mame/machine/pk8020.cpp
+++ b/src/mame/machine/pk8020.cpp
@@ -151,17 +151,9 @@ READ8_MEMBER(pk8020_state::devices_r)
{
case 0x00: return m_pit8253->read(space, offset & 3);
case 0x08: return m_ppi8255_3->read(space,offset & 3);
- case 0x10: switch(offset & 1) {
- case 0 : return m_rs232->data_r(space,0);
- case 1 : return m_rs232->status_r(space,0);
- }
- break;
+ case 0x10: return m_rs232->read(offset & 1);
case 0x18: return m_wd1793->read(offset & 0x03);
- case 0x20: switch(offset & 1) {
- case 0 : return m_lan->data_r(space,0);
- case 1 : return m_lan->status_r(space,0);
- }
- break;
+ case 0x20: return m_lan->read(offset & 1);
case 0x28: return m_pic8259->read(space, offset & 1);
case 0x30: return m_ppi8255_2->read(space,offset & 3);
case 0x38: return m_ppi8255_1->read(space,offset & 3);
@@ -175,19 +167,11 @@ WRITE8_MEMBER(pk8020_state::devices_w)
{
case 0x00: m_pit8253->write(space, offset & 3, data); break;
case 0x08: m_ppi8255_3->write(space,offset & 3,data); break;
- case 0x10: switch(offset & 1) {
- case 0 : m_rs232->data_w(space,0,data); break;
- case 1 : m_rs232->control_w(space,0,data); break;
- }
- break;
+ case 0x10: m_rs232->write(offset & 1, data); break;
case 0x18:
m_wd1793->write(offset & 0x03, data);
break;
- case 0x20: switch(offset & 1) {
- case 0 : m_lan->data_w(space,0,data); break;
- case 1 : m_lan->control_w(space,0,data); break;
- }
- break;
+ case 0x20: m_lan->write(offset & 1, data);
case 0x28: m_pic8259->write(space, offset & 1,data);break;
case 0x30: m_ppi8255_2->write(space,offset & 3,data); break;
case 0x38: m_ppi8255_1->write(space,offset & 3,data); break;
diff --git a/src/mame/machine/pmd85.cpp b/src/mame/machine/pmd85.cpp
index ca16cd117fa..1e446c06c3b 100644
--- a/src/mame/machine/pmd85.cpp
+++ b/src/mame/machine/pmd85.cpp
@@ -498,12 +498,7 @@ READ8_MEMBER(pmd85_state::pmd85_io_r)
switch (offset & 0x70)
{
case 0x10: /* 8251 (casette recorder, V24) */
- switch (offset & 0x01)
- {
- case 0x00: return m_uart->data_r(space, offset & 0x01);
- case 0x01: return m_uart->status_r(space, offset & 0x01);
- }
- break;
+ return m_uart->read(offset & 0x01);
case 0x40: /* 8255 (GPIO/0, GPIO/1) */
return m_ppi8255_1->read(space, offset & 0x03);
case 0x50: /* 8253 */
@@ -573,11 +568,7 @@ WRITE8_MEMBER(pmd85_state::pmd85_io_w)
switch (offset & 0x70)
{
case 0x10: /* 8251 (casette recorder, V24) */
- switch (offset & 0x01)
- {
- case 0x00: m_uart->data_w(space, offset & 0x01, data); break;
- case 0x01: m_uart->control_w(space, offset & 0x01, data); break;
- }
+ m_uart->write(offset & 0x01, data);
break;
case 0x40: /* 8255 (GPIO/0, GPIO/0) */
m_ppi8255_1->write(space, offset & 0x03, data);
diff --git a/src/mame/video/model1.cpp b/src/mame/video/model1.cpp
index 2426dcbd3ae..9cf4db2c057 100644
--- a/src/mame/video/model1.cpp
+++ b/src/mame/video/model1.cpp
@@ -1562,7 +1562,7 @@ void model1_state::tgp_scan()
m_render_done = 0;
}
-VIDEO_START_MEMBER(model1_state, model1)
+void model1_state::video_start()
{
m_view = std::make_unique<model1_state::view_t>();