Letchik, создал бы тему отдельную.;)
#define ...
Определение макроконстант. В Паскале было бы:
const pr_obj = 2;
const pr_mtr = 4;
…unsigned char i;
Это фишка с индексацией символов: signed char - от -128 до 127, а unsigned char - от 0 до 255. Кстати, рекомендуется использовать просто char - каким он будет, зависит от среды.
var i: char;
…&a - это получение адреса переменной. В паскале, если не ошибаюсь, обозначается так: ^a.