Note that the compiler access the spec of this unit during compilation
to obtain the data length that needs allocating, so the correct version
of the spec must be available to the compiler, and must correspond to
the spec and body made available to the linker, and all units of a given
program must be compiled with the same version of the spec and body.
This consistency will be enforced automatically using the normal binder
consistency checking, since any unit declaring Machine_Radix 10 types or
containing operations on such data will implicitly with Packed_Decimal.
Format Description
The following array must be declared in exactly the form shown, since
the compiler accesses the associated tree to determine the size to be
allocated to a machine radix 10 type, depending on the number of digits.
Range of possible byte lengths
The argument P is the address of a packed decimal value and D is the
number of digits (in the range 1 .. 9, as implied by the subtype).
The returned result is the corresponding signed binary value. The
exception Constraint_Error is raised if the input is invalid.
The argument P is the address of a packed decimal value and D is the
number of digits (in the range 10 .. 18, as implied by the subtype).
The returned result is the corresponding signed binary value. The
exception Constraint_Error is raised if the input is invalid.
The argument V is a signed binary integer, which is converted to
packed decimal format and stored using P, the address of a packed
decimal item of D digits (D is in the range 1-9). Constraint_Error
is raised if V is out of range of this number of digits.
The argument V is a signed binary integer, which is converted to
packed decimal format and stored using P, the address of a packed
decimal item of D digits (D is in the range 10-18). Constraint_Error
is raised if V is out of range of this number of digits.