Re: Software drag racing

2021-06-24 Thread David Crayford
I profiled the C++ code using APA. It's spending all it's time bit 
twiddling and doing mod division. The Java version uses a much more 
efficient implementation that uses an array of boolean's which isn't 
initialized to turn the bits on.


On 25/06/2021 1:01 pm, Andrew Rowley wrote:

On 25/06/2021 2:34 pm, David Crayford wrote:
If you've got the XLC 2.4.1 it will will be installed in the 
/usr/lpp/cbc/xlclang/exe directory. It's 64-bit only. We use this 
compiler exclusively now. It's really cool and has neat features such 
as type checking printf() format flags at compile time.




I have /usr/lpp/cbclib/xlclang/exe/, but:

ls -l /usr/lpp/cbclib/xlclang/exe/
total 16
erwxrwxrwx   1 OMVSKERN OMVSGRP    7 Jun 12  2019 clcdrvr -> CLCDRVR

I think that is linking to a program outside the filesystem.

I found IBM XL C/C++ V2.4.1 for z/OS V2.4 web deliverable with a 
program directory. It has a z/OS dataset that goes in the linklist, I 
can't see that on my system. I suspect I have the OMVS bits but need 
to request the z/OS components be attached to my system (Dallas RDP 
system).





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


Re: Software drag racing

2021-06-24 Thread Andrew Rowley

On 25/06/2021 2:34 pm, David Crayford wrote:
If you've got the XLC 2.4.1 it will will be installed in the 
/usr/lpp/cbc/xlclang/exe directory. It's 64-bit only. We use this 
compiler exclusively now. It's really cool and has neat features such 
as type checking printf() format flags at compile time.




I have /usr/lpp/cbclib/xlclang/exe/, but:

ls -l /usr/lpp/cbclib/xlclang/exe/
total 16
erwxrwxrwx   1 OMVSKERN OMVSGRP    7 Jun 12  2019 clcdrvr -> CLCDRVR

I think that is linking to a program outside the filesystem.

I found IBM XL C/C++ V2.4.1 for z/OS V2.4 web deliverable with a program 
directory. It has a z/OS dataset that goes in the linklist, I can't see 
that on my system. I suspect I have the OMVS bits but need to request 
the z/OS components be attached to my system (Dallas RDP system).



--
Andrew Rowley
Black Hill Software

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


Re: Software drag racing

2021-06-24 Thread David Crayford

On 25/06/2021 12:44 pm, Ed Jaffe wrote:

On 6/24/2021 9:34 PM, David Crayford wrote:
If you've got the XLC 2.4.1 it will will be installed in the 
/usr/lpp/cbc/xlclang/exe directory. It's 64-bit only. We use this 
compiler exclusively now. It's really cool and has neat features such 
as type checking printf() format flags at compile time.


If you're referring to IBM's LLVM-based C/C++ compiler, I believe it 
is in a closed beta test status right now.



I'm referring to what's shipped with XL C/C++ 
https://www-01.ibm.com/servers/resourcelink/svc00100.nsf/pages/xlCC++V241ForZOsV24?OpenDocument


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


Re: Software drag racing

2021-06-24 Thread Ed Jaffe

On 6/24/2021 9:34 PM, David Crayford wrote:
If you've got the XLC 2.4.1 it will will be installed in the 
/usr/lpp/cbc/xlclang/exe directory. It's 64-bit only. We use this 
compiler exclusively now. It's really cool and has neat features such 
as type checking printf() format flags at compile time.


If you're referring to IBM's LLVM-based C/C++ compiler, I believe it is 
in a closed beta test status right now.



--
Phoenix Software International
Edward E. Jaffe
831 Parkview Drive North
El Segundo, CA 90245
https://www.phoenixsoftware.com/



This e-mail message, including any attachments, appended messages and the
information contained therein, is for the sole use of the intended
recipient(s). If you are not an intended recipient or have otherwise
received this email message in error, any use, dissemination, distribution,
review, storage or copying of this e-mail message and the information
contained therein is strictly prohibited. If you are not an intended
recipient, please contact the sender by reply e-mail and destroy all copies
of this email message and do not otherwise utilize or retain this email
message or any or all of the information contained therein. Although this
email message and any attachments or appended messages are believed to be
free of any virus or other defect that might affect any computer system into
which it is received and opened, it is the responsibility of the recipient
to ensure that it is virus free and no responsibility is accepted by the
sender for any loss or damage arising in any way from its opening or use.

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


Re: Software drag racing

2021-06-24 Thread David Crayford
If you've got the XLC 2.4.1 it will will be installed in the 
/usr/lpp/cbc/xlclang/exe directory. It's 64-bit only. We use this 
compiler exclusively now. It's really cool and has neat features such as 
type checking printf() format flags at compile time.


On 25/06/2021 12:22 pm, Andrew Rowley wrote:

On 25/06/2021 1:45 pm, David Crayford wrote:
Interesting! Try compiling using xlclang++ instead of xlc and see how 
you go. xlclang++ has a far superior standard library.




I'm not sure whether it is installed on my system. I tried it and it 
fails, I think it is looking for module CLCDRVR. Any suggestions where 
that might be located e.g. a LLQ? I tried CLC* and **.SCLC* but no luck.




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


Re: Software drag racing

2021-06-24 Thread Andrew Rowley

On 25/06/2021 1:45 pm, David Crayford wrote:
Interesting! Try compiling using xlclang++ instead of xlc and see how 
you go. xlclang++ has a far superior standard library.




I'm not sure whether it is installed on my system. I tried it and it 
fails, I think it is looking for module CLCDRVR. Any suggestions where 
that might be located e.g. a LLQ? I tried CLC* and **.SCLC* but no luck.


--
Andrew Rowley
Black Hill Software

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


Re: Coding for the future - REXX quoting

2021-06-24 Thread Seymour J Metz
Assuming that novalue is not active, you can use a symbol anywhere that allows 
an expression;

foo = ISPEXEC
ADDRESS VALUE foo

The basic form of ADDRESS does not allow an expression for the environment, 
hence an unquoted name is just uppercased.


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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Bob 
Bridges [robhbrid...@gmail.com]
Sent: Thursday, June 24, 2021 7:40 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Coding for the future - REXX quoting

That brings up an interesting question (by which I mean "a question about
which any answers y'all might provide will interest me, at least").  I quote
most constants in REXX, depending as little as possible on REXX's
interpretation of uninitialized variables.  Like so:

  address ISPEXEC 'VGET '
  'EXECIO * DISKR' ddname '(FINIS'
  "ALLOCATE DSN('"dsn"') DDN(TEMPDD) SHR"
  trace 'I'

And so on.  But some words I don't quote, notably "ISPEXEC" above.  I think
I got that from the manual, but I gather it would work either way.  a) Why
does the manual have us quote some words and not others?, and b) when does
it make a difference?  For that matter, dear reader, what do ~you~ quote?

---
Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313

/* A man does not insist on physical beauty in a woman who builds up his
morale.  After a while he realizes that she ~is~ beautiful -- he just hadn't
noticed it at first.  -Lazarus Long */

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of
Seymour J Metz
Sent: Thursday, June 24, 2021 09:12

No, I'm saying that the second script is a more expensive version of the
first.

'ADDRESS foo bar' evaluates bar and passes it to the foo environment. If you
omit the command, then 'ADDRESS foo' just sets the default environment to
foo. Commands in the ISPEXEC and ISREDIT environments go to ISPF and ISPF
EDIT; they are not TSO commands. There are ISPEXEC and ISREDIT commands for
the benefit of those writing in CLIST and you don't need them for REXX. A
faster verbose form is:

/* rexx */
ADDRESS ISPEXEC "FTOPEN TEMP"
ADDRESS ISPEXEC "FTINCL SOMEJCL"
ADDRESS ISPEXEC "FTCLOSE"
ADDRESS ISPEXEC "VGET (ZTEMPF)"
ADDRESS TSO
say ztempf

I see the use of unquoted symbols as one of the strengths of REXX, when used
sensibly. But quoting everything certainly does no harm, and might be
marginally faster.

--
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: Coding for the future

2021-06-24 Thread Seymour J Metz
No, by multi-line string I mean a string literal split across multiple lines of 
the source code, whether or not it contains CR, LF or NEL. In, e.g., HLASM you 
can split a string across multiple lines, although the syntax is ugly.


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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Bob 
Bridges [robhbrid...@gmail.com]
Sent: Thursday, June 24, 2021 7:43 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Coding for the future

Ah, I see; by "multi-line string" you mean, I guess, a string with something 
like an ASCII CRLF embedded in it.  But isn't that a limitation not of REXX but 
of EBCDIC?  Or have I still misunderstood you?

---
Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313

/* Unable to locate coffee.  Operator halted. */

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Paul Gilmartin
Sent: Thursday, June 24, 2021 16:50

No, that's a single-linee string.  Verify that with:
SAY Longstr

--- On Tue, 22 Jun 2021 18:39:19 -0400, Bob Bridges  
wrote:
>Gil, I don't follow what you mean about multi-line strings.  I know you can't 
>mean this, which REXX handles just fine:
>
>  Longstr='blah blah blah blah blah blah blah blah',
> 'blah blah blah blah blah blah blah blah blah'

--
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: Software drag racing

2021-06-24 Thread David Crayford
Interesting! Try compiling using xlclang++ instead of xlc and see how 
you go. xlclang++ has a far superior standard library.


Nothing matches the speed of C :)

mckoss-c830;14259;5.0;1;algorithm=wheel,faithful=yes,bits=1

On 25/06/2021 10:22 am, Andrew Rowley wrote:
Dave Plummer has a series of Software Drag Racing videos, using a 
program to search for prime numbers as a simple speed test for 
different languages and/or hardware. The "drag race" description 
acknowledges that it isn't a comprehensive benchmark, just a test of 
speed at one particular simple task.


I thought it would be fun to try it on z/OS. I modified the C++ 
version to compile on z/OS, and there was a Java version that ran 
without modification.


Results were interesting.

- Java was much faster than C++ on z/OS. I modified the C++ version to 
change the vector to a byte/bit array (as was used in his first 
version) and performance was much better. However it still only 
matched Java, it didn't beat it. On other platforms C++ was much 
faster than Java e.g. 15-50%, maybe more.

- 31 bit code was about 10% faster than 64 bit, for both C++ and Java.

I configured my zIIP offline to make sure the Java code was running on 
a regular CP.


I'm interested to know why C++ didn't outperform Java. C++ isn't my 
language, so I might be missing something obvious. Any ideas?


Software Drag Racing video:
https://www.youtube.com/watch?v=l1j-aF_wyzU

C++ to run on z/OS:
https://github.com/andrew890/Primes/tree/drag-race/PrimeCPPzOS/solution_1

Java version:
https://github.com/andrew890/Primes/tree/drag-race/PrimeJava/solution_1



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


Re: Coding for the future

2021-06-24 Thread Seymour J Metz
The REXX language doesn't support callback; the API does. When an application 
calls IRXINIT, each of MODNAMET, SUBCOMTB and PACKTB can specify call-back 
routines.


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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
David Crayford [dcrayf...@gmail.com]
Sent: Thursday, June 24, 2021 9:45 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Coding for the future

On 24/06/2021 9:33 pm, Seymour J Metz wrote:
> That wiki article describes exactly the mechanism I was referring to.

That's interesting. REXX doesn't support functions as first class
objects so how can it support callbacks? I can image some monstrous
concoction using  "interpret". Maybe there are gaps in my REXX knowledge.


>
>
> --
> Shmuel (Seymour J.) Metz
> http://mason.gmu.edu/~smetz3
>
> 
> From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
> David Crayford [dcrayf...@gmail.com]
> Sent: Thursday, June 24, 2021 9:29 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Coding for the future
>
> On 24/06/2021 8:51 pm, Seymour J Metz wrote:
>> The only meaning that I'm familiar with is the one that I get on a search 
>> for 'callback definition programming'. Or were you thinking of a 
>> non-computer contest?
> Callback is is a well known pattern
> https://secure-web.cisco.com/1QSdJn1tHFo3fLnTHXKVuzco3ZyGmLW-vJIU-4BgBoJ6fnHEdkkNxvL7PgoLaBvpo0I8lemVuZ75OvusonUGyzxr1CV5i0Ww9nI1WZn3XFUso-xHRUl4FLtHqIGQqw0Q_U0FyxioHkGZUHg_5CwjKzl7I0tSi7y6qWdIvgG-u6fxFAJDUmIM6B1NKqqUXSHjK-SbQJOj1LAnHqNpTKdZueBEe6xZ9T-X0sazYHQQzyDEkdghGd_v8hwKJ7IfhJ7j1z1QOgZGFloyGsbaWtcL4yQWVqdTdPB-maTaKnYn8_7KxGVM-0zYdM0dYs9fgNJrebgDY_x4uksThdeKPMJSSwPBBYhutBegj1RG3PDcP8QFP8fy0xl-4EbJYe09lNW4C3k_VT77137C2DdIGZNS34cvFYUaPMP7R3M8AsTnOYZIOUKJsFvX4d4YJ6TXIaneJ/https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FCallback_%28computer_programming)
>
> The ,array class goes all the way back to OREXX in OS/2. 5.0 adds a
> regex class, but it doesn't support captures, and I rely on them heav
>
> I must admit I don't really care
>
>> --
>> Shmuel (Seymour J.) Metz
>> http://mason.gmu.edu/~smetz3
>>
>> 
>> From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
>> David Crayford [dcrayf...@gmail.com]
>> Sent: Thursday, June 24, 2021 5:00 AM
>> To: IBM-MAIN@LISTSERV.UA.EDU
>> Subject: Re: Coding for the future
>>
>> On 24/06/2021 9:23 am, Seymour J Metz wrote:
>>> You invoke ISPF. You call a REXX script for ISPF. The script does ADDRESS 
>>> ISPEXEC foo and ISPF gets control back. It's well documented in the TSO/E 
>>> REXX Reference, and other implementations have essentially the same API. 
>>> Basically, when a REXX-aware application creates an environment, REXX 
>>> associates context with the environment name; when a REXX script routes a 
>>> command to that environment, the environment block contains the context so 
>>> that the application can locate its control blocks. It's quite elegant, and 
>>> REXX does all of the heavy lifting.
>> Yes, I'm familiar with the environment block as I have used IRXSUBCM to
>> create host command environments. In my case I had to use CEEPIPI to
>> create an LE environment for the C++ regex library. The environment
>> block has a user context pointer which is very useful. I was confused by
>> the term "call-back" which means something quite different to me.
>>
>>
>>> On the flip side, prior to OREXX everything was a string; there was no type 
>>> checking, only value testing. Also, the exception handling is fragile 
>>> compared to PL/I, Python or Ruby.
>> I noticed that ooRexx v5 has introduced array types which is long
>> overdue. Stem variables are hash tables so performance is not great when
>> iterating.
>>
>>
>>> --
>>> Shmuel (Seymour J.) Metz
>>> http://mason.gmu.edu/~smetz3
>>>
>>> 
>>> From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
>>> David Crayford [dcrayf...@gmail.com]
>>> Sent: Wednesday, June 23, 2021 8:57 PM
>>> To: IBM-MAIN@LISTSERV.UA.EDU
>>> Subject: Re: Coding for the future
>>>
>>> Maybe I'm missing a subtlety here but can you demonstrate how REXX uses
>>> callbacks on z/OS? I'm familar with command environments, I've written
>>> one for REXX regex 
>>> https://secure-web.cisco.com/140q8fxdqURUGvmth2nK_lOrDPN09AtW0cBfgGnzMZm6MOvOho-HriWxdOrBSwiPotV2P6kacF9rpRwTORQsYeHqbOlnMFxHuUDYsjYnWlk0z0sR7CYhLEzIyd-DL6yuI6IRotLmLhmT3RbCQk9-VO0E6-NE3tyAdm1jgxYV9K6GosVOwG_tqv0j_Iv7TeRrCoUvhQ5ZNmnH2N9gR8CjU9xFydEZWlX1Y702G19rTTW9fV0qRkhU5kTGg16f16KMPIZbaB7Cqk0evdWJylMOkSMkIA5PECEmFeyiQXvrOBE2LDvGMC16AK6OZg5xdnzeWpSgm_g5F-nCgOQjteQ_82RUkquwXW_WqLZq0S0yXoz4PpyFEFJrpl2iZboK4FhuXZdrvui3BqiSrz0nKNJYIXUNRpVzfCH02p2xcc1Oqa0Lrndw3QSeal5ZFf3sRqGP-/https%3A%2F%2Fgithub.com%2Fdaveyc%2FRTK.
>>>  In Python, Lua etc you
>>> would just create an instance of a class an 

