HP Pascal/iX Reference Manual (31502-90022)

12- 32
looks exactly like the same structure compiled by the Pascal/V compiler.
This is useful for reading data files generated by Pascal/V.
HP3000_16 does not affect file and pointer types. The allocation and
alignment of file variables is system-dependent, and HP Pascal does not
allow the creation of files that contain files.
The allocation and alignment of pointers is also system dependent, so
pointers are not portable. A pointer declared in an HP Pascal program
can be used only with HP Pascal (not Pascal/V).
Real numbers declared in an HP3000_16 program are represented in MPE V
floating-point representation. Operations performed with these numbers
emulate MPE V floating-point operations.
All constants declared in an HP3000_16 program are Pascal/V constants.
Example
See the example for the HP3000_32 compiler option.
NOTE A program that contains the HP3000_16 compiler option cannot call
the PAUSE intrinsic directly. The work-around is to declare PAUSE
this way, instead of declaring it as an intrinsic:
PROCEDURE pause $ALIAS 'em_pause'$ (VAR r : real);
EXTERNAL;
HP3000_32
HP3000_32 is a System-Dependent MPE/iX Option.
The HP3000_32 compiler option specifies that a given type in an HP3000_16
program is to be allocated and aligned according to the HP Pascal packing
algorithm.
Syntax
$HP3000_32$
Default HP3000_32 is the default when HP3000_16 is not used.
Location After the symbol = in a type definition.
If a program does not specify HP3000_16, then HP3000_32 has no effect,
and the compiler issues a warning.
A user-defined type that is within a structure declared with HP3000_32
must also be declared with HP3000_32.
A user-defined type that is within a structure declared without HP3000_32
must also be declared without HP3000_32.
HP3000_32 is illegal with these types:
* Boolean
* Char
* Integer
* Text
String, set, and real operations are illegal on HP3000_32 strings, sets,