From 9c0c0255f61fde534dcffceb1c0d156d8f472236 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Thu, 15 Oct 2020 21:10:32 -0400 Subject: [PATCH] Ensures data/program bank can't accidentally be set to 16-bit values. --- Processors/65816/Implementation/65816Base.cpp | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Processors/65816/Implementation/65816Base.cpp b/Processors/65816/Implementation/65816Base.cpp index fed760fa7..cb7d5e1ce 100644 --- a/Processors/65816/Implementation/65816Base.cpp +++ b/Processors/65816/Implementation/65816Base.cpp @@ -29,16 +29,16 @@ uint16_t ProcessorBase::get_value_of_register(Register r) const { void ProcessorBase::set_value_of_register(Register r, uint16_t value) { switch (r) { - case Register::ProgramCounter: registers_.pc = value; break; - case Register::StackPointer: registers_.s.full = value; break; - case Register::Flags: set_flags(uint8_t(value)); break; - case Register::A: registers_.a.full = value; break; - case Register::X: registers_.x.full = value; break; - case Register::Y: registers_.y.full = value; break; - case Register::EmulationFlag: set_emulation_mode(value); break; - case Register::DataBank: registers_.data_bank = uint32_t(value) << 16; break; - case Register::ProgramBank: registers_.program_bank = uint32_t(value) << 16; break; - case Register::Direct: registers_.direct = value; break; + case Register::ProgramCounter: registers_.pc = value; break; + case Register::StackPointer: registers_.s.full = value; break; + case Register::Flags: set_flags(uint8_t(value)); break; + case Register::A: registers_.a.full = value; break; + case Register::X: registers_.x.full = value; break; + case Register::Y: registers_.y.full = value; break; + case Register::EmulationFlag: set_emulation_mode(value); break; + case Register::DataBank: registers_.data_bank = uint32_t(value & 0xff) << 16; break; + case Register::ProgramBank: registers_.program_bank = uint32_t(value &0xff) << 16; break; + case Register::Direct: registers_.direct = value; break; default: break; } }