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