On Wed, 27 Oct 2010 14:47:28 -0400, Tom Marchant wrote: >On Wed, 27 Oct 2010 12:33:44 -0400, David Bond wrote: >>The only ways to make the assembler to use a library macro instead of a >>built-in opcode are: >>1) Use an OPTABLE that does not include the opcode. >>2) Delete the built-in opcode entry using OPSYN. >>3) COPY the macro, which will redefine the opcode. >> >Isn't there another? >4) use a :MAC tag on the operation.
Yes, I forgot about the :MAC and :ASM tags. If they are not used, the opcode tables effectively work the way I described, which is the way it actually worked before opcode tags were added to HLASM. But now there are effectively two slots for each opcode table entry. If no tag is coded after the opcode, then the macro version is used if it has already been defined, otherwise the built-in version is used if it was in the OPTABLE, and finally the library is searched. Using the :ASM tag references only the built-in version. Using the :MAC tag is the same as omitting the tag except that the built-in version is skipped. OPSYN cannot be used to reference or change only one of the versions because the tag cannot be used on the OPSYN label or operand. If the operand is omitted then both versions will be deleted. And if OPSYN is used to copy an opcode, both versions are effectively copied to the new name. David