From f36915384c0dfb819e09d0d616b95800cd2fb660 Mon Sep 17 00:00:00 2001 From: cracyc Date: Thu, 18 Feb 2016 16:01:24 -0600 Subject: [PATCH] pc9801: maybe this is better, I don't know of any users of mode 1(nw) --- src/mame/drivers/pc9801.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/mame/drivers/pc9801.cpp b/src/mame/drivers/pc9801.cpp index 08ea266245a..6ef0aef089d 100644 --- a/src/mame/drivers/pc9801.cpp +++ b/src/mame/drivers/pc9801.cpp @@ -2894,10 +2894,13 @@ READ8_MEMBER(pc9801_state::dma_read_byte) switch(m_dma_autoinc[m_dack]) { case 1: - ++m_dma_offset[m_dack] &= 0xf; + { + UINT8 page = m_dma_offset[m_dack]; + m_dma_offset[m_dack] = ((page + 1) & 0xf) | (page & 0xf0); break; + } case 3: - ++m_dma_offset[m_dack] &= 0xff; + m_dma_offset[m_dack]++; break; } } @@ -2917,10 +2920,13 @@ WRITE8_MEMBER(pc9801_state::dma_write_byte) switch(m_dma_autoinc[m_dack]) { case 1: - ++m_dma_offset[m_dack] &= 0xf; + { + UINT8 page = m_dma_offset[m_dack]; + m_dma_offset[m_dack] = ((page + 1) & 0xf) | (page & 0xf0); break; + } case 3: - ++m_dma_offset[m_dack] &= 0xff; + m_dma_offset[m_dack]++; break; } }