From f3c69775c9327e16f84d40d59aa72379be7ee55c Mon Sep 17 00:00:00 2001 From: AJR Date: Sun, 31 May 2020 17:07:44 -0400 Subject: bus/isa: Simplify signatures of most handlers (nw) sb16_lle: Add device map for host I/O (nw) --- src/devices/bus/isa/3c503.cpp | 12 ++-- src/devices/bus/isa/3c503.h | 8 +-- src/devices/bus/isa/adlib.cpp | 6 +- src/devices/bus/isa/adlib.h | 4 +- src/devices/bus/isa/aga.cpp | 36 ++++++------ src/devices/bus/isa/aga.h | 20 +++---- src/devices/bus/isa/aha1542c.cpp | 8 +-- src/devices/bus/isa/aha1542c.h | 4 +- src/devices/bus/isa/bblue2.cpp | 8 +-- src/devices/bus/isa/bblue2.h | 8 +-- src/devices/bus/isa/chessmdr.cpp | 6 +- src/devices/bus/isa/chessmdr.h | 4 +- src/devices/bus/isa/chessmsr.cpp | 8 +-- src/devices/bus/isa/chessmsr.h | 4 +- src/devices/bus/isa/dectalk.cpp | 16 ++--- src/devices/bus/isa/dectalk.h | 8 +-- src/devices/bus/isa/ega.cpp | 42 +++++++------- src/devices/bus/isa/ega.h | 20 +++---- src/devices/bus/isa/eis_hgb107x.cpp | 15 ++--- src/devices/bus/isa/eis_hgb107x.h | 8 +-- src/devices/bus/isa/eis_sad8852.cpp | 8 +-- src/devices/bus/isa/eis_sad8852.h | 4 +- src/devices/bus/isa/eis_twib.cpp | 8 +-- src/devices/bus/isa/eis_twib.h | 4 +- src/devices/bus/isa/finalchs.cpp | 6 +- src/devices/bus/isa/finalchs.h | 4 +- src/devices/bus/isa/gblaster.cpp | 16 ++--- src/devices/bus/isa/gblaster.h | 10 ++-- src/devices/bus/isa/gus.cpp | 107 +++++++++++++++++----------------- src/devices/bus/isa/gus.h | 50 ++++++++-------- src/devices/bus/isa/hdc.cpp | 6 +- src/devices/bus/isa/hdc.h | 4 +- src/devices/bus/isa/ibm_mfc.cpp | 6 +- src/devices/bus/isa/ibm_mfc.h | 4 +- src/devices/bus/isa/ide.cpp | 4 +- src/devices/bus/isa/ide.h | 4 +- src/devices/bus/isa/isa.cpp | 51 ++++++++++++---- src/devices/bus/isa/isa.h | 25 ++++---- src/devices/bus/isa/mc1502_fdc.cpp | 10 ++-- src/devices/bus/isa/mc1502_fdc.h | 6 +- src/devices/bus/isa/mcd.cpp | 32 ++++++---- src/devices/bus/isa/mcd.h | 8 +-- src/devices/bus/isa/mda.cpp | 36 ++++++------ src/devices/bus/isa/mda.h | 18 +++--- src/devices/bus/isa/myb3k_com.cpp | 8 +-- src/devices/bus/isa/myb3k_com.h | 4 +- src/devices/bus/isa/myb3k_fdc.cpp | 16 ++--- src/devices/bus/isa/myb3k_fdc.h | 12 ++-- src/devices/bus/isa/ne1000.cpp | 6 +- src/devices/bus/isa/ne1000.h | 4 +- src/devices/bus/isa/num9rev.cpp | 36 ++++++------ src/devices/bus/isa/num9rev.h | 24 ++++---- src/devices/bus/isa/omti8621.cpp | 18 +++--- src/devices/bus/isa/omti8621.h | 8 +-- src/devices/bus/isa/p1_fdc.cpp | 6 +- src/devices/bus/isa/p1_fdc.h | 4 +- src/devices/bus/isa/p1_hdc.cpp | 6 +- src/devices/bus/isa/p1_hdc.h | 4 +- src/devices/bus/isa/p1_sound.cpp | 32 +++++----- src/devices/bus/isa/p1_sound.h | 18 +++--- src/devices/bus/isa/pc1640_iga.cpp | 6 +- src/devices/bus/isa/pds.cpp | 6 +- src/devices/bus/isa/pds.h | 4 +- src/devices/bus/isa/pgc.cpp | 33 ++++++----- src/devices/bus/isa/pgc.h | 14 ++--- src/devices/bus/isa/sb16.cpp | 113 ++++++++++++++++++------------------ src/devices/bus/isa/sb16.h | 73 ++++++++++++----------- src/devices/bus/isa/sblaster.cpp | 62 ++++++++++---------- src/devices/bus/isa/sblaster.h | 34 +++++------ src/devices/bus/isa/sc499.cpp | 6 +- src/devices/bus/isa/sc499.h | 4 +- src/devices/bus/isa/side116.cpp | 6 +- src/devices/bus/isa/side116.h | 4 +- src/devices/bus/isa/stereo_fx.cpp | 46 ++++++++------- src/devices/bus/isa/stereo_fx.h | 26 ++++----- src/devices/bus/isa/xtide.cpp | 6 +- src/devices/bus/isa/xtide.h | 4 +- src/mame/drivers/apollo.cpp | 8 +-- src/mame/drivers/indiana.cpp | 11 ++-- 79 files changed, 700 insertions(+), 648 deletions(-) diff --git a/src/devices/bus/isa/3c503.cpp b/src/devices/bus/isa/3c503.cpp index bb906605de7..71e783c5830 100644 --- a/src/devices/bus/isa/3c503.cpp +++ b/src/devices/bus/isa/3c503.cpp @@ -32,8 +32,8 @@ void el2_3c503_device::device_start() { memset(m_rom, 0, 8*1024); // empty m_dp8390->set_mac(mac); set_isa_device(); - m_isa->install_device(0x0300, 0x030f, read8_delegate(*this, FUNC(el2_3c503_device::el2_3c503_loport_r)), write8_delegate(*this, FUNC(el2_3c503_device::el2_3c503_loport_w))); - m_isa->install_device(0x0700, 0x070f, read8_delegate(*this, FUNC(el2_3c503_device::el2_3c503_hiport_r)), write8_delegate(*this, FUNC(el2_3c503_device::el2_3c503_hiport_w))); + m_isa->install_device(0x0300, 0x030f, read8sm_delegate(*this, FUNC(el2_3c503_device::el2_3c503_loport_r)), write8sm_delegate(*this, FUNC(el2_3c503_device::el2_3c503_loport_w))); + m_isa->install_device(0x0700, 0x070f, read8sm_delegate(*this, FUNC(el2_3c503_device::el2_3c503_hiport_r)), write8sm_delegate(*this, FUNC(el2_3c503_device::el2_3c503_hiport_w))); // TODO: This is wrong, fix if anything actually uses it // DMA can change in runtime @@ -107,7 +107,7 @@ void el2_3c503_device::dack_w(int line, uint8_t data) { el2_3c503_mem_write(m_regs.da++, data); } -READ8_MEMBER(el2_3c503_device::el2_3c503_loport_r) { +uint8_t el2_3c503_device::el2_3c503_loport_r(offs_t offset) { switch((m_regs.ctrl >> 2) & 3) { case 0: m_dp8390->dp8390_cs(CLEAR_LINE); @@ -122,7 +122,7 @@ READ8_MEMBER(el2_3c503_device::el2_3c503_loport_r) { return 0; } -WRITE8_MEMBER(el2_3c503_device::el2_3c503_loport_w) { +void el2_3c503_device::el2_3c503_loport_w(offs_t offset, uint8_t data) { switch((m_regs.ctrl >> 2) & 3) { case 0: m_dp8390->dp8390_cs(CLEAR_LINE); @@ -137,7 +137,7 @@ WRITE8_MEMBER(el2_3c503_device::el2_3c503_loport_w) { } } -READ8_MEMBER(el2_3c503_device::el2_3c503_hiport_r) { +uint8_t el2_3c503_device::el2_3c503_hiport_r(offs_t offset) { switch(offset) { case 0: return m_regs.pstr; @@ -177,7 +177,7 @@ READ8_MEMBER(el2_3c503_device::el2_3c503_hiport_r) { return 0; } -WRITE8_MEMBER(el2_3c503_device::el2_3c503_hiport_w) { +void el2_3c503_device::el2_3c503_hiport_w(offs_t offset, uint8_t data) { switch(offset) { case 0: m_regs.pstr = data; // pstr and pspr are supposed to be set same as 8390 pstart and pstop diff --git a/src/devices/bus/isa/3c503.h b/src/devices/bus/isa/3c503.h index 0b0cfc69530..f9597f00137 100644 --- a/src/devices/bus/isa/3c503.h +++ b/src/devices/bus/isa/3c503.h @@ -15,10 +15,10 @@ class el2_3c503_device : public device_t, public device_isa8_card_interface public: el2_3c503_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8_MEMBER(el2_3c503_loport_r); - DECLARE_WRITE8_MEMBER(el2_3c503_loport_w); - DECLARE_READ8_MEMBER(el2_3c503_hiport_r); - DECLARE_WRITE8_MEMBER(el2_3c503_hiport_w); + uint8_t el2_3c503_loport_r(offs_t offset); + void el2_3c503_loport_w(offs_t offset, uint8_t data); + uint8_t el2_3c503_hiport_r(offs_t offset); + void el2_3c503_hiport_w(offs_t offset, uint8_t data); void eop_w(int state) override; uint8_t dack_r(int line) override; void dack_w(int line, uint8_t data) override; diff --git a/src/devices/bus/isa/adlib.cpp b/src/devices/bus/isa/adlib.cpp index 192f6091ad5..0fbd0f6ef81 100644 --- a/src/devices/bus/isa/adlib.cpp +++ b/src/devices/bus/isa/adlib.cpp @@ -15,7 +15,7 @@ #define ym3812_StdClock 3579545 -READ8_MEMBER( isa8_adlib_device::ym3812_16_r ) +uint8_t isa8_adlib_device::ym3812_16_r(offs_t offset) { uint8_t retVal = 0xff; switch(offset) @@ -25,7 +25,7 @@ READ8_MEMBER( isa8_adlib_device::ym3812_16_r ) return retVal; } -WRITE8_MEMBER( isa8_adlib_device::ym3812_16_w ) +void isa8_adlib_device::ym3812_16_w(offs_t offset, uint8_t data) { switch(offset) { @@ -72,7 +72,7 @@ isa8_adlib_device::isa8_adlib_device(const machine_config &mconfig, const char * void isa8_adlib_device::device_start() { set_isa_device(); - m_isa->install_device(0x0388, 0x0389, read8_delegate(*this, FUNC(isa8_adlib_device::ym3812_16_r)), write8_delegate(*this, FUNC(isa8_adlib_device::ym3812_16_w))); + m_isa->install_device(0x0388, 0x0389, read8sm_delegate(*this, FUNC(isa8_adlib_device::ym3812_16_r)), write8sm_delegate(*this, FUNC(isa8_adlib_device::ym3812_16_w))); } //------------------------------------------------- diff --git a/src/devices/bus/isa/adlib.h b/src/devices/bus/isa/adlib.h index 590ea4f675e..1e99a6120f4 100644 --- a/src/devices/bus/isa/adlib.h +++ b/src/devices/bus/isa/adlib.h @@ -22,8 +22,8 @@ public: // construction/destruction isa8_adlib_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8_MEMBER(ym3812_16_r); - DECLARE_WRITE8_MEMBER(ym3812_16_w); + uint8_t ym3812_16_r(offs_t offset); + void ym3812_16_w(offs_t offset, uint8_t data); protected: // device-level overrides diff --git a/src/devices/bus/isa/aga.cpp b/src/devices/bus/isa/aga.cpp index 78e87d54213..244fbc0bb66 100644 --- a/src/devices/bus/isa/aga.cpp +++ b/src/devices/bus/isa/aga.cpp @@ -103,9 +103,9 @@ void isa8_aga_device::device_start() m_videoram = std::make_unique(0x10000); set_isa_device(); - m_isa->install_memory(0xb0000, 0xbffff, read8_delegate(*this, FUNC(isa8_aga_device::pc_aga_videoram_r)), write8_delegate(*this, FUNC(isa8_aga_device::pc_aga_videoram_w))); - m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_aga_device::pc_aga_mda_r)), write8_delegate(*this, FUNC(isa8_aga_device::pc_aga_mda_w))); - m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_aga_device::pc_aga_cga_r)), write8_delegate(*this, FUNC(isa8_aga_device::pc_aga_cga_w))); + m_isa->install_memory(0xb0000, 0xbffff, read8sm_delegate(*this, FUNC(isa8_aga_device::pc_aga_videoram_r)), write8sm_delegate(*this, FUNC(isa8_aga_device::pc_aga_videoram_w))); + m_isa->install_device(0x3b0, 0x3bf, read8sm_delegate(*this, FUNC(isa8_aga_device::pc_aga_mda_r)), write8sm_delegate(*this, FUNC(isa8_aga_device::pc_aga_mda_w))); + m_isa->install_device(0x3d0, 0x3df, read8sm_delegate(*this, FUNC(isa8_aga_device::pc_aga_cga_r)), write8sm_delegate(*this, FUNC(isa8_aga_device::pc_aga_cga_w))); /* Initialise the cga palette */ @@ -181,9 +181,9 @@ void isa8_aga_pc200_device::device_start() m_videoram = std::make_unique(0x10000); set_isa_device(); - m_isa->install_memory(0xb0000, 0xbffff, read8_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_videoram_r)), write8_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_videoram_w))); - m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_aga_pc200_device::pc_aga_mda_r)), write8_delegate(*this, FUNC(isa8_aga_pc200_device::pc_aga_mda_w))); - m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_cga_r)), write8_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_cga_w))); + m_isa->install_memory(0xb0000, 0xbffff, read8sm_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_videoram_r)), write8sm_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_videoram_w))); + m_isa->install_device(0x3b0, 0x3bf, read8sm_delegate(*this, FUNC(isa8_aga_pc200_device::pc_aga_mda_r)), write8sm_delegate(*this, FUNC(isa8_aga_pc200_device::pc_aga_mda_w))); + m_isa->install_device(0x3d0, 0x3df, read8sm_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_cga_r)), write8sm_delegate(*this, FUNC(isa8_aga_pc200_device::pc200_cga_w))); /* Initialise the cga palette */ @@ -645,7 +645,7 @@ MC6845_UPDATE_ROW( isa8_aga_device::cga_gfx_1bpp_update_row ) * *************************************/ -READ8_MEMBER( isa8_aga_device::pc_aga_mda_r ) +uint8_t isa8_aga_device::pc_aga_mda_r(offs_t offset) { uint8_t data = 0xff; @@ -666,7 +666,7 @@ READ8_MEMBER( isa8_aga_device::pc_aga_mda_r ) return data; } -WRITE8_MEMBER( isa8_aga_device::pc_aga_mda_w ) +void isa8_aga_device::pc_aga_mda_w(offs_t offset, uint8_t data) { if (m_mode == AGA_MONO) { switch (offset) { @@ -694,7 +694,7 @@ WRITE8_MEMBER( isa8_aga_device::pc_aga_mda_w ) } } -READ8_MEMBER( isa8_aga_device::pc_aga_cga_r ) +uint8_t isa8_aga_device::pc_aga_cga_r(offs_t offset) { uint8_t data = 0xff; @@ -739,7 +739,7 @@ void isa8_aga_device::set_palette_luts() } -WRITE8_MEMBER( isa8_aga_device::pc_aga_cga_w ) +void isa8_aga_device::pc_aga_cga_w(offs_t offset, uint8_t data) { if (m_mode == AGA_COLOR) { switch (offset) { @@ -826,7 +826,7 @@ void isa8_aga_device::pc_aga_set_mode(mode_t mode) } -WRITE8_MEMBER( isa8_aga_device::pc_aga_videoram_w ) +void isa8_aga_device::pc_aga_videoram_w(offs_t offset, uint8_t data) { switch (m_mode) { case AGA_COLOR: @@ -841,7 +841,7 @@ WRITE8_MEMBER( isa8_aga_device::pc_aga_videoram_w ) } } -READ8_MEMBER( isa8_aga_device::pc_aga_videoram_r ) +uint8_t isa8_aga_device::pc_aga_videoram_r(offs_t offset) { switch (m_mode) { case AGA_COLOR: @@ -856,7 +856,7 @@ READ8_MEMBER( isa8_aga_device::pc_aga_videoram_r ) return 0; } -READ8_MEMBER( isa8_aga_pc200_device::pc200_videoram_r ) +uint8_t isa8_aga_pc200_device::pc200_videoram_r(offs_t offset) { switch (m_mode) { @@ -869,7 +869,7 @@ READ8_MEMBER( isa8_aga_pc200_device::pc200_videoram_r ) } } -WRITE8_MEMBER( isa8_aga_pc200_device::pc200_videoram_w ) +void isa8_aga_pc200_device::pc200_videoram_w(offs_t offset, uint8_t data) { switch (m_mode) { default: @@ -884,9 +884,9 @@ WRITE8_MEMBER( isa8_aga_pc200_device::pc200_videoram_w ) // in reality it is of course only 1 graphics adapter, // but now cga and mda are splitted in mess -WRITE8_MEMBER( isa8_aga_pc200_device::pc200_cga_w ) +void isa8_aga_pc200_device::pc200_cga_w(offs_t offset, uint8_t data) { - pc_aga_cga_w(space, offset,data,mem_mask); + pc_aga_cga_w(offset,data); switch (offset) { case 4: m_portd |= 0x20; @@ -921,7 +921,7 @@ WRITE8_MEMBER( isa8_aga_pc200_device::pc200_cga_w ) } } -READ8_MEMBER( isa8_aga_pc200_device::pc200_cga_r ) +uint8_t isa8_aga_pc200_device::pc200_cga_r(offs_t offset) { uint8_t result; @@ -943,7 +943,7 @@ READ8_MEMBER( isa8_aga_pc200_device::pc200_cga_r ) break; default: - result = pc_aga_cga_r(space, offset, mem_mask); + result = pc_aga_cga_r(offset); break; } return result; diff --git a/src/devices/bus/isa/aga.h b/src/devices/bus/isa/aga.h index 2c3ad2a654a..bffe53207c0 100644 --- a/src/devices/bus/isa/aga.h +++ b/src/devices/bus/isa/aga.h @@ -41,14 +41,14 @@ public: protected: isa8_aga_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8_MEMBER( pc_aga_mda_r ); - DECLARE_WRITE8_MEMBER( pc_aga_mda_w ); - DECLARE_READ8_MEMBER( pc_aga_cga_r ); - DECLARE_WRITE8_MEMBER( pc_aga_cga_w ); + uint8_t pc_aga_mda_r(offs_t offset); + void pc_aga_mda_w(offs_t offset, uint8_t data); + uint8_t pc_aga_cga_r(offs_t offset); + void pc_aga_cga_w(offs_t offset, uint8_t data); void set_palette_luts(); void pc_aga_set_mode(mode_t mode); - DECLARE_WRITE8_MEMBER( pc_aga_videoram_w ); - DECLARE_READ8_MEMBER( pc_aga_videoram_r ); + void pc_aga_videoram_w(offs_t offset, uint8_t data); + uint8_t pc_aga_videoram_r(offs_t offset); MC6845_UPDATE_ROW( aga_update_row ); MC6845_UPDATE_ROW( mda_text_inten_update_row ); @@ -108,10 +108,10 @@ public: isa8_aga_pc200_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: - DECLARE_READ8_MEMBER( pc200_videoram_r ); - DECLARE_WRITE8_MEMBER( pc200_videoram_w ); - DECLARE_WRITE8_MEMBER( pc200_cga_w ); - DECLARE_READ8_MEMBER( pc200_cga_r ); + uint8_t pc200_videoram_r(offs_t offset); + void pc200_videoram_w(offs_t offset, uint8_t data); + void pc200_cga_w(offs_t offset, uint8_t data); + uint8_t pc200_cga_r(offs_t offset); // device-level overrides virtual const tiny_rom_entry *device_rom_region() const override; diff --git a/src/devices/bus/isa/aha1542c.cpp b/src/devices/bus/isa/aha1542c.cpp index d0bb112728c..82504c8e26e 100644 --- a/src/devices/bus/isa/aha1542c.cpp +++ b/src/devices/bus/isa/aha1542c.cpp @@ -165,13 +165,13 @@ DEFINE_DEVICE_TYPE(AHA1542CP, aha1542cp_device, "aha1542cp", "AHA-1542CP SCSI Co #define Z84C0010_TAG "z84c0010" -READ8_MEMBER( aha1542c_device::aha1542_r ) +u8 aha1542c_device::aha1542_r(offs_t offset) { logerror("%s aha1542_r(): offset=%d\n", machine().describe_context(), offset); return 0xff; } -WRITE8_MEMBER( aha1542c_device::aha1542_w ) +void aha1542c_device::aha1542_w(offs_t offset, u8 data) { logerror("%s aha1542_w(): offset=%d data=0x%02x\n", machine().describe_context(), offset, data); } @@ -378,8 +378,8 @@ void aha1542c_device::device_start() set_isa_device(); m_isa->install_rom(this, 0xdc000, 0xdffff, "aha1542", "aha1542"); m_isa->install_device(0x330, 0x333, - read8_delegate(*this, FUNC(aha1542cf_device::aha1542_r)), - write8_delegate(*this, FUNC(aha1542cf_device::aha1542_w))); + read8sm_delegate(*this, FUNC(aha1542cf_device::aha1542_r)), + write8sm_delegate(*this, FUNC(aha1542cf_device::aha1542_w))); } diff --git a/src/devices/bus/isa/aha1542c.h b/src/devices/bus/isa/aha1542c.h index 005c688c053..3a79fb3125f 100644 --- a/src/devices/bus/isa/aha1542c.h +++ b/src/devices/bus/isa/aha1542c.h @@ -33,8 +33,8 @@ public: // construction/destruction aha1542c_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); - DECLARE_READ8_MEMBER( aha1542_r ); - DECLARE_WRITE8_MEMBER( aha1542_w ); + u8 aha1542_r(offs_t offset); + void aha1542_w(offs_t offset, u8 data); protected: aha1542c_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); diff --git a/src/devices/bus/isa/bblue2.cpp b/src/devices/bus/isa/bblue2.cpp index a85bd17ab0d..ad997664cc2 100644 --- a/src/devices/bus/isa/bblue2.cpp +++ b/src/devices/bus/isa/bblue2.cpp @@ -217,23 +217,23 @@ void isa8_babyblue2_device::device_reset() // map Z80 LPT port based on jumper setting m_z80->space(AS_IO).install_readwrite_handler(z80lptloc, z80lptloc+7, read8sm_delegate(m_parallel, FUNC(pc_lpt_device::read)), write8sm_delegate(m_parallel, FUNC(pc_lpt_device::write))); - m_isa->install_device(ioloc, ioloc+1, read8_delegate(*this, FUNC(isa8_babyblue2_device::z80_control_r)), write8_delegate(*this, FUNC(isa8_babyblue2_device::z80_control_w))); + m_isa->install_device(ioloc, ioloc+1, read8sm_delegate(*this, FUNC(isa8_babyblue2_device::z80_control_r)), write8sm_delegate(*this, FUNC(isa8_babyblue2_device::z80_control_w))); m_isa->install_device(lptloc, lptloc+7, read8sm_delegate(m_parallel, FUNC(pc_lpt_device::read)), write8sm_delegate(m_parallel, FUNC(pc_lpt_device::write))); m_isa->install_device(0x3f8, 0x03ff, read8sm_delegate(m_serial1, FUNC(ins8250_device::ins8250_r)), write8sm_delegate(m_serial1, FUNC(ins8250_device::ins8250_w))); m_isa->install_device(0x2f8, 0x02ff, read8sm_delegate(m_serial2, FUNC(ins8250_device::ins8250_r)), write8sm_delegate(m_serial2, FUNC(ins8250_device::ins8250_w))); // TODO: RTC - m_isa->install_memory(ramloc, ramloc+0xffff, read8_delegate(*this, FUNC(isa8_babyblue2_device::z80_ram_r)),write8_delegate(*this, FUNC(isa8_babyblue2_device::z80_ram_w))); + m_isa->install_memory(ramloc, ramloc+0xffff, read8sm_delegate(*this, FUNC(isa8_babyblue2_device::z80_ram_r)),write8sm_delegate(*this, FUNC(isa8_babyblue2_device::z80_ram_w))); m_devices_installed = true; } } -READ8_MEMBER(isa8_babyblue2_device::z80_control_r) +uint8_t isa8_babyblue2_device::z80_control_r(offs_t offset) { logerror("Z80 control line read\b"); return 0xff; } -WRITE8_MEMBER(isa8_babyblue2_device::z80_control_w) +void isa8_babyblue2_device::z80_control_w(offs_t offset, uint8_t data) { if(offset == 0) { diff --git a/src/devices/bus/isa/bblue2.h b/src/devices/bus/isa/bblue2.h index e81f0a0c500..cdce099d883 100644 --- a/src/devices/bus/isa/bblue2.h +++ b/src/devices/bus/isa/bblue2.h @@ -25,10 +25,10 @@ public: // construction/destruction isa8_babyblue2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8_MEMBER(z80_control_r); - DECLARE_WRITE8_MEMBER(z80_control_w); - DECLARE_READ8_MEMBER(z80_ram_r) { return m_ram->read(offset); } - DECLARE_WRITE8_MEMBER(z80_ram_w) { m_ram->write(offset,data); } + uint8_t z80_control_r(offs_t offset); + void z80_control_w(offs_t offset, uint8_t data); + uint8_t z80_ram_r(offs_t offset) { return m_ram->read(offset); } + void z80_ram_w(offs_t offset, uint8_t data) { m_ram->write(offset,data); } DECLARE_WRITE_LINE_MEMBER(port1_irq) { m_isa->irq4_w(state); } DECLARE_WRITE_LINE_MEMBER(port2_irq) { m_isa->irq3_w(state); } diff --git a/src/devices/bus/isa/chessmdr.cpp b/src/devices/bus/isa/chessmdr.cpp index 6b278e79000..b1035945761 100644 --- a/src/devices/bus/isa/chessmdr.cpp +++ b/src/devices/bus/isa/chessmdr.cpp @@ -51,7 +51,7 @@ void isa8_chessmdr_device::device_reset() { // MAME doesn't allow reading ioport at device_start u16 port = ioport("DSW")->read() * 0x40 + 0x10; - m_isa->install_device(port, port+1, read8_delegate(*this, FUNC(isa8_chessmdr_device::chessmdr_r)), write8_delegate(*this, FUNC(isa8_chessmdr_device::chessmdr_w))); + m_isa->install_device(port, port+1, read8sm_delegate(*this, FUNC(isa8_chessmdr_device::chessmdr_r)), write8sm_delegate(*this, FUNC(isa8_chessmdr_device::chessmdr_w))); m_installed = true; } @@ -106,7 +106,7 @@ void isa8_chessmdr_device::device_add_mconfig(machine_config &config) I/O ******************************************************************************/ -READ8_MEMBER(isa8_chessmdr_device::chessmdr_r) +uint8_t isa8_chessmdr_device::chessmdr_r(offs_t offset) { if (offset == 1) return m_chessm->data_r() ? 0 : 0x80; @@ -114,7 +114,7 @@ READ8_MEMBER(isa8_chessmdr_device::chessmdr_r) return 0xff; } -WRITE8_MEMBER(isa8_chessmdr_device::chessmdr_w) +void isa8_chessmdr_device::chessmdr_w(offs_t offset, uint8_t data) { if (offset == 0) { diff --git a/src/devices/bus/isa/chessmdr.h b/src/devices/bus/isa/chessmdr.h index 8607dac26b0..9f5d1bf270f 100644 --- a/src/devices/bus/isa/chessmdr.h +++ b/src/devices/bus/isa/chessmdr.h @@ -36,8 +36,8 @@ private: bool m_installed; - DECLARE_READ8_MEMBER(chessmdr_r); - DECLARE_WRITE8_MEMBER(chessmdr_w); + uint8_t chessmdr_r(offs_t offset); + void chessmdr_w(offs_t offset, uint8_t data); }; diff --git a/src/devices/bus/isa/chessmsr.cpp b/src/devices/bus/isa/chessmsr.cpp index 206dd8e15e4..7b2dab6e286 100644 --- a/src/devices/bus/isa/chessmsr.cpp +++ b/src/devices/bus/isa/chessmsr.cpp @@ -64,7 +64,7 @@ void isa8_chessmsr_device::device_reset() { // MAME doesn't allow reading ioport at device_start u16 port = ioport("DSW")->read() * 0x40 + 0x10; - m_isa->install_device(port, port+1, read8_delegate(*this, FUNC(isa8_chessmsr_device::chessmsr_r)), write8_delegate(*this, FUNC(isa8_chessmsr_device::chessmsr_w))); + m_isa->install_device(port, port+1, read8sm_delegate(*this, FUNC(isa8_chessmsr_device::chessmsr_r)), write8sm_delegate(*this, FUNC(isa8_chessmsr_device::chessmsr_w))); m_maincpu->set_unscaled_clock(ioport("CPU")->read() ? (32_MHz_XTAL) : (30_MHz_XTAL/2)); @@ -80,7 +80,7 @@ void isa8_chessmsr_device::device_reset() void isa8_chessmsr_device::device_reset_after_children() { // hold ARM CPU in reset state - chessmsr_w(machine().dummy_space(), 1, 0); + chessmsr_w(1, 0); } @@ -152,7 +152,7 @@ void isa8_chessmsr_device::device_add_mconfig(machine_config &config) // External handlers -READ8_MEMBER(isa8_chessmsr_device::chessmsr_r) +uint8_t isa8_chessmsr_device::chessmsr_r(offs_t offset) { if (offset == 0) return m_mainlatch->read(); @@ -160,7 +160,7 @@ READ8_MEMBER(isa8_chessmsr_device::chessmsr_r) return m_mainlatch->pending_r() ? 0 : 2; } -WRITE8_MEMBER(isa8_chessmsr_device::chessmsr_w) +void isa8_chessmsr_device::chessmsr_w(offs_t offset, uint8_t data) { if (offset == 0) { diff --git a/src/devices/bus/isa/chessmsr.h b/src/devices/bus/isa/chessmsr.h index 2d79226d4ce..9144db455dd 100644 --- a/src/devices/bus/isa/chessmsr.h +++ b/src/devices/bus/isa/chessmsr.h @@ -43,8 +43,8 @@ private: bool m_suspended; bool m_installed; - DECLARE_READ8_MEMBER(chessmsr_r); - DECLARE_WRITE8_MEMBER(chessmsr_w); + uint8_t chessmsr_r(offs_t offset); + void chessmsr_w(offs_t offset, uint8_t data); void chessmsr_mem(address_map &map); }; diff --git a/src/devices/bus/isa/dectalk.cpp b/src/devices/bus/isa/dectalk.cpp index 07aa5181a9d..dc8f827338a 100644 --- a/src/devices/bus/isa/dectalk.cpp +++ b/src/devices/bus/isa/dectalk.cpp @@ -52,13 +52,14 @@ READ16_MEMBER(dectalk_isa_device::host_irq_r) return 0; } -READ8_MEMBER(dectalk_isa_device::dma_r) +uint8_t dectalk_isa_device::dma_r() { - m_cpu->drq1_w(0); + if (!machine().side_effects_disabled()) + m_cpu->drq1_w(0); return m_dma; } -WRITE8_MEMBER(dectalk_isa_device::dma_w) +void dectalk_isa_device::dma_w(uint8_t data) { m_cpu->drq1_w(0); m_dma = data; @@ -176,7 +177,7 @@ void dectalk_isa_device::device_add_mconfig(machine_config &config) vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT); } -WRITE8_MEMBER(dectalk_isa_device::write) +void dectalk_isa_device::write(offs_t offset, uint8_t data) { switch(offset) { @@ -202,7 +203,7 @@ WRITE8_MEMBER(dectalk_isa_device::write) } } -READ8_MEMBER(dectalk_isa_device::read) +uint8_t dectalk_isa_device::read(offs_t offset) { switch(offset) { @@ -215,7 +216,8 @@ READ8_MEMBER(dectalk_isa_device::read) case 3: return m_data >> 8; case 4: - m_cpu->drq1_w(1); + if (!machine().side_effects_disabled()) + m_cpu->drq1_w(1); return m_dma; } return 0; @@ -224,7 +226,7 @@ READ8_MEMBER(dectalk_isa_device::read) void dectalk_isa_device::device_start() { set_isa_device(); - m_isa->install_device(0x0250, 0x0257, read8_delegate(*this, FUNC(dectalk_isa_device::read)), write8_delegate(*this, FUNC(dectalk_isa_device::write))); + m_isa->install_device(0x0250, 0x0257, read8sm_delegate(*this, FUNC(dectalk_isa_device::read)), write8sm_delegate(*this, FUNC(dectalk_isa_device::write))); } void dectalk_isa_device::device_reset() diff --git a/src/devices/bus/isa/dectalk.h b/src/devices/bus/isa/dectalk.h index 373c33e5ac1..f004cd37863 100644 --- a/src/devices/bus/isa/dectalk.h +++ b/src/devices/bus/isa/dectalk.h @@ -29,16 +29,16 @@ private: DECLARE_READ_LINE_MEMBER(bio_line_r); DECLARE_WRITE_LINE_MEMBER(clock_w); - DECLARE_WRITE8_MEMBER(write); - DECLARE_READ8_MEMBER(read); + void write(offs_t offset, uint8_t data); + uint8_t read(offs_t offset); DECLARE_WRITE16_MEMBER(status_w); DECLARE_READ16_MEMBER(cmd_r); DECLARE_WRITE16_MEMBER(data_w); DECLARE_READ16_MEMBER(data_r); DECLARE_READ16_MEMBER(host_irq_r); - DECLARE_READ8_MEMBER(dma_r); - DECLARE_WRITE8_MEMBER(dma_w); + uint8_t dma_r(); + void dma_w(uint8_t data); DECLARE_WRITE16_MEMBER(dac_w); DECLARE_READ16_MEMBER(dsp_dma_r); DECLARE_WRITE16_MEMBER(dsp_dma_w); diff --git a/src/devices/bus/isa/ega.cpp b/src/devices/bus/isa/ega.cpp index abca884e810..e3d75e4070a 100644 --- a/src/devices/bus/isa/ega.cpp +++ b/src/devices/bus/isa/ega.cpp @@ -637,9 +637,9 @@ void isa8_ega_device::device_start() m_plane[3] = m_videoram + 0x30000; m_isa->install_rom(this, 0xc0000, 0xc3fff, "ega", "user2"); - m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_w))); - m_isa->install_device(0x3c0, 0x3cf, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_w))); - m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_w))); + m_isa->install_device(0x3b0, 0x3bf, read8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_r)), write8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_w))); + m_isa->install_device(0x3c0, 0x3cf, read8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_r)), write8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_w))); + m_isa->install_device(0x3d0, 0x3df, read8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_r)), write8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_w))); } //------------------------------------------------- @@ -693,7 +693,7 @@ void isa8_ega_device::install_banks() case 0x00: /* 0xA0000, 128KB */ if ( m_misc_output & 0x02 ) { - m_isa->install_memory(0xa0000, 0xbffff, read8_delegate(*this, FUNC(isa8_ega_device::read)), write8_delegate(*this, FUNC(isa8_ega_device::write))); + m_isa->install_memory(0xa0000, 0xbffff, read8sm_delegate(*this, FUNC(isa8_ega_device::read)), write8sm_delegate(*this, FUNC(isa8_ega_device::write))); } else { @@ -705,7 +705,7 @@ void isa8_ega_device::install_banks() case 0x04: /* 0xA0000, 64KB */ if ( m_misc_output & 0x02 ) { - m_isa->install_memory(0xa0000, 0xaffff, read8_delegate(*this, FUNC(isa8_ega_device::read)), write8_delegate(*this, FUNC(isa8_ega_device::write))); + m_isa->install_memory(0xa0000, 0xaffff, read8sm_delegate(*this, FUNC(isa8_ega_device::read)), write8sm_delegate(*this, FUNC(isa8_ega_device::write))); } else { @@ -718,7 +718,7 @@ void isa8_ega_device::install_banks() case 0x08: /* 0xB0000, 32KB */ if ( m_misc_output & 0x02 ) { - m_isa->install_memory(0xb0000, 0xb7fff, read8_delegate(*this, FUNC(isa8_ega_device::read)), write8_delegate(*this, FUNC(isa8_ega_device::write))); + m_isa->install_memory(0xb0000, 0xb7fff, read8sm_delegate(*this, FUNC(isa8_ega_device::read)), write8sm_delegate(*this, FUNC(isa8_ega_device::write))); } else { @@ -731,7 +731,7 @@ void isa8_ega_device::install_banks() case 0x0c: /* 0xB8000, 32KB */ if ( m_misc_output & 0x02 ) { - m_isa->install_memory(0xb8000, 0xbffff, read8_delegate(*this, FUNC(isa8_ega_device::read)), write8_delegate(*this, FUNC(isa8_ega_device::write))); + m_isa->install_memory(0xb8000, 0xbffff, read8sm_delegate(*this, FUNC(isa8_ega_device::read)), write8sm_delegate(*this, FUNC(isa8_ega_device::write))); } else { @@ -953,7 +953,7 @@ void isa8_ega_device::change_mode() } -READ8_MEMBER( isa8_ega_device::read ) +uint8_t isa8_ega_device::read(offs_t offset) { uint8_t data = 0xFF; @@ -1013,7 +1013,7 @@ uint8_t isa8_ega_device::alu_op( uint8_t data, uint8_t latch_data ) } -WRITE8_MEMBER( isa8_ega_device::write ) +void isa8_ega_device::write(offs_t offset, uint8_t data) { uint8_t d[4]; uint8_t alu[4]; @@ -1159,7 +1159,7 @@ WRITE8_MEMBER( isa8_ega_device::write ) } -READ8_MEMBER( isa8_ega_device::pc_ega8_3X0_r ) +uint8_t isa8_ega_device::pc_ega8_3X0_r(offs_t offset) { int data = 0xff; @@ -1196,7 +1196,7 @@ READ8_MEMBER( isa8_ega_device::pc_ega8_3X0_r ) return data; } -WRITE8_MEMBER( isa8_ega_device::pc_ega8_3X0_w ) +void isa8_ega_device::pc_ega8_3X0_w(offs_t offset, uint8_t data) { LOGSETUP("%s: offset = %02x, data = %02x\n", FUNCNAME, offset, data ); @@ -1229,37 +1229,37 @@ WRITE8_MEMBER( isa8_ega_device::pc_ega8_3X0_w ) -READ8_MEMBER(isa8_ega_device::pc_ega8_3b0_r ) +uint8_t isa8_ega_device::pc_ega8_3b0_r(offs_t offset) { - return ( m_misc_output & 0x01 ) ? 0xFF : pc_ega8_3X0_r(space, offset); + return ( m_misc_output & 0x01 ) ? 0xFF : pc_ega8_3X0_r(offset); } -READ8_MEMBER(isa8_ega_device::pc_ega8_3d0_r ) +uint8_t isa8_ega_device::pc_ega8_3d0_r(offs_t offset) { - return ( m_misc_output & 0x01 ) ? pc_ega8_3X0_r(space, offset) : 0xFF; + return ( m_misc_output & 0x01 ) ? pc_ega8_3X0_r(offset) : 0xFF; } -WRITE8_MEMBER(isa8_ega_device::pc_ega8_3b0_w ) +void isa8_ega_device::pc_ega8_3b0_w(offs_t offset, uint8_t data) { if ( ! ( m_misc_output & 0x01 ) ) { - pc_ega8_3X0_w( space, offset, data ); + pc_ega8_3X0_w( offset, data ); } } -WRITE8_MEMBER(isa8_ega_device::pc_ega8_3d0_w ) +void isa8_ega_device::pc_ega8_3d0_w(offs_t offset, uint8_t data) { if ( m_misc_output & 0x01 ) { - pc_ega8_3X0_w( space, offset, data ); + pc_ega8_3X0_w( offset, data ); } } -READ8_MEMBER(isa8_ega_device::pc_ega8_3c0_r ) +uint8_t isa8_ega_device::pc_ega8_3c0_r(offs_t offset) { int data = 0xff; @@ -1299,7 +1299,7 @@ READ8_MEMBER(isa8_ega_device::pc_ega8_3c0_r ) } -WRITE8_MEMBER(isa8_ega_device::pc_ega8_3c0_w ) +void isa8_ega_device::pc_ega8_3c0_w(offs_t offset, uint8_t data) { static const uint8_t ar_reg_mask[0x20] = { diff --git a/src/devices/bus/isa/ega.h b/src/devices/bus/isa/ega.h index 4334604b9a8..04ff53fc055 100644 --- a/src/devices/bus/isa/ega.h +++ b/src/devices/bus/isa/ega.h @@ -23,14 +23,14 @@ public: // construction/destruction isa8_ega_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8_MEMBER(read); - DECLARE_WRITE8_MEMBER(write); - DECLARE_READ8_MEMBER(pc_ega8_3b0_r); - DECLARE_WRITE8_MEMBER(pc_ega8_3b0_w); - DECLARE_READ8_MEMBER(pc_ega8_3c0_r); - DECLARE_WRITE8_MEMBER(pc_ega8_3c0_w); - DECLARE_READ8_MEMBER(pc_ega8_3d0_r); - DECLARE_WRITE8_MEMBER(pc_ega8_3d0_w); + uint8_t read(offs_t offset); + void write(offs_t offset, uint8_t data); + uint8_t pc_ega8_3b0_r(offs_t offset); + void pc_ega8_3b0_w(offs_t offset, uint8_t data); + uint8_t pc_ega8_3c0_r(offs_t offset); + void pc_ega8_3c0_w(offs_t offset, uint8_t data); + uint8_t pc_ega8_3d0_r(offs_t offset); + void pc_ega8_3d0_w(offs_t offset, uint8_t data); CRTC_EGA_ROW_UPDATE(pc_ega_graphics); CRTC_EGA_ROW_UPDATE(pc_ega_text); @@ -62,8 +62,8 @@ public: void install_banks(); void change_mode(); - DECLARE_WRITE8_MEMBER(pc_ega8_3X0_w); - DECLARE_READ8_MEMBER(pc_ega8_3X0_r); + void pc_ega8_3X0_w(offs_t offset, uint8_t data); + uint8_t pc_ega8_3X0_r(offs_t offset); /* Video memory and related variables */ std::unique_ptr m_vram; diff --git a/src/devices/bus/isa/eis_hgb107x.cpp b/src/devices/bus/isa/eis_hgb107x.cpp index 3503802811a..32aeac02c3e 100644 --- a/src/devices/bus/isa/eis_hgb107x.cpp +++ b/src/devices/bus/isa/eis_hgb107x.cpp @@ -242,13 +242,13 @@ void isa8_epc_mda_device::device_reset() if (m_installed == false) { - m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_epc_mda_device::io_read)), write8_delegate(*this, FUNC(isa8_epc_mda_device::io_write))); + m_isa->install_device(0x3b0, 0x3bf, read8sm_delegate(*this, FUNC(isa8_epc_mda_device::io_read)), write8sm_delegate(*this, FUNC(isa8_epc_mda_device::io_write))); m_isa->install_bank(0xb0000, 0xb7fff, "bank_epc", &m_videoram[0]); // Monochrome emulation mode VRAM address // This check allows a color monitor adapter to be installed at this address range if color emulation is disabled if (m_color_mode & 1) { - m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_epc_mda_device::io_read)), write8_delegate(*this, FUNC(isa8_epc_mda_device::io_write))); + m_isa->install_device(0x3d0, 0x3df, read8sm_delegate(*this, FUNC(isa8_epc_mda_device::io_read)), write8sm_delegate(*this, FUNC(isa8_epc_mda_device::io_write))); m_isa->install_bank(0xb8000, 0xbffff, "bank_epc", &m_videoram[0]); // Color emulation mode VRAM address, but same 32KB areas as there are only this amount on the board } m_installed = true; @@ -266,7 +266,7 @@ void isa8_epc_mda_device::device_reset() * Status Register 0x3ba 0x3da r CGA/MDA status reg (incompatible) * w EGA/VGA feature ccontrol reg (not used by this board) */ -WRITE8_MEMBER(isa8_epc_mda_device::io_write ) +void isa8_epc_mda_device::io_write(offs_t offset, uint8_t data) { LOG("%s: %04x <- %02x\n", FUNCNAME, offset, data); switch( offset ) @@ -318,7 +318,7 @@ WRITE8_MEMBER(isa8_epc_mda_device::io_write ) } } -READ8_MEMBER( isa8_epc_mda_device::io_read ) +uint8_t isa8_epc_mda_device::io_read(offs_t offset) { LOG("%s: %04x <- ???\n", FUNCNAME, offset); int data = 0xff; @@ -370,7 +370,7 @@ WRITE_LINE_MEMBER( isa8_epc_mda_device::vsync_changed ) /* * rW MDA mode control register (see #P138) */ -WRITE8_MEMBER( isa8_epc_mda_device::mode_control_w ) +void isa8_epc_mda_device::mode_control_w(uint8_t data) { m_mode_control = data; @@ -399,10 +399,11 @@ WRITE8_MEMBER( isa8_epc_mda_device::mode_control_w ) * 2-1 reserved * 0 horizontal drive enable */ -READ8_MEMBER( isa8_epc_mda_device::status_r ) +uint8_t isa8_epc_mda_device::status_r() { // Faking pixel stream here - m_pixel++; + if (!machine().side_effects_disabled()) + m_pixel++; return 0xF0 | (m_pixel & 0x08) | m_hsync; } diff --git a/src/devices/bus/isa/eis_hgb107x.h b/src/devices/bus/isa/eis_hgb107x.h index 8156633df9f..6689e7db0a8 100644 --- a/src/devices/bus/isa/eis_hgb107x.h +++ b/src/devices/bus/isa/eis_hgb107x.h @@ -20,10 +20,10 @@ public: // construction/destruction isa8_epc_mda_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8_MEMBER(io_read); - DECLARE_WRITE8_MEMBER(io_write); - DECLARE_READ8_MEMBER(status_r); - DECLARE_WRITE8_MEMBER(mode_control_w); + uint8_t io_read(offs_t offset); + void io_write(offs_t offset, uint8_t data); + uint8_t status_r(); + void mode_control_w(uint8_t data); DECLARE_WRITE_LINE_MEMBER(hsync_changed); DECLARE_WRITE_LINE_MEMBER(vsync_changed); diff --git a/src/devices/bus/isa/eis_sad8852.cpp b/src/devices/bus/isa/eis_sad8852.cpp index cb1c62cb9c0..8908831350a 100644 --- a/src/devices/bus/isa/eis_sad8852.cpp +++ b/src/devices/bus/isa/eis_sad8852.cpp @@ -122,13 +122,13 @@ DEFINE_DEVICE_TYPE(ISA16_SAD8852, isa16_sad8852_device, "sad8852", "SAD8852 IBM //------------------------------------------------- // Access methods from ISA bus //------------------------------------------------- -READ8_MEMBER( isa16_sad8852_device::sad8852_r ) +uint8_t isa16_sad8852_device::sad8852_r(offs_t offset) { LOG("%s sad8852_r(): offset=%d\n", FUNCNAME, offset); return 0xff; } -WRITE8_MEMBER( isa16_sad8852_device::sad8852_w ) +void isa16_sad8852_device::sad8852_w(offs_t offset, uint8_t data) { LOG("%s : offset=%d data=0x%02x\n", FUNCNAME, offset, data); } @@ -236,8 +236,8 @@ void isa16_sad8852_device::device_reset() { m_isa->install_device( 0x378, 0x378, // Wrong, need to find real i/o addresses - read8_delegate(*this, FUNC(isa16_sad8852_device::sad8852_r)), - write8_delegate(*this, FUNC(isa16_sad8852_device::sad8852_w))); + read8sm_delegate(*this, FUNC(isa16_sad8852_device::sad8852_r)), + write8sm_delegate(*this, FUNC(isa16_sad8852_device::sad8852_w))); m_irq = m_isairq->read(); m_installed = true; } diff --git a/src/devices/bus/isa/eis_sad8852.h b/src/devices/bus/isa/eis_sad8852.h index 1e2b79be092..224680c83e7 100644 --- a/src/devices/bus/isa/eis_sad8852.h +++ b/src/devices/bus/isa/eis_sad8852.h @@ -15,8 +15,8 @@ public: // construction/destruction isa16_sad8852_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8_MEMBER(sad8852_r); - DECLARE_WRITE8_MEMBER(sad8852_w); + uint8_t sad8852_r(offs_t offset); + void sad8852_w(offs_t offset, uint8_t data); protected: // device-level overrides diff --git a/src/devices/bus/isa/eis_twib.cpp b/src/devices/bus/isa/eis_twib.cpp index 6e677d33395..4ca179e5055 100644 --- a/src/devices/bus/isa/eis_twib.cpp +++ b/src/devices/bus/isa/eis_twib.cpp @@ -79,13 +79,13 @@ DEFINE_DEVICE_TYPE(ISA8_EIS_TWIB, isa8_eistwib_device, "eistwib", "EIS TWIB IBM //------------------------------------------------- // Access methods from ISA bus //------------------------------------------------- -READ8_MEMBER( isa8_eistwib_device::twib_r ) +uint8_t isa8_eistwib_device::twib_r(offs_t offset) { LOGR("%s : offset=%d\n", FUNCNAME, offset); return m_uart8274->cd_ba_r(offset); } -WRITE8_MEMBER( isa8_eistwib_device::twib_w ) +void isa8_eistwib_device::twib_w(offs_t offset, uint8_t data) { LOG("%s : offset=%d data=0x%02x\n", FUNCNAME, offset, data); m_uart8274->cd_ba_w(offset, data); @@ -249,8 +249,8 @@ void isa8_eistwib_device::device_reset() LOG("Installing twib device at %04x\n", base); m_isa->install_device( base, base + 0x0f, - read8_delegate(*this, FUNC( isa8_eistwib_device::twib_r )), - write8_delegate(*this, FUNC( isa8_eistwib_device::twib_w ))); + read8sm_delegate(*this, FUNC( isa8_eistwib_device::twib_r )), + write8sm_delegate(*this, FUNC( isa8_eistwib_device::twib_w ))); m_installed = true; } // CD and CTS input are tied to ground diff --git a/src/devices/bus/isa/eis_twib.h b/src/devices/bus/isa/eis_twib.h index bcc8f6a327d..03aa10b5544 100644 --- a/src/devices/bus/isa/eis_twib.h +++ b/src/devices/bus/isa/eis_twib.h @@ -18,8 +18,8 @@ public: // construction/destruction isa8_eistwib_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8_MEMBER(twib_r); - DECLARE_WRITE8_MEMBER(twib_w); + uint8_t twib_r(offs_t offset); + void twib_w(offs_t offset, uint8_t data); protected: // device-level overrides diff --git a/src/devices/bus/isa/finalchs.cpp b/src/devices/bus/isa/finalchs.cpp index da3cd23ec1b..2ee3b169371 100644 --- a/src/devices/bus/isa/finalchs.cpp +++ b/src/devices/bus/isa/finalchs.cpp @@ -58,7 +58,7 @@ void isa8_finalchs_device::device_reset() { // MAME doesn't allow reading ioport at device_start u16 port = ioport("DSW")->read() * 0x10 + 0x100; - m_isa->install_device(port, port+1, read8_delegate(*this, FUNC(isa8_finalchs_device::finalchs_r)), write8_delegate(*this, FUNC(isa8_finalchs_device::finalchs_w))); + m_isa->install_device(port, port+1, read8sm_delegate(*this, FUNC(isa8_finalchs_device::finalchs_r)), write8sm_delegate(*this, FUNC(isa8_finalchs_device::finalchs_w))); m_installed = true; } @@ -139,7 +139,7 @@ void isa8_finalchs_device::device_add_mconfig(machine_config &config) // External handlers -READ8_MEMBER(isa8_finalchs_device::finalchs_r) +uint8_t isa8_finalchs_device::finalchs_r(offs_t offset) { if (offset == 0) return m_mainlatch->read(); @@ -147,7 +147,7 @@ READ8_MEMBER(isa8_finalchs_device::finalchs_r) return m_mainlatch->pending_r() ? 0 : 1; } -WRITE8_MEMBER(isa8_finalchs_device::finalchs_w) +void isa8_finalchs_device::finalchs_w(offs_t offset, uint8_t data) { if (offset == 0) m_sublatch->write(data); diff --git a/src/devices/bus/isa/finalchs.h b/src/devices/bus/isa/finalchs.h index d00573ebab6..2b04f69ec6b 100644 --- a/src/devices/bus/isa/finalchs.h +++ b/src/devices/bus/isa/finalchs.h @@ -41,8 +41,8 @@ private: bool m_installed; - DECLARE_READ8_MEMBER(finalchs_r); - DECLARE_WRITE8_MEMBER(finalchs_w); + uint8_t finalchs_r(offs_t offset); + void finalchs_w(offs_t offset, uint8_t data); void finalchs_mem(address_map &map); }; diff --git a/src/devices/bus/isa/gblaster.cpp b/src/devices/bus/isa/gblaster.cpp index d3035091580..26778703ef1 100644 --- a/src/devices/bus/isa/gblaster.cpp +++ b/src/devices/bus/isa/gblaster.cpp @@ -22,22 +22,22 @@ */ -READ8_MEMBER( isa8_gblaster_device::saa1099_16_r ) +uint8_t isa8_gblaster_device::saa1099_16_r(offs_t offset) { return 0xff; } -WRITE8_MEMBER( isa8_gblaster_device::saa1099_1_16_w ) +void isa8_gblaster_device::saa1099_1_16_w(offs_t offset, uint8_t data) { m_saa1099_1->write(offset, data); } -WRITE8_MEMBER( isa8_gblaster_device::saa1099_2_16_w ) +void isa8_gblaster_device::saa1099_2_16_w(offs_t offset, uint8_t data) { m_saa1099_2->write(offset, data); } -READ8_MEMBER( isa8_gblaster_device::detect_r ) +uint8_t isa8_gblaster_device::detect_r(offs_t offset) { switch(offset) { @@ -49,7 +49,7 @@ READ8_MEMBER( isa8_gblaster_device::detect_r ) } } -WRITE8_MEMBER( isa8_gblaster_device::detect_w ) +void isa8_gblaster_device::detect_w(offs_t offset, uint8_t data) { switch(offset) { @@ -104,9 +104,9 @@ isa8_gblaster_device::isa8_gblaster_device(const machine_config &mconfig, const void isa8_gblaster_device::device_start() { set_isa_device(); - m_isa->install_device(0x0220, 0x0221, read8_delegate(*this, FUNC(isa8_gblaster_device::saa1099_16_r)), write8_delegate(*this, FUNC(isa8_gblaster_device::saa1099_1_16_w))); - m_isa->install_device(0x0222, 0x0223, read8_delegate(*this, FUNC(isa8_gblaster_device::saa1099_16_r)), write8_delegate(*this, FUNC(isa8_gblaster_device::saa1099_2_16_w))); - m_isa->install_device(0x0224, 0x022F, read8_delegate(*this, FUNC(isa8_gblaster_device::detect_r)), write8_delegate(*this, FUNC(isa8_gblaster_device::detect_w))); + m_isa->install_device(0x0220, 0x0221, read8sm_delegate(*this, FUNC(isa8_gblaster_device::saa1099_16_r)), write8sm_delegate(*this, FUNC(isa8_gblaster_device::saa1099_1_16_w))); + m_isa->install_device(0x0222, 0x0223, read8sm_delegate(*this, FUNC(isa8_gblaster_device::saa1099_16_r)), write8sm_delegate(*this, FUNC(isa8_gblaster_device::saa1099_2_16_w))); + m_isa->install_device(0x0224, 0x022F, read8sm_delegate(*this, FUNC(isa8_gblaster_device::detect_r)), write8sm_delegate(*this, FUNC(isa8_gblaster_device::detect_w))); } //------------------------------------------------- diff --git a/src/devices/bus/isa/gblaster.h b/src/devices/bus/isa/gblaster.h index 03b1fcea87d..77cec10eded 100644 --- a/src/devices/bus/isa/gblaster.h +++ b/src/devices/bus/isa/gblaster.h @@ -22,11 +22,11 @@ public: // construction/destruction isa8_gblaster_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8_MEMBER(saa1099_16_r); - DECLARE_WRITE8_MEMBER(saa1099_1_16_w); - DECLARE_WRITE8_MEMBER(saa1099_2_16_w); - DECLARE_READ8_MEMBER(detect_r); - DECLARE_WRITE8_MEMBER(detect_w); + uint8_t saa1099_16_r(offs_t offset); + void saa1099_1_16_w(offs_t offset, uint8_t data); + void saa1099_2_16_w(offs_t offset, uint8_t data); + uint8_t detect_r(offs_t offset); + void detect_w(offs_t offset, uint8_t data); protected: // device-level overrides diff --git a/src/devices/bus/isa/gus.cpp b/src/devices/bus/isa/gus.cpp index 5952edbbf33..239b8a6d2d2 100644 --- a/src/devices/bus/isa/gus.cpp +++ b/src/devices/bus/isa/gus.cpp @@ -65,7 +65,7 @@ void gf1_device::update_irq() } /* only the Adlib timers are implemented in hardware */ -READ8_MEMBER( gf1_device::adlib_r ) +uint8_t gf1_device::adlib_r(offs_t offset) { uint8_t retVal = 0xff; switch(offset) @@ -80,7 +80,7 @@ READ8_MEMBER( gf1_device::adlib_r ) return retVal; } -WRITE8_MEMBER( gf1_device::adlib_w ) +void gf1_device::adlib_w(offs_t offset, uint8_t data) { switch(offset) { @@ -475,7 +475,7 @@ void gf1_device::device_clock_changed() // device I/O handlers // ------------------------------------------------ -READ8_MEMBER(gf1_device::global_reg_select_r) +uint8_t gf1_device::global_reg_select_r(offs_t offset) { if(offset == 0) return m_current_voice; @@ -483,7 +483,7 @@ READ8_MEMBER(gf1_device::global_reg_select_r) return m_current_reg | 0xc0; } -WRITE8_MEMBER(gf1_device::global_reg_select_w) +void gf1_device::global_reg_select_w(offs_t offset, uint8_t data) { if(offset == 0) m_current_voice = data & 0x1f; @@ -491,7 +491,7 @@ WRITE8_MEMBER(gf1_device::global_reg_select_w) m_current_reg = data; } -READ8_MEMBER(gf1_device::global_reg_data_r) +uint8_t gf1_device::global_reg_data_r(offs_t offset) { uint16_t ret; @@ -610,7 +610,7 @@ READ8_MEMBER(gf1_device::global_reg_data_r) return 0xff; } -WRITE8_MEMBER(gf1_device::global_reg_data_w) +void gf1_device::global_reg_data_w(offs_t offset, uint8_t data) { switch(m_current_reg) { @@ -873,7 +873,7 @@ WRITE8_MEMBER(gf1_device::global_reg_data_w) /* port 0x3X7 - DRAM I/O * read and write bytes directly to wavetable DRAM */ -READ8_MEMBER(gf1_device::dram_r) +uint8_t gf1_device::dram_r(offs_t offset) { if(offset == 1) { @@ -883,7 +883,7 @@ READ8_MEMBER(gf1_device::dram_r) return 0xff; } -WRITE8_MEMBER(gf1_device::dram_w) +void gf1_device::dram_w(offs_t offset, uint8_t data) { if(offset == 1) { @@ -893,7 +893,7 @@ WRITE8_MEMBER(gf1_device::dram_w) /* port 2XA - read selected adlib command? * the GUS driver installation writes 0x55 to port 0x388, then expects to reads the same from 0x2XA */ -READ8_MEMBER(gf1_device::adlib_cmd_r) +uint8_t gf1_device::adlib_cmd_r(offs_t offset) { if(offset == 0) { @@ -919,7 +919,7 @@ READ8_MEMBER(gf1_device::adlib_cmd_r) * bits 5-3 = DMA select register 2 (values same as reg 1) * bit 6 = combine both on same DMA channel */ -WRITE8_MEMBER(gf1_device::adlib_cmd_w) +void gf1_device::adlib_cmd_w(offs_t offset, uint8_t data) { if(offset == 1) { @@ -1069,18 +1069,18 @@ WRITE8_MEMBER(gf1_device::adlib_cmd_w) * bit 4 - Combine GF1 IRQs with MIDI IRQs * bit 5 - Enable MIDI TxD to RxD loopback * bit 6 - Control Reg Select - set next I/O write to 0x2XB to be DMA (0) or IRQ (1) channel latches */ -READ8_MEMBER(gf1_device::mix_ctrl_r) +uint8_t gf1_device::mix_ctrl_r(offs_t offset) { return 0xff; // read only } -WRITE8_MEMBER(gf1_device::mix_ctrl_w) +void gf1_device::mix_ctrl_w(offs_t offset, uint8_t data) { if(offset == 0) m_mix_ctrl = data; } -READ8_MEMBER(gf1_device::sb_r) +uint8_t gf1_device::sb_r(offs_t offset) { uint8_t val; @@ -1103,7 +1103,7 @@ READ8_MEMBER(gf1_device::sb_r) return 0xff; } -WRITE8_MEMBER(gf1_device::sb_w) +void gf1_device::sb_w(offs_t offset, uint8_t data) { switch(offset) { @@ -1124,20 +1124,17 @@ WRITE8_MEMBER(gf1_device::sb_w) } } -WRITE8_MEMBER(gf1_device::sb2x6_w) +void gf1_device::sb2x6_w(uint8_t data) { - if(offset==0) + if(m_timer_ctrl & 0x20) { - if(m_timer_ctrl & 0x20) - { - m_adlib_status |= 0x08; - m_nmi_handler(1); - logerror("GUS: SB 0x2X6 IRQ active\n"); - } + m_adlib_status |= 0x08; + m_nmi_handler(1); + logerror("GUS: SB 0x2X6 IRQ active\n"); } } -READ8_MEMBER(gf1_device::stat_r) +uint8_t gf1_device::stat_r() { uint8_t val = m_statread & 0xf9; if(m_mix_ctrl & 0x08) @@ -1145,7 +1142,7 @@ READ8_MEMBER(gf1_device::stat_r) return val; } -WRITE8_MEMBER(gf1_device::stat_w) +void gf1_device::stat_w(uint8_t data) { m_reg_ctrl = data; } @@ -1293,10 +1290,10 @@ isa16_gus_device::isa16_gus_device(const machine_config &mconfig, const char *ta void isa16_gus_device::device_start() { set_isa_device(); - m_isa->install_device(0x0200, 0x0201, read8_delegate(*this, FUNC(isa16_gus_device::joy_r)), write8_delegate(*this, FUNC(isa16_gus_device::joy_w))); - m_isa->install_device(0x0220, 0x022f, read8_delegate(*this, FUNC(isa16_gus_device::board_r)), write8_delegate(*this, FUNC(isa16_gus_device::board_w))); - m_isa->install_device(0x0320, 0x0327, read8_delegate(*this, FUNC(isa16_gus_device::synth_r)), write8_delegate(*this, FUNC(isa16_gus_device::synth_w))); - m_isa->install_device(0x0388, 0x0389, read8_delegate(*this, FUNC(isa16_gus_device::adlib_r)), write8_delegate(*this, FUNC(isa16_gus_device::adlib_w))); + m_isa->install_device(0x0200, 0x0201, read8sm_delegate(*this, FUNC(isa16_gus_device::joy_r)), write8sm_delegate(*this, FUNC(isa16_gus_device::joy_w))); + m_isa->install_device(0x0220, 0x022f, read8sm_delegate(*this, FUNC(isa16_gus_device::board_r)), write8sm_delegate(*this, FUNC(isa16_gus_device::board_w))); + m_isa->install_device(0x0320, 0x0327, read8sm_delegate(*this, FUNC(isa16_gus_device::synth_r)), write8sm_delegate(*this, FUNC(isa16_gus_device::synth_w))); + m_isa->install_device(0x0388, 0x0389, read8sm_delegate(*this, FUNC(isa16_gus_device::adlib_r)), write8sm_delegate(*this, FUNC(isa16_gus_device::adlib_w))); } void isa16_gus_device::device_reset() @@ -1307,13 +1304,13 @@ void isa16_gus_device::device_stop() { } -READ8_MEMBER(isa16_gus_device::board_r) +uint8_t isa16_gus_device::board_r(offs_t offset) { switch(offset) { case 0x00: case 0x01: - return m_gf1->mix_ctrl_r(space,offset); + return m_gf1->mix_ctrl_r(offset); /* port 0x2X6 - IRQ status (active high) * bit 0 - MIDI transmit IRQ * bit 1 - MIDI receive IRQ @@ -1328,55 +1325,55 @@ READ8_MEMBER(isa16_gus_device::board_r) return m_irq_status; case 0x08: case 0x09: - return m_gf1->adlib_r(space,offset-8); + return m_gf1->adlib_r(offset-8); case 0x0a: case 0x0b: - return m_gf1->adlib_cmd_r(space,offset-10); + return m_gf1->adlib_cmd_r(offset-10); case 0x0c: case 0x0d: case 0x0e: - return m_gf1->sb_r(space,offset-12); + return m_gf1->sb_r(offset-12); case 0x0f: - return m_gf1->stat_r(space,offset-15); + return m_gf1->stat_r(); default: logerror("GUS: Invalid or unimplemented read of port 0x2X%01x\n",offset); return 0xff; } } -WRITE8_MEMBER(isa16_gus_device::board_w) +void isa16_gus_device::board_w(offs_t offset, uint8_t data) { switch(offset) { case 0x00: case 0x01: - m_gf1->mix_ctrl_w(space,offset,data); + m_gf1->mix_ctrl_w(offset,data); break; case 0x06: - m_gf1->sb2x6_w(space,offset-6,data); + m_gf1->sb2x6_w(data); break; case 0x08: case 0x09: - m_gf1->adlib_w(space,offset-8,data); + m_gf1->adlib_w(offset-8,data); break; case 0x0a: case 0x0b: - m_gf1->adlib_cmd_w(space,offset-10,data); + m_gf1->adlib_cmd_w(offset-10,data); break; case 0x0c: case 0x0d: case 0x0e: - m_gf1->sb_w(space,offset-12,data); + m_gf1->sb_w(offset-12,data); break; case 0x0f: - m_gf1->stat_w(space,offset-15,data); + m_gf1->stat_w(data); break; default: logerror("GUS: Invalid or unimplemented register write %02x of port 0x2X%01x\n",data,offset); } } -READ8_MEMBER(isa16_gus_device::synth_r) +uint8_t isa16_gus_device::synth_r(offs_t offset) { switch(offset) { @@ -1386,20 +1383,20 @@ READ8_MEMBER(isa16_gus_device::synth_r) return m_gf1->data_r(); case 0x02: case 0x03: - return m_gf1->global_reg_select_r(space,offset-2); + return m_gf1->global_reg_select_r(offset-2); case 0x04: case 0x05: - return m_gf1->global_reg_data_r(space,offset-4); + return m_gf1->global_reg_data_r(offset-4); case 0x06: case 0x07: - return m_gf1->dram_r(space,offset-6); + return m_gf1->dram_r(offset-6); default: logerror("GUS: Invalid or unimplemented register read of port 0x3X%01x\n",offset); return 0xff; } } -WRITE8_MEMBER(isa16_gus_device::synth_w) +void isa16_gus_device::synth_w(offs_t offset, uint8_t data) { switch(offset) { @@ -1411,32 +1408,32 @@ WRITE8_MEMBER(isa16_gus_device::synth_w) break; case 0x02: case 0x03: - m_gf1->global_reg_select_w(space,offset-2,data); + m_gf1->global_reg_select_w(offset-2,data); break; case 0x04: case 0x05: - m_gf1->global_reg_data_w(space,offset-4,data); + m_gf1->global_reg_data_w(offset-4,data); break; case 0x06: case 0x07: - m_gf1->dram_w(space,offset-6,data); + m_gf1->dram_w(offset-6,data); break; default: logerror("GUS: Invalid or unimplemented register write %02x of port 0x3X%01x\n",data,offset); } } -READ8_MEMBER(isa16_gus_device::adlib_r) +uint8_t isa16_gus_device::adlib_r(offs_t offset) { - return m_gf1->adlib_r(space,offset); + return m_gf1->adlib_r(offset); } -WRITE8_MEMBER(isa16_gus_device::adlib_w) +void isa16_gus_device::adlib_w(offs_t offset, uint8_t data) { - m_gf1->adlib_w(space,offset,data); + m_gf1->adlib_w(offset,data); } -READ8_MEMBER(isa16_gus_device::joy_r) +uint8_t isa16_gus_device::joy_r(offs_t offset) { if(offset == 1) { @@ -1459,7 +1456,7 @@ READ8_MEMBER(isa16_gus_device::joy_r) return 0xff; } -WRITE8_MEMBER(isa16_gus_device::joy_w) +void isa16_gus_device::joy_w(offs_t offset, uint8_t data) { m_joy_time = machine().time(); } diff --git a/src/devices/bus/isa/gus.h b/src/devices/bus/isa/gus.h index d79dee72a29..ec2e4168142 100644 --- a/src/devices/bus/isa/gus.h +++ b/src/devices/bus/isa/gus.h @@ -98,23 +98,23 @@ public: uint8_t dma_channel1() { return m_dma_channel1; } uint8_t dma_channel2() { if(m_dma_combine == 0) return m_dma_channel2; else return m_dma_channel1; } - DECLARE_READ8_MEMBER(global_reg_select_r); - DECLARE_WRITE8_MEMBER(global_reg_select_w); - DECLARE_READ8_MEMBER(global_reg_data_r); - DECLARE_WRITE8_MEMBER(global_reg_data_w); - DECLARE_READ8_MEMBER(dram_r); - DECLARE_WRITE8_MEMBER(dram_w); - DECLARE_READ8_MEMBER(adlib_r); - DECLARE_WRITE8_MEMBER(adlib_w); - DECLARE_READ8_MEMBER(adlib_cmd_r); - DECLARE_WRITE8_MEMBER(adlib_cmd_w); - DECLARE_READ8_MEMBER(mix_ctrl_r); - DECLARE_WRITE8_MEMBER(mix_ctrl_w); - DECLARE_READ8_MEMBER(stat_r); - DECLARE_WRITE8_MEMBER(stat_w); - DECLARE_READ8_MEMBER(sb_r); - DECLARE_WRITE8_MEMBER(sb_w); - DECLARE_WRITE8_MEMBER(sb2x6_w); + uint8_t global_reg_select_r(offs_t offset); + void global_reg_select_w(offs_t offset, uint8_t data); + uint8_t global_reg_data_r(offs_t offset); + void global_reg_data_w(offs_t offset, uint8_t data); + uint8_t dram_r(offs_t offset); + void dram_w(offs_t offset, uint8_t data); + uint8_t adlib_r(offs_t offset); + void adlib_w(offs_t offset, uint8_t data); + uint8_t adlib_cmd_r(offs_t offset); + void adlib_cmd_w(offs_t offset, uint8_t data); + uint8_t mix_ctrl_r(offs_t offset); + void mix_ctrl_w(offs_t offset, uint8_t data); + uint8_t stat_r(); + void stat_w(uint8_t data); + uint8_t sb_r(offs_t offset); + void sb_w(offs_t offset, uint8_t data); + void sb2x6_w(uint8_t data); // DMA signals uint8_t dack_r(int line); @@ -231,14 +231,14 @@ public: void set_midi_irq(uint8_t source); void reset_midi_irq(uint8_t source); - DECLARE_READ8_MEMBER(board_r); - DECLARE_READ8_MEMBER(synth_r); - DECLARE_WRITE8_MEMBER(board_w); - DECLARE_WRITE8_MEMBER(synth_w); - DECLARE_READ8_MEMBER(adlib_r); - DECLARE_WRITE8_MEMBER(adlib_w); - DECLARE_READ8_MEMBER(joy_r); - DECLARE_WRITE8_MEMBER(joy_w); + uint8_t board_r(offs_t offset); + uint8_t synth_r(offs_t offset); + void board_w(offs_t offset, uint8_t data); + void synth_w(offs_t offset, uint8_t data); + uint8_t adlib_r(offs_t offset); + void adlib_w(offs_t offset, uint8_t data); + uint8_t joy_r(offs_t offset); + void joy_w(offs_t offset, uint8_t data); // DMA overrides virtual uint8_t dack_r(int line) override; diff --git a/src/devices/bus/isa/hdc.cpp b/src/devices/bus/isa/hdc.cpp index 8d5d84bfe1e..d217d1c4208 100644 --- a/src/devices/bus/isa/hdc.cpp +++ b/src/devices/bus/isa/hdc.cpp @@ -987,7 +987,7 @@ isa8_hdc_ec1841_device::isa8_hdc_ec1841_device(const machine_config &mconfig, co void isa8_hdc_device::device_start() { set_isa_device(); - m_isa->install_device(0x0320, 0x0323, read8_delegate(*this, FUNC(isa8_hdc_device::pc_hdc_r)), write8_delegate(*this, FUNC(isa8_hdc_device::pc_hdc_w))); + m_isa->install_device(0x0320, 0x0323, read8sm_delegate(*this, FUNC(isa8_hdc_device::pc_hdc_r)), write8sm_delegate(*this, FUNC(isa8_hdc_device::pc_hdc_w))); m_isa->set_dma_channel(3, this, false); } @@ -1009,7 +1009,7 @@ void isa8_hdc_device::device_reset() * hard disk controller * *************************************************************************/ -READ8_MEMBER( isa8_hdc_device::pc_hdc_r ) +uint8_t isa8_hdc_device::pc_hdc_r(offs_t offset) { uint8_t data = 0xff; @@ -1027,7 +1027,7 @@ READ8_MEMBER( isa8_hdc_device::pc_hdc_r ) return data; } -WRITE8_MEMBER( isa8_hdc_device::pc_hdc_w ) +void isa8_hdc_device::pc_hdc_w(offs_t offset, uint8_t data) { if (LOG_HDC_CALL) logerror("%s pc_hdc_w(): offs=%d data=0x%02x\n", machine().describe_context(), offset, data); diff --git a/src/devices/bus/isa/hdc.h b/src/devices/bus/isa/hdc.h index 7d60d40b7a5..9df114bdcf6 100644 --- a/src/devices/bus/isa/hdc.h +++ b/src/devices/bus/isa/hdc.h @@ -142,8 +142,8 @@ public: // construction/destruction isa8_hdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8_MEMBER(pc_hdc_r); - DECLARE_WRITE8_MEMBER(pc_hdc_w); + uint8_t pc_hdc_r(offs_t offset); + void pc_hdc_w(offs_t offset, uint8_t data); required_device m_hdc; protected: diff --git a/src/devices/bus/isa/ibm_mfc.cpp b/src/devices/bus/isa/ibm_mfc.cpp index b2afd57de7c..36dde1cc10a 100644 --- a/src/devices/bus/isa/ibm_mfc.cpp +++ b/src/devices/bus/isa/ibm_mfc.cpp @@ -273,7 +273,7 @@ WRITE_LINE_MEMBER(isa8_ibm_mfc_device::ibm_mfc_ym_irq) // ISA interface //------------------------------------------------- -READ8_MEMBER( isa8_ibm_mfc_device::ibm_mfc_r ) +uint8_t isa8_ibm_mfc_device::ibm_mfc_r(offs_t offset) { uint8_t val; @@ -306,7 +306,7 @@ READ8_MEMBER( isa8_ibm_mfc_device::ibm_mfc_r ) return val; } -WRITE8_MEMBER( isa8_ibm_mfc_device::ibm_mfc_w ) +void isa8_ibm_mfc_device::ibm_mfc_w(offs_t offset, uint8_t data) { switch (offset) { @@ -462,7 +462,7 @@ isa8_ibm_mfc_device::isa8_ibm_mfc_device(const machine_config &mconfig, const ch void isa8_ibm_mfc_device::device_start() { set_isa_device(); - m_isa->install_device(0x2a20, 0x2a20 + 15, read8_delegate(*this, FUNC(isa8_ibm_mfc_device::ibm_mfc_r)), write8_delegate(*this, FUNC(isa8_ibm_mfc_device::ibm_mfc_w))); + m_isa->install_device(0x2a20, 0x2a20 + 15, read8sm_delegate(*this, FUNC(isa8_ibm_mfc_device::ibm_mfc_r)), write8sm_delegate(*this, FUNC(isa8_ibm_mfc_device::ibm_mfc_w))); } diff --git a/src/devices/bus/isa/ibm_mfc.h b/src/devices/bus/isa/ibm_mfc.h index ddefbfa0f68..770b6be7126 100644 --- a/src/devices/bus/isa/ibm_mfc.h +++ b/src/devices/bus/isa/ibm_mfc.h @@ -59,8 +59,8 @@ private: DECLARE_WRITE_LINE_MEMBER( ibm_mfc_ym_irq ); - DECLARE_READ8_MEMBER( ibm_mfc_r ); - DECLARE_WRITE8_MEMBER( ibm_mfc_w ); + uint8_t ibm_mfc_r(offs_t offset); + void ibm_mfc_w(offs_t offset, uint8_t data); void io_map(address_map &map); void prg_map(address_map &map); diff --git a/src/devices/bus/isa/ide.cpp b/src/devices/bus/isa/ide.cpp index 9b259161a88..656995add4e 100644 --- a/src/devices/bus/isa/ide.cpp +++ b/src/devices/bus/isa/ide.cpp @@ -15,12 +15,12 @@ #include "speaker.h" -READ8_MEMBER(isa16_ide_device::ide16_alt_r ) +uint8_t isa16_ide_device::ide16_alt_r() { return m_ide->read_cs1(6/2, 0xff); } -WRITE8_MEMBER(isa16_ide_device::ide16_alt_w ) +void isa16_ide_device::ide16_alt_w(uint8_t data) { m_ide->write_cs1(6/2, data, 0xff); } diff --git a/src/devices/bus/isa/ide.h b/src/devices/bus/isa/ide.h index e0e58661389..5cdccca6d90 100644 --- a/src/devices/bus/isa/ide.h +++ b/src/devices/bus/isa/ide.h @@ -34,8 +34,8 @@ protected: private: DECLARE_WRITE_LINE_MEMBER(ide_interrupt); - READ8_MEMBER(ide16_alt_r); - WRITE8_MEMBER(ide16_alt_w); + uint8_t ide16_alt_r(); + void ide16_alt_w(uint8_t data); bool is_primary() { return m_is_primary; } void map(address_map &map); diff --git a/src/devices/bus/isa/isa.cpp b/src/devices/bus/isa/isa.cpp index 9537febc93c..ae5cacad4b0 100644 --- a/src/devices/bus/isa/isa.cpp +++ b/src/devices/bus/isa/isa.cpp @@ -152,22 +152,22 @@ device_memory_interface::space_config_vector isa16_device::memory_space_config() }; } -READ8_MEMBER(isa8_device::mem_r) +uint8_t isa8_device::mem_r(offs_t offset) { return m_memspace->read_byte(offset); } -WRITE8_MEMBER(isa8_device::mem_w) +void isa8_device::mem_w(offs_t offset, uint8_t data) { m_memspace->write_byte(offset, data); } -READ8_MEMBER(isa8_device::io_r) +uint8_t isa8_device::io_r(offs_t offset) { return m_iospace->read_byte(offset); } -WRITE8_MEMBER(isa8_device::io_w) +void isa8_device::io_w(offs_t offset, uint8_t data) { m_iospace->write_byte(offset, data); } @@ -545,27 +545,54 @@ void isa16_device::install16_device(offs_t start, offs_t end, read16_delegate rh } } -READ16_MEMBER(isa16_device::mem16_r) +void isa16_device::install16_device(offs_t start, offs_t end, read16s_delegate rhandler, write16s_delegate whandler) +{ + int buswidth = m_iowidth; + switch(buswidth) + { + case 16: + m_iospace->install_readwrite_handler(start, end, rhandler, whandler, 0); + break; + case 32: + m_iospace->install_readwrite_handler(start, end, rhandler, whandler, 0xffffffff); + if ((start % 4) == 0) { + if ((end-start)==1) { + m_iospace->install_readwrite_handler(start, end+2, rhandler, whandler, 0x0000ffff); + } else { + m_iospace->install_readwrite_handler(start, end, rhandler, whandler, 0xffffffff); + } + } else { + // we handle just misalligned by 2 + m_iospace->install_readwrite_handler(start-2, end, rhandler, whandler, 0xffff0000); + } + + break; + default: + fatalerror("ISA16: Bus width %d not supported\n", buswidth); + } +} + +uint16_t isa16_device::mem16_r(offs_t offset, uint16_t mem_mask) { return m_memspace->read_word(offset<<1, mem_mask); } -WRITE16_MEMBER(isa16_device::mem16_w) +void isa16_device::mem16_w(offs_t offset, uint16_t data, uint16_t mem_mask) { m_memspace->write_word(offset<<1, data, mem_mask); } -READ16_MEMBER(isa16_device::io16_r) +uint16_t isa16_device::io16_r(offs_t offset, uint16_t mem_mask) { return m_iospace->read_word(offset<<1, mem_mask); } -WRITE16_MEMBER(isa16_device::io16_w) +void isa16_device::io16_w(offs_t offset, uint16_t data, uint16_t mem_mask) { m_iospace->write_word(offset<<1, data, mem_mask); } -READ16_MEMBER(isa16_device::mem16_swap_r) +uint16_t isa16_device::mem16_swap_r(offs_t offset, uint16_t mem_mask) { uint16_t rv; mem_mask = (mem_mask<<8) | (mem_mask>>8); @@ -575,14 +602,14 @@ READ16_MEMBER(isa16_device::mem16_swap_r) return (rv<<8) | (rv>>8); } -WRITE16_MEMBER(isa16_device::mem16_swap_w) +void isa16_device::mem16_swap_w(offs_t offset, uint16_t data, uint16_t mem_mask) { mem_mask = (mem_mask<<8) | (mem_mask>>8); data = (data<<8) | (data>>8); m_memspace->write_word(offset<<1, data, mem_mask); } -READ16_MEMBER(isa16_device::io16_swap_r) +uint16_t isa16_device::io16_swap_r(offs_t offset, uint16_t mem_mask) { uint16_t rv; mem_mask = (mem_mask<<8) | (mem_mask>>8); @@ -592,7 +619,7 @@ READ16_MEMBER(isa16_device::io16_swap_r) return (rv<<8) | (rv>>8); } -WRITE16_MEMBER(isa16_device::io16_swap_w) +void isa16_device::io16_swap_w(offs_t offset, uint16_t data, uint16_t mem_mask) { mem_mask = (mem_mask<<8) | (mem_mask>>8); data = (data<<8) | (data>>8); diff --git a/src/devices/bus/isa/isa.h b/src/devices/bus/isa/isa.h index 4cd032a1a9e..4ff4c20b4cc 100644 --- a/src/devices/bus/isa/isa.h +++ b/src/devices/bus/isa/isa.h @@ -173,10 +173,10 @@ public: DECLARE_WRITE_LINE_MEMBER( drq3_w ); // 8 bit accessors for ISA-defined address spaces - DECLARE_READ8_MEMBER(mem_r); - DECLARE_WRITE8_MEMBER(mem_w); - DECLARE_READ8_MEMBER(io_r); - DECLARE_WRITE8_MEMBER(io_w); + uint8_t mem_r(offs_t offset); + void mem_w(offs_t offset, uint8_t data); + uint8_t io_r(offs_t offset); + void io_w(offs_t offset, uint8_t data); uint8_t dack_r(int line); void dack_w(int line, uint8_t data); @@ -313,6 +313,7 @@ public: auto drq7_callback() { return m_out_drq7_cb.bind(); } void install16_device(offs_t start, offs_t end, read16_delegate rhandler, write16_delegate whandler); + void install16_device(offs_t start, offs_t end, read16s_delegate rhandler, write16s_delegate whandler); // for ISA16, put the 16-bit configs in the primary slots and the 8-bit configs in the secondary virtual space_config_vector memory_space_config() const override; @@ -333,15 +334,15 @@ public: virtual void remap(int space_id, offs_t start, offs_t end) override; // 16 bit accessors for ISA-defined address spaces - DECLARE_READ16_MEMBER(mem16_r); - DECLARE_WRITE16_MEMBER(mem16_w); - DECLARE_READ16_MEMBER(io16_r); - DECLARE_WRITE16_MEMBER(io16_w); + uint16_t mem16_r(offs_t offset, uint16_t mem_mask = 0xffff); + void mem16_w(offs_t offset, uint16_t data, uint16_t mem_mask = 0xffff); + uint16_t io16_r(offs_t offset, uint16_t mem_mask = 0xffff); + void io16_w(offs_t offset, uint16_t data, uint16_t mem_mask = 0xffff); // byte-swapped versions of 16-bit accessors - DECLARE_READ16_MEMBER(mem16_swap_r); - DECLARE_WRITE16_MEMBER(mem16_swap_w); - DECLARE_READ16_MEMBER(io16_swap_r); - DECLARE_WRITE16_MEMBER(io16_swap_w); + uint16_t mem16_swap_r(offs_t offset, uint16_t mem_mask = 0xffff); + void mem16_swap_w(offs_t offset, uint16_t data, uint16_t mem_mask = 0xffff); + uint16_t io16_swap_r(offs_t offset, uint16_t mem_mask = 0xffff); + void io16_swap_w(offs_t offset, uint16_t data, uint16_t mem_mask = 0xffff); protected: // device-level overrides diff --git a/src/devices/bus/isa/mc1502_fdc.cpp b/src/devices/bus/isa/mc1502_fdc.cpp index 2f991d88820..e7cfd7c3f28 100644 --- a/src/devices/bus/isa/mc1502_fdc.cpp +++ b/src/devices/bus/isa/mc1502_fdc.cpp @@ -140,7 +140,7 @@ WRITE_LINE_MEMBER(mc1502_fdc_device::mc1502_fdc_irq_drq) m_isa->set_ready(CLEAR_LINE); // deassert I/O CH RDY } -READ8_MEMBER(mc1502_fdc_device::mc1502_fdc_r) +uint8_t mc1502_fdc_device::mc1502_fdc_r(offs_t offset) { uint8_t data = 0xff; @@ -160,7 +160,7 @@ READ8_MEMBER(mc1502_fdc_device::mc1502_fdc_r) return data; } -READ8_MEMBER(mc1502_fdc_device::mc1502_fdcv2_r) +uint8_t mc1502_fdc_device::mc1502_fdcv2_r(offs_t offset) { uint8_t data = 0xff; @@ -180,7 +180,7 @@ READ8_MEMBER(mc1502_fdc_device::mc1502_fdcv2_r) return data; } -WRITE8_MEMBER(mc1502_fdc_device::mc1502_fdc_w) +void mc1502_fdc_device::mc1502_fdc_w(offs_t offset, uint8_t data) { switch (offset) { @@ -215,11 +215,11 @@ void mc1502_fdc_device::device_start() // BIOS 5.0-5.2x m_isa->install_device(0x010c, 0x010f, read8sm_delegate(*m_fdc, FUNC(fd1793_device::read)), write8sm_delegate(*m_fdc, FUNC(fd1793_device::write))); - m_isa->install_device(0x0100, 0x010b, read8_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdc_r)), write8_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdc_w))); + m_isa->install_device(0x0100, 0x010b, read8sm_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdc_r)), write8sm_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdc_w))); // BIOS 5.3x m_isa->install_device(0x0048, 0x004b, read8sm_delegate(*m_fdc, FUNC(fd1793_device::read)), write8sm_delegate(*m_fdc, FUNC(fd1793_device::write))); - m_isa->install_device(0x004c, 0x004f, read8_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdcv2_r)), write8_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdc_w))); + m_isa->install_device(0x004c, 0x004f, read8sm_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdcv2_r)), write8sm_delegate(*this, FUNC(mc1502_fdc_device::mc1502_fdc_w))); motor_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(mc1502_fdc_device::motor_callback),this)); motor_on = 0; diff --git a/src/devices/bus/isa/mc1502_fdc.h b/src/devices/bus/isa/mc1502_fdc.h index c05f2bef328..50981e606d0 100644 --- a/src/devices/bus/isa/mc1502_fdc.h +++ b/src/devices/bus/isa/mc1502_fdc.h @@ -32,9 +32,9 @@ public: TIMER_CALLBACK_MEMBER(motor_callback); - DECLARE_READ8_MEMBER(mc1502_fdc_r); - DECLARE_READ8_MEMBER(mc1502_fdcv2_r); - DECLARE_WRITE8_MEMBER(mc1502_fdc_w); + uint8_t mc1502_fdc_r(offs_t offset); + uint8_t mc1502_fdcv2_r(offs_t offset); + void mc1502_fdc_w(offs_t offset, uint8_t data); protected: // device-level overrides diff --git a/src/devices/bus/isa/mcd.cpp b/src/devices/bus/isa/mcd.cpp index 69a0ca5e844..0e184f56da4 100644 --- a/src/devices/bus/isa/mcd.cpp +++ b/src/devices/bus/isa/mcd.cpp @@ -106,10 +106,11 @@ bool mcd_isa_device::read_sector(bool first) return true; } -READ8_MEMBER(mcd_isa_device::flag_r) +uint8_t mcd_isa_device::flag_r() { uint8_t ret = 0; - m_isa->irq5_w(CLEAR_LINE); + if (!machine().side_effects_disabled()) + m_isa->irq5_w(CLEAR_LINE); if(!m_buf_count || !m_data || m_dma) // if dma enabled the cpu will never not see that flag as it will be halted ret |= FLAG_NODATA; if(!m_cmdbuf_count || !m_newstat) @@ -117,19 +118,28 @@ READ8_MEMBER(mcd_isa_device::flag_r) return ret | FLAG_UNK; } -READ8_MEMBER(mcd_isa_device::data_r) +uint8_t mcd_isa_device::data_r() { if(m_cmdbuf_count) { - m_cmdbuf_count--; - return m_cmdbuf[m_cmdbuf_idx++]; + if(machine().side_effects_disabled()) + return m_cmdbuf[m_cmdbuf_idx]; + else + { + m_cmdbuf_count--; + return m_cmdbuf[m_cmdbuf_idx++]; + } } else if(m_buf_count) { - uint8_t ret = m_buf_idx < 2352 ? m_buf[m_buf_idx++] : 0; - m_buf_count--; - if(!m_buf_count) - read_sector(); + uint8_t ret = m_buf_idx < 2352 ? m_buf[m_buf_idx] : 0; + if(!machine().side_effects_disabled()) + { + m_buf_idx++; + m_buf_count--; + if(!m_buf_count) + read_sector(); + } return ret; } return m_stat; @@ -153,12 +163,12 @@ uint16_t mcd_isa_device::dack16_r(int line) return 0; } -WRITE8_MEMBER(mcd_isa_device::reset_w) +void mcd_isa_device::reset_w(uint8_t data) { reset(); } -WRITE8_MEMBER(mcd_isa_device::cmd_w) +void mcd_isa_device::cmd_w(uint8_t data) { if(m_cmdrd_count) { diff --git a/src/devices/bus/isa/mcd.h b/src/devices/bus/isa/mcd.h index 26f3a7a31d3..d5a7e8b2955 100644 --- a/src/devices/bus/isa/mcd.h +++ b/src/devices/bus/isa/mcd.h @@ -33,10 +33,10 @@ protected: virtual void device_reset() override; private: - DECLARE_READ8_MEMBER(data_r); - DECLARE_READ8_MEMBER(flag_r); - DECLARE_WRITE8_MEMBER(cmd_w); - DECLARE_WRITE8_MEMBER(reset_w); + uint8_t data_r(); + uint8_t flag_r(); + void cmd_w(uint8_t data); + void reset_w(uint8_t data); void map(address_map &map); diff --git a/src/devices/bus/isa/mda.cpp b/src/devices/bus/isa/mda.cpp index 0408d52becf..cf4a6aa3803 100644 --- a/src/devices/bus/isa/mda.cpp +++ b/src/devices/bus/isa/mda.cpp @@ -182,7 +182,7 @@ void isa8_mda_device::device_start() set_isa_device(); m_videoram.resize(0x1000); - m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_mda_device::io_read)), write8_delegate(*this, FUNC(isa8_mda_device::io_write))); + m_isa->install_device(0x3b0, 0x3bf, read8sm_delegate(*this, FUNC(isa8_mda_device::io_read)), write8sm_delegate(*this, FUNC(isa8_mda_device::io_write))); m_isa->install_bank(0xb0000, 0xb0fff, "bank_mda", &m_videoram[0]); m_isa->install_bank(0xb1000, 0xb1fff, "bank_mda", &m_videoram[0]); m_isa->install_bank(0xb2000, 0xb2fff, "bank_mda", &m_videoram[0]); @@ -424,7 +424,7 @@ WRITE_LINE_MEMBER( isa8_mda_device::vsync_changed ) /* * rW MDA mode control register (see #P138) */ -WRITE8_MEMBER( isa8_mda_device::mode_control_w ) +void isa8_mda_device::mode_control_w(uint8_t data) { m_mode_control = data; @@ -453,10 +453,11 @@ WRITE8_MEMBER( isa8_mda_device::mode_control_w ) * 2-1 reserved * 0 horizontal drive enable */ -READ8_MEMBER( isa8_mda_device::status_r ) +uint8_t isa8_mda_device::status_r() { // Faking pixel stream here - m_pixel++; + if (!machine().side_effects_disabled()) + m_pixel++; return 0xF0 | (m_pixel & 0x08) | m_hsync; } @@ -468,7 +469,7 @@ READ8_MEMBER( isa8_mda_device::status_r ) * monochrome display adapter * *************************************************************************/ -WRITE8_MEMBER( isa8_mda_device::io_write ) +void isa8_mda_device::io_write(offs_t offset, uint8_t data) { switch( offset ) { @@ -479,7 +480,7 @@ WRITE8_MEMBER( isa8_mda_device::io_write ) m_crtc->register_w(data); break; case 0x08: - mode_control_w(space, offset, data); + mode_control_w(data); break; case 0x0c: case 0x0d: case 0x0e: m_lpt->write(offset - 0x0c, data); @@ -487,7 +488,7 @@ WRITE8_MEMBER( isa8_mda_device::io_write ) } } -READ8_MEMBER( isa8_mda_device::io_read ) +uint8_t isa8_mda_device::io_read(offs_t offset) { int data = 0xff; switch( offset ) @@ -499,7 +500,7 @@ READ8_MEMBER( isa8_mda_device::io_read ) data = m_crtc->register_r(); break; case 0x0a: - data = status_r(space, offset); + data = status_r(); break; /* LPT ports */ case 0x0c: case 0x0d: case 0x0e: @@ -601,7 +602,7 @@ void isa8_hercules_device::device_start() m_videoram.resize(0x10000); set_isa_device(); - m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_hercules_device::io_read)), write8_delegate(*this, FUNC(isa8_hercules_device::io_write))); + m_isa->install_device(0x3b0, 0x3bf, read8sm_delegate(*this, FUNC(isa8_hercules_device::io_read)), write8sm_delegate(*this, FUNC(isa8_hercules_device::io_write))); m_isa->install_bank(0xb0000, 0xbffff, "bank_hercules", &m_videoram[0]); /* Initialise the mda palette */ @@ -662,7 +663,7 @@ MC6845_UPDATE_ROW( isa8_hercules_device::hercules_gfx_update_row ) } -WRITE8_MEMBER( isa8_hercules_device::mode_control_w ) +void isa8_hercules_device::mode_control_w(uint8_t data) { m_mode_control = data; @@ -687,7 +688,7 @@ WRITE8_MEMBER( isa8_hercules_device::mode_control_w ) } -WRITE8_MEMBER( isa8_hercules_device::io_write ) +void isa8_hercules_device::io_write(offs_t offset, uint8_t data) { switch( offset ) { @@ -698,7 +699,7 @@ WRITE8_MEMBER( isa8_hercules_device::io_write ) m_crtc->register_w(data); break; case 0x08: - mode_control_w(space, offset, data); + mode_control_w(data); break; case 0x0c: case 0x0d: case 0x0e: m_lpt->write(offset - 12, data); @@ -721,16 +722,17 @@ WRITE8_MEMBER( isa8_hercules_device::io_write ) * 2-1 reserved * 0 horizontal drive enable */ -READ8_MEMBER( isa8_hercules_device::status_r ) +uint8_t isa8_hercules_device::status_r() { // Faking pixel stream here - m_pixel++; + if (!machine().side_effects_disabled()) + m_pixel++; return m_vsync | ( m_pixel & 0x08 ) | m_hsync; } -READ8_MEMBER( isa8_hercules_device::io_read ) +uint8_t isa8_hercules_device::io_read(offs_t offset) { int data = 0xff; switch( offset ) @@ -742,7 +744,7 @@ READ8_MEMBER( isa8_hercules_device::io_read ) data = m_crtc->register_r(); break; case 0x0a: - data = status_r(space, offset); + data = status_r(); break; /* LPT ports */ case 0xc: case 0xd: case 0xe: @@ -943,7 +945,7 @@ MC6845_UPDATE_ROW( isa8_ec1840_0002_device::mda_lowres_text_blink_update_row ) } } -WRITE8_MEMBER( isa8_ec1840_0002_device::mode_control_w ) +void isa8_ec1840_0002_device::mode_control_w(uint8_t data) { m_mode_control = data; diff --git a/src/devices/bus/isa/mda.h b/src/devices/bus/isa/mda.h index 66d60e0493a..e16c80e8ce1 100644 --- a/src/devices/bus/isa/mda.h +++ b/src/devices/bus/isa/mda.h @@ -26,10 +26,10 @@ public: // construction/destruction isa8_mda_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(io_read); - virtual DECLARE_WRITE8_MEMBER(io_write); - virtual DECLARE_READ8_MEMBER(status_r); - virtual DECLARE_WRITE8_MEMBER(mode_control_w); + virtual uint8_t io_read(offs_t offset); + virtual void io_write(offs_t offset, uint8_t data); + virtual uint8_t status_r(); + virtual void mode_control_w(uint8_t data); DECLARE_WRITE_LINE_MEMBER(hsync_changed); DECLARE_WRITE_LINE_MEMBER(vsync_changed); @@ -83,10 +83,10 @@ public: // construction/destruction isa8_hercules_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual DECLARE_READ8_MEMBER(io_read) override; - virtual DECLARE_WRITE8_MEMBER(io_write) override; - virtual DECLARE_READ8_MEMBER(status_r) override; - virtual DECLARE_WRITE8_MEMBER(mode_control_w) override; + virtual uint8_t io_read(offs_t offset) override; + virtual void io_write(offs_t offset, uint8_t data) override; + virtual uint8_t status_r() override; + virtual void mode_control_w(uint8_t data) override; protected: // device-level overrides @@ -126,7 +126,7 @@ protected: virtual void device_add_mconfig(machine_config &config) override; private: - virtual DECLARE_WRITE8_MEMBER(mode_control_w) override; + virtual void mode_control_w(uint8_t data) override; virtual MC6845_UPDATE_ROW( crtc_update_row ) override; MC6845_UPDATE_ROW( mda_lowres_text_inten_update_row ); diff --git a/src/devices/bus/isa/myb3k_com.cpp b/src/devices/bus/isa/myb3k_com.cpp index e2d6facff40..b500d95b993 100644 --- a/src/devices/bus/isa/myb3k_com.cpp +++ b/src/devices/bus/isa/myb3k_com.cpp @@ -107,8 +107,8 @@ void isa8_myb3k_com_device::device_reset() write8sm_delegate(*m_usart, FUNC(i8251_device::write))); m_isa->install_device(base + 2, base + 2, - read8_delegate(*this, FUNC(isa8_myb3k_com_device::dce_status)), - write8_delegate(*this, FUNC(isa8_myb3k_com_device::dce_control))); + read8smo_delegate(*this, FUNC(isa8_myb3k_com_device::dce_status)), + write8smo_delegate(*this, FUNC(isa8_myb3k_com_device::dce_control))); m_isa->install_device(base + 4, base + 7, read8sm_delegate(*subdevice("pit"), FUNC(pit8253_device::read)), @@ -234,7 +234,7 @@ WRITE_LINE_MEMBER(isa8_myb3k_com_device::ri_w) // dce_control - //------------------------------------------------ #define TX_IRQ_RESET_BIT 0x40 -WRITE8_MEMBER(isa8_myb3k_com_device::dce_control) +void isa8_myb3k_com_device::dce_control(uint8_t data) { m_control = data; if (m_control & TX_IRQ_RESET_BIT) @@ -247,7 +247,7 @@ WRITE8_MEMBER(isa8_myb3k_com_device::dce_control) //------------------------------------------------ // dce_status - open LS368 gate and read status //------------------------------------------------ -READ8_MEMBER(isa8_myb3k_com_device::dce_status) +uint8_t isa8_myb3k_com_device::dce_status() { return m_status; } diff --git a/src/devices/bus/isa/myb3k_com.h b/src/devices/bus/isa/myb3k_com.h index 73f87d73b48..bdd591b5291 100644 --- a/src/devices/bus/isa/myb3k_com.h +++ b/src/devices/bus/isa/myb3k_com.h @@ -47,8 +47,8 @@ public: DECLARE_WRITE_LINE_MEMBER(com_int_tx); DECLARE_WRITE_LINE_MEMBER(dcd_w); DECLARE_WRITE_LINE_MEMBER(ri_w); - DECLARE_WRITE8_MEMBER(dce_control); - DECLARE_READ8_MEMBER(dce_status); + void dce_control(uint8_t data); + uint8_t dce_status(); protected: isa8_myb3k_com_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); diff --git a/src/devices/bus/isa/myb3k_fdc.cpp b/src/devices/bus/isa/myb3k_fdc.cpp index 90eb28c706b..dcef550db51 100644 --- a/src/devices/bus/isa/myb3k_fdc.cpp +++ b/src/devices/bus/isa/myb3k_fdc.cpp @@ -227,7 +227,7 @@ void isa8_myb3k_fdc471x_device_base::eop_w(int state) //-------------------------------------------------------- // myb3k_inv_fdc_data_r - a LS240 inverts databus for FDC //-------------------------------------------------------- -READ8_MEMBER( isa8_myb3k_fdc471x_device_base::myb3k_inv_fdc_data_r ) +uint8_t isa8_myb3k_fdc471x_device_base::myb3k_inv_fdc_data_r(offs_t offset) { uint8_t tmp = m_fdc->read(offset); LOGR("%s: %02x -> %02x\n", FUNCNAME, tmp, (~tmp) & 0xff); @@ -237,7 +237,7 @@ READ8_MEMBER( isa8_myb3k_fdc471x_device_base::myb3k_inv_fdc_data_r ) //-------------------------------------------------------- // myb3k_inv_fdc_data_w - a LS240 inverts databus for FDC //-------------------------------------------------------- -WRITE8_MEMBER( isa8_myb3k_fdc471x_device_base::myb3k_inv_fdc_data_w ) +void isa8_myb3k_fdc471x_device_base::myb3k_inv_fdc_data_w(offs_t offset, uint8_t data) { LOG("%s: %02x -> %02x\n", FUNCNAME, data, (~data) & 0xff); m_fdc->write(offset, (~data) & 0xff); @@ -247,7 +247,7 @@ WRITE8_MEMBER( isa8_myb3k_fdc471x_device_base::myb3k_inv_fdc_data_w ) // myb3k_fdc_command - descrete fdc card features //------------------------------------------------- -WRITE8_MEMBER( isa8_myb3k_fdc471x_device_base::myb3k_fdc_command ) +void isa8_myb3k_fdc471x_device_base::myb3k_fdc_command(uint8_t data) { LOG("%s: %02x\n", FUNCNAME, data); @@ -282,10 +282,10 @@ WRITE8_MEMBER( isa8_myb3k_fdc471x_device_base::myb3k_fdc_command ) m_fdc->dden_w(dden ? 0 : 1); // active low == MFM } -WRITE8_MEMBER( isa8_myb3k_fdc4712_device::myb3k_fdc_command ) +void isa8_myb3k_fdc4712_device::myb3k_fdc_command(uint8_t data) { selected_drive = data & FDC_DRIVE_SEL; - isa8_myb3k_fdc471x_device_base::myb3k_fdc_command(space, offset, data, mem_mask); + isa8_myb3k_fdc471x_device_base::myb3k_fdc_command(data); } //------------------------------------------------- @@ -293,7 +293,7 @@ WRITE8_MEMBER( isa8_myb3k_fdc4712_device::myb3k_fdc_command ) //------------------------------------------------- #define FDC_MSM_END_IR 0x01 -READ8_MEMBER( isa8_myb3k_fdc471x_device_base::myb3k_fdc_status ) +uint8_t isa8_myb3k_fdc471x_device_base::myb3k_fdc_status() { LOG("%s\n", FUNCNAME); @@ -301,9 +301,9 @@ READ8_MEMBER( isa8_myb3k_fdc471x_device_base::myb3k_fdc_status ) return 0x00; } -READ8_MEMBER( isa8_myb3k_fdc4712_device::myb3k_fdc_status ) +uint8_t isa8_myb3k_fdc4712_device::myb3k_fdc_status() { - uint8_t status = isa8_myb3k_fdc471x_device_base::myb3k_fdc_status(space, offset, mem_mask); + uint8_t status = isa8_myb3k_fdc471x_device_base::myb3k_fdc_status(); auto floppy_connector = m_floppy_connectors[selected_drive]; floppy_image_device *floppy = nullptr; diff --git a/src/devices/bus/isa/myb3k_fdc.h b/src/devices/bus/isa/myb3k_fdc.h index ccec57c7468..cb194f387eb 100644 --- a/src/devices/bus/isa/myb3k_fdc.h +++ b/src/devices/bus/isa/myb3k_fdc.h @@ -33,10 +33,10 @@ protected: virtual void dack_w(int line, uint8_t data) override; // virtual void eop_w(int state) override; - virtual DECLARE_READ8_MEMBER(myb3k_inv_fdc_data_r); - virtual DECLARE_WRITE8_MEMBER(myb3k_inv_fdc_data_w); - virtual DECLARE_READ8_MEMBER(myb3k_fdc_status); - virtual DECLARE_WRITE8_MEMBER(myb3k_fdc_command); + virtual uint8_t myb3k_inv_fdc_data_r(offs_t offset); + virtual void myb3k_inv_fdc_data_w(offs_t offset, uint8_t data); + virtual uint8_t myb3k_fdc_status(); + virtual void myb3k_fdc_command(uint8_t data); DECLARE_WRITE_LINE_MEMBER( irq_w ); DECLARE_WRITE_LINE_MEMBER( drq_w ); @@ -110,8 +110,8 @@ protected: // device-level overrides virtual void device_add_mconfig(machine_config &config) override; - virtual DECLARE_WRITE8_MEMBER(myb3k_fdc_command) override; - virtual DECLARE_READ8_MEMBER(myb3k_fdc_status) override; + virtual void myb3k_fdc_command(uint8_t data) override; + virtual uint8_t myb3k_fdc_status() override; uint8_t selected_drive; diff --git a/src/devices/bus/isa/ne1000.cpp b/src/devices/bus/isa/ne1000.cpp index d3c4f23e541..86e0f9b7afe 100644 --- a/src/devices/bus/isa/ne1000.cpp +++ b/src/devices/bus/isa/ne1000.cpp @@ -31,7 +31,7 @@ void ne1000_device::device_start() { memcpy(m_prom, mac, 6); m_dp8390->set_mac(mac); set_isa_device(); - m_isa->install_device(0x0300, 0x031f, read8_delegate(*this, FUNC(ne1000_device::ne1000_port_r)), write8_delegate(*this, FUNC(ne1000_device::ne1000_port_w))); + m_isa->install_device(0x0300, 0x031f, read8sm_delegate(*this, FUNC(ne1000_device::ne1000_port_r)), write8sm_delegate(*this, FUNC(ne1000_device::ne1000_port_w))); } void ne1000_device::device_reset() { @@ -39,7 +39,7 @@ void ne1000_device::device_reset() { m_irq = ioport("CONFIG")->read() & 3; } -READ8_MEMBER(ne1000_device::ne1000_port_r) { +uint8_t ne1000_device::ne1000_port_r(offs_t offset) { if(offset < 16) { m_dp8390->dp8390_cs(CLEAR_LINE); return m_dp8390->dp8390_r(offset); @@ -57,7 +57,7 @@ READ8_MEMBER(ne1000_device::ne1000_port_r) { return 0; } -WRITE8_MEMBER(ne1000_device::ne1000_port_w) { +void ne1000_device::ne1000_port_w(offs_t offset, uint8_t data) { if(offset < 16) { m_dp8390->dp8390_cs(CLEAR_LINE); m_dp8390->dp8390_w(offset, data); diff --git a/src/devices/bus/isa/ne1000.h b/src/devices/bus/isa/ne1000.h index 4be080b8a99..fa6011b45e1 100644 --- a/src/devices/bus/isa/ne1000.h +++ b/src/devices/bus/isa/ne1000.h @@ -16,8 +16,8 @@ class ne1000_device: public device_t, public: ne1000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8_MEMBER(ne1000_port_r); - DECLARE_WRITE8_MEMBER(ne1000_port_w); + uint8_t ne1000_port_r(offs_t offset); + void ne1000_port_w(offs_t offset, uint8_t data); protected: virtual void device_start() override; diff --git a/src/devices/bus/isa/num9rev.cpp b/src/devices/bus/isa/num9rev.cpp index 00e22a31101..07a35ee073c 100644 --- a/src/devices/bus/isa/num9rev.cpp +++ b/src/devices/bus/isa/num9rev.cpp @@ -95,12 +95,12 @@ void isa8_number_9_rev_device::device_start() set_isa_device(); m_isa->install_memory(0xc0000, 0xc0001, read8sm_delegate(*m_upd7220, FUNC(upd7220_device::read)), write8sm_delegate(*m_upd7220, FUNC(upd7220_device::write))); - m_isa->install_memory(0xc0100, 0xc03ff, read8_delegate(*this, FUNC(isa8_number_9_rev_device::pal8_r)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::pal8_w))); - m_isa->install_memory(0xc0400, 0xc0401, read8_delegate(*this, FUNC(isa8_number_9_rev_device::bank_r)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::bank_w))); - m_isa->install_memory(0xc0500, 0xc06ff, read8_delegate(*this, FUNC(isa8_number_9_rev_device::overlay_r)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::overlay_w))); - m_isa->install_memory(0xc0700, 0xc070f, read8_delegate(*this, FUNC(isa8_number_9_rev_device::ctrl_r)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::ctrl_w))); - m_isa->install_memory(0xc1000, 0xc3fff, read8_delegate(*this, FUNC(isa8_number_9_rev_device::pal12_r)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::pal12_w))); - m_isa->install_memory(0xa0000, 0xaffff, read8_delegate(*this, FUNC(isa8_number_9_rev_device::read8)), write8_delegate(*this, FUNC(isa8_number_9_rev_device::write8))); + m_isa->install_memory(0xc0100, 0xc03ff, read8sm_delegate(*this, FUNC(isa8_number_9_rev_device::pal8_r)), write8sm_delegate(*this, FUNC(isa8_number_9_rev_device::pal8_w))); + m_isa->install_memory(0xc0400, 0xc0401, read8smo_delegate(*this, FUNC(isa8_number_9_rev_device::bank_r)), write8smo_delegate(*this, FUNC(isa8_number_9_rev_device::bank_w))); + m_isa->install_memory(0xc0500, 0xc06ff, read8sm_delegate(*this, FUNC(isa8_number_9_rev_device::overlay_r)), write8sm_delegate(*this, FUNC(isa8_number_9_rev_device::overlay_w))); + m_isa->install_memory(0xc0700, 0xc070f, read8sm_delegate(*this, FUNC(isa8_number_9_rev_device::ctrl_r)), write8sm_delegate(*this, FUNC(isa8_number_9_rev_device::ctrl_w))); + m_isa->install_memory(0xc1000, 0xc3fff, read8sm_delegate(*this, FUNC(isa8_number_9_rev_device::pal12_r)), write8sm_delegate(*this, FUNC(isa8_number_9_rev_device::pal12_w))); + m_isa->install_memory(0xa0000, 0xaffff, read8sm_delegate(*this, FUNC(isa8_number_9_rev_device::read8)), write8sm_delegate(*this, FUNC(isa8_number_9_rev_device::write8))); } //------------------------------------------------- @@ -114,7 +114,7 @@ void isa8_number_9_rev_device::device_reset() m_1024 = false; } -READ8_MEMBER(isa8_number_9_rev_device::read8) +uint8_t isa8_number_9_rev_device::read8(offs_t offset) { if((m_mode & 1) && !m_1024) return m_ram[offset + ((m_mode & 0xc) << 14)]; @@ -127,7 +127,7 @@ READ8_MEMBER(isa8_number_9_rev_device::read8) return m_ram[offset + (m_bank << 16)]; } -WRITE8_MEMBER(isa8_number_9_rev_device::write8) +void isa8_number_9_rev_device::write8(offs_t offset, uint8_t data) { if(m_1024 || ((m_mode & 6) == 0)) m_ram[offset + (m_bank << 16)] = data; @@ -159,7 +159,7 @@ WRITE8_MEMBER(isa8_number_9_rev_device::write8) } } -READ8_MEMBER(isa8_number_9_rev_device::pal8_r) +uint8_t isa8_number_9_rev_device::pal8_r(offs_t offset) { offset += 0x100; palette_t *pal = m_palette->palette(); @@ -175,7 +175,7 @@ READ8_MEMBER(isa8_number_9_rev_device::pal8_r) return 0; } -WRITE8_MEMBER(isa8_number_9_rev_device::pal8_w) +void isa8_number_9_rev_device::pal8_w(offs_t offset, uint8_t data) { offset += 0x100; palette_t *pal = m_palette->palette(); @@ -195,7 +195,7 @@ WRITE8_MEMBER(isa8_number_9_rev_device::pal8_w) pal->entry_set_color(offset, pen); } -READ8_MEMBER(isa8_number_9_rev_device::pal12_r) +uint8_t isa8_number_9_rev_device::pal12_r(offs_t offset) { uint16_t color = offset & 0xfff; palette_t *pal = m_palette->palette(); @@ -211,7 +211,7 @@ READ8_MEMBER(isa8_number_9_rev_device::pal12_r) return 0; } -WRITE8_MEMBER(isa8_number_9_rev_device::pal12_w) +void isa8_number_9_rev_device::pal12_w(offs_t offset, uint8_t data) { uint16_t color = offset & 0xfff; palette_t *pal = m_palette->palette(); @@ -231,26 +231,26 @@ WRITE8_MEMBER(isa8_number_9_rev_device::pal12_w) pal->entry_set_color(color, pen); } -READ8_MEMBER(isa8_number_9_rev_device::overlay_r) +uint8_t isa8_number_9_rev_device::overlay_r(offs_t offset) { return m_overlay[offset + ((m_mode & 8) ? 512 : 0)]; } -WRITE8_MEMBER(isa8_number_9_rev_device::overlay_w) +void isa8_number_9_rev_device::overlay_w(offs_t offset, uint8_t data) { m_overlay[offset + ((m_mode & 8) ? 512 : 0)] = data; } -READ8_MEMBER(isa8_number_9_rev_device::bank_r) +uint8_t isa8_number_9_rev_device::bank_r() { return m_bank; } -WRITE8_MEMBER(isa8_number_9_rev_device::bank_w) +void isa8_number_9_rev_device::bank_w(uint8_t data) { m_bank = data & 0xf; } -READ8_MEMBER(isa8_number_9_rev_device::ctrl_r) +uint8_t isa8_number_9_rev_device::ctrl_r(offs_t offset) { switch(offset & 0xf) { @@ -272,7 +272,7 @@ READ8_MEMBER(isa8_number_9_rev_device::ctrl_r) return 0; } -WRITE8_MEMBER(isa8_number_9_rev_device::ctrl_w) +void isa8_number_9_rev_device::ctrl_w(offs_t offset, uint8_t data) { switch(offset & 0xf) { diff --git a/src/devices/bus/isa/num9rev.h b/src/devices/bus/isa/num9rev.h index 1e176f121f4..298af6d91f5 100644 --- a/src/devices/bus/isa/num9rev.h +++ b/src/devices/bus/isa/num9rev.h @@ -37,18 +37,18 @@ private: uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - DECLARE_READ8_MEMBER(pal8_r); - DECLARE_WRITE8_MEMBER(pal8_w); - DECLARE_READ8_MEMBER(pal12_r); - DECLARE_WRITE8_MEMBER(pal12_w); - DECLARE_READ8_MEMBER(overlay_r); - DECLARE_WRITE8_MEMBER(overlay_w); - DECLARE_READ8_MEMBER(bank_r); - DECLARE_WRITE8_MEMBER(bank_w); - DECLARE_READ8_MEMBER(ctrl_r); - DECLARE_WRITE8_MEMBER(ctrl_w); - DECLARE_READ8_MEMBER(read8); - DECLARE_WRITE8_MEMBER(write8); + uint8_t pal8_r(offs_t offset); + void pal8_w(offs_t offset, uint8_t data); + uint8_t pal12_r(offs_t offset); + void pal12_w(offs_t offset, uint8_t data); + uint8_t overlay_r(offs_t offset); + void overlay_w(offs_t offset, uint8_t data); + uint8_t bank_r(); + void bank_w(uint8_t data); + uint8_t ctrl_r(offs_t offset); + void ctrl_w(offs_t offset, uint8_t data); + uint8_t read8(offs_t offset); + void write8(offs_t offset, uint8_t data); void upd7220_map(address_map &map); diff --git a/src/devices/bus/isa/omti8621.cpp b/src/devices/bus/isa/omti8621.cpp index 176fa9ef192..4c6225baa9f 100644 --- a/src/devices/bus/isa/omti8621.cpp +++ b/src/devices/bus/isa/omti8621.cpp @@ -310,7 +310,7 @@ void omti8621_device::device_reset() int esdi_base = io_bases[m_iobase->read() & 7]; // install the ESDI ports - m_isa->install16_device(esdi_base, esdi_base + 7, read16_delegate(*this, FUNC(omti8621_device::read)), write16_delegate(*this, FUNC(omti8621_device::write))); + m_isa->install16_device(esdi_base, esdi_base + 7, read16s_delegate(*this, FUNC(omti8621_device::read)), write16s_delegate(*this, FUNC(omti8621_device::write))); // and the onboard AT FDC ports if (m_iobase->read() & 8) @@ -1033,16 +1033,16 @@ void omti8621_device::set_data(uint16_t data) OMTI8621 Disk Controller-AT Registers ***************************************************************************/ -WRITE16_MEMBER(omti8621_device::write) +void omti8621_device::write(offs_t offset, uint16_t data, uint16_t mem_mask) { switch (mem_mask) { case 0x00ff: - write8(space, offset*2, data, mem_mask); + write8(offset*2, data); break; case 0xff00: - write8(space, offset*2+1, data>>8, mem_mask>>8); + write8(offset*2+1, data>>8); break; default: @@ -1051,7 +1051,7 @@ WRITE16_MEMBER(omti8621_device::write) } } -WRITE8_MEMBER(omti8621_device::write8) +void omti8621_device::write8(offs_t offset, uint8_t data) { switch (offset) { @@ -1145,20 +1145,20 @@ WRITE8_MEMBER(omti8621_device::write8) } } -READ16_MEMBER(omti8621_device::read) +uint16_t omti8621_device::read(offs_t offset, uint16_t mem_mask) { switch (mem_mask) { case 0x00ff: - return read8(space, offset*2, mem_mask); + return read8(offset*2); case 0xff00: - return read8(space, offset*2+1, mem_mask >> 8) << 8; + return read8(offset*2+1) << 8; default: return get_data(); } } -READ8_MEMBER(omti8621_device::read8) +uint8_t omti8621_device::read8(offs_t offset) { uint8_t data = 0xff; static uint8_t last_data = 0xff; diff --git a/src/devices/bus/isa/omti8621.h b/src/devices/bus/isa/omti8621.h index a7a77f7c93d..d637eb57611 100644 --- a/src/devices/bus/isa/omti8621.h +++ b/src/devices/bus/isa/omti8621.h @@ -30,8 +30,8 @@ class omti_disk_image_device; class omti8621_device : public device_t, public device_isa16_card_interface { public: - DECLARE_READ16_MEMBER(read); - DECLARE_WRITE16_MEMBER(write); + uint16_t read(offs_t offset, uint16_t mem_mask = 0xffff); + void write(offs_t offset, uint16_t data, uint16_t mem_mask = 0xffff); static void set_verbose(int on_off); @@ -140,8 +140,8 @@ private: uint16_t get_data(); void set_data(uint16_t data); void set_jumper(uint16_t disk_type); - DECLARE_READ8_MEMBER(read8); - DECLARE_WRITE8_MEMBER(write8); + uint8_t read8(offs_t offset); + void write8(offs_t offset, uint8_t data); }; /* ----- omti8621 for PC device interface ----- */ diff --git a/src/devices/bus/isa/p1_fdc.cpp b/src/devices/bus/isa/p1_fdc.cpp index 822a14f1e27..c1671279b08 100644 --- a/src/devices/bus/isa/p1_fdc.cpp +++ b/src/devices/bus/isa/p1_fdc.cpp @@ -125,7 +125,7 @@ WRITE_LINE_MEMBER(p1_fdc_device::p1_fdc_irq_drq) m_isa->set_ready(CLEAR_LINE); // deassert I/O CH RDY } -READ8_MEMBER(p1_fdc_device::p1_fdc_r) +uint8_t p1_fdc_device::p1_fdc_r(offs_t offset) { uint8_t data = 0xff; @@ -142,7 +142,7 @@ READ8_MEMBER(p1_fdc_device::p1_fdc_r) return data; } -WRITE8_MEMBER(p1_fdc_device::p1_fdc_w) +void p1_fdc_device::p1_fdc_w(offs_t offset, uint8_t data) { switch (offset) { @@ -174,7 +174,7 @@ void p1_fdc_device::device_start() set_isa_device(); m_isa->install_rom(this, 0xe0000, 0xe07ff, "XXX", "p1_fdc"); m_isa->install_device(0x00c0, 0x00c3, read8sm_delegate(*m_fdc, FUNC(fd1793_device::read)), write8sm_delegate(*m_fdc, FUNC(fd1793_device::write))); - m_isa->install_device(0x00c4, 0x00c7, read8_delegate(*this, FUNC(p1_fdc_device::p1_fdc_r)), write8_delegate(*this, FUNC(p1_fdc_device::p1_fdc_w))); + m_isa->install_device(0x00c4, 0x00c7, read8sm_delegate(*this, FUNC(p1_fdc_device::p1_fdc_r)), write8sm_delegate(*this, FUNC(p1_fdc_device::p1_fdc_w))); } diff --git a/src/devices/bus/isa/p1_fdc.h b/src/devices/bus/isa/p1_fdc.h index d2c5e4605e7..c78bfce7bf7 100644 --- a/src/devices/bus/isa/p1_fdc.h +++ b/src/devices/bus/isa/p1_fdc.h @@ -30,8 +30,8 @@ public: template void set_cpu(T &&tag) { m_cpu.set_tag(std::forward(tag)); } - DECLARE_READ8_MEMBER(p1_fdc_r); - DECLARE_WRITE8_MEMBER(p1_fdc_w); + uint8_t p1_fdc_r(offs_t offset); + void p1_fdc_w(offs_t offset, uint8_t data); protected: // device-level overrides diff --git a/src/devices/bus/isa/p1_hdc.cpp b/src/devices/bus/isa/p1_hdc.cpp index 36f93811694..b9b3aad2981 100644 --- a/src/devices/bus/isa/p1_hdc.cpp +++ b/src/devices/bus/isa/p1_hdc.cpp @@ -82,7 +82,7 @@ const tiny_rom_entry *p1_hdc_device::device_rom_region() const //************************************************************************** -READ8_MEMBER(p1_hdc_device::p1_HDC_r) +uint8_t p1_hdc_device::p1_HDC_r(offs_t offset) { uint8_t data = 0x00; @@ -96,7 +96,7 @@ READ8_MEMBER(p1_hdc_device::p1_HDC_r) return data; } -WRITE8_MEMBER(p1_hdc_device::p1_HDC_w) +void p1_hdc_device::p1_HDC_w(offs_t offset, uint8_t data) { LOG("hdc W $%04x <- $%02x\n", offset, data); @@ -127,7 +127,7 @@ void p1_hdc_device::device_start() { set_isa_device(); m_isa->install_rom(this, 0xe2000, 0xe27ff, "XXX", "p1_hdc"); - m_isa->install_memory(0xd0000, 0xd0fff, read8_delegate(*this, FUNC(p1_hdc_device::p1_HDC_r)), write8_delegate(*this, FUNC(p1_hdc_device::p1_HDC_w))); + m_isa->install_memory(0xd0000, 0xd0fff, read8sm_delegate(*this, FUNC(p1_hdc_device::p1_HDC_r)), write8sm_delegate(*this, FUNC(p1_hdc_device::p1_HDC_w))); } diff --git a/src/devices/bus/isa/p1_hdc.h b/src/devices/bus/isa/p1_hdc.h index 65fbb801886..2947dba1e84 100644 --- a/src/devices/bus/isa/p1_hdc.h +++ b/src/devices/bus/isa/p1_hdc.h @@ -42,8 +42,8 @@ private: // uint8_t m_ram[0x800]; public: - DECLARE_READ8_MEMBER(p1_HDC_r); - DECLARE_WRITE8_MEMBER(p1_HDC_w); + uint8_t p1_HDC_r(offs_t offset); + void p1_HDC_w(offs_t offset, uint8_t data); }; diff --git a/src/devices/bus/isa/p1_sound.cpp b/src/devices/bus/isa/p1_sound.cpp index 0311264fb44..0a6c04bc04f 100644 --- a/src/devices/bus/isa/p1_sound.cpp +++ b/src/devices/bus/isa/p1_sound.cpp @@ -93,42 +93,42 @@ p1_sound_device::p1_sound_device(const machine_config &mconfig, const char *tag, { } -READ8_MEMBER(p1_sound_device::d14_r) +uint8_t p1_sound_device::d14_r(offs_t offset) { return m_d14->read(offset >> 1); } -WRITE8_MEMBER(p1_sound_device::d14_w) +void p1_sound_device::d14_w(offs_t offset, uint8_t data) { m_d14->write(offset >> 1, data); } -READ8_MEMBER(p1_sound_device::d16_r) +uint8_t p1_sound_device::d16_r(offs_t offset) { return m_d16->read(offset >> 1); } -WRITE8_MEMBER(p1_sound_device::d16_w) +void p1_sound_device::d16_w(offs_t offset, uint8_t data) { m_d16->write(offset >> 1, data); } -READ8_MEMBER(p1_sound_device::d17_r) +uint8_t p1_sound_device::d17_r(offs_t offset) { return m_d17->read(offset >> 1); } -WRITE8_MEMBER(p1_sound_device::d17_w) +void p1_sound_device::d17_w(offs_t offset, uint8_t data) { m_d17->write(offset >> 1, data); } -READ8_MEMBER(p1_sound_device::adc_r) +uint8_t p1_sound_device::adc_r(offs_t offset) { return 0; } -WRITE8_MEMBER(p1_sound_device::dac_w) +void p1_sound_device::dac_w(offs_t offset, uint8_t data) { // logerror("DAC write: %02x <- %02x\n", offset>>1, data); m_dac_data[offset >> 1] = data; @@ -161,8 +161,8 @@ void p1_sound_device::device_start() // EFC00 -- ADC output m_isa->install_memory(0xea000, 0xea01f, - read8_delegate(*this, FUNC(p1_sound_device::adc_r)), // XXX not really - write8_delegate(*this, FUNC(p1_sound_device::dac_w))); + read8sm_delegate(*this, FUNC(p1_sound_device::adc_r)), // XXX not really + write8sm_delegate(*this, FUNC(p1_sound_device::dac_w))); m_isa->install_memory(0xee000, 0xee000, read8smo_delegate(*m_midi, FUNC(i8251_device::data_r)), @@ -173,16 +173,16 @@ void p1_sound_device::device_start() // sync generator m_isa->install_memory(0xef000, 0xef007, - read8_delegate(*this, FUNC(p1_sound_device::d14_r)), - write8_delegate(*this, FUNC(p1_sound_device::d14_w))); + read8sm_delegate(*this, FUNC(p1_sound_device::d14_r)), + write8sm_delegate(*this, FUNC(p1_sound_device::d14_w))); // 6 music channels m_isa->install_memory(0xef400, 0xef407, - read8_delegate(*this, FUNC(p1_sound_device::d16_r)), - write8_delegate(*this, FUNC(p1_sound_device::d16_w))); + read8sm_delegate(*this, FUNC(p1_sound_device::d16_r)), + write8sm_delegate(*this, FUNC(p1_sound_device::d16_w))); m_isa->install_memory(0xef800, 0xef807, - read8_delegate(*this, FUNC(p1_sound_device::d17_r)), - write8_delegate(*this, FUNC(p1_sound_device::d17_w))); + read8sm_delegate(*this, FUNC(p1_sound_device::d17_r)), + write8sm_delegate(*this, FUNC(p1_sound_device::d17_w))); } diff --git a/src/devices/bus/isa/p1_sound.h b/src/devices/bus/isa/p1_sound.h index e0d105300ba..e4fee35d2f3 100644 --- a/src/devices/bus/isa/p1_sound.h +++ b/src/devices/bus/isa/p1_sound.h @@ -33,15 +33,15 @@ public: // construction/destruction p1_sound_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8_MEMBER(d14_r); - DECLARE_READ8_MEMBER(d16_r); - DECLARE_READ8_MEMBER(d17_r); - DECLARE_WRITE8_MEMBER(d14_w); - DECLARE_WRITE8_MEMBER(d16_w); - DECLARE_WRITE8_MEMBER(d17_w); - - DECLARE_READ8_MEMBER(adc_r); - DECLARE_WRITE8_MEMBER(dac_w); + uint8_t d14_r(offs_t offset); + uint8_t d16_r(offs_t offset); + uint8_t d17_r(offs_t offset); + void d14_w(offs_t offset, uint8_t data); + void d16_w(offs_t offset, uint8_t data); + void d17_w(offs_t offset, uint8_t data); + + uint8_t adc_r(offs_t offset); + void dac_w(offs_t offset, uint8_t data); protected: // device-level overrides diff --git a/src/devices/bus/isa/pc1640_iga.cpp b/src/devices/bus/isa/pc1640_iga.cpp index 7b7b5a89354..4c9b2719b7c 100644 --- a/src/devices/bus/isa/pc1640_iga.cpp +++ b/src/devices/bus/isa/pc1640_iga.cpp @@ -102,7 +102,7 @@ void isa8_pc1640_iga_device::device_start() m_plane[3] = m_videoram + 0x30000; m_isa->install_rom(this, 0xc0000, 0xc7fff, "ega", "iga"); - m_isa->install_device(0x3b0, 0x3bf, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_w))); - m_isa->install_device(0x3c0, 0x3cf, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_w))); - m_isa->install_device(0x3d0, 0x3df, read8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_r)), write8_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_w))); + m_isa->install_device(0x3b0, 0x3bf, read8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_r)), write8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3b0_w))); + m_isa->install_device(0x3c0, 0x3cf, read8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_r)), write8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3c0_w))); + m_isa->install_device(0x3d0, 0x3df, read8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_r)), write8sm_delegate(*this, FUNC(isa8_ega_device::pc_ega8_3d0_w))); } diff --git a/src/devices/bus/isa/pds.cpp b/src/devices/bus/isa/pds.cpp index dab0f498b63..255d0f7dbe0 100644 --- a/src/devices/bus/isa/pds.cpp +++ b/src/devices/bus/isa/pds.cpp @@ -29,14 +29,14 @@ isa8_pds_device::isa8_pds_device(const machine_config &mconfig, const char *tag, } -READ8_MEMBER(isa8_pds_device::ppi_r) +uint8_t isa8_pds_device::ppi_r(offs_t offset) { if(!(offset & 0x01)) return m_ppi->read(offset/2); return 0xff; } -WRITE8_MEMBER(isa8_pds_device::ppi_w) +void isa8_pds_device::ppi_w(offs_t offset, uint8_t data) { if(!(offset & 0x01)) m_ppi->write(offset/2,data); @@ -45,7 +45,7 @@ WRITE8_MEMBER(isa8_pds_device::ppi_w) void isa8_pds_device::device_start() { set_isa_device(); - m_isa->install_device(0x0300, 0x0307, read8_delegate(*this, FUNC(isa8_pds_device::ppi_r)), write8_delegate(*this, FUNC(isa8_pds_device::ppi_w))); + m_isa->install_device(0x0300, 0x0307, read8sm_delegate(*this, FUNC(isa8_pds_device::ppi_r)), write8sm_delegate(*this, FUNC(isa8_pds_device::ppi_w))); } void isa8_pds_device::device_reset() diff --git a/src/devices/bus/isa/pds.h b/src/devices/bus/isa/pds.h index 5e8bf16bb88..3188fdac0ad 100644 --- a/src/devices/bus/isa/pds.h +++ b/src/devices/bus/isa/pds.h @@ -19,8 +19,8 @@ class isa8_pds_device : public: isa8_pds_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8_MEMBER(ppi_r); - DECLARE_WRITE8_MEMBER(ppi_w); + uint8_t ppi_r(offs_t offset); + void ppi_w(offs_t offset, uint8_t data); protected: // device-level overrides diff --git a/src/devices/bus/isa/pgc.cpp b/src/devices/bus/isa/pgc.cpp index 4d7de335616..1366bc92dbc 100644 --- a/src/devices/bus/isa/pgc.cpp +++ b/src/devices/bus/isa/pgc.cpp @@ -273,7 +273,7 @@ IRQ_CALLBACK_MEMBER(isa8_pgc_device::irq_callback) // memory handlers -READ8_MEMBER(isa8_pgc_device::vram_r) +uint8_t isa8_pgc_device::vram_r(offs_t offset) { uint8_t ret; @@ -293,7 +293,7 @@ READ8_MEMBER(isa8_pgc_device::vram_r) * 9 - write up to 5 pixel groups, ending at offset. offset may be in the middle of pixel group. * 13 - write up to 5 pixel groups, starting at offset. */ -WRITE8_MEMBER(isa8_pgc_device::vram_w) +void isa8_pgc_device::vram_w(offs_t offset, uint8_t data) { bool handled = true; @@ -336,13 +336,13 @@ WRITE8_MEMBER(isa8_pgc_device::vram_w) handled ? "" : " (unsupported)"); } -WRITE8_MEMBER(isa8_pgc_device::accel_w) +void isa8_pgc_device::accel_w(offs_t offset, uint8_t data) { m_accel = offset >> 1; LOGV("accel @ %05x <- %02x (%d)\n", 0x32020 + offset, data, m_accel); } -READ8_MEMBER(isa8_pgc_device::stateparam_r) +uint8_t isa8_pgc_device::stateparam_r(offs_t offset) { uint8_t ret; @@ -354,7 +354,7 @@ READ8_MEMBER(isa8_pgc_device::stateparam_r) return ret; } -WRITE8_MEMBER(isa8_pgc_device::stateparam_w) +void isa8_pgc_device::stateparam_w(offs_t offset, uint8_t data) { if ((machine().debug_flags & DEBUG_FLAG_ENABLED) != 0) { @@ -363,7 +363,7 @@ WRITE8_MEMBER(isa8_pgc_device::stateparam_w) m_stateparam[offset >> 1] = data; } -WRITE8_MEMBER(isa8_pgc_device::lut_w) +void isa8_pgc_device::lut_w(offs_t offset, uint8_t data) { uint8_t o = (offset >> 1) * 3; @@ -379,17 +379,22 @@ WRITE8_MEMBER(isa8_pgc_device::lut_w) } } -READ8_MEMBER(isa8_pgc_device::init_r) +uint8_t isa8_pgc_device::init_r() { - LOG("INIT: unmapping ROM\n"); - space.unmap_read(0xf8000, 0xfffff); + if (!machine().side_effects_disabled()) + { + address_space &space = m_cpu->space(AS_PROGRAM); + + LOG("INIT: unmapping ROM\n"); + space.unmap_read(0xf8000, 0xfffff); - LOG("INIT: mapping emulator RAM\n"); - space.install_readwrite_bank(0xf8000, 0xfffff, "eram"); - membank("eram")->set_base(m_eram.get()); + LOG("INIT: mapping emulator RAM\n"); + space.install_readwrite_bank(0xf8000, 0xfffff, "eram"); + membank("eram")->set_base(m_eram.get()); - LOG("INIT: mapping LUT\n"); - space.install_write_handler(0xf8400, 0xf85ff, write8_delegate(*this, FUNC(isa8_pgc_device::lut_w))); + LOG("INIT: mapping LUT\n"); + space.install_write_handler(0xf8400, 0xf85ff, write8sm_delegate(*this, FUNC(isa8_pgc_device::lut_w))); + } return 0; // XXX ignored } diff --git a/src/devices/bus/isa/pgc.h b/src/devices/bus/isa/pgc.h index a022812cd52..b14ea6e5797 100644 --- a/src/devices/bus/isa/pgc.h +++ b/src/devices/bus/isa/pgc.h @@ -44,13 +44,13 @@ private: DECLARE_WRITE_LINE_MEMBER(vblank_irq); IRQ_CALLBACK_MEMBER(irq_callback); - DECLARE_WRITE8_MEMBER(vram_w); - DECLARE_READ8_MEMBER(vram_r); - DECLARE_WRITE8_MEMBER(stateparam_w); - DECLARE_READ8_MEMBER(stateparam_r); - DECLARE_WRITE8_MEMBER(lut_w); - DECLARE_READ8_MEMBER(init_r); - DECLARE_WRITE8_MEMBER(accel_w); + void vram_w(offs_t offset, uint8_t data); + uint8_t vram_r(offs_t offset); + void stateparam_w(offs_t offset, uint8_t data); + uint8_t stateparam_r(offs_t offset); + void lut_w(offs_t offset, uint8_t data); + uint8_t init_r(); + void accel_w(offs_t offset, uint8_t data); void reset_common(); diff --git a/src/devices/bus/isa/sb16.cpp b/src/devices/bus/isa/sb16.cpp index 8f17c5ea4a6..dce0adbcca9 100644 --- a/src/devices/bus/isa/sb16.cpp +++ b/src/devices/bus/isa/sb16.cpp @@ -14,7 +14,7 @@ DEFINE_DEVICE_TYPE(ISA16_SB16, sb16_lle_device, "sb16", "SoundBlaster 16 Audio Adapter LLE") -READ8_MEMBER( sb16_lle_device::dsp_data_r ) +uint8_t sb16_lle_device::dsp_data_r() { if(!machine().side_effects_disabled()) m_data_in = false; @@ -22,18 +22,18 @@ READ8_MEMBER( sb16_lle_device::dsp_data_r ) return m_in_byte; } -WRITE8_MEMBER( sb16_lle_device::dsp_data_w ) +void sb16_lle_device::dsp_data_w(uint8_t data) { m_data_out = true; m_out_byte = data; } -READ8_MEMBER( sb16_lle_device::dac_ctrl_r ) +uint8_t sb16_lle_device::dac_ctrl_r() { return 0; } -WRITE8_MEMBER( sb16_lle_device::dac_ctrl_w ) +void sb16_lle_device::dac_ctrl_w(uint8_t data) { /* port 0x05 * bit0 - @@ -52,12 +52,12 @@ WRITE8_MEMBER( sb16_lle_device::dac_ctrl_w ) } } -READ8_MEMBER( sb16_lle_device::adc_data_r ) +uint8_t sb16_lle_device::adc_data_r() { return 0; } -WRITE8_MEMBER( sb16_lle_device::dac_data_w ) +void sb16_lle_device::dac_data_w(uint8_t data) { m_ldac->write(data << 8); m_rdac->write(data << 8); @@ -115,25 +115,25 @@ void sb16_lle_device::control_timer(bool start) m_timer->adjust(attotime::never); } -WRITE8_MEMBER( sb16_lle_device::rate_w ) +void sb16_lle_device::rate_w(uint8_t data) { m_freq = data; if(!(m_ctrl8 & 2) || !(m_ctrl16 & 2)) control_timer(true); } -READ8_MEMBER( sb16_lle_device::dma8_r ) +uint8_t sb16_lle_device::dma8_r() { return m_dac_fifo[0].b[0]; } -WRITE8_MEMBER( sb16_lle_device::dma8_w ) +void sb16_lle_device::dma8_w(uint8_t data) { m_adc_fifo[0].b[0] = data; m_isa->drq1_w(0); } -READ8_MEMBER( sb16_lle_device::dma_stat_r ) +uint8_t sb16_lle_device::dma_stat_r() { /* port 0x06 * bit0 - 8 bit complete @@ -149,12 +149,12 @@ READ8_MEMBER( sb16_lle_device::dma_stat_r ) return ret; } -READ8_MEMBER( sb16_lle_device::ctrl8_r ) +uint8_t sb16_lle_device::ctrl8_r() { return m_ctrl8; } -WRITE8_MEMBER( sb16_lle_device::ctrl8_w ) +void sb16_lle_device::ctrl8_w(uint8_t data) { /* port 0x08 * bit0 - ? @@ -190,12 +190,12 @@ WRITE8_MEMBER( sb16_lle_device::ctrl8_w ) m_ctrl8 = data; } -READ8_MEMBER( sb16_lle_device::ctrl16_r ) +uint8_t sb16_lle_device::ctrl16_r() { return m_ctrl16; } -WRITE8_MEMBER( sb16_lle_device::ctrl16_w ) +void sb16_lle_device::ctrl16_w(uint8_t data) { /* port 0x10 * bit0 - @@ -231,12 +231,12 @@ WRITE8_MEMBER( sb16_lle_device::ctrl16_w ) m_ctrl16 = data; } -READ8_MEMBER( sb16_lle_device::dac_fifo_ctrl_r ) +uint8_t sb16_lle_device::dac_fifo_ctrl_r() { return m_dac_fifo_ctrl; } -WRITE8_MEMBER( sb16_lle_device::dac_fifo_ctrl_w ) +void sb16_lle_device::dac_fifo_ctrl_w(uint8_t data) { /* port 0x0E * bit0 - reset fifo @@ -258,12 +258,12 @@ WRITE8_MEMBER( sb16_lle_device::dac_fifo_ctrl_w ) m_dac_fifo_ctrl = data; } -READ8_MEMBER( sb16_lle_device::adc_fifo_ctrl_r ) +uint8_t sb16_lle_device::adc_fifo_ctrl_r() { return m_adc_fifo_ctrl; } -WRITE8_MEMBER( sb16_lle_device::adc_fifo_ctrl_w ) +void sb16_lle_device::adc_fifo_ctrl_w(uint8_t data) { /* port 0x16 * bit0 - reset fifo @@ -285,12 +285,12 @@ WRITE8_MEMBER( sb16_lle_device::adc_fifo_ctrl_w ) m_adc_fifo_ctrl = data; } -READ8_MEMBER( sb16_lle_device::mode_r ) +uint8_t sb16_lle_device::mode_r() { return m_mode; } -WRITE8_MEMBER( sb16_lle_device::mode_w ) +void sb16_lle_device::mode_w(uint8_t data) { /* port 0x04 * bit0 - 1 -- dac 16, adc 8; 0 -- adc 16, dac 8 @@ -305,7 +305,7 @@ WRITE8_MEMBER( sb16_lle_device::mode_w ) m_mode = data; } -READ8_MEMBER( sb16_lle_device::dma8_ready_r ) +uint8_t sb16_lle_device::dma8_ready_r() { /* port 0x0F * bit0 - @@ -320,7 +320,7 @@ READ8_MEMBER( sb16_lle_device::dma8_ready_r ) return ((m_dac_fifo_tail - m_dac_fifo_head) != 1) << 6; } -READ8_MEMBER( sb16_lle_device::adc_data_ready_r ) +uint8_t sb16_lle_device::adc_data_ready_r() { /* port 0x17 * bit0 - @@ -335,32 +335,32 @@ READ8_MEMBER( sb16_lle_device::adc_data_ready_r ) return (m_mode & 1) ? 0x80 : 0; } -READ8_MEMBER( sb16_lle_device::dma8_cnt_lo_r ) +uint8_t sb16_lle_device::dma8_cnt_lo_r() { return m_dma8_cnt & 0xff; } -READ8_MEMBER( sb16_lle_device::dma8_cnt_hi_r ) +uint8_t sb16_lle_device::dma8_cnt_hi_r() { return m_dma8_cnt >> 8; } -WRITE8_MEMBER( sb16_lle_device::dma8_len_lo_w ) +void sb16_lle_device::dma8_len_lo_w(uint8_t data) { m_dma8_len = (m_dma8_len & 0xff00) | data; } -WRITE8_MEMBER( sb16_lle_device::dma8_len_hi_w ) +void sb16_lle_device::dma8_len_hi_w(uint8_t data) { m_dma8_len = (m_dma8_len & 0xff) | (data << 8); } -WRITE8_MEMBER( sb16_lle_device::dma16_len_lo_w ) +void sb16_lle_device::dma16_len_lo_w(uint8_t data) { m_dma16_len = (m_dma16_len & 0xff00) | data; } -WRITE8_MEMBER( sb16_lle_device::dma16_len_hi_w ) +void sb16_lle_device::dma16_len_hi_w(uint8_t data) { m_dma16_len = (m_dma16_len & 0xff) | (data << 8); } @@ -404,6 +404,14 @@ void sb16_lle_device::sb16_io(address_map &map) // map(0x0082, 0x0082) } +void sb16_lle_device::host_io(address_map &map) +{ + map(0x6, 0x7).w(FUNC(sb16_lle_device::dsp_reset_w)); + map(0xa, 0xb).r(FUNC(sb16_lle_device::host_data_r)); + map(0xc, 0xd).rw(FUNC(sb16_lle_device::dsp_wbuf_status_r), FUNC(sb16_lle_device::host_cmd_w)); + map(0xe, 0xf).r(FUNC(sb16_lle_device::dsp_rbuf_status_r)); +} + const tiny_rom_entry *sb16_lle_device::device_rom_region() const { return ROM_NAME( sb16 ); @@ -432,13 +440,14 @@ void sb16_lle_device::device_add_mconfig(machine_config &config) PC_JOY(config, m_joy); } -READ8_MEMBER( sb16_lle_device::host_data_r ) +uint8_t sb16_lle_device::host_data_r() { - m_data_out = false; + if (!machine().side_effects_disabled()) + m_data_out = false; return m_out_byte; } -WRITE8_MEMBER( sb16_lle_device::host_cmd_w ) +void sb16_lle_device::host_cmd_w(uint8_t data) { m_data_in = true; m_in_byte = data; @@ -598,7 +607,7 @@ void sb16_lle_device::dack16_w(int line, uint16_t data) m_isa->drq5_w(0); } -WRITE8_MEMBER( sb16_lle_device::dsp_reset_w ) +void sb16_lle_device::dsp_reset_w(uint8_t data) { if(data & 1) { @@ -607,39 +616,34 @@ WRITE8_MEMBER( sb16_lle_device::dsp_reset_w ) } } -READ8_MEMBER( sb16_lle_device::dsp_wbuf_status_r ) +uint8_t sb16_lle_device::dsp_wbuf_status_r(offs_t offset) { if(offset) return 0xff; return m_data_in << 7; } -READ8_MEMBER( sb16_lle_device::dsp_rbuf_status_r ) +uint8_t sb16_lle_device::dsp_rbuf_status_r(offs_t offset) { if(offset) { - m_irq16 = false; - m_isa->irq5_w((m_irq8 || m_irq16 || m_irq_midi) ? ASSERT_LINE : CLEAR_LINE); + if(!machine().side_effects_disabled()) + { + m_irq16 = false; + m_isa->irq5_w((m_irq8 || m_irq16 || m_irq_midi) ? ASSERT_LINE : CLEAR_LINE); + } return 0xff; } - m_irq8 = false; - m_isa->irq5_w((m_irq8 || m_irq16 || m_irq_midi) ? ASSERT_LINE : CLEAR_LINE); + if(!machine().side_effects_disabled()) + { + m_irq8 = false; + m_isa->irq5_w((m_irq8 || m_irq16 || m_irq_midi) ? ASSERT_LINE : CLEAR_LINE); + } return m_data_out << 7; } -WRITE8_MEMBER( sb16_lle_device::invalid_w ) -{ - logerror("sb16: invalid port write\n"); -} - -READ8_MEMBER( sb16_lle_device::invalid_r ) -{ - logerror("sb16: invalid port read\n"); - return 0xff; -} - // just using the old dummy mpu401 for now -READ8_MEMBER( sb16_lle_device::mpu401_r ) +uint8_t sb16_lle_device::mpu401_r(offs_t offset) { uint8_t res; @@ -658,7 +662,7 @@ READ8_MEMBER( sb16_lle_device::mpu401_r ) return res; } -WRITE8_MEMBER( sb16_lle_device::mpu401_w ) +void sb16_lle_device::mpu401_w(offs_t offset, uint8_t data) { if(offset == 0) // data { @@ -706,11 +710,8 @@ void sb16_lle_device::device_start() set_isa_device(); m_isa->install_device(0x0200, 0x0207, read8_delegate(*subdevice("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice("pc_joy"), FUNC(pc_joy_device::joy_port_w))); - m_isa->install_device(0x0226, 0x0227, read8_delegate(*this, FUNC(sb16_lle_device::invalid_r)), write8_delegate(*this, FUNC(sb16_lle_device::dsp_reset_w))); - m_isa->install_device(0x022a, 0x022b, read8_delegate(*this, FUNC(sb16_lle_device::host_data_r)), write8_delegate(*this, FUNC(sb16_lle_device::invalid_w)) ); - m_isa->install_device(0x022c, 0x022d, read8_delegate(*this, FUNC(sb16_lle_device::dsp_wbuf_status_r)), write8_delegate(*this, FUNC(sb16_lle_device::host_cmd_w)) ); - m_isa->install_device(0x022e, 0x022f, read8_delegate(*this, FUNC(sb16_lle_device::dsp_rbuf_status_r)), write8_delegate(*this, FUNC(sb16_lle_device::invalid_w)) ); - m_isa->install_device(0x0330, 0x0331, read8_delegate(*this, FUNC(sb16_lle_device::mpu401_r)), write8_delegate(*this, FUNC(sb16_lle_device::mpu401_w))); + m_isa->install_device(0x0220, 0x022f, *this, &sb16_lle_device::host_io); + m_isa->install_device(0x0330, 0x0331, read8sm_delegate(*this, FUNC(sb16_lle_device::mpu401_r)), write8sm_delegate(*this, FUNC(sb16_lle_device::mpu401_w))); m_isa->install_device(0x0388, 0x0389, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write))); m_isa->install_device(0x0220, 0x0223, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write))); m_isa->install_device(0x0228, 0x0229, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write))); diff --git a/src/devices/bus/isa/sb16.h b/src/devices/bus/isa/sb16.h index 5bd68235afd..10587131679 100644 --- a/src/devices/bus/isa/sb16.h +++ b/src/devices/bus/isa/sb16.h @@ -39,53 +39,52 @@ protected: void dack16_w(int line, uint16_t data) override; private: - READ8_MEMBER( mpu401_r ); - WRITE8_MEMBER( mpu401_w ); + uint8_t mpu401_r(offs_t offset); + void mpu401_w(offs_t offset, uint8_t data); // mcu ports - DECLARE_READ8_MEMBER( dsp_data_r ); - DECLARE_WRITE8_MEMBER( dsp_data_w ); + uint8_t dsp_data_r(); + void dsp_data_w(uint8_t data); uint8_t p1_r(); void p1_w(uint8_t data); uint8_t p2_r(); void p2_w(uint8_t data); - DECLARE_WRITE8_MEMBER( rate_w ); - DECLARE_READ8_MEMBER( dma8_r ); - DECLARE_WRITE8_MEMBER( dma8_w ); - DECLARE_READ8_MEMBER( ctrl8_r ); - DECLARE_WRITE8_MEMBER( ctrl8_w ); - DECLARE_READ8_MEMBER( ctrl16_r ); - DECLARE_WRITE8_MEMBER( ctrl16_w ); - DECLARE_READ8_MEMBER( dac_ctrl_r ); - DECLARE_WRITE8_MEMBER( dac_ctrl_w ); - DECLARE_READ8_MEMBER( dac_fifo_ctrl_r ); - DECLARE_WRITE8_MEMBER( dac_fifo_ctrl_w ); - DECLARE_READ8_MEMBER( adc_fifo_ctrl_r ); - DECLARE_WRITE8_MEMBER( adc_fifo_ctrl_w ); - DECLARE_READ8_MEMBER( dma_stat_r ); - DECLARE_WRITE8_MEMBER( dac_data_w ); - DECLARE_READ8_MEMBER( adc_data_r ); - DECLARE_READ8_MEMBER( dma8_ready_r ); - DECLARE_READ8_MEMBER( adc_data_ready_r ); - DECLARE_READ8_MEMBER( dma8_cnt_lo_r ); - DECLARE_READ8_MEMBER( dma8_cnt_hi_r ); - DECLARE_WRITE8_MEMBER( dma8_len_lo_w ); - DECLARE_WRITE8_MEMBER( dma8_len_hi_w ); - DECLARE_WRITE8_MEMBER( dma16_len_lo_w ); - DECLARE_WRITE8_MEMBER( dma16_len_hi_w ); - DECLARE_READ8_MEMBER( mode_r ); - DECLARE_WRITE8_MEMBER( mode_w ); + void rate_w(uint8_t data); + uint8_t dma8_r(); + void dma8_w(uint8_t data); + uint8_t ctrl8_r(); + void ctrl8_w(uint8_t data); + uint8_t ctrl16_r(); + void ctrl16_w(uint8_t data); + uint8_t dac_ctrl_r(); + void dac_ctrl_w(uint8_t data); + uint8_t dac_fifo_ctrl_r(); + void dac_fifo_ctrl_w(uint8_t data); + uint8_t adc_fifo_ctrl_r(); + void adc_fifo_ctrl_w(uint8_t data); + uint8_t dma_stat_r(); + void dac_data_w(uint8_t data); + uint8_t adc_data_r(); + uint8_t dma8_ready_r(); + uint8_t adc_data_ready_r(); + uint8_t dma8_cnt_lo_r(); + uint8_t dma8_cnt_hi_r(); + void dma8_len_lo_w(uint8_t data); + void dma8_len_hi_w(uint8_t data); + void dma16_len_lo_w(uint8_t data); + void dma16_len_hi_w(uint8_t data); + uint8_t mode_r(); + void mode_w(uint8_t data); // host ports - DECLARE_READ8_MEMBER( host_data_r ); - DECLARE_WRITE8_MEMBER( host_cmd_w ); - DECLARE_WRITE8_MEMBER( dsp_reset_w ); - DECLARE_READ8_MEMBER( dsp_wbuf_status_r ); - DECLARE_READ8_MEMBER( dsp_rbuf_status_r ); - DECLARE_READ8_MEMBER( invalid_r ); - DECLARE_WRITE8_MEMBER( invalid_w ); + uint8_t host_data_r(); + void host_cmd_w(uint8_t data); + void dsp_reset_w(uint8_t data); + uint8_t dsp_wbuf_status_r(offs_t offset); + uint8_t dsp_rbuf_status_r(offs_t offset); void sb16_io(address_map &map); + void host_io(address_map &map); void control_timer(bool start); diff --git a/src/devices/bus/isa/sblaster.cpp b/src/devices/bus/isa/sblaster.cpp index 8cefe5d70eb..542985f17d6 100644 --- a/src/devices/bus/isa/sblaster.cpp +++ b/src/devices/bus/isa/sblaster.cpp @@ -77,7 +77,7 @@ static const int m_cmd_fifo_length[256] = static const int protection_magic[4] = { 0x96, 0xa5, 0x69, 0x5a }; -READ8_MEMBER( sb8_device::ym3812_16_r ) +uint8_t sb8_device::ym3812_16_r(offs_t offset) { uint8_t retVal = 0xff; switch(offset) @@ -87,7 +87,7 @@ READ8_MEMBER( sb8_device::ym3812_16_r ) return retVal; } -WRITE8_MEMBER( sb8_device::ym3812_16_w ) +void sb8_device::ym3812_16_w(offs_t offset, uint8_t data) { switch(offset) { @@ -96,17 +96,17 @@ WRITE8_MEMBER( sb8_device::ym3812_16_w ) } } -READ8_MEMBER( isa8_sblaster1_0_device::saa1099_16_r ) +uint8_t isa8_sblaster1_0_device::saa1099_16_r(offs_t offset) { return 0xff; } -WRITE8_MEMBER( isa8_sblaster1_0_device::saa1099_1_16_w ) +void isa8_sblaster1_0_device::saa1099_1_16_w(offs_t offset, uint8_t data) { m_saa1099_1->write(offset, data); } -WRITE8_MEMBER( isa8_sblaster1_0_device::saa1099_2_16_w ) +void isa8_sblaster1_0_device::saa1099_2_16_w(offs_t offset, uint8_t data) { m_saa1099_2->write(offset, data); } @@ -164,7 +164,7 @@ uint8_t sb_device::dequeue_r() } -READ8_MEMBER( sb_device::dsp_reset_r ) +uint8_t sb_device::dsp_reset_r(offs_t offset) { // printf("read DSP reset @ %x\n", offset); if(offset) @@ -173,7 +173,7 @@ READ8_MEMBER( sb_device::dsp_reset_r ) return 0xff; } -WRITE8_MEMBER( sb_device::dsp_reset_w ) +void sb_device::dsp_reset_w(offs_t offset, uint8_t data) { // printf("%02x to DSP reset @ %x\n", data, offset); if(offset) @@ -219,7 +219,7 @@ WRITE8_MEMBER( sb_device::dsp_reset_w ) //printf("%02x\n",data); } -READ8_MEMBER( sb_device::dsp_data_r ) +uint8_t sb_device::dsp_data_r(offs_t offset) { // printf("read DSP data @ %x\n", offset); if(offset) @@ -244,7 +244,7 @@ READ8_MEMBER( sb_device::dsp_data_r ) return dequeue_r(); } -WRITE8_MEMBER( sb_device::dsp_data_w ) +void sb_device::dsp_data_w(offs_t offset, uint8_t data) { // printf("%02x to DSP data @ %x\n", data, offset); if(offset) @@ -252,7 +252,7 @@ WRITE8_MEMBER( sb_device::dsp_data_w ) logerror("Soundblaster DSP data port undocumented write\n"); } -READ8_MEMBER(sb_device::dsp_rbuf_status_r) +uint8_t sb_device::dsp_rbuf_status_r(offs_t offset) { // printf("read Rbufstat @ %x\n", offset); @@ -281,7 +281,7 @@ READ8_MEMBER(sb_device::dsp_rbuf_status_r) return m_dsp.rbuf_status; } -READ8_MEMBER(sb_device::dsp_wbuf_status_r) +uint8_t sb_device::dsp_wbuf_status_r(offs_t offset) { // printf("read Wbufstat @ %x\n", offset); @@ -303,7 +303,7 @@ READ8_MEMBER(sb_device::dsp_wbuf_status_r) return m_dsp.wbuf_status; } -WRITE8_MEMBER(sb_device::dsp_rbuf_status_w) +void sb_device::dsp_rbuf_status_w(offs_t offset, uint8_t data) { // printf("%02x to Rbufstat @ %x\n", data, offset); if(offset) @@ -640,7 +640,7 @@ void sb_device::process_fifo(uint8_t cmd) } } -WRITE8_MEMBER(sb_device::dsp_cmd_w) +void sb_device::dsp_cmd_w(offs_t offset, uint8_t data) { // printf("%02x to DSP command @ %x\n", data, offset); @@ -710,7 +710,7 @@ void sb_device::adpcm_decode(uint8_t sample, int size) m_rdac->write(m_dsp.adpcm_ref << 8); } -READ8_MEMBER( sb16_device::mpu401_r ) +uint8_t sb16_device::mpu401_r(offs_t offset) { uint8_t res; @@ -744,7 +744,7 @@ READ8_MEMBER( sb16_device::mpu401_r ) return res; } -WRITE8_MEMBER( sb16_device::mpu401_w ) +void sb16_device::mpu401_w(offs_t offset, uint8_t data) { if(offset == 0) // data { @@ -824,14 +824,14 @@ void sb16_device::mixer_reset() mixer_set(); } -READ8_MEMBER( sb16_device::mixer_r ) +uint8_t sb16_device::mixer_r(offs_t offset) { if(offset == 0) return m_mixer.status; return m_mixer.data; } -WRITE8_MEMBER( sb16_device::mixer_w ) +void sb16_device::mixer_w(offs_t offset, uint8_t data) { if(offset == 0) { @@ -1257,10 +1257,10 @@ isa16_sblaster16_device::isa16_sblaster16_device(const machine_config &mconfig, void sb8_device::device_start() { m_isa->install_device(0x0200, 0x0207, read8_delegate(*subdevice("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice("pc_joy"), FUNC(pc_joy_device::joy_port_w))); - m_isa->install_device(0x0226, 0x0227, read8_delegate(*this, FUNC(sb_device::dsp_reset_r)), write8_delegate(*this, FUNC(sb_device::dsp_reset_w))); - m_isa->install_device(0x022a, 0x022b, read8_delegate(*this, FUNC(sb_device::dsp_data_r)), write8_delegate(*this, FUNC(sb_device::dsp_data_w))); - m_isa->install_device(0x022c, 0x022d, read8_delegate(*this, FUNC(sb_device::dsp_wbuf_status_r)), write8_delegate(*this, FUNC(sb_device::dsp_cmd_w))); - m_isa->install_device(0x022e, 0x022f, read8_delegate(*this, FUNC(sb_device::dsp_rbuf_status_r)), write8_delegate(*this, FUNC(sb_device::dsp_rbuf_status_w))); + m_isa->install_device(0x0226, 0x0227, read8sm_delegate(*this, FUNC(sb_device::dsp_reset_r)), write8sm_delegate(*this, FUNC(sb_device::dsp_reset_w))); + m_isa->install_device(0x022a, 0x022b, read8sm_delegate(*this, FUNC(sb_device::dsp_data_r)), write8sm_delegate(*this, FUNC(sb_device::dsp_data_w))); + m_isa->install_device(0x022c, 0x022d, read8sm_delegate(*this, FUNC(sb_device::dsp_wbuf_status_r)), write8sm_delegate(*this, FUNC(sb_device::dsp_cmd_w))); + m_isa->install_device(0x022e, 0x022f, read8sm_delegate(*this, FUNC(sb_device::dsp_rbuf_status_r)), write8sm_delegate(*this, FUNC(sb_device::dsp_rbuf_status_w))); if(m_dsp.version >= 0x0301) { ymf262_device &ymf262 = *subdevice("ymf262"); @@ -1271,8 +1271,8 @@ void sb8_device::device_start() } else { - m_isa->install_device(0x0388, 0x0389, read8_delegate(*this, FUNC(sb8_device::ym3812_16_r)), write8_delegate(*this, FUNC(sb8_device::ym3812_16_w))); - m_isa->install_device(0x0228, 0x0229, read8_delegate(*this, FUNC(sb8_device::ym3812_16_r)), write8_delegate(*this, FUNC(sb8_device::ym3812_16_w))); + m_isa->install_device(0x0388, 0x0389, read8sm_delegate(*this, FUNC(sb8_device::ym3812_16_r)), write8sm_delegate(*this, FUNC(sb8_device::ym3812_16_w))); + m_isa->install_device(0x0228, 0x0229, read8sm_delegate(*this, FUNC(sb8_device::ym3812_16_r)), write8sm_delegate(*this, FUNC(sb8_device::ym3812_16_w))); } sb_device::device_start(); @@ -1282,8 +1282,8 @@ void isa8_sblaster1_0_device::device_start() { set_isa_device(); // 1.0 always has the SAA1099s for CMS back-compatibility - m_isa->install_device(0x0220, 0x0221, read8_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_16_r)), write8_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_1_16_w))); - m_isa->install_device(0x0222, 0x0223, read8_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_16_r)), write8_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_2_16_w))); + m_isa->install_device(0x0220, 0x0221, read8sm_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_16_r)), write8sm_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_1_16_w))); + m_isa->install_device(0x0222, 0x0223, read8sm_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_16_r)), write8sm_delegate(*this, FUNC(isa8_sblaster1_0_device::saa1099_2_16_w))); m_isa->set_dma_channel(1, this, false); m_dsp.version = 0x0105; sb8_device::device_start(); @@ -1302,12 +1302,12 @@ void sb16_device::device_start() { ymf262_device &ymf262 = *subdevice("ymf262"); m_isa->install_device(0x0200, 0x0207, read8_delegate(*subdevice("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice("pc_joy"), FUNC(pc_joy_device::joy_port_w))); - m_isa->install_device(0x0226, 0x0227, read8_delegate(*this, FUNC(sb_device::dsp_reset_r)), write8_delegate(*this, FUNC(sb_device::dsp_reset_w))); - m_isa->install_device(0x022a, 0x022b, read8_delegate(*this, FUNC(sb_device::dsp_data_r)), write8_delegate(*this, FUNC(sb_device::dsp_data_w))); - m_isa->install_device(0x022c, 0x022d, read8_delegate(*this, FUNC(sb_device::dsp_wbuf_status_r)), write8_delegate(*this, FUNC(sb_device::dsp_cmd_w))); - m_isa->install_device(0x022e, 0x022f, read8_delegate(*this, FUNC(sb_device::dsp_rbuf_status_r)), write8_delegate(*this, FUNC(sb_device::dsp_rbuf_status_w))); - m_isa->install_device(0x0224, 0x0225, read8_delegate(*this, FUNC(sb16_device::mixer_r)), write8_delegate(*this, FUNC(sb16_device::mixer_w))); - m_isa->install_device(0x0330, 0x0331, read8_delegate(*this, FUNC(sb16_device::mpu401_r)), write8_delegate(*this, FUNC(sb16_device::mpu401_w))); + m_isa->install_device(0x0226, 0x0227, read8sm_delegate(*this, FUNC(sb_device::dsp_reset_r)), write8sm_delegate(*this, FUNC(sb_device::dsp_reset_w))); + m_isa->install_device(0x022a, 0x022b, read8sm_delegate(*this, FUNC(sb_device::dsp_data_r)), write8sm_delegate(*this, FUNC(sb_device::dsp_data_w))); + m_isa->install_device(0x022c, 0x022d, read8sm_delegate(*this, FUNC(sb_device::dsp_wbuf_status_r)), write8sm_delegate(*this, FUNC(sb_device::dsp_cmd_w))); + m_isa->install_device(0x022e, 0x022f, read8sm_delegate(*this, FUNC(sb_device::dsp_rbuf_status_r)), write8sm_delegate(*this, FUNC(sb_device::dsp_rbuf_status_w))); + m_isa->install_device(0x0224, 0x0225, read8sm_delegate(*this, FUNC(sb16_device::mixer_r)), write8sm_delegate(*this, FUNC(sb16_device::mixer_w))); + m_isa->install_device(0x0330, 0x0331, read8sm_delegate(*this, FUNC(sb16_device::mpu401_r)), write8sm_delegate(*this, FUNC(sb16_device::mpu401_w))); m_isa->install_device(0x0388, 0x038b, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write))); m_isa->install_device(0x0220, 0x0223, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write))); m_isa->install_device(0x0228, 0x0229, read8sm_delegate(ymf262, FUNC(ymf262_device::read)), write8sm_delegate(ymf262, FUNC(ymf262_device::write))); diff --git a/src/devices/bus/isa/sblaster.h b/src/devices/bus/isa/sblaster.h index 1517ef64308..9bc4d5e625b 100644 --- a/src/devices/bus/isa/sblaster.h +++ b/src/devices/bus/isa/sblaster.h @@ -28,14 +28,14 @@ public: void queue_r(uint8_t data); uint8_t dequeue_r(); - DECLARE_READ8_MEMBER(dsp_reset_r); - DECLARE_WRITE8_MEMBER(dsp_reset_w); - DECLARE_READ8_MEMBER(dsp_data_r); - DECLARE_WRITE8_MEMBER(dsp_data_w); - DECLARE_READ8_MEMBER(dsp_rbuf_status_r); - DECLARE_READ8_MEMBER(dsp_wbuf_status_r); - DECLARE_WRITE8_MEMBER(dsp_rbuf_status_w); - DECLARE_WRITE8_MEMBER(dsp_cmd_w); + uint8_t dsp_reset_r(offs_t offset); + void dsp_reset_w(offs_t offset, uint8_t data); + uint8_t dsp_data_r(offs_t offset); + void dsp_data_w(offs_t offset, uint8_t data); + uint8_t dsp_rbuf_status_r(offs_t offset); + uint8_t dsp_wbuf_status_r(offs_t offset); + void dsp_rbuf_status_w(offs_t offset, uint8_t data); + void dsp_cmd_w(offs_t offset, uint8_t data); DECLARE_WRITE_LINE_MEMBER( midi_rx_w ) { device_serial_interface::rx_w((uint8_t)state); } @@ -150,8 +150,8 @@ class sb8_device : public sb_device, public device_isa8_card_interface { public: - DECLARE_READ8_MEMBER(ym3812_16_r); - DECLARE_WRITE8_MEMBER(ym3812_16_w); + uint8_t ym3812_16_r(offs_t offset); + void ym3812_16_w(offs_t offset, uint8_t data); virtual ioport_constructor device_input_ports() const override; protected: // construction/destruction @@ -172,9 +172,9 @@ public: // construction/destruction isa8_sblaster1_0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8_MEMBER(saa1099_16_r); - DECLARE_WRITE8_MEMBER(saa1099_1_16_w); - DECLARE_WRITE8_MEMBER(saa1099_2_16_w); + uint8_t saa1099_16_r(offs_t offset); + void saa1099_1_16_w(offs_t offset, uint8_t data); + void saa1099_2_16_w(offs_t offset, uint8_t data); protected: // device-level overrides @@ -207,10 +207,10 @@ class sb16_device : public sb_device, public device_isa16_card_interface { public: - DECLARE_READ8_MEMBER(mpu401_r); - DECLARE_WRITE8_MEMBER(mpu401_w); - DECLARE_READ8_MEMBER(mixer_r); - DECLARE_WRITE8_MEMBER(mixer_w); + uint8_t mpu401_r(offs_t offset); + void mpu401_w(offs_t offset, uint8_t data); + uint8_t mixer_r(offs_t offset); + void mixer_w(offs_t offset, uint8_t data); virtual ioport_constructor device_input_ports() const override; protected: // construction/destruction diff --git a/src/devices/bus/isa/sc499.cpp b/src/devices/bus/isa/sc499.cpp index eaa3d7ba2c4..c313dd84148 100644 --- a/src/devices/bus/isa/sc499.cpp +++ b/src/devices/bus/isa/sc499.cpp @@ -389,7 +389,7 @@ void sc499_device::device_reset() m_irq = m_irqdrq->read() & 7; m_drq = m_irqdrq->read()>>4; - m_isa->install_device(base, base+7, read8_delegate(*this, FUNC(sc499_device::read)), write8_delegate(*this, FUNC(sc499_device::write))); + m_isa->install_device(base, base+7, read8sm_delegate(*this, FUNC(sc499_device::read)), write8sm_delegate(*this, FUNC(sc499_device::write))); m_isa->set_dma_channel(m_drq, this, true); m_installed = true; @@ -1014,7 +1014,7 @@ void sc499_device::write_dma_reset( uint8_t data) m_control = 0; } -WRITE8_MEMBER(sc499_device::write) +void sc499_device::write(offs_t offset, uint8_t data) { switch (offset) { @@ -1036,7 +1036,7 @@ WRITE8_MEMBER(sc499_device::write) } } -READ8_MEMBER(sc499_device::read) +uint8_t sc499_device::read(offs_t offset) { uint8_t data = 0xff; diff --git a/src/devices/bus/isa/sc499.h b/src/devices/bus/isa/sc499.h index 1b61b24ca3b..e62035ccb3a 100644 --- a/src/devices/bus/isa/sc499.h +++ b/src/devices/bus/isa/sc499.h @@ -91,8 +91,8 @@ private: void tape_status_set(uint16_t value); // device register I/O - DECLARE_READ8_MEMBER(read); - DECLARE_WRITE8_MEMBER(write); + uint8_t read(offs_t offset); + void write(offs_t offset, uint8_t data); void check_tape(); diff --git a/src/devices/bus/isa/side116.cpp b/src/devices/bus/isa/side116.cpp index d7c046e77de..e45d66b26bd 100644 --- a/src/devices/bus/isa/side116.cpp +++ b/src/devices/bus/isa/side116.cpp @@ -121,7 +121,7 @@ void side116_device::device_reset() // install io access if ((m_config->read() & 0x20) == 0x20) - m_isa->install_device(0x360, 0x36f, read8_delegate(*this, FUNC(side116_device::read)), write8_delegate(*this, FUNC(side116_device::write))); + m_isa->install_device(0x360, 0x36f, read8sm_delegate(*this, FUNC(side116_device::read)), write8sm_delegate(*this, FUNC(side116_device::write))); } @@ -129,7 +129,7 @@ void side116_device::device_reset() // IDE INTERFACE //************************************************************************** -READ8_MEMBER( side116_device::read ) +uint8_t side116_device::read(offs_t offset) { uint8_t data; @@ -155,7 +155,7 @@ READ8_MEMBER( side116_device::read ) return data; } -WRITE8_MEMBER( side116_device::write ) +void side116_device::write(offs_t offset, uint8_t data) { if (offset == 0) { diff --git a/src/devices/bus/isa/side116.h b/src/devices/bus/isa/side116.h index ab86eaec032..380e6206222 100644 --- a/src/devices/bus/isa/side116.h +++ b/src/devices/bus/isa/side116.h @@ -29,8 +29,8 @@ public: // construction/destruction side116_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8_MEMBER( read ); - DECLARE_WRITE8_MEMBER( write ); + uint8_t read(offs_t offset); + void write(offs_t offset, uint8_t data); protected: // device-level overrides diff --git a/src/devices/bus/isa/stereo_fx.cpp b/src/devices/bus/isa/stereo_fx.cpp index 5e34e9cb19b..3b5c8188a55 100644 --- a/src/devices/bus/isa/stereo_fx.cpp +++ b/src/devices/bus/isa/stereo_fx.cpp @@ -14,13 +14,14 @@ DEFINE_DEVICE_TYPE(ISA8_STEREO_FX, stereo_fx_device, "stereo_fx", "ATi Stereo F/X Audio Adapter") -READ8_MEMBER( stereo_fx_device::dev_dsp_data_r ) +uint8_t stereo_fx_device::dev_dsp_data_r() { - m_data_in = false; + if (!machine().side_effects_disabled()) + m_data_in = false; return m_in_byte; } -WRITE8_MEMBER( stereo_fx_device::dev_dsp_data_w ) +void stereo_fx_device::dev_dsp_data_w(uint8_t data) { m_data_out = true; m_out_byte = data; @@ -48,12 +49,12 @@ void stereo_fx_device::p3_w(uint8_t data) m_t1 = (data & 0x20) >> 5; } -WRITE8_MEMBER( stereo_fx_device::dev_host_irq_w ) +void stereo_fx_device::dev_host_irq_w(uint8_t data) { m_isa->irq5_w(1); } -WRITE8_MEMBER( stereo_fx_device::raise_drq_w ) +void stereo_fx_device::raise_drq_w(uint8_t data) { m_isa->drq1_w(1); } @@ -68,7 +69,7 @@ WRITE8_MEMBER( stereo_fx_device::raise_drq_w ) * bit6 - * bit7 - */ -WRITE8_MEMBER( stereo_fx_device::port20_w ) +void stereo_fx_device::port20_w(uint8_t data) { m_port20 = data; } @@ -83,7 +84,7 @@ WRITE8_MEMBER( stereo_fx_device::port20_w ) * bit6 - * bit7 - */ -WRITE8_MEMBER( stereo_fx_device::port00_w ) +void stereo_fx_device::port00_w(uint8_t data) { m_port00 = data; } @@ -142,13 +143,14 @@ void stereo_fx_device::device_add_mconfig(machine_config &config) PC_JOY(config, m_joy); } -READ8_MEMBER( stereo_fx_device::dsp_data_r ) +uint8_t stereo_fx_device::dsp_data_r() { - m_data_out = false; + if (!machine().side_effects_disabled()) + m_data_out = false; return m_out_byte; } -WRITE8_MEMBER( stereo_fx_device::dsp_cmd_w ) +void stereo_fx_device::dsp_cmd_w(uint8_t data) { m_data_in = true; m_in_byte = data; @@ -168,31 +170,33 @@ void stereo_fx_device::dack_w(int line, uint8_t data) m_in_byte = data; } -WRITE8_MEMBER( stereo_fx_device::dsp_reset_w ) +void stereo_fx_device::dsp_reset_w(uint8_t data) { device_reset(); m_cpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero); } -READ8_MEMBER( stereo_fx_device::dsp_wbuf_status_r ) +uint8_t stereo_fx_device::dsp_wbuf_status_r() { return m_data_in << 7; } -READ8_MEMBER( stereo_fx_device::dsp_rbuf_status_r ) +uint8_t stereo_fx_device::dsp_rbuf_status_r() { - m_isa->irq5_w(0); + if (!machine().side_effects_disabled()) + m_isa->irq5_w(0); return m_data_out << 7; } -WRITE8_MEMBER( stereo_fx_device::invalid_w ) +void stereo_fx_device::invalid_w(uint8_t data) { logerror("stereo fx: invalid port write\n"); } -READ8_MEMBER( stereo_fx_device::invalid_r ) +uint8_t stereo_fx_device::invalid_r() { - logerror("stereo fx: invalid port read\n"); + if (!machine().side_effects_disabled()) + logerror("stereo fx: invalid port read\n"); return 0xff; } @@ -211,10 +215,10 @@ void stereo_fx_device::device_start() set_isa_device(); m_isa->install_device(0x0200, 0x0207, read8_delegate(*subdevice("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice("pc_joy"), FUNC(pc_joy_device::joy_port_w))); - m_isa->install_device(0x0226, 0x0227, read8_delegate(*this, FUNC(stereo_fx_device::invalid_r)), write8_delegate(*this, FUNC(stereo_fx_device::dsp_reset_w))); - m_isa->install_device(0x022a, 0x022b, read8_delegate(*this, FUNC(stereo_fx_device::dsp_data_r)), write8_delegate(*this, FUNC(stereo_fx_device::invalid_w))); - m_isa->install_device(0x022c, 0x022d, read8_delegate(*this, FUNC(stereo_fx_device::dsp_wbuf_status_r)), write8_delegate(*this, FUNC(stereo_fx_device::dsp_cmd_w))); - m_isa->install_device(0x022e, 0x022f, read8_delegate(*this, FUNC(stereo_fx_device::dsp_rbuf_status_r)), write8_delegate(*this, FUNC(stereo_fx_device::invalid_w))); + m_isa->install_device(0x0226, 0x0227, read8smo_delegate(*this, FUNC(stereo_fx_device::invalid_r)), write8smo_delegate(*this, FUNC(stereo_fx_device::dsp_reset_w))); + m_isa->install_device(0x022a, 0x022b, read8smo_delegate(*this, FUNC(stereo_fx_device::dsp_data_r)), write8smo_delegate(*this, FUNC(stereo_fx_device::invalid_w))); + m_isa->install_device(0x022c, 0x022d, read8smo_delegate(*this, FUNC(stereo_fx_device::dsp_wbuf_status_r)), write8smo_delegate(*this, FUNC(stereo_fx_device::dsp_cmd_w))); + m_isa->install_device(0x022e, 0x022f, read8smo_delegate(*this, FUNC(stereo_fx_device::dsp_rbuf_status_r)), write8smo_delegate(*this, FUNC(stereo_fx_device::invalid_w))); m_isa->install_device(0x0388, 0x0389, read8sm_delegate(ym3812, FUNC(ym3812_device::read)), write8sm_delegate(ym3812, FUNC(ym3812_device::write))); m_isa->install_device(0x0228, 0x0229, read8sm_delegate(ym3812, FUNC(ym3812_device::read)), write8sm_delegate(ym3812, FUNC(ym3812_device::write))); m_timer = timer_alloc(); diff --git a/src/devices/bus/isa/stereo_fx.h b/src/devices/bus/isa/stereo_fx.h index 7044f80a28f..0e711d9c484 100644 --- a/src/devices/bus/isa/stereo_fx.h +++ b/src/devices/bus/isa/stereo_fx.h @@ -54,24 +54,24 @@ private: uint8_t m_t1; // mcu ports - DECLARE_READ8_MEMBER( dev_dsp_data_r ); - DECLARE_WRITE8_MEMBER( dev_dsp_data_w ); + uint8_t dev_dsp_data_r(); + void dev_dsp_data_w(uint8_t data); uint8_t p1_r(); uint8_t p3_r(); void p3_w(uint8_t data); - DECLARE_WRITE8_MEMBER( dev_host_irq_w ); - DECLARE_WRITE8_MEMBER( raise_drq_w ); - DECLARE_WRITE8_MEMBER( port20_w ); - DECLARE_WRITE8_MEMBER( port00_w ); + void dev_host_irq_w(uint8_t data); + void raise_drq_w(uint8_t data); + void port20_w(uint8_t data); + void port00_w(uint8_t data); // host ports - DECLARE_READ8_MEMBER( dsp_data_r ); - DECLARE_WRITE8_MEMBER( dsp_cmd_w ); - DECLARE_WRITE8_MEMBER( dsp_reset_w ); - DECLARE_READ8_MEMBER( dsp_wbuf_status_r ); - DECLARE_READ8_MEMBER( dsp_rbuf_status_r ); - DECLARE_READ8_MEMBER( invalid_r ); - DECLARE_WRITE8_MEMBER( invalid_w ); + uint8_t dsp_data_r(); + void dsp_cmd_w(uint8_t data); + void dsp_reset_w(uint8_t data); + uint8_t dsp_wbuf_status_r(); + uint8_t dsp_rbuf_status_r(); + uint8_t invalid_r(); + void invalid_w(uint8_t data); void stereo_fx_io(address_map &map); void stereo_fx_rom(address_map &map); diff --git a/src/devices/bus/isa/xtide.cpp b/src/devices/bus/isa/xtide.cpp index 61e67104299..92e7408b8ba 100644 --- a/src/devices/bus/isa/xtide.cpp +++ b/src/devices/bus/isa/xtide.cpp @@ -57,7 +57,7 @@ Device Control (out) 14 7 #include "xtide.h" -READ8_MEMBER( xtide_device::read ) +uint8_t xtide_device::read(offs_t offset) { uint8_t result; @@ -85,7 +85,7 @@ READ8_MEMBER( xtide_device::read ) return result; } -WRITE8_MEMBER( xtide_device::write ) +void xtide_device::write(offs_t offset, uint8_t data) { // logerror("%s xtide_device::write: offset=%d, data=%2X\n",device->machine().describe_context(),offset,data); @@ -324,7 +324,7 @@ void xtide_device::device_reset() m_irq_number = (ioport("IRQ")->read() & 0x07); m_isa->install_memory(base_address, base_address + 0x1fff, read8_delegate(*m_eeprom, FUNC(eeprom_parallel_28xx_device::read)), write8_delegate(*m_eeprom, FUNC(eeprom_parallel_28xx_device::write))); - m_isa->install_device(io_address, io_address + 0xf, read8_delegate(*this, FUNC(xtide_device::read)), write8_delegate(*this, FUNC(xtide_device::write))); + m_isa->install_device(io_address, io_address + 0xf, read8sm_delegate(*this, FUNC(xtide_device::read)), write8sm_delegate(*this, FUNC(xtide_device::write))); //logerror("xtide_device::device_reset(), bios_base=0x%5X to 0x%5X, I/O=0x%3X, IRQ=%d\n",base_address,base_address + (16*1024) -1 ,io_address,irq); } diff --git a/src/devices/bus/isa/xtide.h b/src/devices/bus/isa/xtide.h index 745def016ab..b06d39d5dbb 100644 --- a/src/devices/bus/isa/xtide.h +++ b/src/devices/bus/isa/xtide.h @@ -19,8 +19,8 @@ public: // construction/destruction xtide_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - DECLARE_READ8_MEMBER(read); - DECLARE_WRITE8_MEMBER(write); + uint8_t read(offs_t offset); + void write(offs_t offset, uint8_t data); protected: // device-level overrides diff --git a/src/mame/drivers/apollo.cpp b/src/mame/drivers/apollo.cpp index dcceb8eb6ba..8fb2137437b 100644 --- a/src/mame/drivers/apollo.cpp +++ b/src/mame/drivers/apollo.cpp @@ -529,7 +529,7 @@ READ16_MEMBER(apollo_state::apollo_atbus_io_r) uint32_t isa_addr = (offset & 3) + ((offset & ~0x1ff) >> 7); // Motorola CPU is MSB first, ISA Bus is LSB first - uint16_t data = m_isa->io16_swap_r(space, isa_addr, mem_mask); + uint16_t data = m_isa->io16_swap_r(isa_addr, mem_mask); SLOG2(("apollo_atbus_io_r at %08x -> %04x = %04x & %04x", ATBUS_IO_BASE + offset*2, isa_addr*2, data, mem_mask)); @@ -543,7 +543,7 @@ WRITE16_MEMBER(apollo_state::apollo_atbus_io_w) SLOG2(("apollo_atbus_io_w at %08x -> %04x = %04x & %04x", ATBUS_IO_BASE + offset*2, isa_addr*2, data, mem_mask)); // Motorola CPU is MSB first, ISA Bus is LSB first - m_isa->io16_swap_w(space, isa_addr, data, mem_mask); + m_isa->io16_swap_w(isa_addr, data, mem_mask); } /*************************************************************************** @@ -555,7 +555,7 @@ READ16_MEMBER(apollo_state::apollo_atbus_memory_r) uint16_t data; // Motorola CPU is MSB first, ISA Bus is LSB first - data = m_isa->mem16_swap_r(space, offset, mem_mask); + data = m_isa->mem16_swap_r(offset, mem_mask); SLOG2(("apollo_atbus_memory_r at %08x = %04x & %04x", ATBUS_MEMORY_BASE + offset * 2, data, mem_mask)); return data; @@ -566,7 +566,7 @@ WRITE16_MEMBER(apollo_state::apollo_atbus_memory_w) SLOG2(("apollo_atbus_memory_w at %08x = %04x & %04x", ATBUS_MEMORY_BASE + offset*2, data, mem_mask)); // Motorola CPU is MSB first, ISA Bus is LSB first - m_isa->mem16_swap_w(space, offset, data, mem_mask); + m_isa->mem16_swap_w(offset, data, mem_mask); } /*************************************************************************** diff --git a/src/mame/drivers/indiana.cpp b/src/mame/drivers/indiana.cpp index 3466fb936c1..94d1ec854cf 100644 --- a/src/mame/drivers/indiana.cpp +++ b/src/mame/drivers/indiana.cpp @@ -34,8 +34,8 @@ class indiana_state : public driver_device { public: indiana_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) , - m_maincpu(*this, "maincpu") + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") { } @@ -43,10 +43,13 @@ public: void init_indiana(); -private: +protected: virtual void machine_reset() override; - required_device m_maincpu; + +private: void indiana_mem(address_map &map); + + required_device m_maincpu; }; -- cgit v1.2.3