nathanielbabiak 2019-11-22 21:55

I think I found a bug. The PEEKL and POKEL instructions don’t work as expected for the full range of possible 4 byte signed integer values (likely because LowRes NX may model variables as floats, not doubles). (Or are these commands intended to take only 3 byte signed integer values, for which they work just fine?)

Any thoughts anyone?

If this gets confirmed, I’d recommend removing these two commands from the language.

was8bit 2019-11-23 00:23

From manual...


Writes a four-byte value at memory address a. v is a numeric expression from -2147483648 to 2147483647; numeric expressions outside this range are truncated to 32 bits.

was8bit 2019-11-23 00:27

4bit straight out is 4284967294

Timo 2019-11-23 03:26

Never checked if the full range is available. Numbers in NX are “float” values.

nathanielbabiak 2019-11-23 03:38

Yeah, I can peekl and pokel 2^24, which is pretty near the upper integer limit of a float, but much higher and the least significant bits get truncated (as expected for floats)

Timo 2019-11-23 20:28

Ok yes, it's a bit silly that you can PEEKL a value which might not fit into a variable, didn't think about it. I thought the other way around: POKEL/PEEKL were necessary to store and read the highest possible variable values. Could be a POKEF (float), but I preferred the simpler integer format. In any case I should make it clear in the manual.

Mrlegoboy 2019-12-20 18:53

*starts chanting POKE F! POKE F! POKE F!

Log in to reply.