The fact that substitution of a SETA symbol in a non-arithmetic context gives an unsigned value has been like that since the start of System/360, and it has always been documented as far as I know. It's certainly like that in the earliest copy of the System/360 Assembler E and F Language Reference I can find right now on Bitsavers, which is from 1967. And that may even have been inherited from some pre-360 assembler.
It was short-sighted design but cannot be considered a bug. I've previously found obscure code which knows about it and inserts the minus sign itself if necessary, and that code would break if it was changed. The SIGNED built-in function was added to avoid the need for trickery. But it could be changed if a FLAG option was added to detect affected cases and a COMPAT option was added to allow signed substitution. Jonathan Scott -----Original Message----- From: IBM Mainframe Assembler List <[email protected]> On Behalf Of Paul Gilmartin Sent: 17 February 2026 18:08 To: [email protected] Subject: Re: Absolute SETA substitution (was Re: Apparent Test Under Mask Failure) On 2/17/26 09:58, Jonathan Scott wrote: > ... > - A new option COMPAT(SETAABS), where the NOSETAABS option includes the minus > sign (although for compatibility within a release the default must remain > compatible). Bad history. If at some point in history the Ref. did not say "absolute value", the first user to notice the misbehavior should have reported it as a defect, not unethically exploited it; It should have been repaired and users who complained about the behavior change should have been rebuffed for expecting behavior contrary to specification. Doing otherwise nurtures chaos. -- gil
