You got me curious as to 'why?'
So, I went back to different versions of the PoP.
The mask setting was not available at an earlier PoP, but according to
the newer PoP, it will still be ignored if a machine option is not
installed.
The mask is is playing with could be considered one of those 'it may
speed it up' options if the new mask keeps him from having to restart
his TROT process because the stop character is not really a stop
character. There is not enough code to know if that is true or not.
So, basically, this code seems to cause no harm if ran on an earlier
machine, but could speed up the process if a newer machine is being
used. All up-side, with no down-side.
To me, as a vendor, this is actually a good idea.
(FYI, I have customers still running on MP2000's, so I have to watch my
instruction usage also.)
Tony Thigpen
Ed Jaffe wrote on 10/10/2017 12:21 AM:
Like most ISVs writing HLASM code, we use OPTABLE to ensure our
programmers don't accidentally use instructions that aren't available on
older machines that we must still support.
Currently, we're using OPTABLE(YOP) because our minimum supported OS is
z/OS 1.12. (It's not until z/OS 2.1 that we can leap ahead to the z9
machines.)
We recently terminated a reckless/destructive/rogue/cowboy programmer
who would routinely and subversively insert "land mines" into our code
without anyone knowing. Someone found another one this week:
| DO UNTIL=NO Until all chars processed
| * Until we break free from OPTABLE(YOP), the ORG game must be used
| TROT R14,R2 Convert to hex
| ORG *-2 ORG back to set M3 field
| DC X'10' M3 = 1 to suppress stopper
| ORG , ORG back
| ENDDO , EndDo TROT
Obviously, the right way to code this would have been to use ACONTROL
OPTABLE with surrounding PUSH/POP to get the newer TROT function. But,
doing so could raise the visibility of the sabotage to the level where
someone might notice. So, he chose to alter the instruction via ORG/DC.
(IMHO, ORGing back to change an instruction is a form of self-modifying
code, which we don't allow.)
It might be nice if the assembler could generate an error or warning
message if an instruction is modified at compile time.
Thoughts?