xref: /original-bsd/old/dbx/tests/mod/bitfields.mod (revision 9a765c18)
1module main;
2
3import io;
4
5type
6    uint = @align 1 cardinal;
7    dotrecord = record
8	cost : @size 24 uint;
9	dtype : @size 3 uint;
10	dirToCenter : @size 3 uint;
11	pad : @size 1 uint;
12	pin : @size 1 uint;
13	traceback : @size 3 uint;
14	traceforward : @size 3 uint;
15	expanded : @size 1 uint;
16	underDir : @size 3 uint;
17	underOffset : @size 4 uint;
18	start : @size 1 uint;
19	target : @size 1 uint;
20	owner : @size 6 uint;
21	segment : @size 7 uint;
22	intrinsicCost : @size 3 uint;
23    end;
24
25procedure p1 ();
26var junk : dotrecord;
27begin
28    junk.owner := 63;
29    junk.segment := 1;
30    junk.intrinsicCost := 1;
31    io.Writef(io.output, "owner = %d, segment = %d, intrinsicCost = %d\n",
32	junk.owner, junk.segment, junk.intrinsicCost);
33    p2();
34end p1;
35
36procedure p2 ();
37var x : record
38	first : integer;
39	second : integer;
40	a : @size 8 @align 1 integer;
41	b : @size 8 @align 1 integer;
42	c : integer;
43    end;
44begin
45    x.first := 0;
46    x.second := 0;
47    x.a := 2;
48    x.b := 10;
49    x.c := 1;
50    io.Writef(io.output, "done\n");
51end p2;
52
53begin
54    p1();
55end main.
56