diff options
author | 2014-06-21 02:25:03 +0000 | |
---|---|---|
committer | 2014-06-21 02:25:03 +0000 | |
commit | 70bf1b601e5c71b518a55f7180b31291feb778e4 (patch) | |
tree | 627e4b7154647659b2597e2aece63ec4238f2412 | |
parent | bf43a3db239df8ca7f4e23ad661ad98a3e3aecf6 (diff) |
got rid of tmpz84c011 ctc trampolines
-rw-r--r-- | src/emu/cpu/z80/tmpz84c011.c | 28 | ||||
-rw-r--r-- | src/emu/cpu/z80/tmpz84c011.h | 32 | ||||
-rw-r--r-- | src/emu/cpu/z80/z80daisy.c | 9 | ||||
-rw-r--r-- | src/mame/drivers/csplayh5.c | 12 | ||||
-rw-r--r-- | src/mame/drivers/kenseim.c | 12 | ||||
-rw-r--r-- | src/mame/drivers/nbmj9195.c | 29 | ||||
-rw-r--r-- | src/mame/drivers/niyanpai.c | 14 |
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") |