по поводу BOOL_TO_INT
попробуйте ради эксперимента:

bresListen := false;

if SysSockListen(diSocket, diMaxConnections ) then
bresListen := true;
end_if

if not SysSockListen(diSocket, diMaxConnections ) then
bresListen := true;
end_if

сам именно этот код не проверял но может оказацо интересно )
в смысле -1 это и не true и не false )