_mul shouldn't shift, only multiply. > value = (int)( a1*val1>>8); this does the work of both make8 and _mul. /m On 11 Apr 2012, at 17:47, dan snazelle wrote: > ok so if > > > make8 = (((var >> (offset*8)) & 0xff) > _mul value = (int)( a1*val1>>8); >