<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7735775440047864075</id><updated>2024-09-11T10:20:22.461-07:00</updated><category term="real life"/><category term="random errors drive you insane but it&#39;s a short journey for me"/><category term="z/OS"/><category term="z/vse"/><category term="guest blogger"/><category term="headdesk"/><category term="martin trübner"/><category term="z/architecture assembler"/><category term="FRR"/><category term="LE"/><category term="LOAD"/><category term="SRB"/><category term="debugging"/><category term="high level assembler"/><category term="link"/><category term="tips and techniques"/><category term="welcome"/><category term="ATTACH"/><category term="ATTACHX"/><category term="Apple"/><category term="C"/><category term="C compiler"/><category term="CEEENTRY"/><category term="CICS"/><category term="CPU-measurement facility"/><category term="DSECT"/><category term="ESTAE"/><category term="ESTAEX"/><category term="HOBSET"/><category term="IEZWPL"/><category term="LOAD GLOBAL"/><category term="LOGREC"/><category term="Language Environment"/><category term="POC"/><category term="PRINT OFF"/><category term="SDUMP"/><category term="SDUMPX"/><category term="SETRP"/><category term="TCB"/><category term="WTO"/><category term="abend"/><category term="assembler"/><category term="binder"/><category term="chs"/><category term="coding techniques"/><category term="compilers"/><category term="console"/><category term="cross-memory"/><category term="experiment"/><category term="get off of my lawn"/><category term="goto fail"/><category term="hlasm"/><category term="home office"/><category term="ibm"/><category term="inexperienced developers"/><category term="mac mini"/><category term="memories"/><category term="multiple entry points"/><category term="operator command"/><category term="os x"/><category term="rushed development"/><category term="system z for dummies"/><category term="windows"/><category term="windows 7"/><category term="windows 7 upgrade"/><category term="windows 7 x64 upgrade"/><category term="x64"/><title type='text'>Cat Herder Software</title><subtitle type='html'>The official blog of Cat Herder Software, LLC. News, comments, opinion, and experiences, not just of the mainframe.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7735775440047864075.post-5043812076365634504</id><published>2014-04-17T08:07:00.001-07:00</published><updated>2014-04-17T08:07:05.184-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="abend"/><category scheme="http://www.blogger.com/atom/ns#" term="binder"/><category scheme="http://www.blogger.com/atom/ns#" term="CICS"/><category scheme="http://www.blogger.com/atom/ns#" term="HOBSET"/><category scheme="http://www.blogger.com/atom/ns#" term="Language Environment"/><category scheme="http://www.blogger.com/atom/ns#" term="LE"/><category scheme="http://www.blogger.com/atom/ns#" term="link"/><category scheme="http://www.blogger.com/atom/ns#" term="random errors drive you insane but it&#39;s a short journey for me"/><category scheme="http://www.blogger.com/atom/ns#" term="real life"/><title type='text'>I am HOBSET because the binder put me in APCL in CICS</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;(SWIDT?)&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;So, after a break of a few years, I am plunging back into the world of CICS.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;I needed to do some testing with writing out of messages via CEEMOUT, a Language Environment call that is the issuer of messages, and used by languages–er, &quot;members&quot;–for diagnostics and basic output. For COBOL, DISPLAY goes here; for PL/I, PUT without FILE; for C/C++, stdout/err. In batch, this is controlled by MSGFILE. Under CICS, CEEMOUT output goes to a temporary data queue, by default CESE; this by default is defined as an external queue, and it is defined to DDNAME CEEOUT.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;I started writing a driver program to put a new subroutine through its paces. However, when I tried to run it, I got an APCL abend. &amp;nbsp;This is documented in typical IBM-speak something like &quot;LE recognized that this was an LE program, but it couldn&#39;t initialize it.&quot; Googling didn&#39;t help; the only references are to the aforementioned messages &amp;amp; codes manuals, and one very old reference to a PL/I for MVS and VM manual.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Since I was using some old JCL of mine from prior places, I went to some that is used in another product build. That worked, so it was time to find the differences. I started with the binding process, and it did not take long. The culprit was HOBSET=YES. This parm sets the AMODE bits on in V-cons, so it can be used in BSM and BASSM instructions if you are flipping AMODEs. &amp;nbsp;I removed it, and voilà, the problem went away.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;I am debating whether or not to open a PMR. The restriction is not documented in either CICS or LE documentation. I&#39;m OK with it being a restriction, but the lack of documentation bothers me.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/5043812076365634504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://catherdersoftware.blogspot.com/2014/04/i-am-hobset-because-binder-put-me-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/5043812076365634504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/5043812076365634504'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/2014/04/i-am-hobset-because-binder-put-me-in.html' title='I am HOBSET because the binder put me in APCL in CICS'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>Roseville, CA, USA</georss:featurename><georss:point>38.7521235 -121.28800590000003</georss:point><georss:box>38.554024000000005 -121.61072940000003 38.950223 -120.96528240000004</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7735775440047864075.post-8185293698062854520</id><published>2014-03-03T17:14:00.000-08:00</published><updated>2014-03-03T17:14:45.670-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apple"/><category scheme="http://www.blogger.com/atom/ns#" term="C"/><category scheme="http://www.blogger.com/atom/ns#" term="C compiler"/><category scheme="http://www.blogger.com/atom/ns#" term="compilers"/><category scheme="http://www.blogger.com/atom/ns#" term="goto fail"/><category scheme="http://www.blogger.com/atom/ns#" term="inexperienced developers"/><category scheme="http://www.blogger.com/atom/ns#" term="rushed development"/><title type='text'>Why choosing the right tools for software development is très important, and why you should turn on compiler informational messages.</title><content type='html'>&lt;h4&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;goto fail;&lt;/span&gt;&lt;/h4&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;So, by now about half the country is familiar with what is being called the &quot;goto fail&quot; bug in Apple&#39;s Secure Socket Layer implementation in both OS X and iOS. And, frankly, I&#39;m surprised that this took forever to be noticed.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Why? &lt;i&gt;Because any good C compiler would have caught it!!&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;
&lt;h4&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The code in question:&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Here&#39;s the code. It&#39;s pretty simple to understand, actually, no knowledge of C is required. (Formatting and comment taken from&amp;nbsp;&lt;a href=&quot;http://nakedsecurity.sophos.com/2014/02/24/anatomy-of-a-goto-fail-apples-ssl-bug-explained-plus-an-unofficial-patch/&quot; target=&quot;_blank&quot;&gt;Naked Security&#39;s article&lt;/a&gt;&amp;nbsp;on the subject.)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre style=&quot;-webkit-text-stroke-width: 0px; background-color: #f7f7f7; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: &#39;Courier 10 Pitch&#39;, Courier, monospace; font-size: 11px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1.5em; padding-left: 1.5em; padding-right: 1.5em; padding-top: 1.5em; text-align: start; text-indent: 0px; text-transform: none; vertical-align: baseline; word-spacing: 0px;&quot;&gt;hashOut.data = hashes + SSL_MD5_DIGEST_LEN;
hashOut.length = SSL_SHA1_DIGEST_LEN;
if ((err = SSLFreeBuffer(&amp;amp;hashCtx)) != 0)
    goto fail;
if ((err = ReadyHash(&amp;amp;SSLHashSHA1, &amp;amp;hashCtx)) != 0)
    goto fail;
if ((err = SSLHashSHA1.update(&amp;amp;hashCtx, &amp;amp;clientRandom)) != 0)
    goto fail;
if ((err = SSLHashSHA1.update(&amp;amp;hashCtx, &amp;amp;serverRandom)) != 0)
    goto fail;
if ((err = SSLHashSHA1.update(&amp;amp;hashCtx, &amp;amp;signedParams)) != 0)
    goto fail;
    goto fail;  /* MISTAKE! THIS LINE SHOULD NOT BE HERE */
if ((err = SSLHashSHA1.final(&amp;amp;hashCtx, &amp;amp;hashOut)) != 0)
    goto fail;

