commit 7e45cd01bde3a2f7985d5c1816a64678548795de
parent 957945a0ef09f8c1aea9ac1a8096c4a73a24d170
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date: Mon, 3 Feb 2025 21:21:58 +0100
support memory accesses via templates
Diffstat:
5 files changed, 19 insertions(+), 15 deletions(-)
diff --git a/source/hardwareLib/am29f.cpp b/source/hardwareLib/am29f.cpp
@@ -123,10 +123,10 @@ namespace hwLib
if(_addr >= m_size)
return;
MCLOG("Programming word at " << MCHEX(_addr) << ", value " << MCHEXN(_data, 4));
- const auto old = mc68k::Mc68k::readW(m_buffer, _addr);
+ const auto old = mc68k::memoryOps::readU16(m_buffer, _addr);
// "A bit cannot be programmed from a 0 back to a 1"
const auto v = _data & old;
- mc68k::Mc68k::writeW(m_buffer, _addr, v);
+ mc68k::memoryOps::writeU16(m_buffer, _addr, v);
// assert(v == _data);
break;
}
diff --git a/source/mqLib/mqmc.cpp b/source/mqLib/mqmc.cpp
@@ -116,12 +116,12 @@ namespace mqLib
{
if(addr < g_memorySize)
{
- return readW(m_memory, addr);
+ return mc68k::memoryOps::readU16(m_memory, addr);
}
if(addr >= g_romAddress && addr < g_romAddress + ROM::size())
{
- const auto r = readW(m_romRuntimeData, addr - g_romAddress);
+ const auto r = mc68k::memoryOps::readU16(m_romRuntimeData, addr - g_romAddress);
// LOG("read16 from ROM addr=" << HEXN(addr, 8) << " val=" << HEXN(r, 4));
return r;
}
@@ -133,12 +133,12 @@ namespace mqLib
{
if(addr < g_memorySize)
{
- return readW(m_memory, addr);
+ return mc68k::memoryOps::readU16(m_memory, addr);
}
if(addr >= g_romAddress && addr < g_romAddress + ROM::size())
{
- const auto r = readW(m_romRuntimeData, addr - g_romAddress);
+ const auto r = mc68k::memoryOps::readU16(m_romRuntimeData, addr - g_romAddress);
// LOG("read16 from ROM addr=" << HEXN(addr, 8) << " val=" << HEXN(r, 4));
return r;
}
@@ -197,7 +197,7 @@ namespace mqLib
if(addr < g_memorySize)
{
- writeW(m_memory, addr, val);
+ mc68k::memoryOps::writeU16(m_memory, addr, val);
return;
}
diff --git a/source/nord/n2x/n2xLib/n2xmc.cpp b/source/nord/n2x/n2xLib/n2xmc.cpp
@@ -124,7 +124,7 @@ namespace n2x
{
if(_addr < m_romRam.size())
{
- const auto r = readW(m_romRam.data(), _addr);
+ const auto r = mc68k::memoryOps::readU16(m_romRam.data(), _addr);
return r;
}
@@ -200,7 +200,7 @@ namespace n2x
if(_addr < m_romRam.size())
{
assert(_addr >= g_ramAddress);
- writeW(m_romRam.data(), _addr, _val);
+ mc68k::memoryOps::writeU16(m_romRam.data(), _addr, _val);
return;
}
diff --git a/source/nord/n2x/n2xLib/n2xmc.h b/source/nord/n2x/n2xLib/n2xmc.h
@@ -31,7 +31,11 @@ namespace n2x
uint16_t readImm16(const uint32_t _addr) override
{
- return readW(m_romRam.data(), _addr & (m_romRam.size()-1));
+ return mc68k::memoryOps::readU16(m_romRam.data(), _addr & (m_romRam.size()-1));
+ }
+ uint32_t readImm32(const uint32_t _addr) const
+ {
+ return mc68k::memoryOps::readU32(m_romRam.data(), _addr & (m_romRam.size()-1));
}
uint16_t read16(uint32_t _addr) override;
uint8_t read8(uint32_t _addr) override;
diff --git a/source/xtLib/xtUc.cpp b/source/xtLib/xtUc.cpp
@@ -69,12 +69,12 @@ namespace xt
if(addr < g_ramSize)
{
- return readW(m_memory.data(), addr);
+ return mc68k::memoryOps::readU16(m_memory.data(), addr);
}
if(addr >= g_romAddr && addr < g_romAddr + Rom::Size)
{
- const auto r = readW(m_romRuntimeData.data(), addr - g_romAddr);
+ const auto r = mc68k::memoryOps::readU16(m_romRuntimeData.data(), addr - g_romAddr);
// LOG("read16 from ROM addr=" << HEXN(_addr, 8) << " val=" << HEXN(r, 4));
return r;
}
@@ -90,12 +90,12 @@ namespace xt
if(addr < g_ramSize)
{
- return readW(m_memory.data(), addr);
+ return mc68k::memoryOps::readU16(m_memory.data(), addr);
}
if(addr >= g_romAddr && addr < g_romAddr + Rom::Size)
{
- const auto r = readW(m_romRuntimeData.data(), addr - g_romAddr);
+ const auto r = mc68k::memoryOps::readU16(m_romRuntimeData.data(), addr - g_romAddr);
// LOG("read16 from ROM addr=" << HEXN(_addr, 8) << " val=" << HEXN(r, 4));
return r;
}
@@ -136,7 +136,7 @@ namespace xt
if(addr < g_ramSize)
{
- writeW(m_memory.data(), addr, val);
+ mc68k::memoryOps::writeU16(m_memory.data(), addr, val);
return;
}