Previous 199869 Revisions Next

r31054 Saturday 21st June, 2014 at 02:25:03 UTC by hap
got rid of tmpz84c011 ctc trampolines
[src/emu/cpu/z80]tmpz84c011.c tmpz84c011.h z80daisy.c
[src/mame/drivers]csplayh5.c kenseim.c nbmj9195.c niyanpai.c

trunk/src/emu/cpu/z80/tmpz84c011.c
r31053r31054
4040   m_inportsb(*this),
4141   m_inportsc(*this),
4242   m_inportsd(*this),
43   m_inportse(*this),
44   m_intr_cb(*this),
45   m_zc0_cb(*this),
46   m_zc1_cb(*this),
47   m_zc2_cb(*this)
43   m_inportse(*this)
4844{
4945   memset(m_pio_dir, 0, 5);
5046   memset(m_pio_latch, 0, 5);
r31053r31054
7268   m_inportsd.resolve_safe(0);
7369   m_inportse.resolve_safe(0);
7470
75   m_intr_cb.resolve_safe();
76   m_zc0_cb.resolve_safe();
77   m_zc1_cb.resolve_safe();
78   m_zc2_cb.resolve_safe();
79
8071   // register for save states
8172   save_item(NAME(m_pio_dir[0]));
8273   save_item(NAME(m_pio_latch[0]));
r31053r31054
214205}
215206
216207
217WRITE_LINE_MEMBER( tmpz84c011_device::intr_cb_trampoline_w ) { m_intr_cb(state); }
218WRITE_LINE_MEMBER( tmpz84c011_device::zc0_cb_trampoline_w ) { m_zc0_cb(state); }
219WRITE_LINE_MEMBER( tmpz84c011_device::zc1_cb_trampoline_w ) { m_zc1_cb(state); }
220WRITE_LINE_MEMBER( tmpz84c011_device::zc2_cb_trampoline_w ) { m_zc2_cb(state); }
208static const z80_daisy_config daisy_chain[] =
209{
210   { "ctc" },
211   { NULL }
212};
221213
222
223214static MACHINE_CONFIG_FRAGMENT( tmpz84c011 )
224215   MCFG_DEVICE_ADD("ctc", Z80CTC, DERIVED_CLOCK(1,1) )
225   MCFG_Z80CTC_INTR_CB(WRITELINE(tmpz84c011_device, intr_cb_trampoline_w))
226   MCFG_Z80CTC_ZC0_CB(WRITELINE(tmpz84c011_device, zc0_cb_trampoline_w))
227   MCFG_Z80CTC_ZC1_CB(WRITELINE(tmpz84c011_device, zc1_cb_trampoline_w))
228   MCFG_Z80CTC_ZC2_CB(WRITELINE(tmpz84c011_device, zc2_cb_trampoline_w))
216   MCFG_Z80CTC_INTR_CB(INPUTLINE(DEVICE_SELF, INPUT_LINE_IRQ0))
217   MCFG_CPU_MODIFY(DEVICE_SELF)
218   MCFG_CPU_CONFIG(daisy_chain)
229219MACHINE_CONFIG_END
230220
231221machine_config_constructor tmpz84c011_device::device_mconfig_additions() const
trunk/src/emu/cpu/z80/z80daisy.c
r31053r31054
6060   for ( ; daisy->devname != NULL; daisy++)
6161   {
6262      // find the device
63      device_t *target = cpudevice->siblingdevice(daisy->devname);
64      if (target == NULL)
65         fatalerror("Unable to locate device '%s'\n", daisy->devname);
63      device_t *target;
64      if ((target = cpudevice->subdevice(daisy->devname)) == NULL)
65      {
66         if ((target = cpudevice->siblingdevice(daisy->devname)) == NULL)
67            fatalerror("Unable to locate device '%s'\n", daisy->devname);
68      }
6669
6770      // make sure it has an interface
6871      device_z80daisy_interface *intf;
trunk/src/emu/cpu/z80/tmpz84c011.h
r31053r31054
77
88#include "emu.h"
99#include "z80.h"
10#include "machine/z80ctc.h"
1011
11
12// NOTE: for CTC callbacks, see machine/z80ctc.h
1213// TMPZ84C011 PIO callbacks
1314#define MCFG_TMPZ84C011_PORTA_READ_CB(_devcb) \
1415   devcb = &tmpz84c011_device::set_inportsa_cb(*device, DEVCB_##_devcb);
r31053r31054
4243   devcb = &tmpz84c011_device::set_outportse_cb(*device, DEVCB_##_devcb);
4344
4445
45// CTC callbacks
46#define MCFG_TMPZ84C011_Z80CTC_INTR_CB(_devcb) \
47   devcb = &tmpz84c011_device::set_intr_callback(*device, DEVCB_##_devcb);
48
49
50#define MCFG_TMPZ84C011_Z80CTC_ZC0_CB(_devcb) \
51   devcb = &tmpz84c011_device::set_zc0_callback(*device, DEVCB_##_devcb);
52
53#define MCFG_TMPZ84C011_Z80CTC_ZC1_CB(_devcb) \
54   devcb = &tmpz84c011_device::set_zc1_callback(*device, DEVCB_##_devcb);
55
56#define MCFG_TMPZ84C011_Z80CTC_ZC2_CB(_devcb) \
57   devcb = &tmpz84c011_device::set_zc2_callback(*device, DEVCB_##_devcb);
58
5946class tmpz84c011_device : public z80_device
6047{
6148public:
r31053r31054
7360   template<class _Object> static devcb_base & set_inportsd_cb(device_t &device, _Object object) { return downcast<tmpz84c011_device &>(device).m_inportsd.set_callback(object); }
7461   template<class _Object> static devcb_base & set_inportse_cb(device_t &device, _Object object) { return downcast<tmpz84c011_device &>(device).m_inportse.set_callback(object); }
7562
76   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); }
77   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); }
78   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); }
79   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); }
80
8163   DECLARE_READ8_MEMBER(tmpz84c011_pa_r);
8264   DECLARE_READ8_MEMBER(tmpz84c011_pb_r);
8365   DECLARE_READ8_MEMBER(tmpz84c011_pc_r);
r31053r31054
9981   DECLARE_WRITE8_MEMBER(tmpz84c011_dir_pd_w);
10082   DECLARE_WRITE8_MEMBER(tmpz84c011_dir_pe_w);
10183
102   DECLARE_WRITE_LINE_MEMBER(intr_cb_trampoline_w);
103   DECLARE_WRITE_LINE_MEMBER(zc0_cb_trampoline_w);
104   DECLARE_WRITE_LINE_MEMBER(zc1_cb_trampoline_w);
105   DECLARE_WRITE_LINE_MEMBER(zc2_cb_trampoline_w);
106
10784protected:
10885   // device-level overrides
10986   virtual machine_config_constructor device_mconfig_additions() const;
r31053r31054
136113   devcb_read8       m_inportsc;
137114   devcb_read8       m_inportsd;
138115   devcb_read8       m_inportse;
139
140   devcb_write_line   m_intr_cb;              // interrupt callback
141   devcb_write_line   m_zc0_cb;               // channel 0 zero crossing callbacks
142   devcb_write_line   m_zc1_cb;               // channel 1 zero crossing callbacks
143   devcb_write_line   m_zc2_cb;               // channel 2 zero crossing callbacks
144116};
145117
146118extern const device_type TMPZ84C011;
trunk/src/mame/drivers/niyanpai.c
r31053r31054
4040#include "includes/nb1413m3.h"
4141#include "sound/dac.h"
4242#include "sound/3812intf.h"
43#include "cpu/z80/z80daisy.h"
4443#include "machine/nvram.h"
4544#include "includes/niyanpai.h"
4645
r31053r31054
761760   m_tmp68301->external_interrupt_0();
762761}
763762
764static const z80_daisy_config daisy_chain_sound[] =
765{
766   { "audiocpu:ctc" },
767   { NULL }
768};
769763
770
771
772764static MACHINE_CONFIG_START( niyanpai, niyanpai_state )
773765
774766   /* basic machine hardware */
r31053r31054
781773   MCFG_TMP68301_OUT_PARALLEL_CB(WRITE16(niyanpai_state, tmp68301_parallel_port_w))
782774
783775   MCFG_CPU_ADD("audiocpu", TMPZ84C011, 8000000) /* TMPZ84C011, 8.00 MHz */
784   MCFG_CPU_CONFIG(daisy_chain_sound)
785776   MCFG_CPU_PROGRAM_MAP(niyanpai_sound_map)
786777   MCFG_CPU_IO_MAP(niyanpai_sound_io_map)
787778   MCFG_TMPZ84C011_PORTD_READ_CB(READ8(niyanpai_state, cpu_portd_r))
r31053r31054
789780   MCFG_TMPZ84C011_PORTB_WRITE_CB(WRITE8(niyanpai_state, cpu_portb_w))
790781   MCFG_TMPZ84C011_PORTC_WRITE_CB(WRITE8(niyanpai_state, cpu_portc_w))
791782   MCFG_TMPZ84C011_PORTE_WRITE_CB(WRITE8(niyanpai_state, cpu_porte_w))
792   MCFG_TMPZ84C011_Z80CTC_INTR_CB(INPUTLINE("audiocpu", INPUT_LINE_IRQ0))
793   MCFG_TMPZ84C011_Z80CTC_ZC0_CB(DEVWRITELINE("audiocpu:ctc", z80ctc_device, trg3))
783   MCFG_DEVICE_MODIFY("audiocpu:ctc")
784   MCFG_Z80CTC_ZC0_CB(DEVWRITELINE("ctc", z80ctc_device, trg3))
794785
795
796786   MCFG_NVRAM_ADD_0FILL("nvram")
797787   
798788   /* video hardware */
trunk/src/mame/drivers/nbmj9195.c
r31053r31054
2525#include "includes/nb1413m3.h"      // needed for mahjong input controller
2626#include "sound/3812intf.h"
2727#include "sound/dac.h"
28#include "cpu/z80/z80daisy.h"
2928#include "includes/nbmj9195.h"
3029
3130
r31053r31054
27792778INPUT_PORTS_END
27802779
27812780
2782static const z80_daisy_config daisy_chain_main[] =
2783{
2784   { "maincpu:ctc" },
2785   { NULL }
2786};
2787
2788static const z80_daisy_config daisy_chain_sound[] =
2789{
2790   { "audiocpu:ctc" },
2791   { NULL }
2792};
2793
2794
27952781// the only difference between these 2 setups is the DAC is swapped, is that intentional?
27962782#define OTHERS_TMZ84C011_SOUND_PORTS \
27972783   MCFG_TMPZ84C011_PORTA_WRITE_CB(WRITE8(nbmj9195_state, soundcpu_porta_w)) \
r31053r31054
28292815static MACHINE_CONFIG_START( NBMJDRV1_base, nbmj9195_state )
28302816
28312817   /* basic machine hardware */
2832   MCFG_CPU_ADD("maincpu", TMPZ84C011, 12000000/2)        /* TMPZ84C011, 6.00 MHz */
2833   MCFG_CPU_CONFIG(daisy_chain_main)
2818   MCFG_CPU_ADD("maincpu", TMPZ84C011, 12000000/2) /* TMPZ84C011, 6.00 MHz */
28342819   MCFG_CPU_PROGRAM_MAP(sailorws_map)
28352820   MCFG_CPU_IO_MAP(sailorws_io_map)
2836   MCFG_CPU_VBLANK_INT_DRIVER("screen", nbmj9195_state,  ctc0_trg1)                /* vblank is connect to ctc triggfer */
2837   MCFG_TMPZ84C011_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
2821   MCFG_CPU_VBLANK_INT_DRIVER("screen", nbmj9195_state, ctc0_trg1) /* vblank is connect to ctc trigger */
28382822
2839   MCFG_CPU_ADD("audiocpu", TMPZ84C011, 8000000)                  /* TMPZ84C011, 8.00 MHz */
2840   MCFG_CPU_CONFIG(daisy_chain_sound)
2823   MCFG_CPU_ADD("audiocpu", TMPZ84C011, 8000000) /* TMPZ84C011, 8.00 MHz */
28412824   MCFG_CPU_PROGRAM_MAP(sailorws_sound_map)
28422825   MCFG_CPU_IO_MAP(sailorws_sound_io_map)
2843   MCFG_TMPZ84C011_Z80CTC_INTR_CB(INPUTLINE("audiocpu", INPUT_LINE_IRQ0))
2844   MCFG_TMPZ84C011_Z80CTC_ZC0_CB(DEVWRITELINE("audiocpu:ctc", z80ctc_device, trg3))
2826   MCFG_DEVICE_MODIFY("audiocpu:ctc")
2827   MCFG_Z80CTC_ZC0_CB(DEVWRITELINE("ctc", z80ctc_device, trg3))
28452828
2846
28472829   /* video hardware */
28482830   MCFG_SCREEN_ADD("screen", RASTER)
28492831   MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
r31053r31054
31673149   MCFG_CPU_MODIFY("maincpu")
31683150   MCFG_CPU_PROGRAM_MAP(shabdama_map)
31693151   MCFG_CPU_IO_MAP(shabdama_io_map)
3170
31713152MACHINE_CONFIG_END
31723153
31733154
trunk/src/mame/drivers/csplayh5.c
r31053r31054
3030#include "cpu/z80/tmpz84c011.h"
3131#include "sound/dac.h"
3232#include "sound/3812intf.h"
33#include "cpu/z80/z80daisy.h"
3433#include "machine/nvram.h"
3534#include "cpu/h8/h83002.h"
3635
r31053r31054
449448   }
450449}
451450
452static const z80_daisy_config daisy_chain_sound[] =
453{
454   { "audiocpu:ctc" },
455   { NULL }
456};
457
458451static MACHINE_CONFIG_START( csplayh5, csplayh5_state )
459452
460453   /* basic machine hardware */
r31053r31054
473466#endif
474467
475468   MCFG_CPU_ADD("audiocpu", TMPZ84C011, 8000000)  /* TMPZ84C011, unknown clock */
476   MCFG_CPU_CONFIG(daisy_chain_sound)
477469   MCFG_CPU_PROGRAM_MAP(csplayh5_sound_map)
478470   MCFG_CPU_IO_MAP(csplayh5_sound_io_map)
479471   MCFG_TMPZ84C011_PORTA_WRITE_CB(WRITE8(csplayh5_state, soundcpu_porta_w))
r31053r31054
481473   MCFG_TMPZ84C011_PORTC_WRITE_CB(WRITE8(csplayh5_state, soundcpu_dac1_w))
482474   MCFG_TMPZ84C011_PORTD_READ_CB(READ8(csplayh5_state, soundcpu_portd_r))
483475   MCFG_TMPZ84C011_PORTE_WRITE_CB(WRITE8(csplayh5_state, soundcpu_porte_w))
484   MCFG_TMPZ84C011_Z80CTC_INTR_CB(INPUTLINE("audiocpu", INPUT_LINE_IRQ0))
485   MCFG_TMPZ84C011_Z80CTC_ZC0_CB(DEVWRITELINE("audiocpu:ctc", z80ctc_device, trg3))
476   MCFG_DEVICE_MODIFY("audiocpu:ctc")
477   MCFG_Z80CTC_ZC0_CB(DEVWRITELINE("ctc", z80ctc_device, trg3))
486478
487479   MCFG_NVRAM_ADD_0FILL("nvram")
488480
trunk/src/mame/drivers/kenseim.c
r31053r31054
140140
141141#include "emu.h"
142142#include "cpu/z80/tmpz84c011.h"
143#include "machine/mb89363b.h"
143144#include "includes/cps1.h"
144145#include "kenseim.lh"
145#include "machine/mb89363b.h"
146146
147147class kenseim_state : public cps_state
148148{
r31053r31054
459459
460460static ADDRESS_MAP_START( kenseim_io_map, AS_IO, 8, kenseim_state )
461461   ADDRESS_MAP_GLOBAL_MASK(0xff)
462   AM_RANGE(0x20, 0x27) AM_DEVREADWRITE("mb89363b",   mb89363b_device, read, write)
462   AM_RANGE(0x20, 0x27) AM_DEVREADWRITE("mb89363b", mb89363b_device, read, write)
463463ADDRESS_MAP_END
464464
465465
466static const z80_daisy_config daisy_chain_gamecpu[] =
467{
468   { "gamecpu:ctc" },
469   { NULL }
470};
471466
472467
473468static MACHINE_CONFIG_DERIVED_CLASS( kenseim, cps1_12MHz, kenseim_state )
r31053r31054
483478   MCFG_TMPZ84C011_PORTB_READ_CB(IOPORT("DSW2"))
484479   MCFG_TMPZ84C011_PORTC_READ_CB(IOPORT("CAB-IN"))
485480   MCFG_TMPZ84C011_PORTD_READ_CB(READ8(kenseim_state, cpu_portd_r))
486   MCFG_CPU_CONFIG(daisy_chain_gamecpu)
487   MCFG_TMPZ84C011_Z80CTC_INTR_CB(INPUTLINE("gamecpu", INPUT_LINE_IRQ0))
488481
489
490482   MCFG_MB89363B_ADD("mb89363b")
491483   // a,b,c always $80: all ports set as output
492484   // d,e,f always $92: port D and E as input, port F as output

Previous 199869 Revisions Next


© 1997-2024 The MAME Team