For ordinal types:
procedure Dec (var x: ordinal_type);
or
procedure Dec (var x: ordinal_type; Amount: and_integer_type);
For pointer types:
procedure Dec (var p: any_pointer_type);
or
procedure Dec (var p: any_pointer_type; Amount: and_integer_type);
For ordinal types, Dec decreases the value of x by one or by amount if specified.
If the argument p is pointing to a specified type (typed pointer), Dec decreases the address of p by the size of the type p is pointing to or by amount times that size respectively. If p is an untyped pointer (i.e. p is of type Pointer), p is decreased by one, otherwise by amount if specified.
Dec is a Borland Pascal extension. The combination of the second argument with application to pointers is a GNU Pascal extension.
program DecDemo; var x: Integer; y: array [1 .. 5] of Integer; p: ^Integer; begin x := 9; Dec (x, 10); { yields -1 } {$X+} { Turn on extended systax } p := @y[5]; { p points to y[5] } Dec (p, 3) { p points to y[2] } end.