Previous 199869 Revisions Next

r31082 Monday 23rd June, 2014 at 10:54:37 UTC by hap
ok, made TMPZ84C011 pins external instead of making drivers having to interface with its internal peripherals
[src/emu/cpu/z80]tmpz84c011.c tmpz84c011.h tmpz84c015.h
[src/emu/machine]mb89363b.h
[src/mame/drivers]csplayh5.c kenseim.c nbmj9195.c niyanpai.c
[src/mame/includes]nbmj9195.h

trunk/src/mame/drivers/niyanpai.c
r31081r31082
762762
763763static const z80_daisy_config daisy_chain_sound[] =
764764{
765   { "audiocpu:ctc" },
765   TMPZ84C011_DAISY_INTERNAL,
766766   { NULL }
767767};
768768
r31081r31082
786786   MCFG_TMPZ84C011_PORTB_WRITE_CB(WRITE8(niyanpai_state, cpu_portb_w))
787787   MCFG_TMPZ84C011_PORTC_WRITE_CB(WRITE8(niyanpai_state, cpu_portc_w))
788788   MCFG_TMPZ84C011_PORTE_WRITE_CB(WRITE8(niyanpai_state, cpu_porte_w))
789   MCFG_DEVICE_MODIFY("audiocpu:ctc")
790   MCFG_Z80CTC_ZC0_CB(DEVWRITELINE("ctc", z80ctc_device, trg3))
789   MCFG_TMPZ84C011_ZC0_CB(DEVWRITELINE("audiocpu", tmpz84c011_device, trg3))
791790
792791   MCFG_NVRAM_ADD_0FILL("nvram")
793792   
trunk/src/mame/drivers/kenseim.c
r31081r31082
1111  https://www.youtube.com/watch?v=yQpMvRL0FfM
1212
1313  todo:
14   we have no way of telling the physical order of the moles on the control panel vs. the reads / writes
15   so our moles could be in the wrong positions - maybe there are fixed patterns in the video we can use
16   to figure it out? * the big mole appears to be worth 2 points so that one we can identify
14  - we have no way of telling the physical order of the moles on the control panel vs. the reads / writes
15    so our moles could be in the wrong positions - maybe there are fixed patterns in the video we can use
16    to figure it out? * the big mole appears to be worth 2 points so that one we can identify
1717
1818
1919
20  Additional 'DRIVE BOARD' PCB  (todo, improve ascii layout)
20  Additional 'DRIVE BOARD' PCB
2121
2222  --------------------------------------------------------------------------------------------------------------|
2323  |                                                                                                             |
r31081r31082
466466
467467static const z80_daisy_config daisy_chain_gamecpu[] =
468468{
469   { "gamecpu:ctc" },
469   TMPZ84C011_DAISY_INTERNAL,
470470   { NULL }
471471};
472472
trunk/src/mame/drivers/nbmj9195.c
r31081r31082
321321/* CTC of main cpu, ch0 trigger is vblank */
322322INTERRUPT_GEN_MEMBER(nbmj9195_state::ctc0_trg1)
323323{
324   z80ctc_device *ctc = machine().device<z80ctc_device>("maincpu:ctc");
325   ctc->trg1(1);
326   ctc->trg1(0);
324   m_maincpu->trg1(1);
325   m_maincpu->trg1(0);
327326}
328327
329328void nbmj9195_state::machine_reset()
r31081r31082
27802779
27812780static const z80_daisy_config daisy_chain_main[] =
27822781{
2783   { "maincpu:ctc" },
2782   TMPZ84C011_DAISY_INTERNAL,
27842783   { NULL }
27852784};
27862785
27872786static const z80_daisy_config daisy_chain_sound[] =
27882787{
2789   { "audiocpu:ctc" },
2788   TMPZ84C011_DAISY_INTERNAL,
27902789   { NULL }
27912790};
27922791
r31081r31082
28382837   MCFG_CPU_CONFIG(daisy_chain_sound)
28392838   MCFG_CPU_PROGRAM_MAP(sailorws_sound_map)
28402839   MCFG_CPU_IO_MAP(sailorws_sound_io_map)
2841   MCFG_DEVICE_MODIFY("audiocpu:ctc")
2842   MCFG_Z80CTC_ZC0_CB(DEVWRITELINE("ctc", z80ctc_device, trg3))
2840   MCFG_TMPZ84C011_ZC0_CB(DEVWRITELINE("audiocpu", tmpz84c011_device, trg3))
28432841
28442842   /* video hardware */
28452843   MCFG_SCREEN_ADD("screen", RASTER)
trunk/src/mame/drivers/csplayh5.c
r31081r31082
450450
451451static const z80_daisy_config daisy_chain_sound[] =
452452{
453   { "audiocpu:ctc" },
453   TMPZ84C011_DAISY_INTERNAL,
454454   { NULL }
455455};
456456
r31081r31082
480480   MCFG_TMPZ84C011_PORTC_WRITE_CB(WRITE8(csplayh5_state, soundcpu_dac1_w))
481481   MCFG_TMPZ84C011_PORTD_READ_CB(READ8(csplayh5_state, soundcpu_portd_r))
482482   MCFG_TMPZ84C011_PORTE_WRITE_CB(WRITE8(csplayh5_state, soundcpu_porte_w))
483   MCFG_DEVICE_MODIFY("audiocpu:ctc")
484   MCFG_Z80CTC_ZC0_CB(DEVWRITELINE("ctc", z80ctc_device, trg3))
483   MCFG_TMPZ84C011_ZC0_CB(DEVWRITELINE("audiocpu", tmpz84c011_device, trg3))
485484
486485   MCFG_NVRAM_ADD_0FILL("nvram")
487486
trunk/src/mame/includes/nbmj9195.h
r31081r31082
1/******************************************************************************
2
3    nbmj9195 - Nichibutsu Mahjong games for years 1991-1995
4
5******************************************************************************/
6
7#include "cpu/z80/tmpz84c011.h"
18#include "sound/dac.h"
29
310#define VRAM_MAX    2
r31081r31082
2027      m_dac1(*this, "dac1"),
2128      m_dac2(*this, "dac2"),
2229      m_screen(*this, "screen"),
23      m_palette(*this, "palette") { }
30      m_palette(*this, "palette")
31   { }
2432
33   required_device<tmpz84c011_device> m_maincpu;
34   required_device<dac_device> m_dac1;
35   required_device<dac_device> m_dac2;
36   required_device<screen_device> m_screen;
37   required_device<palette_device> m_palette;
38
2539   int m_inputport;
2640   int m_dipswbitsel;
2741   int m_outcoin_flag;
r31081r31082
114128   int nbmj9195_dipsw_r();
115129   void nbmj9195_dipswbitsel_w(int data);
116130   void mscoutm_inputportsel_w(int data);
117   required_device<cpu_device> m_maincpu;
118   required_device<dac_device> m_dac1;
119   required_device<dac_device> m_dac2;
120   required_device<screen_device> m_screen;
121   required_device<palette_device> m_palette;
122131
123132protected:
124133   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
trunk/src/emu/machine/mb89363b.h
r31081r31082
1/***************************************************************************
12
3    Fujitsu MB89363 Parallel Communication Interface
4    (this acts as a trampoline to 2x i8255 chips)
5
6***************************************************************************/
7
28#pragma once
39
410#ifndef __MB89363B__
trunk/src/emu/cpu/z80/tmpz84c015.h
r31081r31082
55
66***************************************************************************/
77
8#pragma once
9
10#ifndef __TMPZ84C015__
11#define __TMPZ84C015__
12
813#include "emu.h"
914#include "z80.h"
1015#include "machine/z80dart.h"
1116#include "machine/z80ctc.h"
1217#include "machine/z80pio.h"
1318
19
20/***************************************************************************
21    DEVICE CONFIGURATION MACROS
22***************************************************************************/
23
1424// If an external daisy chain is used, insert this before your own device tags:
1525#define TMPZ84C015_DAISY_INTERNAL { "ctc" }, { "sio" }, { "pio" }
1626
1727// NOTE: for callbacks, see machine/z80dart.h, machine/z80ctc.h, machine/z80pio.h
1828
1929
30/***************************************************************************
31    TYPE DEFINITIONS
32***************************************************************************/
33
2034class tmpz84c015_device : public z80_device
2135{
2236public:
r31081r31082
5165   UINT8 m_irq_priority;
5266};
5367
68
69// device type definition
5470extern const device_type TMPZ84C015;
71
72
73#endif // __TMPZ84C015__
trunk/src/emu/cpu/z80/tmpz84c011.c
r31081r31082
1313const device_type TMPZ84C011 = &device_creator<tmpz84c011_device>;
1414
1515static ADDRESS_MAP_START( tmpz84c011_internal_io_map, AS_IO, 8, tmpz84c011_device )
16   AM_RANGE(0x10, 0x13) AM_MIRROR(0xff00) AM_DEVREADWRITE("ctc", z80ctc_device, read, write)
16   AM_RANGE(0x10, 0x13) AM_MIRROR(0xff00) AM_DEVREADWRITE("tmpz84c011_ctc", z80ctc_device, read, write)
1717
1818   AM_RANGE(0x50, 0x50) AM_MIRROR(0xff00) AM_READWRITE(tmpz84c011_pa_r, tmpz84c011_pa_w)
1919   AM_RANGE(0x51, 0x51) AM_MIRROR(0xff00) AM_READWRITE(tmpz84c011_pb_r, tmpz84c011_pb_w)
r31081r31082
3030
3131tmpz84c011_device::tmpz84c011_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
3232   : z80_device(mconfig, TMPZ84C011, "TMPZ84C011", tag, owner, clock, "tmpz84c011", __FILE__),
33   m_ctc(*this, "ctc"),
3433   m_io_space_config( "io", ENDIANNESS_LITTLE, 8, 16, 0, ADDRESS_MAP_NAME( tmpz84c011_internal_io_map ) ),
34   m_ctc(*this, "tmpz84c011_ctc"),
3535   m_outportsa(*this),
3636   m_outportsb(*this),
3737   m_outportsc(*this),
r31081r31082
4141   m_inportsb(*this),
4242   m_inportsc(*this),
4343   m_inportsd(*this),
44   m_inportse(*this)
44   m_inportse(*this),
45   m_zc0_cb(*this),
46   m_zc1_cb(*this),
47   m_zc2_cb(*this)
4548{
4649   memset(m_pio_dir, 0, 5);
4750   memset(m_pio_latch, 0, 5);
r31081r31082
6972   m_inportsd.resolve_safe(0);
7073   m_inportse.resolve_safe(0);
7174
75   m_zc0_cb.resolve_safe();
76   m_zc1_cb.resolve_safe();
77   m_zc2_cb.resolve_safe();
78
7279   // register for save states
7380   save_item(NAME(m_pio_dir[0]));
7481   save_item(NAME(m_pio_latch[0]));
r31081r31082
9198{
9299   z80_device::device_reset();
93100
94   // initialize TMPZ84C011 PIO
101   // initialize I/O
95102   tmpz84c011_dir_pa_w(*m_io, 0, 0); tmpz84c011_pa_w(*m_io, 0, 0xff);
96103   tmpz84c011_dir_pb_w(*m_io, 0, 0); tmpz84c011_pb_w(*m_io, 0, 0xff);
97104   tmpz84c011_dir_pc_w(*m_io, 0, 0); tmpz84c011_pc_w(*m_io, 0, 0xff);
r31081r31082
207214
208215
209216static MACHINE_CONFIG_FRAGMENT( tmpz84c011 )
210   MCFG_DEVICE_ADD("ctc", Z80CTC, DERIVED_CLOCK(1,1) )
217   MCFG_DEVICE_ADD("tmpz84c011_ctc", Z80CTC, DERIVED_CLOCK(1,1) )
211218   MCFG_Z80CTC_INTR_CB(INPUTLINE(DEVICE_SELF, INPUT_LINE_IRQ0))
219   MCFG_Z80CTC_ZC0_CB(WRITELINE(tmpz84c011_device, zc0_cb_trampoline_w))
220   MCFG_Z80CTC_ZC1_CB(WRITELINE(tmpz84c011_device, zc1_cb_trampoline_w))
221   MCFG_Z80CTC_ZC2_CB(WRITELINE(tmpz84c011_device, zc2_cb_trampoline_w))
212222MACHINE_CONFIG_END
213223
214224machine_config_constructor tmpz84c011_device::device_mconfig_additions() const
trunk/src/emu/cpu/z80/tmpz84c011.h
r31081r31082
55
66***************************************************************************/
77
8#pragma once
9
10#ifndef __TMPZ84C011__
11#define __TMPZ84C011__
12
813#include "emu.h"
914#include "z80.h"
1015#include "machine/z80ctc.h"
1116
12// NOTE: for CTC callbacks, see machine/z80ctc.h
13// TMPZ84C011 PIO callbacks
17
18/***************************************************************************
19    DEVICE CONFIGURATION MACROS
20***************************************************************************/
21
22// For daisy chain configuration, insert this:
23#define TMPZ84C011_DAISY_INTERNAL { "tmpz84c011_ctc" }
24
25// CTC callbacks
26#define MCFG_TMPZ84C011_ZC0_CB(_devcb) \
27   devcb = &tmpz84c011_device::set_zc0_callback(*device, DEVCB_##_devcb);
28
29#define MCFG_TMPZ84C011_ZC1_CB(_devcb) \
30   devcb = &tmpz84c011_device::set_zc1_callback(*device, DEVCB_##_devcb);
31
32#define MCFG_TMPZ84C011_ZC2_CB(_devcb) \
33   devcb = &tmpz84c011_device::set_zc2_callback(*device, DEVCB_##_devcb);
34
35
36// I/O callbacks
1437#define MCFG_TMPZ84C011_PORTA_READ_CB(_devcb) \
1538   devcb = &tmpz84c011_device::set_inportsa_cb(*device, DEVCB_##_devcb);
1639
r31081r31082
4366   devcb = &tmpz84c011_device::set_outportse_cb(*device, DEVCB_##_devcb);
4467
4568
69/***************************************************************************
70    TYPE DEFINITIONS
71***************************************************************************/
72
4673class tmpz84c011_device : public z80_device
4774{
4875public:
4976   tmpz84c011_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32);
5077
5178   // static configuration helpers
79   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); }
80   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); }
81   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); }
82
5283   template<class _Object> static devcb_base & set_outportsa_cb(device_t &device, _Object object) { return downcast<tmpz84c011_device &>(device).m_outportsa.set_callback(object); }
5384   template<class _Object> static devcb_base & set_outportsb_cb(device_t &device, _Object object) { return downcast<tmpz84c011_device &>(device).m_outportsb.set_callback(object); }
5485   template<class _Object> static devcb_base & set_outportsc_cb(device_t &device, _Object object) { return downcast<tmpz84c011_device &>(device).m_outportsc.set_callback(object); }
r31081r31082
6192   template<class _Object> static devcb_base & set_inportsd_cb(device_t &device, _Object object) { return downcast<tmpz84c011_device &>(device).m_inportsd.set_callback(object); }
6293   template<class _Object> static devcb_base & set_inportse_cb(device_t &device, _Object object) { return downcast<tmpz84c011_device &>(device).m_inportse.set_callback(object); }
6394
64   // devices/pointers
65   required_device<z80ctc_device> m_ctc;
95   // CTC public interface
96   DECLARE_WRITE_LINE_MEMBER( trg0 ) { m_ctc->trg0(state); }
97   DECLARE_WRITE_LINE_MEMBER( trg1 ) { m_ctc->trg1(state); }
98   DECLARE_WRITE_LINE_MEMBER( trg2 ) { m_ctc->trg2(state); }
99   DECLARE_WRITE_LINE_MEMBER( trg3 ) { m_ctc->trg3(state); }
100   
101   /////////////////////////////////////////////////////////
66102
67   DECLARE_READ8_MEMBER(tmpz84c011_pa_r);
68   DECLARE_READ8_MEMBER(tmpz84c011_pb_r);
69   DECLARE_READ8_MEMBER(tmpz84c011_pc_r);
70   DECLARE_READ8_MEMBER(tmpz84c011_pd_r);
71   DECLARE_READ8_MEMBER(tmpz84c011_pe_r);
72   DECLARE_WRITE8_MEMBER(tmpz84c011_pa_w);
73   DECLARE_WRITE8_MEMBER(tmpz84c011_pb_w);
74   DECLARE_WRITE8_MEMBER(tmpz84c011_pc_w);
75   DECLARE_WRITE8_MEMBER(tmpz84c011_pd_w);
76   DECLARE_WRITE8_MEMBER(tmpz84c011_pe_w);
77   DECLARE_READ8_MEMBER(tmpz84c011_dir_pa_r);
78   DECLARE_READ8_MEMBER(tmpz84c011_dir_pb_r);
79   DECLARE_READ8_MEMBER(tmpz84c011_dir_pc_r);
80   DECLARE_READ8_MEMBER(tmpz84c011_dir_pd_r);
81   DECLARE_READ8_MEMBER(tmpz84c011_dir_pe_r);
82   DECLARE_WRITE8_MEMBER(tmpz84c011_dir_pa_w);
83   DECLARE_WRITE8_MEMBER(tmpz84c011_dir_pb_w);
84   DECLARE_WRITE8_MEMBER(tmpz84c011_dir_pc_w);
85   DECLARE_WRITE8_MEMBER(tmpz84c011_dir_pd_w);
86   DECLARE_WRITE8_MEMBER(tmpz84c011_dir_pe_w);
103   DECLARE_READ8_MEMBER( tmpz84c011_pa_r );
104   DECLARE_READ8_MEMBER( tmpz84c011_pb_r );
105   DECLARE_READ8_MEMBER( tmpz84c011_pc_r );
106   DECLARE_READ8_MEMBER( tmpz84c011_pd_r );
107   DECLARE_READ8_MEMBER( tmpz84c011_pe_r );
108   DECLARE_WRITE8_MEMBER( tmpz84c011_pa_w );
109   DECLARE_WRITE8_MEMBER( tmpz84c011_pb_w );
110   DECLARE_WRITE8_MEMBER( tmpz84c011_pc_w );
111   DECLARE_WRITE8_MEMBER( tmpz84c011_pd_w );
112   DECLARE_WRITE8_MEMBER( tmpz84c011_pe_w );
87113
114   DECLARE_READ8_MEMBER( tmpz84c011_dir_pa_r );
115   DECLARE_READ8_MEMBER( tmpz84c011_dir_pb_r );
116   DECLARE_READ8_MEMBER( tmpz84c011_dir_pc_r );
117   DECLARE_READ8_MEMBER( tmpz84c011_dir_pd_r );
118   DECLARE_READ8_MEMBER( tmpz84c011_dir_pe_r );
119   DECLARE_WRITE8_MEMBER( tmpz84c011_dir_pa_w );
120   DECLARE_WRITE8_MEMBER( tmpz84c011_dir_pb_w );
121   DECLARE_WRITE8_MEMBER( tmpz84c011_dir_pc_w );
122   DECLARE_WRITE8_MEMBER( tmpz84c011_dir_pd_w );
123   DECLARE_WRITE8_MEMBER( tmpz84c011_dir_pe_w );
124
125   DECLARE_WRITE_LINE_MEMBER( zc0_cb_trampoline_w ) { m_zc0_cb(state); }
126   DECLARE_WRITE_LINE_MEMBER( zc1_cb_trampoline_w ) { m_zc1_cb(state); }
127   DECLARE_WRITE_LINE_MEMBER( zc2_cb_trampoline_w ) { m_zc2_cb(state); }
128
88129protected:
89130   // device-level overrides
90131   virtual machine_config_constructor device_mconfig_additions() const;
r31081r31082
103144   }
104145
105146private:
147   // devices/pointers
148   required_device<z80ctc_device> m_ctc;
149
106150   // internal state
107151   UINT8 m_pio_dir[5];
108152   UINT8 m_pio_latch[5];
r31081r31082
119163   devcb_read8 m_inportsc;
120164   devcb_read8 m_inportsd;
121165   devcb_read8 m_inportse;
166
167   devcb_write_line m_zc0_cb;
168   devcb_write_line m_zc1_cb;
169   devcb_write_line m_zc2_cb;
122170};
123171
172
173// device type definition
124174extern const device_type TMPZ84C011;
175
176
177#endif /// __TMPZ84C011__

Previous 199869 Revisions Next


© 1997-2024 The MAME Team