#! /usr/bin/env python import fileinput import re import os import sys command_pattern = re.compile(".*(data|addr|exit) ?(0x.*|[0-9]*|)?") unknown_pattern = re.compile("[0-9|a-f]:\ *(.*)(\?\?\?|unk5f)") for line in fileinput.input(): script_number = 0 #start of new script if "script" in line: script_number = int(line.split("script")[1][:-2]) print "executing PMS script %d" % script_number address = 0xFFFFFFFF value= 0xFFFFFFFF continue match = command_pattern.search(line) if match: if match.groups()[0] == "data": value = int(match.groups()[1], 0) elif match.groups()[0] == "addr": address = int(match.groups()[1], 0) print "0x%x = 0x%x" % (address, value) elif match.groups()[0] == "exit": print "exit" continue match = unknown_pattern.search(line) if match: print match.groups()[0] continue sys.stdout.write(line) continue """ answer = raw_input("do you want to: %s :" % execstring) if answer == "no": continue print "executing %s" % execstring os.system(execstring) """