From 97f0c6ba0ac0f4d93e4d956facc206308e8254e1 Mon Sep 17 00:00:00 2001 From: cam900 Date: Sun, 7 Apr 2019 12:40:06 +0900 Subject: [PATCH] z80pio.cpp : Simplify handlers, Reduce duplicates --- src/devices/bus/cpc/cpc_pds.cpp | 4 ++-- src/devices/bus/msx_cart/bm_012.cpp | 12 ++++++------ src/devices/cpu/z80/tmpz84c015.h | 8 ++++---- src/devices/machine/z80pio.cpp | 8 ++++---- src/devices/machine/z80pio.h | 12 ++++-------- src/mame/drivers/bbcbc.cpp | 8 ++++---- src/mame/drivers/fidel_vsc.cpp | 4 ++-- src/mame/drivers/onyx.cpp | 4 ++-- src/mame/drivers/pasopia7.cpp | 4 ++-- src/mame/drivers/proconn.cpp | 20 ++++++++++---------- src/mame/drivers/rc702.cpp | 2 +- src/mame/drivers/tiki100.cpp | 4 ++-- src/mame/drivers/trs80m2.cpp | 4 ++-- 13 files changed, 45 insertions(+), 49 deletions(-) diff --git a/src/devices/bus/cpc/cpc_pds.cpp b/src/devices/bus/cpc/cpc_pds.cpp index 841a7a1677b..0509ab866dc 100644 --- a/src/devices/bus/cpc/cpc_pds.cpp +++ b/src/devices/bus/cpc/cpc_pds.cpp @@ -61,10 +61,10 @@ void cpc_pds_device::device_reset() READ8_MEMBER(cpc_pds_device::pio_r) { - return m_pio->read(space,offset); + return m_pio->read(offset); } WRITE8_MEMBER(cpc_pds_device::pio_w) { - m_pio->write(space,offset,data); + m_pio->write(offset,data); } diff --git a/src/devices/bus/msx_cart/bm_012.cpp b/src/devices/bus/msx_cart/bm_012.cpp index f38215ac6cc..158de522e4d 100644 --- a/src/devices/bus/msx_cart/bm_012.cpp +++ b/src/devices/bus/msx_cart/bm_012.cpp @@ -52,10 +52,10 @@ void msx_cart_bm_012_device::device_add_mconfig(machine_config &config) TMPZ84C015(config, m_tmpz84c015af, XTAL(12'000'000)/2); /* 6 MHz */ m_tmpz84c015af->set_addrmap(AS_PROGRAM, &msx_cart_bm_012_device::bm_012_memory_map); // PIO callbacks - m_tmpz84c015af->in_pa_callback().set("bm012_pio", FUNC(z80pio_device::pa_r)); - m_tmpz84c015af->out_pa_callback().set("bm012_pio", FUNC(z80pio_device::pa_w)); - m_tmpz84c015af->in_pb_callback().set("bm012_pio", FUNC(z80pio_device::pb_r)); - m_tmpz84c015af->out_pb_callback().set("bm012_pio", FUNC(z80pio_device::pb_w)); + m_tmpz84c015af->in_pa_callback().set("bm012_pio", FUNC(z80pio_device::port_a_read)); + m_tmpz84c015af->out_pa_callback().set("bm012_pio", FUNC(z80pio_device::port_a_write)); + m_tmpz84c015af->in_pb_callback().set("bm012_pio", FUNC(z80pio_device::port_b_read)); + m_tmpz84c015af->out_pb_callback().set("bm012_pio", FUNC(z80pio_device::port_b_write)); m_tmpz84c015af->out_brdy_callback().set("bm012_pio", FUNC(z80pio_device::strobe_b)); // SIO callbacks m_tmpz84c015af->out_txda_callback().set("mdout", FUNC(midi_port_device::write_txd)); @@ -94,8 +94,8 @@ const tiny_rom_entry *msx_cart_bm_012_device::device_rom_region() const void msx_cart_bm_012_device::device_start() { // Install IO read/write handlers - io_space().install_write_handler(0x70, 0x73, write8_delegate(FUNC(z80pio_device::write_alt), m_bm012_pio.target())); - io_space().install_read_handler(0x70, 0x73, read8_delegate(FUNC(z80pio_device::read_alt), m_bm012_pio.target())); + io_space().install_write_handler(0x70, 0x73, write8sm_delegate(FUNC(z80pio_device::write_alt), m_bm012_pio.target())); + io_space().install_read_handler(0x70, 0x73, read8sm_delegate(FUNC(z80pio_device::read_alt), m_bm012_pio.target())); } diff --git a/src/devices/cpu/z80/tmpz84c015.h b/src/devices/cpu/z80/tmpz84c015.h index 3089284d66f..100a2743a71 100644 --- a/src/devices/cpu/z80/tmpz84c015.h +++ b/src/devices/cpu/z80/tmpz84c015.h @@ -87,10 +87,10 @@ public: DECLARE_WRITE_LINE_MEMBER( strobe_a ) { m_pio->strobe_a(state); } DECLARE_WRITE_LINE_MEMBER( strobe_b ) { m_pio->strobe_b(state); } - DECLARE_WRITE8_MEMBER( pa_w ) { m_pio->pa_w(space, offset, data, mem_mask); } - DECLARE_READ8_MEMBER( pa_r ) { return m_pio->pa_r(space, offset, mem_mask); } - DECLARE_WRITE8_MEMBER( pb_w ) { m_pio->pb_w(space, offset, data, mem_mask); } - DECLARE_READ8_MEMBER( pb_r ) { return m_pio->pb_r(space, offset, mem_mask); } + DECLARE_WRITE8_MEMBER( pa_w ) { m_pio->port_a_write(data); } + DECLARE_READ8_MEMBER( pa_r ) { return m_pio->port_a_read(); } + DECLARE_WRITE8_MEMBER( pb_w ) { m_pio->port_b_write(data); } + DECLARE_READ8_MEMBER( pb_r ) { return m_pio->port_b_read(); } DECLARE_WRITE_LINE_MEMBER( pa0_w ) { m_pio->pa0_w(state); } DECLARE_WRITE_LINE_MEMBER( pa1_w ) { m_pio->pa1_w(state); } DECLARE_WRITE_LINE_MEMBER( pa2_w ) { m_pio->pa2_w(state); } diff --git a/src/devices/machine/z80pio.cpp b/src/devices/machine/z80pio.cpp index b4a3ce133ce..d269891e333 100644 --- a/src/devices/machine/z80pio.cpp +++ b/src/devices/machine/z80pio.cpp @@ -186,7 +186,7 @@ void z80pio_device::z80daisy_irq_reti() // read - register read //------------------------------------------------- -READ8_MEMBER( z80pio_device::read ) +u8 z80pio_device::read(offs_t offset) { int index = BIT(offset, 0); return BIT(offset, 1) ? control_read() : data_read(index); @@ -196,7 +196,7 @@ READ8_MEMBER( z80pio_device::read ) // write - register write //------------------------------------------------- -WRITE8_MEMBER( z80pio_device::write ) +void z80pio_device::write(offs_t offset, u8 data) { int index = BIT(offset, 0); BIT(offset, 1) ? control_write(index, data) : data_write(index, data); @@ -206,7 +206,7 @@ WRITE8_MEMBER( z80pio_device::write ) // read_alt - register read //------------------------------------------------- -READ8_MEMBER( z80pio_device::read_alt ) +u8 z80pio_device::read_alt(offs_t offset) { int index = BIT(offset, 1); return BIT(offset, 0) ? control_read() : data_read(index); @@ -216,7 +216,7 @@ READ8_MEMBER( z80pio_device::read_alt ) // write_alt - register write //------------------------------------------------- -WRITE8_MEMBER( z80pio_device::write_alt ) +void z80pio_device::write_alt(offs_t offset, u8 data) { int index = BIT(offset, 1); BIT(offset, 0) ? control_write(index, data) : data_write(index, data); diff --git a/src/devices/machine/z80pio.h b/src/devices/machine/z80pio.h index f5314351a09..a448fd9d502 100644 --- a/src/devices/machine/z80pio.h +++ b/src/devices/machine/z80pio.h @@ -97,10 +97,6 @@ public: uint8_t port_b_read() { return port_read(PORT_B); } void port_a_write(uint8_t data) { port_write(PORT_A, data); } void port_b_write(uint8_t data) { port_write(PORT_B, data); } - DECLARE_WRITE8_MEMBER( pa_w ) { port_a_write(data); } - DECLARE_READ8_MEMBER( pa_r ) { return port_a_read(); } - DECLARE_WRITE8_MEMBER( pb_w ) { port_b_write(data); } - DECLARE_READ8_MEMBER( pb_r ) { return port_b_read(); } DECLARE_WRITE_LINE_MEMBER( pa0_w ) { port_write(PORT_A, 0, state); } DECLARE_WRITE_LINE_MEMBER( pa1_w ) { port_write(PORT_A, 1, state); } DECLARE_WRITE_LINE_MEMBER( pa2_w ) { port_write(PORT_A, 2, state); } @@ -119,12 +115,12 @@ public: DECLARE_WRITE_LINE_MEMBER( pb7_w ) { port_write(PORT_B, 7, state); } // standard read/write, with C/D in bit 1, B/A in bit 0 - DECLARE_READ8_MEMBER( read ); - DECLARE_WRITE8_MEMBER( write ); + u8 read(offs_t offset); + void write(offs_t offset, u8 data); // alternate read/write, with C/D in bit 0, B/A in bit 1 - DECLARE_READ8_MEMBER( read_alt ); - DECLARE_WRITE8_MEMBER( write_alt ); + u8 read_alt(offs_t offset); + void write_alt(offs_t offset, u8 data); private: enum diff --git a/src/mame/drivers/bbcbc.cpp b/src/mame/drivers/bbcbc.cpp index dabea1029f1..2a73eddf278 100644 --- a/src/mame/drivers/bbcbc.cpp +++ b/src/mame/drivers/bbcbc.cpp @@ -76,11 +76,11 @@ void bbcbc_state::io_map(address_map &map) { map.global_mask(0xff); map(0x00, 0x7f).lrw8("z80pio_rw", - [this](address_space &space, offs_t offset, u8 mem_mask) { - return m_z80pio->read(space, offset >> 5, mem_mask); + [this](offs_t offset) { + return m_z80pio->read(offset >> 5); }, - [this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { - m_z80pio->write(space, offset >> 5, data, mem_mask); + [this](offs_t offset, u8 data) { + m_z80pio->write(offset >> 5, data); }); map(0x80, 0x81).rw("tms9129", FUNC(tms9129_device::read), FUNC(tms9129_device::write)); } diff --git a/src/mame/drivers/fidel_vsc.cpp b/src/mame/drivers/fidel_vsc.cpp index f31fbaf683a..1b8dd22dc60 100644 --- a/src/mame/drivers/fidel_vsc.cpp +++ b/src/mame/drivers/fidel_vsc.cpp @@ -299,7 +299,7 @@ READ8_MEMBER(vsc_state::main_io_trampoline_r) if (~offset & 4) data &= m_ppi8255->read(offset & 3); if (~offset & 8) - data &= m_z80pio->read(space, offset & 3); + data &= m_z80pio->read(offset & 3); return data; } @@ -309,7 +309,7 @@ WRITE8_MEMBER(vsc_state::main_io_trampoline_w) if (~offset & 4) m_ppi8255->write(offset & 3, data); if (~offset & 8) - m_z80pio->write(space, offset & 3, data); + m_z80pio->write(offset & 3, data); } void vsc_state::main_io(address_map &map) diff --git a/src/mame/drivers/onyx.cpp b/src/mame/drivers/onyx.cpp index c7b013307a6..a5860e56e1b 100644 --- a/src/mame/drivers/onyx.cpp +++ b/src/mame/drivers/onyx.cpp @@ -106,8 +106,8 @@ void onyx_state::c8002_io(address_map &map) map(0xff30, 0xff37).lrw8("ctc1_rw", [this](offs_t offset) { return m_ctc[0]->read(offset >> 1); }, [this](offs_t offset, u8 data) { m_ctc[0]->write(offset >> 1, data); }); map(0xff38, 0xff3f).lrw8("ctc2_rw", [this](offs_t offset) { return m_ctc[1]->read(offset >> 1); }, [this](offs_t offset, u8 data) { m_ctc[1]->write(offset >> 1, data); }); map(0xff40, 0xff47).lrw8("ctc3_rw", [this](offs_t offset) { return m_ctc[2]->read(offset >> 1); }, [this](offs_t offset, u8 data) { m_ctc[2]->write(offset >> 1, data); }); - map(0xff50, 0xff57).lrw8("pio1_rw", [this](address_space &space, offs_t offset, u8 mem_mask) { return m_pio[0]->read(space, offset >> 1, mem_mask); }, [this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_pio[0]->write(space, offset >> 1, data, mem_mask); }); - map(0xff58, 0xff5f).lrw8("pio2_rw", [this](address_space &space, offs_t offset, u8 mem_mask) { return m_pio[1]->read(space, offset >> 1, mem_mask); }, [this](address_space &space, offs_t offset, u8 data, u8 mem_mask) { m_pio[1]->write(space, offset >> 1, data, mem_mask); }); + map(0xff50, 0xff57).lrw8("pio1_rw", [this](offs_t offset) { return m_pio[0]->read(offset >> 1); }, [this](offs_t offset, u8 data) { m_pio[0]->write(offset >> 1, data); }); + map(0xff58, 0xff5f).lrw8("pio2_rw", [this](offs_t offset) { return m_pio[1]->read(offset >> 1); }, [this](offs_t offset, u8 data) { m_pio[1]->write(offset >> 1, data); }); map(0xffb9, 0xffb9).w(FUNC(onyx_state::z8002_m1_w)); } diff --git a/src/mame/drivers/pasopia7.cpp b/src/mame/drivers/pasopia7.cpp index 3ee610c955f..f1dc302b9fd 100644 --- a/src/mame/drivers/pasopia7.cpp +++ b/src/mame/drivers/pasopia7.cpp @@ -633,7 +633,7 @@ READ8_MEMBER( pasopia7_state::pasopia7_io_r ) return m_ctc->read(io_port & 3); else if(io_port >= 0x30 && io_port <= 0x33) - return m_pio->read(space, io_port & 3); + return m_pio->read(io_port & 3); // else if(io_port == 0x3a) { SN1 } // else if(io_port == 0x3b) { SN2 } // else if(io_port == 0x3c) { bankswitch } @@ -684,7 +684,7 @@ WRITE8_MEMBER( pasopia7_state::pasopia7_io_w ) m_ctc->write(io_port & 3, data); else if(io_port >= 0x30 && io_port <= 0x33) - m_pio->write(space, io_port & 3, data); + m_pio->write(io_port & 3, data); else if(io_port == 0x3a) m_sn1->write(data); diff --git a/src/mame/drivers/proconn.cpp b/src/mame/drivers/proconn.cpp index 45f469e39b6..48146697b7a 100644 --- a/src/mame/drivers/proconn.cpp +++ b/src/mame/drivers/proconn.cpp @@ -65,21 +65,21 @@ private: template DECLARE_WRITE8_MEMBER( sio_w ) { m_z80sio->cd_ba_w(N, data); } - template DECLARE_WRITE8_MEMBER( pio1_w ) { m_z80pio[0]->write(space, N, data); } - template DECLARE_WRITE8_MEMBER( pio2_w ) { m_z80pio[1]->write(space, N, data); } - template DECLARE_WRITE8_MEMBER( pio3_w ) { m_z80pio[2]->write(space, N, data); } - template DECLARE_WRITE8_MEMBER( pio4_w ) { m_z80pio[3]->write(space, N, data); } - template DECLARE_WRITE8_MEMBER( pio5_w ) { m_z80pio[4]->write(space, N, data); } + template DECLARE_WRITE8_MEMBER( pio1_w ) { m_z80pio[0]->write(N, data); } + template DECLARE_WRITE8_MEMBER( pio2_w ) { m_z80pio[1]->write(N, data); } + template DECLARE_WRITE8_MEMBER( pio3_w ) { m_z80pio[2]->write(N, data); } + template DECLARE_WRITE8_MEMBER( pio4_w ) { m_z80pio[3]->write(N, data); } + template DECLARE_WRITE8_MEMBER( pio5_w ) { m_z80pio[4]->write(N, data); } template DECLARE_READ8_MEMBER( ctc_r ) { return m_z80ctc->read(N); } template DECLARE_READ8_MEMBER( sio_r ) { return m_z80sio->cd_ba_r(N); } - template DECLARE_READ8_MEMBER( pio1_r ) { return m_z80pio[0]->read(space, N); } - template DECLARE_READ8_MEMBER( pio2_r ) { return m_z80pio[1]->read(space, N); } - template DECLARE_READ8_MEMBER( pio3_r ) { return m_z80pio[2]->read(space, N); } - template DECLARE_READ8_MEMBER( pio4_r ) { return m_z80pio[3]->read(space, N); } - template DECLARE_READ8_MEMBER( pio5_r ) { return m_z80pio[4]->read(space, N); } + template DECLARE_READ8_MEMBER( pio1_r ) { return m_z80pio[0]->read(N); } + template DECLARE_READ8_MEMBER( pio2_r ) { return m_z80pio[1]->read(N); } + template DECLARE_READ8_MEMBER( pio3_r ) { return m_z80pio[2]->read(N); } + template DECLARE_READ8_MEMBER( pio4_r ) { return m_z80pio[3]->read(N); } + template DECLARE_READ8_MEMBER( pio5_r ) { return m_z80pio[4]->read(N); } /* PIO 1 */ diff --git a/src/mame/drivers/rc702.cpp b/src/mame/drivers/rc702.cpp index 65ae7b0dc50..65f9ea41210 100644 --- a/src/mame/drivers/rc702.cpp +++ b/src/mame/drivers/rc702.cpp @@ -321,7 +321,7 @@ static const z80_daisy_config daisy_chain_intf[] = void rc702_state::kbd_put(u8 data) { - m_pio->pa_w(machine().dummy_space(), 0, data); + m_pio->port_a_write(data); m_pio->strobe_a(0); m_pio->strobe_a(1); } diff --git a/src/mame/drivers/tiki100.cpp b/src/mame/drivers/tiki100.cpp index 11e533f549d..6cbe8d5df2e 100644 --- a/src/mame/drivers/tiki100.cpp +++ b/src/mame/drivers/tiki100.cpp @@ -102,7 +102,7 @@ READ8_MEMBER( tiki100_state::iorq_r ) break; case 0x02: // PARS - data = m_pio->read(space, offset & 0x03); + data = m_pio->read(offset & 0x03); break; case 0x04: // FLOP @@ -141,7 +141,7 @@ WRITE8_MEMBER( tiki100_state::iorq_w ) break; case 0x02: // PARS - m_pio->write(space, offset & 0x03, data); + m_pio->write(offset & 0x03, data); break; case 0x03: // VIPB diff --git a/src/mame/drivers/trs80m2.cpp b/src/mame/drivers/trs80m2.cpp index ba499eb57e5..21766eb54ae 100644 --- a/src/mame/drivers/trs80m2.cpp +++ b/src/mame/drivers/trs80m2.cpp @@ -735,7 +735,7 @@ void trs80m2_state::trs80m2(machine_config &config) // devices FD1791(config, m_fdc, 8_MHz_XTAL / 4); - m_fdc->intrq_wr_callback().set(m_pio, FUNC(z80pio_device::pa_w)); + m_fdc->intrq_wr_callback().set(m_pio, FUNC(z80pio_device::port_a_write)); m_fdc->drq_wr_callback().set(m_dmac, FUNC(z80dma_device::rdy_w)); FLOPPY_CONNECTOR(config, FD1791_TAG":0", trs80m2_floppies, "8dsdd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, FD1791_TAG":1", trs80m2_floppies, nullptr, floppy_image_device::default_floppy_formats); @@ -827,7 +827,7 @@ void trs80m16_state::trs80m16(machine_config &config) // devices FD1791(config, m_fdc, 8_MHz_XTAL / 4); - m_fdc->intrq_wr_callback().set(m_pio, FUNC(z80pio_device::pa_w)); + m_fdc->intrq_wr_callback().set(m_pio, FUNC(z80pio_device::port_a_write)); m_fdc->drq_wr_callback().set(m_dmac, FUNC(z80dma_device::rdy_w)); FLOPPY_CONNECTOR(config, FD1791_TAG":0", trs80m2_floppies, "8dsdd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, FD1791_TAG":1", trs80m2_floppies, nullptr, floppy_image_device::default_floppy_formats);