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

Reply via email to