From ab4688c64c21f324fbc5d04889cc22cbc138d9ea Mon Sep 17 00:00:00 2001 From: Mike Naberezny Date: Sat, 26 Oct 2013 16:51:49 -0700 Subject: [PATCH] Fix hexdump loader for Python 3 --- py65/utils/hexdump.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/py65/utils/hexdump.py b/py65/utils/hexdump.py index bd24d16..02e032f 100644 --- a/py65/utils/hexdump.py +++ b/py65/utils/hexdump.py @@ -44,7 +44,11 @@ class Loader: def _parse_address(self, piece): try: - addr_bytes = [ord(c) for c in a2b_hex(piece)] + binstr = a2b_hex(piece.encode('utf-8')) + if isinstance(binstr, str): + addr_bytes = [ ord(b) for b in binstr ] + else: # Python 3 + addr_bytes = [ b for b in binstr ] except (TypeError, ValueError): msg = "Could not parse address: %s" % piece raise ValueError(msg) @@ -73,10 +77,14 @@ class Loader: else: try: - bytes = [ord(c) for c in a2b_hex(piece)] + binstr = a2b_hex(piece.encode('utf-8')) + if isinstance(binstr, str): + data_bytes = [ ord(b) for b in binstr ] + else: # Python 3 + data_bytes = [ b for b in binstr ] except (TypeError, ValueError): msg = "Could not parse data: %s" % piece raise ValueError(msg) - self.current_address += len(bytes) - self.data.extend(bytes) + self.current_address += len(data_bytes) + self.data.extend(data_bytes)