program heap_test (output); type fred = ^integer; { bigrek = record a, b, c, d : set of char end;} var p1, p2, p3, p4, p5, p6, p7 : fred; begin new (p1); new (p2); new (p3); new (p4); new (p5); new (p6); new (p7); writeln ('xxxxxxx'); dispose (p2); writeln ('xxxxx_x fragmenting'); dispose (p4); writeln ('xxx_x_x'); dispose (p1); writeln ('xxx_x__ merge with lower block'); dispose (p5); writeln ('xx__x__ merge with upper block'); dispose (p3); writeln ('xx_____ merge above and below'); dispose (p7); writeln ('_x_____ merge with main memory below'); dispose (p6); writeln ('_______ merge this + upper block with main memory'); end.