diff options
Diffstat (limited to 'nandgame/assembler/disas_main.py')
| -rw-r--r-- | nandgame/assembler/disas_main.py | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/nandgame/assembler/disas_main.py b/nandgame/assembler/disas_main.py index 05ce466..d9d314f 100644 --- a/nandgame/assembler/disas_main.py +++ b/nandgame/assembler/disas_main.py @@ -1,24 +1,34 @@ +import argparse import sys import py_nand_ass.disas as dass # pyright: ignore[reportImplicitRelativeImport] def main(): - if len(sys.argv) != 2: - print(f"Usage: {sys.argv[0]} [filename]") - sys.exit(1) - - filename = sys.argv[1] + arg_parser = argparse.ArgumentParser( + prog="disas_main.py", description="Nandgame disassembler" + ) + + g = arg_parser.add_mutually_exclusive_group() + g.add_argument("--le", action="store_true") + g.add_argument("--be", action="store_true") + arg_parser.add_argument("filename") + args = arg_parser.parse_args() + endianness = "little" + if args.be: + endianness = "big" + + filename = args.filename try: with open(filename, "rb") as f: while True: insb = f.read(2) if not insb: break - ins = int.from_bytes(insb, byteorder=ENDIANNESS) - if ENDIANNESS in ["big", "be"]: + ins = int.from_bytes(insb, byteorder=endianness) + if endianness in ["big", "be"]: raw_ins = f"{insb[0]:02x} {insb[1]:02x}" - elif ENDIANNESS in ["little", "le"]: + elif endianness in ["little", "le"]: raw_ins = f"{insb[1]:02x} {insb[0]:02x}" else: raw_ins = f"?? ??" |