Re: New to DFSMS? New to DFSMShsm? Education!

2021-06-24 Thread kekronbekron
Thank you Lisa, please do keep posting direct links like this as these happen.
It's about time we stop signing up for marketing and "research", before we can 
get to content.

- KB

‐‐‐ Original Message ‐‐‐

On Thursday, June 24th, 2021 at 10:13 PM, Lisa Gundy  wrote:

> If you are new to DFSMS or have employees that are looking for DFSMS basic 
> information, refer them to the recordings from our November 2020 DFSMS 
> Academy event. It was a 3 day event that offered several sessions on DFSMS 
> topics.
>
> The link to those recordings are here: 
> https://ibm.box.com/s/w2jpq95ydynpztbjwdplw3l0hoipl0i8
>
> If you are familiar with DFSMS but need some details on the DFSMShsm (HSM) 
> functionality, then you may be interested in the recordings from our DFSMShsm 
> Series event.
>
> The link to those recordings are here: 
> https://ibm.box.com/v/DFSMS-Academ-DFSMShsm2021
>
> To be informed of future events offered by the z/OS DFSMS Academy or events 
> offered by the parent z/OS Academy, follow the 'New to z' community, and 
> follow DFSMS on LinkedIn!
>
> The link to the New to Z community is here: 
> https://community.ibm.com/community/user/ibmz-and-linuxone/groups/group-home/library?communitykey=53d759c6-31ad-4ebd-b518-0696ea821f14=group-library=2.
>
> --
>
> 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


Software drag racing

2021-06-24 Thread Andrew Rowley
Dave Plummer has a series of Software Drag Racing videos, using a 
program to search for prime numbers as a simple speed test for different 
languages and/or hardware. The "drag race" description acknowledges that 
it isn't a comprehensive benchmark, just a test of speed at one 
particular simple task.


I thought it would be fun to try it on z/OS. I modified the C++ version 
to compile on z/OS, and there was a Java version that ran without 
modification.


Results were interesting.

- Java was much faster than C++ on z/OS. I modified the C++ version to 
change the vector to a byte/bit array (as was used in his first 
version) and performance was much better. However it still only matched 
Java, it didn't beat it. On other platforms C++ was much faster than 
Java e.g. 15-50%, maybe more.

- 31 bit code was about 10% faster than 64 bit, for both C++ and Java.

I configured my zIIP offline to make sure the Java code was running on a 
regular CP.


I'm interested to know why C++ didn't outperform Java. C++ isn't my 
language, so I might be missing something obvious. Any ideas?


Software Drag Racing video:
https://www.youtube.com/watch?v=l1j-aF_wyzU

C++ to run on z/OS:
https://github.com/andrew890/Primes/tree/drag-race/PrimeCPPzOS/solution_1

Java version:
https://github.com/andrew890/Primes/tree/drag-race/PrimeJava/solution_1

--
Andrew Rowley
Black Hill Software

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


Re: Coding for the future

2021-06-24 Thread David Crayford

On 24/06/2021 9:33 pm, Seymour J Metz wrote:

That wiki article describes exactly the mechanism I was referring to.


That's interesting. REXX doesn't support functions as first class 
objects so how can it support callbacks? I can image some monstrous 
concoction using  "interpret". Maybe there are gaps in my REXX knowledge.






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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
David Crayford [dcrayf...@gmail.com]
Sent: Thursday, June 24, 2021 9:29 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Coding for the future

On 24/06/2021 8:51 pm, Seymour J Metz wrote:

The only meaning that I'm familiar with is the one that I get on a search for 
'callback definition programming'. Or were you thinking of a non-computer 
contest?

Callback is is a well known pattern
https://secure-web.cisco.com/1QSdJn1tHFo3fLnTHXKVuzco3ZyGmLW-vJIU-4BgBoJ6fnHEdkkNxvL7PgoLaBvpo0I8lemVuZ75OvusonUGyzxr1CV5i0Ww9nI1WZn3XFUso-xHRUl4FLtHqIGQqw0Q_U0FyxioHkGZUHg_5CwjKzl7I0tSi7y6qWdIvgG-u6fxFAJDUmIM6B1NKqqUXSHjK-SbQJOj1LAnHqNpTKdZueBEe6xZ9T-X0sazYHQQzyDEkdghGd_v8hwKJ7IfhJ7j1z1QOgZGFloyGsbaWtcL4yQWVqdTdPB-maTaKnYn8_7KxGVM-0zYdM0dYs9fgNJrebgDY_x4uksThdeKPMJSSwPBBYhutBegj1RG3PDcP8QFP8fy0xl-4EbJYe09lNW4C3k_VT77137C2DdIGZNS34cvFYUaPMP7R3M8AsTnOYZIOUKJsFvX4d4YJ6TXIaneJ/https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FCallback_%28computer_programming)

The ,array class goes all the way back to OREXX in OS/2. 5.0 adds a
regex class, but it doesn't support captures, and I rely on them heav

I must admit I don't really care


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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
David Crayford [dcrayf...@gmail.com]
Sent: Thursday, June 24, 2021 5:00 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Coding for the future

On 24/06/2021 9:23 am, Seymour J Metz wrote:

You invoke ISPF. You call a REXX script for ISPF. The script does ADDRESS 
ISPEXEC foo and ISPF gets control back. It's well documented in the TSO/E REXX 
Reference, and other implementations have essentially the same API. Basically, 
when a REXX-aware application creates an environment, REXX associates context 
with the environment name; when a REXX script routes a command to that 
environment, the environment block contains the context so that the application 
can locate its control blocks. It's quite elegant, and REXX does all of the 
heavy lifting.

Yes, I'm familiar with the environment block as I have used IRXSUBCM to
create host command environments. In my case I had to use CEEPIPI to
create an LE environment for the C++ regex library. The environment
block has a user context pointer which is very useful. I was confused by
the term "call-back" which means something quite different to me.



On the flip side, prior to OREXX everything was a string; there was no type 
checking, only value testing. Also, the exception handling is fragile compared 
to PL/I, Python or Ruby.

I noticed that ooRexx v5 has introduced array types which is long
overdue. Stem variables are hash tables so performance is not great when
iterating.



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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
David Crayford [dcrayf...@gmail.com]
Sent: Wednesday, June 23, 2021 8:57 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Coding for the future

Maybe I'm missing a subtlety here but can you demonstrate how REXX uses
callbacks on z/OS? I'm familar with command environments, I've written
one for REXX regex 
https://secure-web.cisco.com/140q8fxdqURUGvmth2nK_lOrDPN09AtW0cBfgGnzMZm6MOvOho-HriWxdOrBSwiPotV2P6kacF9rpRwTORQsYeHqbOlnMFxHuUDYsjYnWlk0z0sR7CYhLEzIyd-DL6yuI6IRotLmLhmT3RbCQk9-VO0E6-NE3tyAdm1jgxYV9K6GosVOwG_tqv0j_Iv7TeRrCoUvhQ5ZNmnH2N9gR8CjU9xFydEZWlX1Y702G19rTTW9fV0qRkhU5kTGg16f16KMPIZbaB7Cqk0evdWJylMOkSMkIA5PECEmFeyiQXvrOBE2LDvGMC16AK6OZg5xdnzeWpSgm_g5F-nCgOQjteQ_82RUkquwXW_WqLZq0S0yXoz4PpyFEFJrpl2iZboK4FhuXZdrvui3BqiSrz0nKNJYIXUNRpVzfCH02p2xcc1Oqa0Lrndw3QSeal5ZFf3sRqGP-/https%3A%2F%2Fgithub.com%2Fdaveyc%2FRTK.
 In Python, Lua etc you
would just create an instance of a class an communicate using message
passing like any OO language.
For example, to create and ISPF in Lua you instantiate and ISPF object
and then communicate with it by calling methods

Re: Coding for the future

2021-06-24 Thread David Crayford

On 24/06/2021 9:44 pm, Jeremy Nicoll wrote:

On Thu, 24 Jun 2021, at 01:57, David Crayford wrote:


For example, to create and ISPF in Lua you instantiate and ISPF object
and then communicate with it by calling methods
https://lua4z.github.io/Lua4z/modules/ispf.html.

That shows eg that you can invoke ispf edit via lua.  But can you use lua
to tell ispf edit to run a macro (written in lua) and can that macro issue
ispf editor commands, and also display ispf panels (eg to find out what
the macro should do or display its results) and issue tso commands?


Yes to all. Here's an example. The 'ispf.bind' function uses VDEFINE to 
map ISPF variables to the vars table.


local ispexec = ispf.ispexec
local isredit = function (cmd) return ispexec("ISREDIT " .. cmd) end
isredit "RESET"
isredit "(LRECL) = LRECL"
local lrecl = ispf.vcopy("LRECL")
local vars = ispf.bind {
  { "dsname", "char", 44},
  { "member", "char", 8},
  { "line",   "charbuf", lrecl},
  { "linenum","char", 30},
}
isredit "RESET"
isredit "(DSNAME) = DATASET"
isredit "(MEMBER) = MEMBER"

To run a TSO command and print the output

for line in tso.exec("HELP ALLOC") do
   print(line)
end




How about replacing REXX in eg Netview?


Does Netview support C/C++? If so then yes as Lua is designed to be 
embedded in C/C++ applications. That's why it's the goto language for 
video game scripting.

It runs in CICS just fine just by launching a script from a C++ program.






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


Re: Coding for the future

2021-06-24 Thread David Crayford

On 25/06/2021 6:37 am, Seymour J Metz wrote:

What else?

Stack and attention handling. Supporting existing REXX-aware code. Possibly 
rxapi. Address size issues.


Would a build of OoRexx without fopen() be useful?

Presumably David found it useful.


I value languages that support the MVS file system. All I had to do to 
enable Lua to run from from PDS data sets was to patch the package 
loader with an extra string "//DD:LUA(%s)" and it worked.
The point of difference between Rockets Python and IBMs is that Rocket 
have switched `open` to `fopen` so `f = open("rb", 
"type=record,noseek")` will work with data sets. To me that's important 
but not so much to the millenials

as they live in z/OS UNIX and only venture into TSO/SDSF to use SDSF.

When I ported ooRexx to z/OS I ran into this roadblock. I mentioned it 
to the project lead and he suggested introducing delegates. I bailed at 
that point. Everything about ooRexx is difficult. Porting Python and Lua 
is relatively easy. All the languages
I'm familiar with use a VM so generate bytecode. ooRexx creates a 
humongous object graph. Every instruction and statement is a C++ class 
that inherits from an abstract base class. It's OO madness and the major 
reason why it's carthorse slow. It's a relic of it's time
when inheritance was overused. These days inheritance is used with 
caution and composition is the preferred pattern. Some modern languages 
like Rust don't even support inheritance.


I don't see the point in ooRexx when languages like Python are so much 
better and easy to learn.


[1] 
https://github.com/ooRexx/ooRexx/blob/master/interpreter/instructions/IfInstruction.hpp






Would a port of  OoRexx readily support ADDRESS SYSCALL, ADDRESS SDSF,
ADDRESS ISREDIT, , perhaps using replaceable packages,unmodified?

It would have to in order to be useful.


--
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: Thursday, June 24, 2021 3:52 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Coding for the future

On Tue, 22 Jun 2021 11:23:41 +, Seymour J Metz  wrote:


Yes, I know that TSO support requires heavy lifting, and not just for fopen().



Would a build of OoRexx without fopen() be useful?

(bI've long wished that catalogued data sets could routinely be mounted
via NFS so open() would suffice.)


The problem is that those "more modern" languages don't support the close 
integration of scripts to applications that REXX supports.


Would a port of  OoRexx readily support ADDRESS SYSCALL, ADDRESS SDSF,
ADDRESS ISREDIT, , perhaps using replaceable packages,unmodified?



From: David Crayford [dcrayf...@gmail.com]
Sent: Tuesday, June 22, 2021 2:45 AM

Never going to happen. I ported ooRexx to z/OS UNIX over a decade ago
and getting it to work in TSO is a heavy lift. It doesn't use fopen() so
needs a lot of patching to work with MVS data sets. It's not worth the
effort. There are better, more modern languages available on z/OS now so
it's only the diehard REXXers that are interested.

