1{$bitpacking on} 2 3type 4 tenum = (ea,eb,ec,ed,ee,ef,eg,eh); 5 tr = packed record 6 a: 0..3; // 2 bits 7 w: word; // 16 bits; 8 b: 0..31; // 5 bits; 9 c: boolean; // 1 bit 10 d: 0..31; // 5 bits 11 e: tenum; // 3 bits 12 end; 13 14procedure t(var r2: tr); 15var 16 r: tr; 17begin 18 r.a := 2; 19 r.w := 32768; 20 r.b := 23; 21 r.c := true; 22 r.d := 5; 23 r.e := ed; 24 r2 := r; 25end; 26 27var 28 r: tr; 29 30begin 31 t(r); 32 if (r.a <> 2) or 33 (r.w <> 32768) or 34 (r.b <> 23) or 35 (not r.c) or 36 (r.d <> 5) or 37 (r.e <> ed) then 38 halt(1); 39end. 40