Wow. I totally forgot that Commodore BASIC ignores spaces in variable names. I do remember that it ignores anything after the first two letters though. That said, there's a bit more going on here than meets the eye.
PRINT HELLO WORLD
is actually parsed as PRINT
HELLOW
OR
LD
, that is: grab the values of the variables HELLOW
(which is actually just HE
) and LD
, bitwise OR
them together and then print.
Since it's very likely both HE
and LD
were undefined, they were quietly created then initialised to 0 before their bitwise-OR was calculated for the 0
that appeared.
Back in the day, people generally didn't put many spaces in their Commodore BASIC programs because those spaces each took up a byte of valuable memory. That PET2001, if unexpanded, only has 8KB in it.
</old man rant>