summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices
diff options
context:
space:
mode:
author cam900 <dbtlrchl@naver.com>2019-02-15 16:04:20 +0900
committer cam900 <dbtlrchl@naver.com>2019-02-15 16:04:20 +0900
commitc7b8147628e2e403ef3c16b67ebb8394dc11f576 (patch)
tree7d43341486b9a92eedfe34b0f852347075af7eac /src/devices
parent98657cf5d35d6a6141e8aac539e46d4389c3dd3b (diff)
ay8910.cpp : Updates
Use shorter / correct type values, Remove unnecessary arguments in handlers, Duplicates device/bus/coco/cococart.cpp : Allow various types of delegates for install handler 5clown.cpp : Remove unnecessary arguments in some handler kchamp.cpp : Remove unnecessary arguments in some handler
Diffstat (limited to 'src/devices')
-rw-r--r--src/devices/bus/a2bus/a2arcadebd.cpp6
-rw-r--r--src/devices/bus/a2bus/a2mockingboard.cpp50
-rw-r--r--src/devices/bus/a2bus/ssprite.cpp6
-rw-r--r--src/devices/bus/cbus/pc9801_amd98.cpp16
-rw-r--r--src/devices/bus/coco/coco_ssc.cpp6
-rw-r--r--src/devices/bus/coco/cococart.cpp34
-rw-r--r--src/devices/bus/coco/cococart.h32
-rw-r--r--src/devices/bus/coco/dragon_jcbsnd.cpp4
-rw-r--r--src/devices/bus/cpc/playcity.cpp12
-rw-r--r--src/devices/bus/intv/ecs.cpp4
-rw-r--r--src/devices/bus/nes/sunsoft.cpp4
-rw-r--r--src/devices/bus/spectrum/fuller.cpp4
-rw-r--r--src/devices/bus/spectrum/melodik.cpp4
-rw-r--r--src/devices/sound/ay8910.cpp79
-rw-r--r--src/devices/sound/ay8910.h86
15 files changed, 166 insertions, 181 deletions
diff --git a/src/devices/bus/a2bus/a2arcadebd.cpp b/src/devices/bus/a2bus/a2arcadebd.cpp
index 4bdd0a6911b..169971ea3e5 100644
--- a/src/devices/bus/a2bus/a2arcadebd.cpp
+++ b/src/devices/bus/a2bus/a2arcadebd.cpp
@@ -97,7 +97,7 @@ uint8_t a2bus_arcboard_device::read_c0nx(uint8_t offset)
return m_tms->register_read();
case 6:
- return m_ay->read_data();
+ return m_ay->data_r();
}
return 0xff;
@@ -118,11 +118,11 @@ void a2bus_arcboard_device::write_c0nx(uint8_t offset, uint8_t data)
break;
case 5:
- m_ay->write_address(data);
+ m_ay->address_w(data);
break;
case 6:
- m_ay->write_data(data);
+ m_ay->data_w(data);
break;
}
}
diff --git a/src/devices/bus/a2bus/a2mockingboard.cpp b/src/devices/bus/a2bus/a2mockingboard.cpp
index c1d67bfa7d3..c4c45b6975b 100644
--- a/src/devices/bus/a2bus/a2mockingboard.cpp
+++ b/src/devices/bus/a2bus/a2mockingboard.cpp
@@ -238,7 +238,7 @@ WRITE8_MEMBER( a2bus_ayboard_device::via1_out_b )
{
if (!BIT(data, 2))
{
- m_ay1->reset_w(space, 0, 0);
+ m_ay1->reset_w();
}
else
{
@@ -248,15 +248,15 @@ WRITE8_MEMBER( a2bus_ayboard_device::via1_out_b )
break;
case 1: // BDIR=0, BC1=1 (read PSG)
- m_porta1 = m_ay1->read_data();
+ m_porta1 = m_ay1->data_r();
break;
case 2: // BDIR=1, BC1=0 (write PSG)
- m_ay1->write_data(m_porta1);
+ m_ay1->data_w(m_porta1);
break;
case 3: // BDIR=1, BC1=1 (latch)
- m_ay1->write_address(m_porta1);
+ m_ay1->address_w(m_porta1);
break;
}
}
@@ -266,10 +266,10 @@ WRITE8_MEMBER( a2bus_phasor_device::via1_out_b )
{
if (!(data & 4))
{
- m_ay1->reset_w(space, 0, 0);
+ m_ay1->reset_w();
if (m_native)
{
- m_ay2->reset_w(space, 0, 0);
+ m_ay2->reset_w();
}
}
else
@@ -289,23 +289,23 @@ WRITE8_MEMBER( a2bus_phasor_device::via1_out_b )
case 1: // BDIR=0, BC1=1 (read PSG)
if (BIT(chip_sel, 0))
- m_porta1 = m_ay1->read_data();
+ m_porta1 = m_ay1->data_r();
if (BIT(chip_sel, 1))
- m_porta1 = m_ay2->read_data();
+ m_porta1 = m_ay2->data_r();
break;
case 2: // BDIR=1, BC1=0 (write PSG)
if (BIT(chip_sel, 0))
- m_ay1->write_data(m_porta1);
+ m_ay1->data_w(m_porta1);
if (BIT(chip_sel, 1))
- m_ay2->write_data(m_porta1);
+ m_ay2->data_w(m_porta1);
break;
case 3: // BDIR=1, BC1=1 (latch)
if (BIT(chip_sel, 0))
- m_ay1->write_address(m_porta1);
+ m_ay1->address_w(m_porta1);
if (BIT(chip_sel, 1))
- m_ay2->write_address(m_porta1);
+ m_ay2->address_w(m_porta1);
break;
}
}
@@ -320,7 +320,7 @@ WRITE8_MEMBER( a2bus_ayboard_device::via2_out_b )
{
if (!BIT(data, 2))
{
- m_ay2->reset_w(space, 0, 0);
+ m_ay2->reset_w();
}
else
{
@@ -330,15 +330,15 @@ WRITE8_MEMBER( a2bus_ayboard_device::via2_out_b )
break;
case 1: // BDIR=0, BC1=1 (read PSG)
- m_porta2 = m_ay2->read_data();
+ m_porta2 = m_ay2->data_r();
break;
case 2: // BDIR=1, BC1=0 (write PSG)
- m_ay2->write_data(m_porta2);
+ m_ay2->data_w(m_porta2);
break;
case 3: // BDIR=1, BC1=1 (latch)
- m_ay2->write_data(m_porta2);
+ m_ay2->data_w(m_porta2);
break;
}
}
@@ -350,12 +350,12 @@ WRITE8_MEMBER( a2bus_phasor_device::via2_out_b )
{
if (m_native)
{
- m_ay3->reset_w(space, 0, 0);
- m_ay4->reset_w(space, 0, 0);
+ m_ay3->reset_w();
+ m_ay4->reset_w();
}
else
{
- m_ay2->reset_w(space, 0, 0);
+ m_ay2->reset_w();
}
}
else
@@ -375,23 +375,23 @@ WRITE8_MEMBER( a2bus_phasor_device::via2_out_b )
case 1: // BDIR=0, BC1=1 (read PSG)
if (BIT(chip_sel, 0))
- m_porta2 = m_ay3->read_data();
+ m_porta2 = m_ay3->data_r();
if (BIT(chip_sel, 1))
- m_porta2 = m_ay4->read_data();
+ m_porta2 = m_ay4->data_r();
break;
case 2: // BDIR=1, BC1=0 (write PSG)
if (BIT(chip_sel, 0))
- m_ay3->write_data(m_porta2);
+ m_ay3->data_w(m_porta2);
if (BIT(chip_sel, 1))
- m_ay4->write_data(m_porta2);
+ m_ay4->data_w(m_porta2);
break;
case 3: // BDIR=1, BC1=1 (latch)
if (BIT(chip_sel, 0))
- m_ay3->write_address(m_porta2);
+ m_ay3->address_w(m_porta2);
if (BIT(chip_sel, 1))
- m_ay4->write_address(m_porta2);
+ m_ay4->address_w(m_porta2);
break;
}
}
diff --git a/src/devices/bus/a2bus/ssprite.cpp b/src/devices/bus/a2bus/ssprite.cpp
index 818bde14b89..69e12dc98dd 100644
--- a/src/devices/bus/a2bus/ssprite.cpp
+++ b/src/devices/bus/a2bus/ssprite.cpp
@@ -104,7 +104,7 @@ uint8_t a2bus_ssprite_device::read_c0nx(uint8_t offset)
return 0x1f | m_tms5220->status_r();
case 14:
case 15:
- return m_ay->read_data();
+ return m_ay->data_r();
}
return 0xff;
@@ -125,11 +125,11 @@ void a2bus_ssprite_device::write_c0nx(uint8_t offset, uint8_t data)
break;
case 12:
case 13:
- m_ay->write_data(data);
+ m_ay->data_w(data);
break;
case 14:
case 15:
- m_ay->write_address(data);
+ m_ay->address_w(data);
break;
}
}
diff --git a/src/devices/bus/cbus/pc9801_amd98.cpp b/src/devices/bus/cbus/pc9801_amd98.cpp
index f7207aabd21..ca7b32e7b4e 100644
--- a/src/devices/bus/cbus/pc9801_amd98.cpp
+++ b/src/devices/bus/cbus/pc9801_amd98.cpp
@@ -149,9 +149,9 @@ READ8_MEMBER(pc9801_amd98_device::read)
switch(offset)
{
case 2:
- return m_ay1->data_r(space,0);
+ return m_ay1->data_r();
case 3:
- return m_ay2->data_r(space,0);
+ return m_ay2->data_r();
}
printf("%02x\n",offset);
@@ -164,16 +164,16 @@ WRITE8_MEMBER(pc9801_amd98_device::write)
switch(offset)
{
case 0:
- m_ay1->address_w(space,0,data);
+ m_ay1->address_w(data);
break;
case 1:
- m_ay2->address_w(space,0,data);
+ m_ay2->address_w(data);
break;
case 2:
- m_ay1->data_w(space,0,data);
+ m_ay1->data_w(data);
break;
case 3:
- m_ay2->data_w(space,0,data);
+ m_ay2->data_w(data);
break;
default:
printf("%02x %02x\n",offset,data);
@@ -192,11 +192,11 @@ WRITE8_MEMBER(pc9801_amd98_device::ay3_data_latch_w)
{
case 0x47:
//printf("%02x addr\n",m_ay3_latch);
- m_ay3->address_w(space,0,m_ay3_latch);
+ m_ay3->address_w(m_ay3_latch);
break;
case 0x43:
//printf("%02x data\n",m_ay3_latch);
- m_ay3->data_w(space,0,m_ay3_latch);
+ m_ay3->data_w(m_ay3_latch);
break;
}
}
diff --git a/src/devices/bus/coco/coco_ssc.cpp b/src/devices/bus/coco/coco_ssc.cpp
index d9546f61553..6dcd34a8f03 100644
--- a/src/devices/bus/coco/coco_ssc.cpp
+++ b/src/devices/bus/coco/coco_ssc.cpp
@@ -438,12 +438,12 @@ WRITE8_MEMBER(coco_ssc_device::ssc_port_c_w)
{
if( (data & (C_BDR|C_BC1)) == (C_BDR|C_BC1) ) /* BDIR = 1, BC1 = 1: latch address */
{
- m_ay->address_w(space, 0, m_tms7000_portd);
+ m_ay->address_w(m_tms7000_portd);
}
if( ((data & C_BDR) == C_BDR) && ((data & C_BC1) == 0) ) /* BDIR = 1, BC1 = 0: write data */
{
- m_ay->data_w(space, 0, m_tms7000_portd);
+ m_ay->data_w(m_tms7000_portd);
}
}
@@ -493,7 +493,7 @@ READ8_MEMBER(coco_ssc_device::ssc_port_d_r)
{
if( ((m_tms7000_portc & C_BDR) == 0) && ((m_tms7000_portc & C_BC1) == C_BC1) ) /* psg read data */
{
- m_tms7000_portd = m_ay->data_r(space, 0);
+ m_tms7000_portd = m_ay->data_r();
}
}
diff --git a/src/devices/bus/coco/cococart.cpp b/src/devices/bus/coco/cococart.cpp
index 2c009aa8724..93045e85230 100644
--- a/src/devices/bus/coco/cococart.cpp
+++ b/src/devices/bus/coco/cococart.cpp
@@ -597,40 +597,6 @@ address_space &device_cococart_interface::cartridge_space()
//-------------------------------------------------
-// install_read_handler
-//-------------------------------------------------
-
-void device_cococart_interface::install_read_handler(uint16_t addrstart, uint16_t addrend, read8_delegate rhandler)
-{
- address_space &space(cartridge_space());
- space.install_read_handler(addrstart, addrend, rhandler);
-}
-
-
-//-------------------------------------------------
-// install_write_handler
-//-------------------------------------------------
-
-void device_cococart_interface::install_write_handler(uint16_t addrstart, uint16_t addrend, write8_delegate whandler)
-{
- address_space &space(cartridge_space());
- space.install_write_handler(addrstart, addrend, whandler);
-}
-
-
-//-------------------------------------------------
-// install_readwrite_handler
-//-------------------------------------------------
-
-void device_cococart_interface::install_readwrite_handler(uint16_t addrstart, uint16_t addrend, read8_delegate rhandler, write8_delegate whandler)
-{
- address_space &space(cartridge_space());
- space.install_read_handler(addrstart, addrend, rhandler);
- space.install_write_handler(addrstart, addrend, whandler);
-}
-
-
-//-------------------------------------------------
// set_line_value
//-------------------------------------------------
diff --git a/src/devices/bus/coco/cococart.h b/src/devices/bus/coco/cococart.h
index 3eb6f2874c1..cae4f333529 100644
--- a/src/devices/bus/coco/cococart.h
+++ b/src/devices/bus/coco/cococart.h
@@ -187,9 +187,35 @@ protected:
// cartridges (e.g. - Orch-90, Multi-Pak interface) for their control registers, independently
// of the SCS or CTS lines
address_space &cartridge_space();
- void install_read_handler(uint16_t addrstart, uint16_t addrend, read8_delegate rhandler);
- void install_write_handler(uint16_t addrstart, uint16_t addrend, write8_delegate whandler);
- void install_readwrite_handler(uint16_t addrstart, uint16_t addrend, read8_delegate rhandler, write8_delegate whandler);
+ template<typename R> void install_read_handler(u16 addrstart, u16 addrend, R rhandler)
+ {
+ address_space &space(cartridge_space());
+ space.install_read_handler(addrstart, addrend, rhandler);
+ }
+ template<typename W> void install_write_handler(u16 addrstart, u16 addrend, W whandler)
+ {
+ address_space &space(cartridge_space());
+ space.install_write_handler(addrstart, addrend, whandler);
+ }
+ template<typename R, typename W> void install_readwrite_handler(u16 addrstart, u16 addrend, R rhandler, W whandler)
+ {
+ address_space &space(cartridge_space());
+ space.install_read_handler(addrstart, addrend, rhandler);
+ space.install_write_handler(addrstart, addrend, whandler);
+ }
+
+ void install_read_handler(u16 addrstart, u16 addrend, read8_delegate rhandler) { install_read_handler<read8_delegate>(addrstart, addrend, rhandler); }
+ void install_write_handler(u16 addrstart, u16 addrend, write8_delegate whandler) { install_write_handler<write8_delegate>(addrstart, addrend, whandler); }
+ void install_read_handler(u16 addrstart, u16 addrend, read8m_delegate rhandler) { install_read_handler<read8m_delegate>(addrstart, addrend, rhandler); }
+ void install_write_handler(u16 addrstart, u16 addrend, write8m_delegate whandler) { install_write_handler<write8m_delegate>(addrstart, addrend, whandler); }
+ void install_read_handler(u16 addrstart, u16 addrend, read8s_delegate rhandler) { install_read_handler<read8s_delegate>(addrstart, addrend, rhandler); }
+ void install_write_handler(u16 addrstart, u16 addrend, write8s_delegate whandler) { install_write_handler<write8s_delegate>(addrstart, addrend, whandler); }
+ void install_read_handler(u16 addrstart, u16 addrend, read8sm_delegate rhandler) { install_read_handler<read8sm_delegate>(addrstart, addrend, rhandler); }
+ void install_write_handler(u16 addrstart, u16 addrend, write8sm_delegate whandler) { install_write_handler<write8sm_delegate>(addrstart, addrend, whandler); }
+ void install_read_handler(u16 addrstart, u16 addrend, read8mo_delegate rhandler) { install_read_handler<read8mo_delegate>(addrstart, addrend, rhandler); }
+ void install_write_handler(u16 addrstart, u16 addrend, write8mo_delegate whandler) { install_write_handler<write8mo_delegate>(addrstart, addrend, whandler); }
+ void install_read_handler(u16 addrstart, u16 addrend, read8smo_delegate rhandler) { install_read_handler<read8smo_delegate>(addrstart, addrend, rhandler); }
+ void install_write_handler(u16 addrstart, u16 addrend, write8smo_delegate whandler) { install_write_handler<write8smo_delegate>(addrstart, addrend, whandler); }
// setting line values
void set_line_value(cococart_slot_device::line line, cococart_slot_device::line_value value);
diff --git a/src/devices/bus/coco/dragon_jcbsnd.cpp b/src/devices/bus/coco/dragon_jcbsnd.cpp
index e24a9e08d3e..efb2bc42a62 100644
--- a/src/devices/bus/coco/dragon_jcbsnd.cpp
+++ b/src/devices/bus/coco/dragon_jcbsnd.cpp
@@ -53,8 +53,8 @@ dragon_jcbsnd_device::dragon_jcbsnd_device(const machine_config &mconfig, const
void dragon_jcbsnd_device::device_start()
{
- install_write_handler(0xfefe, 0xfefe, write8_delegate(FUNC(ay8910_device::address_w), (ay8910_device *)m_ay8910));
- install_readwrite_handler(0xfeff, 0xfeff, read8_delegate(FUNC(ay8910_device::data_r), (ay8910_device *)m_ay8910), write8_delegate(FUNC(ay8910_device::data_w), (ay8910_device *)m_ay8910));
+ install_write_handler(0xfefe, 0xfefe, write8smo_delegate(FUNC(ay8910_device::address_w), (ay8910_device *)m_ay8910));
+ install_readwrite_handler(0xfeff, 0xfeff, read8smo_delegate(FUNC(ay8910_device::data_r), (ay8910_device *)m_ay8910), write8smo_delegate(FUNC(ay8910_device::data_w), (ay8910_device *)m_ay8910));
set_line_value(line::CART, line_value::Q);
}
diff --git a/src/devices/bus/cpc/playcity.cpp b/src/devices/bus/cpc/playcity.cpp
index f9d225ef7b6..1e6f3b0cfa6 100644
--- a/src/devices/bus/cpc/playcity.cpp
+++ b/src/devices/bus/cpc/playcity.cpp
@@ -99,32 +99,32 @@ WRITE8_MEMBER(cpc_playcity_device::ctc_w)
WRITE8_MEMBER(cpc_playcity_device::ymz1_address_w)
{
- m_ymz1->address_w(space,offset,data);
+ m_ymz1->address_w(data);
}
WRITE8_MEMBER(cpc_playcity_device::ymz2_address_w)
{
- m_ymz2->address_w(space,offset,data);
+ m_ymz2->address_w(data);
}
WRITE8_MEMBER(cpc_playcity_device::ymz1_data_w)
{
- m_ymz1->data_w(space,offset,data);
+ m_ymz1->data_w(data);
}
WRITE8_MEMBER(cpc_playcity_device::ymz2_data_w)
{
- m_ymz2->data_w(space,offset,data);
+ m_ymz2->data_w(data);
}
READ8_MEMBER(cpc_playcity_device::ymz1_data_r)
{
- return m_ymz1->data_r(space,offset);
+ return m_ymz1->data_r();
}
READ8_MEMBER(cpc_playcity_device::ymz2_data_r)
{
- return m_ymz2->data_r(space,offset);
+ return m_ymz2->data_r();
}
void cpc_playcity_device::update_ymz_clock()
diff --git a/src/devices/bus/intv/ecs.cpp b/src/devices/bus/intv/ecs.cpp
index 2df95ae032e..0bb3be4cf09 100644
--- a/src/devices/bus/intv/ecs.cpp
+++ b/src/devices/bus/intv/ecs.cpp
@@ -167,7 +167,7 @@ READ16_MEMBER(intv_ecs_device::read_romf0)
READ16_MEMBER(intv_ecs_device::read_ay)
{
if (ACCESSING_BITS_0_7)
- return m_snd->read(space, offset, mem_mask);
+ return m_snd->read(offset);
else
return 0xffff;
}
@@ -179,7 +179,7 @@ READ16_MEMBER(intv_ecs_device::read_ay)
WRITE16_MEMBER(intv_ecs_device::write_ay)
{
if (ACCESSING_BITS_0_7)
- return m_snd->write(space, offset, data, mem_mask);
+ return m_snd->write(offset, data);
}
diff --git a/src/devices/bus/nes/sunsoft.cpp b/src/devices/bus/nes/sunsoft.cpp
index f62fa24e67d..3ce39de4295 100644
--- a/src/devices/bus/nes/sunsoft.cpp
+++ b/src/devices/bus/nes/sunsoft.cpp
@@ -585,10 +585,10 @@ WRITE8_MEMBER(nes_sunsoft_5_device::write_h)
switch (offset & 0x6000)
{
case 0x4000:
- m_ym2149->address_w(space, 0, data & 0x0f);
+ m_ym2149->address_w(data & 0x0f);
break;
case 0x6000:
- m_ym2149->data_w(space, 0, data);
+ m_ym2149->data_w(data);
break;
default:
fme7_write(space, offset, data, mem_mask);
diff --git a/src/devices/bus/spectrum/fuller.cpp b/src/devices/bus/spectrum/fuller.cpp
index 36275ccc4cd..bf3630dc9ff 100644
--- a/src/devices/bus/spectrum/fuller.cpp
+++ b/src/devices/bus/spectrum/fuller.cpp
@@ -92,8 +92,8 @@ void spectrum_fuller_device::device_reset()
{
m_exp->set_io_space(&io_space());
- io_space().install_write_handler(0x3f, 0x3f, 0, 0xff00, 0, write8_delegate(FUNC(ay8910_device::address_w), m_psg.target()));
- io_space().install_readwrite_handler(0x5f, 0x5f, 0, 0xff00, 0, read8_delegate(FUNC(ay8910_device::data_r), m_psg.target()), write8_delegate(FUNC(ay8910_device::data_w), m_psg.target()));
+ io_space().install_write_handler(0x3f, 0x3f, 0, 0xff00, 0, write8smo_delegate(FUNC(ay8910_device::address_w), m_psg.target()));
+ io_space().install_readwrite_handler(0x5f, 0x5f, 0, 0xff00, 0, read8smo_delegate(FUNC(ay8910_device::data_r), m_psg.target()), write8smo_delegate(FUNC(ay8910_device::data_w), m_psg.target()));
io_space().install_read_handler(0x7f, 0x7f, 0, 0xff00, 0, read8_delegate(FUNC(spectrum_fuller_device::joystick_r), this));
}
diff --git a/src/devices/bus/spectrum/melodik.cpp b/src/devices/bus/spectrum/melodik.cpp
index 8303d4c436c..0a7e04371fe 100644
--- a/src/devices/bus/spectrum/melodik.cpp
+++ b/src/devices/bus/spectrum/melodik.cpp
@@ -68,8 +68,8 @@ void spectrum_melodik_device::device_reset()
{
m_exp->set_io_space(&io_space());
- io_space().install_write_handler(0x8000, 0x8000, 0, 0x3ffd, 0, write8_delegate(FUNC(ay8910_device::address_w), m_psg.target()));
- io_space().install_readwrite_handler(0xc000, 0xc000, 0, 0x3ffd, 0, read8_delegate(FUNC(ay8910_device::data_r), m_psg.target()), write8_delegate(FUNC(ay8910_device::data_w), m_psg.target()));
+ io_space().install_write_handler(0x8000, 0x8000, 0, 0x3ffd, 0, write8smo_delegate(FUNC(ay8910_device::address_w), m_psg.target()));
+ io_space().install_readwrite_handler(0xc000, 0xc000, 0, 0x3ffd, 0, read8smo_delegate(FUNC(ay8910_device::data_r), m_psg.target()), write8smo_delegate(FUNC(ay8910_device::data_w), m_psg.target()));
}
//**************************************************************************
diff --git a/src/devices/sound/ay8910.cpp b/src/devices/sound/ay8910.cpp
index 1d594a06c2c..00e9f324f87 100644
--- a/src/devices/sound/ay8910.cpp
+++ b/src/devices/sound/ay8910.cpp
@@ -120,7 +120,7 @@
/***************************************************************************
- ay8910.c
+ ay8910.cpp
Emulation of the AY-3-8910 / YM2149 sound chip.
@@ -785,7 +785,7 @@ static const ay8910_device::mosfet_param ay8910_mosfet_param =
*
*************************************/
-static inline void build_3D_table(double rl, const ay8910_device::ay_ym_param *par, const ay8910_device::ay_ym_param *par_env, int normalize, double factor, int zero_is_off, int32_t *tab)
+static inline void build_3D_table(double rl, const ay8910_device::ay_ym_param *par, const ay8910_device::ay_ym_param *par_env, int normalize, double factor, int zero_is_off, s32 *tab)
{
double min = 10.0, max = 0.0;
@@ -844,7 +844,7 @@ static inline void build_3D_table(double rl, const ay8910_device::ay_ym_param *p
/* for (e=0;e<16;e++) printf("%d %d\n",e<<10, tab[e<<10]); */
}
-static inline void build_single_table(double rl, const ay8910_device::ay_ym_param *par, int normalize, int32_t *tab, int zero_is_off)
+static inline void build_single_table(double rl, const ay8910_device::ay_ym_param *par, int normalize, s32 *tab, int zero_is_off)
{
int j;
double rt;
@@ -883,7 +883,7 @@ static inline void build_single_table(double rl, const ay8910_device::ay_ym_para
}
-static inline void build_mosfet_resistor_table(const ay8910_device::mosfet_param &par, const double rd, int32_t *tab)
+static inline void build_mosfet_resistor_table(const ay8910_device::mosfet_param &par, const double rd, s32 *tab)
{
int j;
@@ -907,7 +907,7 @@ static inline void build_mosfet_resistor_table(const ay8910_device::mosfet_param
}
-uint16_t ay8910_device::mix_3D()
+u16 ay8910_device::mix_3D()
{
int indx = 0, chan;
@@ -1262,7 +1262,7 @@ void ay8910_device::device_start()
m_streams = 1;
}
- m_vol3d_table = make_unique_clear<int32_t[]>(8*32*32*32);
+ m_vol3d_table = make_unique_clear<s32[]>(8*32*32*32);
build_mixer_table();
@@ -1293,7 +1293,7 @@ void ay8910_device::ay8910_reset_ym()
m_count_env = 0;
m_prescale_noise = 0;
m_last_enable = -1; /* force a write */
- for (i = 0;i < AY_PORTA;i++)
+ for (i = 0; i < AY_PORTA; i++)
ay8910_write_reg(i,0);
m_ready = 1;
#if ENABLE_REGISTER_TEST
@@ -1338,7 +1338,7 @@ void ay8910_device::device_clock_changed()
ay_set_clock(clock());
}
-void ay8910_device::ay8910_write_ym(int addr, uint8_t data)
+void ay8910_device::ay8910_write_ym(int addr, u8 data)
{
if (addr & 1)
{
@@ -1369,7 +1369,7 @@ void ay8910_device::ay8910_write_ym(int addr, uint8_t data)
}
}
-uint8_t ay8910_device::ay8910_read_ym()
+u8 ay8910_device::ay8910_read_ym()
{
device_type chip_type = type();
int r = m_register_latch;
@@ -1418,13 +1418,13 @@ uint8_t ay8910_device::ay8910_read_ym()
- YM2149: no anomaly
*/
if (chip_type == AY8910) {
- const uint8_t mask[0x10]={
+ const u8 mask[0x10]={
0xff,0x0f,0xff,0x0f,0xff,0x0f,0x1f,0xff,0x1f,0x1f,0x1f,0xff,0xff,0x0f,0xff,0xff
};
return m_regs[r] & mask[r];
}
else if (chip_type == AY8914) {
- const uint8_t mask[0x10]={
+ const u8 mask[0x10]={
0xff,0x0f,0xff,0x0f,0xff,0x0f,0x1f,0xff,0x3f,0x3f,0x3f,0xff,0xff,0x0f,0xff,0xff
};
return m_regs[r] & mask[r];
@@ -1454,74 +1454,69 @@ void ay8910_device::device_reset()
*
*************************************/
-READ8_MEMBER( ay8910_device::data_r )
-{
- return ay8910_read_ym();
-}
-
-WRITE8_MEMBER( ay8910_device::address_w )
+void ay8910_device::address_w(u8 data)
{
#if ENABLE_REGISTER_TEST
return;
#else
- data_address_w(space, 1, data);
+ ay8910_write_ym(0, data);
#endif
}
-WRITE8_MEMBER( ay8910_device::data_w )
+void ay8910_device::data_w(u8 data)
{
#if ENABLE_REGISTER_TEST
return;
#else
- data_address_w(space, 0, data);
+ ay8910_write_ym(1, data);
#endif
}
// here, BC1 is hooked up to A0 on the host and BC2 is hooked up to A1
-WRITE8_MEMBER( ay8910_device::write_bc1_bc2 )
+void ay8910_device::write_bc1_bc2(offs_t offset, u8 data)
{
switch (offset & 3)
{
case 0: // latch address
- address_w(space, 0, data);
+ address_w(data);
break;
case 1: // inactive
break;
case 2: // write to psg
- data_w(space, 0, data);
+ data_w(data);
break;
case 3: // latch address
- address_w(space, 0, data);
+ address_w(data);
break;
}
}
-static const int mapping8914to8910[16] = { 0, 2, 4, 11, 1, 3, 5, 12, 7, 6, 13, 8, 9, 10, 14, 15 };
+static const u8 mapping8914to8910[16] = { 0, 2, 4, 11, 1, 3, 5, 12, 7, 6, 13, 8, 9, 10, 14, 15 };
-READ8_MEMBER( ay8914_device::read )
+u8 ay8914_device::read(offs_t offset)
{
- uint16_t rv;
- address_w(space, 0, mapping8914to8910[offset & 0xf]);
- rv = (uint16_t) data_r(space, 0);
+ u8 rv;
+ address_w(mapping8914to8910[offset & 0xf]);
+ rv = data_r();
return rv;
}
-WRITE8_MEMBER( ay8914_device::write )
+void ay8914_device::write(offs_t offset, u8 data)
{
- address_w(space, 0, mapping8914to8910[offset & 0xf]);
- data_w(space, 0, data & 0xff);
+ address_w(mapping8914to8910[offset & 0xf]);
+ data_w(data & 0xff);
}
DEFINE_DEVICE_TYPE(AY8910, ay8910_device, "ay8910", "AY-3-8910A PSG")
-ay8910_device::ay8910_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ay8910_device::ay8910_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: ay8910_device(mconfig, AY8910, tag, owner, clock, PSG_TYPE_AY, 3, 2)
{
}
-ay8910_device::ay8910_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock,
+ay8910_device::ay8910_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock,
psg_type_t psg_type, int streams, int ioports)
: device_t(mconfig, type, tag, owner, clock),
device_sound_interface(mconfig, *this),
@@ -1589,7 +1584,7 @@ void ay8910_device::set_type(psg_type_t psg_type)
DEFINE_DEVICE_TYPE(AY8912, ay8912_device, "ay8912", "AY-3-8912A PSG")
-ay8912_device::ay8912_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ay8912_device::ay8912_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: ay8910_device(mconfig, AY8912, tag, owner, clock, PSG_TYPE_AY, 3, 1)
{
}
@@ -1597,7 +1592,7 @@ ay8912_device::ay8912_device(const machine_config &mconfig, const char *tag, dev
DEFINE_DEVICE_TYPE(AY8913, ay8913_device, "ay8913", "AY-3-8913 PSG")
-ay8913_device::ay8913_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ay8913_device::ay8913_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: ay8910_device(mconfig, AY8913, tag, owner, clock, PSG_TYPE_AY, 3, 0)
{
}
@@ -1605,7 +1600,7 @@ ay8913_device::ay8913_device(const machine_config &mconfig, const char *tag, dev
DEFINE_DEVICE_TYPE(AY8914, ay8914_device, "ay8914", "AY-3-8914A PSG")
-ay8914_device::ay8914_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ay8914_device::ay8914_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: ay8910_device(mconfig, AY8914, tag, owner, clock, PSG_TYPE_AY, 3, 2)
{
}
@@ -1613,7 +1608,7 @@ ay8914_device::ay8914_device(const machine_config &mconfig, const char *tag, dev
DEFINE_DEVICE_TYPE(AY8930, ay8930_device, "ay8930", "AY8930 EPSG")
-ay8930_device::ay8930_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ay8930_device::ay8930_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: ay8910_device(mconfig, AY8930, tag, owner, clock, PSG_TYPE_AY, 3, 2)
{
}
@@ -1621,7 +1616,7 @@ ay8930_device::ay8930_device(const machine_config &mconfig, const char *tag, dev
DEFINE_DEVICE_TYPE(YM2149, ym2149_device, "ym2149", "YM2149 SSG")
-ym2149_device::ym2149_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ym2149_device::ym2149_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: ay8910_device(mconfig, YM2149, tag, owner, clock, PSG_TYPE_YM, 3, 2)
{
}
@@ -1629,7 +1624,7 @@ ym2149_device::ym2149_device(const machine_config &mconfig, const char *tag, dev
DEFINE_DEVICE_TYPE(YM3439, ym3439_device, "ym3439", "YM3439 SSGC")
-ym3439_device::ym3439_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ym3439_device::ym3439_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: ay8910_device(mconfig, YM3439, tag, owner, clock, PSG_TYPE_YM, 3, 2)
{
}
@@ -1637,7 +1632,7 @@ ym3439_device::ym3439_device(const machine_config &mconfig, const char *tag, dev
DEFINE_DEVICE_TYPE(YMZ284, ymz284_device, "ymz284", "YMZ284 SSGL")
-ymz284_device::ymz284_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ymz284_device::ymz284_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: ay8910_device(mconfig, YMZ284, tag, owner, clock, PSG_TYPE_YM, 1, 0)
{
}
@@ -1645,7 +1640,7 @@ ymz284_device::ymz284_device(const machine_config &mconfig, const char *tag, dev
DEFINE_DEVICE_TYPE(YMZ294, ymz294_device, "ymz294", "YMZ294 SSGLP")
-ymz294_device::ymz294_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ymz294_device::ymz294_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: ay8910_device(mconfig, YMZ294, tag, owner, clock, PSG_TYPE_YM, 1, 0)
{
}
diff --git a/src/devices/sound/ay8910.h b/src/devices/sound/ay8910.h
index 63a8575f1fa..c1bbf718245 100644
--- a/src/devices/sound/ay8910.h
+++ b/src/devices/sound/ay8910.h
@@ -62,7 +62,7 @@ public:
};
// construction/destruction
- ay8910_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ ay8910_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
// configuration helpers
void set_flags(int flags) { m_flags = flags; }
@@ -73,24 +73,21 @@ public:
auto port_a_write_callback() { return m_port_a_write_cb.bind(); }
auto port_b_write_callback() { return m_port_b_write_cb.bind(); }
- DECLARE_READ8_MEMBER( data_r );
- DECLARE_WRITE8_MEMBER( address_w );
- DECLARE_WRITE8_MEMBER( data_w );
- u8 read_data() { return ay8910_read_ym(); }
- void write_address(u8 data) { ay8910_write_ym(0, data); }
- void write_data(u8 data) { ay8910_write_ym(1, data); }
+ u8 data_r() { return ay8910_read_ym(); }
+ void address_w(u8 data);
+ void data_w(u8 data);
/* /RES */
- DECLARE_WRITE8_MEMBER( reset_w ) { ay8910_reset_ym(); }
+ void reset_w(u8 data = 0) { ay8910_reset_ym(); }
// use this when BC1 == A0; here, BC1=0 selects 'data' and BC1=1 selects 'latch address'
- DECLARE_WRITE8_MEMBER( data_address_w ) { ay8910_write_ym(~offset & 1, data); } // note that directly connecting BC1 to A0 puts data on 0 and address on 1
+ void data_address_w(offs_t offset, u8 data) { ay8910_write_ym(~offset & 1, data); } // note that directly connecting BC1 to A0 puts data on 0 and address on 1
// use this when BC1 == !A0; here, BC1=0 selects 'latch address' and BC1=1 selects 'data'
- DECLARE_WRITE8_MEMBER( address_data_w ) { ay8910_write_ym(offset & 1, data); }
+ void address_data_w(offs_t offset, u8 data) { ay8910_write_ym(offset & 1, data); }
// bc1=a0, bc2=a1
- DECLARE_WRITE8_MEMBER(write_bc1_bc2);
+ void write_bc1_bc2(offs_t offset, u8 data);
void set_volume(int channel,int volume);
void ay_set_clock(int clock);
@@ -113,13 +110,10 @@ public:
// internal interface for PSG component of YM device
// FIXME: these should be private, but vector06 accesses them directly
- void ay8910_write_ym(int addr, uint8_t data);
- uint8_t ay8910_read_ym();
- void ay8910_reset_ym();
protected:
ay8910_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner,
- uint32_t clock, psg_type_t psg_type, int streams, int ioports);
+ u32 clock, psg_type_t psg_type, int streams, int ioports);
// device-level overrides
virtual void device_start() override;
@@ -140,11 +134,15 @@ private:
// internal helpers
void set_type(psg_type_t psg_type);
- inline uint16_t mix_3D();
+ inline u16 mix_3D();
void ay8910_write_reg(int r, int v);
void build_mixer_table();
void ay8910_statesave();
+ void ay8910_write_ym(int addr, u8 data);
+ u8 ay8910_read_ym();
+ void ay8910_reset_ym();
+
// internal state
psg_type_t m_type;
int m_streams;
@@ -152,29 +150,29 @@ private:
int m_ready;
sound_stream *m_channel;
bool m_active;
- int32_t m_register_latch;
- uint8_t m_regs[16];
- int32_t m_last_enable;
- int32_t m_count[NUM_CHANNELS];
- uint8_t m_output[NUM_CHANNELS];
- uint8_t m_prescale_noise;
- int32_t m_count_noise;
- int32_t m_count_env;
- int8_t m_env_step;
- uint32_t m_env_volume;
- uint8_t m_hold,m_alternate,m_attack,m_holding;
- int32_t m_rng;
- uint8_t m_mode;
- uint8_t m_env_step_mask;
+ s32 m_register_latch;
+ u8 m_regs[16];
+ s32 m_last_enable;
+ s32 m_count[NUM_CHANNELS];
+ u8 m_output[NUM_CHANNELS];
+ u8 m_prescale_noise;
+ s32 m_count_noise;
+ s32 m_count_env;
+ s8 m_env_step;
+ u32 m_env_volume;
+ u8 m_hold,m_alternate,m_attack,m_holding;
+ s32 m_rng;
+ u8 m_mode;
+ u8 m_env_step_mask;
/* init parameters ... */
int m_step;
int m_zero_is_off;
- uint8_t m_vol_enabled[NUM_CHANNELS];
+ u8 m_vol_enabled[NUM_CHANNELS];
const ay_ym_param *m_par;
const ay_ym_param *m_par_env;
- int32_t m_vol_table[NUM_CHANNELS][16];
- int32_t m_env_table[NUM_CHANNELS][32];
- std::unique_ptr<int32_t[]> m_vol3d_table;
+ s32 m_vol_table[NUM_CHANNELS][16];
+ s32 m_env_table[NUM_CHANNELS][32];
+ std::unique_ptr<s32[]> m_vol3d_table;
int m_flags; /* Flags */
int m_res_load[3]; /* Load on channel in ohms */
devcb_read8 m_port_a_read_cb;
@@ -188,7 +186,7 @@ DECLARE_DEVICE_TYPE(AY8910, ay8910_device)
class ay8912_device : public ay8910_device
{
public:
- ay8912_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ ay8912_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
};
DECLARE_DEVICE_TYPE(AY8912, ay8912_device)
@@ -196,7 +194,7 @@ DECLARE_DEVICE_TYPE(AY8912, ay8912_device)
class ay8913_device : public ay8910_device
{
public:
- ay8913_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ ay8913_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
};
DECLARE_DEVICE_TYPE(AY8913, ay8913_device)
@@ -204,11 +202,11 @@ DECLARE_DEVICE_TYPE(AY8913, ay8913_device)
class ay8914_device : public ay8910_device
{
public:
- ay8914_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ ay8914_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
/* AY8914 handlers needed due to different register map */
- DECLARE_READ8_MEMBER( read );
- DECLARE_WRITE8_MEMBER( write );
+ u8 read(offs_t offset);
+ void write(offs_t offset, u8 data);
};
DECLARE_DEVICE_TYPE(AY8914, ay8914_device)
@@ -216,7 +214,7 @@ DECLARE_DEVICE_TYPE(AY8914, ay8914_device)
class ay8930_device : public ay8910_device
{
public:
- ay8930_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ ay8930_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
};
DECLARE_DEVICE_TYPE(AY8930, ay8930_device)
@@ -224,7 +222,7 @@ DECLARE_DEVICE_TYPE(AY8930, ay8930_device)
class ym2149_device : public ay8910_device
{
public:
- ym2149_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ ym2149_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
};
DECLARE_DEVICE_TYPE(YM2149, ym2149_device)
@@ -232,7 +230,7 @@ DECLARE_DEVICE_TYPE(YM2149, ym2149_device)
class ym3439_device : public ay8910_device
{
public:
- ym3439_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ ym3439_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
};
DECLARE_DEVICE_TYPE(YM3439, ym3439_device)
@@ -240,7 +238,7 @@ DECLARE_DEVICE_TYPE(YM3439, ym3439_device)
class ymz284_device : public ay8910_device
{
public:
- ymz284_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ ymz284_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
};
DECLARE_DEVICE_TYPE(YMZ284, ymz284_device)
@@ -248,7 +246,7 @@ DECLARE_DEVICE_TYPE(YMZ284, ymz284_device)
class ymz294_device : public ay8910_device
{
public:
- ymz294_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ ymz294_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
};
DECLARE_DEVICE_TYPE(YMZ294, ymz294_device)