-- 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


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


Re: z/OS SYSVAR looks weird

2021-06-24 Thread Charles Mills
It's not DFSORT. It's code that does a character compare against some literal 
to see if the RACF level is at least 'x' (that presumably supports some 
particular function or behavior).

Level = sysvar('SYSLRACF')
If Level > '7730' ... /* support is available ... */

That compare will be false for a return value of '77A0'.

It is kind of poor design returning a character value that must be treated as a 
hex string in order to get the behavior that people will expect.

Charles


-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Paul Gilmartin
Sent: Thursday, June 24, 2021 12:38 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: z/OS SYSVAR looks weird

On Mon, 21 Jun 2021 14:35:46 -0700, Charles Mills  wrote:

>Did you read the doc? They are concerned because 77A0 will character compare 
>low to 7790 and mess up peoples' logic. Seems to me if you do character 
>compares on hex data you get what you deserve, but I don't make up the rules.
>
Errr ...
"77A0" < "7790" (EBCDIC)
"77A0" > "7790" (ASCII)

Do they need to specify the CCSID?  (I believe DFSORT provides such an option.)

The doc is probably ASCII-centric.

-- 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: Coding for the future

2021-06-24 Thread Bob Bridges
Ah, I see; by "multi-line string" you mean, I guess, a string with something 
like an ASCII CRLF embedded in it.  But isn't that a limitation not of REXX but 
of EBCDIC?  Or have I still misunderstood you?

---
Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313

/* Unable to locate coffee.  Operator halted. */

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Paul Gilmartin
Sent: Thursday, June 24, 2021 16:50

No, that's a single-linee string.  Verify that with:
SAY Longstr

--- On Tue, 22 Jun 2021 18:39:19 -0400, Bob Bridges  
wrote:
>Gil, I don't follow what you mean about multi-line strings.  I know you can't 
>mean this, which REXX handles just fine:
>
>  Longstr='blah blah blah blah blah blah blah blah',
> 'blah blah blah blah blah blah blah blah blah'

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


Re: Coding for the future - REXX quoting

2021-06-24 Thread Bob Bridges
That brings up an interesting question (by which I mean "a question about
which any answers y'all might provide will interest me, at least").  I quote
most constants in REXX, depending as little as possible on REXX's
interpretation of uninitialized variables.  Like so:

  address ISPEXEC 'VGET '
  'EXECIO * DISKR' ddname '(FINIS'
  "ALLOCATE DSN('"dsn"') DDN(TEMPDD) SHR"
  trace 'I'

And so on.  But some words I don't quote, notably "ISPEXEC" above.  I think
I got that from the manual, but I gather it would work either way.  a) Why
does the manual have us quote some words and not others?, and b) when does
it make a difference?  For that matter, dear reader, what do ~you~ quote?

---
Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313

/* A man does not insist on physical beauty in a woman who builds up his
morale.  After a while he realizes that she ~is~ beautiful -- he just hadn't
noticed it at first.  -Lazarus Long */

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of
Seymour J Metz
Sent: Thursday, June 24, 2021 09:12

No, I'm saying that the second script is a more expensive version of the
first.

'ADDRESS foo bar' evaluates bar and passes it to the foo environment. If you
omit the command, then 'ADDRESS foo' just sets the default environment to
foo. Commands in the ISPEXEC and ISREDIT environments go to ISPF and ISPF
EDIT; they are not TSO commands. There are ISPEXEC and ISREDIT commands for
the benefit of those writing in CLIST and you don't need them for REXX. A
faster verbose form is:

/* rexx */
ADDRESS ISPEXEC "FTOPEN TEMP"
ADDRESS ISPEXEC "FTINCL SOMEJCL"
ADDRESS ISPEXEC "FTCLOSE"
ADDRESS ISPEXEC "VGET (ZTEMPF)"
ADDRESS TSO
say ztempf

I see the use of unquoted symbols as one of the strengths of REXX, when used
sensibly. But quoting everything certainly does no harm, and might be
marginally faster.

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


Re: Coding for the future

2021-06-24 Thread Bob Bridges
The first time I wrote a 200-line program in REXX (a nightly update for
ACF2), I wondered whether I should feel guilty about it.  But that was two
decades ago.

---
Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313

/* If God had wanted me to touch my toes, he would have put them on my
knees. */

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of
Seymour J Metz
Sent: Tuesday, June 22, 2021 22:38

As to large applications, I believe that there are some pretty big ones in
Perl and REXX, so why should I be surprised by large applications in, e.g.,
Python, Ruby?

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


Re: Coding for the future

2021-06-24 Thread Seymour J Metz
> What else?

Stack and attention handling. Supporting existing REXX-aware code. Possibly 
rxapi. Address size issues.

> Would a build of OoRexx without fopen() be useful?

Presumably David found it useful.

> Would a port of  OoRexx readily support ADDRESS SYSCALL, ADDRESS SDSF,
> ADDRESS ISREDIT, , perhaps using replaceable packages,unmodified?

It would have to in order to be useful.


--
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: Thursday, June 24, 2021 3:52 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Coding for the future

On Tue, 22 Jun 2021 11:23:41 +, Seymour J Metz  wrote:

>Yes, I know that TSO support requires heavy lifting, and not just for fopen().
>
>

Would a build of OoRexx without fopen() be useful?

(bI've long wished that catalogued data sets could routinely be mounted
via NFS so open() would suffice.)

>The problem is that those "more modern" languages don't support the close 
>integration of scripts to applications that REXX supports.
>
Would a port of  OoRexx readily support ADDRESS SYSCALL, ADDRESS SDSF,
ADDRESS ISREDIT, , perhaps using replaceable packages,unmodified?

>
>From: David Crayford [dcrayf...@gmail.com]
>Sent: Tuesday, June 22, 2021 2:45 AM
>
>Never going to happen. I ported ooRexx to z/OS UNIX over a decade ago
>and getting it to work in TSO is a heavy lift. It doesn't use fopen() so
>needs a lot of patching to work with MVS data sets. It's not worth the
>effort. There are better, more modern languages available on z/OS now so
>it's only the diehard REXXers that are interested.

-- 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: Coding for the future

2021-06-24 Thread Seymour J Metz
> No, that's a single-linee string.

No, it's the concatenation of two strings with a separating blank.

> The loop setup, iteration, and termination should be part of the DO,

In a C for statement, not in general.


--
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: Thursday, June 24, 2021 4:49 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Coding for the future

On Tue, 22 Jun 2021 18:39:19 -0400, Bob Bridges  wrote:

>Gil, I don't follow what you mean about multi-line strings.  I know you can't 
>mean this, which REXX handles just fine:
>
>  Longstr='blah blah blah blah blah blah blah blah',
> 'blah blah blah blah blah blah blah blah blah'
>
No, that's a single-linee string.  Verify that with:
SAY Longstr

>And your second wish is surely not significantly different from:
>
>  list='ssn ssx stm wcn wcx wln wlx wld'
>  do while list<>''
>parse var list val list
>/* etc */
>
>...which I do frequently.
>
Style.  The loop setup, iteration, and termination should be part of the DO,
even s I woulfn't code:
I = 1
DO WHILE I <= 10
whatever
I = I + 1
END

-- 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: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Seymour J Metz
It causes an ENDREQ.


--
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: Thursday, June 24, 2021 5:12 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: ISPF Edit: Introduce New SUBMIT Module

On Thu, 24 Jun 2021 12:28:18 +, Seymour J Metz wrote:
>
>It is easy to copy some or all of the data to an internal reader, followed by 
>a '/*EOF'.  ...
>
I've never needed a '/*EOF'.  What's it good for?

-- 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: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Seymour J Metz
In the days of cards you didn't need no stinking /*EOF


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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Gibney, Dave [gib...@wsu.edu]
Sent: Thursday, June 24, 2021 5:21 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: ISPF Edit: Introduce New SUBMIT Module

In the days of cards, when your //SYSIN DD * might be the last file in the 
current deck on the reader

> -Original Message-
> From: IBM Mainframe Discussion List  On
> Behalf Of Paul Gilmartin
> Sent: Thursday, June 24, 2021 2:12 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: ISPF Edit: Introduce New SUBMIT Module
>
> On Thu, 24 Jun 2021 12:28:18 +, Seymour J Metz wrote:
> >
> >It is easy to copy some or all of the data to an internal reader, followed 
> >by a
> '/*EOF'.  ...
> >
> I've never needed a '/*EOF'.  What's it good for?
>
> -- 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

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


Re: z/OS SYSVAR looks weird

2021-06-24 Thread Joel C. Ewing
The obvious problem here is that the manuals specify that SYSLRACF
returns the RACF level [as a character string], but give zero guidance
about valid ways to interpret or use the value.  If this will always be
the suffix of an FMID AND the rules for RACF FMID assignment guarantee
that comparing as character-encoded hexadecimal values will always sort
later releases higher, then that ought to have been explicitly stated.

The problem with unfreezing SYSLRACF is the possibility of breaking
existing code using other comparison techniques that worked prior to
level "77A0".  It would seem that there are several plausible choices at
this point:
(1) Fix the documentation to be specific about valid usage of SYSLRACF
and warn of future "unfreeze" of SYSLRACF to reflect true FMID, fix any
mis-use in IBM code, and require installations to fix any installation
misuse as part of some future migration.
(2) Keep SYSLRACF as-is and introduce a new SYSVAR for true RACF FMID
suffix with well defined usage rules, and require any new code needing
to verify RACF at a level of "77A0" or above to use the new variable and
the explicitly-stated comparison rules.
  or,
if there is no rule that FMID suffixes taken as a hex value always
increase in later product releases,
(3) introduce a new SYSVAR that returns some kind of RACF level set #
guaranteed to increase sequentially for later releases and  require that
future code compare with that for determining availability of features
at "77A0" and beyond.  It could still be useful to have a SYSVAR with
the true RACF FMID suffix, even if that is not the best thing to test to
determine available features.

    Joel C. Ewing


On 6/24/21 2:38 PM, Paul Gilmartin wrote:
> On Mon, 21 Jun 2021 14:35:46 -0700, Charles Mills  wrote:
>
>> Did you read the doc? They are concerned because 77A0 will character compare 
>> low to 7790 and mess up peoples' logic. Seems to me if you do character 
>> compares on hex data you get what you deserve, but I don't make up the rules.
>>
> Errr ...
> "77A0" < "7790" (EBCDIC)
> "77A0" > "7790" (ASCII)
>
> Do they need to specify the CCSID?  (I believe DFSORT provides such an 
> option.)
>
> The doc is probably ASCII-centric.
>
> -- gil
>
> ...


-- 
Joel C. Ewing

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


Re: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Lennie Dymoke-Bradshaw
If you are using an ACB for job submission it terminates the stream, thus 
generating a job number, without closing the file. So you can keep the file 
open for further job submission. Strangely enough, although /*EOF is not a JES3 
JECL statement, it works on JES3 as well.


Lennie Dymoke-Bradshaw
https://rsclweb.com 
‘Dance like no one is watching. Encrypt like everyone is.’

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Paul Gilmartin
Sent: 24 June 2021 22:12
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: ISPF Edit: Introduce New SUBMIT Module

On Thu, 24 Jun 2021 12:28:18 +, Seymour J Metz wrote:
>
>It is easy to copy some or all of the data to an internal reader, followed by 
>a '/*EOF'.  ...
>
I've never needed a '/*EOF'.  What's it good for?

-- 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: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Gibney, Dave
In the days of cards, when your //SYSIN DD * might be the last file in the 
current deck on the reader

> -Original Message-
> From: IBM Mainframe Discussion List  On
> Behalf Of Paul Gilmartin
> Sent: Thursday, June 24, 2021 2:12 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: ISPF Edit: Introduce New SUBMIT Module
> 
> On Thu, 24 Jun 2021 12:28:18 +, Seymour J Metz wrote:
> >
> >It is easy to copy some or all of the data to an internal reader, followed 
> >by a
> '/*EOF'.  ...
> >
> I've never needed a '/*EOF'.  What's it good for?
> 
> -- 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: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Steve Smith
Like war, absolutely nothin'

On Thu, Jun 24, 2021 at 5:12 PM Paul Gilmartin <
000433f07816-dmarc-requ...@listserv.ua.edu> wrote:

> On Thu, 24 Jun 2021 12:28:18 +, Seymour J Metz wrote:
> >
> >It is easy to copy some or all of the data to an internal reader,
> followed by a '/*EOF'.  ...
> >
> I've never needed a '/*EOF'.  What's it good for?
>
> -- gil
>
>

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


Re: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Paul Gilmartin
On Thu, 24 Jun 2021 12:28:18 +, Seymour J Metz wrote:
>
>It is easy to copy some or all of the data to an internal reader, followed by 
>a '/*EOF'.  ...
>
I've never needed a '/*EOF'.  What's it good for?

-- gil

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


Re: z/OS SYSVAR looks weird

2021-06-24 Thread Mike Schwab
How about an option to set either value (PTFs to swap values) and make
it a hold option for the user to test first?

On Thu, Jun 24, 2021 at 2:38 PM Paul Gilmartin
<000433f07816-dmarc-requ...@listserv.ua.edu> wrote:
>
> On Mon, 21 Jun 2021 14:35:46 -0700, Charles Mills  wrote:
>
> >Did you read the doc? They are concerned because 77A0 will character compare 
> >low to 7790 and mess up peoples' logic. Seems to me if you do character 
> >compares on hex data you get what you deserve, but I don't make up the rules.
> >
> Errr ...
> "77A0" < "7790" (EBCDIC)
> "77A0" > "7790" (ASCII)
>
> Do they need to specify the CCSID?  (I believe DFSORT provides such an 
> option.)
>
> The doc is probably ASCII-centric.
>
> -- gil
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN



-- 
Mike A Schwab, Springfield IL USA
Where do Forest Rangers go to get away from it all?

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


Re: Coding for the future

2021-06-24 Thread Paul Gilmartin
On Tue, 22 Jun 2021 18:39:19 -0400, Bob Bridges  wrote:

>Gil, I don't follow what you mean about multi-line strings.  I know you can't 
>mean this, which REXX handles just fine:
>
>  Longstr='blah blah blah blah blah blah blah blah',
> 'blah blah blah blah blah blah blah blah blah'
>
No, that's a single-linee string.  Verify that with:
SAY Longstr

>And your second wish is surely not significantly different from:
>
>  list='ssn ssx stm wcn wcx wln wlx wld'
>  do while list<>''
>parse var list val list
>/* etc */
>
>...which I do frequently.
>
Style.  The loop setup, iteration, and termination should be part of the DO,
even s I woulfn't code:
I = 1
DO WHILE I <= 10
whatever
I = I + 1
END

