:: In the first part of the example below, it appears to be a simple :: magnitude test. 'if diff is greater or equal to 0, byte =3D 0. If :: diff :: is less than 0 then set byte,3 :: { :: byte =3D 8; :: diff =3D - diff; :: } Hi Jinx, contents of byte =3D decimal 8 - is that what you meant to type rather than= =20 bit 3 of byte? :: Without any explicit 'elses', does this code execute each 'if', :: with :: the parentheses being the 'elses' ? You confused me there with the word elses, but yes sort of, the first IF is= =20 tested, and if found to be false it will jump to - :: tempstep >>=3D 1;shift #1 But if diff was equal to and greater than tempstep, you would have the IF=20 statement and what is between the braces will be executed AS WELL as the=20 tempstep code and so on down the list. Colin -- cdb, colin@btech-online.co.uk on 29/12/2010 =20 Web presence: www.btech-online.co.uk =20 =20 Hosted by: www.justhost.com.au =20 =20 =20 =20 =20 --=20 http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .