[comp.sys.handhelds] SAD bug

bson@rice-chex.ai.mit.edu (Jan Brittenson) (10/28/90)

There is a confusing bug in SAD. The code

	brbs	0, st, addr

is disassembled as

	brne.1	p, 0, addr


Instead of awaiting 1.03, you may prefer to fix it now.

At line ~650 in sad.c you'll find:

      case 6:
      case 7:
      case 8:
      case 9:
	
	{
	  static char *xrbn[] =
	    {"brbc\t%s, st, %s", "brbs\t%s, st, %s",
	       "brne.1\tp, %s, %s", "breq.1\tp, %s, %s"},
	    s1[64];
	  
	  op3 = get_unibbles(1);
	  op4 = get_nibbles(2);
	  
	  strcpy(s1, symbolic(op3, NOREL));

	  sprintf(l_instr, xrbn[(op3 - 6) & 3],
		  s1,
		  symbolic(org_pc+3+op4, JUMPREL));
	  return;
	}

Change the expression `xrbn[(op3 - 6) & 3]' to read `xrbn[(op2 - 6) & 3]'.

My apologies.