-- gil

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


Re: Coding for the future

2021-06-24 Thread Paul Gilmartin
On Tue, 22 Jun 2021 11:23:41 +, Seymour J Metz  wrote:

>Yes, I know that TSO support requires heavy lifting, and not just for fopen().
> 
What else?

Would a build of OoRexx without fopen() be useful?

(bI've long wished that catalogued data sets could routinely be mounted
via NFS so open() would suffice.)

>The problem is that those "more modern" languages don't support the close 
>integration of scripts to applications that REXX supports.
>
Would a port of  OoRexx readily support ADDRESS SYSCALL, ADDRESS SDSF,
ADDRESS ISREDIT, , perhaps using replaceable packages,unmodified?

>
>From: David Crayford [dcrayf...@gmail.com]
>Sent: Tuesday, June 22, 2021 2:45 AM
>
>Never going to happen. I ported ooRexx to z/OS UNIX over a decade ago
>and getting it to work in TSO is a heavy lift. It doesn't use fopen() so
>needs a lot of patching to work with MVS data sets. It's not worth the
>effort. There are better, more modern languages available on z/OS now so
>it's only the diehard REXXers that are interested.

-- gil

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


Re: z/OS SYSVAR looks weird

2021-06-24 Thread Paul Gilmartin
On Mon, 21 Jun 2021 14:35:46 -0700, Charles Mills  wrote:

>Did you read the doc? They are concerned because 77A0 will character compare 
>low to 7790 and mess up peoples' logic. Seems to me if you do character 
>compares on hex data you get what you deserve, but I don't make up the rules.
>
Errr ...
"77A0" < "7790" (EBCDIC)
"77A0" > "7790" (ASCII)

Do they need to specify the CCSID?  (I believe DFSORT provides such an option.)

The doc is probably ASCII-centric.

-- gil

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


Re: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Steve Smith
It appears to me that the way the ISPF SUBMIT command works is that it
writes the member (with current updates) to ISPCTL0, then invokes the TSO
SUBMIT command for that dataset.  Oddly enough, this works even for a
temporary dataset.

sas

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


Re: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Seymour J Metz
No, I'm saying that *if* IBM ships an ISRCMDS table that means that EDIT lets 
ISPF look up the command.

Are you referring to "ISPEXEC foo""? That goes through TSO command processing 
before handing foo off to ISPF, while ADDRESS ISPEXEC "oo" hads of foo dirctly 
to ISPF.

BTW, the text in the manual must have been written in the Paleolithic; it 
mentions CLIST but not REXX.


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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Jeremy Nicoll [jn.ls.mfrm...@letterboxes.org]
Sent: Thursday, June 24, 2021 11:52 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: ISPF Edit: Introduce New SUBMIT Module

On Thu, 24 Jun 2021, at 16:38, Seymour J Metz wrote:
> Is there an ISRCMDS tables? If so, that's how EDIT recognizes its
> command.

Are you sure?  You're saying that ispf edit presents the panel then
doesn't immediately process the command line to parse its own
valid commands?

Or does it (if such a command table exists) set each internal cmd
to ... trying to remember ... "PASSTHRU" is it?

Why would it introduce an extra layer of command processing for
its own commands?


> Also it's valid to specify SELECT PGM(foo) in a command table.

That's why I said "or programs" in

  "other commands (ie clists, rexx execs or tso command processors)
   or programs "

meaning either select cmd() or select pgm().

A lot of people, in my recollection, assumed that select cmd() could
not pass control to a load module, whereas it could ... if that was a
(tso) command processor.

--
Jeremy Nicoll - my opinions are my own.

--
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: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Seymour J Metz
What kind of PLIST does the program expect? What was the full message?

Are you saying that an entry of SELECT CMD($MD) called SUB? What was the table 
name?


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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
David Spiegel [dspiegel...@hotmail.com]
Sent: Thursday, June 24, 2021 11:53 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: ISPF Edit: Introduce New SUBMIT Module

Hi R'Shmuel AMV"SH,
I tried PGM(foo) and got ABEND 66D Code 02.
I tried CMD(foo), but, that gave me the TSO "version" of SUBMIT,
including a prompt for DSNAME.

What I really want is to invoke foo the same way that ISPF
EDIT/VIEW/BROWSE invokes SUBMIT. That is, it SUBMITs what the user is
EDITin/BROWSEing/VIEWing.

Thanks and regards,
David

On 2021-06-24 11:38, Seymour J Metz wrote:
> Is there an ISRCMDS tables? If so, that's how EDIT recognizes its command. 
> Also it's valid to specify SELECT PGM(foo) in a command table.
>
>
> --
> Shmuel (Seymour J.) Metz
> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmason.gmu.edu%2F~smetz3data=04%7C01%7C%7C8f10a8dd8c93401a105908d937263722%7C84df9e7fe9f640afb435%7C1%7C0%7C637601459577261428%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000sdata=WD9bJTFgTb9vqcu1%2BTDsYFSUiiFTlOskqq8j%2BHMfg9c%3Dreserved=0
>
> 
> From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
> Jeremy Nicoll [jn.ls.mfrm...@letterboxes.org]
> Sent: Thursday, June 24, 2021 10:07 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: ISPF Edit: Introduce New SUBMIT Module
>
> On Thu, 24 Jun 2021, at 14:55, David Spiegel wrote:
>> Hi Jeremy,
>> I have an existing RYO SUBMIT Assembler program.
>> (Also, without Control Block chasing, I have not a way to access RPLRBAR
>> (for Job Number).)
> How does that answer my question?
>
> Why would you not wrap your existing code in just enough ispf macro
> assembler to make it work?
>
>
> I noticed that other people talked about ispf command table processing
> in answer to your question about how ispf recognises a "submit" command,
> but I'm under-convinced that command tables are relevant.  Surely ispf edit
> recognises all its command line commands because it parses the command
> line to determine what it's being asked to do?
>
> Command tables are (or used to be) only for starting other commands (ie
> clists, rexx execs or tso command processors) or programs from any ispf
> command line on arbitrary panels in any application.  Eg the "tso" that one
> can type before a tso command on a commandline executes a "select ..."
> via a command-table definition (or it used to).
>
> --
> Jeremy Nicoll - my opinions are my own.
>
> --
> 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

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


New to DFSMS? New to DFSMShsm? Education!

2021-06-24 Thread Lisa Gundy
If you are new to DFSMS or have employees that are looking for DFSMS basic 
information, refer them to the recordings from our November 2020 DFSMS Academy 
event.  It was a 3 day event that offered several sessions on DFSMS topics.  

The link to those recordings are here:  
https://ibm.box.com/s/w2jpq95ydynpztbjwdplw3l0hoipl0i8

If you are familiar with DFSMS but need some details on the DFSMShsm (HSM) 
functionality, then you may be interested in the recordings from our DFSMShsm 
Series event.  

The link to those recordings are here:  
https://ibm.box.com/v/DFSMS-Academ-DFSMShsm2021

To be informed of future events offered by the z/OS DFSMS Academy or events 
offered by the parent z/OS Academy, follow the 'New to z' community, and follow 
DFSMS on LinkedIn!

The link to the New to Z community is here:  
https://community.ibm.com/community/user/ibmz-and-linuxone/groups/group-home/library?communitykey=53d759c6-31ad-4ebd-b518-0696ea821f14=group-library=2.
 

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


Re: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread David Spiegel

Hi R'Shmuel AMV"SH,
I tried PGM(foo) and got ABEND 66D Code 02.
I tried CMD(foo), but, that gave me the TSO "version" of SUBMIT, 
including a prompt for DSNAME.


What I really want is to invoke foo the same way that ISPF 
EDIT/VIEW/BROWSE invokes SUBMIT. That is, it SUBMITs what the user is 
EDITin/BROWSEing/VIEWing.


Thanks and regards,
David

On 2021-06-24 11:38, Seymour J Metz wrote:

Is there an ISRCMDS tables? If so, that's how EDIT recognizes its command. Also 
it's valid to specify SELECT PGM(foo) in a command table.


--
Shmuel (Seymour J.) Metz
https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmason.gmu.edu%2F~smetz3data=04%7C01%7C%7C8f10a8dd8c93401a105908d937263722%7C84df9e7fe9f640afb435%7C1%7C0%7C637601459577261428%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000sdata=WD9bJTFgTb9vqcu1%2BTDsYFSUiiFTlOskqq8j%2BHMfg9c%3Dreserved=0


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Jeremy Nicoll [jn.ls.mfrm...@letterboxes.org]
Sent: Thursday, June 24, 2021 10:07 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: ISPF Edit: Introduce New SUBMIT Module

On Thu, 24 Jun 2021, at 14:55, David Spiegel wrote:

Hi Jeremy,
I have an existing RYO SUBMIT Assembler program.
(Also, without Control Block chasing, I have not a way to access RPLRBAR
(for Job Number).)

How does that answer my question?

Why would you not wrap your existing code in just enough ispf macro
assembler to make it work?


I noticed that other people talked about ispf command table processing
in answer to your question about how ispf recognises a "submit" command,
but I'm under-convinced that command tables are relevant.  Surely ispf edit
recognises all its command line commands because it parses the command
line to determine what it's being asked to do?

Command tables are (or used to be) only for starting other commands (ie
clists, rexx execs or tso command processors) or programs from any ispf
command line on arbitrary panels in any application.  Eg the "tso" that one
can type before a tso command on a commandline executes a "select ..."
via a command-table definition (or it used to).

--
Jeremy Nicoll - my opinions are my own.

--
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: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Jeremy Nicoll
On Thu, 24 Jun 2021, at 16:38, Seymour J Metz wrote:
> Is there an ISRCMDS tables? If so, that's how EDIT recognizes its 
> command. 

Are you sure?  You're saying that ispf edit presents the panel then
doesn't immediately process the command line to parse its own 
valid commands?

Or does it (if such a command table exists) set each internal cmd 
to ... trying to remember ... "PASSTHRU" is it?  

Why would it introduce an extra layer of command processing for 
its own commands?


> Also it's valid to specify SELECT PGM(foo) in a command table.

That's why I said "or programs" in 

  "other commands (ie clists, rexx execs or tso command processors) 
   or programs "

meaning either select cmd() or select pgm().

A lot of people, in my recollection, assumed that select cmd() could 
not pass control to a load module, whereas it could ... if that was a 
(tso) command processor.

-- 
Jeremy Nicoll - my opinions are my own.

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


Re: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Sri h Kolusu
> I need help to figure out how to add a new Primary Command to ISPF Edit,
> so that I can test a RYO SUBMIT Command written in Assembler.

David,

Define your own command table using the ISPF Command Table Utility aka 3.9

https://www.ibm.com/docs/en/zos/2.4.0?topic=commands-using-command-tables-define

Bruce Koss presented at share about how to add your own commands to the
command table

https://share.confex.com/share/119/webprogram/Handout/Session11559/11559%20-%20An%20Experienced%20ISPF%20User%20Shares%20his%20Secrets.pdf

Thanks,
Kolusu

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


Re: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Seymour J Metz
Is there an ISRCMDS tables? If so, that's how EDIT recognizes its command. Also 
it's valid to specify SELECT PGM(foo) in a command table.


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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Jeremy Nicoll [jn.ls.mfrm...@letterboxes.org]
Sent: Thursday, June 24, 2021 10:07 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: ISPF Edit: Introduce New SUBMIT Module

On Thu, 24 Jun 2021, at 14:55, David Spiegel wrote:
> Hi Jeremy,
> I have an existing RYO SUBMIT Assembler program.
> (Also, without Control Block chasing, I have not a way to access RPLRBAR
> (for Job Number).)

How does that answer my question?

Why would you not wrap your existing code in just enough ispf macro
assembler to make it work?


I noticed that other people talked about ispf command table processing
in answer to your question about how ispf recognises a "submit" command,
but I'm under-convinced that command tables are relevant.  Surely ispf edit
recognises all its command line commands because it parses the command
line to determine what it's being asked to do?

Command tables are (or used to be) only for starting other commands (ie
clists, rexx execs or tso command processors) or programs from any ispf
command line on arbitrary panels in any application.  Eg the "tso" that one
can type before a tso command on a commandline executes a "select ..."
via a command-table definition (or it used to).

--
Jeremy Nicoll - my opinions are my own.

--
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: IGGCSI00

2021-06-24 Thread Ituriel do Neto
 Mr Scott,
Thank you for the tips.It solved my problem.
Best Regards

Ituriel do Nascimento Neto z/OS System Programmer
Em quinta-feira, 24 de junho de 2021 09:54:04 BRT, Rob Scott 
 escreveu:  
 
 This is what I have coded in the past :

(o) Setting up CSIFIELD

CSIFILTK                Your usercat name
CSICATNM              Your mastercat name
CSIOPTNS                "F" for fullword values
CSIS1CAT                "Y" just one catalog
CSINUMEN              Set to 1 field
CSIENTS        Set to "NAME"

(o) Returned area looks like :

IGGCSIWH            (Header)
IGGCSIWC            (Catalog)
IGGCSIWE            (Usercat entry)

(o) If CSIEDATA is ON and CSIFDDAT is not NULL then divide CSILENF1 by maximum 
alias length (44) to get the number of aliases.


Rob Scott
Rocket Software

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Ituriel do Neto
Sent: 24 June 2021 13:33
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: IGGCSI00

EXTERNAL EMAIL





Hi all,
I'm coding a new program that will get information from Usercatalogs using 
IGGCSI00 API,but i'm stuck trying to reproduce IDCAMS command LISTCAT ENT(UCAT) 
ALL.
Actually, i am interested in obtaining the number of ALIAS a specific UCAT has, 
and this IDCAMS commandshows that information, i just have to count it.

IDCAMS  SYSTEM SERVICES                                                  
LISTCAT ENT(UCAT.XXX) ALL        USERCATALOG --- UCAT.XXX                IN-CAT 
--- CATALOG.MASTER      HISTORY                              
RELEASE2          VOLUMES                              
VOLSERVV          ASSOCIATIONS                          
ALIASXX01                      ALIASXX02                      
ALIASXX03
I can get this ALIAS information from MCAT but i want to make a smarter 
code.Could some of you, gurus, point me to the right values of CSICATNM, 
CSIFILTK, CSIDTYPS ?
Thanks in advance

