From http://www.jwz.org/xscreensaver/xscreensaver-5.36.tar.gz
[xscreensaver] / hacks / asm6502.c
index 2228a38e4052b93e31d28a7f3077b2a0c7bed65e..b9b7e1e47930c88dc2e2dccea076e74f5150d2c1 100644 (file)
@@ -1874,7 +1874,7 @@ static BOOL translate(m6502_Opcodes *op,Param *param, machine_6502 *machine){
        if (op->BRA) {
          pushByte(machine, op->BRA);
           {
-            int diff = (param->lbladdr - machine->defaultCodePC);
+            int diff = abs((int)param->lbladdr - (int)machine->defaultCodePC);
             int backward = (param->lbladdr < machine->defaultCodePC);
             pushByte(machine, (backward) ? 0xff - diff : diff - 1);
           }