Just a note about something that caught me out, and might help others...
If you use the new 64 bit integers, (for example, bigint%%), some operation may not work as you expect if you forget to issue a *HEX64 command first!
Examples:
Code:
will set bigint%% to -1, while
Code:
*HEX64
bigint%%=&FFFFFFFF
will (correctly) set it to 4294967295.
The one that got me was that PRINT ~bigint%% (print in hexadecimal format) wasn't working as I expected - effectively truncating it to a 32 bit number.
When you know what the problem is, the manual makes it all clear:
"
*HEX
...
Control whether the hexadecimal conversion (& and ~) and bit-shift (<< and >>) operators treat their operands as 32-bit or 64-bit integers. In the (default) *HEX 32 mode the operators work in a fashion which is compatible with earlier versions of BBC BASIC; the operands are treated as 32-bit signed integers. In *HEX 64 mode the operands are treated as 64-bit signed integers. "
Best wishes,
D