This solution is a bit tedious, but you could first check Appendix J in 
Principles of Operation to see if the instruction is an extended mnemonic, and 
if it is then obtain the base mnemonic.  Then you could look up the base 
mnemonic using the OPTABLE(LIST) approach described elsewhere.  There are still 
a few holes in this approach, such as when a mnemonic was introduced on one 
machine but the instruction received optional operands on later machines.

Once you've found the machine an instruction is available on, what are you 
doing with this information?  Are you trying to find the (non-existent) optable 
that will allow a programmer to use, say, the LFI mnemonic even though the 
target machine is z9?  If so, perhaps writing a few macros to extend the z9 
optable would be an easier approach.  You could also optionally define the 
macro only if the mnemonic is not already a defined instruction, to avoid have 
macro definitions that override valid instructions.  Etc.

- mb

> -----Original Message-----
> From: IBM Mainframe Assembler List <[email protected]> On
> Behalf Of Ngan, Robert (DXC Luxoft)
> Sent: Wednesday, March 20, 2024 7:26 PM
> To: [email protected]
> Subject: [EXTERNAL] Re: OPCODE tables
> 
> For comparing instructions available by hardware generation, that
> doesn't work. OPTABLE(Zn) does not give you the instructions available
> for the Zn hardware. It gives you the assembler mnemonics available in
> HLASM when support for the Zn series hardware was added to HLASM.
> 
> So LFI is an extended mnemonic for IILF, and IILF was introduced with
> the z9. But LFI was added when HLASM was updated to support z16
> instructions so LFI will not assemble with OPTABLE values of Z9 thru
> Z15.
> The LOC/STOC instructions (z11) have a similar issue, since the OVERFLOW
> condition code value were missed on the initial HLASM implementation,
> and were subsequently added with z13 support (i.e. LOCE works with
> OPTABLE(Z11) or higher, but LOCO required OPTABLE(Z13), and these are
> basically the same instruction!).
> 
> So if you want to restrict what instructions are available when your
> target is a specific hardware series (which is what I was trying to do),
> using OPTABLE for this does not work.
> 
> Robert Ngan
> DXC Luxoft
> 
> -----Original Message-----
> From: IBM Mainframe Assembler List <[email protected]> On
> Behalf Of Farley, Peter
> Sent: Wednesday, March 20, 2024 16:54
> To: [email protected]
> Subject: Re: OPCODE tables
> 
> PoOPS in the "Summary of Changes" sections usually have at least some
> listing (in text format, nothing tablularized or easy to pick out) of
> instructions added in each manual section, but sometimes those are
> "generic" and don't include all the variations of added instructions.
> 
> The only way I can think of to accurately (more or less) track the
> additions would be to extract the Appendix B instruction table that is
> in OPCODE order to a text format file and then compare each edition's
> table to the prior edition's table.
> 
> I can say from personal experience that the "pdftotext" command-line
> utility available from the XPDF project (
> INVALID URI REMOVED
> 3A__www.xpdfreader.com_&d=DwIFAg&c=BSDicqBQBDjDI9RkVyTcHQ&r=1ZPhfSkljoBv
> uRHniz6Hffe-ZEO6qSawVTlotmCoew8&m=TTkrrIjrFghWJii-
> ZRDvstgCvuQ3K877KrN2AZK8zBt7z2_yfSWkZgcRCawNVVlO&s=_znetlJiObqmSgEl4Qut9
> B1jLsotJaEIbWjCQzSVKO0&e=  ) (which is NOT the "pdftotext" version
> normally included in many linux systems) for Windows execution works
> pretty well on most editions of PoOPS once you use the right command-
> line parameters.  Once extracted to pure text the tables are at least in
> a manipulable form that a subsequent text tool can massage into a format
> you can use for comparisons and extraction of "differences".
> 
> But truthfully the OPTABLE lists are probably the easier solution.  Just
> run a separate assembly with each OPTABLE value and massage the output
> to make the columns of instructions into one-line-per-instruction format
> and you will be able to compare each generation to the next.  SMOP, and
> (g)awk or python would be a reasonable tool to do the text manipulation
> needed.
> 
> Peter
> 
> From: IBM Mainframe Assembler List <[email protected]> On
> Behalf Of Mark Hammack
> Sent: Wednesday, March 20, 2024 5:12 PM
> To: [email protected]
> Subject: OPCODE tables
> 
> 
> Is there a list somewhere (other than OPTABLE LIST) that shows which
> 
> instructions were added at each hardware level?
> 
> 
> 
> I thought PoP used to have something similar but I don't see anything
> back
> 
> to Revision 7 (oldest copy I have).
> 
> --
> 
> 
> 
> This message and any attachments are intended only for the use of the
> addressee and may contain information that is privileged and
> confidential. If the reader of the message is not the intended recipient
> or an authorized representative of the intended recipient, you are
> hereby notified that any dissemination of this communication is strictly
> prohibited. If you have received this communication in error, please
> notify us immediately by e-mail and delete the message and any
> attachments from your system.

Reply via email to