diff --git a/extras/comparator.py b/extras/comparator.py index 2abf5cdb6..6d981e493 100644 --- a/extras/comparator.py +++ b/extras/comparator.py @@ -7,6 +7,8 @@ from crystal import ( get_label_from_line, get_address_from_line_comment, AsmSection, + direct_load_rom, + direct_load_asm, ) from romstr import ( @@ -17,22 +19,12 @@ from romstr import ( def load_rom(path): """ Loads a ROM file into an abbreviated RomStr object. """ - - fh = open(path, "r") - x = RomStr(fh.read()) - fh.close() - - return x + return direct_load_rom(filename=path) def load_asm(path): """ Loads source ASM into an abbreviated AsmList object. """ - - fh = open(path, "r") - x = AsmList(fh.read().split("\n")) - fh.close() - - return x + return direct_load_asm(filename=path) def findall_iter(sub, string): # url: http://stackoverflow.com/a/3874760/687783 diff --git a/extras/crystal.py b/extras/crystal.py index 2077c3748..4353ad560 100644 --- a/extras/crystal.py +++ b/extras/crystal.py @@ -145,14 +145,18 @@ def load_rom(filename="../baserom.gbc"): elif os.lstat(filename).st_size != len(rom): return direct_load_rom(filename) - -def load_asm(filename="../main.asm"): - """loads the asm source code into memory""" - global asm +def direct_load_asm(filename="../main.asm"): + """returns asm source code (AsmList) from a file""" asm = open(filename, "r").read().split("\n") asm = AsmList(asm) return asm +def load_asm(filename="../main.asm"): + """returns asm source code (AsmList) from a file (uses a global)""" + global asm + asm = direct_load_asm(filename=filename) + return asm + def grouper(some_list, count=2): """splits a list into sublists given: [1, 2, 3, 4]