4 from intelhex import IntelHex
10 print(f'usage: {sys.argv[0]:s} in.ptap out.ihx')
11 sys.exit(EXIT_FAILURE)
16 with open(in_ptap, 'rb') as fin:
21 #print(f'{data[0]:02x}')
29 load_size = data[2] | (data[3] << 8)
30 load_addr = data[4] | (data[5] << 8)
33 data += fin.read(load_size + 1)
34 assert len(data) == load_size + 7
35 assert (sum(data) & 0xff) == 0
37 assert (load_addr & 1) == 0
38 print(f'entry_point {load_addr:04x}')
39 intelhex.start_addr = {'EIP': load_addr}
41 print(f'[{load_addr:04x}, {load_addr + load_size:04x}]')
42 intelhex.frombytes(data[6:-1], load_addr)
43 intelhex.write_hex_file(out_ihx)