diff options
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 |
commit | e15011b974e3ddb4704beb32a6a6a33d284cac3a (patch) | |
tree | 2a84c6683806cb29bb6e149e8d2a0602c6fe5d58 | |
parent | 383c4c530c152ed2d797b233e92b6a9be1ab20f2 (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)
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>(); |