program PointerBasic;
{ Basic pointer operations: new, dispose, dereference, nil }
var
  p: ^integer;
  x: integer;
begin
  new(p);
  p^ := 100;
  x := p^ + 50;
  writeln(p^);
  writeln(x);
  dispose(p);
  p := nil;
  writeln('pointer disposed and set to nil');
end.