summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2020-05-31 17:07:44 -0400
committer AJR <ajrhacker@users.noreply.github.com>2020-05-31 17:07:44 -0400
commitf3c69775c9327e16f84d40d59aa72379be7ee55c (patch)
treee69e4297b622952926d9073988439db475ec35ad
parente9392e8b50b96e1d86a54d94652ad084b30d22fc (diff)
bus/isa: Simplify signatures of most handlers (nw)
sb16_lle: Add device map for host I/O (nw)
-rw-r--r--src/devices/bus/isa/3c503.cpp12
-rw-r--r--src/devices/bus/isa/3c503.h8
-rw-r--r--src/devices/bus/isa/adlib.cpp6
-rw-r--r--src/devices/bus/isa/adlib.h4
-rw-r--r--src/devices/bus/isa/aga.cpp36
-rw-r--r--src/devices/bus/isa/aga.h20
-rw-r--r--src/devices/bus/isa/aha1542c.cpp8
-rw-r--r--src/devices/bus/isa/aha1542c.h4
-rw-r--r--src/devices/bus/isa/bblue2.cpp8
-rw-r--r--src/devices/bus/isa/bblue2.h8
-rw-r--r--src/devices/bus/isa/chessmdr.cpp6
-rw-r--r--src/devices/bus/isa/chessmdr.h4
-rw-r--r--src/devices/bus/isa/chessmsr.cpp8
-rw-r--r--src/devices/bus/isa/chessmsr.h4
-rw-r--r--src/devices/bus/isa/dectalk.cpp16
-rw-r--r--src/devices/bus/isa/dectalk.h8
-rw-r--r--src/devices/bus/isa/ega.cpp42
-rw-r--r--src/devices/bus/isa/ega.h20
-rw-r--r--src/devices/bus/isa/eis_hgb107x.cpp15
-rw-r--r--src/devices/bus/isa/eis_hgb107x.h8
-rw-r--r--src/devices/bus/isa/eis_sad8852.cpp8
-rw-r--r--src/devices/bus/isa/eis_sad8852.h4
-rw-r--r--src/devices/bus/isa/eis_twib.cpp8
-rw-r--r--src/devices/bus/isa/eis_twib.h4
-rw-r--r--src/devices/bus/isa/finalchs.cpp6
-rw-r--r--src/devices/bus/isa/finalchs.h4
-rw-r--r--src/devices/bus/isa/gblaster.cpp16
-rw-r--r--src/devices/bus/isa/gblaster.h10
-rw-r--r--src/devices/bus/isa/gus.cpp107
-rw-r--r--src/devices/bus/isa/gus.h50
-rw-r--r--src/devices/bus/isa/hdc.cpp6
-rw-r--r--src/devices/bus/isa/hdc.h4
-rw-r--r--src/devices/bus/isa/ibm_mfc.cpp6
-rw-r--r--src/devices/bus/isa/ibm_mfc.h4
-rw-r--r--src/devices/bus/isa/ide.cpp4
-rw-r--r--src/devices/bus/isa/ide.h4
-rw-r--r--src/devices/bus/isa/isa.cpp51
-rw-r--r--src/devices/bus/isa/isa.h25
-rw-r--r--src/devices/bus/isa/mc1502_fdc.cpp10
-rw-r--r--src/devices/bus/isa/mc1502_fdc.h6
-rw-r--r--src/devices/bus/isa/mcd.cpp32
-rw-r--r--src/devices/bus/isa/mcd.h8
-rw-r--r--src/devices/bus/isa/mda.cpp36
-rw-r--r--src/devices/bus/isa/mda.h18
-rw-r--r--src/devices/bus/isa/myb3k_com.cpp8
-rw-r--r--src/devices/bus/isa/myb3k_com.h4
-rw-r--r--src/devices/bus/isa/myb3k_fdc.cpp16
-rw-r--r--src/devices/bus/isa/myb3k_fdc.h12
-rw-r--r--src/devices/bus/isa/ne1000.cpp6
-rw-r--r--src/devices/bus/isa/ne1000.h4
-rw-r--r--src/devices/bus/isa/num9rev.cpp36
-rw-r--r--src/devices/bus/isa/num9rev.h24
-rw-r--r--src/devices/bus/isa/omti8621.cpp18
-rw-r--r--src/devices/bus/isa/omti8621.h8
-rw-r--r--src/devices/bus/isa/p1_fdc.cpp6
-rw-r--r--src/devices/bus/isa/p1_fdc.h4
-rw-r--r--src/devices/bus/isa/p1_hdc.cpp6
-rw-r--r--src/devices/bus/isa/p1_hdc.h4
-rw-r--r--src/devices/bus/isa/p1_sound.cpp32
-rw-r--r--src/devices/bus/isa/p1_sound.h18
-rw-r--r--src/devices/bus/isa/pc1640_iga.cpp6
-rw-r--r--src/devices/bus/isa/pds.cpp6
-rw-r--r--src/devices/bus/isa/pds.h4
-rw-r--r--src/devices/bus/isa/pgc.cpp33
-rw-r--r--src/devices/bus/isa/pgc.h14
-rw-r--r--src/devices/bus/isa/sb16.cpp113
-rw-r--r--src/devices/bus/isa/sb16.h73
-rw-r--r--src/devices/bus/isa/sblaster.cpp62
-rw-r--r--src/devices/bus/isa/sblaster.h34
-rw-r--r--src/devices/bus/isa/sc499.cpp6
-rw-r--r--src/devices/bus/isa/sc499.h4
-rw-r--r--src/devices/bus/isa/side116.cpp6
-rw-r--r--src/devices/bus/isa/side116.h4
-rw-r--r--src/devices/bus/isa/stereo_fx.cpp46
-rw-r--r--src/devices/bus/isa/stereo_fx.h26
-rw-r--r--src/devices/bus/isa/xtide.cpp6
-rw-r--r--src/devices/bus/isa/xtide.h4
-rw-r--r--src/mame/drivers/apollo.cpp8
-rw-r--r--src/mame/drivers/indiana.cpp11
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<uint8_t[]>(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<uint8_t[]>(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<uint8_t[]> 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<xt_hdc_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<pit8253_device>("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 <typename T>
void set_cpu(T &&tag) { m_cpu.set_tag(std::forward<T>(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_device>("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice<pc_joy_device>("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_device>("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice<pc_joy_device>("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_device>("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_device>("ymf262");
m_isa->install_device(0x0200, 0x0207, read8_delegate(*subdevice<pc_joy_device>("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice<pc_joy_device>("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_device>("pc_joy"), FUNC(pc_joy_device::joy_port_r)), write8_delegate(*subdevice<pc_joy_device>("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<cpu_device> m_maincpu;
+
+private:
void indiana_mem(address_map &map);
+
+ required_device<cpu_device> m_maincpu;
};