Signed Types 

www.madshi.net

Here are some definitions around the 1-byte signed ordinal type "shortInt":

type
  TPShortInt   = ^shortInt;

  TAShortInt   = array [0..maxInt-1] of shortInt;
  TPAShortInt  = ^TAShortInt;

  TDAShortInt  = array of shortInt;
  TPDAShortInt = ^TDAShortInt;

Here we have the 2-byte signed ordinal type named "smallInt":

type
  TPSmallInt   = ^smallInt;

  TASmallInt   = array [0..maxInt shr 1-1] of smallInt;
  TPASmallInt  = ^TASmallInt;

  TDASmallInt  = array of smallInt;
  TPDASmallInt = ^TDASmallInt;

Then there is the 4-byte signed ordinal type "integer":

type
  TPInteger   = ^integer;

  TAInteger   = array [0..maxInt shr 2-1] of integer;
  TPAInteger  = ^TAInteger;

  TDAInteger  = array of integer;
  TPDAInteger = ^TDAInteger;

Then there is the 4-byte signed ordinal type "NativeInt":

type
  {$ifndef xe2}
    NativeInt   = integer;
  {$endif}

  TPNativeInt   = ^NativeInt;

  TANativeInt   = array [0..maxInt shr 2-1] of NativeInt;
  TPANativeInt  = ^TANativeInt;

  TDANativeInt  = array of NativeInt;
  TPDANativeInt = ^TDANativeInt;

Finally we have the "int64" type, which is an 8-byte signed ordinal:

type
  TPInt64   = ^int64;

  TAInt64   = array [0..maxInt shr 3-1] of int64;
  TPAInt64  = ^TAInt64;

  TDAInt64  = array of int64;
  TPDAInt64 = ^TDAInt64;