Best Regards
Ituriel do Nascimento Netoz/OS System Programmer

--
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
  

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


Re: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Jeremy Nicoll
On Thu, 24 Jun 2021, at 14:55, David Spiegel wrote:
> Hi Jeremy,
> I have an existing RYO SUBMIT Assembler program.
> (Also, without Control Block chasing, I have not a way to access RPLRBAR 
> (for Job Number).)

I should have added to my previous answer:

- depending on how you've written your RYO submit, it might 
  already (almost) work if you merely invoke it by preceding  
  its member name with a "!" (as one has to for assembler - 
  or I guess more properly - load module macros).

- How does your RYO solution access the contents of an edit
  or view file buffer without (already) using ispf services via 
  isplink or ispexec?

- ISTR you wanted to TPUT info to the screen?  Why would you 
  do that when instead you could use SETMSG to display it in
  a standard ispf message? 

-- 
Jeremy Nicoll - my opinions are my own.

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


Re: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Jeremy Nicoll
On Thu, 24 Jun 2021, at 14:55, David Spiegel wrote:
> Hi Jeremy,
> I have an existing RYO SUBMIT Assembler program.
> (Also, without Control Block chasing, I have not a way to access RPLRBAR 
> (for Job Number).)

How does that answer my question?

Why would you not wrap your existing code in just enough ispf macro 
assembler to make it work? 


I noticed that other people talked about ispf command table processing
in answer to your question about how ispf recognises a "submit" command,
but I'm under-convinced that command tables are relevant.  Surely ispf edit
recognises all its command line commands because it parses the command 
line to determine what it's being asked to do?

Command tables are (or used to be) only for starting other commands (ie
clists, rexx execs or tso command processors) or programs from any ispf
command line on arbitrary panels in any application.  Eg the "tso" that one 
can type before a tso command on a commandline executes a "select ..."
via a command-table definition (or it used to).
  
-- 
Jeremy Nicoll - my opinions are my own.

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


Re: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread David Spiegel

Hi Jeremy,
I have an existing RYO SUBMIT Assembler program.
(Also, without Control Block chasing, I have not a way to access RPLRBAR 
(for Job Number).)


Regards,
David

On 2021-06-24 09:50, Jeremy Nicoll wrote:

On Thu, 24 Jun 2021, at 03:25, David Spiegel wrote:

Hi,
I need help to figure out how to add a new Primary Command to ISPF Edit,
so that I can test a RYO SUBMIT Command written in Assembler.
Let's assume that my module is called $UBMIT (with an ALIAS of $UB).
I do not want to write an Edit Macro to do this. (I already wrote one of
these). nor do want to invoke an Edit Macro which will call the Command
Processor.

Why precisely is an edit macro not an adequate solution, if you write it in
assembler?



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


Re: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Jeremy Nicoll
On Thu, 24 Jun 2021, at 03:25, David Spiegel wrote:
> Hi,
> I need help to figure out how to add a new Primary Command to ISPF Edit, 
> so that I can test a RYO SUBMIT Command written in Assembler.
> Let's assume that my module is called $UBMIT (with an ALIAS of $UB).

> I do not want to write an Edit Macro to do this. (I already wrote one of 
> these). nor do want to invoke an Edit Macro which will call the Command 
> Processor.

Why precisely is an edit macro not an adequate solution, if you write it in 
assembler?

-- 
Jeremy Nicoll - my opinions are my own.

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


Re: Coding for the future

2021-06-24 Thread Jeremy Nicoll
On Thu, 24 Jun 2021, at 01:57, David Crayford wrote:

> For example, to create and ISPF in Lua you instantiate and ISPF object 
> and then communicate with it by calling methods 
> https://lua4z.github.io/Lua4z/modules/ispf.html.

That shows eg that you can invoke ispf edit via lua.  But can you use lua
to tell ispf edit to run a macro (written in lua) and can that macro issue
ispf editor commands, and also display ispf panels (eg to find out what
the macro should do or display its results) and issue tso commands?

How about replacing REXX in eg Netview?

-- 
Jeremy Nicoll - my opinions are my own.

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


Re: Coding for the future

2021-06-24 Thread Seymour J Metz
That wiki article describes exactly the mechanism I was referring to.


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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
David Crayford [dcrayf...@gmail.com]
Sent: Thursday, June 24, 2021 9:29 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Coding for the future

On 24/06/2021 8:51 pm, Seymour J Metz wrote:
> The only meaning that I'm familiar with is the one that I get on a search for 
> 'callback definition programming'. Or were you thinking of a non-computer 
> contest?

Callback is is a well known pattern
https://secure-web.cisco.com/1QSdJn1tHFo3fLnTHXKVuzco3ZyGmLW-vJIU-4BgBoJ6fnHEdkkNxvL7PgoLaBvpo0I8lemVuZ75OvusonUGyzxr1CV5i0Ww9nI1WZn3XFUso-xHRUl4FLtHqIGQqw0Q_U0FyxioHkGZUHg_5CwjKzl7I0tSi7y6qWdIvgG-u6fxFAJDUmIM6B1NKqqUXSHjK-SbQJOj1LAnHqNpTKdZueBEe6xZ9T-X0sazYHQQzyDEkdghGd_v8hwKJ7IfhJ7j1z1QOgZGFloyGsbaWtcL4yQWVqdTdPB-maTaKnYn8_7KxGVM-0zYdM0dYs9fgNJrebgDY_x4uksThdeKPMJSSwPBBYhutBegj1RG3PDcP8QFP8fy0xl-4EbJYe09lNW4C3k_VT77137C2DdIGZNS34cvFYUaPMP7R3M8AsTnOYZIOUKJsFvX4d4YJ6TXIaneJ/https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FCallback_%28computer_programming)

The ,array class goes all the way back to OREXX in OS/2. 5.0 adds a
regex class, but it doesn't support captures, and I rely on them heav

I must admit I don't really care

> --
> Shmuel (Seymour J.) Metz
> http://mason.gmu.edu/~smetz3
>
> 
> From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
> David Crayford [dcrayf...@gmail.com]
> Sent: Thursday, June 24, 2021 5:00 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Coding for the future
>
> On 24/06/2021 9:23 am, Seymour J Metz wrote:
>> You invoke ISPF. You call a REXX script for ISPF. The script does ADDRESS 
>> ISPEXEC foo and ISPF gets control back. It's well documented in the TSO/E 
>> REXX Reference, and other implementations have essentially the same API. 
>> Basically, when a REXX-aware application creates an environment, REXX 
>> associates context with the environment name; when a REXX script routes a 
>> command to that environment, the environment block contains the context so 
>> that the application can locate its control blocks. It's quite elegant, and 
>> REXX does all of the heavy lifting.
> Yes, I'm familiar with the environment block as I have used IRXSUBCM to
> create host command environments. In my case I had to use CEEPIPI to
> create an LE environment for the C++ regex library. The environment
> block has a user context pointer which is very useful. I was confused by
> the term "call-back" which means something quite different to me.
>
>
>> On the flip side, prior to OREXX everything was a string; there was no type 
>> checking, only value testing. Also, the exception handling is fragile 
>> compared to PL/I, Python or Ruby.
> I noticed that ooRexx v5 has introduced array types which is long
> overdue. Stem variables are hash tables so performance is not great when
> iterating.
>
>
>>
>> --
>> Shmuel (Seymour J.) Metz
>> http://mason.gmu.edu/~smetz3
>>
>> 
>> From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
>> David Crayford [dcrayf...@gmail.com]
>> Sent: Wednesday, June 23, 2021 8:57 PM
>> To: IBM-MAIN@LISTSERV.UA.EDU
>> Subject: Re: Coding for the future
>>
>> Maybe I'm missing a subtlety here but can you demonstrate how REXX uses
>> callbacks on z/OS? I'm familar with command environments, I've written
>> one for REXX regex 
>> https://secure-web.cisco.com/140q8fxdqURUGvmth2nK_lOrDPN09AtW0cBfgGnzMZm6MOvOho-HriWxdOrBSwiPotV2P6kacF9rpRwTORQsYeHqbOlnMFxHuUDYsjYnWlk0z0sR7CYhLEzIyd-DL6yuI6IRotLmLhmT3RbCQk9-VO0E6-NE3tyAdm1jgxYV9K6GosVOwG_tqv0j_Iv7TeRrCoUvhQ5ZNmnH2N9gR8CjU9xFydEZWlX1Y702G19rTTW9fV0qRkhU5kTGg16f16KMPIZbaB7Cqk0evdWJylMOkSMkIA5PECEmFeyiQXvrOBE2LDvGMC16AK6OZg5xdnzeWpSgm_g5F-nCgOQjteQ_82RUkquwXW_WqLZq0S0yXoz4PpyFEFJrpl2iZboK4FhuXZdrvui3BqiSrz0nKNJYIXUNRpVzfCH02p2xcc1Oqa0Lrndw3QSeal5ZFf3sRqGP-/https%3A%2F%2Fgithub.com%2Fdaveyc%2FRTK.
>>  In Python, Lua etc you
>> would just create an instance of a class an communicate using message
>> passing like any OO language.
>> For example, to create and ISPF in Lua you instantiate and ISPF object
>> and then communicate with it by calling methods
>> https://secure-web.cisco.com/1qsEFCKQQ8_UfI8nvAPUHIHUMRsk8zVcv8tyCsWKzPB5x6Iqcinh6eFRTvMYUE_fu4U_RlstYoTVGhhME8x92IIYlUFy0AvsQ_osnJyM5U0ASEu77n43wTA2l6-3XA99vaRmgsICvmmQW_Wlc1RO5W5SsL6uXFqvGMNSV5d2Swy6V131ckAPNDw9a-BsfYVkO5DRvOINNh9iJZqVw466fpXNjZh1CsFmaMQcpIvnXTnndqgbQwZw4yzPuxvmWTf__4ssShTUeQnjYxO6gcW4YsvpHhQslzGOP7V45e2SIHjYK3A2EGLp3hyelRfJG9gh3h0qFBX_1a5X08xba0wB0HwMXf4VyHIzAvI5LKoqvrMA90FsZq4h6TMxefXsiXKHALdxZV9djrJXqln73WhSCoaNFiVgG9C-wOFEwYW7bB12UrfhpL6v1ZJ3Hxudjq_4kHxQJuH7g6y4Brb90haU3vA/https%3A%2F%2Flua4z.github.io%2FLua4z%2Fmodules%2Fispf.html.
>>
>>
>> On 23/06/2021 7:04 pm, Seymour J Metz wrote:
>>> Allow applications to 

Re: Coding for the future

2021-06-24 Thread David Crayford

On 24/06/2021 8:51 pm, Seymour J Metz wrote:

The only meaning that I'm familiar with is the one that I get on a search for 
'callback definition programming'. Or were you thinking of a non-computer 
contest?


Callback is is a well known pattern 
https://en.wikipedia.org/wiki/Callback_(computer_programming)


The ,array class goes all the way back to OREXX in OS/2. 5.0 adds a 
regex class, but it doesn't support captures, and I rely on them heav


I must admit I don't really care


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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
David Crayford [dcrayf...@gmail.com]
Sent: Thursday, June 24, 2021 5:00 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Coding for the future

On 24/06/2021 9:23 am, Seymour J Metz wrote:

You invoke ISPF. You call a REXX script for ISPF. The script does ADDRESS 
ISPEXEC foo and ISPF gets control back. It's well documented in the TSO/E REXX 
Reference, and other implementations have essentially the same API. Basically, 
when a REXX-aware application creates an environment, REXX associates context 
with the environment name; when a REXX script routes a command to that 
environment, the environment block contains the context so that the application 
can locate its control blocks. It's quite elegant, and REXX does all of the 
heavy lifting.

Yes, I'm familiar with the environment block as I have used IRXSUBCM to
create host command environments. In my case I had to use CEEPIPI to
create an LE environment for the C++ regex library. The environment
block has a user context pointer which is very useful. I was confused by
the term "call-back" which means something quite different to me.



On the flip side, prior to OREXX everything was a string; there was no type 
checking, only value testing. Also, the exception handling is fragile compared 
to PL/I, Python or Ruby.

I noticed that ooRexx v5 has introduced array types which is long
overdue. Stem variables are hash tables so performance is not great when
iterating.




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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
David Crayford [dcrayf...@gmail.com]
Sent: Wednesday, June 23, 2021 8:57 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Coding for the future

Maybe I'm missing a subtlety here but can you demonstrate how REXX uses
callbacks on z/OS? I'm familar with command environments, I've written
one for REXX regex 
https://secure-web.cisco.com/140q8fxdqURUGvmth2nK_lOrDPN09AtW0cBfgGnzMZm6MOvOho-HriWxdOrBSwiPotV2P6kacF9rpRwTORQsYeHqbOlnMFxHuUDYsjYnWlk0z0sR7CYhLEzIyd-DL6yuI6IRotLmLhmT3RbCQk9-VO0E6-NE3tyAdm1jgxYV9K6GosVOwG_tqv0j_Iv7TeRrCoUvhQ5ZNmnH2N9gR8CjU9xFydEZWlX1Y702G19rTTW9fV0qRkhU5kTGg16f16KMPIZbaB7Cqk0evdWJylMOkSMkIA5PECEmFeyiQXvrOBE2LDvGMC16AK6OZg5xdnzeWpSgm_g5F-nCgOQjteQ_82RUkquwXW_WqLZq0S0yXoz4PpyFEFJrpl2iZboK4FhuXZdrvui3BqiSrz0nKNJYIXUNRpVzfCH02p2xcc1Oqa0Lrndw3QSeal5ZFf3sRqGP-/https%3A%2F%2Fgithub.com%2Fdaveyc%2FRTK.
 In Python, Lua etc you
