Re: Cell Pool Services CSRC4EXP

2020-02-24 Thread Peter Relson
I agree with Rob and Binyamin in worrying about a design that imposes 
non-swappability on someone else's address space.
I'll point out that in general TRANSWAP involves "swap in" and "don't 
allow subsequent swap-out" and "wait for completion by ECB".
You can't do the wait for completion from an SRB. Once you're within an 
SRB in the target space (and thus the space is already swapped in) perhaps 
DONTSWAP is sufficient. 

The information provided so far does not show doing some sort of "OKSWAP" 
afterwards. It would be inappropriate to leave the space non-swappable.

In general, in the absence of something like TRANSWAP or DONTSWAP, you'd 
have to be disabled from the test for swappability through the data 
reference  or have a suitable local lock in order to prevent swap-out.

Peter Relson
z/OS Core Technology Design


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Cell Pool Services CSRC4EXP

2020-02-24 Thread Joseph Reichman
I do the okswap after I do a get from the cell pool

Thanks 





> On Feb 24, 2020, at 8:43 AM, Peter Relson  wrote:
> 
> I agree with Rob and Binyamin in worrying about a design that imposes 
> non-swappability on someone else's address space.
> I'll point out that in general TRANSWAP involves "swap in" and "don't 
> allow subsequent swap-out" and "wait for completion by ECB".
> You can't do the wait for completion from an SRB. Once you're within an 
> SRB in the target space (and thus the space is already swapped in) perhaps 
> DONTSWAP is sufficient. 
> 
> The information provided so far does not show doing some sort of "OKSWAP" 
> afterwards. It would be inappropriate to leave the space non-swappable.
> 
> In general, in the absence of something like TRANSWAP or DONTSWAP, you'd 
> have to be disabled from the test for swappability through the data 
> reference  or have a suitable local lock in order to prevent swap-out.
> 
> Peter Relson
> z/OS Core Technology Design
> 
> 
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Cell Pool Services CSRC4EXP

2020-02-24 Thread Tony Harminc
On Mon, 24 Feb 2020 at 08:43, Peter Relson  wrote:

> The information provided so far does not show doing some sort of "OKSWAP"
> afterwards. It would be inappropriate to leave the space non-swappable.

Just as it would be inappropriate to make it swappable if it was
non-swappable to start with. Issuing DONTSWAP/OKSWAP upon any S0C4
when trying to use AR mode to access another address space doesn't
seem sound to me.

Tony H.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Rexx parse using period as placeholder

2020-02-24 Thread Ambros, Thomas
A trivial item, but this surprised me.

I wanted to parse out the string 'word3' using the period as a place holder.  
The input could have a blank delimited string containing an embedded period 
before the one I wanted to parse out.  The Parse Var as coded didn't work.  
Using the Parse Value as coded there does work.  I didn't know it would behave 
like that.  I can't seem to find this documented but I might have overlooked 
something.

myVar = 'word1 word2 9.12 word3.ext'
Parse Var myVar . . . myVal '.' .
Parse Value Subword(myVar,4) with myVal2 '.' .
Say 'myVal=' myVal
Say 'myVal2=' myVal2
Exit

Trace R of that code:

 3 *-* myVar = 'word1 word2 9.12 word3.ext'
   >>>   "word1 word2 9.12 word3.ext"
 4 *-* Parse Var myVar . . . myVal '.' .
   >.>   "word1"  -
   >.>   "word2"
   >.>   "9"
   >>>   ""
   >.>   "12 word3.ext"
 5 *-* Parse Value Subword(myVar,4) with myVal2 '.' .
   >>>   "word3.ext"
   >>>   "word3"
   >.>   "ext"
 6 *-* Say 'myVal=' myVal
   >>>   "myVal= "
myVal=
 7 *-* Say 'myVal2=' myVal2
   >>>   "myVal2= word3"
myVal2= word3
 8 *-* Exit

Thomas Ambros
zEnterprise Operating Systems
zEnterprise Systems Management
518-436-6433


This communication may contain privileged and/or confidential information. It 
is intended solely for the use of the addressee. If you are not the intended 
recipient, you are strictly prohibited from disclosing, copying, distributing 
or using any of this information. If you received this communication in error, 
please contact the sender immediately and destroy the material in its entirety, 
whether electronic or hard copy. This communication may contain nonpublic 
personal information about consumers subject to the restrictions of the 
Gramm-Leach-Bliley Act. You may not directly or indirectly reuse or redisclose 
such information for any purpose other than to provide the services for which 
you are receiving the information.

127 Public Square, Cleveland, OH 44114

If you prefer not to receive future e-mail offers for products or services from 
Key, send an email to mailto:dnereque...@key.com with 'No Promotional E-mails' 
in the SUBJECT line.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Rexx parse using period as placeholder

2020-02-24 Thread Seymour J Metz
Why did it surprise you, and what does it have to do with the placeholders? 
You'd get the same thing if you used three variable names instead of three 
periods. The parse with works because it's using a different template on a 
different value: try

parse Value myVar with . . . myVal '.' .


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Ambros, Thomas [010f77c934b1-dmarc-requ...@listserv.ua.edu]
Sent: Monday, February 24, 2020 3:43 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Rexx parse using period as placeholder

A trivial item, but this surprised me.

I wanted to parse out the string 'word3' using the period as a place holder.  
The input could have a blank delimited string containing an embedded period 
before the one I wanted to parse out.  The Parse Var as coded didn't work.  
Using the Parse Value as coded there does work.  I didn't know it would behave 
like that.  I can't seem to find this documented but I might have overlooked 
something.

