diff --git a/m6502/memory.py b/m6502/memory.py index 01f4894..133dac2 100644 --- a/m6502/memory.py +++ b/m6502/memory.py @@ -13,9 +13,9 @@ def __init__(self, size: int = None) -> None: """ if size is None: size = 0xFFFF - if size < 0x0200: + elif size < 0x0200: raise ValueError("Memory size is not valid") - if size > 0xFFFF: + elif size > 0xFFFF: raise ValueError("Memory size is not valid") self.size = size self.memory = [0] * self.size @@ -27,7 +27,7 @@ def __getitem__(self, address: int) -> int: :param address: The address to read from :return: The value at the specified address """ - if 0x0000 < address > 0xFFFF: + if 0 > address or address > 0xFFFF: raise ValueError("Memory address is not valid") return self.memory[address] @@ -39,7 +39,7 @@ def __setitem__(self, address: int, value: int) -> int: :param value: The value to write to the address :return: None """ - if 0x0000 < address > 0xFFFF: + if 0 > address or address > 0xFFFF: raise ValueError("Memory address is not valid") if value.bit_length() > 8: raise ValueError("Value too large") diff --git a/m6502/processor.py b/m6502/processor.py index c52923e..19771b1 100644 --- a/m6502/processor.py +++ b/m6502/processor.py @@ -234,7 +234,9 @@ def execute(self, cycles: int = 0) -> None: """ while (self.cycles < cycles) or (cycles == 0): opcode = self.fetch_byte() - eval("self.ins_" + self.OPCODES[opcode] + "_" + self.ADDRESSING[opcode] + "()") # noqa: PLW0123 + name = f"ins_{self.OPCODES[opcode]}_{self.ADDRESSING[opcode]}" + method = getattr(self, name) + method() def ins_nop_imp(self) -> None: """