4.3BSD-Tahoe/usr/src/ucb/dbx/tests/mod/bitfields.mod
module main;
import io;
type
uint = @align 1 cardinal;
dotrecord = record
cost : @size 24 uint;
dtype : @size 3 uint;
dirToCenter : @size 3 uint;
pad : @size 1 uint;
pin : @size 1 uint;
traceback : @size 3 uint;
traceforward : @size 3 uint;
expanded : @size 1 uint;
underDir : @size 3 uint;
underOffset : @size 4 uint;
start : @size 1 uint;
target : @size 1 uint;
owner : @size 6 uint;
segment : @size 7 uint;
intrinsicCost : @size 3 uint;
end;
procedure p1 ();
var junk : dotrecord;
begin
junk.owner := 63;
junk.segment := 1;
junk.intrinsicCost := 1;
io.Writef(io.output, "owner = %d, segment = %d, intrinsicCost = %d\n",
junk.owner, junk.segment, junk.intrinsicCost);
p2();
end p1;
procedure p2 ();
var x : record
first : integer;
second : integer;
a : @size 8 @align 1 integer;
b : @size 8 @align 1 integer;
c : integer;
end;
begin
x.first := 0;
x.second := 0;
x.a := 2;
x.b := 10;
x.c := 1;
io.Writef(io.output, "done\n");
end p2;
begin
p1();
end main.