HP Pascal/iX Programmer's Guide (31502-90023)

5-: 16
3. The value zero is always included in the subrange when calculating
the minimum number of bits; for example, this record takes seven
bits:
CRUNCHED RECORD
f : 100..101;
END;
If any element can be negative, an extra bit is allocated for the
sign; for example, this record takes three bits:
[REV BEG]
CRUNCHED RECORD
f : -4..3;
END;
[REV END]
Example
A record that is defined:
TYPE
u_rec = RECORD {4-byte aligned}
a,b : Boolean;
c : char;
d : minint..maxint;
e : Boolean;
END;
is allocated and aligned this way:
A record that is defined:
TYPE
p_rec1 = PACKED RECORD {Byte-aligned}
a,b : Boolean;
c : char;
d : minint..maxint;
e : Boolean;
END;
is allocated and aligned this way:
.