diff options
author | Bryan Bishop <kanzure@gmail.com> | 2012-04-03 00:59:16 -0500 |
---|---|---|
committer | Bryan Bishop <kanzure@gmail.com> | 2012-04-03 00:59:16 -0500 |
commit | 0c83eb9a9865a499e5e9aeab0c8e49030cc7d0bc (patch) | |
tree | 025d8d4b537a82c3a79a2547a069b1f6599e363a /crystal.py | |
parent | eb5273f53844b6e7e830aaaa29c1b4c0a788e0b0 (diff) |
not sure why the scripts aren't working yet
original-commit-id: 21081a08e1976a13b77057820724c2318f3f116f
Diffstat (limited to 'crystal.py')
-rw-r--r-- | crystal.py | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -2592,7 +2592,8 @@ command_classes = create_command_classes() def parse_script_with_command_classes(start_address): """parses a script using the Command classes as an alternative to the old method using hard-coded commands""" - global command_classes + global command_classes, rom + load_rom() current_address = start_address commands = [] end = False @@ -2604,6 +2605,9 @@ def parse_script_with_command_classes(start_address): if kls.id == cur_byte: right_kls = kls if right_kls == None: + print "current_address is: " + hex(current_address) + current_address += 1 + continue asm_output = "" for command in commands: asm_output += command.to_asm() + "\n" @@ -2611,7 +2615,10 @@ def parse_script_with_command_classes(start_address): cls = right_kls(address=current_address) end = cls.end commands.append(cls) - current_address = cls.last_address + 1 + #current_address = cls.last_address + 1 + current_address += cls.size + 1 + asm_output = "".join([command.to_asm()+"\n" for command in commands]) + print asm_output return commands #use this to keep track of commands without pksv names @@ -2794,6 +2801,8 @@ class Script(): start_address = offset last_byte_address = offset + size - 1 pointer = calculate_pointer_from_bytes_at(start_address+1) + if pointer == None: + raise Exception, "pointer is None (shouldn't be None pointer on 0x0 script command" command["pointer"] = pointer if debug: print "in script starting at "+hex(original_start_address)+\ |