Управление кучей осуществляет монитор (администратор) кучи, который является частью системной библиотеки и реализует управление с помощью процедур и функций.
New(var p: Pointer); - выделяет ОП в размере, определенном типом переменной, которую адресует p.
Dispose((var p: Pointer); - освобождает ОП, которую адресует p.
GetMem(var p: Pointer; size:Word); - выделяет size байт из кучи, её адрес в p – бестиповом указателе.
FreeMem(var p: Pointer; size:Word); - освобождает size байт ОП, выделенной переменной, которую адресует p.
Mark(var p: Pointer); - запоминает в p состояние кучи.
Release(var p: Pointer); - восстанавливает состояние кучи.
GetImage(x1,y1,x2,y2: integer; var p); - помещает в ОП p^ копию фрагмента изображения экрана с координатами x1,y1,x2,y2.
PutImage(x,y: integer; var p; vid: Word); - выводит фрагмент изображения из p^ в прямоугольник с координатами x, y верхнего левого угла.
ImageSize(x1,y1,x2,y2: integer): Word; - возвращает количество байт ОП, необходимое для заполнения прямоугольного фрагмента экрана, ограниченного x1,y1,x2,y2.
MaxAvail: Longint; - возвращает длину максимального свободного участка кучи.
MemAvail: Longint; - возвращает сумму длин свободных участков кучи.
Addr(var x): Pointer; - возвращает адрес переменной x.
Назначение параметров vid в процедуре PutImage:
1. NormalPut = 0; замена изображения на копию;
2. для кода цветов изображения:
XorPut = 1; - исключающее или;
OrPut = 2; - объединяющее или;
AndPut = 3; - логическое и;
NotPut = 4; - инверсия кода.