byuu, could you test:

Code
if(((~(i^j))&0x8)&((i^k)&0x8))
     set_overflow();

where i= the high nibble of the Accumulator, j = high nibble of the data, and k being the high nibble of the result. That bit of code was given to me many years ago by someone as "correct for known cases" at the time.

ETA: it at least should work for the 0x80+0 case, as well as the 7X cases.

Last edited by Heretical_One; 03/10/10 06:51 PM. Reason: reasoning