diff options
Diffstat (limited to 'm68k_debugging.cpp')
-rw-r--r-- | m68k_debugging.cpp | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/m68k_debugging.cpp b/m68k_debugging.cpp index d02e463..7b7c84c 100644 --- a/m68k_debugging.cpp +++ b/m68k_debugging.cpp @@ -9,7 +9,7 @@ #include <cstdlib> #include <cassert> -static inline m68k_register_t ConvertRegisterId(M68KRegister register_id) +static inline m68k_register_t ConvertRegisterId(const M68KRegister register_id) { switch (register_id) { case M68KRegister::kD0: @@ -60,7 +60,7 @@ static inline m68k_register_t ConvertRegisterId(M68KRegister register_id) UNREACHABLE; } -uint32_t M68KDebuggingControl::GetRegister(M68KRegister register_id) const +uint32_t M68KDebuggingControl::GetRegister(const M68KRegister register_id) const { return m68k_get_reg(nullptr, ConvertRegisterId(register_id)); } @@ -92,7 +92,7 @@ M68KCPUState M68KDebuggingControl::GetCPUState() const }; } -void M68KDebuggingControl::SetRegister(M68KRegister register_id, uint32_t value) +void M68KDebuggingControl::SetRegister(const M68KRegister register_id, const uint32_t value) { return m68k_set_reg(ConvertRegisterId(register_id), value); } @@ -114,38 +114,44 @@ void M68KDebuggingControl::Pause() abort(); } -uint8_t M68KDebuggingControl::Read8(uint32_t address) const +#define MASK_24(X) ((X) & 0x00ffffff) + +uint8_t M68KDebuggingControl::Read8(const uint32_t address) const { - return static_cast<uint8_t>(m68k_read_memory_8(address & 0x00FFFFFF)); + return static_cast<uint8_t>(m68k_read_memory_8(MASK_24(address))); } -uint16_t M68KDebuggingControl::Read16(uint32_t address) const +uint16_t M68KDebuggingControl::Read16(const uint32_t address) const { - return static_cast<uint16_t>(m68k_read_memory_16(address & 0x00FFFFFF)); + return static_cast<uint16_t>(m68k_read_memory_16(MASK_24(address))); } -uint32_t M68KDebuggingControl::Read32(uint32_t address) const +uint32_t M68KDebuggingControl::Read32(const uint32_t address) const { - return static_cast<uint32_t>(m68k_read_memory_32(address & 0x00FFFFFF)); + return static_cast<uint32_t>(m68k_read_memory_32(MASK_24(address))); } -void M68KDebuggingControl::Write8(uint32_t address, uint8_t value) +void M68KDebuggingControl::Write8(const uint32_t address, const uint8_t value) { m68k_write_memory_8(address, value); } -void M68KDebuggingControl::Write16(uint32_t address, uint16_t value) +void M68KDebuggingControl::Write16(const uint32_t address, const uint16_t value) { m68k_write_memory_16(address, value); } -void M68KDebuggingControl::Write32(uint32_t address, uint32_t value) +void M68KDebuggingControl::Write32(const uint32_t address, const uint32_t value) { m68k_write_memory_32(address, value); } -void M68KDebuggingControl::SetBreakpoint(BreakpointType type, uint32_t address, uint32_t length) +void M68KDebuggingControl::SetBreakpoint( + const BreakpointType type, + const uint32_t address_a, + const uint32_t length) { + const uint32_t address = MASK_24(address_a); switch (type) { case BreakpointType::kSoftwareBreakpoint: case BreakpointType::kHardwareBreakpoint: { @@ -187,8 +193,12 @@ void M68KDebuggingControl::SetBreakpoint(BreakpointType type, uint32_t address, } } -void M68KDebuggingControl::RemoveBreakpoint(BreakpointType type, uint32_t address, uint32_t length) +void M68KDebuggingControl::RemoveBreakpoint( + const BreakpointType type, + const uint32_t address_a, + const uint32_t length) { + const uint32_t address = MASK_24(address_a); switch (type) { case BreakpointType::kSoftwareBreakpoint: case BreakpointType::kHardwareBreakpoint: { |