Если Вы хотите вместо логических значений True и False использовать 1 и 0, то можно сделать так:
program pr1;
function _Xor (x, y:byte): byte;
begin
if x+y=1 then
_Xor:=1
else
_Xor:=0;
end;
var x,y: byte;
begin
readln (x, y);
writeln (_Xor(x, y));
end.
Пример:
1 0
1
Именно потому и пишет, что операция '=' не применима к типу boolean. Переменные этого типа могут принимать значения True и False, и как можно сравнивать их с единицей?