myVar = 'word1 word2 9.12 word3.ext'
Parse Var myVar . . . myVal '.' .
Parse Value Subword(myVar,4) with myVal2 '.' .
Say 'myVal=' myVal
Say 'myVal2=' myVal2
Exit

Trace R of that code:

 3 *-* myVar = 'word1 word2 9.12 word3.ext'
   >>>   "word1 word2 9.12 word3.ext"
 4 *-* Parse Var myVar . . . myVal '.' .
   >.>   "word1"  -
   >.>   "word2"
   >.>   "9"
   >>>   ""
   >.>   "12 word3.ext"
 5 *-* Parse Value Subword(myVar,4) with myVal2 '.' .
   >>>   "word3.ext"
   >>>   "word3"
   >.>   "ext"
 6 *-* Say 'myVal=' myVal
   >>>   "myVal= "
myVal=
 7 *-* Say 'myVal2=' myVal2
   >>>   "myVal2= word3"
myVal2= word3
 8 *-* Exit

Thomas Ambros
zEnterprise Operating Systems
zEnterprise Systems Management
518-436-6433


This communication may contain privileged and/or confidential information. It 
is intended solely for the use of the addressee. If you are not the intended 
recipient, you are strictly prohibited from disclosing, copying, distributing 
or using any of this information. If you received this communication in error, 
please contact the sender immediately and destroy the material in its entirety, 
whether electronic or hard copy. This communication may contain nonpublic 
personal information about consumers subject to the restrictions of the 
Gramm-Leach-Bliley Act. You may not directly or indirectly reuse or redisclose 
such information for any purpose other than to provide the services for which 
you are receiving the information.

127 Public Square, Cleveland, OH 44114

If you prefer not to receive future e-mail offers for products or services from 
Key, send an email to mailto:dnereque...@key.com with 'No Promotional E-mails' 
in the SUBJECT line.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Rexx parse using period as placeholder

2020-02-24 Thread Ambros, Thomas
You mean like this?

*-* Parse Value myVar with . . . myVal2 '.' .
>>>   "word1 word2 9.12 word3.ext"
>.>   "word1"
>.>   "word2"
>.>   "9"
>>>   ""
>.>   "12 word3.ext"

But you're correct, variables result in the same behavior:

*-* Parse Value myVar with t1 t2 t3 myVal2 '.' .
>>>   "word1 word2 9.12 word3.ext"
>>>   "word1"
>>>   "word2"
>>>   "9"
>>>   ""
>.>   "12 word3.ext"

So it is the definition of a blank delimited word that escaped me.  I'll look 
for a precise definition of one of those in the context of Rexx. 

Thomas Ambros
zEnterprise Operating Systems
zEnterprise Systems Management
518-436-6433

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Seymour J Metz
Sent: Monday, February 24, 2020 16:17
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Rexx parse using period as placeholder



*** Warning: External message - exercise caution. Think before you click. ***


Why did it surprise you, and what does it have to do with the placeholders? 
You'd get the same thing if you used three variable names instead of three 
periods. The parse with works because it's using a different template on a 
different value: try

parse Value myVar with . . . myVal '.' .


--
Shmuel (Seymour J.) Metz
https://urldefense.proofpoint.com/v2/url?u=http-3A__mason.gmu.edu_-7Esmetz3&d=DwIFAg&c=Y1KkN7JyAPjrAJTUCirS0fy9vQY8xn4_Oh4EEEpbXx4&r=7ds2LAJ99_WyGG6a4BwzaJ7R0vee6JgTc4Txes6yEew&m=RwHovw9Jb8ZzPnV0Fb8JtuHSrWfHboK75HB0QKXv7Dw&s=7RT-emP8kpFQ1NAQn6MxdRyt8N1z8blOyGY0-o_XwNw&e=
 


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Ambros, Thomas [010f77c934b1-dmarc-requ...@listserv.ua.edu]
Sent: Monday, February 24, 2020 3:43 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Rexx parse using period as placeholder

A trivial item, but this surprised me.

I wanted to parse out the string 'word3' using the period as a place holder.  
The input could have a blank delimited string containing an embedded period 
before the one I wanted to parse out.  The Parse Var as coded didn't work.  
Using the Parse Value as coded there does work.  I didn't know it would behave 
like that.  I can't seem to find this documented but I might have overlooked 
something.

myVar = 'word1 word2 9.12 word3.ext'
Parse Var myVar . . . myVal '.' .
Parse Value Subword(myVar,4) with myVal2 '.' .
Say 'myVal=' myVal
Say 'myVal2=' myVal2
Exit

Trace R of that code:

 3 *-* myVar = 'word1 word2 9.12 word3.ext'
   >>>   "word1 word2 9.12 word3.ext"
 4 *-* Parse Var myVar . . . myVal '.' .
   >.>   "word1"  -
   >.>   "word2"
   >.>   "9"
   >>>   ""
   >.>   "12 word3.ext"
 5 *-* Parse Value Subword(myVar,4) with myVal2 '.' .
   >>>   "word3.ext"
   >>>   "word3"
   >.>   "ext"
 6 *-* Say 'myVal=' myVal
   >>>   "myVal= "
myVal=
 7 *-* Say 'myVal2=' myVal2
   >>>   "myVal2= word3"
myVal2= word3
 8 *-* Exit

Thomas Ambros
zEnterprise Operating Systems
zEnterprise Systems Management
518-436-6433


