summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/devices/sound/l7a1045_l6028_dsp_a.h2
-rw-r--r--src/mame/drivers/mpc3000.cpp19
2 files changed, 15 insertions, 6 deletions
diff --git a/src/devices/sound/l7a1045_l6028_dsp_a.h b/src/devices/sound/l7a1045_l6028_dsp_a.h
index fecca395b89..e8d5fa415e5 100644
--- a/src/devices/sound/l7a1045_l6028_dsp_a.h
+++ b/src/devices/sound/l7a1045_l6028_dsp_a.h
@@ -24,6 +24,8 @@ public:
DECLARE_READ8_MEMBER(dma_r_cb);
DECLARE_WRITE8_MEMBER(dma_w_cb);
+ DECLARE_READ16_MEMBER(dma_r16_cb) { m_voice[0].pos++; return 0; }
+ DECLARE_WRITE16_MEMBER(dma_w16_cb) { m_voice[0].pos++; }
DECLARE_WRITE_LINE_MEMBER(dma_hreq_cb);
protected:
diff --git a/src/mame/drivers/mpc3000.cpp b/src/mame/drivers/mpc3000.cpp
index 32522bfce2d..0b8d94edd15 100644
--- a/src/mame/drivers/mpc3000.cpp
+++ b/src/mame/drivers/mpc3000.cpp
@@ -103,7 +103,8 @@ private:
DECLARE_READ16_MEMBER(dsp_0008_hack_r);
DECLARE_WRITE16_MEMBER(dsp_0008_hack_w);
- DECLARE_READ8_MEMBER(dma_memr_cb);
+ DECLARE_READ16_MEMBER(dma_memr_cb);
+ DECLARE_WRITE16_MEMBER(dma_memw_cb);
DECLARE_PALETTE_INIT(mpc3000);
};
@@ -156,10 +157,15 @@ void mpc3000_state::mpc3000_io_map(address_map &map)
map(0x00f8, 0x00ff).rw("adcexp", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff);
}
-READ8_MEMBER(mpc3000_state::dma_memr_cb)
+READ16_MEMBER(mpc3000_state::dma_memr_cb)
{
//logerror("dma_memr_cb: offset %x\n", offset);
- return m_maincpu->space(AS_PROGRAM).read_byte(offset);
+ return m_maincpu->space(AS_PROGRAM).read_word(offset);
+}
+
+WRITE16_MEMBER(mpc3000_state::dma_memw_cb)
+{
+ m_maincpu->space(AS_PROGRAM).write_word(offset, data);
}
PALETTE_INIT_MEMBER(mpc3000_state, mpc3000)
@@ -174,9 +180,10 @@ void mpc3000_state::mpc3000(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &mpc3000_state::mpc3000_map);
m_maincpu->set_addrmap(AS_IO, &mpc3000_state::mpc3000_io_map);
m_maincpu->out_hreq_cb().set(m_maincpu, FUNC(v53a_device::hack_w));
- m_maincpu->in_memr_cb().set(FUNC(mpc3000_state::dma_memr_cb));
- m_maincpu->in_ior_cb<3>().set(m_dsp, FUNC(l7a1045_sound_device::dma_r_cb));
- m_maincpu->out_iow_cb<3>().set(m_dsp, FUNC(l7a1045_sound_device::dma_w_cb));
+ m_maincpu->in_mem16r_cb().set(FUNC(mpc3000_state::dma_memr_cb));
+ m_maincpu->out_mem16w_cb().set(FUNC(mpc3000_state::dma_memw_cb));
+ m_maincpu->in_io16r_cb<3>().set(m_dsp, FUNC(l7a1045_sound_device::dma_r16_cb));
+ m_maincpu->out_io16w_cb<3>().set(m_dsp, FUNC(l7a1045_sound_device::dma_w16_cb));
hc259_device &loledlatch(HC259(config, "loledlatch"));
loledlatch.q_out_cb<0>().set_output("led0").invert(); // Edit Loop