Исследуя модуль Kernel, я каждый раз натыкаюсь на некоторые "магические" цифры. Хотелось бы знать как они были получены.

Примеры:

Число 12

PROCEDURE NewArr
headSize := 4 * nofdim + 12;

PROCEDURE NewBlock
AllocHeapMem(tsize + 12, new);	(* 3) allocate new cluster *)
b := SYSTEM.VAL(FreeBlock, SYSTEM.VAL(INTEGER, new) + 12);
b.size := (new.size - 12) DIV 16 * 16 - 4


Число 19

PROCEDURE Next
RETURN SYSTEM.VAL(Block, SYSTEM.VAL(INTEGER, b) + (size + 19) DIV 16 * 16)

PROCEDURE NewBlock
tsize := (size + 19) DIV 16 * 16;