This communication may contain privileged and/or confidential information. It 
is intended solely for the use of the addressee. If you are not the intended 
recipient, you are strictly prohibited from disclosing, copying, distributing 
or using any of this information. If you received this communication in error, 
please contact the sender immediately and destroy the material in its entirety, 
whether electronic or hard copy. This communication may contain nonpublic 
personal information about consumers subject to the restrictions of the 
Gramm-Leach-Bliley Act. You may not directly or indirectly reuse or redisclose 
such information for any purpose other than to provide the services for which 
you are receiving the information.

127 Public Square, Cleveland, OH 44114

If you prefer not to receive future e-mail offers for products or services from 
Key, send an email to mailto:dnereque...@key.com with 'No Promotional E-mails' 
in the SUBJECT line.

--
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Rexx parse using period as placeholder

2020-02-24 Thread Paul Gilmartin
On Mon, 24 Feb 2020 20:43:52 +, Ambros, Thomas wrote:

>A trivial item, but this surprised me.
>
>I wanted to parse out the string 'word3' using the period as a place holder.  
>The input could have a blank delimited string containing an embedded period 
>before the one I wanted to parse out.  The Parse Var as coded didn't work.  
>Using the Parse Value as coded there does work.  I didn't know it would behave 
>like that.  I can't seem to find this documented but I might have overlooked 
>something.
>
>myVar = 'word1 word2 9.12 word3.ext'
>Parse Var myVar . . . myVal '.' .  
>...
>Trace R of that code:
>
> 3 *-* myVar = 'word1 word2 9.12 word3.ext'
>   >>>   "word1 word2 9.12 word3.ext"
> 4 *-* Parse Var myVar . . . myVal '.' .
>   >.>   "word1"  -
>   >.>   "word2"
>   >.>   "9"
>   >>>   ""
>   >.>   "12 word3.ext"
>
Here's where it tries to describe it:

https://www.ibm.com/support/knowledgecenter/SSLTBW_2.2.0/com.ibm.zos.v2r2.ikja300/parspat.htm

... First, the language processor scans the source string for 
'[literal-string-pattern]' ...

Examples are nice, but they don't completely imply rules.  It's woefully 
inadequate.
The rules should be stated in such a way that the behavior can be inferred 
without
reference to examples.

The importance of "First" can't be emphasized too much.

The effect of multiple string patterns should be clarified.

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Convert a Metal C control block mapping to Assembler DSECT ?

2020-02-24 Thread Wayne Driscoll
To be fair, while the PL/X source is retained in comments to the assembler, 
those macros are generated in way that allows them to be used in both 
assemblies and PL/X compiles.

Wayne Driscoll
Rocket Software
Note - All opinions are strictly my own.

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Seymour J Metz
Sent: Sunday, February 16, 2020 2:05 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Convert a Metal C control block mapping to Assembler DSECT ?

EXTERNAL EMAIL





Some control block macros are generated from PL/X and contain the source as 
comments.


--
Shmuel (Seymour J.) Metz
https://nam01.safelinks.protection.outlook.com/?url=http:%2F%2Fmason.gmu.edu%2F~smetz3&data=02%7C01%7C%7C6c5bfbadd0764e1e33c308d7b31b8bca%7C79544c1eed224879a082b67a9a672aae%7C0%7C0%7C637174803196789791&sdata=lySiNf4f1zj%2FYMUZUyMyayTK8Ivs%2B2JK9t%2B0xMyzzqs%3D&reserved=0



From: IBM Mainframe Discussion List  on behalf of 
Paul Gilmartin <000433f07816-dmarc-requ...@listserv.ua.edu>
Sent: Friday, February 14, 2020 2:30 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Convert a Metal C control block mapping to Assembler DSECT ?

On Fri, 14 Feb 2020 10:52:07 -0800, Charles Mills wrote:

>I would assume that Gord is using the EDCDSECT program which is legally part 
>of the XLC compiler. It assembles the DSECT -- can be either by itself or part 
>of some larger assembly -- and massages SYSADATA to produce a C-legal struct.
>
>... Its worst flaw IMHO is to make FOO DS FL8 and similar into char foo[8] .
>
That deserves an APAR.  FL8 is not CL8.

>Our local hero Peter Relson developed an internal tool that does a much
>better job, and z/OS is now shipping C struct header files for many,
>many MVS control blocks. (The tool is not suitable for release because
>it uses PL/X input, which is much better because it is closer to C than
>HLASM is. PL/X is more strongly typed than HLASM.)
>
Aren't some z/OS control blocks distributed bilingual, HLASM and PL/X?

>Agree with Lionel's recommendation. Even if the usage is going to be 90% C and 
>10% HLASM you want to do the DSECT first and work from there.
>
>This has been discussed here previously, including someone who posted
>regex that will automate the conversion of char foo[8] to long long
>foo;
>
But what if the original was FOO DS CL8, a common cliche in z/OS?

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Rocket Software, Inc. and subsidiaries ■ 77 Fourth Avenue, Waltham MA 02451 ■ 
Main Office Toll Free Number: +1 855.577.4323
Contact Customer Support: 
https://my.rocketsoftware.com/RocketCommunity/RCEmailSupport
Unsubscribe from Marketing Messages/Manage Your Subscription Preferences - 
http://www.rocketsoftware.com/manage-your-email-preferences
Privacy Policy - http://www.rocketsoftware.com/company/legal/privacy-policy


This communication and any attachments may contain confidential information of 
Rocket Software, Inc. All unauthorized use, disclosure or distribution is 
prohibited. If you are not the intended recipient, please notify Rocket 
Software immediately and destroy all copies of this communication. Thank you.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Rexx parse using period as placeholder

2020-02-24 Thread Seymour J Metz
Isn't that the same, except for the choice of variable names?

