Re: Good source for relationship of opcodes, models, MACHINE() and ARCH()
Thanks. Great suggestion. I will do that when I am done. I am mentally committed to completing this, but it won't be this week. (Gotta get the talk ready for SHARE!) I have all of the tools and methodology I think. I am a Wikipedia member and have done edits before. Charles -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Timothy Sipples Sent: Tuesday, March 06, 2012 10:44 PM To: IBM-MAIN@bama.ua.edu Subject: Re: Good source for relationship of opcodes, models, MACHINE() and ARCH() A suggestion: if there are some volunteers to collect and organize the information, how about putting it on Wikipedia where it can be maintained and publicly accessed easily going forward, together with links to other references? Wikipedia is available here: http://en.wikipedia.org Perhaps the article should be entitled something like IBM mainframe models with appropriate redirect aliases and links from existing, related articles. Timothy Sipples Resident Enterprise Architect (Based in Singapore) E-Mail: timothy.sipp...@us.ibm.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN
Re: Good source for relationship of opcodes, models, MACHINE() and ARCH()
This was bugging me so I got a start on a document. I have a table now (with some question marks in it) that correlates Model numbers, the HLASM MACHINE() option, and the XL C/C++ ARCH() option, and also the Enterprise PL/I option ARCH() which (believe it or not!!!) is apparently exactly equivalent to that of C/C++. I had the bright idea that I could run assemblies with MACHINE(xxx,LIST) at the various levels and then use ISPF 3.12 to determine the differences as the level changed, but HLASM prints the opcode list in a three-column format, so nearly every line changes from one level to the next. I have not yet come up with an approach other than using some tool to make each list into a single column -- but that's more work than I wanted to take on this morning. Charles -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Charles Mills Sent: Monday, March 05, 2012 7:02 PM To: IBM-MAIN@bama.ua.edu Subject: Re: Good source for relationship of opcodes, models, MACHINE() and ARCH() Thanks. Good list. IBM Canada does some cool stuff. Sheesh! Add G-levels to MACHINE() and ARCH() levels. All the information is out there. I could do a document that answered these questions if I didn't already have a day job. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN
Re: Good source for relationship of opcodes, models, MACHINE() and ARCH()
BTDT already. Try the attached Rexx (genoptbl.txt) (at least I hope it gets attached -- I will paste it into a new reply if it doesn't make it to the list). Peter -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Charles Mills Sent: Tuesday, March 06, 2012 10:04 AM To: IBM-MAIN@bama.ua.edu Subject: Re: Good source for relationship of opcodes, models, MACHINE() and ARCH() This was bugging me so I got a start on a document. I have a table now (with some question marks in it) that correlates Model numbers, the HLASM MACHINE() option, and the XL C/C++ ARCH() option, and also the Enterprise PL/I option ARCH() which (believe it or not!!!) is apparently exactly equivalent to that of C/C++. I had the bright idea that I could run assemblies with MACHINE(xxx,LIST) at the various levels and then use ISPF 3.12 to determine the differences as the level changed, but HLASM prints the opcode list in a three-column format, so nearly every line changes from one level to the next. I have not yet come up with an approach other than using some tool to make each list into a single column -- but that's more work than I wanted to take on this morning. Charles -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Charles Mills Sent: Monday, March 05, 2012 7:02 PM To: IBM-MAIN@bama.ua.edu Subject: Re: Good source for relationship of opcodes, models, MACHINE() and ARCH() Thanks. Good list. IBM Canada does some cool stuff. Sheesh! Add G-levels to MACHINE() and ARCH() levels. All the information is out there. I could do a document that answered these questions if I didn't already have a day job. -- 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. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN/* REXX */ /* Procedure to read HLASM OPTABLE(type,LIST) output listing */ /* and generate a table of opcodes in a single column*/ /* with opcodes also converted to decimal for sorting needs */ /* */ /* Input from SYSUT1 and output to SYSUT2*/ arg dbg . if ((dbg = '') | (verify(dbg,'0123456789') 0)) then dbg = 0 else dbg = dbg + 0 address TSO select when dbg = 1 then trace r when dbg 1 then trace i otherwise trace o end /* Read in the entire OPTABLE listing */ 'EXECIO * DISKR SYSUT1 (STEM LINE.' if RC 0 then LINE.0 = 0 'EXECIO 0 DISKR SYSUT1 (FINIS' if dbg 0 then do say 'GENOPTBL: LINE.0='LINE.0 end intbl = 0 INST. = '' INST.0 = 0 do lx = 2 to LINE.0 wd1 = word(LINE.lx, 1) pfl = left(LINE.lx, 1) if (intbl = 0) (wd1 = '0Mnemonic') then do intbl = 1 iterate lx end if (pfl = '1') , (pos('Operation Code Table Contents', LINE.lx) = 0) then leave lx if (intbl = 1) (pfl = '1') then do intbl = 0 iterate lx end if (intbl = 0) then iterate lx if (pfl = '0') then LINE.lx = ' 'substr(LINE.lx, 2) do lc = 2 to 122 by 40 icolm = substr(LINE.lx, lc, 40) icw = words(icolm) cw2 = word(icolm, 2) if (icw = 0) | (cw2 = 'HLASM') then iterate lc cw3 = word(icolm, 3) op1d = right(x2d(left(cw3, 2)), 3, '0') if length(cw3) = 4 then do op2d1 = substr(cw3, 3, 1) if op2d1 = '.' then op2d1 = ' ' else op2d1 = right(x2d(op2d1), 2, '0') op2d2 = substr(cw3, 4, 1) if op2d2 = '.' then op2d2 = ' ' else op2d2 = right(x2d(op2d2), 2, '0') end else do op2d1 = ' ' op2d2 = ' ' end icolm = substr(icolm, 1, 19) op1d op2d1 op2d2 substr(icolm, 20) ix = INST.0 + 1 INST.ix = ' 'icolm INST.0 = ix end end /* Write the 1-column instruction lines to output */ 'EXECIO' INST.0 'DISKW SYSUT2 (STEM INST.' 'EXECIO 0 DISKW SYSUT2 (FINIS' exit -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN
Re: Good source for relationship of opcodes, models, MACHINE() and ARCH()
Got it. You da best! I will get back on this at some point soon. Charles -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Farley, Peter x23353 Sent: Tuesday, March 06, 2012 7:38 AM To: IBM-MAIN@bama.ua.edu Subject: Re: Good source for relationship of opcodes, models, MACHINE() and ARCH() BTDT already. Try the attached Rexx (genoptbl.txt) (at least I hope it gets attached -- I will paste it into a new reply if it doesn't make it to the list). Peter -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Charles Mills Sent: Tuesday, March 06, 2012 10:04 AM To: IBM-MAIN@bama.ua.edu Subject: Re: Good source for relationship of opcodes, models, MACHINE() and ARCH() This was bugging me so I got a start on a document. I have a table now (with some question marks in it) that correlates Model numbers, the HLASM MACHINE() option, and the XL C/C++ ARCH() option, and also the Enterprise PL/I option ARCH() which (believe it or not!!!) is apparently exactly equivalent to that of C/C++. I had the bright idea that I could run assemblies with MACHINE(xxx,LIST) at the various levels and then use ISPF 3.12 to determine the differences as the level changed, but HLASM prints the opcode list in a three-column format, so nearly every line changes from one level to the next. I have not yet come up with an approach other than using some tool to make each list into a single column -- but that's more work than I wanted to take on this morning. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN
Re: Good source for relationship of opcodes, models, MACHINE() and ARCH()
Charles Mills wrote: begin extract . . . that correlates Model numbers, the HLASM MACHINE() option, and the XL C/C++ ARCH() option, and also the Enterprise PL/I option ARCH() which (believe it or not!!!) is apparently exactly equivalent to that of C/C++. /end extract It is not a secret that XL C/C++ and Enterprise PL/I share the same optimizer and code generator; and it is thus unsurprising that their ARCH levels are the same. Crowded lines sometimes result from defaulting to the option LIST(121)? The option LIST(133) should [almost] always be coded explicitly. John Gilmore, Ashland, MA 01721 - USA -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN
Re: Good source for relationship of opcodes, models, MACHINE() and ARCH()
On 6 March 2012 11:25, John Gilmore johnwgilmore0...@gmail.com wrote: It is not a secret that XL C/C++ and Enterprise PL/I share the same optimizer and code generator; and it is thus unsurprising that their ARCH levels are the same. Which leads one to wonder if a METAL option for PL/I exists, or could reasonably exist. Tony H. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN
Re: Good source for relationship of opcodes, models, MACHINE() and ARCH()
I should guess that the question whether there will ever be a METAL PL/I is more IBM-political than technical. --jg On 3/6/12, Tony Harminc t...@harminc.net wrote: On 6 March 2012 11:25, John Gilmore johnwgilmore0...@gmail.com wrote: It is not a secret that XL C/C++ and Enterprise PL/I share the same optimizer and code generator; and it is thus unsurprising that their ARCH levels are the same. Which leads one to wonder if a METAL option for PL/I exists, or could reasonably exist. Tony H. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN
Re: Good source for relationship of opcodes, models, MACHINE() and ARCH()
Sung to the tune of http://www.youtube.com/watch?v=EvGJvzwKqg0 Don't hijack my thread, my friend, ... Charles -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Tony Harminc Sent: Tuesday, March 06, 2012 9:32 AM To: IBM-MAIN@bama.ua.edu Subject: Re: Good source for relationship of opcodes, models, MACHINE() and ARCH() On 6 March 2012 11:25, John Gilmore johnwgilmore0...@gmail.com wrote: It is not a secret that XL C/C++ and Enterprise PL/I share the same optimizer and code generator; and it is thus unsurprising that their ARCH levels are the same. Which leads one to wonder if a METAL option for PL/I exists, or could reasonably exist. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN
Re: Good source for relationship of opcodes, models, MACHINE() and ARCH()
I don't know whether Tony is the notional culprit or I am, but I can very easily be induced to shut up/avoid your topics, and I shall now do so. John Gilmore, Ashland, MA 01721 - USA -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN
Re: Good source for relationship of opcodes, models, MACHINE() and ARCH()
A suggestion: if there are some volunteers to collect and organize the information, how about putting it on Wikipedia where it can be maintained and publicly accessed easily going forward, together with links to other references? Wikipedia is available here: http://en.wikipedia.org Perhaps the article should be entitled something like IBM mainframe models with appropriate redirect aliases and links from existing, related articles. Timothy Sipples Resident Enterprise Architect (Based in Singapore) E-Mail: timothy.sipp...@us.ibm.com -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN
Re: Good source for relationship of opcodes, models, MACHINE() and ARCH()
Another list of mainframe machines http://www.vm.ibm.com/devpages/jelliott/cmosproc.html Mike Stayton -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN
Re: Good source for relationship of opcodes, models, MACHINE() and ARCH()
Thanks. Good list. IBM Canada does some cool stuff. Sheesh! Add G-levels to MACHINE() and ARCH() levels. All the information is out there. I could do a document that answered these questions if I didn't already have a day job. Charles -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Mike Stayton Sent: Monday, March 05, 2012 4:24 PM To: IBM-MAIN@bama.ua.edu Subject: Re: Good source for relationship of opcodes, models, MACHINE() and ARCH() Another list of mainframe machines http://www.vm.ibm.com/devpages/jelliott/cmosproc.html Mike Stayton -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN
Re: Good source for relationship of opcodes, models, MACHINE() and ARCH()
Thanks. Helpful info here: http://www.tachyonsoft.com/inst390o.htm If I had nothing better to do I would do a Web page with two tables: 1. Every mnemonic and the HLASM MACHINE() level at which it became available. Source would be HLASM OPTABLE(LIST). 2. Every model number and the corresponding HLASM MACHINE() and C/C++ ARCH() level. The information is available in the manuals, but it is not organized in a way that works well for me (FWIW). The question I am repeatedly trying to answer is my customer has a model xxx -- dare I use mnemonic ABC, and/or how do I set MACHINE() to make sure I stay out of trouble? Charles -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Farley, Peter x23353 Sent: Thursday, March 01, 2012 2:25 PM To: IBM-MAIN@bama.ua.edu Subject: Re: Good source for relationship of opcodes, models, MACHINE() and ARCH() Charles, The Summary of Changes in xxx Edition sections in the Preface of the z/Arch PoOP each list pretty comprehensively which facilities or instruction enhancements were documented in each edition of the PoOP, and each edition corresponds reasonably closely to a particular generation of processor. The descriptions of each of the added facilities documented elsewhere in the PoOP usually also includes a table of which instructions were added or enhanced, or at least a listing of those instructions. Below I have pasted a list which I prepared for my own curiosity (admittedly incomplete and possibly incorrect) of which edition of the PoOP corresponds to which z/Arch machine. HTH Peter Ninth Edition SA22-7832-08z196 (2817) Eighth Edition SA22-7832-07z10 (2097) Seventh Edition SA22-7832-06z10 (2097) Sixth Edition SA22-7832-05z9 BC (2096), z9 EC (2094) Fifth Edition SA22-7832-04z890 (2086), z990 (2084) Fourth Edition SA22-7832-03??? Third Edition SA22-7832-02??? Second Edition SA22-7832-01z800 (2066), z900 (2064) First Edition SA22-7832-00??? -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN
Good source for relationship of opcodes, models, MACHINE() and ARCH()
Is there a single good source for the relationship among specific mnemonics/opcodes, model numbers, the HLASM option MACHINE(), and the C/C++ option ARCH()? For example, STCKF is documented as The store-clock-fast facility may be available on a model implementing z/Architecture a statement somewhat wanting in actionable precision. Charles -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN
Re: Good source for relationship of opcodes, models, MACHINE() and ARCH()
Charles, The Summary of Changes in xxx Edition sections in the Preface of the z/Arch PoOP each list pretty comprehensively which facilities or instruction enhancements were documented in each edition of the PoOP, and each edition corresponds reasonably closely to a particular generation of processor. The descriptions of each of the added facilities documented elsewhere in the PoOP usually also includes a table of which instructions were added or enhanced, or at least a listing of those instructions. Below I have pasted a list which I prepared for my own curiosity (admittedly incomplete and possibly incorrect) of which edition of the PoOP corresponds to which z/Arch machine. HTH Peter Ninth Edition SA22-7832-08z196 (2817) Eighth Edition SA22-7832-07z10 (2097) Seventh Edition SA22-7832-06z10 (2097) Sixth Edition SA22-7832-05z9 BC (2096), z9 EC (2094) Fifth Edition SA22-7832-04z890 (2086), z990 (2084) Fourth Edition SA22-7832-03??? Third Edition SA22-7832-02??? Second Edition SA22-7832-01z800 (2066), z900 (2064) First Edition SA22-7832-00??? -Original Message- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@bama.ua.edu] On Behalf Of Charles Mills Sent: Thursday, March 01, 2012 5:03 PM To: IBM-MAIN@bama.ua.edu Subject: Good source for relationship of opcodes, models, MACHINE() and ARCH() Is there a single good source for the relationship among specific mnemonics/opcodes, model numbers, the HLASM option MACHINE(), and the C/C++ option ARCH()? For example, STCKF is documented as The store-clock-fast facility may be available on a model implementing z/Architecture a statement somewhat wanting in actionable precision. -- 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. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN