FALSE
FALSE is a BASIC numeric constant whose value represents the Boolean value false.
Availability  Present in all original versions of BBC BASIC.  
Syntax  BASIC IV  <numvar> = FALSE

Token (hex)  BASIC IV  A3 (rvalue)

Description  BASIC IV  An integer constant equal to 0, representing the value false in BASIC Boolean logic. 
Associated keywords  TRUE

Description
FALSE
is a numeric constant used in BASIC to represent a false condition. In Boolean algebra all expressions (Boolean expressions) represent a condition that can be tested and found to be true or false. IF
, UNTIL
and WHILE
all use a Boolean expression to decide which piece of code to execute next.
For instance, a Boolean expression in BASIC typically looks like temperature >= 273.15
or attempts%<10 AND (result% AND &18) = 0
. It will evaluate to one of the constants, TRUE
or FALSE
.
FALSE
is also a valid Boolean expression, and represents 'a condition that is never fulfilled'. 1 = 2
evaluates to FALSE
but takes longer to compute.
In BASIC there is no Boolean data type, as there is in some highlevel languages. Integers are used instead. It was decided to define FALSE
= 0 as this is the easiest single integer to test for in 6502 machine code. The value of TRUE
follows from the identity:
TRUE = NOT FALSE
and due to the operation of NOT
, and the two'scomplement arithmetic used on integers, TRUE
evaluates to 1.
All numeric values besides TRUE
and FALSE
are invalid in Boolean expressions. As inputs to IF
, UNTIL
and WHILE
they happen to have the same effect as TRUE
, but they violate the law of the excluded middle:
((n = TRUE) OR (n = FALSE)) = TRUE
Therefore only TRUE
and FALSE
work correctly as Boolean operands to AND
, OR
and NOT
, as these three are always 'bitwise' operators.
Syntactically speaking, TRUE
and 1, and FALSE
and 0, are interchangeable as they are both <numeric> expressions. But by convention TRUE
and FALSE
are used in BASIC code to mark that the numeric expression is being used as a Boolean value. For example in the idiom:
REPEAT ... UNTIL FALSE
meaning, repeat the code inside forever. The effect is the same as:
REPEAT ... UNTIL 0
 beardo 22:44, 13 June 2007 (BST)