FUNCTION Bitlshift16 LPARAMETERS tnNumber, tnShift LOCAL lnRetNumber * Perform shift left lnRetNumber = Bitlshift(tnNumber, tnShift) * Clear anyting beyond lower 16 bit lnRetNumber = Bitand( lnRetNumber, 0xFFFF) * Check leftmost bit (sign) IF Bittest(lnRetNumber,15) * it's 16 bit negative number lnRetNumber = -(2^16) + lnRetNumber ENDIF RETURN lnRetNumberThe leftmost bit in 16 bit Short Int is a sign bit. If it's 0 than number is positive. If it's 1 than number is negative and stored in the two's complement form.