Generate a Microcorruption Memory Dump
October 14, 2016 ยท View on GitHub
from future import print_function
from argparse import ArgumentParser import sys
def decode_binary(input_file, output_file): next_addr = 0
for line in input_file:
addr,data = line.split(':')[:2]
addr = int(addr, 16)
data = ''.join(data.split(' ')[3:11]).strip()
if data == '*':
data = '00'*16
print('{:04x}: {}'.format(addr, data))
data = data.decode('hex')
if next_addr == addr:
output_file.write(data)
else:
difference = addr - next_addr
blank_data = ('00'*difference).decode('hex')
output_file.write(blank_data)
output_file.write(data)
next_addr = addr + 16
if name == 'main': parser = ArgumentParser() parser.add_argument('input_file') parser.add_argument('output_file') args = parser.parse_args()
with open(args.input_file, 'r') as f:
with open(args.output_file, 'w') as o:
decoded_binary = decode_binary(f, o)