summaryrefslogtreecommitdiff
path: root/gbz80disasm.py
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2013-06-27 22:28:53 -0400
committeryenatch <yenatch@gmail.com>2013-06-27 22:28:53 -0400
commit117c433dc2cea58a18e7dfba5c1e0c5860136f78 (patch)
treedd8bdc4168f54361aa223a10dc1b69c4172dd7f9 /gbz80disasm.py
parentc805f6ac359743e4aa8e73211d1aab3d65e6ed55 (diff)
gbz80disasm: use existing labels as addresses
original-commit-id: fe4b13e304decc48af0918fce281ed588f867a72
Diffstat (limited to 'gbz80disasm.py')
-rw-r--r--gbz80disasm.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/gbz80disasm.py b/gbz80disasm.py
index ed546ef..c1b306c 100644
--- a/gbz80disasm.py
+++ b/gbz80disasm.py
@@ -587,6 +587,12 @@ def find_label(local_address, bank_id=0):
return constants[local_address]
return None
+def find_address_from_label(label):
+ for label_entry in all_labels:
+ if label == label_entry["label"]:
+ return label_entry["address"]
+ return None
+
def asm_label(address):
# why using a random value when you can use the address?
return '.asm_%x' % address
@@ -898,10 +904,15 @@ def all_outstanding_labels_are_reverse(byte_labels, offset):
if __name__ == "__main__":
+ load_labels()
addr = sys.argv[1]
if ":" in addr:
addr = addr.split(":")
addr = int(addr[0], 16)*0x4000+(int(addr[1], 16)%0x4000)
else:
- addr = int(addr, 16)
+ label_addr = find_address_from_label(addr)
+ if label_addr:
+ addr = label_addr
+ else:
+ addr = int(addr, 16)
print output_bank_opcodes(addr)[0]