err = sslRawVerify(...);
&lt;/pre&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The code performs several functions, and if any of the return codes from the functions is not 0 (a recognized programming standard, non-zero means something bad happened), the code goes to label &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;fail&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; (not pictured here). Note the commented &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;goto fail&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; line, however. There&#39;s no condition there, so the computer is going to branch to &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;fail&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;, and the &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;err&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt; variable will be 0, because of the successful return of the prior function. Big oops. Major oops. Catastrophic oops.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h4&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;My take&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Billions of bits and CPU cycles have already been burned on this. Heck, even some code analysis ISVs are screaming from the rooftops that their products would have caught it. And that&#39;s a good thing, because software applications are so complex these days that issues exist across multiple source code units, and a compiler&amp;nbsp;+ linker/binder isn&#39;t sophisticated enough to see those. But this bug is so simple that a good compiler should have caught it and issued a warning message, or even an informational message. But no one seems to have either noticed this, or run a compile with informational messages turned on. Informational messages can be a nuisance during the majority of the development cycle, but as you work out those final little nits, a developer should turn them on, because they can point out scenarios that can lead to critical issues down the road.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;I have a suspicion that with today&#39;s DevOps, Agile, Scrum, and other &quot;modern&quot; development methodologies, the time for going through the code with a fine-toothed comb is thought of as unnecessary, because we have that two-week cycle deadline coming up, and frankly we need to get the code out, bugs and all.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;But then of course you have to have a compiler that checks for this kind of stuff. And in my experience I have not seen this come out of any other C compiler except the IBM System z C compilers. This is probably because the prior IBM mainframe compilers, such as COBOL, have checked for this sort of thing for decades. For example, from Enterprise COBOL 4.2:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;IGYXX3091-W &amp;nbsp; &amp;nbsp; Code from &quot;?&quot; to &quot;?&quot; can never be executed and was therefore discarded. &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;And I remember this exact message (although its prefix was IGC) from the ANS Full COBOL V4 compiler when I was in college 35 years ago.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;If other compilers have this checking available, this helps cement my feeling that code quality is being ignored in the interest of expediency, because developers aren&#39;t using it, obviously!&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;(If you do know how to generate these messages out of a particular compiler, please let us know in the comments. Some developers may not know how to get them.)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Sadly, as long as this misguided of time-versus-money paradigm continues in the software development world, you&#39;re going to see stupid mistakes like this, or hard-coded admin IDs and passwords inside software (the persistent rumors about 2013&#39;s data breach at Target Stores keep saying this), or encryption set aside because it&#39;s too darned expensive (which is why the USA once again is playing catch-up to Europe in the credit card business).&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Informational messages: they&#39;re put there for a reason. Use them to create better software.&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/8185293698062854520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://catherdersoftware.blogspot.com/2014/03/why-choosing-right-tools-for-software.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/8185293698062854520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/8185293698062854520'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/2014/03/why-choosing-right-tools-for-software.html' title='Why choosing the right tools for software development is très important, and why you should turn on compiler informational messages.'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total><georss:featurename>Roseville, CA, USA</georss:featurename><georss:point>38.7521235 -121.28800590000003</georss:point><georss:box>38.554024000000005 -121.61072940000003 38.950223 -120.96528240000004</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7735775440047864075.post-5919220039510609933</id><published>2013-06-25T15:31:00.000-07:00</published><updated>2013-06-25T15:31:02.621-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ATTACH"/><category scheme="http://www.blogger.com/atom/ns#" term="ATTACHX"/><category scheme="http://www.blogger.com/atom/ns#" term="random errors drive you insane but it&#39;s a short journey for me"/><category scheme="http://www.blogger.com/atom/ns#" term="real life"/><category scheme="http://www.blogger.com/atom/ns#" term="z/OS"/><category scheme="http://www.blogger.com/atom/ns#" term="z/vse"/><title type='text'>Pitfalls of reusing storage with ATTACH(X)</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;So here&#39;s a little something that bit me, and it&#39;s something that I know, and has bit me before. Be careful if you reuse storage.&lt;/span&gt;&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Some development shops have macros that set up CALL parameter lists in a particular area. Or maybe you&#39;ve done that yourself. It&#39;s tempting to use that area for parameters passed to an attached program (PARAM, MF=(E,area)). However, if the attaching program uses this area again before your attached program has a chance to get it, the attached program will pick up whatever is there. So the pointer you expect , maybe to a program communications vector table, may wind up being something completely different, say a log process block. The famous IBM line &quot;unpredictable results will occur&quot; becomes prophetic. In my case, it was an S052-0101 error, which is a problem with LXRES. Now my PC was not executing LXRES, but because the loaded address came from not the expected area, whatever garbage was picked up was identical to LXRES.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/5919220039510609933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://catherdersoftware.blogspot.com/2013/06/pitfalls-of-reusing-storage-with-attachx.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/5919220039510609933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/5919220039510609933'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/2013/06/pitfalls-of-reusing-storage-with-attachx.html' title='Pitfalls of reusing storage with ATTACH(X)'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>Roseville, CA, USA</georss:featurename><georss:point>38.7521235 -121.28800590000003</georss:point><georss:box>38.554024000000005 -121.61072940000003 38.950223 -120.96528240000004</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7735775440047864075.post-7347790826365195815</id><published>2013-04-22T13:04:00.001-07:00</published><updated>2013-04-22T13:04:58.128-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="link"/><category scheme="http://www.blogger.com/atom/ns#" term="LOAD"/><category scheme="http://www.blogger.com/atom/ns#" term="real life"/><title type='text'>A little caveat if you are playing with DCB= on LINK/LOAD</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;So, as we all remember, you can specify a DCB address for LINK/LOAD, which is an open BPAM DCB pointing at a PDS concatenation from which CSV looks for the requested load module. This makes LINK/LOAD (and CSVDYLPA) flexible and can help with debugging or a quick, temporary override.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Unfortunately, if you specify DCB=(r) and that register does not point to a DCB, you don&#39;t get a fancy return code saying the DCB was not a DCB. No, what you will probably get is a strange S0C4-0011 in CSVGETMD in the nucleus.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Moral of the story: if you are cloning code, and you use lots of register operands in your macro invocations, make sure you load all the registers.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;i&gt;Note: CSVDYLPA has additional checks on the DCB parameter and it will give return and reason codes.&lt;/i&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/7347790826365195815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://catherdersoftware.blogspot.com/2013/04/a-little-caveat-if-you-are-playing-with.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/7347790826365195815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/7347790826365195815'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/2013/04/a-little-caveat-if-you-are-playing-with.html' title='A little caveat if you are playing with DCB= on LINK/LOAD'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7735775440047864075.post-8440397739843613086</id><published>2013-03-12T16:23:00.000-07:00</published><updated>2013-03-12T16:23:11.682-07:00</updated><title type='text'>Wrapping your own macro code around vendor-supplied macros without changing source</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;One of the great IBM z/OS performance and measurement gurus, Martin Packer, made a comment in a recent blog entry about he wished he could wrap his code around macros supplied from an external source. I told him that this was possible, and that I had recently done this with the IBM High Level Assembler Toolkit structured programming macros. In this case, I added support for using just &lt;i&gt;name&lt;/i&gt;&amp;nbsp;or &lt;i&gt;!name&lt;/i&gt;&amp;nbsp;for testing a bit flag in conjunction with a bit-flag-generating macro. The key is the OPSYN assembler command.&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;I will demonstrate how to do this using something I wish the DCB macro had that its ACB sibling has - the ability to use the label field as the default DDNAME=.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;I apologize in advance for the crappy formatting; I still need to come up with some good formatting for the examples. Google&#39;s default doesn&#39;t do well. (Martin, yes, I still have your email with suggestions. :) &amp;nbsp;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;I will create CHS.MACLIB(DCB), which will call SYS1.MACLIB(DCB).&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;First, we clone the DCB prototype:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MACRO&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;amp;NAME &amp;nbsp; &amp;nbsp;DCB &amp;nbsp; &amp;amp;DDNAME=0,&amp;amp;MACRF=, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FOUNDATION BLOCK*&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;amp;BFTEK=,&amp;amp;BFALN=,&amp;amp;EODAD=1,&amp;amp;RECFM=,&amp;amp;EXLST=0, &amp;nbsp; &amp;nbsp; EXTENSION*&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;i&gt;&amp;nbsp;Snipped rest of prototype&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;And then we add our logic:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PUSH &amp;nbsp;PRINT,NOPRINT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Obfuscate&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PRINT OFF,NOPRINT&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;DCB_ &amp;nbsp; &amp;nbsp; OPSYN DCB &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Change CHS.MACLIB(DCB)&#39;s name&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;DCB &amp;nbsp; &amp;nbsp; &amp;nbsp;OPSYN , &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DCB now refers to SYS1.MACLIB(DCB)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;POP &amp;nbsp; PRINT,NOPRINT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; No more obfuscation&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LCLC &amp;nbsp;&amp;amp;N&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;amp;N &amp;nbsp; &amp;nbsp; &amp;nbsp; SETC &amp;nbsp;&#39;&amp;amp;DDNAME&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AIF &amp;nbsp; (&#39;&amp;amp;N&#39; NE &#39;&#39;).GOTDD&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;amp;N &amp;nbsp; &amp;nbsp; &amp;nbsp; SETC &amp;nbsp;&#39;&amp;amp;NAME&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AIF &amp;nbsp; (&#39;&amp;amp;N&#39; NE &#39;&#39;).GOTDD&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MNOTE 8,&#39;Missing label or DDNAME&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AGO &amp;nbsp; .EXIT&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;.*&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;.GOTDD &amp;nbsp; ANOP &amp;nbsp;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;amp;NAME &amp;nbsp; &amp;nbsp;DCB &amp;nbsp; DDNAME=&amp;amp;N,MACRF=&amp;amp;MACRF,BFTEK=&amp;amp;BFTEK,BFALN=&amp;amp;BFALN, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;amp;&lt;/span&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EODAD=&amp;amp;EODAD,RECFM=&amp;amp;RECFM,EXLST=&amp;amp;EXLST, &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;amp;&lt;/div&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;i&gt;Snipped rest of invocation&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;.EXIT &amp;nbsp; &amp;nbsp;ANOP &amp;nbsp;,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PUSH &amp;nbsp;PRINT,NOPRINT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Obfuscate again&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PRINT OFF,NOPRINT&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;DCB &amp;nbsp; &amp;nbsp; &amp;nbsp;OPSYN DCB_ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Now DCB refers to CHS.MACLIB(DCB)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;POP &amp;nbsp; PRINT,NOPRINT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; No more obfuscation (again)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/i&gt;MEND &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The magic is in the OPSYN assembler instructions. Assuming CHS.MACLIB is ahead of SYS1.MACLIB in the SYSLIB concatenation, our DCB macro is picked up first. During processing, we change the name of our DCB macro to DCB_, and then we tell the assembler that DCB from this point forward refers to whichever DCB it finds. Since our DCB is now DCB_, the assembler now burrows further into the concatenation and finds SYS1.MACLIB(DCB) when it gets to the DCB macro coded inside CHS.MACLIB(DCB), and the assembler now uses it. After the DCB invocation, OPSYN is used again to undo what we did at the beginning, so that subsequent invocations of DCB will use CHS.MACLIB(DCB).&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;It&#39;s a little bit confusing at first, but if you stick an MNOTE in your wrapper macro, or use MHELP and ACONTROL LIBMAC, you can see what the assembler is doing. And you&#39;ll find this can be a very powerful tool for certain situations, such as prohibiting usage of certain macro operands by developers.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/8440397739843613086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://catherdersoftware.blogspot.com/2013/03/wrapping-your-own-macro-code-around.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/8440397739843613086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/8440397739843613086'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/2013/03/wrapping-your-own-macro-code-around.html' title='Wrapping your own macro code around vendor-supplied macros without changing source'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7735775440047864075.post-227852865717269377</id><published>2013-02-10T12:13:00.003-08:00</published><updated>2013-02-10T12:13:39.427-08:00</updated><title type='text'>SHARE experiences</title><content type='html'>&lt;br /&gt;
(Cross-posted to the z390 Assembler blog.)&lt;br /&gt;
&lt;br /&gt;
Well, I just discovered that the post I thought I made to this blog about presenting at SHARE was never published. No big worries, though, as I certainly posted it in a lot of places.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Last Tuesday, Feb 5, I presented at SHARE Winter 2013 in San Francisco, on z390, zCOBOL, zCICS, and the associated add-ons. This was my first time ever presenting at SHARE, or any user group at all. It was also my first attendance at a user group since, wow, 1989. (I am not counting my non-attendance at SHARE Summer 2012 in Anaheim, or the time I came down to SF to meet my boss at a Software AG user conference in the late 1990s.) it had been 18 months since Don Higgins presented on z390, and I thought that since SHARE was local, it would be a great opportunity to describe what is new, and what is coming.&lt;br /&gt;
&lt;br /&gt;
I went in a bit nervous. The voice of my GA from my COMS 103 class at Sac State, Brie Adams, was whispering in my head on things not to do. I knew some friends of mine such as Ed Jaffe were attending. And then things got even more nervous. Not only was Mr. HLASM, Dr. John Ehrman, attending, but his successor. Sharuff Mousa (from Hursley) as well. And people I knew like Kristine Harper, and people I knew but had just finally met in person, like Rich Smrcina, Tom Conley, and Scott Fagen, were attending. And complete strangers as well. (I found out later that day that Mr. z/OS himself, Bob Rogers, wanted to attend but had a conflict. I think I would have died if he had made it.)&lt;br /&gt;
&lt;br /&gt;
But onward I went. And I think I did pretty well. I handled questions, even having to answer some off the cuff. I made new contacts. I will admit that I haven&#39;t looked at the evaluations yet; I&#39;m a bit scared to do so. And I probably was nervous some as well. Mary Anne Matyaz snapped a photo of me during my session, and my wife Cheri says I look nervous. I&#39;m not surprised. (And having just looked again at the photo, I&#39;m grabbing the chair.)&lt;br /&gt;
&lt;br /&gt;
The rest of the day was a bit of a blur. Because of Mary Anne&#39;s gentle arm-twisting, I chaired a couple of sessions in the afternoon, and in one I finally met Kirk Wolf in person. Then I helped with some subterfuge and got my friend Chris Craddock (again, whom I had not met in person until he came to collect the badge) into the Expo. The next couple of hours were just tagging along with Chris and meeting even more folks whom I knew from the various mainframe-oriented mailing lists and Facebook. That evening was a CA-hosted party on the 45th floor, where I saw Meral Temel (sadly, I had no real chance to talk with her other than a quick &quot;hello&quot;) and met Skip Robinson and Sam Knutson (again, finally in person!). And I&#39;m sure I met a couple of others, and I apologize for forgetting already.&lt;br /&gt;
&lt;br /&gt;
A big thanks to Crash Craddock for letting me crash at his place.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, unless the Braves are playing the Sox interleague that week, I won&#39;t be in Boston. But Winter 2014 is in Anaheim and I am already making plans. I hope to see you there!&lt;br /&gt;
&lt;br /&gt;
My presentation can be downloaded from the SHARE web site (Session 12252), or if you are patient it can be loaded from the z390 or Cat Herder Software&#39;s web site later this week. (I will update with links when they are ready; I have to fix a couple of types I found.)&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/227852865717269377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://catherdersoftware.blogspot.com/2013/02/share-experiences.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/227852865717269377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/227852865717269377'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/2013/02/share-experiences.html' title='SHARE experiences'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7735775440047864075.post-1790459273862275005</id><published>2012-11-08T13:18:00.001-08:00</published><updated>2012-11-08T13:18:16.600-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ibm"/><category scheme="http://www.blogger.com/atom/ns#" term="system z for dummies"/><title type='text'>IBM Software for System z For Dummies ®</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Yes, you read that right.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;You do need to give up some contact info, but you can download and read&amp;nbsp;&lt;a href=&quot;https://www14.software.ibm.com/webapp/iwm/web/signup.do?source=swg-102GW14W&amp;amp;CT=ISM0056&quot; target=&quot;_blank&quot;&gt;IBM Software for System z for Dummies ®&lt;/a&gt;&amp;nbsp;and learn how System z is the right path for your growing business. Integrity, transaction handling, technological superiority, all are hallmarks of the System z family, a tradition going back to System/360 days.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://www14.software.ibm.com/iwm/web/campaigns/swg-102GW14W/Dummies_en_US.bmp&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://www14.software.ibm.com/iwm/web/campaigns/swg-102GW14W/Dummies_en_US.bmp&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/1790459273862275005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://catherdersoftware.blogspot.com/2012/11/ibm-software-for-system-z-for-dummies.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/1790459273862275005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/1790459273862275005'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/2012/11/ibm-software-for-system-z-for-dummies.html' title='IBM Software for System z For Dummies ®'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total><georss:featurename>Roseville, CA, USA</georss:featurename><georss:point>38.7521235 -121.2880059</georss:point><georss:box>38.6530585 -121.4459344 38.851188500000006 -121.1300774</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7735775440047864075.post-5520326077676054416</id><published>2012-11-07T19:32:00.000-08:00</published><updated>2012-11-07T19:32:40.539-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="debugging"/><category scheme="http://www.blogger.com/atom/ns#" term="headdesk"/><category scheme="http://www.blogger.com/atom/ns#" term="high level assembler"/><category scheme="http://www.blogger.com/atom/ns#" term="random errors drive you insane but it&#39;s a short journey for me"/><category scheme="http://www.blogger.com/atom/ns#" term="real life"/><category scheme="http://www.blogger.com/atom/ns#" term="tips and techniques"/><category scheme="http://www.blogger.com/atom/ns#" term="z/architecture assembler"/><title type='text'>An ongoing list of z/Architecture assembler things that you forget if you don&#39;t use them often enough</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;This blog entry will be updated and reposted whenever I come across things that I should remember but my brain has forgotten due to infrequent contact with the item.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;TRT munches GPR2. That&#39;s why the subsequent compare failed miserably.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Man, there are a lot of SVCs and PCs that won&#39;t work in AR mode. Make sure you switch out of AR mode before calling macros like WAIT. &lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/5520326077676054416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://catherdersoftware.blogspot.com/2012/07/an-ongoing-list-of-things-that-you.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/5520326077676054416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/5520326077676054416'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/2012/07/an-ongoing-list-of-things-that-you.html' title='An ongoing list of z/Architecture assembler things that you forget if you don&#39;t use them often enough'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>Roseville, CA, USA</georss:featurename><georss:point>38.7521235 -121.2880059</georss:point><georss:box>38.6530585 -121.4459344 38.851188500000006 -121.1300774</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7735775440047864075.post-112225687810956432</id><published>2012-10-16T14:32:00.000-07:00</published><updated>2012-11-07T19:27:18.060-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="tips and techniques"/><category scheme="http://www.blogger.com/atom/ns#" term="z/architecture assembler"/><title type='text'>Little bitty z/Architecture assembler tips and tricks not worthy of their own blog entry</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;This blog entry will be updated continually and reposted when I come up with little tips and techniques not worthy of their own blog entry.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;High half register check&lt;/span&gt;&lt;/h4&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Can&#39;t use those bitchin&#39; new high-half register instructions because you have customers not on the latest z196/z114? Need to check the upper half of a register for non-zero so your AMODE 64 doesn&#39;t run amok? Use the following:&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;CLG&amp;nbsp;&amp;nbsp;&amp;nbsp;R0,=X&#39;00000000FFFFFFFF&#39;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;JH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;THERE_IS_SOMETHING_IN_THE_HIGH_HALF_OF_THE_REGISTER&lt;/span&gt;&lt;/blockquote&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;And you also have an example of a label longer than 8 characters.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Make sure your base register is clean in AR mode&lt;/span&gt;&lt;/h4&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;LAE is a nice instruction for setting a base register if you aren&#39;t sure your code will be called in primary or AR mode. If the B&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: xx-small; vertical-align: sub;&quot;&gt;2&lt;/span&gt;&amp;nbsp;field is 0, when you are in AR mode,&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;00000000&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;is placed into the corresponding R&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: xx-small; vertical-align: sub;&quot;&gt;1&lt;/span&gt;&amp;nbsp;access register, so you can code&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; margin-left: 10%;&quot;&gt;LAE&amp;nbsp;&amp;nbsp;&amp;nbsp;R12,0(R15)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; font-weight: normal;&quot;&gt;and get your entry point without the possibility of getting messed up by a stray ALET in AR12.&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;WAIT LONG=YES and baseless programming (z/OS, 1.12 and earlier)&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;If you&#39;ve tried this combination before, you&#39;ve gotten bit because the macro generates a BCR GPR8,0 instruction followed by an ICM of the second byte via an &quot;*-1&quot; operand. If you&#39;re baseless, this fails because you are baseless. However, there is no need to fret. The following code works and gets around this issue.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IILH &amp;nbsp;GPR0,X&#39;8000&#39;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IILL &amp;nbsp;GPR0,1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WAIT &amp;nbsp;(0),ECB=MYECB&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The macro generates an unnecessary LR GPR0,GPR0 followed by the appropriate code. If you are using an ECBLIST, just put the number of this-many-POSTed ECBs in GPR0; in this case, it might be easier to load GPR0 first, then use an OILH GPR0,X&#39;8000&#39; instruction.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;As noted in the comments below, starting with 1.13, if you are SYSSTATE ARCHLVL=2, WAIT will generate appropriate code for baseless situations.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;More to come as I think of them...&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/112225687810956432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://catherdersoftware.blogspot.com/2012/08/little-bitty-tips-and-tricks-not-worthy.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/112225687810956432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/112225687810956432'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/2012/08/little-bitty-tips-and-tricks-not-worthy.html' title='Little bitty z/Architecture assembler tips and tricks not worthy of their own blog entry'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7735775440047864075.post-5396431385318767553</id><published>2012-09-05T16:17:00.000-07:00</published><updated>2012-09-05T16:17:17.608-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="assembler"/><category scheme="http://www.blogger.com/atom/ns#" term="CEEENTRY"/><category scheme="http://www.blogger.com/atom/ns#" term="LE"/><category scheme="http://www.blogger.com/atom/ns#" term="multiple entry points"/><category scheme="http://www.blogger.com/atom/ns#" term="real life"/><title type='text'>An interesting way to implement a multi-entry-point API for an LE assembler module</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Today I came up with an idea for implementing an API assembler module when LE is involved. Let me first say that although &amp;nbsp;LE is very functional and usually makes life easier for high-level languages, when assembler gets involved it complicates things until you get used to LE thinking.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The original code had an entry point which did the STM for the save area and then loaded a function code into a register. Unfortunately, this does not work well with LE because the CEEENTRY macro has the STM in it. So I came up with this interesting implementation to get the function code and have only one CEEENTRY macro. Here is a very simple example, without the required CEEPPA, CEEDSA, CEECAA, and CEETERM macros:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;API &amp;nbsp; &amp;nbsp; &amp;nbsp;CSECT&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ENTRY INIT,READ,WRITE,TERM&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;INIT &amp;nbsp; &amp;nbsp; DC &amp;nbsp; &amp;nbsp;0H&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;J &amp;nbsp; &amp;nbsp; LEENTRY&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;READ &amp;nbsp; &amp;nbsp; DC &amp;nbsp; &amp;nbsp;0H&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;J &amp;nbsp; &amp;nbsp; LEENTRY&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;WRITE &amp;nbsp; &amp;nbsp;DC &amp;nbsp; &amp;nbsp;0H&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;J &amp;nbsp; &amp;nbsp; LEENTRY&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;TERM &amp;nbsp; &amp;nbsp; DC &amp;nbsp; &amp;nbsp;0H&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;J &amp;nbsp; &amp;nbsp; LEENTRY&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;LEENTRY &amp;nbsp;DC &amp;nbsp; &amp;nbsp;0H&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;API &amp;nbsp; &amp;nbsp; &amp;nbsp;CEEENTRY MAIN=NO,BASE=R11 (default base)&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;L &amp;nbsp; &amp;nbsp; R15,4(,R13) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Backchain save area&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;L &amp;nbsp; &amp;nbsp; R15,16(,R15) &amp;nbsp; &amp;nbsp; &amp;nbsp; Get R15 at call&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;* R15 now is the address of the entry point&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LA &amp;nbsp; &amp;nbsp;R14,0(,R11) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Clear out HOB just in case (SEE BELOW)&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LA &amp;nbsp; &amp;nbsp;R15,4(,R15) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Clear out HOB and make 1-based&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SR &amp;nbsp; &amp;nbsp;R14,R15 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Calculate offset from beginning of CSECT&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SRA &amp;nbsp; R14,2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Divide by 4, preserving sign (allows use of JM BAD)&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;* R14 now has a function code ranging from 1 to 4&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;* Obviously we add some additional checking of R14 to make sure&lt;/span&gt;&lt;/blockquote&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;* it is valid for our purposes.&lt;/span&gt;&lt;/blockquote&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt; &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;So now GPR14 has a value ranging from 1 to 4, with 1 being INIT, 2 being READ, etc.. Good programmers will test GPR14 for falling within the required boundaries. You could also forgo the SRA and use the value of 4, 8, 12, or 16. In current releases of z/OS, CEEENTRY uses LARL to load the base register with the address of API, so the LA of GPR14 from GPR11 could just be an LR. This also works with non-LE assembler code; if you have a base register use LA, and if &quot;baseless&quot; use an LARL of the CSECT name. Just make sure that if you have a standard entry macro (most shops do) that generates a CSECT, the CSECT name used at the beginning of the module has to match that generated by your macro.&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/5396431385318767553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://catherdersoftware.blogspot.com/2012/09/an-interesting-way-to-implement-multi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/5396431385318767553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/5396431385318767553'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/2012/09/an-interesting-way-to-implement-multi.html' title='An interesting way to implement a multi-entry-point API for an LE assembler module'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>Roseville, CA, USA</georss:featurename><georss:point>38.7521235 -121.2880059</georss:point><georss:box>38.6530585 -121.4459344 38.851188500000006 -121.1300774</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7735775440047864075.post-4279918920586122357</id><published>2012-08-31T16:50:00.000-07:00</published><updated>2012-09-01T12:30:40.806-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="console"/><category scheme="http://www.blogger.com/atom/ns#" term="IEZWPL"/><category scheme="http://www.blogger.com/atom/ns#" term="operator command"/><category scheme="http://www.blogger.com/atom/ns#" term="real life"/><category scheme="http://www.blogger.com/atom/ns#" term="WTO"/><category scheme="http://www.blogger.com/atom/ns#" term="z/OS"/><category scheme="http://www.blogger.com/atom/ns#" term="z/vse"/><title type='text'>Some uncommonly used features of WTO in z/OS (and maybe z/VSE)</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The past few days I have worked on a couple enhancements that exploited some lesser-known WTO features. None of these require APF authorization.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Multiple-line WTOs&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;So, you ask, why multiple-line WTOs? Why don&#39;t I just send lots of WTOs? Well, that sucks up system resources, and if there are any console exits, you&#39;re driving them every time. A multple-line WTO can give the console subsystem and your hardcopy log a little breather. There is one drawback – you can only have 71 characters per line…but we&#39;re all professionals, that&#39;s not a big deal. (A normal single-line WTO can have up to 126 characters.)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Everybody who is a z/OS mainframe programmer has already been exposed to one example - the IEA995A message. This is the one issued when an abend occurs and it has eventually percolated to RTM. You can identify multiple-line WTOs in the JES message log (first SYSOUT data set), JES system messages (third SYSOUT data set), the hardcopy log, or your TSO session as there is no repetition of the date, time, nor the JES job identifier. They are replaced by the three-digit number which appears to the right of the first line of the message. Here&#39;s a contrived example (if you don&#39;t know, S806-4 means that the load module could not be found in the STEPLIB/JOBLIB/link pack/LPA chain), and I apologize for the small print but since I&#39;m using a basic blogger.com template, this is the only way I could get it to show up without line wrapping:&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: xx-small;&quot;&gt;13.14.51 JOB74042 &amp;nbsp;IEA995I SYMPTOM DUMP OUTPUT &amp;nbsp;864 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp;864 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SYSTEM COMPLETION CODE=806 &amp;nbsp;REASON CODE=00000004 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp;864 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TIME=13.14.51 &amp;nbsp;SEQ=28924 &amp;nbsp;CPU=0000 &amp;nbsp;ASID=0062 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp;864 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PSW AT TIME OF ERROR &amp;nbsp;070C1000 &amp;nbsp; 8141F276 &amp;nbsp;ILC 2 &amp;nbsp;INTC 0D &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp;864 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NO ACTIVE MODULE FOUND &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp;864 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NAME=UNKNOWN &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp;864 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DATA AT PSW &amp;nbsp;0141F270 - 8400181E &amp;nbsp;0A0D18FB &amp;nbsp;180C181D &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp;864 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AR/GR 0: 936AF47A/00000000_00001F00 &amp;nbsp; 1: 00000000/00000000_84806000&lt;br /&gt;
&amp;nbsp; &amp;nbsp;864 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2: FFFFFFFF/FFFFFFFF_00000000 &amp;nbsp; 3: FFFFFFFF/FFFFFFFF_00000000&lt;br /&gt;
&amp;nbsp; &amp;nbsp;864 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4: FFFFFFFF/FFFFFFFF_00000000 &amp;nbsp; 5: FFFFFFFF/FFFFFFFF_007E69F8&lt;br /&gt;
&amp;nbsp; &amp;nbsp;864 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6: FFFFFFFF/FFFFFFFF_000000FF &amp;nbsp; 7: FFFFFFFF/FFFFFFFF_00000000&lt;br /&gt;
&amp;nbsp; &amp;nbsp;864 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;8: FFFFFFFF/FFFFFFFF_007B5150 &amp;nbsp; 9: FFFFFFFF/FFFFFFFF_0141F778&lt;br /&gt;
&amp;nbsp; &amp;nbsp;864 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A: FFFFFFFF/FFFFFFFF_00000000 &amp;nbsp; B: FFFFFFFF/FFFFFFFF_00000000&lt;br /&gt;
&amp;nbsp; &amp;nbsp;864 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C: FFFFFFFF/FFFFFFFF_00000000 &amp;nbsp; D: FFFFFFFF/FFFFFFFF_007B5150&lt;br /&gt;
&amp;nbsp; &amp;nbsp;864 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;E: 00000000/00000000_84806000 &amp;nbsp; F: 00000000/00000000_00000004&lt;br /&gt;
&amp;nbsp; &amp;nbsp;864 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;END OF SYMPTOM DUMP &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;There are two variations of how to code the WTO macro to do this. Both utilize the second subparameter of either the first positional parameter (traditional WTO) or the TEXT= operand, and in both cases it is for each multiple subparameter. The first of these is &quot;D&quot;, which indicates that the text is part of a multiple-line WTO. The other is your choice - &quot;DE&quot; or &quot;E&quot;. &quot;E&quot; indicates that the WTO is fniished; &quot;DE&quot; means that the text supplied on this invocation is the last line. I have found that the easiest way to implement this is to use TEXT= and MF=L/E, something similar to this (only the required stuff shown so not to clutter with DESC= and ROUTCDE=):&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MVC &amp;nbsp; @WTOD,#WTOD&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MVC &amp;nbsp; WTOTEXT,MSG1&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;* put in variable parts of MSG1&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WTO &amp;nbsp; TEXT=WTOTEXT,MF=(E,@WTOD)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ST &amp;nbsp; &amp;nbsp;R1,WTOCONN&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MVC &amp;nbsp; WTOTEXT,MSG2&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;* put in variable parts of MSG2&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WTO &amp;nbsp; TEXT=WTOTEXT,CONNECT=WTOCONN,MF=(E,@WTOD)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MVC &amp;nbsp; @WTOE,#WTOE&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WTO &amp;nbsp; CONNECT=WTOCONN,MF=(E,@WTOE)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;#WTOD &amp;nbsp; &amp;nbsp;WTO &amp;nbsp; TEXT=(,D),MF=L&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;#WTOD_L &amp;nbsp;EQU &amp;nbsp; *-#WTOD&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;#WTOE &amp;nbsp; &amp;nbsp;WTO &amp;nbsp; TEXT=(,E),MF=L&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;#WTOE_L &amp;nbsp;EQU &amp;nbsp; *-#WTOE&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;@WTOD &amp;nbsp; &amp;nbsp;DS &amp;nbsp; &amp;nbsp;CL(#WTOD_L)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ORG &amp;nbsp; @WTOD&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;@WTOE &amp;nbsp; &amp;nbsp;DS &amp;nbsp; &amp;nbsp;CL(#WTOE_L)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ORG &amp;nbsp; ,&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;(Now, yes, I could have mapped the WTO parm list and manipulated things directly for the E invocation, but I believe this explains the concept better.&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The &quot;D&quot; and &quot;E&quot; invocations are tied together via the CONNECT parameter. The CONNECT token is returned in GPR1 if a multiple-line WTO is started. It is then referenced in subsequent WTO invocations. (In the old days, before CONNECT, you put it in GPR0 before the call, and you can still do this if you don&#39;t use TEXT=.) The WTO is not issued until you make the &quot;E&quot; invocation.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;You can use the field where you save the CONNECT token as a switch in a loop. If it is zero, it&#39;s the first time, so you invoke the WTO without CONNECT and store the token, and with subsequent iterations you invoke the WTO with CONNECT.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;But remember – you need that &quot;E&quot; call, otherwise your partially built WTO will be discarded after a few seconds, which is eons to a 5.5Ghz model 2827 (zEC12) CPU.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Non-authorized callers are limited to 10 lines maximum, but authorized callers can have up to 255 lines, and that&#39;s a whole lotta lines.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Command response WTO&lt;/span&gt;&lt;/h3&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: small; font-weight: normal;&quot;&gt;Have you entered an operator command via &quot;/&quot; in SDSF and wonder how it was able to (usually) display the response from the command? It is not an &quot;ancient Chinese secret,&quot; if you are old enough to remember that USA commercial from the 1970s. One crucial piece of information is required: the command-and-response token (&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: small; font-weight: normal;&quot;&gt;CART).&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: small; font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: small; font-weight: normal;&quot;&gt;When your task that processes operator MODIFY or STOP commands (or if you&#39;re really fancy, from the START command, or through operator command or subsystem interface exits) retrieves the command, the CART is located in both the CIBX (addressable by adding CIBXOFF to the CIB address), the CSCB, or the aforementioned exits. (Modern processing uses the CIB.) Once you have this piece of information, you can specify it via the CART= operand on the WTO. This identifies this WTO as a command response, and certain processes that use the console subsystem can retrieve just these WTOs and tie them to the originating command. This is how SDSF does it, and it becomes useful for the next section…&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: small; font-weight: normal;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3 style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Limiting a command response WTO to the console where the command was issued&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;When using the console subsystem for issuing operator commands and retrieving WTOs, such as IBM&#39;s NetView or Software AG&#39;s Entire System Server, it is nice to only send the WTO command response to the originating console, rather than to every console (hardware and subsystem) in the LPAR. You limit this by specifying the console ID on the WTO through either CONSID=. The console ID is available in the CIBX, the CSCB, and the aforementioned exits. It is also possible to put a console ID that was obtained elsewhere, if you have an environment that has well-defined consoles. If you know the console name, you can use CONSNAME=. (CONSNAME and CONSID are mutually exclusive, however.)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h3&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The IEZWPL DSECT&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;If you are feeling adventurous, you can build your own parameter list to SVC 35 using the IEZWPL DSECT (found in SYS1.MODGEN). However, you really need to be careful in building this list, because a mistake can lead to an SD23 abend, incomplete WTO, or pure garbage and messages incorrectly flagged as critical.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;If you want to try this, I recommend that you do some sample assemblies with various expansions of the WTO macro to see how it builds the parameter list. I also recommend you talk to your systems programmer, and if you are nice maybe s/he will allow you to try this on a sandbox system.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;WTOs and commands in z/VSE&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;In the late 1990s, the OS/390 console support was ported to VSE/ESA., retaining many of the same design concepts. Therefore, many of the concepts above apply as well, however I have to admit that I have not done a multiple-line or a specific command-response WTO in a z/VSE task as a response to the MSG console command. If there is interest, I&#39;ll get our z/VSE expert Martin to elaborate.&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/4279918920586122357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://catherdersoftware.blogspot.com/2012/08/some-uncommonly-used-features-of-wto-in.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/4279918920586122357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/4279918920586122357'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/2012/08/some-uncommonly-used-features-of-wto-in.html' title='Some uncommonly used features of WTO in z/OS (and maybe z/VSE)'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total><georss:featurename>Roseville Roseville</georss:featurename><georss:point>38.740011 -121.255265</georss:point></entry><entry><id>tag:blogger.com,1999:blog-7735775440047864075.post-9082896925036411760</id><published>2012-08-16T10:17:00.000-07:00</published><updated>2012-08-16T10:17:05.326-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="memories"/><category scheme="http://www.blogger.com/atom/ns#" term="real life"/><title type='text'>My high school is no more</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Some sad news crossed my path the other day. My high school alma mater,&lt;a href=&quot;http://www.montclairprep.com/&quot; target=&quot;_blank&quot;&gt; Montclair College Preparatory School&lt;/a&gt;, shut down a month ago, a victim of the economy. They&#39;d been around for 56 years.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The founder and operator, Dr. Vernon E. Simpson, passed away about 4 years ago. Apparently since, the school had had difficulty getting endowments and drawing students. I&#39;m sure the economy had a lot to do with this, as well as the passing of the visible presence of the school to parents and the community. Last year, they had cut all sports programs, which is never a good sign.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Montclair is where I learned all about computers. Up until the last semester of my senior year, I had absolutely no clue as to what I wanted to do. Then, that Christmas, I received a TI-58 programmable calculator. I started playing with the programming, and it was like the proverbial light bulb. Then a computer class became available, and I started working on a TRS-80 Model 1. Within a month I was working on the school&#39;s PDP-8, and the rest, as is said, is history. And here I am today.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;On the auditorium stage when I got up to receive my diploma (actually a rolled-up piece of paper because the original diplomas had the school&#39;s name misspelled by the printer), Dr. Simpson whispered to me &quot;and honors in computers&quot;, as he knew that I spent lots of time after school hours working on the PDP-8, just writing programs.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Now that part of my life really only exists in memories. No longer can I drive on Sepulveda Blvd. heading to Western Bagel and look at the school, and remember that&#39;s where I got the kick in the tushie that pointed me to what I am today. But I do have good friendships with several of my classmates, and I&#39;ve seen a few of them in the past month. Our 35th reunion is coming up in a couple of years. I helped get people together via Facebook for our 30th, and social networking will help us again. And Montclair Prep will live on in our collective memories.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Thank you, Montclair. You may have had your problems off and on over the years, but you taught me a lot about life, and got me into a career field I love.&amp;nbsp;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/9082896925036411760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://catherdersoftware.blogspot.com/2012/08/my-high-school-is-no-more.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/9082896925036411760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/9082896925036411760'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/2012/08/my-high-school-is-no-more.html' title='My high school is no more'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7735775440047864075.post-2825631955734682054</id><published>2012-08-07T14:27:00.002-07:00</published><updated>2012-08-07T14:27:24.091-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="home office"/><category scheme="http://www.blogger.com/atom/ns#" term="mac mini"/><category scheme="http://www.blogger.com/atom/ns#" term="os x"/><category scheme="http://www.blogger.com/atom/ns#" term="real life"/><title type='text'>Sometimes being a pack rat works out well, sometimes you wind up on &quot;Hoarders&quot;</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;This past weekend was dedicated to a big rearrangement and purge of my office (although my wife says I still need to purge more, and I actually agree with this sentiment). The catalyst was the receipt of a recent &lt;a href=&quot;http://woot.com/&quot;&gt;woot.com&lt;/a&gt; deal of a combination of two HP 22&quot; monitors with a dual stand. I rearranged the work areas so that my day job workspace is much bigger, and I cleared enough to put my Mac Mini, my Windows 2003 Server server, and two laptops destined to become Linux/BSD machines in one corner.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The wired keyboard and mouse I was using for the Mac were a pain, so I decided to use one of a pair of Microsoft wireless keyboard/mice I had bought a while ago from woot.com. I opened the package, and started to work on it. I saw all of these dire warnings about &quot;install software first!&quot; (exclamation points included), and went about this. That&#39;s when I remembered something - the Mac Mini does not have an optical drive. No big deal, I&#39;ll just copy the contents of the CD to a USB drive and use&amp;nbsp;&lt;a href=&quot;http://en.wikipedia.org/wiki/Sneakernet&quot; target=&quot;_blank&quot;&gt;Sneakernet&lt;/a&gt;. But when I loaded the CD into my laptop, I noticed something - no .dmg files (the format used by Apple OS for installation). I didn&#39;t dig further, but I realized that this was a dual-format CD, and Windows would not acknowledge the OS partition.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Then I remembered something - I had an ancient external CD writer. Purchased around the turn of the century, we used it to back up an old Sony VAIO laptop used extensively during our eBay selling days. It was temperamental with writing CDs, but, hey, who cares, I&#39;m reading, not writing. It was also early USB technology, probably 1.1. Off to one of my two junk boxes; I tore through the contents, and found it and its power supply. I grabbed a USB cable, plugged it in (both places), and inserted the CD. Surprisingly, OS X Lion recognized it, and, even better, it recognized the CD! I then clicked through Finder and started the dmg package, and it installed. There were a couple of dire warning messages, but after the restart, I was able to plug in the remote receiver and my wireless keyboard and mouse are working perfectly.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Moral of the story: Don&#39;t throw anything out, you might need it. Wait, revised moral: You can get rid of some things, for example, the 10Mb network switches and the parallel and serial mechanical A/B switches.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;(A victim of the purge is my dearly loved IBM P96 flat-screen CRT monitor, made by Sony, with Trinitron innards. It is unique because it was an early dual-input device, and drives an incredible-for-its-time 1600x1200 (but I swear I drove it harder than that at 1920x1440). I call it the boat anchor, because it&#39;s pretty darned heavy, and is really not conducive to relocation. It suffers from a little tic in that when it warms up the display is a bit cut off; all you have to do, though, is power-off and -on and it clears up. The reason why I am digressing is that despite its little glitch, it is still a great monitor, and I hate to send it to the recycling facility. If you&#39;re in the Sacramento area, drop me a note via my web site, and it&#39;s yours for free.)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/2825631955734682054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://catherdersoftware.blogspot.com/2012/08/sometimes-being-pack-rat-works-out-well.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/2825631955734682054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/2825631955734682054'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/2012/08/sometimes-being-pack-rat-works-out-well.html' title='Sometimes being a pack rat works out well, sometimes you wind up on &quot;Hoarders&quot;'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total><georss:featurename>Roseville, CA, USA</georss:featurename><georss:point>38.7521235 -121.2880059</georss:point><georss:box>38.6530585 -121.4459344 38.851188500000006 -121.1300774</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7735775440047864075.post-7181961623713716477</id><published>2012-08-01T11:35:00.000-07:00</published><updated>2012-08-01T13:17:39.451-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CPU-measurement facility"/><category scheme="http://www.blogger.com/atom/ns#" term="experiment"/><category scheme="http://www.blogger.com/atom/ns#" term="guest blogger"/><category scheme="http://www.blogger.com/atom/ns#" term="martin trübner"/><category scheme="http://www.blogger.com/atom/ns#" term="POC"/><category scheme="http://www.blogger.com/atom/ns#" term="z/vse"/><title type='text'>Getting the CPU-Measurement Facility to work in z/VSE</title><content type='html'>&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;At long last - the promised guest blog entry from&amp;nbsp;&lt;a href=&quot;http://www.pi-sysprog.de/&quot; target=&quot;_blank&quot;&gt;Martin Trübner&lt;/a&gt;! Vielen dank!&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Let me first introduce myself&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTG_BOWeccXoA9LzKvt1_JL1ykxYd_L6roGhS5h6yabrbXr1Kp6keSPjhXaScZTHUQPgn3c6saITdNAI-Lz_3sseE-QBGCs3fosu0D5jW7F6VjJQt95Jxak6eVNAJQlrJCKD2yy_DE4Wy6/s1600/_MaskImg_1.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 2em; margin-right: 2em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTG_BOWeccXoA9LzKvt1_JL1ykxYd_L6roGhS5h6yabrbXr1Kp6keSPjhXaScZTHUQPgn3c6saITdNAI-Lz_3sseE-QBGCs3fosu0D5jW7F6VjJQt95Jxak6eVNAJQlrJCKD2yy_DE4Wy6/s1600/_MaskImg_1.png&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;My name is Martin Trübner. I am German and work from here, but did&amp;nbsp;(when being on site was vital) gigs all over Europe and the US. I was&amp;nbsp;educated and did my first job in z/OS predecessors but did my first&amp;nbsp;sysgen on DOS/VS R31. During my activities I do run into z/OS and&amp;nbsp;it is a wonderful environment. You can do everything and everything&amp;nbsp;can be avoided and/or forbidden (through real measures), but not so in DOS/VS.&amp;nbsp;Today I am bit-wise active in z/VSE and CICS/TS, and as an&amp;nbsp;application&amp;nbsp;person (with enough background to be dangerous) in z/OS.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
First Encounter&lt;/span&gt;&lt;/h3&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPp-QIeYIa0ke8DTi8uQNvmwseGwmD7Wsyl1qYUlW1v9RMaZxgizv9KHQPpPr3rj7elund00_YoB-7ClDXeWONYCFxexrr68b5YXivIqb68XB68rb5gQaTzuQefxQzkB-lVuw3luUIH6Ta/s1600/_MaskImg_2.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 2em; margin-right: 2em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPp-QIeYIa0ke8DTi8uQNvmwseGwmD7Wsyl1qYUlW1v9RMaZxgizv9KHQPpPr3rj7elund00_YoB-7ClDXeWONYCFxexrr68b5YXivIqb68XB68rb5gQaTzuQefxQzkB-lVuw3luUIH6Ta/s1600/_MaskImg_2.png&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;With the announcement of the z196 I stumbled over the CPU-Measurement Facility (CPU-MF). I was delighted to read that it is available on the z10 as well. The various counters did not really interest me, but the sampling was something for which I could imagine a very rewarding use case. If you want details of what is collected, here is a picture with&amp;nbsp;&lt;a href=&quot;http://www.pi-sysprog.de/free/pisamdata.html&quot; target=&quot;_blank&quot;&gt;mouseover explanations&lt;/a&gt;. But I read that it is only available for native operating systems. Since most of the z/VSE shops do run with z/VM on top, there was no point for me to investigate further.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;br /&gt;During a presentation at the end of June 2012, I was alerted by a single sentence that read:&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;New z/VM CPU MF COUNTERS support – APAR VM64961&lt;/span&gt;&lt;/blockquote&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
I thought to myself: “Now this is good news. Let&#39;s dive into the details”.&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;h3 style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
Preliminary checks&lt;/h3&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-family: Arial, Helvetica, sans-serif; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjV_UahDxcMFiMb2rdTEddULZxPrzShgqjB7fbFJIBftj0c1DXCeZKmgqTjO9gtkkpYv9VWPs4toQKBH6_PTaX7LrUV3cXzaQWmro1o4T3I2P51lFz-TQ0EJMKlHTcNebpOJWoh46VpoVvu/s1600/_MaskImg_3.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 2em; margin-right: 2em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjV_UahDxcMFiMb2rdTEddULZxPrzShgqjB7fbFJIBftj0c1DXCeZKmgqTjO9gtkkpYv9VWPs4toQKBH6_PTaX7LrUV3cXzaQWmro1o4T3I2P51lFz-TQ0EJMKlHTcNebpOJWoh46VpoVvu/s1600/_MaskImg_3.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
I Googled for it and found a few presentations, the book that documents the&amp;nbsp;instructions and structures used for it, and some bits and pieces about it; I must also not forget documentation regarding &lt;b&gt;H&lt;/b&gt;ardware &lt;b&gt;I&lt;/b&gt;nstrumentation &lt;b&gt;S&lt;/b&gt;ervices&amp;nbsp;(HIS) for z/OS (thanks to &quot;E.&quot;).&amp;nbsp;Here are my findings:
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;For sampling, it needs a setting in the SE/HWC&lt;/li&gt;
&lt;li style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;For VM it needs the above PTF&lt;/li&gt;
&lt;li style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;z/OS has HIS that explores it and makes lots of extra information&amp;nbsp;
available&lt;/li&gt;
&lt;li style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;z/HISR from Phoenix has software that uses the z/OS HIS data.&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The CPU-MF &quot;POP-equivalent&quot; manual, &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; color: #222222;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;i&gt;Load-Program-Parameter and the Set-Program-Parameter and CPU-Measurement Facilities&lt;/i&gt;&amp;nbsp;(IBM manual SA23-2260-02)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;says that this facility is a prerequisite for the CPU-measurement sampling facility.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The structures for sampling are very clever and suitable for any number of samples&lt;/li&gt;
&lt;li style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;There is even provision for emptying buffers while sampling is active &amp;nbsp;&lt;/li&gt;
&lt;li style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;There is even extra space for extension (as it was when TRAP–ping was introduced, shortly&amp;nbsp;before 64-bit was introduced).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;h3 style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
Setup in z/VSE / Problems&lt;/h3&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnz6H1aBoW1DkB8UUoq_eQAVO5lxBrlydY-5qxdHOrPHmZC31PV13Zh0XTj59yAqHQb11i4hP24erj9F6z-yQjUMCBvFuVru6aKZPLsHAtgndioeUOveEGMts4DsnrLByKo4Yxrlz8Jyrg/s1600/_MaskImg_5.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 2em; margin-right: 2em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnz6H1aBoW1DkB8UUoq_eQAVO5lxBrlydY-5qxdHOrPHmZC31PV13Zh0XTj59yAqHQb11i4hP24erj9F6z-yQjUMCBvFuVru6aKZPLsHAtgndioeUOveEGMts4DsnrLByKo4Yxrlz8Jyrg/s1600/_MaskImg_5.png&quot; /&gt;&lt;/a&gt;Nothing is a show-stopper, so I decided to go for it and write a POC with only 1–minute sampling at&amp;nbsp;every 2 milliseconds (just one SDB (sampling data buffer) at 1MB), and here is what happened…&lt;br /&gt;
&lt;br /&gt;
(Please do not&amp;nbsp;forget- this is all occuring in z/VSE 5.1, which is the first version of&amp;nbsp;VSE that supports 64-bits virtual.)&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;My hardware does not have it. Okay, there are customers with a z10/z196/z114 that willing to help but the switching on via the SE/HWC is not an everyday activity. So here we have a delay.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;It needs IARV64 – my first chance to use it – one more reason to go for it.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;For debugging I would like to display what I “prepared for the HW”/”got back from HW”.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Ah…well, SDUMPX does support areas above the bar–but how do I get an address space&amp;nbsp;STOKEN. I know what it is but heck – should I really go for control blocks to get it? Thanks&amp;nbsp;to &quot;I.&quot;, who showed me an undocumented operand of ALESERV. So now we can display these&amp;nbsp;areas even without the famous 0C3 or my debugger (&lt;a href=&quot;http://www.pi-sysprog.de/ine52.html&quot; target=&quot;_blank&quot;&gt;TRAPPER&lt;/a&gt;, which does understand 64-bit&amp;nbsp;storage).&lt;i&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;(Ray adds: I know of this operand. It can also be used to access other partitions via access registers.)&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;IARV64 REQUEST=PAGEFIX,RANGLIST=RLIST_PTR,NUMRANGE=1&amp;nbsp;abends with a ABEND 2C5&amp;nbsp;reason 0598 which reads: “0598 IARV64: Parameter list or range list must be in 31-bit&amp;nbsp;storage”. How can I guarantee 31 bit storage? I can do 24, below the bar, and any boundary-&amp;nbsp;but 31? With the help of &quot;I.&quot; it was identified as typo (meaning “not 64”) and a coding-error&amp;nbsp;on my side.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;I have yet to find a place where my program needs to use LPP. I am not part of the operating system, and have no way to transport (and complement later) any specific information via these 8&amp;nbsp;bytes (as opposed to z/VM or z/OS which certainly do utilize the 3 fields (basic, logical,&amp;nbsp;virtual) and would certainly produce confusing results with a program injecting its own 8&amp;nbsp;bytes).&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h3 style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
The END&lt;/h3&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; font-family: Arial, Helvetica, sans-serif; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7202pIolURJOnhONQ1LAM0l82_r44gbJykcH_0akPErKrCBWOYUIJHHSDxP5qh4kiJgQ7QlMuWm6haBRG52k9o-mJOfape1FsWAgMU14QPLjfwiya69XVL4DIDwyFPORHiG51FJi4nAxd/s1600/_MaskImg_4.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 2em; margin-right: 2em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7202pIolURJOnhONQ1LAM0l82_r44gbJykcH_0akPErKrCBWOYUIJHHSDxP5qh4kiJgQ7QlMuWm6haBRG52k9o-mJOfape1FsWAgMU14QPLjfwiya69XVL4DIDwyFPORHiG51FJi4nAxd/s1600/_MaskImg_4.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
I coded it, commented out the QSI and LSCTL instructions, created entries as I expect the&amp;nbsp;HW to do it, tested it, and removed the testcode…and then I learned that I have not read the fine print of the PTF (thanks to &quot;E.&quot;, saving&amp;nbsp;me hours of frustration in front of a z196) .&amp;nbsp;Here is the fine print:&amp;nbsp;&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;Support for the CPU-Measurement Sampling Facility and ... interfaces for guest&amp;nbsp;use are not provided.&lt;/span&gt;&lt;/blockquote&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
So I can put this to a rest and wait. Maybe one day support for guests will show up.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;h3&gt;
Next&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
Next time I get a chance, I will write about CICS/TS and coding a simple TRUE and a GLUE.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/7181961623713716477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://catherdersoftware.blogspot.com/2012/08/getting-cpu-measurement-facility-to.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/7181961623713716477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/7181961623713716477'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/2012/08/getting-cpu-measurement-facility-to.html' title='Getting the CPU-Measurement Facility to work in z/VSE'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTG_BOWeccXoA9LzKvt1_JL1ykxYd_L6roGhS5h6yabrbXr1Kp6keSPjhXaScZTHUQPgn3c6saITdNAI-Lz_3sseE-QBGCs3fosu0D5jW7F6VjJQt95Jxak6eVNAJQlrJCKD2yy_DE4Wy6/s72-c/_MaskImg_1.png" height="72" width="72"/><thr:total>1</thr:total><georss:featurename>Langen, Germany</georss:featurename><georss:point>49.9914663 8.6634007</georss:point><georss:box>49.9506328 8.5844367000000013 50.0322998 8.7423647</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7735775440047864075.post-4346444354088274643</id><published>2012-07-25T21:05:00.000-07:00</published><updated>2012-07-26T10:21:01.041-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="coding techniques"/><category scheme="http://www.blogger.com/atom/ns#" term="DSECT"/><category scheme="http://www.blogger.com/atom/ns#" term="headdesk"/><category scheme="http://www.blogger.com/atom/ns#" term="high level assembler"/><category scheme="http://www.blogger.com/atom/ns#" term="hlasm"/><category scheme="http://www.blogger.com/atom/ns#" term="PRINT OFF"/><category scheme="http://www.blogger.com/atom/ns#" term="random errors drive you insane but it&#39;s a short journey for me"/><category scheme="http://www.blogger.com/atom/ns#" term="real life"/><category scheme="http://www.blogger.com/atom/ns#" term="z/architecture assembler"/><title type='text'>LOCTR - very powerful, and makes it very easy to shoot yourself in the foot</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;I promise that I will get Martin&#39;s blog up in a couple of days, and I hope that part 3 of &quot;TCBs, SRBs, and FRRs, oh my!&quot; will be posted in a couple of weeks (shifting work priorties), but I thought I&#39;d throw this little tidbit out there for you.&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;I am updating our standard entry/exit macros to support AMODE 64, and support various types of AMODEs and ASCs on entry. As a part of this, I&#39;ve had to add some more LOCTRs to the definition of our work areas. But let me demonstrate this little trap for you:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;WORK &amp;nbsp; &amp;nbsp; DSECT ,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;WORKLOC1 LOCTR ,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;DW10 &amp;nbsp; &amp;nbsp; DS &amp;nbsp; &amp;nbsp;D&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;WORKLOC2 LOCTR ,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;DW20 &amp;nbsp; &amp;nbsp; DS &amp;nbsp; &amp;nbsp;D&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;WORKLOC1 LOCTR ,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;DW11 &amp;nbsp; &amp;nbsp; DS &amp;nbsp; &amp;nbsp;D&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;WORKLOC2 LOCTR ,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;DW21 &amp;nbsp; &amp;nbsp; DS &amp;nbsp; &amp;nbsp;D&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;WORKLOC1 LOCTR ,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;DW13 &amp;nbsp; &amp;nbsp; DS &amp;nbsp; &amp;nbsp;D&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;* All done!&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;WORKLEN &amp;nbsp;EQU &amp;nbsp; *-WORK&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LHI &amp;nbsp; R0,WORKLEN&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;STORAGE OBTAIN,LENGTH=(0)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;What value is loaded into R0 by the LHI instruction, and how many bytes of storage will be obtained? Raise your hand. How many say 40? OK, a couple. How many say 24? Aha, those are the ones who have worked with LOCTR and have been bit by this little gotcha.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Those of you who said 40, can you figure it why it&#39;s 24? Yep, that&#39;s right. I&#39;ll go ahead and redo the above with location counters, so the reason becomes clear:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;00000000 WORK &amp;nbsp; &amp;nbsp; DSECT ,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;00000000 WORKLOC1 LOCTR ,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;00000000 DW10 &amp;nbsp; &amp;nbsp; DS &amp;nbsp; &amp;nbsp;D&lt;/span&gt;&lt;/div&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;00000018&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;WORKLOC2 LOCTR ,&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;00000018&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;DW20 &amp;nbsp; &amp;nbsp; DS &amp;nbsp; &amp;nbsp;D&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;00000008&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;WORKLOC1 LOCTR ,&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;00000008&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;DW11 &amp;nbsp; &amp;nbsp; DS &amp;nbsp; &amp;nbsp;D&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;00000020&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;WORKLOC2 LOCTR ,&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;00000020&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;DW21 &amp;nbsp; &amp;nbsp; DS &amp;nbsp; &amp;nbsp;D&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;00000010&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;WORKLOC1 LOCTR ,&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;00000010&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;DW13 &amp;nbsp; &amp;nbsp; DS &amp;nbsp; &amp;nbsp;D&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;* All done!&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;00000018&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;WORKLEN &amp;nbsp;EQU &amp;nbsp; *-WORK&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;The EQU is in WORKLOC1, and it correctly calculates the length of the WORKLOC1 LOCTR area. There are two ways to correct this: 1) insert a WORKLOC2 LOCTR before the equate; 2) my preferred solution, which is to introduce a new LOCTR (call it WORK_END) before the EQU. In either case, &amp;nbsp;WORKLEN will now be the actual length of the WORK DSECT, 40 bytes.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;LOCTR is very powerful, as it allows you to define items in macros but yet segregate; such as putting required constants in a CONSTANT LOCTR area, out of the instruction pipeline. But, like any powerful tool in the system developer&#39;s arsenal, it must be used with great caution, and always take a sanity look at the assembler listing. The hour of debugging you save may be your own!&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;


&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;And a few more things...&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Please try to avoid hard-coded offsets. It may have made sense to the person who originally wrote this code 20 years ago, but when someone new comes along, having nice, identifiable labels and DSECTs will make that person&#39;s life easier when trying to decipher your control block chaining. The time you spend coding the DSECT and labels now may preserve someone&#39;s sanity down the road.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;When you do switch to DSECTs, remember to put the right register in the USING statement. (That&#39;s more of a &lt;b&gt;*headdesk*&lt;/b&gt;&amp;nbsp;moment for me.)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Don&#39;t use PRINT OFF unless you really need it. Nothing ticks me off more that looking at a listing file and seeing that the entry macro has issued PRINT OFF, and nothing follows.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/4346444354088274643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://catherdersoftware.blogspot.com/2012/07/loctr-very-powerful-and-makes-it-very.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/4346444354088274643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/4346444354088274643'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/2012/07/loctr-very-powerful-and-makes-it-very.html' title='LOCTR - very powerful, and makes it very easy to shoot yourself in the foot'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7735775440047864075.post-5522303868371963928</id><published>2012-07-24T17:54:00.003-07:00</published><updated>2012-07-24T17:54:44.257-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="guest blogger"/><category scheme="http://www.blogger.com/atom/ns#" term="martin trübner"/><category scheme="http://www.blogger.com/atom/ns#" term="welcome"/><category scheme="http://www.blogger.com/atom/ns#" term="z/OS"/><category scheme="http://www.blogger.com/atom/ns#" term="z/vse"/><title type='text'>Es freut mich sehr, euch Martin Trübner, unseren Gastblogger, vorzustellen</title><content type='html'>&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;(That&#39;s enough German for today.)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Martin&#39;s blog entry will be published this week, but first I thought I would give you a little bit of information about him.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Martin is a freelance technical software developer, with deep system roots in z/VSE, and he has carried over his vast CICS applications knowledge over into z/OS. He has also written some software for Windows platforms.&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; color: #222222; font-family: Arial, Helvetica, sans-serif;&quot;&gt;He was born in 1953 and met his first bit (an EBCDIC one) in 1972.&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; color: #222222; font-family: Arial, Helvetica, sans-serif;&quot;&gt;He speaks German, English, HLASM, Cobol, PLI, REXX and some lesser known&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; color: #222222; font-family: Arial, Helvetica, sans-serif;&quot;&gt;dialects like Pascal, BASIC, and Perl &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-small;&quot;&gt;(&lt;i&gt;which, if you didn&#39;t know, is &lt;a href=&quot;https://maps.google.com/maps?q=Perl,+Germany&amp;amp;hl=en&amp;amp;ll=49.473032,6.385117&amp;amp;spn=0.066705,0.189857&amp;amp;sll=38.739857,-121.255298&amp;amp;sspn=0.010009,0.023732&amp;amp;oq=p&amp;amp;hnear=Perl,+Saarland,+Germany&amp;amp;t=m&amp;amp;z=13&quot; target=&quot;_blank&quot;&gt;really a town&lt;/a&gt; near the Luxembourgish/French/German border, located near &lt;a href=&quot;https://maps.google.com/maps?q=Borg,+Germany&amp;amp;hl=en&amp;amp;ll=49.497343,6.438675&amp;amp;spn=0.066672,0.189857&amp;amp;sll=49.473032,6.385117&amp;amp;sspn=0.066705,0.189857&amp;amp;hnear=Borg,+Perl,+Saarland,+Germany&amp;amp;t=m&amp;amp;z=13&quot; target=&quot;_blank&quot;&gt;Borg&lt;/a&gt; and &lt;a href=&quot;https://maps.google.com/maps?q=Apach,+France&amp;amp;hl=en&amp;amp;ll=49.460314,6.37413&amp;amp;spn=0.033361,0.094929&amp;amp;sll=49.497343,6.438675&amp;amp;sspn=0.066672,0.189857&amp;amp;oq=Apach,&amp;amp;hnear=Apach,+Moselle,+Lorraine,+France&amp;amp;t=m&amp;amp;z=14&quot; target=&quot;_blank&quot;&gt;Apach&lt;/a&gt;(e)&lt;/i&gt;)&lt;/span&gt;.&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; color: #222222; font-family: Arial, Helvetica, sans-serif;&quot;&gt;Before becoming a freelancer he worked for various shops including applications, central&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; color: #222222; font-family: Arial, Helvetica, sans-serif;&quot;&gt;development, a vendor of system programs, and for a PCM (&lt;b&gt;P&lt;/b&gt;lug-&lt;b&gt;C&lt;/b&gt;ompatible&amp;nbsp;&lt;b&gt;M&lt;/b&gt;anufacturer, a producer of hardware that supported the IBM System/370 and 390 architecture)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;I met Martin during my days in Software AG R&amp;amp;D. I was a developer for&amp;nbsp;&lt;a href=&quot;http://www.softwareag.com/corporate/images/ESS_FS_June08_tcm16-44534.pdf&quot; target=&quot;_blank&quot;&gt;Entire System Server&lt;/a&gt;, working on the two supported IBM platforms (the third being &lt;a href=&quot;http://www.fujitsu.com/fts/products/computing/servers/bs2000/&quot; target=&quot;_blank&quot;&gt;BS2000/OSD&lt;/a&gt;). I don&#39;t remember all the details, but I know VSE/ESA was involved. He and I became good friends, and we finally met when I travelled to Germany in 2003, and we got together again in 2005. (From that last visit, I seem to recall lots of good beer and yelling back in unison &quot;Wir wissen!&quot; at the GPS&#39; repetitive &quot;links fahren&quot; as he drove me back to the hotel.)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Martin is one of a small group of fellow mainframe developers whose opinions and advice I wholeheartedly trust. I am glad he asked me if he could be a guest blogger, and as I stated in the title, es freut mich sehr.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Welcome aboard, Martin!&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: xx-small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;(Und vielen dank, Martin, for making my title more German-sounding. I was pretty close with the original, just a couple minor transgressions, like forgetting that vor- is a separable prefix, and the wrong case for &quot;unser&quot;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;.)&lt;span id=&quot;goog_953755190&quot;&gt;&lt;/span&gt;&lt;span id=&quot;goog_953755191&quot;&gt;&lt;/span&gt;&lt;a href=&quot;http://www.blogger.com/&quot;&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/5522303868371963928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://catherdersoftware.blogspot.com/2012/07/es-freut-mich-sehr-euch-martin-trubner.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/5522303868371963928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/5522303868371963928'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/2012/07/es-freut-mich-sehr-euch-martin-trubner.html' title='Es freut mich sehr, euch Martin Trübner, unseren Gastblogger, vorzustellen'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>Langen, Germany</georss:featurename><georss:point>49.9914663 8.6634007</georss:point><georss:box>49.9506328 8.5844367000000013 50.0322998 8.7423647</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7735775440047864075.post-404675478293866590</id><published>2012-07-20T17:30:00.000-07:00</published><updated>2012-07-20T17:30:03.607-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="get off of my lawn"/><category scheme="http://www.blogger.com/atom/ns#" term="guest blogger"/><category scheme="http://www.blogger.com/atom/ns#" term="martin trübner"/><category scheme="http://www.blogger.com/atom/ns#" term="z/vse"/><title type='text'>Guest blogger coming soon – and an open invite to others</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;So, after a few blog entries, it looks like that this blog is going to be a lot about the development and debugging experiences when writing system tools software, as well as the toils and tribulations of working with computers on what should be simple tasks (like updating Windows) from an old-school mainframe perspective.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;i&gt;(GUIs? Ha! We don&#39;t need no stinkin&#39; GUIs! When I was your age we had switches on the panel and blinking lights, and we liked it!)&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;A good friend of mine - or should I say ein gut Freund - &lt;a href=&quot;http://www.pi-sysprog.de/&quot; target=&quot;_blank&quot;&gt;Martin Trübner&lt;/a&gt; asked if he could contribute his experiences working with one of those other IBM mainframe operating systems, z/VSE. I said sure! I do miss working with z/VSE; it&#39;s been about 8 years since I worked with it on a regular basis. It requires a bit more hands-on management from a systems programming perspective, which is good, as it keeps the brain engaged. I wouldn&#39;t mind getting a chance to dip my fingers back in the platform.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Look for his first guest blog post in the next few days.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;I also am extending an open invitation to all mainframe software developers to guest blog. You&#39;ve seen what I&#39;ve done so far. If you want to share your thought process on designing or debugging of your daily routine&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;(nothing proprietary, of course!)&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;, please send me &lt;a href=&quot;http://www.catherdersoftware.com/contact.html&quot; target=&quot;_blank&quot;&gt;an email&lt;/a&gt;, drop me a note on &lt;a href=&quot;https://www.facebook.com/cat.herder.software&quot; target=&quot;_blank&quot;&gt;FB&lt;/a&gt;, &lt;a href=&quot;https://plus.google.com/101294715609927742002/posts&quot; target=&quot;_blank&quot;&gt;G+&lt;/a&gt;, &lt;a href=&quot;http://www.linkedin.com/in/raymullins&quot; target=&quot;_blank&quot;&gt;LinkedIn&lt;/a&gt;, &lt;a href=&quot;https://www.xing.com/profile/Ray_Mullins&quot; target=&quot;_blank&quot;&gt;XING&lt;/a&gt;,&amp;nbsp;or &lt;a href=&quot;https://twitter.com/catherdersoft&quot; target=&quot;_blank&quot;&gt;Twitter&lt;/a&gt;, or send smoke signals in the Sacramento vicinity, and please make sure they do not look like the recent spate of grass fires we&#39;ve had.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/404675478293866590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://catherdersoftware.blogspot.com/2012/07/guest-blogger-coming-soon-and-open.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/404675478293866590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/404675478293866590'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/2012/07/guest-blogger-coming-soon-and-open.html' title='Guest blogger coming soon – and an open invite to others'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>Roseville, CA, USA</georss:featurename><georss:point>38.7521235 -121.2880059</georss:point><georss:box>38.6530585 -121.4459344 38.851188500000006 -121.1300774</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7735775440047864075.post-7026721320807362941</id><published>2012-07-16T18:13:00.000-07:00</published><updated>2012-07-18T12:56:05.321-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="debugging"/><category scheme="http://www.blogger.com/atom/ns#" term="FRR"/><category scheme="http://www.blogger.com/atom/ns#" term="headdesk"/><category scheme="http://www.blogger.com/atom/ns#" term="LOAD"/><category scheme="http://www.blogger.com/atom/ns#" term="LOAD GLOBAL"/><category scheme="http://www.blogger.com/atom/ns#" term="LOGREC"/><category scheme="http://www.blogger.com/atom/ns#" term="random errors drive you insane but it&#39;s a short journey for me"/><category scheme="http://www.blogger.com/atom/ns#" term="SETRP"/><category scheme="http://www.blogger.com/atom/ns#" term="SRB"/><category scheme="http://www.blogger.com/atom/ns#" term="z/OS"/><title type='text'>TCBs and SRBs and FRRs, oh my! - part 2</title><content type='html'>&lt;h4&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Debugging the SRB and associated FRR&lt;/span&gt;&lt;/h4&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;i&gt;&lt;b&gt;UPDATE&lt;/b&gt;: See the end for a nice piece of helpful information that can remove hours, gray hairs, and wrinkles from the debugging process!&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Debugging an SRB and an associated FRR can be a real PITA. You can&#39;t get a traditional SYSUDUMP/SYSABEND; the only thing you can do is try to get an SVC dump, as they are known. These are binary dumps of storage, similar to SYSMDUMP, and have to be processed with IPCS (or AMDPRDMP in the old days).&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;So, the first problem I ran into was that the SRB was abending with an S0C4. No problem, look at the FRR…but there&#39;s no FRR WTO output. There&#39;s also no WTO output from the SRB, even the one near the very beginning. Hmmm…so I do what all programmers do – I start limiting the code. I reduce my SRB to just the WTO. Now it shows up. I eye suspiciously my accessing of the product CVT via GPR1, which is the PARM= parameter of the IEAMSCHD macro. Oops. Apparently, I had a bout of fuzzy logic. I was interpreting GPR1 as being a pointer to the fullword specified in PARM=. Nope. GPR1 has the value specified in the area pointed to by PARM=. So from the example from part 1, GPR1 will have the value of GPR10, which was stored in SRBEPARM, which is then pointed to by the PARM=. So I fixed that, and I got the WTO.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Now I want to drive the FRR, so I added a good old DC H&#39;0&#39; to force an S0C1. Instead, I got an S0C4. I also noticed garbage in the job name/job number fields for the WTO in the hardcopy log. These fields are obtained from the product CVT, so I realized that the product CVT might either be zero or initialized or otherwise garbage. I changed the code so that if the product CVT pointer was invalid, then use a eye-catching value for the job name and job number. That helped, but then I was still not getting the WTOs with the PSW and other information. I then noticed that a system dump had been produced from the WTO. I saved that off, but then I realized that I needed to make sure that the PARM= was actually the product CVT. I added a WTO to print the contents of the area and return, and, sure enough. it was fine. But I was still getting an S0C4 and my FRR was not firing…why was this happening? Then I thought that it must be occurring upon return from the FRR. But after a few more tests, I noticed that the FRR WTO was firing randomly.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;During this time, I was involved in an IM conversation with my friend &quot;R&quot;, &amp;nbsp;discussing my frustrations. He reminded me that WTOs are not synchronous by default, and in an SRB this can lead to timing issues. I added SYNCH=YES, and I also added a parameter to do testing inside my address space, not the external address space, as this will help reduce issues and exposure to screwing up the system. And then begins the part of debugging I hate the most – things suddenly start working.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;I ran with an option that sets the FRR to be the wonderful z/XDC product from&amp;nbsp;&lt;a href=&quot;http://www.colesoft.com/&quot; target=&quot;_blank&quot;&gt;ColeSoft&lt;/a&gt;. And it hits my forced S0C1. That&#39;s good. I set it back to my FRR. It doesn&#39;t hit. I then begin to notice that the LPAR is having issues, and it looks like we will need to IPL. Time to quit for the weekend, the highlight of which was seeing the blues band that two of my high school classmates are in playing in the East Bay. Another classmate, who was on vacation, sat in as well. (All three, along with a fourth classmate, had had their own band during our high school era.)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;h4&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Just another manic Monday…wish it were Sunday…&lt;/span&gt;&lt;/h4&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;So, after a weekend of not looking at this, back to figuring out what&#39;s going on. But on Sunday, The Shower Principle hit again; I realized that by scheduling the SRB for testing purposes in the same address space, I can use GTF. Unfortunately, a SLIP &lt;b&gt;I&lt;/b&gt;nstruction &lt;b&gt;F&lt;/b&gt;etch trap has a limitation of 1M on the RANGE= keyword, so I have to think about to handle this.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Meanwhile, when I looked again at the S0C4 I had on Friday, I realized that it&#39;s not dying in the FRR, but on a QSAM (&lt;b&gt;Q&lt;/b&gt;ueued &lt;b&gt;S&lt;/b&gt;equential &lt;b&gt;A&lt;/b&gt;ccess &lt;b&gt;M&lt;/b&gt;ethod) PUT. Since it doesn&#39;t occur when z/XDC is in the way, this is when GTF becomes useful. I moved to our sandbox LPAR so if my testing is messing with the LPAR, I will only  shoot myself.&amp;nbsp;Working with SRBs is like working with fire - you need to be very careful, because if you make a mistake, you can burn not only yourself, but the system. (And, as it turns out, I was. A wayward store in *MASTER* or in other common storage can have far reaching negative consequences.) Therefore, you need to be testing these types of routines on a sandbox system so you burn only yourself, and in case you need to IPL, you can quickly do so.&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
So I started GTF and reran the job…and of course, because this is how it&#39;s going, it sort of works. It finished with CC 16. That may prove useful, though, and I have output. Oh, wait, I forgot that the LPAR was IPLed on Friday night, so there is no APF authorization. I issue the appropriate APF commands, running a convenient batch job that issues operator commands that I run after an IPL. And the job completes successfully. The FRR fires, but the return information from the IEAMSCHD shows an S0C4. Remember, I have a forced S0C1 to drive the FRR, so the FRR itself must be abending with the S0C4.&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Now I download it to my PC (remember, binary!) because I have a Perl script&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;which parses a GTF trace data set and creates a CSV file that can be loaded into Excel for easier perusal and analysis.&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;(I may make it available for download on my web site.) Two things cropped up, though; 1) MATCHLIM was too small; 2) HSM reallocated my TRACE data set and I only collected about 2500 records. So I fix those and try again, more to prove that my GTF parameters work, and they do.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Now how do I trace the GTF? Listings show that the ESQA allocation address is different every time, so I can&#39;t really guarantee a range. (ESQA allocation is volatile, so it&#39;s not surprising, really.) z&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;/XDC can show me where it&#39;s allocated, so I make a test run under z/XDC but without using it as the SRB FRR. For various reasons which I won&#39;t go into, this doesn&#39;t work. And I&#39;m beginning to think that maybe the S0C4 in the FRR isn&#39;t always triggering, and other times random storage is being overlaid. But it appears that I cannot reliably get a GTF trace of the SRB and FRR.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Since I&#39;m dealing with something that is apparently random, I started looking at the FRR code after the two WTOs that I&#39;m seeing. And, oh, boy. I made a horrible coding mistake. I can lay it at the foot of &quot;it&#39;s been a while since I worked with SRBs and FRRs,&quot; but, still, I should not have made this.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;What did I do that is worthy of a &lt;b&gt;*headdesk*&lt;/b&gt;? The coding error was in the SETRP macro. If you do not specify WKAREA=, it defaults to assuming that GPR1 points to the SDWA. And which register is used by the WTO macro for the service&#39;s parameter list? Yep, you guessed it. And &lt;i&gt;that&lt;/i&gt;&amp;nbsp;is why it was purely random, as the address of the SRB code and data area moved around consistently.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Unfortunately, there also seems to be some sort of conflict with z/XDC and my SRB and FRR, so&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;I&#39;m going to take a suggestion that my friend &quot;C&quot; gave me during a conversation last week. Instead of obtaining ESQA and moving the code into the storage, I can split the SRB and FRR into its own load module. I can then use a LOAD GLOBAL=YES,EOM=YES and I then should be able to use GTF to trace any activity there. But there is a question of how I can set up the SLIP trap, because the only way to specify modules are LPA or private. LOAD GLOBAL loads them into CSA, which can be addressed by RANGE. But I don&#39;t know where it will be loaded until after the LOAD has executed, which makes it rather difficult to set up the SLIP, unless I do something like coding a WTOR with the address in it. I&#39;d rather not do this, but it may come to that. But back to the head-scratching…&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;I&#39;m beginning to suspect that the parameter coming in via GPR2 to the FRR isn&#39;t quite what I expect it to be. I added a WTO that writes out the value of GPR2 coming in, and my first run looks suspicious – in fact, it&#39;s X&#39;0000C00&#39;. That looks rather strange, so I run it again. It&#39;s the same. I check with a couple of people…and yes, that is a legitimate address. The FRR stack is located between X&#39;800&#39; and X&#39;1000&#39;. So something else is happening; maybe the SRB is building this 24-byte area wrong.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;I added WTOs dumping the 24 bytes pointed to by GPR2. (Note that SDWAPARM also has this address.) And this shows what I&#39;ve done. Somewhere along the way, the instruction to store the address of the product CVT has disappeared from the SRB, so the FRR was loading 0 instead. Big oops. Big, big oops. And this may explain a lot of the randomness as well.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;So I fix that and rerun, and now the 24-byte area looks correct. But things still don&#39;t seem to be working right. I add a WTO here and there, and I realize that I&#39;ve miscoded an NI instruction to turn off a recursion-prevention flag, forgetting the 255– part; thus it thought it was recursing. I fixed that and the FRR is working for the code I have there. I now add the full FRR code (dump the register/PSW info out of the SDWA), but something is still breaking. I narrow it down to a load of another part of the FRR parm area. Now I haven&#39;t purposely munched GPR2, but I add some WTOs to see if maybe branch entry WTO is changing it (the documentation says it does not). Nope, that&#39;s not it.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;I start an IM session with &quot;R&quot;; I can&#39;t understand why it fails if I include an instruction and works if I skip it. Finally, I move the code up to the very beginning, and suddenly my WTOs become garbage. I then look and I realize that I am munching my constant area pointer with one of these loads. This was left over from when I started working on this code and my register settings were in flux. I change the register and voilà, it works.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;*headdesk*&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;*headdesk*&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;*headdesk*&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Part of what made this so hard is that I was so familiar with the code, it looked right. I&#39;d lost track of the fact that the original use of that register had changed. This is why when you are really at a loss, a second set of eyes can help immensely. The second set is not familiar with the code, and they can spot anomalies pretty quickly. Back in university, I became known for the person who looked at the code and could spot the issue quickly, and it was because I was the second set of eyes. I did pass this along to others, though, and gradually people picked up on this. Never be afraid to ask others to look at your code, and never be embarrassed if they find something really, really stupid. You just didn&#39;t see it, because your brain interpreted the code as you thought you wrote it, not how you did write it. &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;But, after all this, I have a working FRR routine. Now I can fully test the SRB code, which is connecting an ETX…and it works perfectly the first time out. (This is always suspicious, but it worked when it was not a part of the SRB, so I suspect it is fine.) Now I will need to add the destroy ETX code. Once this is working, I will pass this version onwards so my colleague can begin testing, and then I will code the ESTAEX, which is the subject of part 3. &amp;nbsp;I will then make some enhancements, including the aforementioned LOAD GLOBAL for the SRB, and also adding LOAD GLOBAL for the PC code.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;So, a post-mortem on this pretty much lays it on three things which had overwriting consequences:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;incorrectly interpreting the value in R1 when the SRB gets control;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;forgetting the WKAREA= on the SETRP macro; and&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;wiping out my constant base register.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Oh, one piece of advice I received from &quot;C&quot; that I should not neglect: if you do move the FRR directly into SQA, put it on a doubleword boundary.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Part three, detailing adventures in ESTAEXing, will probably come later this week or early next.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;UPDATE:&lt;/b&gt;&amp;nbsp;Jim Mulder, who is one of &lt;i&gt;the&lt;/i&gt;&amp;nbsp;z/OS people in Pok, reminded me that normally when an FRR abends, a record is written to LOGREC. You can print this off and it will give you lots of information. I know this would have saved me several hours of teeth-gnashing.&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/7026721320807362941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://catherdersoftware.blogspot.com/2012/07/tcbs-and-srbs-and-frrs-oh-my-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/7026721320807362941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/7026721320807362941'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/2012/07/tcbs-and-srbs-and-frrs-oh-my-part-2.html' title='TCBs and SRBs and FRRs, oh my! - part 2'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7735775440047864075.post-2320491550843412563</id><published>2012-07-13T15:53:00.000-07:00</published><updated>2012-07-15T09:28:49.513-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cross-memory"/><category scheme="http://www.blogger.com/atom/ns#" term="ESTAE"/><category scheme="http://www.blogger.com/atom/ns#" term="ESTAEX"/><category scheme="http://www.blogger.com/atom/ns#" term="FRR"/><category scheme="http://www.blogger.com/atom/ns#" term="real life"/><category scheme="http://www.blogger.com/atom/ns#" term="SDUMP"/><category scheme="http://www.blogger.com/atom/ns#" term="SDUMPX"/><category scheme="http://www.blogger.com/atom/ns#" term="SRB"/><category scheme="http://www.blogger.com/atom/ns#" term="TCB"/><category scheme="http://www.blogger.com/atom/ns#" term="z/OS"/><title type='text'>TCBs and SRBs and FRRs, oh my! (with ESTAEXs thrown in) - part 1</title><content type='html'>&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif; font-size: small; font-weight: normal;&quot;&gt;I&#39;m writing this blog entry to help clear my head. Sometimes, just talking about a problem helps you find the solution to something that has been vexing you, or otherwise making your brain dizzy. It&#39;s akin to&amp;nbsp;&lt;a href=&quot;http://www.nbc.com/30-rock/episode-guide/season-6/451653/the-shower-principle/episode-615/475820/&quot; target=&quot;_blank&quot;&gt;The Shower Principle&lt;/a&gt;, which I have subscribed to for decades.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;The past few days I&#39;ve been working on some interesting code, which involves scheduling an SRB (&lt;b&gt;S&lt;/b&gt;ervice &lt;b&gt;R&lt;/b&gt;equest &lt;b&gt;B&lt;/b&gt;lock)&amp;nbsp;in another address space. The work this SRB is doing is straight-forward, but it&#39;s the type of code that during development is pretty prone to abends. So, to properly protect it, and to help debug (if necessary), I&#39;m also creating an FRR (&lt;b&gt;F&lt;/b&gt;unctional &lt;b&gt;R&lt;/b&gt;ecovery &lt;b&gt;R&lt;/b&gt;outine).&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;It&#39;s a pretty simple FRR, just WTOing the PSW (no, you don&#39;t get an explanation of that), interrupt code, instruction length code, and registers, and some additional identifying information about which SRB code is involved and what it was doing, then issues an SDUMPX. But this identifying information is where the rub begins. (And, yes, that is sort of an FRR retry pun.)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;(&quot;Abend&quot; here also includes program interrupts, your traditional S0C1s, S0C4s, etc., i.e., abends not triggered by SVC 13.)&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;There are three sources of identifying information in this code: the scheduling TCB (&lt;b&gt;T&lt;/b&gt;ask &lt;b&gt;C&lt;/b&gt;ontrol &lt;b&gt;B&lt;/b&gt;lock), the product CVT (&lt;b&gt;C&lt;/b&gt;ommunications &lt;b&gt;V&lt;/b&gt;ector &lt;b&gt;T&lt;/b&gt;able) (chained off our allocated vendor CVT entry), and the SRB code itself. IBM, in its infinite wisdom 40 years ago, limits the amount of memory passed around. For example, the SRB gets only one fullword parameter, whose address is passed via GPR1. An FRR receives a 24-byte parameter area whose address in this case comes from the IEAMSCHD macro, as under the covers&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;it is&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;issuing the SETFRR macro where you normally specify this area. The address of this FRR parm is also in GPR2 when the SRB gets control, assuming you put FRR=YES on the IEAMSCHD or SCHEDULE macro invocation. (If not, good luck with that.)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;So, at a minimum, the list of addresses must have&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;the address of the product CVT and&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;the address of the SRB data area, and/or the SRB code itself (as I write this, the SRB is not reentrant, and does not obtain a reentrant work area; this may change).&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;So now let&#39;s list what data my FRR desires, and where I can get it from...&lt;/span&gt;&lt;/div&gt;&lt;div align=&quot;center&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table border=&quot;2&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Piece of data&lt;/span&gt;&lt;/th&gt;&lt;th&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;From where?&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;PSW, registers at abend&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;SDWA (&lt;b&gt;S&lt;/b&gt;ystem &lt;b&gt;D&lt;/b&gt;iagnostic &lt;b&gt;W&lt;/b&gt;ork &lt;b&gt;A&lt;/b&gt;rea), passed via GPR1&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Job name/number&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Product CVT (long architectural story)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;SRB CSECT in control&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;SRB code (either grabbed from there or moved into another data area)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Tracing point in SRB execution&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;SRB data area, or...?&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;The next question is how do I get the product CVT address and the SRB code address to the FRR. The answer is obvious, of course–use the FRR parm, as this info only takes up 8 bytes. But how do I populate the FRR parm? The scheduling TCB cannot do this when using IEAMSCHD (it does with SCHEDULE, but as it requires much more setup, I am not using it), so the SRB has to populate it. And how do we get data to the SRB? Only through that one fullword parameter. &amp;nbsp;And in this case, this is fine, because we only need the product CVT address; the SRB-specific data can be filled in by the SRB itself as the code starts executing.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;There&#39;s an additional possible complication that I have alluded to, but not brought up yet. Remember when I said the SRB is being scheduled in another address space (through ENV=STOKEN)? That means that the parameter passed to the SRB has to be located in common storage, either CSA (&lt;b&gt;C&lt;/b&gt;ommon &lt;b&gt;S&lt;/b&gt;ystem &lt;b&gt;A&lt;/b&gt;rea)&amp;nbsp;or SQA (&lt;b&gt;S&lt;/b&gt;ystem &lt;b&gt;Q&lt;/b&gt;ueue &lt;b&gt;A&lt;/b&gt;rea), or their extended (i.e., above the line) counterparts. (It cannot be 64-bit storage, but if you can put a 64-bit pointer in the area pointed to by the parm; it has to be a common object (IARV64 REQUEST=GETCOMMON), though.) But, as it turns out, this isn&#39;t an issue, The product CVT area is in ECSA already, since it needs to be accessible by any address space. And since there is nothing required (at this time) from the scheduling TCB, passing the product CVT to the SRB is sufficient.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Next is the tracing point. This will be presented in both WTOs and the SDUMPX-generated dump header to note which system call or other event was (going to be) executed when things went &#39;splodey, set by a simple MVC. The best place is for this to be moved directly into the FRR parm. So far, I&#39;m only using 8 bytes of it (product CVT address and SRB code address), so using 8 bytes is not that bad. If it turns out I need more bytes, I can move it into the SRB data area. And, as it turns out, I like to be prepared, so we&#39;ll address it via the SRB code pointer, rather than using 8 bytes.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;(Remember, my SRB is technically not reentrant, with the data area following the code area. If I need to make this reentrant some time down the road, then I can just store the reentrant work area address in the FRR parm area. I will note that FRRs are invoked as reentrant, as GPR0 contains the address of a 304-byte work area that the FRR can use as it pleases. In my case, I&#39;m using it for editing and for MF=E areas.)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;So, here&#39;s my final FRR input design:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;PARM= on IEAMSCHD points to a fullword that contains the product CVT address;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;I will use 2 fullwords of the FRR parm, one being the product CVT address, the other being the SRB code address;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Between the two, I can get all the data I want.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;A note about one confusing thing about some of the keyword parameters on the IEAMSCHD macro: many are actually labels which are fullwords that contain the address of the item you want passed, for example, the&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;all-important PARM and the&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;various SYNCH...ADDR ones. &amp;nbsp;This means that you code something like:&lt;/span&gt;&lt;/div&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;SRBEPARM&amp;nbsp;DS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A&lt;br /&gt;
SYNCCMP@&amp;nbsp;DS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A&lt;br /&gt;
SYNCCMP&amp;nbsp;&amp;nbsp;DS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;F&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R0,SYNCCMP&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ST&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R0,SYNCCMP@&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ST&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R10,SRBEPARM&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IEAMSCHD&amp;nbsp;…,PARM=SRBEPARM,SYNCHCMPADDR=SYNCCMP@,…&lt;/span&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Once the FRR gets control and does its thing (WTOing and SDUMPXing), there are two possibilities–retry or percolate. Retry means that we specify an address of where to reestablish control in the code that abended. In this case, it does not make sense to retry in the SRB, because everything needs to execute successfully. If it doesn&#39;t, we will just stop and let the scheduling TCB know. So we will use SETRP RC=0, which indicates percolation, i.e., pass the abend along to whatever recovery routine precedes this one.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;And thus we are done with the FRR design. And, so far, writing this helped me consolidate a few things, and made some simpler implementations more obvious.&lt;b&gt; Never underestimate the power of writing it down, or even bouncing it off a friend, or even to yourself in the shower. &lt;/b&gt;Just the act of thinking how you phrase something to communicate it to someone else can lead you to the realization of what is causing that bug you&#39;ve looked at for a day.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;I will continue with this theme in part 2, along with debugging the SRB and FRR. That has its own set of issues that, if you haven&#39;t dealt with them before, or even in a few years, can vex you mightily.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/2320491550843412563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://catherdersoftware.blogspot.com/2012/07/tcbs-and-srbs-and-frrs-oh-my-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/2320491550843412563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/2320491550843412563'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/2012/07/tcbs-and-srbs-and-frrs-oh-my-with.html' title='TCBs and SRBs and FRRs, oh my! (with ESTAEXs thrown in) - part 1'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>Roseville Roseville</georss:featurename><georss:point>38.740059 -121.255285</georss:point></entry><entry><id>tag:blogger.com,1999:blog-7735775440047864075.post-2085915903754341503</id><published>2012-07-08T13:59:00.000-07:00</published><updated>2012-07-09T08:36:41.004-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><category scheme="http://www.blogger.com/atom/ns#" term="windows 7"/><category scheme="http://www.blogger.com/atom/ns#" term="windows 7 upgrade"/><category scheme="http://www.blogger.com/atom/ns#" term="windows 7 x64 upgrade"/><category scheme="http://www.blogger.com/atom/ns#" term="x64"/><title type='text'>Windows 7 upgrade - the good, the ugly, and the really ugly</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;5 years ago, I bought an HP Pavilion dv9000 laptop with an AMD 64-bit processor. Now, yes, I made a few mistakes, such as not springing the extra $100 for a slightly faster processor. But I was not prepared for the fantastic lemon this laptop was.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;First off, I found out why the machine came with 2 x 120GB HDDs...because the 64-bit Windows Vista Ultimate used over half of one of the drives, between the WoW and the SxS. Then, within a month, I bought 2GB more to get to the maximum of 4GB. Even with that, disabling Aero, splitting the paging across 2 hard disks, and adding a then-high-capacity 4GB SD card for Ready&quot;Boost&quot;, it still spent over half its resources paging. BSODs were a regular occurrence. I was so happy when SP1 came out...and then I discovered that it wasn&#39;t released for my laptop, because of driver issues with the NVidia does-everything-poorly-including-the-kitchen-sink chip. It took a year before I could install SP1. The same thing happened with SP2; I had to wait a year for the same reasons. And the same for Windows 7.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;I drive my computer hard - not for entertainment, but for development. And this machine was not up to the task. Eventually, as all computers do, it started slowing down, BSODs became more frequent (the always-inexplicable &quot;DRIVER_IRQ_LESS_THAN_OR_EQ&quot; was a personal favorite), took forever to boot (I would turn it on or restart and then wait 30 minutes until the HDD activity indicator was no longer solid), and frankly was just piss-poor. (Even most Linux-based HDD recovery programs won&#39;t work on this crappy graphics card.)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;(I will say this; the two times I had to return it for warranty work, HP was fantastic, probably because the line was a pile of crap. They even replaced the keyboard and the DVD-RW drive when the C drive crapped out. It isn&#39;t enough, though, for me to take HP computers off of my no-buy.)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;I realized I had two choices -- either get a new computer, or install Windows 7 (which finally became &quot;supported&quot; last year...how long had Win 7 been available?). I have used Win 7 on my work laptop, and Cheri has had it over a year. Many others recommended upgrading. Upgrading is definitely the cheaper option, and could extend the life of it for a year or more. Also, because of extensive customizations, wiping and installing fresh was not a desirable option. So I bit the bullet, buying the upgrade DVDs from Discount Mountain Software in Denver, CO for $160 or thereabouts (definitely the cheapest out there for credible vendors).&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;I knew I was going to have a rocky battle...and I was not disappointed. The biggest roadblocks were:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Issues with registry keys and userids and other random crap that all were tied to IIS 6. I only used IIS as an FTP server, so I uninstalled it.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Registry error with msacm.l3codecp: At some point (I&#39;ve seen either base Vista -&amp;gt; SP1 or SP1 -&amp;gt; SP2) the data for &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;HKLM\Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Drivers32\msacml3codecp&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt; is set to an empty string. It needs to point to the file of that name in the same directory as the immediately preceding entry.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&quot;Process exit error 11 (0x0000000b)&quot; or response code 0x8009000b. This is because the Microsoft\Crypto\RSA\MachineKeys files entries are screwed up due to, again, a problem with one of the aforementioned SPs. One recommendation is to change the sharing of three of the files; unfortunately, that did not work. Another is to delete three files; that also did not work. The eventual solution was to delete every file in the directory (the location can be different for various reasons). They&#39;re not necessary because the keys are different in Win 7, and you don&#39;t want the Vista versions anyway.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;b&gt;EDIT:&lt;/b&gt;&amp;nbsp;Of all the logs written during the upgrade, the most important log file is &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;(install_drive):\$WINDOWS.~BT\Sources\Panther\setuperr.log&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;. It has just the error messages. Many can be ignored; the ones that are getting you are the ones that trigger a rollback. Note that you should look at this immediately after the error message and subsequent restart, because sometimes this directory disappears.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;I now have Windows 7 Ultimate x64 running, and 134 required updates later (including SP1), I am now up to speed. I&#39;m now re-downloading the language packs and a couple of optional updates, and things should be fine.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Am I surprised at how much fun (FSVO &quot;fun&quot;) this was? No. Windows is a complex beast, and unfortunately has to cover so many situations. Combined with the crappy design of this HP craptop (as I call it) I didn&#39;t expect less.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;I&#39;m not going to Win 8. It&#39;s in the Win95/WinME/WinVista cycle, and the loss of desktop functionality and a more tablet-like experience on said desktop will cause great gnashing of teeth and much whining - so much, so, that not only do I predict rollback licensing (like XP for Vista), the desktop interface, which was removed at some point during the Consumer Preview, will return.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/2085915903754341503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://catherdersoftware.blogspot.com/2012/07/windows-7-upgrade-good-ugly-and-really.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/2085915903754341503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/2085915903754341503'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/2012/07/windows-7-upgrade-good-ugly-and-really.html' title='Windows 7 upgrade - the good, the ugly, and the really ugly'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7735775440047864075.post-8723380218377330674</id><published>2012-07-08T12:49:00.000-07:00</published><updated>2012-07-08T12:49:21.535-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="chs"/><category scheme="http://www.blogger.com/atom/ns#" term="welcome"/><title type='text'>Welcome!</title><content type='html'>&lt;h2&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Cat Herder Software, LLC, is now a reality&lt;/span&gt;&lt;/h2&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;After over nine years, an opportunity dropped into my lap that required me to incorporate. As a part of setting up my web site, I decided to create a blog where I could share my experiences.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Although I am primarily a mainframe programmer, I have had many experiences with other platforms, including many invoking pulling of hair, eye-rolling, and the occasional headdesk. Sometimes I may relate those experiences here as well, primarily for documentation.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;And who knows, a picture or two of a cat might show up here as well.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Thanks for following!&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://catherdersoftware.blogspot.com/feeds/8723380218377330674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://catherdersoftware.blogspot.com/2012/07/welcome.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/8723380218377330674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7735775440047864075/posts/default/8723380218377330674'/><link rel='alternate' type='text/html' href='http://catherdersoftware.blogspot.com/2012/07/welcome.html' title='Welcome!'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/06812140113281531562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total><georss:featurename>Roseville, CA, USA</georss:featurename><georss:point>38.7521235 -121.2880059</georss:point><georss:box>38.6530585 -121.4459344 38.851188500000006 -121.1300774</georss:box></entry></feed>