We've recently shipped another little enhancement which has been requested many times (including on this mailing list). It was coded years ago in response to problems with HLASM code generated by compilers, but as the compilers found alternative solutions it was considered low priority and was put aside. We decided it was sufficiently useful to be worth the effort of merging up the fix and testing it, and we shipped it at the end of March 2019.
APAR PH10081 - Support signed decimal self-defining terms If a decimal number is immediately preceded by a unary minus, HLASM will now treat that as a signed decimal self-defining term. This allows all signed 31-bit values from -2147483648 to 2147483647 to be written as decimal self-defining terms, supporting the same range of values as for existing binary, character and hexadecimal self-defining terms. This does not change the results of any existing valid expression, but means that some expressions which were previously considered invalid will now be accepted as valid. This change affects processing of assembler expressions and conditional assembly arithmetic expressions, including cases where a SETC symbol or macro parameter is used in an arithmetic expression, which will now accept a negative decimal number. The Type attribute T'&NAME now returns 'N' for a negative decimal number as well as for an unsigned decimal number (or a valid self-defining term of any other type). The ISDEC built-in function is unchanged, and continues to test for an unsigned value consisting of up to 10 decimal digits. Jonathan Scott, HLASM IBM Hursley, UK
