1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#!/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()
|