For the type of source string that you're parsing, I'd probably break it into 
words with a simple parse and then use a parse var foo bar '.' baz


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Ambros, Thomas [010f77c934b1-dmarc-requ...@listserv.ua.edu]
Sent: Monday, February 24, 2020 4:26 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Rexx parse using period as placeholder

You mean like this?

*-* Parse Value myVar with . . . myVal2 '.' .
>>>   "word1 word2 9.12 word3.ext"
>.>   "word1"
>.>   "word2"
>.>   "9"
>>>   ""
>.>   "12 word3.ext"

But you're correct, variables result in the same behavior:

*-* Parse Value myVar with t1 t2 t3 myVal2 '.' .
>>>   "word1 word2 9.12 word3.ext"
>>>   "word1"
>>>   "word2"
>>>   "9"
>>>   ""
>.>   "12 word3.ext"

So it is the definition of a blank delimited word that escaped me.  I'll look 
for a precise definition of one of those in the context of Rexx.

Thomas Ambros
zEnterprise Operating Systems
zEnterprise Systems Management
518-436-6433

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Seymour J Metz
Sent: Monday, February 24, 2020 16:17
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Rexx parse using period as placeholder



*** Warning: External message - exercise caution. Think before you click. ***


Why did it surprise you, and what does it have to do with the placeholders? 
You'd get the same thing if you used three variable names instead of three 
periods. The parse with works because it's using a different template on a 
different value: try

parse Value myVar with . . . myVal '.' .


--
Shmuel (Seymour J.) Metz
https://urldefense.proofpoint.com/v2/url?u=http-3A__mason.gmu.edu_-7Esmetz3&d=DwIFAg&c=Y1KkN7JyAPjrAJTUCirS0fy9vQY8xn4_Oh4EEEpbXx4&r=7ds2LAJ99_WyGG6a4BwzaJ7R0vee6JgTc4Txes6yEew&m=RwHovw9Jb8ZzPnV0Fb8JtuHSrWfHboK75HB0QKXv7Dw&s=7RT-emP8kpFQ1NAQn6MxdRyt8N1z8blOyGY0-o_XwNw&e=


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Ambros, Thomas [010f77c934b1-dmarc-requ...@listserv.ua.edu]
Sent: Monday, February 24, 2020 3:43 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Rexx parse using period as placeholder

A trivial item, but this surprised me.

I wanted to parse out the string 'word3' using the period as a place holder.  
The input could have a blank delimited string containing an embedded period 
before the one I wanted to parse out.  The Parse Var as coded didn't work.  
Using the Parse Value as coded there does work.  I didn't know it would behave 
like that.  I can't seem to find this documented but I might have overlooked 
something.

myVar = 'word1 word2 9.12 word3.ext'
Parse Var myVar . . . myVal '.' .
Parse Value Subword(myVar,4) with myVal2 '.' .
Say 'myVal=' myVal
Say 'myVal2=' myVal2
Exit

Trace R of that code:

 3 *-* myVar = 'word1 word2 9.12 word3.ext'
   >>>   "word1 word2 9.12 word3.ext"
 4 *-* Parse Var myVar . . . myVal '.' .
   >.>   "word1"  -
   >.>   "word2"
   >.>   "9"
   >>>   ""
   >.>   "12 word3.ext"
 5 *-* Parse Value Subword(myVar,4) with myVal2 '.' .
   >>>   "word3.ext"
   >>>   "word3"
   >.>   "ext"
 6 *-* Say 'myVal=' myVal
   >>>   "myVal= "
myVal=
 7 *-* Say 'myVal2=' myVal2
   >>>   "myVal2= word3"
myVal2= word3
 8 *-* Exit

Thomas Ambros
zEnterprise Operating Systems
zEnterprise Systems Management
518-436-6433


This communication may contain privileged and/or confidential information. It 
is intended solely for the use of the addressee. If you are not the intended 
recipient, you are strictly prohibited from disclosing, copying, distributing 
or using any of this information. If you received this communication in error, 
please contact the sender immediately and destroy the material in its entirety, 
whether electronic or hard copy. This communication may contain nonpublic 
personal information about consumers subject to the restrictions of the 
Gramm-Leach-Bliley Act. You may not directly or indirectly reuse or redisclose 
such information for any purpose other than to provide the services for which 
you are receiving the information.

127 Public Square, Cleveland, OH 44114

If you prefer not to receive future e-mail offers for products or services from 
Key, send an email to mailto:dnereque...@key.com with 'No Promotional E-mails' 
in the SUBJECT line.

--
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions, send email to 
lists...@listserv.ua.edu with the message: IN

Re: Rexx parse using period as placeholder

2020-02-24 Thread Tony Thigpen
You have "passed" your first period before your "'.'" in the parse 
statement is actually interpreted.


For your data example:
myVar = 'word1 word2 9.12 word3.ext'
The correct parse is:
Parse Value myVar with . . myVal2 '.' .

Each period, or var name, in the parse "eats" one blank delimited word. 
For example:

myvar = 'a b c d e f g'
parse var myvar . . 'e' next .
will yield next = 'f', but
parse var myvar . . . . . 'e' next .
will yield next = ''

For your data, I would first parse the words, then parse each var for '.'.

Now, if there is really a special character (or string) that you need to 
identify, it is best to parse the before and after data, then parse each 
section. This is how you should handle finding options in a parm string 
passed to a REXX script:


parse value arg with parms '(' options ')' localopts
parse var parms parm1 parm2 parm3 parm4 parm5 .
parse var options opt1 opt2 opt3 opt4 opt5 opt6 .
parse var localopts lopt1 lopt2 lopt3 lopt4 lopt5 .

