Simple, with bitpacking the compiler does not allocate more than needed, so use 0..1 for 1 bit, 0..3 for 2 bits, 0..7 for 3 bits etc.

[pascal]
{$bitpacking on}
program bitpackingtest;

type two_nibbles=record
a,b:0..15;
end;

begin
writeln(sizeof(two_nibbles));
end.
[/pascal]

... will output 1. It is a new feature of FPC 2.1.4 we coded for Mac Pascal compatibility. Make Borland a feature request