Signed number grief.

A little test code.

> ls
function extend10 {if arg(1)&0x200 return arg(1)|(-1<<10); else return arg(1); };
function px10 {print extend10(arg(1)):x;};
> px10(0x200)
FFFFFFFFFFFFFE00
> px10(0x1ff)
1FF
> px10(0x10)
10

-br