For the above to work, the use of ')' *requires* a previous '('.

example: arg = aaa bbb ccc ')' ddd eee
 parse value arg with parms '(' options ')' localopts

will yield:
parms = "aaa bbb ccc ) ddd eee"
options = ''
localopts = ''

If this might happen, you would need:
parse value arg with part1 ')' localopts
parse var part1  parms ')' options
parse var parms parm1 parm2 parm3 parm4 parm5 .
parse var options opt1 opt2 opt3 opt4 opt5 opt6 .
parse var localopts lopt1 lopt2 lopt3 lopt4 lopt5 .



Tony Thigpen

Seymour J Metz wrote on 2/24/20 5:50 PM:

Isn't that the same, except for the choice of variable names?

For the type of source string that you're parsing, I'd probably break it into 
words with a simple parse and then use a parse var foo bar '.' baz


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Ambros, Thomas [010f77c934b1-dmarc-requ...@listserv.ua.edu]
Sent: Monday, February 24, 2020 4:26 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Rexx parse using period as placeholder

You mean like this?

*-* Parse Value myVar with . . . myVal2 '.' .

   "word1 word2 9.12 word3.ext"

.>   "word1"
.>   "word2"
.>   "9"

   ""

.>   "12 word3.ext"


But you're correct, variables result in the same behavior:

*-* Parse Value myVar with t1 t2 t3 myVal2 '.' .

   "word1 word2 9.12 word3.ext"
   "word1"
   "word2"
   "9"
   ""

.>   "12 word3.ext"


So it is the definition of a blank delimited word that escaped me.  I'll look 
for a precise definition of one of those in the context of Rexx.

Thomas Ambros
zEnterprise Operating Systems
zEnterprise Systems Management
518-436-6433

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Seymour J Metz
Sent: Monday, February 24, 2020 16:17
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Rexx parse using period as placeholder



*** Warning: External message - exercise caution. Think before you click. ***


Why did it surprise you, and what does it have to do with the placeholders? 
You'd get the same thing if you used three variable names instead of three 
periods. The parse with works because it's using a different template on a 
different value: try

 parse Value myVar with . . . myVal '.' .


--
Shmuel (Seymour J.) Metz
https://urldefense.proofpoint.com/v2/url?u=http-3A__mason.gmu.edu_-7Esmetz3&d=DwIFAg&c=Y1KkN7JyAPjrAJTUCirS0fy9vQY8xn4_Oh4EEEpbXx4&r=7ds2LAJ99_WyGG6a4BwzaJ7R0vee6JgTc4Txes6yEew&m=RwHovw9Jb8ZzPnV0Fb8JtuHSrWfHboK75HB0QKXv7Dw&s=7RT-emP8kpFQ1NAQn6MxdRyt8N1z8blOyGY0-o_XwNw&e=


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Ambros, Thomas [010f77c934b1-dmarc-requ...@listserv.ua.edu]
Sent: Monday, February 24, 2020 3:43 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Rexx parse using period as placeholder

A trivial item, but this surprised me.

I wanted to parse out the string 'word3' using the period as a place holder.  
The input could have a blank delimited string containing an embedded period 
before the one I wanted to parse out.  The Parse Var as coded didn't work.  
Using the Parse Value as coded there does work.  I didn't know it would behave 
like that.  I can't seem to find this documented but I might have overlooked 
something.

myVar = 'word1 word2 9.12 word3.ext'
Parse Var myVar . . . myVal '.' .
Parse Value Subword(myVar,4) with myVal2 '.' .
Say 'myVal=' myVal
Say 'myVal2=' myVal2
Exit

Trace R of that code:

  3 *-* myVar = 'word1 word2 9.12 word3.ext'
>>>   "word1 word2 9.12 word3.ext"
  4 *-* Parse Var myVar . . . myVal '.' .
>.>   "word1"  -
>.>   "word2"
>.>   "9"
>>>   ""
>.>   "12 word3.ext"
  5 *-* Parse Value Subword(myVar,4) with myVal2 '.' .
>>>   "word3.ext"
>>>   "word3"
>.>   "ext"
  6 *-* Say 'myVal=' myVal
>>>   "myVal= "
myVal=
  7

Re: Rexx parse using period as placeholder

2020-02-24 Thread Paul Gilmartin
On Mon, 24 Feb 2020 18:08:48 -0500, Tony Thigpen wrote:

>You have "passed" your first period before your "'.'" in the parse
>statement is actually interpreted.
>
>For your data example:
>myVar = 'word1 word2 9.12 word3.ext'
>The correct parse is:
>Parse Value myVar with . . myVal2 '.' .
>
>Each period, or var name, in the parse "eats" one blank delimited word.
>For example:
>myvar = 'a b c d e f g'
>parse var myvar . . 'e' next .
>will yield next = 'f', but
>
>parse var myvar . . . . . 'e' next .
>will yield next = ''
>
Ummm.  No.  I believe next = 'f':
parse value 'a b c d e f g' with . . . . . 'e' next .; say next"
   >.>   "a"
   >.>   "b"
   >.>   "c"
   >.>   "d"
   >.>   ""
   >>>   "f"
   >.>   "g"
   >V>   "f"
f

-- gil




