Hi all, I found the problem lay in my use of the Carry flag. I had based my procedure upon the Microchip maths app note. However I had extended it to 24 bits. The problem lay in my use of the Carry flag. I expected (read assumed) that when a register was incremented beyond FF to 00 that not only the Z flag but also the C flag would be brought high. It appears not!! My extended precision division was therefore based around a dodgy subtraction procedure- bound to failure :) I'm pretty sure that the code has other examples of this gotcha in... but it's 03:15 local time and time for some zzzzZZZZZs. Ben I guess that 99.9% was a little too confident.... -- http://www.piclist.com#nomail Going offline? Don't AutoReply us! email listserv@mitvma.mit.edu with SET PICList DIGEST in the body