would just create an instance of a class an communicate using message
passing like any OO language.
For example, to create and ISPF in Lua you instantiate and ISPF object
and then communicate with it by calling methods
https://secure-web.cisco.com/1qsEFCKQQ8_UfI8nvAPUHIHUMRsk8zVcv8tyCsWKzPB5x6Iqcinh6eFRTvMYUE_fu4U_RlstYoTVGhhME8x92IIYlUFy0AvsQ_osnJyM5U0ASEu77n43wTA2l6-3XA99vaRmgsICvmmQW_Wlc1RO5W5SsL6uXFqvGMNSV5d2Swy6V131ckAPNDw9a-BsfYVkO5DRvOINNh9iJZqVw466fpXNjZh1CsFmaMQcpIvnXTnndqgbQwZw4yzPuxvmWTf__4ssShTUeQnjYxO6gcW4YsvpHhQslzGOP7V45e2SIHjYK3A2EGLp3hyelRfJG9gh3h0qFBX_1a5X08xba0wB0HwMXf4VyHIzAvI5LKoqvrMA90FsZq4h6TMxefXsiXKHALdxZV9djrJXqln73WhSCoaNFiVgG9C-wOFEwYW7bB12UrfhpL6v1ZJ3Hxudjq_4kHxQJuH7g6y4Brb90haU3vA/https%3A%2F%2Flua4z.github.io%2FLua4z%2Fmodules%2Fispf.html.


On 23/06/2021 7:04 pm, Seymour J Metz wrote:

Allow applications to establish environments for scripts (ADDRESS) , allow 
call-backs from within scripts and access the variables of the scripts. I wish 
that I could do that from within Perl, although I'd take the time to learn 
Python or Ruby if they supported that.


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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
David Crayford [dcrayf...@gmail.com]
Sent: Wednesday, June 23, 2021 3:19 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Coding for the future

On 23/06/2021 10:38 am, Seymour J Metz wrote:

None of those are relevant to what REXX does best. Again, it's the plumbing, 
not the syntactic sugar.

What exactly does REXX do best? What does it do better than Python?



As to large applications, I believe that there are some pretty big ones in Perl 
and REXX, so why should I be surprised by large applications in, e.g., Python, 
Ruby?


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


Re: TCDB entry in RMM

2021-06-24 Thread Radoslaw Skorupka

W dniu 24.06.2021 o 06:48, Peter pisze:

Hello

When I added virtual volume in RMM, I don't see the TCDB getting updated.

Is there any parameter I need to change?

zOS 2.4


1. Is it IBM library?
2. How did you check volume entry? Did you remember about V?

--
Radoslaw Skorupka
Lodz, Poland

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


Re: Coding for the future

2021-06-24 Thread Seymour J Metz
No, I'm saying that the second script is a more expensive version of the first.

'ADDRESS foo bar' evaluates bar and passes it to the foo environment. If you 
omit the command, then 'ADDRESS foo' just sets the default environment to foo. 
Commands in the ISPEXEC and ISREDIT environments go to ISPF and ISPF EDIT; they 
are not TSO commands. There are ISPEXEC and ISREDIT commands for the benefit of 
those writing in CLIST and you don't need them for REXX. A faster verbose form 
is:

/* rexx */
ADDRESS ISPEXEC "FTOPEN TEMP"
ADDRESS ISPEXEC "FTINCL SOMEJCL"
ADDRESS ISPEXEC "FTCLOSE"
ADDRESS ISPEXEC "VGET (ZTEMPF)"
ADDRESS TSO
say ztempf

I see the use of unquoted symbols as one of the strengths of REXX, when used 
sensibly. But quoting everything certainly does no harm, and might be 
marginally faster.


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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Tom 
Brennan [t...@tombrennansoftware.com]
Sent: Wednesday, June 23, 2021 10:01 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Coding for the future

Ok (probably just for me), so you're saying the two scripts below work
quite differently from each other?  I always assumed all ADDRESS did was
save someone from having to type ISPEXEC over and over.  I think you're
saying the statements after ADDRESS actually run under control of ISPF
instead of calling each routine separately via TSO.

I guess I need to open the manual if I wasn't so lazy :)  Plus, I don't
think I ever coded ADDRESS - it always seemed clearer to repeatedly code
ISPEXEC (or whatever) to avoid any confusion later.

/* rexx */
ADDRESS ISPEXEC
"FTOPEN TEMP"
"FTINCL SOMEJCL"
"FTCLOSE"
"VGET (ZTEMPF)"
ADDRESS TSO
say ztempf

/* rexx */
"ISPEXEC FTOPEN TEMP"
"ISPEXEC FTINCL SOMEJCL"
"ISPEXEC FTCLOSE"
"ISPEXEC VGET (ZTEMPF)"
say ztempf

I also had a habit of leaving out the double quotes I typed above, but I
think that's another side road for this thread, which I'm learning a lot
from.

On 6/23/2021 6:23 PM, Seymour J Metz wrote:
> You invoke ISPF. You call a REXX script for ISPF. The script does ADDRESS 
> ISPEXEC foo and ISPF gets control back. It's well documented in the TSO/E 
> REXX Reference, and other implementations have essentially the same API. 
> Basically, when a REXX-aware application creates an environment, REXX 
> associates context with the environment name; when a REXX script routes a 
> command to that environment, the environment block contains the context so 
> that the application can locate its control blocks. It's quite elegant, and 
> REXX does all of the heavy lifting.
>
> On the flip side, prior to OREXX everything was a string; there was no type 
> checking, only value testing. Also, the exception handling is fragile 
> compared to PL/I, Python or Ruby.
>
>
> --
> Shmuel (Seymour J.) Metz
> http://mason.gmu.edu/~smetz3
>
> 
> From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
> David Crayford [dcrayf...@gmail.com]
> Sent: Wednesday, June 23, 2021 8:57 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Coding for the future
>
> Maybe I'm missing a subtlety here but can you demonstrate how REXX uses
> callbacks on z/OS? I'm familar with command environments, I've written
> one for REXX regex 
> https://secure-web.cisco.com/140q8fxdqURUGvmth2nK_lOrDPN09AtW0cBfgGnzMZm6MOvOho-HriWxdOrBSwiPotV2P6kacF9rpRwTORQsYeHqbOlnMFxHuUDYsjYnWlk0z0sR7CYhLEzIyd-DL6yuI6IRotLmLhmT3RbCQk9-VO0E6-NE3tyAdm1jgxYV9K6GosVOwG_tqv0j_Iv7TeRrCoUvhQ5ZNmnH2N9gR8CjU9xFydEZWlX1Y702G19rTTW9fV0qRkhU5kTGg16f16KMPIZbaB7Cqk0evdWJylMOkSMkIA5PECEmFeyiQXvrOBE2LDvGMC16AK6OZg5xdnzeWpSgm_g5F-nCgOQjteQ_82RUkquwXW_WqLZq0S0yXoz4PpyFEFJrpl2iZboK4FhuXZdrvui3BqiSrz0nKNJYIXUNRpVzfCH02p2xcc1Oqa0Lrndw3QSeal5ZFf3sRqGP-/https%3A%2F%2Fgithub.com%2Fdaveyc%2FRTK.
>  In Python, Lua etc you
> would just create an instance of a class an communicate using message
> passing like any OO language.
> For example, to create and ISPF in Lua you instantiate and ISPF object
> and then communicate with it by calling methods
> https://secure-web.cisco.com/1qsEFCKQQ8_UfI8nvAPUHIHUMRsk8zVcv8tyCsWKzPB5x6Iqcinh6eFRTvMYUE_fu4U_RlstYoTVGhhME8x92IIYlUFy0AvsQ_osnJyM5U0ASEu77n43wTA2l6-3XA99vaRmgsICvmmQW_Wlc1RO5W5SsL6uXFqvGMNSV5d2Swy6V131ckAPNDw9a-BsfYVkO5DRvOINNh9iJZqVw466fpXNjZh1CsFmaMQcpIvnXTnndqgbQwZw4yzPuxvmWTf__4ssShTUeQnjYxO6gcW4YsvpHhQslzGOP7V45e2SIHjYK3A2EGLp3hyelRfJG9gh3h0qFBX_1a5X08xba0wB0HwMXf4VyHIzAvI5LKoqvrMA90FsZq4h6TMxefXsiXKHALdxZV9djrJXqln73WhSCoaNFiVgG9C-wOFEwYW7bB12UrfhpL6v1ZJ3Hxudjq_4kHxQJuH7g6y4Brb90haU3vA/https%3A%2F%2Flua4z.github.io%2FLua4z%2Fmodules%2Fispf.html.
>
>
> On 23/06/2021 7:04 pm, Seymour J Metz wrote:
>> Allow applications to establish environments for scripts (ADDRESS) , allow 
>> call-backs from within scripts and access the variables of the scripts. I 
>> wish that I could do that from within Perl, although I'd take the time to 
>> learn 

Re: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Seymour J Metz
Why would it require authorization? Just adding it to the ISPF command table or 
to SELECT on relevant panels should be enough.


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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Lizette Koehler [stars...@mindspring.com]
Sent: Wednesday, June 23, 2021 11:34 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: ISPF Edit: Introduce New SUBMIT Module

Just a guess

But look at SYS1.PARMLIB member IKJTSOxx

Or use the TSO Command

PARMLIB

To see where it exists, what member it is, and what the contents are

You might need to set up something in this member  AUTHCMD  AUTHPGM etc...

Is the module a TSO Command Processor?

https://www.ibm.com/docs/en/zos/2.1.0?topic=reference-tsoe-commands-subcommands

Lizette


-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
David Spiegel
Sent: Wednesday, June 23, 2021 7:25 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: ISPF Edit: Introduce New SUBMIT Module

Hi,
I need help to figure out how to add a new Primary Command to ISPF Edit, so 
that I can test a RYO SUBMIT Command written in Assembler.
Let's assume that my module is called $UBMIT (with an ALIAS of $UB).
I do not want to write an Edit Macro to do this. (I already wrote one of 
these). nor do want to invoke an Edit Macro which will call the Command 
Processor.

(The user will type $UB on the Edit Command Line and use the RYO program 
instead of the IBM-supplied SUB.)

(As an aside, one of the reasons it has to be written in Assembler is so that 
the program can access the INTRDR's RPLRBAR and thereby TPUT the Job Number 
after SUBMIT.)

Another related question: How does ISPF "know" what SUBMIT means?

Thank you in advance,
David

--
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: IGGCSI00

2021-06-24 Thread Rob Scott
This is what I have coded in the past :

(o) Setting up CSIFIELD

CSIFILTKYour usercat name
CSICATNM   Your mastercat name
CSIOPTNS"F" for fullword values
CSIS1CAT "Y" just one catalog
CSINUMEN  Set to 1 field
CSIENTS Set to "NAME"

(o) Returned area looks like :

IGGCSIWH (Header)
IGGCSIWC (Catalog)
IGGCSIWE (Usercat entry)

(o) If CSIEDATA is ON and CSIFDDAT is not NULL then divide CSILENF1 by maximum 
alias length (44) to get the number of aliases.


Rob Scott
Rocket Software

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Ituriel do Neto
Sent: 24 June 2021 13:33
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: IGGCSI00

EXTERNAL EMAIL





Hi all,
I'm coding a new program that will get information from Usercatalogs using 
IGGCSI00 API,but i'm stuck trying to reproduce IDCAMS command LISTCAT ENT(UCAT) 
ALL.
Actually, i am interested in obtaining the number of ALIAS a specific UCAT has, 
and this IDCAMS commandshows that information, i just have to count it.

IDCAMS  SYSTEM SERVICES   
LISTCAT ENT(UCAT.XXX) ALL USERCATALOG --- UCAT.XXX 
IN-CAT --- CATALOG.MASTER  HISTORY   
RELEASE2  VOLUMES   
VOLSERVV  ASSOCIATIONS  
ALIASXX01   ALIASXX02   
ALIASXX03
I can get this ALIAS information from MCAT but i want to make a smarter 
code.Could some of you, gurus, point me to the right values of CSICATNM, 
CSIFILTK, CSIDTYPS ?
Thanks in advance

Best Regards
Ituriel do Nascimento Netoz/OS System Programmer

--
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: Coding for the future

2021-06-24 Thread Seymour J Metz
The only meaning that I'm familiar with is the one that I get on a search for 
'callback definition programming'. Or were you thinking of a non-computer 
contest?

The ,array class goes all the way back to OREXX in OS/2. 5.0 adds a regex 
class, but it doesn't support captures, and I rely on them heavily.


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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
David Crayford [dcrayf...@gmail.com]
Sent: Thursday, June 24, 2021 5:00 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Coding for the future

On 24/06/2021 9:23 am, Seymour J Metz wrote:
> You invoke ISPF. You call a REXX script for ISPF. The script does ADDRESS 
> ISPEXEC foo and ISPF gets control back. It's well documented in the TSO/E 
> REXX Reference, and other implementations have essentially the same API. 
> Basically, when a REXX-aware application creates an environment, REXX 
> associates context with the environment name; when a REXX script routes a 
> command to that environment, the environment block contains the context so 
> that the application can locate its control blocks. It's quite elegant, and 
> REXX does all of the heavy lifting.

Yes, I'm familiar with the environment block as I have used IRXSUBCM to
create host command environments. In my case I had to use CEEPIPI to
create an LE environment for the C++ regex library. The environment
block has a user context pointer which is very useful. I was confused by
the term "call-back" which means something quite different to me.


> On the flip side, prior to OREXX everything was a string; there was no type 
> checking, only value testing. Also, the exception handling is fragile 
> compared to PL/I, Python or Ruby.

I noticed that ooRexx v5 has introduced array types which is long
overdue. Stem variables are hash tables so performance is not great when
iterating.


