Previous 199869 Revisions Next

r23689 Thursday 13th June, 2013 at 23:44:32 UTC by Dirk Best
cs4031: fix 16-bit dma
[src/mess/machine]cs4031.c cs4031.h

trunk/src/mess/machine/cs4031.c
r23688r23689
386386      return 0xff;
387387
388388   UINT16 result = m_space->read_word(page_offset() + (offset << 1));
389   m_dma_high_byte = result & 0xff00;
389   m_dma_high_byte = result >> 8;
390390
391   return result & 0xff;
391   return result;
392392}
393393
394394WRITE8_MEMBER( cs4031_device::dma_write_word )
r23688r23689
396396   if (m_dma_channel == -1)
397397      return;
398398
399   m_space->write_word(page_offset() + (offset << 1), m_dma_high_byte | data);
399   m_space->write_word(page_offset() + (offset << 1), (m_dma_high_byte << 8) | data);
400400}
401401
402402WRITE_LINE_MEMBER( cs4031_device::dma2_dack0_w )
trunk/src/mess/machine/cs4031.h
r23688r23689
106106   DECLARE_READ8_MEMBER( dma1_ior1_r ) { return m_read_ior(1); }
107107   DECLARE_READ8_MEMBER( dma1_ior2_r ) { return m_read_ior(2); }
108108   DECLARE_READ8_MEMBER( dma1_ior3_r ) { return m_read_ior(3); }
109   DECLARE_READ8_MEMBER( dma2_ior1_r ) { UINT16 result = m_read_ior(5); m_dma_high_byte = result & 0xff00; return result & 0xff; }
110   DECLARE_READ8_MEMBER( dma2_ior2_r ) { UINT16 result = m_read_ior(6); m_dma_high_byte = result & 0xff00; return result & 0xff; }
111   DECLARE_READ8_MEMBER( dma2_ior3_r ) { UINT16 result = m_read_ior(7); m_dma_high_byte = result & 0xff00; return result & 0xff; }
109   DECLARE_READ8_MEMBER( dma2_ior1_r ) { UINT16 result = m_read_ior(5); m_dma_high_byte = result >> 8; return result; }
110   DECLARE_READ8_MEMBER( dma2_ior2_r ) { UINT16 result = m_read_ior(6); m_dma_high_byte = result >> 8; return result; }
111   DECLARE_READ8_MEMBER( dma2_ior3_r ) { UINT16 result = m_read_ior(7); m_dma_high_byte = result >> 8; return result; }
112112   DECLARE_WRITE8_MEMBER( dma1_iow0_w ) { m_write_iow(0, data, 0xffff); }
113113   DECLARE_WRITE8_MEMBER( dma1_iow1_w ) { m_write_iow(1, data, 0xffff); }
114114   DECLARE_WRITE8_MEMBER( dma1_iow2_w ) { m_write_iow(2, data, 0xffff); }
115115   DECLARE_WRITE8_MEMBER( dma1_iow3_w ) { m_write_iow(3, data, 0xffff); }
116   DECLARE_WRITE8_MEMBER( dma2_iow1_w ) { m_write_iow(5, m_dma_high_byte | data, 0xffff); }
117   DECLARE_WRITE8_MEMBER( dma2_iow2_w ) { m_write_iow(6, m_dma_high_byte | data, 0xffff); }
118   DECLARE_WRITE8_MEMBER( dma2_iow3_w ) { m_write_iow(7, m_dma_high_byte | data, 0xffff); }
116   DECLARE_WRITE8_MEMBER( dma2_iow1_w ) { m_write_iow(5, (m_dma_high_byte << 8) | data, 0xffff); }
117   DECLARE_WRITE8_MEMBER( dma2_iow2_w ) { m_write_iow(6, (m_dma_high_byte << 8) | data, 0xffff); }
118   DECLARE_WRITE8_MEMBER( dma2_iow3_w ) { m_write_iow(7, (m_dma_high_byte << 8) | data, 0xffff); }
119119   DECLARE_WRITE_LINE_MEMBER( dma1_dack0_w ) { set_dma_channel(0, state); }
120120   DECLARE_WRITE_LINE_MEMBER( dma1_dack1_w ) { set_dma_channel(1, state); }
121121   DECLARE_WRITE_LINE_MEMBER( dma1_dack2_w ) { set_dma_channel(2, state); }

Previous 199869 Revisions Next


© 1997-2024 The MAME Team