diff options
author | Bryan Bishop <kanzure@gmail.com> | 2012-05-16 14:37:30 -0500 |
---|---|---|
committer | Bryan Bishop <kanzure@gmail.com> | 2012-05-16 14:37:30 -0500 |
commit | 69d502d6cf97759415024fc307ecc9b1ffe83c8a (patch) | |
tree | f67a642cf9aeb0a74cea743770db66f71b22eb52 | |
parent | 87e6810337a9838d2894ee1b8db7a2efd9caf11a (diff) |
tool to help narrow down the problem in a bank
original-commit-id: 34c6b38da6026b3a877c68541d0d7bd0ec1373e9
-rw-r--r-- | crystal.py | 29 |
1 files changed, 29 insertions, 0 deletions
@@ -5962,6 +5962,14 @@ class Asm: #make sure the file ends with a newline fh.write("\n") +def list_things_in_bank(bank): + objects = [] + for blah in script_parse_table.items(): + object = blah[1] + if hasattr(object, "address") and calculate_bank(object.address) == bank: + objects.append(object) + return objects + def list_texts_in_bank(bank): """ Narrows down the list of objects that you will be inserting into Asm. @@ -6032,6 +6040,27 @@ def dump_asm_for_movements_in_bank(bank, start=0, end=100): asm.dump() print "done dumping movements for bank $%.2x" % (bank) +def dump_things_in_bank(bank, start=50, end=100): + """ is helpful for figuring out which object is breaking that bank. + """ + # load and parse the ROM if necessary + if rom == None or len(rom) <= 4: + load_rom() + run_main() + + things = list_things_in_bank(bank)[start:end] + + # create a new dump + asm = Asm() + + # start the insertion process + asm.insert_multiple_with_dependencies(things) + + # start dumping + asm.dump() + + print "done dumping things for bank $%.2x" % (bank) + def index(seq, f): """return the index of the first item in seq where f(item) == True.""" |