diff --git a/src/simudator/core/modules/memory.py b/src/simudator/core/modules/memory.py index 97a8690340985fa271f62a81d54595630712a597..d71774550dd0565f864d93d7261f4b64a7f6a6b2 100644 --- a/src/simudator/core/modules/memory.py +++ b/src/simudator/core/modules/memory.py @@ -31,7 +31,7 @@ class Memory(Module): self.output_s = output_signal # Internal state - self.memory = [0 for i in range(size)] + self.memory = [0 for _ in range(size)] self.current_adress = 0 self.is_write = False diff --git a/src/simudator/processor/mia/gui/mia_memory_graphic.py b/src/simudator/processor/mia/gui/mia_memory_graphic.py index e3c314a88f855d411ec5a7f3b86716a656644519..9b7f2f62966fdd945b7331631f3526b008ef1f99 100644 --- a/src/simudator/processor/mia/gui/mia_memory_graphic.py +++ b/src/simudator/processor/mia/gui/mia_memory_graphic.py @@ -7,6 +7,7 @@ from qtpy.QtWidgets import ( QTextEdit, QVBoxLayout, QWidget, + QErrorMessage, ) from simudator.core.modules import Memory @@ -57,6 +58,7 @@ class MiaMemoryGraphicsItem(MemoryGraphicsItem): def __init__(self, memory_module: Memory, **kwargs): super().__init__(memory_module, **kwargs) self.memory_window = None + self.errorMessageWidget = QErrorMessage() def draw_graphics_item(self) -> None: # Same as normal memory but no control signal @@ -145,6 +147,12 @@ class MiaMemoryGraphicsItem(MemoryGraphicsItem): ) else: module_state = self.module.get_state() - module_state['memory'][parsed_adress] = parsed_value - self.module.set_state(module_state) - self.update_graphics_signal.emit() + try: + module_state['memory'][parsed_adress] = parsed_value + except IndexError: + self.errorMessageWidget.showMessage( + "Address entered was larger than memory space. Max address is 0xff" + ) + else: + self.module.set_state(module_state) + self.update_graphics_signal.emit() diff --git a/src/simudator/processor/mia/mia.py b/src/simudator/processor/mia/mia.py index 27333e5c0c7581e8e9cbf5dd4aa6b277c8dd5012..077f74a3092f3f5f17cce2c86e4bcc59a8ec5c06 100644 --- a/src/simudator/processor/mia/mia.py +++ b/src/simudator/processor/mia/mia.py @@ -280,10 +280,8 @@ class MIA_CPU(Processor): self.micro_memory = uM - self.lambdas = {} - def is_new_instruction(self) -> bool: return self.get_module("uPC").value == 0 @@ -297,7 +295,7 @@ class MIA_CPU(Processor): op_code = ir.op return self.get_module("K1").get_label(int(op_code)) - def run_asm_instruction(self, num_instructions = 1) -> None: + def run_asm_instruction(self, num_instructions=1) -> None: """ Runs 'num_instructions' assembler instructions on Mia. @@ -313,7 +311,6 @@ class MIA_CPU(Processor): self.do_tick() - def should_halt(self) -> bool: micro_memory_state = self.micro_memory.get_state() return micro_memory_state["halt"] @@ -382,7 +379,7 @@ class MIA_CPU(Processor): gui.addAllSignals() gui.show() - # gui.loadLayoutFromFile("mia_layout") + gui.loadLayoutFromFile("mia_layout") app.exec() def launch_cli(self):