summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/csplayh5.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/csplayh5.cpp')
-rw-r--r--src/mame/drivers/csplayh5.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/mame/drivers/csplayh5.cpp b/src/mame/drivers/csplayh5.cpp
index bca9301e1ca..6ac1e75b7ec 100644
--- a/src/mame/drivers/csplayh5.cpp
+++ b/src/mame/drivers/csplayh5.cpp
@@ -49,12 +49,14 @@ public:
csplayh5_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
+ m_tmp68301(*this, "tmp68301"),
m_nichisnd(*this, "nichisnd"),
m_key(*this, "KEY.%u", 0),
m_region_maincpu(*this, "maincpu")
{ }
- required_device<tmp68301_device> m_maincpu;
+ required_device<cpu_device> m_maincpu;
+ required_device<tmp68301_device> m_tmp68301;
required_device<nichisnd_device> m_nichisnd;
required_ioport_array<5> m_key;
required_memory_region m_region_maincpu;
@@ -140,6 +142,8 @@ void csplayh5_state::csplayh5_map(address_map &map)
map(0x800000, 0xbfffff).rom().region("blit_gfx", 0); // GFX ROM routes here
map(0xc00000, 0xc7ffff).ram().share("nvram").mirror(0x380000); // work RAM
+
+ map(0xfffc00, 0xffffff).rw(m_tmp68301, FUNC(tmp68301_device::regs_r), FUNC(tmp68301_device::regs_w)); // TMP68301 Registers
}
#if USE_H8
@@ -326,7 +330,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(csplayh5_state::csplayh5_irq)
int scanline = param;
if(scanline == 212*2)
- m_maincpu->external_interrupt_0();
+ m_tmp68301->external_interrupt_0();
}
WRITE_LINE_MEMBER(csplayh5_state::csplayh5_vdp0_interrupt)
@@ -357,12 +361,16 @@ WRITE16_MEMBER(csplayh5_state::tmp68301_parallel_port_w)
void csplayh5_state::csplayh5(machine_config &config)
{
/* basic machine hardware */
- TMP68301(config, m_maincpu, 16000000); /* TMP68301-16 */
+ M68000(config, m_maincpu, 16000000); /* TMP68301-16 */
m_maincpu->set_addrmap(AS_PROGRAM, &csplayh5_state::csplayh5_map);
- m_maincpu->out_parallel_callback().set(FUNC(csplayh5_state::tmp68301_parallel_port_w));
+ m_maincpu->set_irq_acknowledge_callback("tmp68301", FUNC(tmp68301_device::irq_callback));
TIMER(config, "scantimer", 0).configure_scanline(timer_device::expired_delegate(FUNC(csplayh5_state::csplayh5_irq), this), "screen", 0, 1);
+ TMP68301(config, m_tmp68301, 0);
+ m_tmp68301->set_cputag(m_maincpu);
+ m_tmp68301->out_parallel_callback().set(FUNC(csplayh5_state::tmp68301_parallel_port_w));
+
#if USE_H8
h830002_device &subcpu(H83002(config, "subcpu", DVD_CLOCK/2)); /* unknown divider */
subcpu.set_addrmap(AS_PROGRAM, &csplayh5_state::csplayh5_sub_map);