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!