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