>
>
> --
> Shmuel (Seymour J.) Metz
> http://mason.gmu.edu/~smetz3
>
> 
> From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
> David Crayford [dcrayf...@gmail.com]
> Sent: Wednesday, June 23, 2021 8:57 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: Coding for the future
>
> Maybe I'm missing a subtlety here but can you demonstrate how REXX uses
> callbacks on z/OS? I'm familar with command environments, I've written
> one for REXX regex 
> https://secure-web.cisco.com/140q8fxdqURUGvmth2nK_lOrDPN09AtW0cBfgGnzMZm6MOvOho-HriWxdOrBSwiPotV2P6kacF9rpRwTORQsYeHqbOlnMFxHuUDYsjYnWlk0z0sR7CYhLEzIyd-DL6yuI6IRotLmLhmT3RbCQk9-VO0E6-NE3tyAdm1jgxYV9K6GosVOwG_tqv0j_Iv7TeRrCoUvhQ5ZNmnH2N9gR8CjU9xFydEZWlX1Y702G19rTTW9fV0qRkhU5kTGg16f16KMPIZbaB7Cqk0evdWJylMOkSMkIA5PECEmFeyiQXvrOBE2LDvGMC16AK6OZg5xdnzeWpSgm_g5F-nCgOQjteQ_82RUkquwXW_WqLZq0S0yXoz4PpyFEFJrpl2iZboK4FhuXZdrvui3BqiSrz0nKNJYIXUNRpVzfCH02p2xcc1Oqa0Lrndw3QSeal5ZFf3sRqGP-/https%3A%2F%2Fgithub.com%2Fdaveyc%2FRTK.
>  In Python, Lua etc you
> would just create an instance of a class an communicate using message
> passing like any OO language.
> For example, to create and ISPF in Lua you instantiate and ISPF object
> and then communicate with it by calling methods
> https://secure-web.cisco.com/1qsEFCKQQ8_UfI8nvAPUHIHUMRsk8zVcv8tyCsWKzPB5x6Iqcinh6eFRTvMYUE_fu4U_RlstYoTVGhhME8x92IIYlUFy0AvsQ_osnJyM5U0ASEu77n43wTA2l6-3XA99vaRmgsICvmmQW_Wlc1RO5W5SsL6uXFqvGMNSV5d2Swy6V131ckAPNDw9a-BsfYVkO5DRvOINNh9iJZqVw466fpXNjZh1CsFmaMQcpIvnXTnndqgbQwZw4yzPuxvmWTf__4ssShTUeQnjYxO6gcW4YsvpHhQslzGOP7V45e2SIHjYK3A2EGLp3hyelRfJG9gh3h0qFBX_1a5X08xba0wB0HwMXf4VyHIzAvI5LKoqvrMA90FsZq4h6TMxefXsiXKHALdxZV9djrJXqln73WhSCoaNFiVgG9C-wOFEwYW7bB12UrfhpL6v1ZJ3Hxudjq_4kHxQJuH7g6y4Brb90haU3vA/https%3A%2F%2Flua4z.github.io%2FLua4z%2Fmodules%2Fispf.html.
>
>
> On 23/06/2021 7:04 pm, Seymour J Metz wrote:
>> Allow applications to establish environments for scripts (ADDRESS) , allow 
>> call-backs from within scripts and access the variables of the scripts. I 
>> wish that I could do that from within Perl, although I'd take the time to 
>> learn Python or Ruby if they supported that.
>>
>>
>> --
>> Shmuel (Seymour J.) Metz
>> http://mason.gmu.edu/~smetz3
>>
>> 
>> From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
>> David Crayford [dcrayf...@gmail.com]
>> Sent: Wednesday, June 23, 2021 3:19 AM
>> To: IBM-MAIN@LISTSERV.UA.EDU
>> Subject: Re: Coding for the future
>>
>> On 23/06/2021 10:38 am, Seymour J Metz wrote:
>>> None of those are relevant to what REXX does best. Again, it's the 
>>> plumbing, not the syntactic sugar.
>> What exactly does REXX do best? What does it do better than Python?
>>
>>
>>> As to large applications, I believe that there are some pretty big ones in 
>>> Perl and REXX, so why should I be surprised by large applications in, e.g., 
>>> Python, Ruby?
>>>
>>>
>>> --
>>> Shmuel (Seymour J.) Metz
>>> http://mason.gmu.edu/~smetz3
>>>
>>> 

Re: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread David Spiegel

Hi R'Shmuel AMV"SH,
I am aware that ISPF EDIT calls SUBMIT.

I want to be able to call a pre-existing Assembler program (which is in 
a PDS ahead of SYS1.CMDLIB  and will be renamed to $UBMIT (thereby 
"exposing" the IBM SUBMIT)) by changing one character of the ISPF 
Primary Command, so that for an interim period, users can use either the 
IBM SUBMIT or the RYO SUBMIT. If all goes well, I am planning to retire 
the RYO SUBMIT after a trial period.


Thanks and regards,
David

On 2021-06-24 08:28, Seymour J Metz wrote:

ISPF EDIT SUBMIT calls TSO SUBMIT. Did you mean that you want to RYO?

It is easy to copy some or all of the data to an internal reader, followed by a 
'/*EOF'. If you need to capture the jobid, a small assembler program can do 
that using the ACB/RPL interface.


--
Shmuel (Seymour J.) Metz
https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmason.gmu.edu%2F~smetz3data=04%7C01%7C%7C66e3e9ba8d374ad1013c08d9370b966f%7C84df9e7fe9f640afb435%7C1%7C0%7C637601345181896421%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000sdata=BkvKEHYwu%2BVSrDCQoAwda4mOndOH0VXjMGGN2FOYLiI%3Dreserved=0


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
David Spiegel [dspiegel...@hotmail.com]
Sent: Thursday, June 24, 2021 6:09 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: ISPF Edit: Introduce New SUBMIT Module

Hi Brian,
I am familiar with the Command Table. I want to set up a command to do
an ISPF Edit SUBMIT, not a TSO SUBMIT. That also means no  for
DSNAME.
That is, SUBMIT what is being EDITd/BROWSEd/VIEWd.

Thanks and regards,
David

On 2021-06-24 02:36, Brian Westerman wrote:

You can call you program anything you want and create a command table entry for 
it.  That way you can leave IBM's submit where it was/is is SYS1.CMDLIB.


i.e. (look in option 3.9 of ISPF) and add

YourCMD  SELECT PGM(yourPGM PRM('')) NEWAPPL(anything)


Then when the user types "yourCMD" it will invoke "yourPGM"

