4 from intelhex import IntelHex
10 print(f'usage: {sys.argv[0]:s} entry_point in.ihx out.ihx')
11 sys.exit(EXIT_FAILURE)
12 entry_point = [int(i, 0) for i in sys.argv[1].split(':')]
16 intelhex = IntelHex(in_ihx)
17 segments = [j for i in intelhex.segments() for j in i]
18 for i in range(0, len(segments), 2):
19 print(f'[{segments[i]:04x}, {segments[i + 1]:04x})')
20 intelhex.start_addr = (
21 {'EIP': entry_point[0]}
22 if len(entry_point) == 1 else
23 {'CS': entry_point[0], 'IP': entry_point[1]}
25 intelhex.write_hex_file(out_ihx)