> The hardware multiply isn't very helpful if you want to do more than 8bit > multiplications, as it requires that you write everything the standard way > instead of utilising the multiply function of the chip. Huh? You can build up a larger multiply using a number of 8 x 8 multiplies. This may seem a little awkward, but it's still faster than a total software shift and add loop. Let's say A and B are two 16 bit numbers. Each is made of two bytes, A1:A0 and B1:B0. A = 256*A1 + A0 B = 256*B1 + B0 A * B = (256*A1 + A0) * (256*B1 + B0) = 256*256*A1*B1 + 256*A1*B0 + 256*A0*B1 + A0*B0 This uses the hardware multiplier 4 times and you have to do a few multi-byte additions, which are also easier on the 18 series due to the add with carry instruction. Obviously the multiplies by 256 and 256*256 are performed simply by shifting over one and two bytes. All in all this takes a lot fewer cycles than doing the same thing in a shift and add software loop. ***************************************************************** Embed Inc, embedded system specialists in Littleton Massachusetts (978) 742-9014, http://www.embedinc.com -- http://www.piclist.com#nomail Going offline? Don't AutoReply us! email listserv@mitvma.mit.edu with SET PICList DIGEST in the body