>For your data, I would first parse the words, then parse each var for '.'.
>
>Now, if there is really a special character (or string) that you need to
>identify, it is best to parse the before and after data, then parse each
>section. This is how you should handle finding options in a parm string
>passed to a REXX script:
>
>parse value arg with parms '(' options ')' localopts
>parse var parms parm1 parm2 parm3 parm4 parm5 .
>parse var options opt1 opt2 opt3 opt4 opt5 opt6 .
>parse var localopts lopt1 lopt2 lopt3 lopt4 lopt5 .
>
>For the above to work, the use of ')' *requires* a previous '('.
>
>example: arg = aaa bbb ccc ')' ddd eee
>  parse value arg with parms '(' options ')' localopts
>
>will yield:
>parms = "aaa bbb ccc ) ddd eee"
>options = ''
>localopts = ''
>
>If this might happen, you would need:
>parse value arg with part1 ')' localopts
>parse var part1  parms ')' options
>parse var parms parm1 parm2 parm3 parm4 parm5 .
>parse var options opt1 opt2 opt3 opt4 opt5 opt6 .
>parse var localopts lopt1 lopt2 lopt3 lopt4 lopt5 .
>
>
>
>Tony Thigpen
>
>Seymour J Metz wrote on 2/24/20 5:50 PM:
>> Isn't that the same, except for the choice of variable names?
>>
>> For the type of source string that you're parsing, I'd probably break it 
>> into words with a simple parse and then use a parse var foo bar '.' baz
>>
>>
>> --
>> Shmuel (Seymour J.) Metz
>> http://mason.gmu.edu/~smetz3
>>
>> 
>> From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
>> Ambros, Thomas [010f77c934b1-dmarc-requ...@listserv.ua.edu]
>> Sent: Monday, February 24, 2020 4:26 PM
>> To: IBM-MAIN@LISTSERV.UA.EDU
>> Subject: Re: Rexx parse using period as placeholder
>>
>> You mean like this?
>>
>> *-* Parse Value myVar with . . . myVal2 '.' .
>"word1 word2 9.12 word3.ext"
>>> .>   "word1"
>>> .>   "word2"
>>> .>   "9"
>""
>>> .>   "12 word3.ext"
>>
>> But you're correct, variables result in the same behavior:
>>
>> *-* Parse Value myVar with t1 t2 t3 myVal2 '.' .
>"word1 word2 9.12 word3.ext"
>"word1"
>"word2"
>"9"
>""
>>> .>   "12 word3.ext"
>>
>> So it is the definition of a blank delimited word that escaped me.  I'll 
>> look for a precise definition of one of those in the context of Rexx.
>>
>> Thomas Ambros
>> zEnterprise Operating Systems
>> zEnterprise Systems Management
>> 518-436-6433
>>
>> -Original Message-
>> From: IBM Mainframe Discussion List  On Behalf Of 
>> Seymour J Metz
>> Sent: Monday, February 24, 2020 16:17
>> To: IBM-MAIN@LISTSERV.UA.EDU
>> Subject: Re: Rexx parse using period as placeholder
>>
>>
>>
>> *** Warning: External message - exercise caution. Think before you click. ***
>>
>>
>> Why did it surprise you, and what does it have to do with the placeholders? 
>> You'd get the same thing if you used three variable names instead of three 
>> periods. The parse with works because it's using a different template on a 
>> different value: try
>>
>>  parse Value myVar with . . . myVal '.' .
>>
>>
>> --
>> Shmuel (Seymour J.) Metz
>> https://urldefense.proofpoint.com/v2/url?u=http-3A__mason.gmu.edu_-7Esmetz3&d=DwIFAg&c=Y1KkN7JyAPjrAJTUCirS0fy9vQY8xn4_Oh4EEEpbXx4&r=7ds2LAJ99_WyGG6a4BwzaJ7R0vee6JgTc4Txes6yEew&m=RwHovw9Jb8ZzPnV0Fb8JtuHSrWfHboK75HB0QKXv7Dw&s=7RT-emP8kpFQ1NAQn6MxdRyt8N1z8blOyGY0-o_XwNw&e=
>>
>> 
>> From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
>> Ambros, Thomas [010f77c934b1-dmarc-requ...@listserv.ua.edu]
>> Sent: Monday, February 24, 2020 3:43 PM
>> To: IBM-MAIN@LISTSERV.UA.EDU
>> Subject: Rexx parse using period as placeholder
>>
>> A trivial item, but this surprised me.
>>
>> I wanted to parse out the string 'word3' using the period as a place holder. 
>>  The input could have a blank delimited string containing an embedded period 
>> before the one I wanted to parse out.  The Parse Var as coded didn't work.  
>> Using the Parse Value as coded there does work.  I didn't know it would 
>> behave like that.  I can't seem to find this documented but I might have 
>> overlooked something.
>>
>> myVar = 'word1 word2 9.12 word3.ext'
>> Pa

Re: Convert a Metal C control block mapping to Assembler DSECT ?

2020-02-24 Thread Paul Gilmartin
On Fri, 14 Feb 2020 10:52:07 -0800, Charles Mills wrote:
>...
>Agree with Lionel's recommendation. Even if the usage is going to be 90% C and 
>10% HLASM you want to do the DSECT first and work from there.
> 
I find it ironic that a weakly typed language such as assembler is a good
source for generating definitions for a strongly typed language such as C.

For example C pointers are typed; HLASM pointers are not.  How can you
generate the type in the declarator?

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Finding and replying to outstanding reply

2020-02-24 Thread Gibney, Dave
It's crude, but I have a similar goal, I just threw this D R,R and System Rexx 
parse together. 

/* rexx */  
  
CmdResult=AXRCMD('D R,R','v.',10);  
  
/* do i = 1 to v.0 */   
  
/*say i v.i*/   
  
/* end */   
  
if v.3 <> "NO MESSAGES OUTSTANDING" then do 
  
   parse var v.1 iee112i_key iee112i_time iee112i_pending_requests_idr  
  
