mirror of
https://github.com/thornAvery/kep-hack.git
synced 2026-02-22 15:12:18 +13:00
Update and add more tool scripts
This commit is contained in:
parent
3520a4c99a
commit
208ea07237
12 changed files with 3207 additions and 95 deletions
52
tools/sym_comments.py
Executable file
52
tools/sym_comments.py
Executable file
|
|
@ -0,0 +1,52 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
Usage: python sym_comments.py file.asm [pokered.sym] > file_commented.asm
|
||||
|
||||
Comments each label in file.asm with its bank:address from the sym file.
|
||||
"""
|
||||
|
||||
import sys
|
||||
import re
|
||||
|
||||
def main():
|
||||
if len(sys.argv) not in {2, 3}:
|
||||
print(f'Usage: {sys.argv[0]} file.asm [pokered.sym] > file_commented.asm', file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
wram_name = sys.argv[1]
|
||||
sym_name = sys.argv[2] if len(sys.argv) == 3 else 'pokered.sym'
|
||||
|
||||
sym_def_rx = re.compile(r'(^{sym})(:.*)|(^\.{sym})(.*)'.format(sym=r'[A-Za-z_][A-Za-z0-9_#@]*'))
|
||||
|
||||
sym_addrs = {}
|
||||
with open(sym_name, 'r', encoding='utf-8') as file:
|
||||
for line in file:
|
||||
line = line.split(';', 1)[0].rstrip()
|
||||
parts = line.split(' ', 1)
|
||||
if len(parts) != 2:
|
||||
continue
|
||||
addr, sym = parts
|
||||
sym_addrs[sym] = addr
|
||||
|
||||
with open(wram_name, 'r', encoding='utf-8') as file:
|
||||
cur_label = None
|
||||
for line in file:
|
||||
line = line.rstrip()
|
||||
if (m = re.match(sym_def_rx, line)):
|
||||
sym, rest = m.group(1), m.group(2)
|
||||
if sym is None and rest is None:
|
||||
sym, rest = m.group(3), m.group(4)
|
||||
key = sym
|
||||
if not sym.startswith('.'):
|
||||
cur_label = sym
|
||||
elif cur_label:
|
||||
key = cur_label + sym
|
||||
if key in sym_addrs:
|
||||
addr = sym_addrs[key]
|
||||
line = sym + rest + ' ; ' + addr
|
||||
print(line)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue