From 0cbdabeaec491088d581abb6efd93f39b7166168 Mon Sep 17 00:00:00 2001 From: uvok Date: Sun, 4 Jan 2026 14:07:05 +0100 Subject: Start by bin creator and disassembler --- nandgame/assembler/disas.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100755 nandgame/assembler/disas.py (limited to 'nandgame/assembler/disas.py') diff --git a/nandgame/assembler/disas.py b/nandgame/assembler/disas.py new file mode 100755 index 0000000..a68acf4 --- /dev/null +++ b/nandgame/assembler/disas.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 + +import sys + +if len(sys.argv) != 2: + print(f"Usage: {sys.argv[0]} [filename]") + sys.exit(1) + +def decode(ins: int) -> str: + if (ins & 0x8000 == 0): + # mov? ldr? ldi? aaaaaaaaaaa.... + return f"mov A, #{ins}" + else: + return "" + +try: + with open(sys.argv[1], "rb") as f: + while True: + insb = f.read(2) + if not insb: break + ins = int.from_bytes(insb) + print(f"\t{insb[0]:02x} {insb[1]:02x}\t{decode(ins)}") + +except FileNotFoundError: + print(f"File not found.") + sys.exit(1) +# head, tail... +except BrokenPipeError: + sys.exit(0) -- cgit v1.2.3