/* say   iee112i_key iee112i_time iee112i_pending_requests_idr  
  */  
   parse var v.2 iee112i_rm iee112i_im iee112i_cem iee112i_em iee112i_ir 
iee112i_amrf 
/* say   iee112i_rm iee112i_im iee112i_cem em iee112i_ir iee112i_amrf   
  */  
   parse var v.3 iee112i_id iee112i_ts iee112i_sys iee112i_jb iee112i_idd 
iee112i_msg iee112i_txt 
/* say   iee112i_id iee112i_ts iee112i_sys iee112i_jb iee112i_idd 
iee112i_msg iee112i_txt */  
   r = 1
  
   do i = 4 to v.0  
  
/*   say i v.i  
  */  
 r.0 = r
  
 parse var v.i iee112i_reply_id.r iee112i_type.r iee112i_system.r 
iee112i_job.r iee112i_msg_txt.r 
 say r iee112i_reply_id.r iee112i_type.r iee112i_system.r 
iee112i_job.r iee112i_msg_txt.r 
 r = r + 1  
  
   end  
  
end 
  
else
  
   say 'No outstanding replies'
say 'exiting'  
exit(0)

> -Original Message-
> From: IBM Mainframe Discussion List  On
> Behalf Of Tony Thigpen
> Sent: Tuesday, February 11, 2020 5:31 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Finding and replying to outstanding reply
> 
> We have an in-house written automated shutdown program that does
> everything but shutdown NPF. That is because NPF leaves an open reply
> message during start-up to which I must replay xx,STOP to make it
> shutdown. Within our shutdown program, I would like it to programmatically
> find the outstanding reply number so that it can issue the correct response.
> 
> Can someone point me to any doc or examples that will help me get started
> on this?
> 
> Some items:
> The shutdown program is assembler.
> I have SysREXX running with a valid MPF exit to call it.
> I would prefer to do it all within the assembler program instead of using
> MPF/SysREXX.
> 
> Thoughts?
> 
> --
> Tony Thigpen
> 
> --
> For IBM-MAIN subscribe / signoff / archive access instructions, send email to
> lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Convert a Metal C control block mapping to Assembler DSECT ?

2020-02-24 Thread Seymour J Metz
FSVO typed.

void * foo


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Paul Gilmartin [000433f07816-dmarc-requ...@listserv.ua.edu]
Sent: Monday, February 24, 2020 6:54 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Convert a Metal C control block mapping to Assembler DSECT ?

On Fri, 14 Feb 2020 10:52:07 -0800, Charles Mills wrote:
>...
>Agree with Lionel's recommendation. Even if the usage is going to be 90% C and 
>10% HLASM you want to do the DSECT first and work from there.
>
I find it ironic that a weakly typed language such as assembler is a good
source for generating definitions for a strongly typed language such as C.

For example C pointers are typed; HLASM pointers are not.  How can you
generate the type in the declarator?

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Convert a Metal C control block mapping to Assembler DSECT ?

2020-02-24 Thread Paul Gilmartin
On Tue, 25 Feb 2020 00:58:26 +, Seymour J Metz  wrote:

>FSVO typed.
>
>void * foo
>
So I can't do "foo -> member", but must "(type *) foo-> member".  Ugh!

>
>From: Paul Gilmartin
>Sent: Monday, February 24, 2020 6:54 PM
>>...
>>Agree with Lionel's recommendation. Even if the usage is going to be 90% C 
>>and 10% HLASM you want to do the DSECT first and work from there.
>>
>I find it ironic that a weakly typed language such as assembler is a good
>source for generating definitions for a strongly typed language such as C.

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Convert a Metal C control block mapping to Assembler DSECT ?

2020-02-24 Thread Seymour J Metz
Have you ever seen me praising C? Vile imprecations don't count as praise.

(I will admit to defending the idiom for (;;) {code}) as an obvious do forever.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Paul Gilmartin [000433f07816-dmarc-requ...@listserv.ua.edu]
Sent: Monday, February 24, 2020 8:35 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Convert a Metal C control block mapping to Assembler DSECT ?

On Tue, 25 Feb 2020 00:58:26 +, Seymour J Metz  wrote:

>FSVO typed.
>
>void * foo
>
So I can't do "foo -> member", but must "(type *) foo-> member".  Ugh!

>
>From: Paul Gilmartin
>Sent: Monday, February 24, 2020 6:54 PM
>>...
>>Agree with Lionel's recommendation. Even if the usage is going to be 90% C 
>>and 10% HLASM you want to do the DSECT first and work from there.
>>
>I find it ironic that a weakly typed language such as assembler is a good
>source for generating definitions for a strongly typed language such as C.

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Rexx parse using period as placeholder

2020-02-24 Thread Wayne Bickerdike
Interesting. Seymours example came back with a blank.

I used PARSE VALUE MYVAR WITH . . . '.' . WORD3 '.' EXT .



On Tue, Feb 25, 2020 at 10:46 AM Paul Gilmartin <
000433f07816-dmarc-requ...@listserv.ua.edu> wrote:

