Entweder von StrToInt(Integer) nach SmallInt casten
oder eventuell +32768 rechnen, also das Ganze in den positiven Bereich verschieben (dabei wird das positive aber Negativ).
+32768 = -Low(SmallInt)
Delphi-Quellcode:
var Zahl: SmallInt;
begin
Inc(Zahl, 32768);
ApdCOMPort.PutString(Chr(HiWord(Zahl)) + Chr(LoWord(Zahl));
function HexToInt(HexNum: string): SmallInt;
begin
Result:=StrToInt('$' + HexNum);
end;
// bzw.
function HexToInt(HexNum: string): Integer;
begin
Result:=StrToInt('$' + HexNum) - 32768;
end;