I made a shortcut.
function unsign_short(x) { return x + 32768; }
function sign_short( short x ) { return x - 32768; }
Here's the problem
Manual says:
short - 2 bytes - 0 to 65535
And, it also says:
Signed or unsigned variables
In lite-C, var, float, double, long and int variables are always signed, and pointers, char and short are always unsigned, according to the normal way they are used. The signed and unsigned variable modifiers are accepted, but have no effect.