> On Mon, 24 Feb 2020 18:08:48 -0500, Tony Thigpen wrote:
>
> >You have "passed" your first period before your "'.'" in the parse
> >statement is actually interpreted.
> >
> >For your data example:
> >myVar = 'word1 word2 9.12 word3.ext'
> >The correct parse is:
> >Parse Value myVar with . . myVal2 '.' .
> >
> >Each period, or var name, in the parse "eats" one blank delimited word.
> >For example:
> >myvar = 'a b c d e f g'
> >parse var myvar . . 'e' next .
> >will yield next = 'f', but
> >
> >parse var myvar . . . . . 'e' next .
> >will yield next = ''
> >
> Ummm.  No.  I believe next = 'f':
> parse value 'a b c d e f g' with . . . . . 'e' next .; say next"
>>.>   "a"
>>.>   "b"
>>.>   "c"
>>.>   "d"
>>.>   ""
>>>>   "f"
>>.>   "g"
>>V>   "f"
> f
>
> -- gil
>
>
>
>
> >For your data, I would first parse the words, then parse each var for '.'.
> >
> >Now, if there is really a special character (or string) that you need to
> >identify, it is best to parse the before and after data, then parse each
> >section. This is how you should handle finding options in a parm string
> >passed to a REXX script:
> >
> >parse value arg with parms '(' options ')' localopts
> >parse var parms parm1 parm2 parm3 parm4 parm5 .
> >parse var options opt1 opt2 opt3 opt4 opt5 opt6 .
> >parse var localopts lopt1 lopt2 lopt3 lopt4 lopt5 .
> >
> >For the above to work, the use of ')' *requires* a previous '('.
> >
> >example: arg = aaa bbb ccc ')' ddd eee
> >  parse value arg with parms '(' options ')' localopts
> >
> >will yield:
> >parms = "aaa bbb ccc ) ddd eee"
> >options = ''
> >localopts = ''
> >
> >If this might happen, you would need:
> >parse value arg with part1 ')' localopts
> >parse var part1  parms ')' options
> >parse var parms parm1 parm2 parm3 parm4 parm5 .
> >parse var options opt1 opt2 opt3 opt4 opt5 opt6 .
> >parse var localopts lopt1 lopt2 lopt3 lopt4 lopt5 .
> >
> >
> >
> >Tony Thigpen
> >
> >Seymour J Metz wrote on 2/24/20 5:50 PM:
> >> Isn't that the same, except for the choice of variable names?
> >>
> >> For the type of source string that you're parsing, I'd probably break
> it into words with a simple parse and then use a parse var foo bar '.' baz
> >>
> >>
> >> --
> >> Shmuel (Seymour J.) Metz
> >> http://mason.gmu.edu/~smetz3
> >>
> >> 
> >> From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on
> behalf of Ambros, Thomas [010f77c934b1-dmarc-requ...@listserv.ua.edu]
> >> Sent: Monday, February 24, 2020 4:26 PM
> >> To: IBM-MAIN@LISTSERV.UA.EDU
> >> Subject: Re: Rexx parse using period as placeholder
> >>
> >> You mean like this?
> >>
> >> *-* Parse Value myVar with . . . myVal2 '.' .
> >"word1 word2 9.12 word3.ext"
> >>> .>   "word1"
> >>> .>   "word2"
> >>> .>   "9"
> >""
> >>> .>   "12 word3.ext"
> >>
> >> But you're correct, variables result in the same behavior:
> >>
> >> *-* Parse Value myVar with t1 t2 t3 myVal2 '.' .
> >"word1 word2 9.12 word3.ext"
> >"word1"
> >"word2"
> >"9"
> >""
> >>> .>   "12 word3.ext"
> >>
> >> So it is the definition of a blank delimited word that escaped me.
> I'll look for a precise definition of one of those in the context of Rexx.
> >>
> >> Thomas Ambros
> >> zEnterprise Operating Systems
> >> zEnterprise Systems Management
> >> 518-436-6433
> >>
> >> -Original Message-
> >> From: IBM Mainframe Discussion List  On
> Behalf Of Seymour J Metz
> >> Sent: Monday, February 24, 2020 16:17
> >> To: IBM-MAIN@LISTSERV.UA.EDU
> >> Subject: Re: Rexx parse using period as placeholder
> >>
> >>
> >>
> >> *** Warning: External message - exercise caution. Think before you
> click. ***
> >>
> >>
> >> Why did it surprise you, and what does it have to do with the
> placeholders? You'd get the same thing if you used three variable names
> instead of three periods. The parse with works because it's using a
> different template on a different value: try
> >>
> >>  parse Value myVar with . . . myVal '.' .
> >>
> >>
> >> --
> >> Shmuel (Seymour J.) Metz
> >>
> https://urldefense.proofpoint.com/v2/url?u=http-3A__mason.gmu.edu_-7Esmetz3&d=DwIFAg&c=Y1KkN7JyAPjrAJTUCirS0fy9vQY8xn4_Oh4EEEpbXx4&r=7ds2LAJ99_WyGG6a4BwzaJ7R0vee6JgTc4Txes6yEew&m=RwHovw9Jb8ZzPnV0Fb8JtuHSrWfHboK75HB0QKXv7Dw&s=7RT-emP8kpFQ1NAQn6MxdRyt8N1z8blOyGY0-o_XwNw&e=
> >>
> >> 
> >> From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on
> behalf of Ambros, Thomas [010f77c934b1-dmarc-requ...@listserv.ua.edu]
> >> Sent: Monday, February 24, 2020 3:43 PM
> >> To: IBM-MAIN@LISTSERV.UA.EDU
> >> Subject: Rexx parse using period as placeholder
> >>
> >> A trivial item, but this surp

Announcement: Disassembler written in Rexx

2020-02-24 Thread Andrew Armstrong
Hi all,

I've just published my latest endeavour on github: a free open source 
disassembler in Rexx.

https://github.com/abend0c1/da

...it supports all instructions in the POPs including the latest z15 ones. 
Could be handy if you have lost some source code over the years.
I'm pretty happy with it but as with any software there will be bugs. Please 
raise a github issue if you find any.

Enjoy!

Cheers,
Andrew.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN