diff options
| author | Jan Tuomi <jans.tuomi@gmail.com> | 2024-02-22 08:52:20 +0200 |
|---|---|---|
| committer | Jan Tuomi <jans.tuomi@gmail.com> | 2024-02-22 08:52:20 +0200 |
| commit | 416e896956d3b05793337da6609fe1544797c0a9 (patch) | |
| tree | 9fa0cf3b622d4c9c086e4c08c5011ab12fdd4a77 /atk16_emu/emu.py | |
| parent | aefe0cf3874c542669051b2b3cc21c9590aa970b (diff) | |
Add stuff, refactor
Diffstat (limited to 'atk16_emu/emu.py')
| -rw-r--r-- | atk16_emu/emu.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/atk16_emu/emu.py b/atk16_emu/emu.py index 1596222..591eeb5 100644 --- a/atk16_emu/emu.py +++ b/atk16_emu/emu.py @@ -184,7 +184,7 @@ class Machine: self.running = True def run_until_halted(self): - "Run the machine until HLT instruction is encountered" + "Run the self until HLT instruction is encountered" self.running = True while self.running: self.step() @@ -324,3 +324,17 @@ class Machine: case 0b1111: return HLT() raise ValueError(f"Invalid instruction: {instr:>016b} ({instr:>04x})") + + def print_state_summary(self): + for i in range(8): + reg_name = f"r{chr(ord('a') + i)}" + value = getattr(self, reg_name).value + print(f"{reg_name.upper()}: 0x{value:>04x} ({value})") + + print(f"PC: 0x{self.pc.value:>04x} ({self.pc.value})") + print(f"FR: carry={self.fr.carry}\n " + f"overflow={self.fr.overflow}\n " + f"zero={self.fr.zero}\n " + f"sign={self.fr.sign}") + for i in range(8): + print(f"RAM[{i}]: 0x{self.ram.read(i):>04x} ({self.ram.read(i)})")
\ No newline at end of file |
