06-20-2017, 09:12 PM
I'm struggling a bit with the behaviour of the < and > operators compared to Spectrum BASIC and I'm not sure if what I'm seeing is a bug or expected behaviour.
Check out this program:
If I run the equivalent of this in Sinclair BASIC then the output is:
1
0
1
0
1
0
But compiled in ZX Basic I get:
1
0
255
0
255
0
With just numbers the result is the same as Spectrum BASIC, but as soon as I start using typed variables in ZX Basic the 'true' value switches from 1 to 255. Is that expected behaviour? It seems a bit odd, but I realise there might be a really good reason for it.
The program I'm trying to compile relies on the result of similar clauses to perform calculations, so if the answer could be something other than 0 or 1 I'll have to rewrite it a bit. That's not a problem, but I didn't want to do that if this is actually a bug that might get fixed later.
Thanks for any help!
Check out this program:
Code:
dim t,t2 as byte
let t=1
let t2=0
print 1>0
print 1<0
print t>0
print t<0
print t>t2
print t<t2
If I run the equivalent of this in Sinclair BASIC then the output is:
1
0
1
0
1
0
But compiled in ZX Basic I get:
1
0
255
0
255
0
With just numbers the result is the same as Spectrum BASIC, but as soon as I start using typed variables in ZX Basic the 'true' value switches from 1 to 255. Is that expected behaviour? It seems a bit odd, but I realise there might be a really good reason for it.
The program I'm trying to compile relies on the result of similar clauses to perform calculations, so if the answer could be something other than 0 or 1 I'll have to rewrite it a bit. That's not a problem, but I didn't want to do that if this is actually a bug that might get fixed later.
Thanks for any help!