The PRM part is to pass a parm to yopur program, (in case they type "SUBMIT 
'somedataset(member)'".

However, if you call your program SUBMIT then it will work outside of ISPF as well, 
although it will work if you called it yourPGM just as well.  The command table just 
keeps them from having to type "TSO yourPGM" instead of just yourPGM or yourCMD.


In any case, you don't want to replace IBM's submit, you just want to make sure 
that yours is located before IBM's in either a steplib or in a linklist dataset 
that occurs BEFORE sys1.cmdlib.

I think using the name SUBMIT is a really really bad idea, unless you are going 
to create a alias for IBM's submit (maybe call it IBMSUB), so that if need be 
you can use it in case yours fails.

--
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
.


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


IGGCSI00

2021-06-24 Thread Ituriel do Neto
Hi all,
I'm coding a new program that will get information from Usercatalogs using 
IGGCSI00 API,but i'm stuck trying to reproduce IDCAMS command LISTCAT ENT(UCAT) 
ALL.
Actually, i am interested in obtaining the number of ALIAS a specific UCAT has, 
and this IDCAMS commandshows that information, i just have to count it.

IDCAMS  SYSTEM SERVICES                                                   
LISTCAT ENT(UCAT.XXX) ALL         USERCATALOG --- UCAT.XXX                 
IN-CAT --- CATALOG.MASTER      HISTORY                               
RELEASE2          VOLUMES                               
VOLSERVV          ASSOCIATIONS                          
ALIASXX01                       ALIASXX02                       
ALIASXX03                 
I can get this ALIAS information from MCAT but i want to make a smarter 
code.Could some of you, gurus, point me to the right values of CSICATNM, 
CSIFILTK, CSIDTYPS ?
Thanks in advance

Best Regards
Ituriel do Nascimento Netoz/OS System Programmer

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


Re: SDSF SYS command oddity

2021-06-24 Thread Rob Scott
Bob

Please check that you have the PTFs for APAR PH18546 installed as this 
addressed a situation similar to what you describe.

If you still experience the problem with that PTF installed, please report to 
IBM via your normal support process.

Rob Scott
Rocket Software

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Richards, Robert B. (CTR)
Sent: 24 June 2021 12:46
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: SDSF SYS command oddity

EXTERNAL EMAIL





We are in the middle of a first time site switch test where we used CBU to 
increase the MSU capacity of the box to match our production environment. It 
was discovered that Group Capacity had not been set on the box at the alternate 
site, so I rectified that using SAVE and CHANGE running system. So far, so good.

Then late yesterday, my performance guy noticed that the SDSF SYS command had 
not reflected the dynamic change. I suspect that an IPL would clear up the 
discrepancy, but wondered if anyone else had seen this oddity.

Bob

--
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: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Seymour J Metz
ISPF EDIT SUBMIT calls TSO SUBMIT. Did you mean that you want to RYO?

It is easy to copy some or all of the data to an internal reader, followed by a 
'/*EOF'. If you need to capture the jobid, a small assembler program can do 
that using the ACB/RPL interface.


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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
David Spiegel [dspiegel...@hotmail.com]
Sent: Thursday, June 24, 2021 6:09 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: ISPF Edit: Introduce New SUBMIT Module

Hi Brian,
I am familiar with the Command Table. I want to set up a command to do
an ISPF Edit SUBMIT, not a TSO SUBMIT. That also means no  for
DSNAME.
That is, SUBMIT what is being EDITd/BROWSEd/VIEWd.

Thanks and regards,
David

On 2021-06-24 02:36, Brian Westerman wrote:
> You can call you program anything you want and create a command table entry 
> for it.  That way you can leave IBM's submit where it was/is is SYS1.CMDLIB.
>
>
> i.e. (look in option 3.9 of ISPF) and add
>
> YourCMD  SELECT PGM(yourPGM PRM('')) NEWAPPL(anything)
>
>
> Then when the user types "yourCMD" it will invoke "yourPGM"
>
> The PRM part is to pass a parm to yopur program, (in case they type "SUBMIT 
> 'somedataset(member)'".
>
> However, if you call your program SUBMIT then it will work outside of ISPF as 
> well, although it will work if you called it yourPGM just as well.  The 
> command table just keeps them from having to type "TSO yourPGM" instead of 
> just yourPGM or yourCMD.
>
>
> In any case, you don't want to replace IBM's submit, you just want to make 
> sure that yours is located before IBM's in either a steplib or in a linklist 
> dataset that occurs BEFORE sys1.cmdlib.
>
> I think using the name SUBMIT is a really really bad idea, unless you are 
> going to create a alias for IBM's submit (maybe call it IBMSUB), so that if 
> need be you can use it in case yours fails.
>
> --
> 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: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Seymour J Metz
I don't see where the OP is asking for the job number. If he doesn't need it, 
then there's no need for any assembler code.

If he does need the job number, then OUTTRAP won't help, since he doesn't want 
to use SUBMIT. In that case, a small program using ACB/RPL can copy to the 
internal reader and return the jobid. There's probably already something on the 
CBTTAPE that does that.


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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
ITschak Mugzach [imugz...@gmail.com]
Sent: Thursday, June 24, 2021 8:04 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: ISPF Edit: Introduce New SUBMIT Module

In this case I would write a small rexx program to call the assembler. As
it is rexx, the name typed assumed to be a macro. BTW, the problem can
easily be solved by rexx OUTTRAP (to capture the job number).

ITschak

ITschak Mugzach
*|** IronSphere Platform* *|* *Information Security Continuous Monitoring
for z/OS, x/Linux & IBM I **| z/VM coming soon  *




On Thu, Jun 24, 2021 at 2:46 PM Rupert Reynolds  wrote:

> >
> >
> >
> If I read this right, OP is asking for a replacement for the edit SUB
> command, which does some alternative processing before the job is
> submitted, but is basically quite similar to the original SUB.
>
> If a Rexx EDIT macro is not acceptable, my first instinct is to look for a
> zOS exit that runs when writing to the internal reader, or a JES2 exit that
> runs when jobs are submitted (there will be more than 1).
>
> As an alternative, can automation do what's required?
>
> Roops
>
> > .
>
> -Original Message-
> > From: IBM Mainframe Discussion List  On Behalf
> > Of David Spiegel
> > Sent: Thursday, June 24, 2021 5:09 AM
> > To: IBM-MAIN@LISTSERV.UA.EDU
> > Subject: Re: ISPF Edit: Introduce New SUBMIT Module
> >
> > Hi Brian,
> > I am familiar with the Command Table. I want to set up a command to do an
> > ISPF Edit SUBMIT, not a TSO SUBMIT. That also means no  for DSNAME.
> > That is, SUBMIT what is being EDITd/BROWSEd/VIEWd.
> >
> > Thanks and regards,
> > David
> >
> >
> >
>
> --
> 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: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread ITschak Mugzach
In this case I would write a small rexx program to call the assembler. As
it is rexx, the name typed assumed to be a macro. BTW, the problem can
easily be solved by rexx OUTTRAP (to capture the job number).

ITschak

ITschak Mugzach
*|** IronSphere Platform* *|* *Information Security Continuous Monitoring
for z/OS, x/Linux & IBM I **| z/VM coming soon  *




On Thu, Jun 24, 2021 at 2:46 PM Rupert Reynolds  wrote:

> >
> >
> >
> If I read this right, OP is asking for a replacement for the edit SUB
> command, which does some alternative processing before the job is
> submitted, but is basically quite similar to the original SUB.
>
> If a Rexx EDIT macro is not acceptable, my first instinct is to look for a
> zOS exit that runs when writing to the internal reader, or a JES2 exit that
> runs when jobs are submitted (there will be more than 1).
>
> As an alternative, can automation do what's required?
>
> Roops
>
> > .
>
> -Original Message-
> > From: IBM Mainframe Discussion List  On Behalf
> > Of David Spiegel
> > Sent: Thursday, June 24, 2021 5:09 AM
> > To: IBM-MAIN@LISTSERV.UA.EDU
> > Subject: Re: ISPF Edit: Introduce New SUBMIT Module
> >
> > Hi Brian,
> > I am familiar with the Command Table. I want to set up a command to do an
> > ISPF Edit SUBMIT, not a TSO SUBMIT. That also means no  for DSNAME.
> > That is, SUBMIT what is being EDITd/BROWSEd/VIEWd.
> >
> > Thanks and regards,
> > David
> >
> >
> >
>
> --
> 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: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Rupert Reynolds
>
>
>
If I read this right, OP is asking for a replacement for the edit SUB
command, which does some alternative processing before the job is
submitted, but is basically quite similar to the original SUB.

If a Rexx EDIT macro is not acceptable, my first instinct is to look for a
zOS exit that runs when writing to the internal reader, or a JES2 exit that
runs when jobs are submitted (there will be more than 1).

As an alternative, can automation do what's required?

Roops

> .

-Original Message-
> From: IBM Mainframe Discussion List  On Behalf
> Of David Spiegel
> Sent: Thursday, June 24, 2021 5:09 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: ISPF Edit: Introduce New SUBMIT Module
>
> Hi Brian,
> I am familiar with the Command Table. I want to set up a command to do an
> ISPF Edit SUBMIT, not a TSO SUBMIT. That also means no  for DSNAME.
> That is, SUBMIT what is being EDITd/BROWSEd/VIEWd.
>
> Thanks and regards,
> David
>
>
>

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


SDSF SYS command oddity

2021-06-24 Thread Richards, Robert B. (CTR)
We are in the middle of a first time site switch test where we used CBU to 
increase the MSU capacity of the box to match our production environment. It 
was discovered that Group Capacity had not been set on the box at the alternate 
site, so I rectified that using SAVE and CHANGE running system. So far, so good.

Then late yesterday, my performance guy noticed that the SDSF SYS command had 
not reflected the dynamic change. I suspect that an IPL would clear up the 
discrepancy, but wondered if anyone else had seen this oddity.

Bob

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


Re: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Lionel B. Dyck
What you are trying to do is effectively an ISPF Edit Macro that you call $UB, 
and it will work with Edit and View. You can code an edit macro in assembler. 
It is just a load module that would reside in ISPLLIB (or steplib or linklist).


Lionel B. Dyck <><
Website: https://www.lbdsoftware.com
Github: https://github.com/lbdyck

“Worry more about your character than your reputation. Character is what you 
are, reputation merely what others think you are.”   - - - John Wooden

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
David Spiegel
Sent: Thursday, June 24, 2021 5:09 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: ISPF Edit: Introduce New SUBMIT Module

Hi Brian,
I am familiar with the Command Table. I want to set up a command to do an ISPF 
Edit SUBMIT, not a TSO SUBMIT. That also means no  for DSNAME.
That is, SUBMIT what is being EDITd/BROWSEd/VIEWd.

Thanks and regards,
David

On 2021-06-24 02:36, Brian Westerman wrote:
> You can call you program anything you want and create a command table entry 
> for it.  That way you can leave IBM's submit where it was/is is SYS1.CMDLIB.
>
>
> i.e. (look in option 3.9 of ISPF) and add
>
> YourCMD  SELECT PGM(yourPGM PRM('')) NEWAPPL(anything)
>
>
> Then when the user types "yourCMD" it will invoke "yourPGM"
>
> The PRM part is to pass a parm to yopur program, (in case they type "SUBMIT 
> 'somedataset(member)'".
>
> However, if you call your program SUBMIT then it will work outside of ISPF as 
> well, although it will work if you called it yourPGM just as well.  The 
> command table just keeps them from having to type "TSO yourPGM" instead of 
> just yourPGM or yourCMD.
>
>
> In any case, you don't want to replace IBM's submit, you just want to make 
> sure that yours is located before IBM's in either a steplib or in a linklist 
> dataset that occurs BEFORE sys1.cmdlib.
>
> I think using the name SUBMIT is a really really bad idea, unless you are 
> going to create a alias for IBM's submit (maybe call it IBMSUB), so that if 
> need be you can use it in case yours fails.
>
> --
> 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: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Robin Atwood
So write an edit macro to copy the all the lines onto a Rexx stack and use 
"SUBMIT * END(//)" (or similar) to submit it! You can then use OUTTRAP() to 
capture the message from SUBMIT and stop the screen breaking up.

Robin

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
David Spiegel
Sent: 24 June 2021 17:09
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: ISPF Edit: Introduce New SUBMIT Module

Hi Brian,
I am familiar with the Command Table. I want to set up a command to do an ISPF 
Edit SUBMIT, not a TSO SUBMIT. That also means no  for DSNAME.
That is, SUBMIT what is being EDITd/BROWSEd/VIEWd.

Thanks and regards,
David

On 2021-06-24 02:36, Brian Westerman wrote:
> You can call you program anything you want and create a command table entry 
> for it.  That way you can leave IBM's submit where it was/is is SYS1.CMDLIB.
>
>
> i.e. (look in option 3.9 of ISPF) and add
>
> YourCMD  SELECT PGM(yourPGM PRM('')) NEWAPPL(anything)
>
>
> Then when the user types "yourCMD" it will invoke "yourPGM"
>
> The PRM part is to pass a parm to yopur program, (in case they type "SUBMIT 
> 'somedataset(member)'".
>
> However, if you call your program SUBMIT then it will work outside of ISPF as 
> well, although it will work if you called it yourPGM just as well.  The 
> command table just keeps them from having to type "TSO yourPGM" instead of 
> just yourPGM or yourCMD.
>
>
> In any case, you don't want to replace IBM's submit, you just want to make 
> sure that yours is located before IBM's in either a steplib or in a linklist 
> dataset that occurs BEFORE sys1.cmdlib.
>
> I think using the name SUBMIT is a really really bad idea, unless you are 
> going to create a alias for IBM's submit (maybe call it IBMSUB), so that if 
> need be you can use it in case yours fails.
>
> --
> 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: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread David Spiegel

Hi Brian,
I am familiar with the Command Table. I want to set up a command to do 
an ISPF Edit SUBMIT, not a TSO SUBMIT. That also means no  for 
DSNAME.

That is, SUBMIT what is being EDITd/BROWSEd/VIEWd.

Thanks and regards,
David

On 2021-06-24 02:36, Brian Westerman wrote:

You can call you program anything you want and create a command table entry for 
it.  That way you can leave IBM's submit where it was/is is SYS1.CMDLIB.


i.e. (look in option 3.9 of ISPF) and add

YourCMD  SELECT PGM(yourPGM PRM('')) NEWAPPL(anything)


Then when the user types "yourCMD" it will invoke "yourPGM"

The PRM part is to pass a parm to yopur program, (in case they type "SUBMIT 
'somedataset(member)'".

However, if you call your program SUBMIT then it will work outside of ISPF as well, 
although it will work if you called it yourPGM just as well.  The command table just 
keeps them from having to type "TSO yourPGM" instead of just yourPGM or yourCMD.


In any case, you don't want to replace IBM's submit, you just want to make sure 
that yours is located before IBM's in either a steplib or in a linklist dataset 
that occurs BEFORE sys1.cmdlib.

I think using the name SUBMIT is a really really bad idea, unless you are going 
to create a alias for IBM's submit (maybe call it IBMSUB), so that if need be 
you can use it in case yours fails.

--
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: Coding for the future

2021-06-24 Thread David Crayford

On 24/06/2021 9:23 am, Seymour J Metz wrote:

You invoke ISPF. You call a REXX script for ISPF. The script does ADDRESS 
ISPEXEC foo and ISPF gets control back. It's well documented in the TSO/E REXX 
Reference, and other implementations have essentially the same API. Basically, 
when a REXX-aware application creates an environment, REXX associates context 
with the environment name; when a REXX script routes a command to that 
environment, the environment block contains the context so that the application 
can locate its control blocks. It's quite elegant, and REXX does all of the 
heavy lifting.


Yes, I'm familiar with the environment block as I have used IRXSUBCM to 
create host command environments. In my case I had to use CEEPIPI to 
create an LE environment for the C++ regex library. The environment 
block has a user context pointer which is very useful. I was confused by 
the term "call-back" which means something quite different to me.




On the flip side, prior to OREXX everything was a string; there was no type 
checking, only value testing. Also, the exception handling is fragile compared 
to PL/I, Python or Ruby.


I noticed that ooRexx v5 has introduced array types which is long 
overdue. Stem variables are hash tables so performance is not great when 
iterating.






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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
David Crayford [dcrayf...@gmail.com]
Sent: Wednesday, June 23, 2021 8:57 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Coding for the future

Maybe I'm missing a subtlety here but can you demonstrate how REXX uses
callbacks on z/OS? I'm familar with command environments, I've written
one for REXX regex 
https://secure-web.cisco.com/140q8fxdqURUGvmth2nK_lOrDPN09AtW0cBfgGnzMZm6MOvOho-HriWxdOrBSwiPotV2P6kacF9rpRwTORQsYeHqbOlnMFxHuUDYsjYnWlk0z0sR7CYhLEzIyd-DL6yuI6IRotLmLhmT3RbCQk9-VO0E6-NE3tyAdm1jgxYV9K6GosVOwG_tqv0j_Iv7TeRrCoUvhQ5ZNmnH2N9gR8CjU9xFydEZWlX1Y702G19rTTW9fV0qRkhU5kTGg16f16KMPIZbaB7Cqk0evdWJylMOkSMkIA5PECEmFeyiQXvrOBE2LDvGMC16AK6OZg5xdnzeWpSgm_g5F-nCgOQjteQ_82RUkquwXW_WqLZq0S0yXoz4PpyFEFJrpl2iZboK4FhuXZdrvui3BqiSrz0nKNJYIXUNRpVzfCH02p2xcc1Oqa0Lrndw3QSeal5ZFf3sRqGP-/https%3A%2F%2Fgithub.com%2Fdaveyc%2FRTK.
 In Python, Lua etc you
would just create an instance of a class an communicate using message
passing like any OO language.
For example, to create and ISPF in Lua you instantiate and ISPF object
and then communicate with it by calling methods
https://secure-web.cisco.com/1qsEFCKQQ8_UfI8nvAPUHIHUMRsk8zVcv8tyCsWKzPB5x6Iqcinh6eFRTvMYUE_fu4U_RlstYoTVGhhME8x92IIYlUFy0AvsQ_osnJyM5U0ASEu77n43wTA2l6-3XA99vaRmgsICvmmQW_Wlc1RO5W5SsL6uXFqvGMNSV5d2Swy6V131ckAPNDw9a-BsfYVkO5DRvOINNh9iJZqVw466fpXNjZh1CsFmaMQcpIvnXTnndqgbQwZw4yzPuxvmWTf__4ssShTUeQnjYxO6gcW4YsvpHhQslzGOP7V45e2SIHjYK3A2EGLp3hyelRfJG9gh3h0qFBX_1a5X08xba0wB0HwMXf4VyHIzAvI5LKoqvrMA90FsZq4h6TMxefXsiXKHALdxZV9djrJXqln73WhSCoaNFiVgG9C-wOFEwYW7bB12UrfhpL6v1ZJ3Hxudjq_4kHxQJuH7g6y4Brb90haU3vA/https%3A%2F%2Flua4z.github.io%2FLua4z%2Fmodules%2Fispf.html.


On 23/06/2021 7:04 pm, Seymour J Metz wrote:

Allow applications to establish environments for scripts (ADDRESS) , allow 
call-backs from within scripts and access the variables of the scripts. I wish 
that I could do that from within Perl, although I'd take the time to learn 
Python or Ruby if they supported that.


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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
David Crayford [dcrayf...@gmail.com]
Sent: Wednesday, June 23, 2021 3:19 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Coding for the future

On 23/06/2021 10:38 am, Seymour J Metz wrote:

None of those are relevant to what REXX does best. Again, it's the plumbing, 
not the syntactic sugar.

What exactly does REXX do best? What does it do better than Python?



As to large applications, I believe that there are some pretty big ones in Perl 
and REXX, so why should I be surprised by large applications in, e.g., Python, 
Ruby?


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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
David Crayford [dcrayf...@gmail.com]
Sent: Tuesday, June 22, 2021 7:25 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Coding for the future

On 22/06/2021 10:19 pm, Seymour J Metz wrote:

It's not a question of what environment it can run in; it's  a question of what 
facilities it supports in those environments.

Indeed. Lua supports TSO, ISPF, CICS, IMS, the full MVS file system
including VSAM. DB2 SQL + a SQLite API. A date/time module that supports
dates that are greater than Mon Jan 01 100 BCE 00:00:00 and less
than Mon Jan 01 101 00:00:00 etc, etc.
We presented at SHARE where we demonstrated how to use Lua integration
to convert a 3270 CICS BMS application to a 

Re: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Brian Westerman
You can call you program anything you want and create a command table entry for 
it.  That way you can leave IBM's submit where it was/is is SYS1.CMDLIB.


i.e. (look in option 3.9 of ISPF) and add

YourCMD  SELECT PGM(yourPGM PRM('')) NEWAPPL(anything)


Then when the user types "yourCMD" it will invoke "yourPGM"

The PRM part is to pass a parm to yopur program, (in case they type "SUBMIT 
'somedataset(member)'".  

However, if you call your program SUBMIT then it will work outside of ISPF as 
well, although it will work if you called it yourPGM just as well.  The command 
table just keeps them from having to type "TSO yourPGM" instead of just yourPGM 
or yourCMD.


In any case, you don't want to replace IBM's submit, you just want to make sure 
that yours is located before IBM's in either a steplib or in a linklist dataset 
that occurs BEFORE sys1.cmdlib.

I think using the name SUBMIT is a really really bad idea, unless you are going 
to create a alias for IBM's submit (maybe call it IBMSUB), so that if need be 
you can use it in case yours fails.

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


Re: ISPF Edit: Introduce New SUBMIT Module

2021-06-24 Thread Itschak Mugzach
Have a look at ISPF 3.9 (COMMAND). This is the command table where you
define new primary commands to ISPF. At end, copy table ISPCMDS (or ISRCMDS
depending on your APPL id) to the first dataset in ISPTLIB concatanation to
make it public to all users.
As per your second question, There are commands that are built-in in ISPF
and others that are define to the command table. for example. your program
can be defined as CMD($UBMIT) for the name you want to use under ISPF.
TSO parmlib only needed if the program is authorized (TSO, by definition is
unauthorized).
HTH

*| **Itschak Mugzach | Director | SecuriTeam Software **|** IronSphere
Platform* *|* *Information Security Continuous Monitoring for Z/OS, zLinux
and IBM I **|  *

*|* *Email**: i_mugz...@securiteam.co.il **|* *Mob**: +972 522 986404 **|*
*Skype**: ItschakMugzach **|* *Web**: www.Securiteam.co.il  **|*





On Thu, Jun 24, 2021 at 5:25 AM David Spiegel 
wrote:

> Hi,
> I need help to figure out how to add a new Primary Command to ISPF Edit,
> so that I can test a RYO SUBMIT Command written in Assembler.
> Let's assume that my module is called $UBMIT (with an ALIAS of $UB).
> I do not want to write an Edit Macro to do this. (I already wrote one of
> these). nor do want to invoke an Edit Macro which will call the Command
> Processor.
>
> (The user will type $UB on the Edit Command Line and use the RYO program
> instead of the IBM-supplied SUB.)
>
> (As an aside, one of the reasons it has to be written in Assembler is so
> that the program can access the INTRDR's RPLRBAR and thereby TPUT the
> Job Number after SUBMIT.)
>
> Another related question: How does ISPF "know" what SUBMIT means?
>
> Thank you in advance,
> David
>
> --
> 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