#!/usr/bin/env python3 """ Basically, iterate all 16-bit numbers, or rather, 15-bit, to have valid nandgame instructions, skip reserved bits. """ #ENDIANNESS = 'big' ENDIANNESS = 'little' def main(): with open("allins.bin", "wb") as f: ins=0x0000 # ldi A, 0 f.write(ins.to_bytes(2, byteorder = ENDIANNESS)) ins=0x00ff # ldi A, 255 f.write(ins.to_bytes(2, byteorder = ENDIANNESS)) for ins in range(0x8000, 0xffff + 1): # unused bytes, force 1 if (ins & 0x6800) != 0x6800: continue f.write(ins.to_bytes(2, byteorder = ENDIANNESS)) import sys if __name__ == "__main__": if len(sys.argv) == 2: if sys.argv[1] in ["little", "le"]: ENDIANNESS = "little" elif sys.argv[1] in ["big", "be"]: ENDIANNESS = "big" print(f"Use Endianness: {ENDIANNESS}") main()