B6 and I6 Variables

Runtime enhancement: B6 (unsigned) and I6 (signed) are now supported in the following operations:

•   Use in expressions just like any other numeric variable types.

•   Conversion to other types via assignment or parameter passing, provided the receiving variable is large enough to contain the value. The only other variable type that can contain the full range of B6 or I6 values is F8. In the case of converting to string or printing, you should set SIGNIFICANCE 15 to avoid exponential notation when dealing with large values.

•   Conversion from other types via assignment or parameter passing, provided the source value is within the range of the target type, which is 0 to 281474976710656 for B6, and -140737488355328 to 140737488355327 for I6. Fractional values will be truncated to leave just the integer component.

•   Bitwise operators (AND, OR, NOT, XOR, EQV) supported out to 48 bits; previously was 40 bits.

•   Built-in XCALLs, while having access to the new extended range of integers, have not been updated to take advantage of them. Unless the the documentation explicitly indicates otherwise, you should assume a 32 bit limit for general numeric parameters.

•   Decimal, octal, and hex constants and symbol definitions now support values extending to 48 bit integer or F8 floating point; previously it was 40 bit integer or F6 floating point. You may optionally append an "L" to the end of such literal constants to make explicit that you want them to be encoded into the RUN file using the larger format, but this isn't necessary as the compiler will do it automatically as needed.