Код:
#!/usr/bin/env python3
import sys
# pad to this size
PADDING=0
def bin2db(input_file, varname="mydata", bytes_per_line=12):
with open(input_file, "rb") as f:
data = f.read()
if PADDING > 0:
data = bytearray(data)
zeroes = bytearray([0] * (PADDING - len(data)))
data = data + zeroes
#data.append(bytearray((len(data) + PADDING) % PADDING))
print(f" ; padded {varname} size = {len(data)}");
for i in range(0, len(data), bytes_per_line):
chunk = data[i:i+bytes_per_line]
hexes = ', '.join(f'${b:02X}' for b in chunk)
print(f" .db {hexes}")
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: bin2db.py <inputfile> [varname]")
sys.exit(1)
input_file = sys.argv[1]
varname = sys.argv[2] if len(sys.argv) > 2 else "mydata"
if len(sys.argv) > 3:
PADDING = int(sys.argv[3])
bin2db(input_file, varname)