IIRC, Lee made a decision a while ago (during discussions much like this) to make the operators bitwise, not logical.
I thought it a shame, but there are other ways of getting logical operations despite that, and they are not hard.
sync off
sync rate 0
sync sleep 1
for a = 0 to 2
print "logical not of "; a; " is "; LOG_NOT(a)
next
print ""
for a = 0 to 1
for b = 0 to 1
print "logical and of "; a; " and "; b; " is "; LOG_AND(a,b)
next
next
print ""
for a = 0 to 1
for b = 0 to 1
print "logical or of "; a; " and "; b; " is "; LOG_OR(a,b)
next
next
print ""
for a = 0 to 1
for b = 0 to 1
print "logical xor of "; a; " and "; b; " is "; LOG_XOR(a,b)
next
next
print ""
wait key
end
function LOG_NOT(a as integer)
exitfunction (a = 0)
endfunction 0
function LOG_AND(a as integer, b as integer)
exitfunction (a<>0) && (b<>0)
endfunction 0
function LOG_OR(a as integer, b as integer)
exitfunction (a<>0) || (b<>0)
endfunction 0
function LOG_XOR(a as integer, b as integer)
exitfunction (a<>0) ~~ (b<>0)
endfunction 0
If you look at the functions, you'll see that it's simple to convert a bitwise function to a logical function - I'm using the comparison operators to give me a 0 or 1 result and then using the bitwise operators on those.
Now, that all said, I do think that Lee should update the help files in line with his decision, so I'm going to confirm this report for that reason only.