[comp.lang.asm370] OPSYN opcode in ibm bal

SXRJC@ALASKA.BITNET (ROBERT J CONCANNON) (06/07/89)

cany anyone tell me what 'opsyn' is used for? it seems to me that a way to
redefine (or undefine) standard opcodes would create maintenance problems.
what benefit is provided that offsets the risk? i myself have never seen
'opsyn' used anywhere, but i am not primarily an assembler programmer.
thanks, bob concannon, university of alaska, fairbanks

SEB1525@draper.COM ("Steve Bacher ", Batchman) (06/07/89)

I've seen OPSYN used by at least one software vendor in a module that is
designed to assemble into a list of control block offsets.  It does this
by using OPSYN to redefine the DC and DS opcodes as macros and then calling
out an MVS control block mapping macro.  Each DC or DS in the MVS macro is
then processed by the vendor macro, which is able to do its thing because
the offset of each MVS field (which varies with software releases,
maintenance, etc.) is known at that point.  That's the only use I know of.

PHIL@UORMVS.BITNET (Phil Rengert) (06/07/89)

The uses for OPSYN are pretty hard to come by.  It could be used to convert
every BAL(R) to BAS(R) if you needed to clean up 24-bit linkage addresses in an
XA situation.  Just the other day I used it (for the first time ever) to
supress recognition of BAS and BASSM in an SP1 environment.  The assembler
instead calls BAS and BASSM macros I wrote which generate the appropriate
non-XA instruction.

-Phil Rengert
 University of Rochester Computing Center

LDW@USCMVSA.BITNET (Leonard D Woren) (06/08/89)

Another example of a use for OPSYN is if you are debugging something
that has PRINT NOGEN / PRINT OFF, and you don't want to modify the
macros to remove them, you can just OPSYN PRINT to something else and
use an inline PRINT macro that does nothing.

I doubt if anyone uses OPSYN to do things like change AR into ADDREG
or something (at least I hope not...)

A01MES1@NIU.BITNET (Michael Stack) (06/10/89)

> The uses for OPSYN are pretty hard to come by.  ...

Bruce Uttley of U of Waterloo can probably give a good history of
OPSYN, but my recollection is that problems arose when using the
extended Branch Conditional Register mnemonics which were not
available in early assemblers.  Users would then write macros for
instructions like BNER (easier to recall than BCR 7,), only to
have those collide with those codes as instructions in newer versions
of the assembler (I recall that Waterloo's ASMG had this as an
option).  By including   BNER  OPSYN  , before the BNER macro, it
was possible to assemble without errors, even if the extended
mnemonics were available.  Unfortunately, both ASM (F) and the manual
which described it are long gone, and I can't prove that this worked,
but that is what I recall.  Bruce, are you listening...?

Michael Stack
Northern Illinois University