2017-05-30 08:48:19 -07:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
import sys
|
|
|
|
|
2017-06-13 07:50:03 -07:00
|
|
|
|
2017-05-30 08:48:19 -07:00
|
|
|
def pairwise(iterable):
|
|
|
|
a = iter(iterable)
|
|
|
|
return zip(a, a)
|
|
|
|
|
2017-09-05 14:15:47 -07:00
|
|
|
|
2017-05-30 08:48:19 -07:00
|
|
|
files = sys.argv[1:]
|
|
|
|
files = list(pairwise(files))
|
|
|
|
|
|
|
|
offset = int(files[0][0], 16)
|
|
|
|
|
|
|
|
out = bytearray()
|
|
|
|
|
|
|
|
for addr, fn in files:
|
|
|
|
addr = int(addr, 16) - offset
|
|
|
|
data = open(fn, 'rb').read()
|
|
|
|
if len(out) < addr:
|
|
|
|
out += b'\x00' * (addr - len(out))
|
|
|
|
if len(out) != addr:
|
|
|
|
raise Exception('Alignment failed')
|
|
|
|
out += data
|
|
|
|
|
|
|
|
sys.stdout.buffer.write(out)
|