diff --git a/src/py65/assembler.py b/src/py65/assembler.py index 351f10d..fd990bc 100644 --- a/src/py65/assembler.py +++ b/src/py65/assembler.py @@ -87,8 +87,7 @@ class Assembler: # relative branch absolute = int(''.join(operands), 16) relative = (absolute - pc) - 2 - if (relative < 1): - relative = (relative ^ self.byteMask) + 1 + relative = relative & self.byteMask operands = [ (self.byteFmt % relative) ] elif len(operands) == 2: diff --git a/src/py65/disassembler.py b/src/py65/disassembler.py index bf6a5f0..749e2db 100644 --- a/src/py65/disassembler.py +++ b/src/py65/disassembler.py @@ -80,7 +80,7 @@ class Disassembler: elif addressing == 'rel': opv = self._mpu.ByteAt(pc + 1) targ = pc + 2 - if opv & (1<