summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Michaël Banaan Ananas <happppp@users.noreply.github.com>2014-06-21 02:25:03 +0000
committer Michaël Banaan Ananas <happppp@users.noreply.github.com>2014-06-21 02:25:03 +0000
commit70bf1b601e5c71b518a55f7180b31291feb778e4 (patch)
tree627e4b7154647659b2597e2aece63ec4238f2412
parentbf43a3db239df8ca7f4e23ad661ad98a3e3aecf6 (diff)
got rid of tmpz84c011 ctc trampolines
-rw-r--r--src/emu/cpu/z80/tmpz84c011.c28
-rw-r--r--src/emu/cpu/z80/tmpz84c011.h32
-rw-r--r--src/emu/cpu/z80/z80daisy.c9
-rw-r--r--src/mame/drivers/csplayh5.c12
-rw-r--r--src/mame/drivers/kenseim.c12
-rw-r--r--src/mame/drivers/nbmj9195.c29
-rw-r--r--src/mame/drivers/niyanpai.c14
7 files changed, 28 insertions, 108 deletions
diff --git a/src/emu/cpu/z80/tmpz84c011.c b/src/emu/cpu/z80/tmpz84c011.c
index f057980217b..62aa320e5c0 100644
--- a/src/emu/cpu/z80/tmpz84c011.c
+++ b/src/emu/cpu/z80/tmpz84c011.c
@@ -40,11 +40,7 @@ tmpz84c011_device::tmpz84c011_device(const machine_config &mconfig, const char *
m_inportsb(*this),
m_inportsc(*this),
m_inportsd(*this),
- m_inportse(*this),
- m_intr_cb(*this),
- m_zc0_cb(*this),
- m_zc1_cb(*this),
- m_zc2_cb(*this)
+ m_inportse(*this)
{
memset(m_pio_dir, 0, 5);
memset(m_pio_latch, 0, 5);
@@ -72,11 +68,6 @@ void tmpz84c011_device::device_start()
m_inportsd.resolve_safe(0);
m_inportse.resolve_safe(0);
- m_intr_cb.resolve_safe();
- m_zc0_cb.resolve_safe();
- m_zc1_cb.resolve_safe();
- m_zc2_cb.resolve_safe();
-
// register for save states
save_item(NAME(m_pio_dir[0]));
save_item(NAME(m_pio_latch[0]));
@@ -214,18 +205,17 @@ WRITE8_MEMBER(tmpz84c011_device::tmpz84c011_dir_pe_w)
}
-WRITE_LINE_MEMBER( tmpz84c011_device::intr_cb_trampoline_w ) { m_intr_cb(state); }
-WRITE_LINE_MEMBER( tmpz84c011_device::zc0_cb_trampoline_w ) { m_zc0_cb(state); }
-WRITE_LINE_MEMBER( tmpz84c011_device::zc1_cb_trampoline_w ) { m_zc1_cb(state); }
-WRITE_LINE_MEMBER( tmpz84c011_device::zc2_cb_trampoline_w ) { m_zc2_cb(state); }
-
+static const z80_daisy_config daisy_chain[] =
+{
+ { "ctc" },
+ { NULL }
+};
static MACHINE_CONFIG_FRAGMENT( tmpz84c011 )
MCFG_DEVICE_ADD("ctc", Z80CTC, DERIVED_CLOCK(1,1) )
- MCFG_Z80CTC_INTR_CB(WRITELINE(tmpz84c011_device, intr_cb_trampoline_w))
- MCFG_Z80CTC_ZC0_CB(WRITELINE(tmpz84c011_device, zc0_cb_trampoline_w))
- MCFG_Z80CTC_ZC1_CB(WRITELINE(tmpz84c011_device, zc1_cb_trampoline_w))
- MCFG_Z80CTC_ZC2_CB(WRITELINE(tmpz84c011_device, zc2_cb_trampoline_w))
+ MCFG_Z80CTC_INTR_CB(INPUTLINE(DEVICE_SELF, INPUT_LINE_IRQ0))
+ MCFG_CPU_MODIFY(DEVICE_SELF)
+ MCFG_CPU_CONFIG(daisy_chain)
MACHINE_CONFIG_END
machine_config_constructor tmpz84c011_device::device_mconfig_additions() const
diff --git a/src/emu/cpu/z80/tmpz84c011.h b/src/emu/cpu/z80/tmpz84c011.h
index 649c3dbb5de..6fcdeef9f3b 100644
--- a/src/emu/cpu/z80/tmpz84c011.h
+++ b/src/emu/cpu/z80/tmpz84c011.h
@@ -7,8 +7,9 @@
#include "emu.h"
#include "z80.h"
+#include "machine/z80ctc.h"
-
+// NOTE: for CTC callbacks, see machine/z80ctc.h
// TMPZ84C011 PIO callbacks
#define MCFG_TMPZ84C011_PORTA_READ_CB(_devcb) \
devcb = &tmpz84c011_device::set_inportsa_cb(*device, DEVCB_##_devcb);
@@ -42,20 +43,6 @@
devcb = &tmpz84c011_device::set_outportse_cb(*device, DEVCB_##_devcb);
-// CTC callbacks
-#define MCFG_TMPZ84C011_Z80CTC_INTR_CB(_devcb) \
- devcb = &tmpz84c011_device::set_intr_callback(*device, DEVCB_##_devcb);
-
-
-#define MCFG_TMPZ84C011_Z80CTC_ZC0_CB(_devcb) \
- devcb = &tmpz84c011_device::set_zc0_callback(*device, DEVCB_##_devcb);
-
-#define MCFG_TMPZ84C011_Z80CTC_ZC1_CB(_devcb) \
- devcb = &tmpz84c011_device::set_zc1_callback(*device, DEVCB_##_devcb);
-
-#define MCFG_TMPZ84C011_Z80CTC_ZC2_CB(_devcb) \
- devcb = &tmpz84c011_device::set_zc2_callback(*device, DEVCB_##_devcb);
-
class tmpz84c011_device : public z80_device
{
public:
@@ -73,11 +60,6 @@ public:
template<class _Object> static devcb_base & set_inportsd_cb(device_t &device, _Object object) { return downcast<tmpz84c011_device &>(device).m_inportsd.set_callback(object); }
template<class _Object> static devcb_base & set_inportse_cb(device_t &device, _Object object) { return downcast<tmpz84c011_device &>(device).m_inportse.set_callback(object); }
- template<class _Object> static devcb_base &set_intr_callback(device_t &device, _Object object) { return downcast<tmpz84c011_device &>(device).m_intr_cb.set_callback(object); }
- template<class _Object> static devcb_base &set_zc0_callback(device_t &device, _Object object) { return downcast<tmpz84c011_device &>(device).m_zc0_cb.set_callback(object); }
- template<class _Object> static devcb_base &set_zc1_callback(device_t &device, _Object object) { return downcast<tmpz84c011_device &>(device).m_zc1_cb.set_callback(object); }
- template<class _Object> static devcb_base &set_zc2_callback(device_t &device, _Object object) { return downcast<tmpz84c011_device &>(device).m_zc2_cb.set_callback(object); }
-
DECLARE_READ8_MEMBER(tmpz84c011_pa_r);
DECLARE_READ8_MEMBER(tmpz84c011_pb_r);
DECLARE_READ8_MEMBER(tmpz84c011_pc_r);
@@ -99,11 +81,6 @@ public:
DECLARE_WRITE8_MEMBER(tmpz84c011_dir_pd_w);
DECLARE_WRITE8_MEMBER(tmpz84c011_dir_pe_w);
- DECLARE_WRITE_LINE_MEMBER(intr_cb_trampoline_w);
- DECLARE_WRITE_LINE_MEMBER(zc0_cb_trampoline_w);
- DECLARE_WRITE_LINE_MEMBER(zc1_cb_trampoline_w);
- DECLARE_WRITE_LINE_MEMBER(zc2_cb_trampoline_w);
-
protected:
// device-level overrides
virtual machine_config_constructor device_mconfig_additions() const;
@@ -136,11 +113,6 @@ private:
devcb_read8 m_inportsc;
devcb_read8 m_inportsd;
devcb_read8 m_inportse;
-
- devcb_write_line m_intr_cb; // interrupt callback
- devcb_write_line m_zc0_cb; // channel 0 zero crossing callbacks
- devcb_write_line m_zc1_cb; // channel 1 zero crossing callbacks
- devcb_write_line m_zc2_cb; // channel 2 zero crossing callbacks
};
extern const device_type TMPZ84C011;
diff --git a/src/emu/cpu/z80/z80daisy.c b/src/emu/cpu/z80/z80daisy.c
index adfebcd2c52..56b1481e6ae 100644
--- a/src/emu/cpu/z80/z80daisy.c
+++ b/src/emu/cpu/z80/z80daisy.c
@@ -60,9 +60,12 @@ void z80_daisy_chain::init(device_t *cpudevice, const z80_daisy_config *daisy)
for ( ; daisy->devname != NULL; daisy++)
{
// find the device
- device_t *target = cpudevice->siblingdevice(daisy->devname);
- if (target == NULL)
- fatalerror("Unable to locate device '%s'\n", daisy->devname);
+ device_t *target;
+ if ((target = cpudevice->subdevice(daisy->devname)) == NULL)
+ {
+ if ((target = cpudevice->siblingdevice(daisy->devname)) == NULL)
+ fatalerror("Unable to locate device '%s'\n", daisy->devname);
+ }
// make sure it has an interface
device_z80daisy_interface *intf;
diff --git a/src/mame/drivers/csplayh5.c b/src/mame/drivers/csplayh5.c
index 45ca78e568e..d9ff3030710 100644
--- a/src/mame/drivers/csplayh5.c
+++ b/src/mame/drivers/csplayh5.c
@@ -30,7 +30,6 @@
#include "cpu/z80/tmpz84c011.h"
#include "sound/dac.h"
#include "sound/3812intf.h"
-#include "cpu/z80/z80daisy.h"
#include "machine/nvram.h"
#include "cpu/h8/h83002.h"
@@ -449,12 +448,6 @@ TIMER_DEVICE_CALLBACK_MEMBER(csplayh5_state::csplayh5_irq)
}
}
-static const z80_daisy_config daisy_chain_sound[] =
-{
- { "audiocpu:ctc" },
- { NULL }
-};
-
static MACHINE_CONFIG_START( csplayh5, csplayh5_state )
/* basic machine hardware */
@@ -473,7 +466,6 @@ static MACHINE_CONFIG_START( csplayh5, csplayh5_state )
#endif
MCFG_CPU_ADD("audiocpu", TMPZ84C011, 8000000) /* TMPZ84C011, unknown clock */
- MCFG_CPU_CONFIG(daisy_chain_sound)
MCFG_CPU_PROGRAM_MAP(csplayh5_sound_map)
MCFG_CPU_IO_MAP(csplayh5_sound_io_map)
MCFG_TMPZ84C011_PORTA_WRITE_CB(WRITE8(csplayh5_state, soundcpu_porta_w))
@@ -481,8 +473,8 @@ static MACHINE_CONFIG_START( csplayh5, csplayh5_state )
MCFG_TMPZ84C011_PORTC_WRITE_CB(WRITE8(csplayh5_state, soundcpu_dac1_w))
MCFG_TMPZ84C011_PORTD_READ_CB(READ8(csplayh5_state, soundcpu_portd_r))
MCFG_TMPZ84C011_PORTE_WRITE_CB(WRITE8(csplayh5_state, soundcpu_porte_w))
- MCFG_TMPZ84C011_Z80CTC_INTR_CB(INPUTLINE("audiocpu", INPUT_LINE_IRQ0))
- MCFG_TMPZ84C011_Z80CTC_ZC0_CB(DEVWRITELINE("audiocpu:ctc", z80ctc_device, trg3))
+ MCFG_DEVICE_MODIFY("audiocpu:ctc")
+ MCFG_Z80CTC_ZC0_CB(DEVWRITELINE("ctc", z80ctc_device, trg3))
MCFG_NVRAM_ADD_0FILL("nvram")
diff --git a/src/mame/drivers/kenseim.c b/src/mame/drivers/kenseim.c
index 79e1646b0b0..26bb0dfbe40 100644
--- a/src/mame/drivers/kenseim.c
+++ b/src/mame/drivers/kenseim.c
@@ -140,9 +140,9 @@ GND | 20
#include "emu.h"
#include "cpu/z80/tmpz84c011.h"
+#include "machine/mb89363b.h"
#include "includes/cps1.h"
#include "kenseim.lh"
-#include "machine/mb89363b.h"
class kenseim_state : public cps_state
{
@@ -459,15 +459,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( kenseim_io_map, AS_IO, 8, kenseim_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x20, 0x27) AM_DEVREADWRITE("mb89363b", mb89363b_device, read, write)
+ AM_RANGE(0x20, 0x27) AM_DEVREADWRITE("mb89363b", mb89363b_device, read, write)
ADDRESS_MAP_END
-static const z80_daisy_config daisy_chain_gamecpu[] =
-{
- { "gamecpu:ctc" },
- { NULL }
-};
static MACHINE_CONFIG_DERIVED_CLASS( kenseim, cps1_12MHz, kenseim_state )
@@ -483,9 +478,6 @@ static MACHINE_CONFIG_DERIVED_CLASS( kenseim, cps1_12MHz, kenseim_state )
MCFG_TMPZ84C011_PORTB_READ_CB(IOPORT("DSW2"))
MCFG_TMPZ84C011_PORTC_READ_CB(IOPORT("CAB-IN"))
MCFG_TMPZ84C011_PORTD_READ_CB(READ8(kenseim_state, cpu_portd_r))
- MCFG_CPU_CONFIG(daisy_chain_gamecpu)
- MCFG_TMPZ84C011_Z80CTC_INTR_CB(INPUTLINE("gamecpu", INPUT_LINE_IRQ0))
-
MCFG_MB89363B_ADD("mb89363b")
// a,b,c always $80: all ports set as output
diff --git a/src/mame/drivers/nbmj9195.c b/src/mame/drivers/nbmj9195.c
index 0d9c28d2a9d..cf090e134c4 100644
--- a/src/mame/drivers/nbmj9195.c
+++ b/src/mame/drivers/nbmj9195.c
@@ -25,7 +25,6 @@ Notes:
#include "includes/nb1413m3.h" // needed for mahjong input controller
#include "sound/3812intf.h"
#include "sound/dac.h"
-#include "cpu/z80/z80daisy.h"
#include "includes/nbmj9195.h"
@@ -2779,19 +2778,6 @@ static INPUT_PORTS_START( mjegolf )
INPUT_PORTS_END
-static const z80_daisy_config daisy_chain_main[] =
-{
- { "maincpu:ctc" },
- { NULL }
-};
-
-static const z80_daisy_config daisy_chain_sound[] =
-{
- { "audiocpu:ctc" },
- { NULL }
-};
-
-
// the only difference between these 2 setups is the DAC is swapped, is that intentional?
#define OTHERS_TMZ84C011_SOUND_PORTS \
MCFG_TMPZ84C011_PORTA_WRITE_CB(WRITE8(nbmj9195_state, soundcpu_porta_w)) \
@@ -2829,20 +2815,16 @@ static const z80_daisy_config daisy_chain_sound[] =
static MACHINE_CONFIG_START( NBMJDRV1_base, nbmj9195_state )
/* basic machine hardware */
- MCFG_CPU_ADD("maincpu", TMPZ84C011, 12000000/2) /* TMPZ84C011, 6.00 MHz */
- MCFG_CPU_CONFIG(daisy_chain_main)
+ MCFG_CPU_ADD("maincpu", TMPZ84C011, 12000000/2) /* TMPZ84C011, 6.00 MHz */
MCFG_CPU_PROGRAM_MAP(sailorws_map)
MCFG_CPU_IO_MAP(sailorws_io_map)
- MCFG_CPU_VBLANK_INT_DRIVER("screen", nbmj9195_state, ctc0_trg1) /* vblank is connect to ctc triggfer */
- MCFG_TMPZ84C011_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", nbmj9195_state, ctc0_trg1) /* vblank is connect to ctc trigger */
- MCFG_CPU_ADD("audiocpu", TMPZ84C011, 8000000) /* TMPZ84C011, 8.00 MHz */
- MCFG_CPU_CONFIG(daisy_chain_sound)
+ MCFG_CPU_ADD("audiocpu", TMPZ84C011, 8000000) /* TMPZ84C011, 8.00 MHz */
MCFG_CPU_PROGRAM_MAP(sailorws_sound_map)
MCFG_CPU_IO_MAP(sailorws_sound_io_map)
- MCFG_TMPZ84C011_Z80CTC_INTR_CB(INPUTLINE("audiocpu", INPUT_LINE_IRQ0))
- MCFG_TMPZ84C011_Z80CTC_ZC0_CB(DEVWRITELINE("audiocpu:ctc", z80ctc_device, trg3))
-
+ MCFG_DEVICE_MODIFY("audiocpu:ctc")
+ MCFG_Z80CTC_ZC0_CB(DEVWRITELINE("ctc", z80ctc_device, trg3))
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -3167,7 +3149,6 @@ static MACHINE_CONFIG_DERIVED( shabdama, NBMJDRV1 )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(shabdama_map)
MCFG_CPU_IO_MAP(shabdama_io_map)
-
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/niyanpai.c b/src/mame/drivers/niyanpai.c
index e859f74fc67..f548d5d8e1a 100644
--- a/src/mame/drivers/niyanpai.c
+++ b/src/mame/drivers/niyanpai.c
@@ -40,7 +40,6 @@ Memo:
#include "includes/nb1413m3.h"
#include "sound/dac.h"
#include "sound/3812intf.h"
-#include "cpu/z80/z80daisy.h"
#include "machine/nvram.h"
#include "includes/niyanpai.h"
@@ -761,13 +760,6 @@ INTERRUPT_GEN_MEMBER(niyanpai_state::niyanpai_interrupt)
m_tmp68301->external_interrupt_0();
}
-static const z80_daisy_config daisy_chain_sound[] =
-{
- { "audiocpu:ctc" },
- { NULL }
-};
-
-
static MACHINE_CONFIG_START( niyanpai, niyanpai_state )
@@ -781,7 +773,6 @@ static MACHINE_CONFIG_START( niyanpai, niyanpai_state )
MCFG_TMP68301_OUT_PARALLEL_CB(WRITE16(niyanpai_state, tmp68301_parallel_port_w))
MCFG_CPU_ADD("audiocpu", TMPZ84C011, 8000000) /* TMPZ84C011, 8.00 MHz */
- MCFG_CPU_CONFIG(daisy_chain_sound)
MCFG_CPU_PROGRAM_MAP(niyanpai_sound_map)
MCFG_CPU_IO_MAP(niyanpai_sound_io_map)
MCFG_TMPZ84C011_PORTD_READ_CB(READ8(niyanpai_state, cpu_portd_r))
@@ -789,9 +780,8 @@ static MACHINE_CONFIG_START( niyanpai, niyanpai_state )
MCFG_TMPZ84C011_PORTB_WRITE_CB(WRITE8(niyanpai_state, cpu_portb_w))
MCFG_TMPZ84C011_PORTC_WRITE_CB(WRITE8(niyanpai_state, cpu_portc_w))
MCFG_TMPZ84C011_PORTE_WRITE_CB(WRITE8(niyanpai_state, cpu_porte_w))
- MCFG_TMPZ84C011_Z80CTC_INTR_CB(INPUTLINE("audiocpu", INPUT_LINE_IRQ0))
- MCFG_TMPZ84C011_Z80CTC_ZC0_CB(DEVWRITELINE("audiocpu:ctc", z80ctc_device, trg3))
-
+ MCFG_DEVICE_MODIFY("audiocpu:ctc")
+ MCFG_Z80CTC_ZC0_CB(DEVWRITELINE("ctc", z80ctc_device, trg3))
MCFG_NVRAM_ADD_0FILL("nvram")