Re: IPCS - CBFORMAT

2024-01-24 Thread Bill Yeager
Thanks. Needless to say, this is not one of the best documented interfaces.

Your help is valued.

--Bill

Bill Yeager, CTO
Alebra Technologies, Inc.
PO Box 120390
New Brighton, MN  55112
678-232-3270
 
This e-mail, including attachments, may include confidential and/or proprietary 
information and may be used only by the person or entity to which it is 
addressed.  If the reader of this email is not the intended recipient, or his 
or her authorized agent, the reader is hereby notified that any dissemination, 
distribution or copying of this e-mail is prohibited. If you have received this 
e-mail in error, please notify the sender by replying to this message and 
delete this e-mail immediately.


-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Jim Mulder
Sent: Wednesday, January 24, 2024 11:49 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS - CBFORMAT

  You can make each model an entry point in the module, with an ALIAS for each 
one when you bind the module.

Jim Mulder

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Bill Yeager
Sent: Wednesday, January 24, 2024 10:47 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS - CBFORMAT

Jim,

Just one more question, if you please...

I'd like to put a bunch of CB mappings in one module if it's possible.  The 
manual was totally unclear as to whether this is possible and, if so, how to do 
it.

Do you know?

Thanks,
Bill

Bill Yeager, CTO
Alebra Technologies, Inc.
PO Box 120390
New Brighton, MN  55112
678-232-3270
 
This e-mail, including attachments, may include confidential and/or proprietary 
information and may be used only by the person or entity to which it is 
addressed.  If the reader of this email is not the intended recipient, or his 
or her authorized agent, the reader is hereby notified that any dissemination, 
distribution or copying of this e-mail is prohibited. If you have received this 
e-mail in error, please notify the sender by replying to this message and 
delete this e-mail immediately.


-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Jim Mulder
Sent: Tuesday, January 23, 2024 11:09 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS - CBFORMAT

  Try CBF 2B79E814.  L(12) STRUCTURE(OPRM)

The Truncated message is telling you that the OPRM model is trying to format 
something longer that what is provided.
Since you only specified an address (not a symbol which has a length), the 
length would be defaulting to whatever your SETDEF command default length is 
(4, if you haven't changed it via the SETRDEF subcommand).
You could also do things like

EQ MYOPRM   2B79E814.  L(12) STR(OPRM)
CBF MYOPRM

  For your other thing that does work, if it is longer than 4 bytes, maybe IPCS 
knows something else about it which determines a length.
IPCSDATA ACTIVE will show you all of the parmlib stuff for your IPCS session.  
The LISTMAP subcommand will also tell you about things that IPCS has already 
figured out and put into its storage map.

What is the structure name that does work?  Where does it show up in the output 
of IPCSDATA ACTIVE ?
Does the structure name show up in the output of LISTMAP, or is the address in 
an a range that shows as being mapped in the output of LISTMAP? 

Jim Mulder

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of Jon 
Perryman
Sent: Tuesday, January 23, 2024 9:47 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS - CBFORMAT

This looks correct and essentially the same as mine. I never ran into the 
truncated error. I'm guessing the problem must lie somewhere else.

Since ACRONYM= is working, it's unlikely that a spurious blank is causing the 
problem. Maybe compare the assembler listings to see if there is a difference. 

I think I accessed my IPCS modules thru BLSLLIB or possibly TSOLIB to eliminate 
problems associated with linklst. I don't think this is your problem..

I would look at the link listing and verify the entry point and module name is 
correct. I don't think this is the problem because HEADER= is working correctly.

Although you didn't include the full source, It appears the CSECT is setup 
correctly and nothing spurious seems to be included but maybe you can check the 
listing for something unexpected.

I don't think using CBLEN=20 will fix the problem but you could try it. 

Sorry I can't be of help but your problem doesn't appear to be with the 
definitions. 

On Tue, 23 Jan 2024 14:26:20 -0600, Bill Yeager  wrote:

>OPRM  DSECT 
>OPRMEYEC DSCL4EYECATCHER ('OPRM') @E120
>OPRMIFUN DSCL4I/O FUNCTION TO BE PERFORMED 
>OPRMCFUN DSCL4COMM FUNCTION TO BE PERFORMED
>
> BLSQMDEF BASELBL=OPRM,CBLEN=12,PREFIX=4,HEADER=OPRM,  X
>  

Re: IPCS - CBFORMAT

2024-01-24 Thread Jim Mulder
  You can make each model an entry point in the module, with an ALIAS for each 
one when you bind the module.

Jim Mulder

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Bill Yeager
Sent: Wednesday, January 24, 2024 10:47 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS - CBFORMAT

Jim,

Just one more question, if you please...

I'd like to put a bunch of CB mappings in one module if it's possible.  The 
manual was totally unclear as to whether this is possible and, if so, how to do 
it.

Do you know?

Thanks,
Bill

Bill Yeager, CTO
Alebra Technologies, Inc.
PO Box 120390
New Brighton, MN  55112
678-232-3270
 
This e-mail, including attachments, may include confidential and/or proprietary 
information and may be used only by the person or entity to which it is 
addressed.  If the reader of this email is not the intended recipient, or his 
or her authorized agent, the reader is hereby notified that any dissemination, 
distribution or copying of this e-mail is prohibited. If you have received this 
e-mail in error, please notify the sender by replying to this message and 
delete this e-mail immediately.


-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Jim Mulder
Sent: Tuesday, January 23, 2024 11:09 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS - CBFORMAT

  Try CBF 2B79E814.  L(12) STRUCTURE(OPRM)

The Truncated message is telling you that the OPRM model is trying to format 
something longer that what is provided.
Since you only specified an address (not a symbol which has a length), the 
length would be defaulting to whatever your SETDEF command default length is 
(4, if you haven't changed it via the SETRDEF subcommand).
You could also do things like

EQ MYOPRM   2B79E814.  L(12) STR(OPRM)
CBF MYOPRM

  For your other thing that does work, if it is longer than 4 bytes, maybe IPCS 
knows something else about it which determines a length.
IPCSDATA ACTIVE will show you all of the parmlib stuff for your IPCS session.  
The LISTMAP subcommand will also tell you about things that IPCS has already 
figured out and put into its storage map.

What is the structure name that does work?  Where does it show up in the output 
of IPCSDATA ACTIVE ?
Does the structure name show up in the output of LISTMAP, or is the address in 
an a range that shows as being mapped in the output of LISTMAP? 

Jim Mulder

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of Jon 
Perryman
Sent: Tuesday, January 23, 2024 9:47 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS - CBFORMAT

This looks correct and essentially the same as mine. I never ran into the 
truncated error. I'm guessing the problem must lie somewhere else.

Since ACRONYM= is working, it's unlikely that a spurious blank is causing the 
problem. Maybe compare the assembler listings to see if there is a difference. 

I think I accessed my IPCS modules thru BLSLLIB or possibly TSOLIB to eliminate 
problems associated with linklst. I don't think this is your problem..

I would look at the link listing and verify the entry point and module name is 
correct. I don't think this is the problem because HEADER= is working correctly.

Although you didn't include the full source, It appears the CSECT is setup 
correctly and nothing spurious seems to be included but maybe you can check the 
listing for something unexpected.

I don't think using CBLEN=20 will fix the problem but you could try it. 

Sorry I can't be of help but your problem doesn't appear to be with the 
definitions. 

On Tue, 23 Jan 2024 14:26:20 -0600, Bill Yeager  wrote:

>OPRM  DSECT 
>OPRMEYEC DSCL4EYECATCHER ('OPRM') @E120
>OPRMIFUN DSCL4I/O FUNCTION TO BE PERFORMED 
>OPRMCFUN DSCL4COMM FUNCTION TO BE PERFORMED
>
> BLSQMDEF BASELBL=OPRM,CBLEN=12,PREFIX=4,HEADER=OPRM,  X
>   ACRONYM=OPRM,ACROLBL=OPRMEYEC
> BLSQMFLD NAME=OPRMEYEC,DTYPE=EBCDIC
> BLSQMFLD NAME=OPRMIFUN,DTYPE=EBCDIC
> BLSQMFLD NAME=OPRMCFUN,DTYPE=EBCDIC 
> BLSQMDEF END
>
>2B79E814  D6D7D9D4   E6D9E3C5   D9D9C5D8   | OPRMWRTERREQ |
>2B79E820   E6D9E3C5   D9C5C1C4         | WRTEREAD |
>
>Command: CBF 2B79E814. STRUCTURE(OPRM)
>
>OPRM: 2B79E814  
>   +  EYEC. OPRM
>Control block is truncated
>
>--
>For IBM-MAIN subscribe / signoff / archive access instructions, send 
>email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
Fo

Re: IPCS - CBFORMAT

2024-01-24 Thread Bill Yeager
Jim,

Just one more question, if you please...

I'd like to put a bunch of CB mappings in one module if it's possible.  The 
manual was totally unclear as to whether this is possible and, if so, how to do 
it.

Do you know?

Thanks,
Bill

Bill Yeager, CTO
Alebra Technologies, Inc.
PO Box 120390
New Brighton, MN  55112
678-232-3270
 
This e-mail, including attachments, may include confidential and/or proprietary 
information and may be used only by the person or entity to which it is 
addressed.  If the reader of this email is not the intended recipient, or his 
or her authorized agent, the reader is hereby notified that any dissemination, 
distribution or copying of this e-mail is prohibited. If you have received this 
e-mail in error, please notify the sender by replying to this message and 
delete this e-mail immediately.


-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Jim Mulder
Sent: Tuesday, January 23, 2024 11:09 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS - CBFORMAT

  Try CBF 2B79E814.  L(12) STRUCTURE(OPRM)

The Truncated message is telling you that the OPRM model is trying to format 
something longer that what is provided.
Since you only specified an address (not a symbol which has a length), the 
length would be defaulting to whatever your SETDEF command default length is 
(4, if you haven't changed it via the SETRDEF subcommand).
You could also do things like

EQ MYOPRM   2B79E814.  L(12) STR(OPRM)
CBF MYOPRM

  For your other thing that does work, if it is longer than 4 bytes, maybe IPCS 
knows something else about it which determines a length.
IPCSDATA ACTIVE will show you all of the parmlib stuff for your IPCS session.  
The LISTMAP subcommand will also tell you about things that IPCS has already 
figured out and put into its storage map.

What is the structure name that does work?  Where does it show up in the output 
of IPCSDATA ACTIVE ?
Does the structure name show up in the output of LISTMAP, or is the address in 
an a range that shows as being mapped in the output of LISTMAP? 

Jim Mulder

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of Jon 
Perryman
Sent: Tuesday, January 23, 2024 9:47 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS - CBFORMAT

This looks correct and essentially the same as mine. I never ran into the 
truncated error. I'm guessing the problem must lie somewhere else.

Since ACRONYM= is working, it's unlikely that a spurious blank is causing the 
problem. Maybe compare the assembler listings to see if there is a difference. 

I think I accessed my IPCS modules thru BLSLLIB or possibly TSOLIB to eliminate 
problems associated with linklst. I don't think this is your problem..

I would look at the link listing and verify the entry point and module name is 
correct. I don't think this is the problem because HEADER= is working correctly.

Although you didn't include the full source, It appears the CSECT is setup 
correctly and nothing spurious seems to be included but maybe you can check the 
listing for something unexpected.

I don't think using CBLEN=20 will fix the problem but you could try it. 

Sorry I can't be of help but your problem doesn't appear to be with the 
definitions. 

On Tue, 23 Jan 2024 14:26:20 -0600, Bill Yeager  wrote:

>OPRM  DSECT 
>OPRMEYEC DSCL4EYECATCHER ('OPRM') @E120
>OPRMIFUN DSCL4I/O FUNCTION TO BE PERFORMED 
>OPRMCFUN DSCL4COMM FUNCTION TO BE PERFORMED
>
> BLSQMDEF BASELBL=OPRM,CBLEN=12,PREFIX=4,HEADER=OPRM,  X
>   ACRONYM=OPRM,ACROLBL=OPRMEYEC
> BLSQMFLD NAME=OPRMEYEC,DTYPE=EBCDIC
> BLSQMFLD NAME=OPRMIFUN,DTYPE=EBCDIC
> BLSQMFLD NAME=OPRMCFUN,DTYPE=EBCDIC 
> BLSQMDEF END
>
>2B79E814  D6D7D9D4   E6D9E3C5   D9D9C5D8   | OPRMWRTERREQ |
>2B79E820   E6D9E3C5   D9C5C1C4         | WRTEREAD |
>
>Command: CBF 2B79E814. STRUCTURE(OPRM)
>
>OPRM: 2B79E814  
>   +  EYEC. OPRM
>Control block is truncated
>
>--
>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

Re: IPCS - CBFORMAT

2024-01-24 Thread Bill Yeager
Jim,

You nailed it with the LISTMAP.  Once I had gotten an error with this control 
block (earlier), IPCS had set the length to 4 and remembered it.  I used 
"DROPMAP structure(oprm)" and then rand the CBF again it worked!

Thanks so much.

Bill Yeager, CTO
Alebra Technologies, Inc.
PO Box 120390
New Brighton, MN  55112
678-232-3270
 
This e-mail, including attachments, may include confidential and/or proprietary 
information and may be used only by the person or entity to which it is 
addressed.  If the reader of this email is not the intended recipient, or his 
or her authorized agent, the reader is hereby notified that any dissemination, 
distribution or copying of this e-mail is prohibited. If you have received this 
e-mail in error, please notify the sender by replying to this message and 
delete this e-mail immediately.


-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Jim Mulder
Sent: Tuesday, January 23, 2024 11:09 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS - CBFORMAT

  Try CBF 2B79E814.  L(12) STRUCTURE(OPRM)

The Truncated message is telling you that the OPRM model is trying to format 
something longer that what is provided.
Since you only specified an address (not a symbol which has a length), the 
length would be defaulting to whatever your SETDEF command default length is 
(4, if you haven't changed it via the SETRDEF subcommand).
You could also do things like

EQ MYOPRM   2B79E814.  L(12) STR(OPRM)
CBF MYOPRM

  For your other thing that does work, if it is longer than 4 bytes, maybe IPCS 
knows something else about it which determines a length.
IPCSDATA ACTIVE will show you all of the parmlib stuff for your IPCS session.  
The LISTMAP subcommand will also tell you about things that IPCS has already 
figured out and put into its storage map.

What is the structure name that does work?  Where does it show up in the output 
of IPCSDATA ACTIVE ?
Does the structure name show up in the output of LISTMAP, or is the address in 
an a range that shows as being mapped in the output of LISTMAP? 

Jim Mulder

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of Jon 
Perryman
Sent: Tuesday, January 23, 2024 9:47 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS - CBFORMAT

This looks correct and essentially the same as mine. I never ran into the 
truncated error. I'm guessing the problem must lie somewhere else.

Since ACRONYM= is working, it's unlikely that a spurious blank is causing the 
problem. Maybe compare the assembler listings to see if there is a difference. 

I think I accessed my IPCS modules thru BLSLLIB or possibly TSOLIB to eliminate 
problems associated with linklst. I don't think this is your problem..

I would look at the link listing and verify the entry point and module name is 
correct. I don't think this is the problem because HEADER= is working correctly.

Although you didn't include the full source, It appears the CSECT is setup 
correctly and nothing spurious seems to be included but maybe you can check the 
listing for something unexpected.

I don't think using CBLEN=20 will fix the problem but you could try it. 

Sorry I can't be of help but your problem doesn't appear to be with the 
definitions. 

On Tue, 23 Jan 2024 14:26:20 -0600, Bill Yeager  wrote:

>OPRM  DSECT 
>OPRMEYEC DSCL4EYECATCHER ('OPRM') @E120
>OPRMIFUN DSCL4I/O FUNCTION TO BE PERFORMED 
>OPRMCFUN DSCL4COMM FUNCTION TO BE PERFORMED
>
> BLSQMDEF BASELBL=OPRM,CBLEN=12,PREFIX=4,HEADER=OPRM,  X
>   ACRONYM=OPRM,ACROLBL=OPRMEYEC
> BLSQMFLD NAME=OPRMEYEC,DTYPE=EBCDIC
> BLSQMFLD NAME=OPRMIFUN,DTYPE=EBCDIC
> BLSQMFLD NAME=OPRMCFUN,DTYPE=EBCDIC 
> BLSQMDEF END
>
>2B79E814  D6D7D9D4   E6D9E3C5   D9D9C5D8   | OPRMWRTERREQ |
>2B79E820   E6D9E3C5   D9C5C1C4         | WRTEREAD |
>
>Command: CBF 2B79E814. STRUCTURE(OPRM)
>
>OPRM: 2B79E814  
>   +  EYEC. OPRM
>Control block is truncated
>
>--
>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 in

Re: IPCS - CBFORMAT

2024-01-23 Thread Jim Mulder
  Try CBF 2B79E814.  L(12) STRUCTURE(OPRM)

The Truncated message is telling you that the OPRM model is trying to format 
something longer that what is provided.
Since you only specified an address (not a symbol which has a length), the 
length would be defaulting to whatever your SETDEF command default length is 
(4, if you haven't changed it via the SETRDEF subcommand).
You could also do things like

EQ MYOPRM   2B79E814.  L(12) STR(OPRM)
CBF MYOPRM

  For your other thing that does work, if it is longer than 4 bytes, maybe IPCS 
knows something else about it which determines a length.
IPCSDATA ACTIVE will show you all of the parmlib stuff for your IPCS session.  
The LISTMAP subcommand will also tell you about things that IPCS has already 
figured out and put into its storage map.

What is the structure name that does work?  Where does it show up in the output 
of IPCSDATA ACTIVE ?
Does the structure name show up in the output of LISTMAP, or is the address in 
an a range that shows as being mapped in the output of LISTMAP? 

Jim Mulder

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of Jon 
Perryman
Sent: Tuesday, January 23, 2024 9:47 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS - CBFORMAT

This looks correct and essentially the same as mine. I never ran into the 
truncated error. I'm guessing the problem must lie somewhere else.

Since ACRONYM= is working, it's unlikely that a spurious blank is causing the 
problem. Maybe compare the assembler listings to see if there is a difference. 

I think I accessed my IPCS modules thru BLSLLIB or possibly TSOLIB to eliminate 
problems associated with linklst. I don't think this is your problem..

I would look at the link listing and verify the entry point and module name is 
correct. I don't think this is the problem because HEADER= is working correctly.

Although you didn't include the full source, It appears the CSECT is setup 
correctly and nothing spurious seems to be included but maybe you can check the 
listing for something unexpected.

I don't think using CBLEN=20 will fix the problem but you could try it. 

Sorry I can't be of help but your problem doesn't appear to be with the 
definitions. 

On Tue, 23 Jan 2024 14:26:20 -0600, Bill Yeager  wrote:

>OPRM  DSECT 
>OPRMEYEC DSCL4EYECATCHER ('OPRM') @E120
>OPRMIFUN DSCL4I/O FUNCTION TO BE PERFORMED 
>OPRMCFUN DSCL4COMM FUNCTION TO BE PERFORMED
>
> BLSQMDEF BASELBL=OPRM,CBLEN=12,PREFIX=4,HEADER=OPRM,  X
>   ACRONYM=OPRM,ACROLBL=OPRMEYEC
> BLSQMFLD NAME=OPRMEYEC,DTYPE=EBCDIC
> BLSQMFLD NAME=OPRMIFUN,DTYPE=EBCDIC
> BLSQMFLD NAME=OPRMCFUN,DTYPE=EBCDIC 
> BLSQMDEF END
>
>2B79E814  D6D7D9D4   E6D9E3C5   D9D9C5D8   | OPRMWRTERREQ |
>2B79E820   E6D9E3C5   D9C5C1C4         | WRTEREAD |
>
>Command: CBF 2B79E814. STRUCTURE(OPRM)
>
>OPRM: 2B79E814  
>   +  EYEC. OPRM
>Control block is truncated
>
>--
>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: IPCS - CBFORMAT

2024-01-23 Thread Jon Perryman
This looks correct and essentially the same as mine. I never ran into the 
truncated error. I'm guessing the problem must lie somewhere else.

Since ACRONYM= is working, it's unlikely that a spurious blank is causing the 
problem. Maybe compare the assembler listings to see if there is a difference. 

I think I accessed my IPCS modules thru BLSLLIB or possibly TSOLIB to eliminate 
problems associated with linklst. I don't think this is your problem..

I would look at the link listing and verify the entry point and module name is 
correct. I don't think this is the problem because HEADER= is working correctly.

Although you didn't include the full source, It appears the CSECT is setup 
correctly and nothing spurious seems to be included but maybe you can check the 
listing for something unexpected.

I don't think using CBLEN=20 will fix the problem but you could try it. 

Sorry I can't be of help but your problem doesn't appear to be with the 
definitions. 

On Tue, 23 Jan 2024 14:26:20 -0600, Bill Yeager  wrote:

>OPRM  DSECT 
>OPRMEYEC DSCL4EYECATCHER ('OPRM') @E120
>OPRMIFUN DSCL4I/O FUNCTION TO BE PERFORMED 
>OPRMCFUN DSCL4COMM FUNCTION TO BE PERFORMED
>
> BLSQMDEF BASELBL=OPRM,CBLEN=12,PREFIX=4,HEADER=OPRM,  X
>   ACRONYM=OPRM,ACROLBL=OPRMEYEC
> BLSQMFLD NAME=OPRMEYEC,DTYPE=EBCDIC
> BLSQMFLD NAME=OPRMIFUN,DTYPE=EBCDIC
> BLSQMFLD NAME=OPRMCFUN,DTYPE=EBCDIC 
> BLSQMDEF END
>
>2B79E814  D6D7D9D4   E6D9E3C5   D9D9C5D8   | OPRMWRTERREQ |
>2B79E820   E6D9E3C5   D9C5C1C4         | WRTEREAD |
>
>Command: CBF 2B79E814. STRUCTURE(OPRM)
>
>OPRM: 2B79E814  
>   +  EYEC. OPRM
>Control block is truncated  
>
>--
>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: IPCS - CBFORMAT

2024-01-23 Thread Bill Yeager
OPRM  DSECT 
OPRMEYEC DSCL4EYECATCHER ('OPRM') @E120
OPRMIFUN DSCL4I/O FUNCTION TO BE PERFORMED 
OPRMCFUN DSCL4COMM FUNCTION TO BE PERFORMED

 BLSQMDEF BASELBL=OPRM,CBLEN=12,PREFIX=4,HEADER=OPRM,  X
   ACRONYM=OPRM,ACROLBL=OPRMEYEC
 BLSQMFLD NAME=OPRMEYEC,DTYPE=EBCDIC
 BLSQMFLD NAME=OPRMIFUN,DTYPE=EBCDIC
 BLSQMFLD NAME=OPRMCFUN,DTYPE=EBCDIC 
 BLSQMDEF END

2B79E814  D6D7D9D4   E6D9E3C5   D9D9C5D8   | OPRMWRTERREQ |
2B79E820   E6D9E3C5   D9C5C1C4         | WRTEREAD |

Command: CBF 2B79E814. STRUCTURE(OPRM)

OPRM: 2B79E814  
   +  EYEC. OPRM
Control block is truncated  

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


Re: IPCS - CBFORMAT

2024-01-23 Thread Jon Perryman
On Tue, 23 Jan 2024 13:11:27 -0600, Bill Yeager  wrote:

> I get “Control block is truncated”

TSO PROFILE MSGID will turn on message ID. You can then look up the message to 
find the causes and solutions for this message. You can TSO PROFILE NOMSGID to 
eliminate message ids from TSO. I personally leave it on because message id's 
can be useful.

Use IP LIST xxx LEN(##) to display the area and verify the full area actually 
exists. Verify the acronym matches and (I think) it has trailing blanks instead 
of X'00'. Look at the fields with formatting and ensure they are compatible 
with the formatting.

If the problem is not something obvious, then include the definition and 
storage here so that we aren't guessing.

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


IPCS - CBFORMAT

2024-01-23 Thread Bill Yeager
Using a control block model with IPCS, I’m stuck in a situation whereby I get 
“Control block is truncated” no matter what I do when I issue a CBFORMAT for 
the structure (CBF addr. Structure(cbname).  It displays the eyecatcher 
(acronym) and that is all.  I mapped 2 control blocks, one works the other 
doesn’t and they are almost identical.

1)  They both are single CSECTs in separate load modules.  Load modules and 
CSECTS for each have the same names.
2)  They both are defined in a BLSCUSER parmlib member as “DATA 
STRUCTURE(cbname) MODEL(loadmod name)”
3)  They both have the same keywords specified on the BLSQMDEF statement 
(BASELBL, CBLEN, PREFIX, HEADER, ACRONYM, and ACROLBL)
4)  The only keywords specified on the BLSQMFLD statements are NAME and 
optionally DTYPE.
5)  They both map the entire CB with the total length of the fields adding 
up to the value on CBLEN.
6)  The load modules are both in USER.LINKLIB which is in LLA and I issue a 
MODIFY LLA,REFRESH whenever they are changed.

Any help to get me unstuck would be appreciated.

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


Re: unable to access IPCS 64 bit storage using Storage map service

2023-11-13 Thread Joseph Reichman
Changing the length to =AD(100) did it thanks 

Adam 

> On Nov 13, 2023, at 1:04 PM, Joseph Reichman  wrote:
> 
> I’m using test to debug this thanks 
> 
>>> On Nov 13, 2023, at 11:28 AM, Adam Johanson 
>>> <031ca9d720a7-dmarc-requ...@listserv.ua.edu> wrote:
>>> 
>>> Joe wrote:
>>> I got a number of responses but I decided to use the post By Adam Johanson
>>> using storage map services below is my code
>> 
>>  It appears that I am now pot-committed to this thread, so here goes.
>> 
>> 
>> John P. wrote:
>>> My suggestion would be to start from a function use of ADPLSACC which can 
>>> be found at https://planetmvs.com/ipcs/ivxSName.txt
>> 
>>> Once you verify it's functioning correctly, start modifying it to access 64 
>>> bit storage. Without a source listing, it's hard to tell if everything is 
>>> initialized correctly.
>> 
>> ADPLSACC doesn't appear to work for accessing 64-bit storage, or at least I 
>> couldn't see how to get it to work. This is the reason I went with the 
>> Storage Map service and gave it as an example.
>> 
>> 
>> Joe, in your excerpts, these lines pop out:
>> 
>>>MVC   MAPAST,VIRTUAL#STORAGE Virtual storage address space 
>>>MVC   MAPAS2+2(2),ASID#  
>> 
>> It's not clear what VIRTUAL#STORAGE is, but following the example, MAPAST 
>> needs to be set to the ZZZASTCV EQUate for CPU/ASID type. Always better to 
>> use the provided EQUates.
>> 
>> Also, you're moving the ASID# into MAPAS2+2 and it's not clear that the 
>> first 2 bytes of MAPAS2 have been initialized to zeroes (I assume that it 
>> matters). The code doesn't explicitly initialize them, and the area doesn't 
>> appear to be populated by an "initialized" BLSRSASY area. I would suggest 
>> having an initialized BLSRSASY area in the constant-area of your program and 
>> copy this into your WORKAREA copy. Doing this sets several fields for you 
>> that you don't have to explicitly set yourself, chief among them being the 
>> ABITS=64 business.
>> 
>> And this line:
>> 
>>> MVC   MAPFLE,=A(100)
>> 
>> MAPFLE is 8 bytes.
>> 
>>  There might be other problems in this sample, but these are the initial 
>> ones I see. It might be good to either use a debugger or get a dump at the 
>> time of your ADPLSERV invocation and make sure that the areas that you're 
>> passing line up with what they're supposed to look like, using the 
>> expansions in the listing.
>> 
>> ===
>> Adam Johanson
>> Broadcom Mainframe Software Division
>> 
>> --
>> 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: unable to access IPCS 64 bit storage using Storage map service

2023-11-13 Thread Joseph Reichman
I’m using test to debug this thanks 

> On Nov 13, 2023, at 11:28 AM, Adam Johanson 
> <031ca9d720a7-dmarc-requ...@listserv.ua.edu> wrote:
> 
> Joe wrote:
>> I got a number of responses but I decided to use the post By Adam Johanson
>> using storage map services below is my code
> 
>   It appears that I am now pot-committed to this thread, so here goes.
> 
> 
> John P. wrote:
>> My suggestion would be to start from a function use of ADPLSACC which can be 
>> found at https://planetmvs.com/ipcs/ivxSName.txt
> 
>> Once you verify it's functioning correctly, start modifying it to access 64 
>> bit storage. Without a source listing, it's hard to tell if everything is 
>> initialized correctly.
> 
> ADPLSACC doesn't appear to work for accessing 64-bit storage, or at least I 
> couldn't see how to get it to work. This is the reason I went with the 
> Storage Map service and gave it as an example.
> 
> 
> Joe, in your excerpts, these lines pop out:
> 
>> MVC   MAPAST,VIRTUAL#STORAGE Virtual storage address space 
>> MVC   MAPAS2+2(2),ASID#  
> 
> It's not clear what VIRTUAL#STORAGE is, but following the example, MAPAST 
> needs to be set to the ZZZASTCV EQUate for CPU/ASID type. Always better to 
> use the provided EQUates.
> 
> Also, you're moving the ASID# into MAPAS2+2 and it's not clear that the first 
> 2 bytes of MAPAS2 have been initialized to zeroes (I assume that it matters). 
> The code doesn't explicitly initialize them, and the area doesn't appear to 
> be populated by an "initialized" BLSRSASY area. I would suggest having an 
> initialized BLSRSASY area in the constant-area of your program and copy this 
> into your WORKAREA copy. Doing this sets several fields for you that you 
> don't have to explicitly set yourself, chief among them being the ABITS=64 
> business.
> 
> And this line:
> 
>> MVC   MAPFLE,=A(100)
> 
> MAPFLE is 8 bytes.
> 
>   There might be other problems in this sample, but these are the initial 
> ones I see. It might be good to either use a debugger or get a dump at the 
> time of your ADPLSERV invocation and make sure that the areas that you're 
> passing line up with what they're supposed to look like, using the expansions 
> in the listing.
> 
> ===
> Adam Johanson
> Broadcom Mainframe Software Division
> 
> --
> 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: unable to access IPCS 64 bit storage using Storage map service

2023-11-13 Thread Adam Johanson
Joe wrote:
> I got a number of responses but I decided to use the post By Adam Johanson
> using storage map services below is my code 

   It appears that I am now pot-committed to this thread, so here goes.


John P. wrote:
> My suggestion would be to start from a function use of ADPLSACC which can be 
> found at https://planetmvs.com/ipcs/ivxSName.txt

> Once you verify it's functioning correctly, start modifying it to access 64 
> bit storage. Without a source listing, it's hard to tell if everything is 
> initialized correctly.

ADPLSACC doesn't appear to work for accessing 64-bit storage, or at least I 
couldn't see how to get it to work. This is the reason I went with the Storage 
Map service and gave it as an example.


Joe, in your excerpts, these lines pop out:

>  MVC   MAPAST,VIRTUAL#STORAGE Virtual storage address space 
>  MVC   MAPAS2+2(2),ASID#  

It's not clear what VIRTUAL#STORAGE is, but following the example, MAPAST needs 
to be set to the ZZZASTCV EQUate for CPU/ASID type. Always better to use the 
provided EQUates.

Also, you're moving the ASID# into MAPAS2+2 and it's not clear that the first 2 
bytes of MAPAS2 have been initialized to zeroes (I assume that it matters). The 
code doesn't explicitly initialize them, and the area doesn't appear to be 
populated by an "initialized" BLSRSASY area. I would suggest having an 
initialized BLSRSASY area in the constant-area of your program and copy this 
into your WORKAREA copy. Doing this sets several fields for you that you don't 
have to explicitly set yourself, chief among them being the ABITS=64 business.

And this line:

> MVC   MAPFLE,=A(100)

MAPFLE is 8 bytes.

   There might be other problems in this sample, but these are the initial ones 
I see. It might be good to either use a debugger or get a dump at the time of 
your ADPLSERV invocation and make sure that the areas that you're passing line 
up with what they're supposed to look like, using the expansions in the listing.

===
Adam Johanson
Broadcom Mainframe Software Division

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


Re: unable to access IPCS 64 bit storage using Storage map service

2023-11-12 Thread Joseph Reichman
Joe Reichman


On Mon, Nov 13, 2023 at 2:56 AM Joseph Reichman 
wrote:

>
> Joe Reichman
>
>
> On Mon, Nov 13, 2023 at 2:55 AM Jon Perryman  wrote:
>
>> On Sat, 11 Nov 2023 21:34:57 -0500, Joseph Reichman <
>> reichman...@gmail.com> wrote:
>>
>> >In IPCS I did a list subcommand from the value of double word value in
>> >TSTAUVCT and it had the values I was expecting however using storage map
>> >services I get zeros in the area pointed to by  XMSPBUF
>>
>> My suggestion would be to start from a function use of ADPLSACC which can
>> be found at https://planetmvs.com/ipcs/ivxSName.txt
>>
>> Once you verify it's functioning correctly, start modifying it to access
>> 64 bit storage. Without a source listing, it's hard to tell if everything
>> is initialized correctly.
>>
>> --
>> 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: unable to access IPCS 64 bit storage using Storage map service

2023-11-12 Thread Joseph Reichman
Joe Reichman


On Mon, Nov 13, 2023 at 2:55 AM Jon Perryman  wrote:

> On Sat, 11 Nov 2023 21:34:57 -0500, Joseph Reichman 
> wrote:
>
> >In IPCS I did a list subcommand from the value of double word value in
> >TSTAUVCT and it had the values I was expecting however using storage map
> >services I get zeros in the area pointed to by  XMSPBUF
>
> My suggestion would be to start from a function use of ADPLSACC which can
> be found at https://planetmvs.com/ipcs/ivxSName.txt
>
> Once you verify it's functioning correctly, start modifying it to access
> 64 bit storage. Without a source listing, it's hard to tell if everything
> is initialized correctly.
>
> --
> 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: unable to access IPCS 64 bit storage using Storage map service

2023-11-12 Thread Jon Perryman
On Sat, 11 Nov 2023 21:34:57 -0500, Joseph Reichman  
wrote:

>In IPCS I did a list subcommand from the value of double word value in
>TSTAUVCT and it had the values I was expecting however using storage map
>services I get zeros in the area pointed to by  XMSPBUF

My suggestion would be to start from a function use of ADPLSACC which can be 
found at https://planetmvs.com/ipcs/ivxSName.txt

Once you verify it's functioning correctly, start modifying it to access 64 bit 
storage. Without a source listing, it's hard to tell if everything is 
initialized correctly.

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


unable to access IPCS 64 bit storage using Storage map service

2023-11-11 Thread Joseph Reichman
A while I posted about accessing ipcs storage above the bar 64 bit as with
storage access I could only get 31 bit 

I got a number of responses but I decided to use the post By Adam Johanson
using storage map services below is my code 
I get a rc zero in r15 however storage area address XMSPBUFF contains all
zeros 

In IPCS I did a list subcommand from the value of double word value in
TSTAUVCT and it had the values I was expecting however using storage map
services I get zeros in the area pointed to by  XMSPBUF

*   
  LAR7,WORKMAP   
  USING MAP,R7   
  LAR10,WRKMPL   
  USING XMSP,R10 
  MVC   MAPRID,=C'SA'
  MVC   XMSPMODN,=C'TSTAIPCS'
  STR7,XMSPSAR   
  MVC   XMSPCODE,=Y(XMSPACC) 
  MVC   XMSPIDC,=C'XMSP' 
  MVI   XMSPIDL,C'1' 
  MVC   MAPAST,VIRTUAL#STORAGE Virtual storage address space 
  MVC   MAPAS2+2(2),ASID#
 *MVC   MAPDTD(30),=31C' '   
 *MVI   MAPDTE,C' '  
  MVC   MAPAS1,=F'-1'
  MVC   MAPLAD,TSTAUVCT  
  MVI   MAPDTY,ZZZDTYU   
  MVC   MAPFLE,=A(100)   
  OIXMSPPFL1,XMSPV64 
  LAR0,1000  
  STORAGE OBTAIN,LENGTH=(0),ADDR=(R5),SP=0   
  STR5,XMSPBUF   
  L 15,ADPLSERV  
 CALL  (15),((R8),MAP#SERVICE,(R10)),MF=(E,CALLLST)


*
PPR2 BLSUPPR2 DSECT=NO  IPCS expanded print parm list
XMSP BLSRXMSP DSECT=YES  
XMSPLEN EQU   *-XMSP 
MAP  BLSRSASY DSECT=YES,ABITS=64 


WORKAREA DSECT 
 DSXL144   
*EGSAVE  DSXL144   
WORKPACC DS 0D,CL(ADPLLACC)
WORKPPR2 DS 0D,CL(PPR2999-PPR2000) 
WORKESSY DS 0D,CL(ESSYHRL) 
WORKMAP  DS 0D,CL(MAPHRL)  
WRKMPL   DS 0D,CL(XMSPLEN) 
SNAMHXSV DS CL8
SNAMSAVE DS CL8
SNAMHXLN DS F  
CALLLST CALL ,(,,),MF=L


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


Re: IPCS verb to format the pending RESMGR requests

2023-11-06 Thread Jon Perryman
On Sun, 5 Nov 2023 14:44:06 +0200, Binyamin Dissen  
wrote:

>For example, it appears that ASSBRMA is pointing to the address space level
>blocks, but It isn't obvious to me what the block looks like.

Since no one has given you anything about RESMGR (and IPCS formatting), here's 
my perspective from my use of it years ago.

The primary functionality of RESMGR at that time was to invoke our product 
RESMGR routine at address space & task termination. If there is any RESMGR IPCS 
formatting, it will most likely be with the RTM formatting. 

I wouldn't expect much in terms of RESMGR IPCS formatting. There may be some CB 
formatting routines but you would need to chase down the chains. Remember that 
IPCS is more focused on abends and svc dumps which RESMGR information is not 
useful even when your RESMGR abends. They typically are not related.

You asked specifically about "pending" RESMGR's but I doubt that is your goal? 
It would require a dump be taken specifically when a TCB is running a RESMGR 
routine or you locate all TCBs executing a RESMGR routine in the dump. 
Depending on how IBM designed RESMGR, it might be difficult to determine RESMGR 
chain logic. We assume they have ASCB, TCB and system RESMGR chains but maybe 
there's more or not simple chains.  

I assume there will be an RTM2WA for an executing RESMGR because it's part of 
RTM which has relevant information. 

RESMGRs aren't difficult to write especially if they do nothing but return. You 
could easily add multiple RESMGRs for a single task and then terminate the task 
to cause them to run while taking a dump during on first. Maybe running the 
savearea chain to see the CBs that are referenced (e.g. RTM2WA, a CB eyecatcher 
or possibly the chain from which it came.  

You mentioned ASSBRMA and assume it points to an RMA. I would verify this in a 
dump because it would not be the first time the pointer name does not match the 
CB eyecatcher.

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


IPCS verb to format the pending RESMGR requests

2023-11-05 Thread Binyamin Dissen
For example, it appears that ASSBRMA is pointing to the address space level
blocks, but It isn't obvious to me what the block looks like.

No real luck finding the mappings.

--
Binyamin Dissen 
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel

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


AW: [IBM-MAIN] IPCS beginners primer WAS: IPCS and Rexx

2023-10-17 Thread Beate Kawelke
Another tip: If, like me, you are really bad at memorizing the IPCS command 
syntax, you can write a small REXX which uses "address IPCS" to run all those 
commands which you found useful. If you redirect the output into a PO dataset 
(one member per command) you can then look through these reports to analyze 
what's going on.

-Ursprüngliche Nachricht-
Von: IBM Mainframe Discussion List  Im Auftrag von 
Jon Perryman
Gesendet: Dienstag, 17. Oktober 2023 04:30
An: IBM-MAIN@LISTSERV.UA.EDU
Betreff: [IBM-MAIN] IPCS beginners primer WAS: IPCS and Rexx

On Fri, 13 Oct 2023 22:57:18 -0500, Bruce Hewson  
wrote:

>A replacement STORAGE function for use in IPCS:-

For IPCS beginners, I strongly encourage learning a few basics IPCS subcommands 
before taking code from others or writing IPCS REXX / IPCS exits. The large 
number of IPCS subcommands and many args is confusing / overwhelming. It's all 
extremely useful but you can live without them in the beginning.

There are many solutions to every problem and if the solution solves your 
problem, then it's a good solution. Thiw STORAGE function works but it has some 
limitations that should be corrected before providing for public use. For 
instance, an additional solution or extra coding is needed to STORAGE("X", 100).
. 
For IPCS beginners, here are my essentials suggestion for starting.

* ISPF IPCS option 6 (IPCS commands) has a more flexible "IP " that is used 
from command lines which also stacks displays. For instance, IP CBFORMAT 0 
STR(PSA) formats the PSA. Find CVT and issue IP CBFORMAT ### STR(CVT) without 
exiting the first screen.

* Practice using offsets and pointers. E.g. IP LIST 0+32?+40?+80?-16?+20+16*30? 
LEN(300) ? is 4 byte pointer versus % is 3 byte pointer

* Caution when using PF8 "M". IPCS pauses at each full screen. Scroll to the 
end can take minutes formatting data you never look at.

* Learn to notice hex / decimal number problems: IP L 10 IP L X'10'IP L 
10.IP L 10+10IP L 10+x'10'

* Practice snooping around control blocks using CBFORMAT. For instance, start 
with IP CBF 0 STR(PSA). From there PSAAOLD =>ASCBASXB =>ASXBFTCB => TCBTCB. 
. 
*Practice the same using offsets. Notice for instance the left of each line 
from IP CBF 0 STR(PSA) has the offset for the first field. Recall the command 
and insert +##? and change the STR(). Repeat for additional control blocks.

* Practice using IP LIST 0 len(500) to look at some storage. I think it 
displays the subpool too.

* Practice using EQUATE. E.g. IP EQUATE PSA 0 STR(PSA) and use IP CBF PSA and 
IP LIST PSA. Save a symbol for example IP EQUATE SAVE_PSA PSA.

* Practice understanding period. IP L F0.   IP L F0 IP L 0.   IP L 0   

At this point, you should have enough to write some REXX and IPCS assembler 
exits.

* REXX   ADDRESS IPCS   commands sent to IPCS instead of TSO

* REXX  EVALUATE  "EVAL 20. LEN(512) REXX(STORAGE(varname))" fills 
variable varname with 512 bytes starting at x'20'. 512 is the limit.

* REXX attention routine should be written ensuring you don't get stuck in a 
loop.




 

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


IPCS beginners primer WAS: IPCS and Rexx

2023-10-16 Thread Jon Perryman
On Fri, 13 Oct 2023 22:57:18 -0500, Bruce Hewson  
wrote:

>A replacement STORAGE function for use in IPCS:-

For IPCS beginners, I strongly encourage learning a few basics IPCS subcommands 
before taking code from others or writing IPCS REXX / IPCS exits. The large 
number of IPCS subcommands and many args is confusing / overwhelming. It's all 
extremely useful but you can live without them in the beginning.

There are many solutions to every problem and if the solution solves your 
problem, then it's a good solution. Thiw STORAGE function works but it has some 
limitations that should be corrected before providing for public use. For 
instance, an additional solution or extra coding is needed to STORAGE("X", 100).
. 
For IPCS beginners, here are my essentials suggestion for starting.

* ISPF IPCS option 6 (IPCS commands) has a more flexible "IP " that is used 
from command lines which also stacks displays. For instance, IP CBFORMAT 0 
STR(PSA) formats the PSA. Find CVT and issue IP CBFORMAT ### STR(CVT) without 
exiting the first screen.

* Practice using offsets and pointers. E.g. IP LIST 0+32?+40?+80?-16?+20+16*30? 
LEN(300)
? is 4 byte pointer versus % is 3 byte pointer

* Caution when using PF8 "M". IPCS pauses at each full screen. Scroll to the 
end can take minutes formatting data you never look at.

* Learn to notice hex / decimal number problems: IP L 10 IP L X'10'IP L 
10.IP L 10+10IP L 10+x'10'

* Practice snooping around control blocks using CBFORMAT. For instance, start 
with IP CBF 0 STR(PSA). From there PSAAOLD =>ASCBASXB =>ASXBFTCB => TCBTCB. 
. 
*Practice the same using offsets. Notice for instance the left of each line 
from IP CBF 0 STR(PSA) has the offset for the first field. Recall the command 
and insert +##? and change the STR(). Repeat for additional control blocks.

* Practice using IP LIST 0 len(500) to look at some storage. I think it 
displays the subpool too.

* Practice using EQUATE. E.g. IP EQUATE PSA 0 STR(PSA) and use IP CBF PSA and 
IP LIST PSA. Save a symbol for example IP EQUATE SAVE_PSA PSA.

* Practice understanding period. IP L F0.   IP L F0 IP L 0.   IP L 0   

At this point, you should have enough to write some REXX and IPCS assembler 
exits.

* REXX   ADDRESS IPCS   commands sent to IPCS instead of TSO

* REXX  EVALUATE  "EVAL 20. LEN(512) REXX(STORAGE(varname))" fills 
variable varname with 512 bytes starting at x'20'. 512 is the limit.

* REXX attention routine should be written ensuring you don't get stuck in a 
loop.






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


Re: IPCS and Rexx

2023-10-13 Thread Bruce Hewson
A replacement STORAGE function for use in IPCS:-

Storage: Procedure Expose storage. 
 arg hex_address , dec_length , rep_data   
 hex_address = Right(hex_address,8,'0')
 hex_address = X2c(hex_address)
 hex_address = Bitand(hex_address,'7FFF'x) 
 hex_address = C2x(hex_address)
 hex_data = Obtain_Data( hex_address , 0 , dec_length )
 Return X2c(hex_data)  
/*---*/
/*   */
Obtain_Data: Procedure Expose storage. 
/*---*/
/*   */
/* Function:   Obtain_Data   */
/*   */
/* Retrieve data from the dump.  Invoke the IPCS */
/* EVALUATE subcommand as necessary to access*/
/* 512-byte blocks of data from the IPCS dump*/
/* source and store the data in variable */
/* "storage."  Callers of Obtain_Data must   */
/* request storage from the same address space.  */
/* (currect SETDEF-defined address space default)*/
/*   */
/* Input:  Description of data to access:*/
/*   */
/* Hex address of data.  */
/* Decimal position from the hex address of the  */
/*   first byte to access.   */
/* Decimal length of the data to access. */
/*   */
/* Output: Requested data is returned.   */
/*   */
/*---*/
 arg hex_address , dec_position , dec_length   
 Address IPCS   /* Ensure IPCS environment   */
 trace 'o'  /* Suppress display of unsuccessful  */
/* storage fetches once PF3 has been */
/* hit.  */
 Numeric Digits 16 
 x = '' /* initialize X variable */
 ipcs_eval_limit = 512  /* The maximum numbe of bytes that   */
    /* the IPCS EVALUATE subcommand can  */
/* access per invocation.*/
 page_size = 4096   /* The size of a storage page.   */
 first_index = dec_position ,   /* Determine the first 512 byte  */
 % ipcs_eval_limit  /* increment.*/
 last_index = (dec_position ,   /* Determine the last 512 byte   */
 + dec_length ) ,   /* increment.*/
 % ipcs_eval_limit 
   
 buffer = ''   
 Do i = first_index to last_index /* For each 512 increment. */
   If storage.hex_address.i = '' Then Do   
   
  /*-*/
  /* If the data has not yet been accessed, access it.   */
  /*-*/
 hex_address_dot = ,/* Indicate for IPCS that is */
 hex_address || '.' /* an address.   */
/*   */
 "EVALUATE" hex_address_dot ,  
"POSITION("i*ipcs_eval_limit")" ,  
"LENGTH("ipcs_eval_limit")" ,  
"REXX(STORAGE(X))" /* Access that data by invoking   */
/* the IPCS EVALUATE subcommand. */
 If rc > 0 Then Do 
   
  /*--

Re: IPCS and Rexx

2023-10-12 Thread Jon Perryman
On Thu, 12 Oct 2023 15:28:07 -0500, Jon Perryman  wrote:
  
>* Creating REXX compatible control block mapping is fast and simple 
> using the technique. Instead of coding BLSQ macros, create a table of names
> with offsets that the REXX will use to convert names to offsets. 
> Call the program using ADDRESS LINKPGM passing the desired field name.

After thinking about it, I was wrong about REXX ADDRESS LINKPGM. I think I 
called the program as a REXX function call (maybe REXX call) and returned the 
result as a REXX response returned from the function call. It should be 
documented in the REXX manuals. I had to do it so much that I had a macro so I 
can't remember how to code it. If the program can't find the offset, the 
program should return a -1 (standard REXX failure code).

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


Re: IPCS and Rexx

2023-10-12 Thread Jon Perryman
On Thu, 12 Oct 2023 20:26:56 +, Joseph Reichman  
wrote:

>I just want to initialize with an assembler exit everything I would need to 
>debug the data with Rexx exec

Dump analysis is very subjective and is different for each person / 
environment. Assembler, REXX or both can be used. For me, it was both. Decide 
what you need for debugging. 

For instance, I dealt with multiple address spaces and a product address space 
involving many IBM facilities including TSO. You might have the complexity with 
hundreds of control blocks. 

I suggest you build something simple first so that you can get familiar with 
IPCS concepts. For my situation, I used IPCS EQUATE to give me quick and easy 
access to important tasks and address spaces. Maybe have a REXX that creates 
equates for each save area and display a list of your callers with their work 
areas. If you have a lot of TCB, then list the TCBTIMEs to find out who is 
using too much CPU. There are a lot of possibilities.

We can't give you everything you need because there is no such thing. Find 
someone in a similar situation and find out what they feel is important for 
their debugging.

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


Re: IPCS and Rexx

2023-10-12 Thread Jon Perryman
On Thu, 12 Oct 2023 11:45:48 +, Joseph Reichman  
wrote:

> I looked thru the manuals to create an actual control block
> or structure think you need assembler just give me a hint how I would go abou 
> this task In  Rexx

Everyone needs to stop making IPCS more difficult than it really is. It's been 
a really long time for me, so everything I say here will be conceptual and you 
will need to look up the real commands. I'm not going to include everything 
here.

* REXX STORAGE() has nothing to do with IPCS. If you need help with it, then 
start another thread.

* Almost everything you write for IPCS in assembler can be written in REXX. 
Sometimes it's simpler and faster in assembler but you can do it in REXX with a 
little perseverance.

* Most IPCS subcommands intentionally do not return data to REXX because it 
doesn't make sense. These subcommands greatly simplify the displaying dump 
data. For instance, let's say you want to display all the ASCB's, TCB's and 
RB's. You do it as follows:

ADDRESS IPCS RUNCHAIN ADDR(first_ASCB_address) LINK(ASCBNEXT) EXEC((TSO 
%ASCB_FORMAT).

ASCB_FORMAT REXX:
    ADDRESS IPCS CBFORMAT X CB(ASCB)
    ADDRESS IPCS RUNCHAIN ADDR(X+ASCB_FIRST_TCB_offset) LINK(TCBNEXT_offset) 
EXEC((TSO %TCB_FORMAT)
exit

TCB_FORMAT REXX:
    ADDRESS IPCS CBFORMAT X CB(TCB)
    ADDRESS IPCS RUNCHAIN ADDR(X+TCB_FIRST_RB_offset) LINK(RBNEXT_offset) 
EXEC((TSO %RB_FORMAT)
exit

RB_FORMAT REXX:
    ADDRESS IPCS CBFORMAT X CB(RB)
   EXIT

* If you prefer assembler, I'm guessing there is an IPCS exit service which 
allows you to do a CBFORMAT. You could run the chains from assembler calling 
CBFORMAT but the only difference is that assembler is compatible with offset 
changes where as REXX requires you modify the command. 

* Coding "ADDRESS IPCS" at the beginning of your REXX eliminates the need to 
code it on every IPCS subcommand.

* REXX can issue all IPCS subcommands like those issued from IPCS option 6 or 
from the IPCS command line. E.g ADDRESS IPCS VERBEXIT VSMDATA. 

* Assembler BLSQ macros are very convenient to display your control blocks 
using ADDRESS IPSC CBFORMAT. They are NOT intended for your REXX to extract 
control block fields.  

* IPCS subcommands beginning with "EVAL" can return data to REXX. The single 
most useful is "EVALUATE" which returns the requested data to your REXX exec. 
For example, EVALUATE ADDR(121734.) LENGTH(500) REXX(MYDATA) fills the MYDATA 
variable with 500 bytes located at address 121734. Hint, if you need most of a 
control block, then get the entire CB but if you only need a couple fields, 
then get a couple fields.

* It's possible to display control blocks using REXX directly but if you have 
more than a couple of fields to display, I strongly encourage you to code BLSQ 
assembler macros and use CBFORMAT. In REXX, you would use the following REXX to 
display MYDATA from the previous bullet point.

 ADDRESS IPCS NOTE "'MYDATA: CHAR "substring(mydata,10,20) "HEX 
"c2x(substring(mydata,200,4))"'"

* REXX C2X() makes hex data human readable
REXX C2D() and X2D() make data decimal allowing you to do arithmetic operation 
like adding a base address and offset giving you the address of the desired 
field.
REXX D2X() and D2C() converts a number to either human readable hex or actual 
byte characters (e.g. 3 = F3 or x'F3')

* Coding BLSQ assembler. I have several control blocks. Any CB change only 
needs a re-assemble of the mapping program. The following is the basic logic 
(not my real code):

  MACRO ,
  #SETUP , Setup for IPCS CBFORMAT mapping
R_DSECT OPSYN DSECT save real DSECT
DSECT  OPSYN #DSECT   make DSECT a macro
R_DSOPSYN DSsave real DS
DS OPSYN #DS  make DS a macro
R_DCOPSYN DCsave real DC
DC OPSYN #DC  make DC a macro
R_EQU  OPSYN EQU save real EQU
EQUOPSYN #EQU  make EQU a macro
  MEND ,

  MACRO ,
  #RESTORE , Restore real instructions
DSECT  OPSYN   R_DSECT 
DS OPSYN   R_DS 
DC OPSYN   R_DC
EQU  OPSYN   R_EQU 
  MEND ,
 
   MACRO ,
   #DSECT ,
   R_DSECT 
AINSERT 'BLSQ statement for DSECT'
MEND ,
 
   MACRO ,
   #DS ,
   R_DS 
AINSERT 'BLSQ statement for DS'
*** Offset is from the DSECT (or CSECT)
*** field length is L'
*** field length 1 might be a flag followed by equates describing each bit
*** If you used multipliers or multiple fields, then you must consider them.
*** T' gives you X, A, C and ??? which determines if you need hex display, 
char or ??? 
MEND ,

   MACRO ,
   #DC ,
   R_DC 
AINSERT 'BLSQ statement for DC'
*** Offset is from the DSECT (or CSECT)
*** field length is L'
*** If you used multipliers or multiple fields, then you must consider them.
*** field length 1 might be a flag followed by equates 

Re: IPCS and Rexx

2023-10-12 Thread Joseph Reichman
I just want to initialize with an assembler exit everything I would need to 
debug the data with Rexx exec

Get Outlook for iOS<https://aka.ms/o0ukef>

From: IBM Mainframe Discussion List  on behalf of 
Seymour J Metz 
Sent: Thursday, October 12, 2023 4:23:20 PM
To: IBM-MAIN@LISTSERV.UA.EDU 
Subject: Re: IPCS and Rexx

Do you mean write HLASM code that populates IPCS equates or REXX variables?

If there are control blocks that you just want to display, I would use CBF with 
BLSQMDEF,
BLSQMFLD and BLSQSHDR macros defining your fields; you don't need VERBX for 
that.


From: IBM Mainframe Discussion List  on behalf of 
Joseph Reichman 
Sent: Thursday, October 12, 2023 4:05 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS and Rexx

Seymour starting with verbx in the assembler to generate structure symbols

Then for debugging with runchain etc I’m going to go with Rexx

> On Oct 12, 2023, at 4:03 PM, Seymour J Metz  wrote:
>
> It also depends on your experience level. I'm comfortable writing REXX-aware 
> functions in HLASM, but that might not be the best choice for someone just 
> learning. Using parse or substring is easier, although tedious.
>
> If Joseph just wants to display them then CBF is clearly the way to go, but I 
> don't know how much processing he wants to do. Maybe a hybrid approach?
>
> 
> From: IBM Mainframe Discussion List  on behalf of 
> Tony Harminc 
> Sent: Thursday, October 12, 2023 12:40 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: IPCS and Rexx
>
>> On Thu, 12 Oct 2023 at 07:29, Joseph Reichman  wrote:
>>
>> I understand my only question is to  get it clear to CREATE a structure
>> aka control block this can only be done using the BLSQ assembler macros
>>
>> I agree any other processing I need to do I’ll do it in Rexx
>>
>
> I suggest you think about what you want to accomplish. If you want to have
> IPCS format your control block and display it, then sure - use the BLSQ
> macros, and then issue CBF. This is essentially adding your CBs to IPCS so
> IPCS can produce the same kind of thing you get from the SUMMary and
> ANALYZE and CBF commands, which - if you issue all of them -  is pretty
> much like reproducing a printed SYSUDUMP. You then do the work of figuring
> out what went wrong.
>
> But then what's the REXX doing? In my view the benefit of using REXX in
> IPCS is that it can do analysis, and as I said, can go through your (and
> IBM's) control blocks to discover anomalies, summarize the status of things
> *with knowledge of and from the point of view of your application*, and
> perhaps interact with you as the analysis proceeds.
>
> You can certainly issue CBF (using your CB definitions) from your REXX code
> - nothing wrong with that. But again, it might be more useful to have your
> REXX go through your CB directly (not through formatted output from CBF) to
> discover what's gone wrong.
>
> It depends on what you want, and that may be very different from our case
> as an ISV. Our need is first to promptly get an idea of what a customer
> dump is about, and how it relates to the ticket they've opened. We
> routinely run a REXX program that summarizes things - is our product
> actually running (we get plenty of dumps that don't capture our code or
> where the product isn't even installed or was never started or the dump is
> from the wrong LPAR or from last year), what version is it, what fixes are
> applied, a list of the module eyecatchers, what abended (if anything), how
> long has our code been running (sometimes it abended at startup - other
> times it's been running for 6 months), etc. etc. This saves a lot of time
> in initial analysis. Then we have the background, and can go on to more
> detailed look at what went wrong and how it relates to the reported
> symptoms (abend, hang, wrong results, performance, etc.) For this second
> stage we can, as I described earlier, format useful information from our
> own and IBM's CBs, summarize and drill down into the status of our work
> queues, and so on.
>
> If you are just debugging your own code in your own dev/test environment,
> then your needs will be quite different. If you'll explain what you want to
> accomplish, then I'm sure people will have further suggestions.
>
> Tony H.
>
> --
> 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

Re: IPCS and Rexx

2023-10-12 Thread Seymour J Metz
Do you mean write HLASM code that populates IPCS equates or REXX variables?

If there are control blocks that you just want to display, I would use CBF with 
BLSQMDEF, 
BLSQMFLD and BLSQSHDR macros defining your fields; you don't need VERBX for 
that.


From: IBM Mainframe Discussion List  on behalf of 
Joseph Reichman 
Sent: Thursday, October 12, 2023 4:05 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS and Rexx

Seymour starting with verbx in the assembler to generate structure symbols

Then for debugging with runchain etc I’m going to go with Rexx

> On Oct 12, 2023, at 4:03 PM, Seymour J Metz  wrote:
>
> It also depends on your experience level. I'm comfortable writing REXX-aware 
> functions in HLASM, but that might not be the best choice for someone just 
> learning. Using parse or substring is easier, although tedious.
>
> If Joseph just wants to display them then CBF is clearly the way to go, but I 
> don't know how much processing he wants to do. Maybe a hybrid approach?
>
> 
> From: IBM Mainframe Discussion List  on behalf of 
> Tony Harminc 
> Sent: Thursday, October 12, 2023 12:40 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: IPCS and Rexx
>
>> On Thu, 12 Oct 2023 at 07:29, Joseph Reichman  wrote:
>>
>> I understand my only question is to  get it clear to CREATE a structure
>> aka control block this can only be done using the BLSQ assembler macros
>>
>> I agree any other processing I need to do I’ll do it in Rexx
>>
>
> I suggest you think about what you want to accomplish. If you want to have
> IPCS format your control block and display it, then sure - use the BLSQ
> macros, and then issue CBF. This is essentially adding your CBs to IPCS so
> IPCS can produce the same kind of thing you get from the SUMMary and
> ANALYZE and CBF commands, which - if you issue all of them -  is pretty
> much like reproducing a printed SYSUDUMP. You then do the work of figuring
> out what went wrong.
>
> But then what's the REXX doing? In my view the benefit of using REXX in
> IPCS is that it can do analysis, and as I said, can go through your (and
> IBM's) control blocks to discover anomalies, summarize the status of things
> *with knowledge of and from the point of view of your application*, and
> perhaps interact with you as the analysis proceeds.
>
> You can certainly issue CBF (using your CB definitions) from your REXX code
> - nothing wrong with that. But again, it might be more useful to have your
> REXX go through your CB directly (not through formatted output from CBF) to
> discover what's gone wrong.
>
> It depends on what you want, and that may be very different from our case
> as an ISV. Our need is first to promptly get an idea of what a customer
> dump is about, and how it relates to the ticket they've opened. We
> routinely run a REXX program that summarizes things - is our product
> actually running (we get plenty of dumps that don't capture our code or
> where the product isn't even installed or was never started or the dump is
> from the wrong LPAR or from last year), what version is it, what fixes are
> applied, a list of the module eyecatchers, what abended (if anything), how
> long has our code been running (sometimes it abended at startup - other
> times it's been running for 6 months), etc. etc. This saves a lot of time
> in initial analysis. Then we have the background, and can go on to more
> detailed look at what went wrong and how it relates to the reported
> symptoms (abend, hang, wrong results, performance, etc.) For this second
> stage we can, as I described earlier, format useful information from our
> own and IBM's CBs, summarize and drill down into the status of our work
> queues, and so on.
>
> If you are just debugging your own code in your own dev/test environment,
> then your needs will be quite different. If you'll explain what you want to
> accomplish, then I'm sure people will have further suggestions.
>
> Tony H.
>
> --
> 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


Re: IPCS and Rexx

2023-10-12 Thread Joseph Reichman
Seymour starting with verbx in the assembler to generate structure symbols 

Then for debugging with runchain etc I’m going to go with Rexx 

> On Oct 12, 2023, at 4:03 PM, Seymour J Metz  wrote:
> 
> It also depends on your experience level. I'm comfortable writing REXX-aware 
> functions in HLASM, but that might not be the best choice for someone just 
> learning. Using parse or substring is easier, although tedious.
> 
> If Joseph just wants to display them then CBF is clearly the way to go, but I 
> don't know how much processing he wants to do. Maybe a hybrid approach?
> 
> 
> From: IBM Mainframe Discussion List  on behalf of 
> Tony Harminc 
> Sent: Thursday, October 12, 2023 12:40 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: IPCS and Rexx
> 
>> On Thu, 12 Oct 2023 at 07:29, Joseph Reichman  wrote:
>> 
>> I understand my only question is to  get it clear to CREATE a structure
>> aka control block this can only be done using the BLSQ assembler macros
>> 
>> I agree any other processing I need to do I’ll do it in Rexx
>> 
> 
> I suggest you think about what you want to accomplish. If you want to have
> IPCS format your control block and display it, then sure - use the BLSQ
> macros, and then issue CBF. This is essentially adding your CBs to IPCS so
> IPCS can produce the same kind of thing you get from the SUMMary and
> ANALYZE and CBF commands, which - if you issue all of them -  is pretty
> much like reproducing a printed SYSUDUMP. You then do the work of figuring
> out what went wrong.
> 
> But then what's the REXX doing? In my view the benefit of using REXX in
> IPCS is that it can do analysis, and as I said, can go through your (and
> IBM's) control blocks to discover anomalies, summarize the status of things
> *with knowledge of and from the point of view of your application*, and
> perhaps interact with you as the analysis proceeds.
> 
> You can certainly issue CBF (using your CB definitions) from your REXX code
> - nothing wrong with that. But again, it might be more useful to have your
> REXX go through your CB directly (not through formatted output from CBF) to
> discover what's gone wrong.
> 
> It depends on what you want, and that may be very different from our case
> as an ISV. Our need is first to promptly get an idea of what a customer
> dump is about, and how it relates to the ticket they've opened. We
> routinely run a REXX program that summarizes things - is our product
> actually running (we get plenty of dumps that don't capture our code or
> where the product isn't even installed or was never started or the dump is
> from the wrong LPAR or from last year), what version is it, what fixes are
> applied, a list of the module eyecatchers, what abended (if anything), how
> long has our code been running (sometimes it abended at startup - other
> times it's been running for 6 months), etc. etc. This saves a lot of time
> in initial analysis. Then we have the background, and can go on to more
> detailed look at what went wrong and how it relates to the reported
> symptoms (abend, hang, wrong results, performance, etc.) For this second
> stage we can, as I described earlier, format useful information from our
> own and IBM's CBs, summarize and drill down into the status of our work
> queues, and so on.
> 
> If you are just debugging your own code in your own dev/test environment,
> then your needs will be quite different. If you'll explain what you want to
> accomplish, then I'm sure people will have further suggestions.
> 
> Tony H.
> 
> --
> 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: IPCS and Rexx

2023-10-12 Thread Seymour J Metz
It also depends on your experience level. I'm comfortable writing REXX-aware 
functions in HLASM, but that might not be the best choice for someone just 
learning. Using parse or substring is easier, although tedious.

If Joseph just wants to display them then CBF is clearly the way to go, but I 
don't know how much processing he wants to do. Maybe a hybrid approach?


From: IBM Mainframe Discussion List  on behalf of 
Tony Harminc 
Sent: Thursday, October 12, 2023 12:40 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS and Rexx

On Thu, 12 Oct 2023 at 07:29, Joseph Reichman  wrote:

> I understand my only question is to  get it clear to CREATE a structure
> aka control block this can only be done using the BLSQ assembler macros
>
> I agree any other processing I need to do I’ll do it in Rexx
>

I suggest you think about what you want to accomplish. If you want to have
IPCS format your control block and display it, then sure - use the BLSQ
macros, and then issue CBF. This is essentially adding your CBs to IPCS so
IPCS can produce the same kind of thing you get from the SUMMary and
ANALYZE and CBF commands, which - if you issue all of them -  is pretty
much like reproducing a printed SYSUDUMP. You then do the work of figuring
out what went wrong.

But then what's the REXX doing? In my view the benefit of using REXX in
IPCS is that it can do analysis, and as I said, can go through your (and
IBM's) control blocks to discover anomalies, summarize the status of things
*with knowledge of and from the point of view of your application*, and
perhaps interact with you as the analysis proceeds.

You can certainly issue CBF (using your CB definitions) from your REXX code
- nothing wrong with that. But again, it might be more useful to have your
REXX go through your CB directly (not through formatted output from CBF) to
discover what's gone wrong.

It depends on what you want, and that may be very different from our case
as an ISV. Our need is first to promptly get an idea of what a customer
dump is about, and how it relates to the ticket they've opened. We
routinely run a REXX program that summarizes things - is our product
actually running (we get plenty of dumps that don't capture our code or
where the product isn't even installed or was never started or the dump is
from the wrong LPAR or from last year), what version is it, what fixes are
applied, a list of the module eyecatchers, what abended (if anything), how
long has our code been running (sometimes it abended at startup - other
times it's been running for 6 months), etc. etc. This saves a lot of time
in initial analysis. Then we have the background, and can go on to more
detailed look at what went wrong and how it relates to the reported
symptoms (abend, hang, wrong results, performance, etc.) For this second
stage we can, as I described earlier, format useful information from our
own and IBM's CBs, summarize and drill down into the status of our work
queues, and so on.

If you are just debugging your own code in your own dev/test environment,
then your needs will be quite different. If you'll explain what you want to
accomplish, then I'm sure people will have further suggestions.

Tony H.

--
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: IPCS and Rexx

2023-10-12 Thread Tony Harminc
On Thu, 12 Oct 2023 at 12:36, Seymour J Metz  wrote:

> You retrieve the CB storage from IPCS, use SUBSTR to extract the fields
> you want, use c2x() to make binary data human readable and use standard
> REXX abutment and concatenation to format the data with labels.
>
> From: IBM Mainframe Discussion List  on behalf
> of Joseph Reichman 
>
> Seymour I looked thru the manuals to create an actual control block or
> structure think you need assembler just give me a hint how I would go abou
> this task In  Rexx
>

Parse is the REXXy way to do this. Thing is, REXX has no notion of
structures or DSECTs or whatever you want to call them. There is no way to
statically define the layout of a multi-field  and then have REXX
understand how to deal with the fields. So the usual approach is to fetch
the data into a variable (using IPCS EVAL or REXX Storage() ), and then use
Parse Var with a list of the fields and offsets. This is a pain in many
ways - not least becaues the offsets are in 1-origin decimal, and almost
always what you have to work with is 0-origin hex - but it's quite easy to
write a routine (in REXX, probably) to generate the Parse statements from
assembler source or ADATA, or at least the list of names and offsets. Or
for something small, just do it manually. Then, since REXX doesn't have
typed variables, you have to convert some of the fields to a type you can
work with usefully in REXX. So e.g. if you have a counter in an assembler
DS F field, then you probably want to convert it into a REXX variable using
C2D() so you can use it directly as e.g. a loop counter.

All this has nothing to do with those BLSQ macros. That's a whole different
topic.

Tony H.

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


Re: IPCS and Rexx

2023-10-12 Thread Joseph Reichman
I’m not sure what those macros generate but I’m sure you got it right 

> On Oct 12, 2023, at 12:36 PM, Seymour J Metz  wrote:
> 
> You retrieve the CB storage from IPCS, use SUBSTR to extract the fields you 
> want, use c2x() to make binary data human readable and use standard REXX 
> abutment and concatenation to format the data with labels.
> 
> 
> From: IBM Mainframe Discussion List  on behalf of 
> Joseph Reichman 
> Sent: Thursday, October 12, 2023 7:45 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: IPCS and Rexx
> 
> Seymour I looked thru the manuals to create an actual control block or 
> structure think you need assembler just give me a hint how I would go abou 
> this task In  Rexx
> 
> Get Outlook for iOS<https://aka.ms/o0ukef>
> 
> From: IBM Mainframe Discussion List  on behalf of 
> Seymour J Metz 
> Sent: Thursday, October 12, 2023 7:40:18 AM
> To: IBM-MAIN@LISTSERV.UA.EDU 
> Subject: Re: IPCS and Rexx
> 
> While it is admittedly easier using the macros, it can be done in pure REXX, 
> although I wouldn't bother.
> 
> 
> From: IBM Mainframe Discussion List  on behalf of 
> Joseph Reichman 
> Sent: Thursday, October 12, 2023 7:28 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: IPCS and Rexx
> 
> I understand my only question is to  get it clear to CREATE a structure aka 
> control block this can only be done using the BLSQ assembler macros
> 
> I agree any other processing I need to do I’ll do it in Rexx
> 
> Thank you
> 
>> On Oct 12, 2023, at 5:03 AM, Binyamin Dissen  
>> wrote:
>> 
>> The example that I sent - IS - doing a RUNCHAIN. It is following the SSCT
>> chain extracting information.
>> 
>> All you need to do is do something similar with your control blocks, just
>> using
>> 
>> ADDRESS IPCS "NOTE 'text'"
>> 
>> for the control block information that you want in the IPCS report.
>> 
>> Most of my IPCS EXECs have the subroutine
>> 
>> DOASAY: PROCEDURE EXPOSE DEBUGFLAG
>> ARG TEXT
>> NOTE "'"TEXT"'"
>> IF  DEBUGFLAG = "DEBUG"  THEN
>> SAY TEXT
>> RETURN
>> 
>> so I can
>> 
>>  CALL DOASAY string-expression
>> 
>> On Wed, 11 Oct 2023 03:58:49 -0400 Joseph Reichman 
>> wrote:
>> 
>> :>Thanks
>> :>
>> :>That was very helpful back to my first beef
>> :>
>> :>The EVAL….. subcommands particular to Rexx clist are interspersed among 
>> those IPCS subcommands done by hand
>> :>
>> :>The reason I think I cannt get around verbx assembler exit is because I 
>> want to create a structure to be used in the run chain command and I think 
>> that necessitates the use of the BLSQS assembler macros
>> :>
>> :>> On Oct 11, 2023, at 2:18 AM, Binyamin Dissen 
>>  wrote:
>> :>>
>> :>> ?I am still mystified why you want to use CBF out of REXX code.
>> :>>
>> :>> Use EVAL to get the storage. I would think that it would be much easier 
>> to
>> :>> manipulate the control block itself rather than parse the CBF output.
>> :>>
>> :>> Here is a REXX program to show the subsystem control blocks.
>> :>>
>> :>> /* REXX */
>> :>> ARG REQNAME
>> :>> ADDRESS IPCS
>> :>> SSNAME = ""
>> :>> POINTER = ""
>> :>> SSCTADDR = ""
>> :>> "EVAL 10.?+128?+18 REXX(STORAGE(SSCTADDR))"
>> :>> DO  WHILE SSCTADDR ¬= "" & RC = 0
>> :>>"EVAL" SSCTADDR"+8 REXX(STORAGE(SSNAME))"
>> :>>"EVAL" SSCTADDR"+4 REXX(STORAGE(POINTER))"
>> :>>    IF  REQNAME = ""  THEN
>> :>>SAY "SSCT AT ADDRESS" SSCTADDR "NAME" X2C(SSNAME),
>> :>>"NEXT" POINTER
>> :>>ELSE
>> :>>IF  REQNAME = X2C(SSNAME)  THEN  DO
>> :>>"EQUATE SSCT"REQNAME SSCTADDR"."
>> :>>SAY "SSCT"REQNAME "SET TO" SSCTADDR
>> :>>RETURN 0
>> :>>END
>> :>>SSCTADDR = POINTER
>> :>>END
>> :>> IF  REQNAME <> ""  THEN
>> :>>SAY "SUBSYSTEM" REQNAME "NOT FOUND"
>> :>> RETURN 0
>> :>>
>> :&

Re: IPCS and Rexx

2023-10-12 Thread Tony Harminc
On Thu, 12 Oct 2023 at 07:29, Joseph Reichman  wrote:

> I understand my only question is to  get it clear to CREATE a structure
> aka control block this can only be done using the BLSQ assembler macros
>
> I agree any other processing I need to do I’ll do it in Rexx
>

I suggest you think about what you want to accomplish. If you want to have
IPCS format your control block and display it, then sure - use the BLSQ
macros, and then issue CBF. This is essentially adding your CBs to IPCS so
IPCS can produce the same kind of thing you get from the SUMMary and
ANALYZE and CBF commands, which - if you issue all of them -  is pretty
much like reproducing a printed SYSUDUMP. You then do the work of figuring
out what went wrong.

But then what's the REXX doing? In my view the benefit of using REXX in
IPCS is that it can do analysis, and as I said, can go through your (and
IBM's) control blocks to discover anomalies, summarize the status of things
*with knowledge of and from the point of view of your application*, and
perhaps interact with you as the analysis proceeds.

You can certainly issue CBF (using your CB definitions) from your REXX code
- nothing wrong with that. But again, it might be more useful to have your
REXX go through your CB directly (not through formatted output from CBF) to
discover what's gone wrong.

It depends on what you want, and that may be very different from our case
as an ISV. Our need is first to promptly get an idea of what a customer
dump is about, and how it relates to the ticket they've opened. We
routinely run a REXX program that summarizes things - is our product
actually running (we get plenty of dumps that don't capture our code or
where the product isn't even installed or was never started or the dump is
from the wrong LPAR or from last year), what version is it, what fixes are
applied, a list of the module eyecatchers, what abended (if anything), how
long has our code been running (sometimes it abended at startup - other
times it's been running for 6 months), etc. etc. This saves a lot of time
in initial analysis. Then we have the background, and can go on to more
detailed look at what went wrong and how it relates to the reported
symptoms (abend, hang, wrong results, performance, etc.) For this second
stage we can, as I described earlier, format useful information from our
own and IBM's CBs, summarize and drill down into the status of our work
queues, and so on.

If you are just debugging your own code in your own dev/test environment,
then your needs will be quite different. If you'll explain what you want to
accomplish, then I'm sure people will have further suggestions.

Tony H.

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


Re: IPCS and Rexx

2023-10-12 Thread Seymour J Metz
You retrieve the CB storage from IPCS, use SUBSTR to extract the fields you 
want, use c2x() to make binary data human readable and use standard REXX 
abutment and concatenation to format the data with labels.


From: IBM Mainframe Discussion List  on behalf of 
Joseph Reichman 
Sent: Thursday, October 12, 2023 7:45 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS and Rexx

Seymour I looked thru the manuals to create an actual control block or 
structure think you need assembler just give me a hint how I would go abou this 
task In  Rexx

Get Outlook for iOS<https://aka.ms/o0ukef>

From: IBM Mainframe Discussion List  on behalf of 
Seymour J Metz 
Sent: Thursday, October 12, 2023 7:40:18 AM
To: IBM-MAIN@LISTSERV.UA.EDU 
Subject: Re: IPCS and Rexx

While it is admittedly easier using the macros, it can be done in pure REXX, 
although I wouldn't bother.


From: IBM Mainframe Discussion List  on behalf of 
Joseph Reichman 
Sent: Thursday, October 12, 2023 7:28 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS and Rexx

I understand my only question is to  get it clear to CREATE a structure aka 
control block this can only be done using the BLSQ assembler macros

I agree any other processing I need to do I’ll do it in Rexx

Thank you

> On Oct 12, 2023, at 5:03 AM, Binyamin Dissen  
> wrote:
>
> The example that I sent - IS - doing a RUNCHAIN. It is following the SSCT
> chain extracting information.
>
> All you need to do is do something similar with your control blocks, just
> using
>
> ADDRESS IPCS "NOTE 'text'"
>
> for the control block information that you want in the IPCS report.
>
> Most of my IPCS EXECs have the subroutine
>
> DOASAY: PROCEDURE EXPOSE DEBUGFLAG
>  ARG TEXT
>  NOTE "'"TEXT"'"
>  IF  DEBUGFLAG = "DEBUG"  THEN
>  SAY TEXT
>  RETURN
>
> so I can
>
>   CALL DOASAY string-expression
>
> On Wed, 11 Oct 2023 03:58:49 -0400 Joseph Reichman 
> wrote:
>
> :>Thanks
> :>
> :>That was very helpful back to my first beef
> :>
> :>The EVAL….. subcommands particular to Rexx clist are interspersed among 
> those IPCS subcommands done by hand
> :>
> :>The reason I think I cannt get around verbx assembler exit is because I 
> want to create a structure to be used in the run chain command and I think 
> that necessitates the use of the BLSQS assembler macros
> :>
> :>> On Oct 11, 2023, at 2:18 AM, Binyamin Dissen  
> wrote:
> :>>
> :>> ?I am still mystified why you want to use CBF out of REXX code.
> :>>
> :>> Use EVAL to get the storage. I would think that it would be much easier to
> :>> manipulate the control block itself rather than parse the CBF output.
> :>>
> :>> Here is a REXX program to show the subsystem control blocks.
> :>>
> :>> /* REXX */
> :>> ARG REQNAME
> :>> ADDRESS IPCS
> :>> SSNAME = ""
> :>> POINTER = ""
> :>> SSCTADDR = ""
> :>> "EVAL 10.?+128?+18 REXX(STORAGE(SSCTADDR))"
> :>> DO  WHILE SSCTADDR ¬= "" & RC = 0
> :>>"EVAL" SSCTADDR"+8 REXX(STORAGE(SSNAME))"
> :>>"EVAL" SSCTADDR"+4 REXX(STORAGE(POINTER))"
> :>>IF  REQNAME = ""  THEN
> :>>SAY "SSCT AT ADDRESS" SSCTADDR "NAME" X2C(SSNAME),
> :>>"NEXT" POINTER
> :>>ELSE
> :>>IF  REQNAME = X2C(SSNAME)  THEN  DO
> :>>"EQUATE SSCT"REQNAME SSCTADDR"."
> :>>SAY "SSCT"REQNAME "SET TO" SSCTADDR
> :>>RETURN 0
> :>>END
> :>>SSCTADDR = POINTER
> :>>END
> :>> IF  REQNAME <> ""  THEN
> :>>SAY "SUBSYSTEM" REQNAME "NOT FOUND"
> :>> RETURN 0
> :>>
> :>> On Tue, 10 Oct 2023 21:02:53 -0400 Joseph Reichman 
> :>> wrote:
> :>>
> :>> :>Hi
> :>> :>
> :>> :>I am posting this message here and at the TSO/REXX LISTSERV not sure 
> which
> :>> :>is more appropriate.
> :>> :>
> :>> :>Would anyone know where the documentation is for IPCS and REXX
> :>> :>
> :>> :>Are all the valid commands that are on ISPF PANEL BLSPDSLE if so is the
> :>> :>command/subcommand in Rexx documented any where
> :>> :>
> :>&g

Re: IPCS and Rexx

2023-10-12 Thread Joseph Reichman
Seymour I looked thru the manuals to create an actual control block or 
structure think you need assembler just give me a hint how I would go abou this 
task In  Rexx

Get Outlook for iOS<https://aka.ms/o0ukef>

From: IBM Mainframe Discussion List  on behalf of 
Seymour J Metz 
Sent: Thursday, October 12, 2023 7:40:18 AM
To: IBM-MAIN@LISTSERV.UA.EDU 
Subject: Re: IPCS and Rexx

While it is admittedly easier using the macros, it can be done in pure REXX, 
although I wouldn't bother.


From: IBM Mainframe Discussion List  on behalf of 
Joseph Reichman 
Sent: Thursday, October 12, 2023 7:28 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS and Rexx

I understand my only question is to  get it clear to CREATE a structure aka 
control block this can only be done using the BLSQ assembler macros

I agree any other processing I need to do I’ll do it in Rexx

Thank you

> On Oct 12, 2023, at 5:03 AM, Binyamin Dissen  
> wrote:
>
> The example that I sent - IS - doing a RUNCHAIN. It is following the SSCT
> chain extracting information.
>
> All you need to do is do something similar with your control blocks, just
> using
>
> ADDRESS IPCS "NOTE 'text'"
>
> for the control block information that you want in the IPCS report.
>
> Most of my IPCS EXECs have the subroutine
>
> DOASAY: PROCEDURE EXPOSE DEBUGFLAG
>  ARG TEXT
>  NOTE "'"TEXT"'"
>  IF  DEBUGFLAG = "DEBUG"  THEN
>  SAY TEXT
>  RETURN
>
> so I can
>
>   CALL DOASAY string-expression
>
> On Wed, 11 Oct 2023 03:58:49 -0400 Joseph Reichman 
> wrote:
>
> :>Thanks
> :>
> :>That was very helpful back to my first beef
> :>
> :>The EVAL….. subcommands particular to Rexx clist are interspersed among 
> those IPCS subcommands done by hand
> :>
> :>The reason I think I cannt get around verbx assembler exit is because I 
> want to create a structure to be used in the run chain command and I think 
> that necessitates the use of the BLSQS assembler macros
> :>
> :>> On Oct 11, 2023, at 2:18 AM, Binyamin Dissen  
> wrote:
> :>>
> :>> ?I am still mystified why you want to use CBF out of REXX code.
> :>>
> :>> Use EVAL to get the storage. I would think that it would be much easier to
> :>> manipulate the control block itself rather than parse the CBF output.
> :>>
> :>> Here is a REXX program to show the subsystem control blocks.
> :>>
> :>> /* REXX */
> :>> ARG REQNAME
> :>> ADDRESS IPCS
> :>> SSNAME = ""
> :>> POINTER = ""
> :>> SSCTADDR = ""
> :>> "EVAL 10.?+128?+18 REXX(STORAGE(SSCTADDR))"
> :>> DO  WHILE SSCTADDR ¬= "" & RC = 0
> :>>"EVAL" SSCTADDR"+8 REXX(STORAGE(SSNAME))"
> :>>"EVAL" SSCTADDR"+4 REXX(STORAGE(POINTER))"
> :>>IF  REQNAME = ""  THEN
> :>>SAY "SSCT AT ADDRESS" SSCTADDR "NAME" X2C(SSNAME),
> :>>"NEXT" POINTER
> :>>ELSE
> :>>IF  REQNAME = X2C(SSNAME)  THEN  DO
> :>>"EQUATE SSCT"REQNAME SSCTADDR"."
> :>>SAY "SSCT"REQNAME "SET TO" SSCTADDR
> :>>RETURN 0
> :>>END
> :>>SSCTADDR = POINTER
> :>>END
> :>> IF  REQNAME <> ""  THEN
> :>>SAY "SUBSYSTEM" REQNAME "NOT FOUND"
> :>> RETURN 0
> :>>
> :>> On Tue, 10 Oct 2023 21:02:53 -0400 Joseph Reichman 
> :>> wrote:
> :>>
> :>> :>Hi
> :>> :>
> :>> :>I am posting this message here and at the TSO/REXX LISTSERV not sure 
> which
> :>> :>is more appropriate.
> :>> :>
> :>> :>Would anyone know where the documentation is for IPCS and REXX
> :>> :>
> :>> :>Are all the valid commands that are on ISPF PANEL BLSPDSLE if so is the
> :>> :>command/subcommand in Rexx documented any where
> :>> :>
> :>> :>I mean formatting a control block doesn't seem like it can be done in 
> Rexx
> :>> :>because it requires the BLSQMDEF BLSQMFLD and BLSQSHDR so I guess that 
> has
> :>> :>to be Assembler
> :>> :>
> :>> :>Anu information or telling me where the doc is would help
> :>> :>
> :>> :>thanks
> :>> :>
> :>> :>
> :>> :>--

Re: IPCS and Rexx

2023-10-12 Thread Seymour J Metz
While it is admittedly easier using the macros, it can be done in pure REXX, 
although I wouldn't bother.


From: IBM Mainframe Discussion List  on behalf of 
Joseph Reichman 
Sent: Thursday, October 12, 2023 7:28 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS and Rexx

I understand my only question is to  get it clear to CREATE a structure aka 
control block this can only be done using the BLSQ assembler macros

I agree any other processing I need to do I’ll do it in Rexx

Thank you

> On Oct 12, 2023, at 5:03 AM, Binyamin Dissen  
> wrote:
>
> The example that I sent - IS - doing a RUNCHAIN. It is following the SSCT
> chain extracting information.
>
> All you need to do is do something similar with your control blocks, just
> using
>
> ADDRESS IPCS "NOTE 'text'"
>
> for the control block information that you want in the IPCS report.
>
> Most of my IPCS EXECs have the subroutine
>
> DOASAY: PROCEDURE EXPOSE DEBUGFLAG
>  ARG TEXT
>  NOTE "'"TEXT"'"
>  IF  DEBUGFLAG = "DEBUG"  THEN
>  SAY TEXT
>  RETURN
>
> so I can
>
>   CALL DOASAY string-expression
>
> On Wed, 11 Oct 2023 03:58:49 -0400 Joseph Reichman 
> wrote:
>
> :>Thanks
> :>
> :>That was very helpful back to my first beef
> :>
> :>The EVAL….. subcommands particular to Rexx clist are interspersed among 
> those IPCS subcommands done by hand
> :>
> :>The reason I think I cannt get around verbx assembler exit is because I 
> want to create a structure to be used in the run chain command and I think 
> that necessitates the use of the BLSQS assembler macros
> :>
> :>> On Oct 11, 2023, at 2:18 AM, Binyamin Dissen  
> wrote:
> :>>
> :>> ?I am still mystified why you want to use CBF out of REXX code.
> :>>
> :>> Use EVAL to get the storage. I would think that it would be much easier to
> :>> manipulate the control block itself rather than parse the CBF output.
> :>>
> :>> Here is a REXX program to show the subsystem control blocks.
> :>>
> :>> /* REXX */
> :>> ARG REQNAME
> :>> ADDRESS IPCS
> :>> SSNAME = ""
> :>> POINTER = ""
> :>> SSCTADDR = ""
> :>> "EVAL 10.?+128?+18 REXX(STORAGE(SSCTADDR))"
> :>> DO  WHILE SSCTADDR ¬= "" & RC = 0
> :>>"EVAL" SSCTADDR"+8 REXX(STORAGE(SSNAME))"
> :>>"EVAL" SSCTADDR"+4 REXX(STORAGE(POINTER))"
> :>>IF  REQNAME = ""  THEN
> :>>SAY "SSCT AT ADDRESS" SSCTADDR "NAME" X2C(SSNAME),
> :>>"NEXT" POINTER
> :>>ELSE
> :>>IF  REQNAME = X2C(SSNAME)  THEN  DO
> :>>"EQUATE SSCT"REQNAME SSCTADDR"."
> :>>SAY "SSCT"REQNAME "SET TO" SSCTADDR
> :>>RETURN 0
> :>>END
> :>>SSCTADDR = POINTER
> :>>END
> :>> IF  REQNAME <> ""  THEN
> :>>SAY "SUBSYSTEM" REQNAME "NOT FOUND"
> :>> RETURN 0
> :>>
> :>> On Tue, 10 Oct 2023 21:02:53 -0400 Joseph Reichman 
> :>> wrote:
> :>>
> :>> :>Hi
> :>> :>
> :>> :>I am posting this message here and at the TSO/REXX LISTSERV not sure 
> which
> :>> :>is more appropriate.
> :>> :>
> :>> :>Would anyone know where the documentation is for IPCS and REXX
> :>> :>
> :>> :>Are all the valid commands that are on ISPF PANEL BLSPDSLE if so is the
> :>> :>command/subcommand in Rexx documented any where
> :>> :>
> :>> :>I mean formatting a control block doesn't seem like it can be done in 
> Rexx
> :>> :>because it requires the BLSQMDEF BLSQMFLD and BLSQSHDR so I guess that 
> has
> :>> :>to be Assembler
> :>> :>
> :>> :>Anu information or telling me where the doc is would help
> :>> :>
> :>> :>thanks
> :>> :>
> :>> :>
> :>> :>--
> :>> :>For IBM-MAIN subscribe / signoff / archive access instructions,
> :>> :>send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
> :>>
> :>> --
> :>> Binyamin Dissen 
> :>> 
> http://secure-web.cisco.com/1IRjTkmdTyXkTVFuDlBW_hS

Re: IPCS and Rexx

2023-10-12 Thread Joseph Reichman
I understand my only question is to  get it clear to CREATE a structure aka 
control block this can only be done using the BLSQ assembler macros

I agree any other processing I need to do I’ll do it in Rexx 

Thank you 

> On Oct 12, 2023, at 5:03 AM, Binyamin Dissen  
> wrote:
> 
> The example that I sent - IS - doing a RUNCHAIN. It is following the SSCT
> chain extracting information.
> 
> All you need to do is do something similar with your control blocks, just
> using
> 
> ADDRESS IPCS "NOTE 'text'"
> 
> for the control block information that you want in the IPCS report.
> 
> Most of my IPCS EXECs have the subroutine
> 
> DOASAY: PROCEDURE EXPOSE DEBUGFLAG 
>  ARG TEXT  
>  NOTE "'"TEXT"'"   
>  IF  DEBUGFLAG = "DEBUG"  THEN 
>  SAY TEXT  
>  RETURN
> 
> so I can 
> 
>   CALL DOASAY string-expression
> 
> On Wed, 11 Oct 2023 03:58:49 -0400 Joseph Reichman 
> wrote:
> 
> :>Thanks 
> :>
> :>That was very helpful back to my first beef 
> :>
> :>The EVAL….. subcommands particular to Rexx clist are interspersed among 
> those IPCS subcommands done by hand 
> :>
> :>The reason I think I cannt get around verbx assembler exit is because I 
> want to create a structure to be used in the run chain command and I think 
> that necessitates the use of the BLSQS assembler macros   
> :>
> :>> On Oct 11, 2023, at 2:18 AM, Binyamin Dissen  
> wrote:
> :>> 
> :>> ?I am still mystified why you want to use CBF out of REXX code.
> :>> 
> :>> Use EVAL to get the storage. I would think that it would be much easier to
> :>> manipulate the control block itself rather than parse the CBF output.
> :>> 
> :>> Here is a REXX program to show the subsystem control blocks.
> :>> 
> :>> /* REXX */  
> :>> ARG REQNAME 
> :>> ADDRESS IPCS
> :>> SSNAME = "" 
> :>> POINTER = ""
> :>> SSCTADDR = ""   
> :>> "EVAL 10.?+128?+18 REXX(STORAGE(SSCTADDR))" 
> :>> DO  WHILE SSCTADDR ¬= "" & RC = 0   
> :>>"EVAL" SSCTADDR"+8 REXX(STORAGE(SSNAME))"   
> :>>"EVAL" SSCTADDR"+4 REXX(STORAGE(POINTER))"  
> :>>IF  REQNAME = ""  THEN  
> :>>SAY "SSCT AT ADDRESS" SSCTADDR "NAME" X2C(SSNAME),  
> :>>"NEXT" POINTER  
> :>>ELSE
> :>>IF  REQNAME = X2C(SSNAME)  THEN  DO 
> :>>"EQUATE SSCT"REQNAME SSCTADDR"."
> :>>SAY "SSCT"REQNAME "SET TO" SSCTADDR 
> :>>RETURN 0
> :>>END 
> :>>SSCTADDR = POINTER  
> :>>END 
> :>> IF  REQNAME <> ""  THEN 
> :>>SAY "SUBSYSTEM" REQNAME "NOT FOUND" 
> :>> RETURN 0
> :>> 
> :>> On Tue, 10 Oct 2023 21:02:53 -0400 Joseph Reichman 
> :>> wrote:
> :>> 
> :>> :>Hi 
> :>> :>
> :>> :>I am posting this message here and at the TSO/REXX LISTSERV not sure 
> which
> :>> :>is more appropriate.
> :>> :>
> :>> :>Would anyone know where the documentation is for IPCS and REXX 
> :>> :>
> :>> :>Are all the valid commands that are on ISPF PANEL BLSPDSLE if so is the
> :>> :>command/subcommand in Rexx documented any where 
> :>> :>
> :>> :>I mean formatting a control block doesn't seem like it can be done in 
> Rexx
> :>> :>because it requires the BLSQMDEF BLSQMFLD and

Re: IPCS and Rexx

2023-10-12 Thread Binyamin Dissen
The example that I sent - IS - doing a RUNCHAIN. It is following the SSCT
chain extracting information.

All you need to do is do something similar with your control blocks, just
using

ADDRESS IPCS "NOTE 'text'"

for the control block information that you want in the IPCS report.

Most of my IPCS EXECs have the subroutine

 DOASAY: PROCEDURE EXPOSE DEBUGFLAG 
  ARG TEXT  
  NOTE "'"TEXT"'"   
  IF  DEBUGFLAG = "DEBUG"  THEN 
  SAY TEXT  
  RETURN

so I can 

   CALL DOASAY string-expression

On Wed, 11 Oct 2023 03:58:49 -0400 Joseph Reichman 
wrote:

:>Thanks 
:>
:>That was very helpful back to my first beef 
:>
:>The EVAL….. subcommands particular to Rexx clist are interspersed among those 
IPCS subcommands done by hand 
:>
:>The reason I think I cannt get around verbx assembler exit is because I want 
to create a structure to be used in the run chain command and I think that 
necessitates the use of the BLSQS assembler macros   
:>
:>> On Oct 11, 2023, at 2:18 AM, Binyamin Dissen  
wrote:
:>> 
:>> ?I am still mystified why you want to use CBF out of REXX code.
:>> 
:>> Use EVAL to get the storage. I would think that it would be much easier to
:>> manipulate the control block itself rather than parse the CBF output.
:>> 
:>> Here is a REXX program to show the subsystem control blocks.
:>> 
:>> /* REXX */  
:>> ARG REQNAME 
:>> ADDRESS IPCS
:>> SSNAME = "" 
:>> POINTER = ""
:>> SSCTADDR = ""   
:>> "EVAL 10.?+128?+18 REXX(STORAGE(SSCTADDR))" 
:>> DO  WHILE SSCTADDR ¬= "" & RC = 0   
:>>"EVAL" SSCTADDR"+8 REXX(STORAGE(SSNAME))"   
:>>"EVAL" SSCTADDR"+4 REXX(STORAGE(POINTER))"  
:>>IF  REQNAME = ""  THEN  
:>>SAY "SSCT AT ADDRESS" SSCTADDR "NAME" X2C(SSNAME),  
:>>"NEXT" POINTER  
:>>ELSE
:>>IF  REQNAME = X2C(SSNAME)  THEN  DO 
:>>"EQUATE SSCT"REQNAME SSCTADDR"."
:>>SAY "SSCT"REQNAME "SET TO" SSCTADDR 
:>>RETURN 0
:>>END 
:>>SSCTADDR = POINTER  
:>>END 
:>> IF  REQNAME <> ""  THEN     
:>>SAY "SUBSYSTEM" REQNAME "NOT FOUND" 
:>> RETURN 0
:>> 
:>> On Tue, 10 Oct 2023 21:02:53 -0400 Joseph Reichman 
:>> wrote:
:>> 
:>> :>Hi 
:>> :>
:>> :>I am posting this message here and at the TSO/REXX LISTSERV not sure which
:>> :>is more appropriate.
:>> :>
:>> :>Would anyone know where the documentation is for IPCS and REXX 
:>> :>
:>> :>Are all the valid commands that are on ISPF PANEL BLSPDSLE if so is the
:>> :>command/subcommand in Rexx documented any where 
:>> :>
:>> :>I mean formatting a control block doesn't seem like it can be done in Rexx
:>> :>because it requires the BLSQMDEF BLSQMFLD and BLSQSHDR so I guess that has
:>> :>to be Assembler
:>> :>
:>> :>Anu information or telling me where the doc is would help
:>> :>
:>> :>thanks   
:>> :>
:>> :>
:>> :>--
:>> :>For IBM-MAIN subscribe / signoff / archive access instructions,
:>> :>send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
:>> 
:>> --
:>> Binyamin Dissen 
:>> http://www.dissensoftware.com
:>> 
:>> Director, Dissen Software, Bar & Grill - Israel
:>> 
:>> --
:>> 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

--
Binyamin Dissen 
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel

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


Re: IPCS and Rexx

2023-10-12 Thread Ituriel do Neto
I'm also very interested in this IPCS subject.
Can any of you share some Rexx samples interacting with IPCS, to see how it 
works?

TIA


Best Regards

Ituriel do Nascimento Neto
z/OS System Programmer






Em quinta-feira, 12 de outubro de 2023 às 06:51:34 GMT+2, Tony Harminc 
 escreveu: 





On Wed, 11 Oct 2023 at 19:25, Paul Gilmartin <
042bfe9c879d-dmarc-requ...@listserv.ua.edu> wrote:

> On Wed, 11 Oct 2023 17:07:44 -0400, Tony Harminc wrote:
> >    ...
> >So e.g. we have a product
> >that has a notion of transactions, and a transaction is represented by a
> >single CB that points to various other CBs, ...
> >
> How do you achieve that, given that Rexx has no pointer type?
>

The transaction product is not written in REXX (it's mostly assembler).
We're talking about using REXX running under IPCS to process a dump from
that product.

STORAGE() lets you access and modify CBs once you know
> their addresses, but not to use addresses of Rexx-owned objects.
>

Sure. But the REXX runs with IPCS commands available to it, and at least
one of them (EVAL) can use a REXX variable interface. So the content of any
storage in the dump can be stuck into a REXX variable. And a live system
can (mostly) be examined without changing the REXX, since with suitable
permissions IPCS EVAL can fetch from active storage rather than a dump.

I can imagine supplying interfaces to GETMAIN/FREEMAIN.
>

Indeed. Perhaps an extension to the REXX Storage function. With of course
ALETs and 64-bit and such as well...

I once lamented that the SMP/E API depends on pointers in
> ways that are hostile to REXX.  Kurt Q. replied, approximately,
> "Well, you can't please everybody."
>
> The ICSF API, in contrast, is REXX- friendly.  There are SAMPLIB
> members.  The only pointers needed are arguments to LINKMVS.
>

The Binder API is mostly at least not REXX-unfriendly.

>
> REXX is important enough that it should be considered in the
> design of an API.
>

IPCS does have that variable interface, which is Good Enough to get a lot
done.


Tony H.

--
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: IPCS and Rexx

2023-10-11 Thread Tony Harminc
On Wed, 11 Oct 2023 at 19:25, Paul Gilmartin <
042bfe9c879d-dmarc-requ...@listserv.ua.edu> wrote:

> On Wed, 11 Oct 2023 17:07:44 -0400, Tony Harminc wrote:
> >...
> >So e.g. we have a product
> >that has a notion of transactions, and a transaction is represented by a
> >single CB that points to various other CBs, ...
> >
> How do you achieve that, given that Rexx has no pointer type?
>

The transaction product is not written in REXX (it's mostly assembler).
We're talking about using REXX running under IPCS to process a dump from
that product.

STORAGE() lets you access and modify CBs once you know
> their addresses, but not to use addresses of Rexx-owned objects.
>

 Sure. But the REXX runs with IPCS commands available to it, and at least
one of them (EVAL) can use a REXX variable interface. So the content of any
storage in the dump can be stuck into a REXX variable. And a live system
can (mostly) be examined without changing the REXX, since with suitable
permissions IPCS EVAL can fetch from active storage rather than a dump.

I can imagine supplying interfaces to GETMAIN/FREEMAIN.
>

Indeed. Perhaps an extension to the REXX Storage function. With of course
ALETs and 64-bit and such as well...

I once lamented that the SMP/E API depends on pointers in
> ways that are hostile to REXX.  Kurt Q. replied, approximately,
> "Well, you can't please everybody."
>
> The ICSF API, in contrast, is REXX- friendly.  There are SAMPLIB
> members.  The only pointers needed are arguments to LINKMVS.
>

The Binder API is mostly at least not REXX-unfriendly.

>
> REXX is important enough that it should be considered in the
> design of an API.
>

IPCS does have that variable interface, which is Good Enough to get a lot
done.

Tony H.

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


Re: IPCS and Rexx

2023-10-11 Thread Joseph Reichman
Ok thanks 

> On Oct 11, 2023, at 7:25 PM, Paul Gilmartin 
> <042bfe9c879d-dmarc-requ...@listserv.ua.edu> wrote:
> 
> On Wed, 11 Oct 2023 17:07:44 -0400, Tony Harminc wrote:
>>   ... 
>> So e.g. we have a product
>> that has a notion of transactions, and a transaction is represented by a
>> single CB that points to various other CBs, ...
>> 
> How do you achieve that, given that Rexx has no pointer type?
> STORAGE() lets you access and modify CBs once you know
> their addresses, but not to use addresses of Rexx-owned objects.
> 
> I can imagine supplying interfaces to GETMAIN/FREEMAIN.
> 
> I once lamented that the SMP/E API depends on pointers in
> ways that are hostile to REXX.  Kurt Q. replied, approximately,
> "Well, you can't please everybody."
> 
> The ICSF API, in contrast, is REXX- friendly.  There are SAMPLIB
> members.  The only pointers needed are arguments to LINKMVS.
> 
> REXX is important enough that it should be considered in the
> design of an API.
> 
> -- 
> 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: IPCS and Rexx

2023-10-11 Thread Paul Gilmartin
On Wed, 11 Oct 2023 17:07:44 -0400, Tony Harminc wrote:
>... 
>So e.g. we have a product
>that has a notion of transactions, and a transaction is represented by a
>single CB that points to various other CBs, ...
>
How do you achieve that, given that Rexx has no pointer type?
STORAGE() lets you access and modify CBs once you know
their addresses, but not to use addresses of Rexx-owned objects.

I can imagine supplying interfaces to GETMAIN/FREEMAIN.

I once lamented that the SMP/E API depends on pointers in
ways that are hostile to REXX.  Kurt Q. replied, approximately,
"Well, you can't please everybody."

The ICSF API, in contrast, is REXX- friendly.  There are SAMPLIB
members.  The only pointers needed are arguments to LINKMVS.

REXX is important enough that it should be considered in the
design of an API.

-- 
gil

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


Re: IPCS and Rexx

2023-10-11 Thread Joseph Reichman
I have one question is there another way to create a structure besides using 
the BLSQ macros that’s the only thing I need to do in assembler the rest I’ll 
do Rexx

> On Oct 11, 2023, at 5:08 PM, Tony Harminc  wrote:
> 
> On Wed, 11 Oct 2023 at 03:59, Joseph Reichman  wrote:
> 
> That was very helpful back to my first beef
>> 
>> The EVAL….. subcommands particular to Rexx clist are interspersed among
>> those IPCS subcommands done by hand
>> 
>> The reason I think I cannt get around verbx assembler exit is because I
>> want to create a structure to be used in the run chain command and I think
>> that necessitates the use of the BLSQS assembler macros
>> 
> 
> A few observations. First, like Binyamin, I don't know why you don't just
> use REXX to format your own (or anyone's) control blocks. I, and I'm sure
> others, have written many thousands of lines of REXX to go through dumps.
> It's not just formatting CBs, but having the REXX take different actions
> based on what it finds in some of those blocks. So e.g. we have a product
> that has a notion of transactions, and a transaction is represented by a
> single CB that points to various other CBs, and that transaction CB is
> always on one of many possible queues, or it's being processed by a
> specific module. So the REXX can go through the queues and format the
> status and history of all or a single transaction, chase down and report on
> the linked CBs with their various pieces of information, and so on. Or it
> can start with a transaction ID (perhapssupplied by the dump reader as an
> argument), find where it's queued, and report on things unique to the queue
> it's on. And it can prompt the dump reader based on things found during
> processing, e.g. "Transaction x has 7 sub-transactions that have not
> completed - report on them? Reply Yes, No, or Details". That kind of thing.
> 
> RUNCHAIN is one of the easiest things to write in REXX. It doesn't have to
> exactly mimic the IPCS command, but it probably needs notions like the
> offset of the chain pointer, how end-of-chain is marked, how to format some
> fields in each block encountered (the eyecatcher?), whether there are
> errors that make a CB instance suspicious (maybe the "in use" and "has been
> freed" flags are both on), and so on. Just make it a subroutine, and then
> you can call it from anywhere in your larger REXX program.
> 
> Write yourself a few generalized REXX subroutines - one to manage storage
> fetching requests with perhaps different types of input (hex or decimal or
> character string for the address, since you may conveniently have any of
> those available), one to format output like one line of a dump (in my case
> I can optionally format EBCDIC/ASCII or both) and ensure that you don't
> pass things like a single quote to the IPCS NOTE command, perhaps one to
> manipulate addresses (you pass it a hex string and a decimal offset, or
> whatever), and of course routines that are more specific to your own code
> and CBs.
> 
> There's another aspect... You can indeed use the BLSQ... macros to define a
> control block in a format that IPCS can format from. These macros are not
> very easy to use, imho, but still can be useful. You can do two things with
> them: use them to define your own control blocks to IPCS (since obviously
> IPCS doesn't come with these mappings) so that you can use CBF and such on
> them, but also you can interpret the macro output in your own REXX routines
> if you like, without using the IBM IPCS commands. Fiddly, but potentially a
> way to do more than the IBM formatters do.
> 
> [BTW, if you want a lot of examples of use of the BLSQ... macros, look at
> the JES2 source code that should be on your system. HASM modules are
> all related to IPCS, and most are CB definitions. I imagine IBM has a tool
> to take the assembler definitions (or maybe ADATA) and churn out the BLSQM
> stuff. Or maybe they're all hand written.]
> 
> Tony H.
> 
> --
> 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: IPCS and Rexx

2023-10-11 Thread Tony Harminc
On Wed, 11 Oct 2023 at 03:59, Joseph Reichman  wrote:

That was very helpful back to my first beef
>
> The EVAL….. subcommands particular to Rexx clist are interspersed among
> those IPCS subcommands done by hand
>
> The reason I think I cannt get around verbx assembler exit is because I
> want to create a structure to be used in the run chain command and I think
> that necessitates the use of the BLSQS assembler macros
>

A few observations. First, like Binyamin, I don't know why you don't just
use REXX to format your own (or anyone's) control blocks. I, and I'm sure
others, have written many thousands of lines of REXX to go through dumps.
It's not just formatting CBs, but having the REXX take different actions
based on what it finds in some of those blocks. So e.g. we have a product
that has a notion of transactions, and a transaction is represented by a
single CB that points to various other CBs, and that transaction CB is
always on one of many possible queues, or it's being processed by a
specific module. So the REXX can go through the queues and format the
status and history of all or a single transaction, chase down and report on
the linked CBs with their various pieces of information, and so on. Or it
can start with a transaction ID (perhapssupplied by the dump reader as an
argument), find where it's queued, and report on things unique to the queue
it's on. And it can prompt the dump reader based on things found during
processing, e.g. "Transaction x has 7 sub-transactions that have not
completed - report on them? Reply Yes, No, or Details". That kind of thing.

RUNCHAIN is one of the easiest things to write in REXX. It doesn't have to
exactly mimic the IPCS command, but it probably needs notions like the
offset of the chain pointer, how end-of-chain is marked, how to format some
fields in each block encountered (the eyecatcher?), whether there are
errors that make a CB instance suspicious (maybe the "in use" and "has been
freed" flags are both on), and so on. Just make it a subroutine, and then
you can call it from anywhere in your larger REXX program.

Write yourself a few generalized REXX subroutines - one to manage storage
fetching requests with perhaps different types of input (hex or decimal or
character string for the address, since you may conveniently have any of
those available), one to format output like one line of a dump (in my case
I can optionally format EBCDIC/ASCII or both) and ensure that you don't
pass things like a single quote to the IPCS NOTE command, perhaps one to
manipulate addresses (you pass it a hex string and a decimal offset, or
whatever), and of course routines that are more specific to your own code
and CBs.

There's another aspect... You can indeed use the BLSQ... macros to define a
control block in a format that IPCS can format from. These macros are not
very easy to use, imho, but still can be useful. You can do two things with
them: use them to define your own control blocks to IPCS (since obviously
IPCS doesn't come with these mappings) so that you can use CBF and such on
them, but also you can interpret the macro output in your own REXX routines
if you like, without using the IBM IPCS commands. Fiddly, but potentially a
way to do more than the IBM formatters do.

[BTW, if you want a lot of examples of use of the BLSQ... macros, look at
the JES2 source code that should be on your system. HASM modules are
all related to IPCS, and most are CB definitions. I imagine IBM has a tool
to take the assembler definitions (or maybe ADATA) and churn out the BLSQM
stuff. Or maybe they're all hand written.]

Tony H.

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


Re: IPCS and Rexx

2023-10-11 Thread Joseph Reichman
Thanks 

That was very helpful back to my first beef 

The EVAL….. subcommands particular to Rexx clist are interspersed among those 
IPCS subcommands done by hand 

The reason I think I cannt get around verbx assembler exit is because I want to 
create a structure to be used in the run chain command and I think that 
necessitates the use of the BLSQS assembler macros   

> On Oct 11, 2023, at 2:18 AM, Binyamin Dissen  
> wrote:
> 
> I am still mystified why you want to use CBF out of REXX code.
> 
> Use EVAL to get the storage. I would think that it would be much easier to
> manipulate the control block itself rather than parse the CBF output.
> 
> Here is a REXX program to show the subsystem control blocks.
> 
> /* REXX */  
> ARG REQNAME 
> ADDRESS IPCS
> SSNAME = "" 
> POINTER = ""
> SSCTADDR = ""   
> "EVAL 10.?+128?+18 REXX(STORAGE(SSCTADDR))" 
> DO  WHILE SSCTADDR ¬= "" & RC = 0   
>"EVAL" SSCTADDR"+8 REXX(STORAGE(SSNAME))"   
>"EVAL" SSCTADDR"+4 REXX(STORAGE(POINTER))"  
>IF  REQNAME = ""  THEN  
>SAY "SSCT AT ADDRESS" SSCTADDR "NAME" X2C(SSNAME),  
>"NEXT" POINTER  
>ELSE
>IF  REQNAME = X2C(SSNAME)  THEN  DO 
>"EQUATE SSCT"REQNAME SSCTADDR"."
>SAY "SSCT"REQNAME "SET TO" SSCTADDR 
>RETURN 0
>END 
>SSCTADDR = POINTER  
>END 
> IF  REQNAME <> ""  THEN 
>SAY "SUBSYSTEM" REQNAME "NOT FOUND" 
> RETURN 0
> 
> On Tue, 10 Oct 2023 21:02:53 -0400 Joseph Reichman 
> wrote:
> 
> :>Hi 
> :>
> :>I am posting this message here and at the TSO/REXX LISTSERV not sure which
> :>is more appropriate.
> :>
> :>Would anyone know where the documentation is for IPCS and REXX 
> :>
> :>Are all the valid commands that are on ISPF PANEL BLSPDSLE if so is the
> :>command/subcommand in Rexx documented any where 
> :>
> :>I mean formatting a control block doesn't seem like it can be done in Rexx
> :>because it requires the BLSQMDEF BLSQMFLD and BLSQSHDR so I guess that has
> :>to be Assembler
> :>
> :>Anu information or telling me where the doc is would help
> :>
> :>thanks   
> :>
> :>
> :>--
> :>For IBM-MAIN subscribe / signoff / archive access instructions,
> :>send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
> 
> --
> Binyamin Dissen 
> http://www.dissensoftware.com
> 
> Director, Dissen Software, Bar & Grill - Israel
> 
> --
> 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: IPCS and Rexx

2023-10-11 Thread Binyamin Dissen
I am still mystified why you want to use CBF out of REXX code.

Use EVAL to get the storage. I would think that it would be much easier to
manipulate the control block itself rather than parse the CBF output.

Here is a REXX program to show the subsystem control blocks.

/* REXX */  
ARG REQNAME 
ADDRESS IPCS
SSNAME = "" 
POINTER = ""
SSCTADDR = ""   
"EVAL 10.?+128?+18 REXX(STORAGE(SSCTADDR))" 
DO  WHILE SSCTADDR ¬= "" & RC = 0   
"EVAL" SSCTADDR"+8 REXX(STORAGE(SSNAME))"   
"EVAL" SSCTADDR"+4 REXX(STORAGE(POINTER))"  
IF  REQNAME = ""  THEN  
SAY "SSCT AT ADDRESS" SSCTADDR "NAME" X2C(SSNAME),  
"NEXT" POINTER  
ELSE
IF  REQNAME = X2C(SSNAME)  THEN  DO 
"EQUATE SSCT"REQNAME SSCTADDR"."
SAY "SSCT"REQNAME "SET TO" SSCTADDR 
RETURN 0
END 
SSCTADDR = POINTER  
END 
IF  REQNAME <> ""  THEN 
SAY "SUBSYSTEM" REQNAME "NOT FOUND" 
RETURN 0

On Tue, 10 Oct 2023 21:02:53 -0400 Joseph Reichman 
wrote:

:>Hi 
:>
:>I am posting this message here and at the TSO/REXX LISTSERV not sure which
:>is more appropriate.
:>
:>Would anyone know where the documentation is for IPCS and REXX 
:>
:>Are all the valid commands that are on ISPF PANEL BLSPDSLE if so is the
:>command/subcommand in Rexx documented any where 
:>
:>I mean formatting a control block doesn't seem like it can be done in Rexx
:>because it requires the BLSQMDEF BLSQMFLD and BLSQSHDR so I guess that has
:>to be Assembler
:>
:>Anu information or telling me where the doc is would help
:>
:>thanks   
:>
:>
:>--
:>For IBM-MAIN subscribe / signoff / archive access instructions,
:>send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

--
Binyamin Dissen 
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel

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


Re: IPCS and Rexx

2023-10-10 Thread Seymour J Metz
LINK, LINKMVS, LINKPGM? Is there still a working RCF process?

I'm also skeptical of Modes of IPCS Operation in the user manual; I know of no 
reason that you can't use all of

address iljexec
address ipcs
address tso

in the same member.


From: IBM Mainframe Discussion List  on behalf of 
Paul Gilmartin <042bfe9c879d-dmarc-requ...@listserv.ua.edu>
Sent: Tuesday, October 10, 2023 10:30 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS and Rexx

On Wed, 11 Oct 2023 01:36:32 +, Seymour J Metz  wrote:

>SA23-1382-60   z/OS MVS IPCS Commands
>
In which I read:
   – CALLMVS REXX host command environment

>SA32-0972-60   z/OS TSO/E REXX Reference
>
Doesn't seem to mention "CALLMVS".  Do they mean LINKMVS?

--
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: IPCS and Rexx

2023-10-10 Thread Joseph Reichman
I read cover to cover the three IPCS manuals there are sporadic examples of 
certain subcommands 

Bottom line are there Rexx commands for all the commands from option 6 on the 
IPCS primary option menu 

Would be nice if this was documented with the syntax of each command 

> On Oct 10, 2023, at 10:30 PM, Paul Gilmartin 
> <042bfe9c879d-dmarc-requ...@listserv.ua.edu> wrote:
> 
> On Wed, 11 Oct 2023 01:36:32 +, Seymour J Metz  wrote:
> 
>> SA23-1382-60z/OS MVS IPCS Commands
>> 
> In which I read:
>   – CALLMVS REXX host command environment
> 
>> SA32-0972-60z/OS TSO/E REXX Reference
>> 
> Doesn't seem to mention "CALLMVS".  Do they mean LINKMVS?
> 
> -- 
> 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: IPCS and Rexx

2023-10-10 Thread Paul Gilmartin
On Wed, 11 Oct 2023 01:36:32 +, Seymour J Metz  wrote:

>SA23-1382-60   z/OS MVS IPCS Commands  
>
In which I read:
   – CALLMVS REXX host command environment

>SA32-0972-60   z/OS TSO/E REXX Reference   
>
Doesn't seem to mention "CALLMVS".  Do they mean LINKMVS?

-- 
gil

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


Re: IPCS and Rexx

2023-10-10 Thread Seymour J Metz
SA23-1382-60z/OS MVS IPCS Commands  
A23-1384-60 z/OS MVS IPCS User's Guide
SA32-0972-60z/OS TSO/E REXX Reference   
SA32-0982-60z/OS TSO/E REXX User's Guide


From: IBM Mainframe Discussion List  on behalf of 
Joseph Reichman 
Sent: Tuesday, October 10, 2023 9:02 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: IPCS and Rexx

Hi

I am posting this message here and at the TSO/REXX LISTSERV not sure which
is more appropriate.

Would anyone know where the documentation is for IPCS and REXX

Are all the valid commands that are on ISPF PANEL BLSPDSLE if so is the
command/subcommand in Rexx documented any where

I mean formatting a control block doesn't seem like it can be done in Rexx
because it requires the BLSQMDEF BLSQMFLD and BLSQSHDR so I guess that has
to be Assembler

Anu information or telling me where the doc is would help

thanks


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


IPCS and Rexx

2023-10-10 Thread Joseph Reichman
Hi 

I am posting this message here and at the TSO/REXX LISTSERV not sure which
is more appropriate.

Would anyone know where the documentation is for IPCS and REXX 

Are all the valid commands that are on ISPF PANEL BLSPDSLE if so is the
command/subcommand in Rexx documented any where 

I mean formatting a control block doesn't seem like it can be done in Rexx
because it requires the BLSQMDEF BLSQMFLD and BLSQSHDR so I guess that has
to be Assembler

Anu information or telling me where the doc is would help

thanks   


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


Re: issuing a IPCS subcommand from an IPCS exit

2023-10-10 Thread Joseph Reichman
Trying to create a control block using BLSQMFLD BLSQMDEF and BLSQHMDR if not 
for the macros as Jon mentioned could of done this in Rexx

Thanks 

> On Oct 10, 2023, at 5:58 AM, Binyamin Dissen  
> wrote:
> 
> Why would you want to read the results of a CBF in your exit? Process the
> actual control block.
> 
> On Mon, 9 Oct 2023 16:50:22 -0400 Joseph Reichman 
> wrote:
> 
> :>What if I need the info in the exit
> :>Is there any way of getting it
> 
> :>On Mon, Oct 9, 2023 at 4:49 PM Seymour J Metz  wrote:
> 
> :>> IPCS executes the command after you return from the exit.
> 
> :>> From: IBM Mainframe Discussion List  on behalf
> :>> of Joseph Reichman 
> :>> Sent: Monday, October 9, 2023 10:40 AM
> :>> To: IBM-MAIN@LISTSERV.UA.EDU
> :>> Subject: issuing a  IPCS subcommand from an IPCS exit
> 
> :>> I would like to issue an IPCS subcommand (in an exit) to be specific what
> :>> asid's are in dump so if I did this by hand it would be
> 
> :>> IP CBF RTCT
> 
> :>> Looking at the   IPCS customization guide
> 
> :>> Services Available to an IPCS Exit Routine
> 
> :>> Under TSO/E services bullet 2
> 
> :>> 2. The STACK service and the TSO/E EXEC command can be used to queue
> :>> subcommands and CLISTs, respectively, to be processed by IPCS immediately
> :>> after completion of the current subcommand
> 
> :>> Does this explain how if I wanted to execute the above command in a exit I
> :>> would if someone could explain would appreciate it
> 
> --
> Binyamin Dissen 
> http://www.dissensoftware.com
> 
> Director, Dissen Software, Bar & Grill - Israel
> 
> --
> 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: issuing a IPCS subcommand from an IPCS exit

2023-10-10 Thread Joseph Reichman
I’m using the verbx exit mainly to format my own personal control blocks the 
BLSQMDEF BLSQMFLD and BLSQLSHDR macros and format service I’m not sure if it’s 
available under Rexx while  the service  might be the macros are assembler I 
could maybe have the Rexx call an assembler program for that particular task 

Thanks 

> On Oct 10, 2023, at 12:01 AM, Jon Perryman  wrote:
> 
> On Mon, 9 Oct 2023 10:40:11 -0400, Joseph Reichman  
> wrote:
> 
>> I would like to issue an IPCS subcommand (in an exit) 
>> 
>> IP CBF RTCT
>> 
>> 2. The STACK service and the TSO/E EXEC command can be used to queue
>> subcommands and CLISTs, respectively, to be processed by IPCS immediately
>> after completion of the current subcommand
> 
> IPCS exits have access to a small subset of IPCS commands through IPCS exit 
> services. If I remember correctly, CBFORMAT is one of those services which 
> gives you access to IP CBFORMAT. It should be documented in the IPCS 
> Customization.
> 
> An important IPCS exit service is NOTE which should be used to display lines. 
> Using non-IPCS macros may appear to work, they are not compatible with all 
> environments. For instance, WTO will display the line on the TSO terminal but 
> in batch but will not display in the ISPF IPCS dialog.
> 
> You should avoid exec and "STACK service" (which I believe is "TSO/e STACK 
> service"). If you are familiar with REXX, think about the problems in using 
> push/pull to communicate.
> 
> My suggestion is to REXX execs. When an IPCS exit is needed, then use the 
> IPCS equate service to pass information back to the REXX exec which will use 
> IP LISTSYM to grab the information. It still processes after the command 
> finishes but without the TSO stack pitfalls.It also allows you to issue 
> commands not supported by exit services and you SYSOUTTRAP output generated 
> by IPCS commands (If I remember correctly).
> 
> 
> 
> --
> 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: issuing a IPCS subcommand from an IPCS exit

2023-10-10 Thread Binyamin Dissen
Why would you want to read the results of a CBF in your exit? Process the
actual control block.

On Mon, 9 Oct 2023 16:50:22 -0400 Joseph Reichman 
wrote:

:>What if I need the info in the exit
:>Is there any way of getting it

:>On Mon, Oct 9, 2023 at 4:49 PM Seymour J Metz  wrote:

:>> IPCS executes the command after you return from the exit.

:>> From: IBM Mainframe Discussion List  on behalf
:>> of Joseph Reichman 
:>> Sent: Monday, October 9, 2023 10:40 AM
:>> To: IBM-MAIN@LISTSERV.UA.EDU
:>> Subject: issuing a  IPCS subcommand from an IPCS exit

:>> I would like to issue an IPCS subcommand (in an exit) to be specific what
:>> asid's are in dump so if I did this by hand it would be

:>> IP CBF RTCT

:>> Looking at the   IPCS customization guide

:>> Services Available to an IPCS Exit Routine

:>> Under TSO/E services bullet 2

:>> 2. The STACK service and the TSO/E EXEC command can be used to queue
:>> subcommands and CLISTs, respectively, to be processed by IPCS immediately
:>> after completion of the current subcommand

:>> Does this explain how if I wanted to execute the above command in a exit I
:>> would if someone could explain would appreciate it

--
Binyamin Dissen 
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel

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


Re: issuing a IPCS subcommand from an IPCS exit

2023-10-09 Thread Jon Perryman
On Mon, 9 Oct 2023 10:40:11 -0400, Joseph Reichman  
wrote:

>I would like to issue an IPCS subcommand (in an exit) 
>
>IP CBF RTCT
>
>2. The STACK service and the TSO/E EXEC command can be used to queue
>subcommands and CLISTs, respectively, to be processed by IPCS immediately
>after completion of the current subcommand

IPCS exits have access to a small subset of IPCS commands through IPCS exit 
services. If I remember correctly, CBFORMAT is one of those services which 
gives you access to IP CBFORMAT. It should be documented in the IPCS 
Customization.

An important IPCS exit service is NOTE which should be used to display lines. 
Using non-IPCS macros may appear to work, they are not compatible with all 
environments. For instance, WTO will display the line on the TSO terminal but 
in batch but will not display in the ISPF IPCS dialog.

You should avoid exec and "STACK service" (which I believe is "TSO/e STACK 
service"). If you are familiar with REXX, think about the problems in using 
push/pull to communicate.

My suggestion is to REXX execs. When an IPCS exit is needed, then use the IPCS 
equate service to pass information back to the REXX exec which will use IP 
LISTSYM to grab the information. It still processes after the command finishes 
but without the TSO stack pitfalls.It also allows you to issue commands not 
supported by exit services and you SYSOUTTRAP output generated by IPCS commands 
(If I remember correctly).



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


Re: issuing a IPCS subcommand from an IPCS exit

2023-10-09 Thread Joseph Reichman
What if I need the info in the exit
Is there any way of getting it


On Mon, Oct 9, 2023 at 4:49 PM Seymour J Metz  wrote:

> IPCS executes the command after you return from the exit.
>
> 
> From: IBM Mainframe Discussion List  on behalf
> of Joseph Reichman 
> Sent: Monday, October 9, 2023 10:40 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: issuing a  IPCS subcommand from an IPCS exit
>
> Hi
>
> I would like to issue an IPCS subcommand (in an exit) to be specific what
> asid's are in dump so if I did this by hand it would be
>
> IP CBF RTCT
>
> Looking at the   IPCS customization guide
>
> Services Available to an IPCS Exit Routine
>
> Under TSO/E services bullet 2
>
> 2. The STACK service and the TSO/E EXEC command can be used to queue
> subcommands and CLISTs, respectively, to be processed by IPCS immediately
> after completion of the current subcommand
>
> Does this explain how if I wanted to execute the above command in a exit I
> would if someone could explain would appreciate it
>
> Thanks
>
> --
> 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: issuing a IPCS subcommand from an IPCS exit

2023-10-09 Thread Seymour J Metz
IPCS executes the command after you return from the exit.


From: IBM Mainframe Discussion List  on behalf of 
Joseph Reichman 
Sent: Monday, October 9, 2023 10:40 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: issuing a  IPCS subcommand from an IPCS exit

Hi

I would like to issue an IPCS subcommand (in an exit) to be specific what
asid's are in dump so if I did this by hand it would be

IP CBF RTCT

Looking at the   IPCS customization guide

Services Available to an IPCS Exit Routine

Under TSO/E services bullet 2

2. The STACK service and the TSO/E EXEC command can be used to queue
subcommands and CLISTs, respectively, to be processed by IPCS immediately
after completion of the current subcommand

Does this explain how if I wanted to execute the above command in a exit I
would if someone could explain would appreciate it

Thanks

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


issuing a IPCS subcommand from an IPCS exit

2023-10-09 Thread Joseph Reichman
Hi

I would like to issue an IPCS subcommand (in an exit) to be specific what
asid's are in dump so if I did this by hand it would be 

IP CBF RTCT

Looking at the   IPCS customization guide 

Services Available to an IPCS Exit Routine

Under TSO/E services bullet 2 

2. The STACK service and the TSO/E EXEC command can be used to queue
subcommands and CLISTs, respectively, to be processed by IPCS immediately
after completion of the current subcommand

Does this explain how if I wanted to execute the above command in a exit I
would if someone could explain would appreciate it 

Thanks

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


Re: IPCS: Can ADPLSACC Service code access 64 bit storage

2023-10-08 Thread Joseph Reichman
use storage map service 

Thank you 

> On Oct 7, 2023, at 8:39 AM, Peter Relson  wrote:
> 
> I think that a better subject/question (accompanying that with information 
> about what you tried) would have been:
> 
> In IPCS, how do you access 64-bit storage? I tried using ADPLSACC and that 
> didn't seem to work with the options that I used which were 
> 
> Some code I have seen uses BLSRESSY with ABITS=64 to define an initialized 
> area, copying that to a dynamic area, filling in that area with such info as 
> the length and address of the area to be accessed (when using ABITS=64, the 
> address field is 64-bit), then calling ADPLESRV such as this:
> CALL ADPLESRV(ABDPL,ADPLSSYM,XSSP)
> where the XSSP (defined by BLSRXSSP) has such information as the address of 
> the target buffer.
> 
> Peter Relson
> z/OS Core Technology Design
> 
> 
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

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


Re: IPCS: Can ADPLSACC Service code access 64 bit storage

2023-10-07 Thread Peter Relson
I think that a better subject/question (accompanying that with information 
about what you tried) would have been:

In IPCS, how do you access 64-bit storage? I tried using ADPLSACC and that 
didn't seem to work with the options that I used which were 

Some code I have seen uses BLSRESSY with ABITS=64 to define an initialized 
area, copying that to a dynamic area, filling in that area with such info as 
the length and address of the area to be accessed (when using ABITS=64, the 
address field is 64-bit), then calling ADPLESRV such as this:
CALL ADPLESRV(ABDPL,ADPLSSYM,XSSP)
where the XSSP (defined by BLSRXSSP) has such information as the address of the 
target buffer.

Peter Relson
z/OS Core Technology Design


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


Re: IPCS: Can ADPLSACC Service code access 64 bit storage

2023-10-06 Thread Binyamin Dissen
On Thu, 5 Oct 2023 15:53:48 -0400 Joseph Reichman 
wrote:

:>Can ADPLSACC Service code access 64 bit storage

My old code uses XMSP for 64 bit storage.

--
Binyamin Dissen 
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel

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


Re: IPCS: Can ADPLSACC Service code access 64 bit storage

2023-10-05 Thread Michael Stein
On Thu, Oct 05, 2023 at 03:53:48PM -0400, Joseph Reichman wrote:
> Can ADPLSACC Service code access 64 bit storage

Context?

Oh, IPCS

z/OS MVS IPCS Customization
https://www.ibm.com/docs/en/zos/2.1.0?topic=services-invoking-exit-router

https://www.ibm.com/docs/en/zos/2.1.0?topic=sas-requirements

Field ADPLPAAD in ADPLPACC must contain the address of the requested dump data.

MVS Data Areas (ABE - IAR)
https://www.ibm.com/docs/en/zos/3.1.0?topic=iar-blsabdpl-information

 The following bit governs the masking of register zero prior
 to its use by the storage access service as a virtual
 storage address. If it is off, X'7FFF' will be
 logically ANDed with register zero to obtain the requested
 address. If it is on, X'00FF' will be logically ANDed
 with register zero to obtain the requested address.

Hard to fit 64 bits in x'7fff'

Don't know the real answer.  The first question I'd ask is if
the 64 bit storage was in the dump.  2nd is how to get to it...

take a look at:

https://www.ibm.com/docs/en/zos/3.1.0?topic=router-symbol-service

Symbol Service

https://www.ibm.com/docs/en/zos/3.1.0?topic=router-symbol-service

Note that in OS/390® Release 10 and higher, the symbol service supports
64-bit addresses and lengths.

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


Re: IPCS: Can ADPLSACC Service code access 64 bit storage

2023-10-05 Thread Adam Johanson
I recently fought this battle when writing a verb exit that needed to access 
64-bit storage. Perhaps it was because I couldn't see how to get ADPLSACC to 
access 64-bit storage.

The IPCS Customization doc mentions that the Storage Map Service (ADPLSMAP) can 
do it, so that's what I went with. It gets passed an XMSP area which points to 
another area that you need, the Storage Map Record, mapped by BLSRSASY. The 
XMSP points to the Storage Map Record via XMSPSAR.

Looking at the verb exit, the other relevant parts to accessing 64-bit storage 
seem to be:

- BLSRSASY specifying ABITS=64

- Setting flag XMSPV64 in the XMSP


Items for using ADPLSMAP that don't seem to be unique to accessing 64-bit 
storage:

-  I used the "Address Space Type Code" (field SASYAST) of "CPU ASID" via 
setting SASYAST to EQUate ZZZASTCV. For this "protocol", the ASID from which to 
get the storage is set in the 2nd qualifier (SASYAS2). In my case, I got the 
ASID from ADPLASID. The first qualifier (SASYAS1) is set to x''. This 
is mentioned towards the top of the BLSRSASY expansion.

- Set XMSPCODE to EQUate XMSPACC indicating that we're accessing storage

- Buffer to return storage into is pointed to by XMSPBUF

- Address of storage to get from the dump is set in SASYLAD

- Amount of storage to get is set in SASYFLE

- Data type code SASYDTY set to EQUate ZZZDTYU, indicating "area"


Those seem to be the important parts of what was required apart from the 
"administrative" stuff like setting the module name. I was also using an 
initialized BLSRSASY area from its macro invocation, so that could be setting 
(important) things that I missed mentioning.

It took a bit of trial and error, so there could be a better way. But the 
Storage Map Service seems pretty powerful, so I liked the idea of having a 
working example of how to use it for future reference.

===
Adam Johanson
Broadcom Mainframe Software Division

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


IPCS: Can ADPLSACC Service code access 64 bit storage

2023-10-05 Thread Joseph Reichman
Can ADPLSACC Service code access 64 bit storage

thanks

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


Re: When did the IPCS follow 64 bit pointer character change?

2023-09-21 Thread Binyamin Dissen
Interesting.

Code page 500 has them reversed

Not sure how I got to that code page .

Changed to 1140 (though I could go back to backups to see what I used to use).


On Wed, 20 Sep 2023 17:31:00 -0700 Tom Brennan 
wrote:

:>Also check the terminal type in the ISPF settings.  I usually recommend 
:>option 3 (3278).  Things like option 5 (3290A) start sending graphic 
:>escape characters for things like ] and can be confusing.  Not sure how 
:>this would relate to ! though.  But maybe it's worth a quick look.
:>
:>On 9/20/2023 3:30 PM, Mark Zelden wrote:
:>> On Wed, 20 Sep 2023 22:45:29 +0300, Binyamin Dissen 
 wrote:
:>> 
:>>> It seems like the IPCS 64 bit follow pointer has become ] (right bracket)
:>>> instead of ! (exclamation point).
:>>>
:>> 
:>> Code page issue on your emulator?   Note the valid codes from help when I 
tried
:>> a bracket.  This is z/OS 2.5.
:>> 
:>> 
:>> ASID(X'013C') ADDRESS(00.) STORAGE --
:>> Command ===>
:>> Valid codes: L, H, %, ?, !
:>> 0020   7000   7000   7000   7000
:>> 0040            00FD7FE0
:>> 0060.:7F. LENGTH(X'20')--All bytes contain X'00'
:>> 0080      1004   00020078   00040016
:>> 00A0   FE01         1FEDE400
:>> 00C0   2800      FBFB   FE7C
:>> 00E0.:FF. LENGTH(X'20')--All bytes contain X'00'
:>> 
:>> 
:>> 
:>> Best Regards,
:>> 
:>> Mark
:>> --
:>> Mark Zelden - Zelden Consulting Services - z/OS, OS/390 and MVS
:>> ITIL v3 Foundation Certified
:>> mailto:m...@mzelden.com
:>> Mark's MVS Utilities: http://www.mzelden.com/mvsutil.html
:>> 
:>> --
:>> 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

--
Binyamin Dissen 
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel

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


Re: When did the IPCS follow 64 bit pointer character change?

2023-09-20 Thread Paul Gilmartin
On Wed, 20 Sep 2023 17:30:05 -0500, Mark Zelden wrote:

>On Wed, 20 Sep 2023 22:45:29 +0300, Binyamin Dissen 
> wrote:
>
>Code page issue on your emulator?   Note the valid codes from help when I 
>tried 
>a bracket.  This is z/OS 2.5.  
>
It's EBCDIC, y'know.

-- 
gil

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


Re: When did the IPCS follow 64 bit pointer character change?

2023-09-20 Thread Tom Brennan
Also check the terminal type in the ISPF settings.  I usually recommend 
option 3 (3278).  Things like option 5 (3290A) start sending graphic 
escape characters for things like ] and can be confusing.  Not sure how 
this would relate to ! though.  But maybe it's worth a quick look.


On 9/20/2023 3:30 PM, Mark Zelden wrote:

On Wed, 20 Sep 2023 22:45:29 +0300, Binyamin Dissen 
 wrote:


It seems like the IPCS 64 bit follow pointer has become ] (right bracket)
instead of ! (exclamation point).



Code page issue on your emulator?   Note the valid codes from help when I tried
a bracket.  This is z/OS 2.5.


ASID(X'013C') ADDRESS(00.) STORAGE --
Command ===>
Valid codes: L, H, %, ?, !
0020   7000   7000   7000   7000
0040            00FD7FE0
0060.:7F. LENGTH(X'20')--All bytes contain X'00'
0080      1004   00020078   00040016
00A0   FE01         1FEDE400
00C0   2800      FBFB   FE7C
00E0.:FF. LENGTH(X'20')--All bytes contain X'00'



Best Regards,

Mark
--
Mark Zelden - Zelden Consulting Services - z/OS, OS/390 and MVS
ITIL v3 Foundation Certified
mailto:m...@mzelden.com
Mark's MVS Utilities: http://www.mzelden.com/mvsutil.html

--
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: When did the IPCS follow 64 bit pointer character change?

2023-09-20 Thread Mark Zelden
On Wed, 20 Sep 2023 22:45:29 +0300, Binyamin Dissen 
 wrote:

>It seems like the IPCS 64 bit follow pointer has become ] (right bracket)
>instead of ! (exclamation point).
>

Code page issue on your emulator?   Note the valid codes from help when I tried 
a bracket.  This is z/OS 2.5.  


ASID(X'013C') ADDRESS(00.) STORAGE --
Command ===> 
Valid codes: L, H, %, ?, !   
0020   7000   7000   7000   7000 
0040            00FD7FE0 
0060.:7F. LENGTH(X'20')--All bytes contain X'00' 
0080      1004   00020078   00040016 
00A0   FE01         1FEDE400 
00C0   2800      FBFB   FE7C 
00E0.:FF. LENGTH(X'20')--All bytes contain X'00' 



Best Regards,

Mark
--
Mark Zelden - Zelden Consulting Services - z/OS, OS/390 and MVS
ITIL v3 Foundation Certified
mailto:m...@mzelden.com
Mark's MVS Utilities: http://www.mzelden.com/mvsutil.html

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


Re: When did the IPCS follow 64 bit pointer character change?

2023-09-20 Thread Charles Hardee
I'm on 2.5 and just used ! today.


On Wed, Sep 20, 2023 at 3:20 PM Binyamin Dissen 
wrote:

> You specify the pointer type in the storage display screen.
>
> % = 24bit
> ? = 31 bit
>
> On Wed, 20 Sep 2023 15:15:28 -0500 Paul Gilmartin
> <042bfe9c879d-dmarc-requ...@listserv.ua.edu> wrote:
>
> :>On Wed, 20 Sep 2023 22:45:29 +0300, Binyamin Dissen wrote:
> :>
> :>>It seems like the IPCS 64 bit follow pointer has become ] (right
> bracket)
> :>>instead of ! (exclamation point).
> :>>
> :>How does it distinguish 24- from 31-bit pointers?
> :>Of course that could be resolved with control area maps.
>
> --
> Binyamin Dissen 
> http://www.dissensoftware.com
>
> Director, Dissen Software, Bar & Grill - Israel
>
> --
> 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: When did the IPCS follow 64 bit pointer character change?

2023-09-20 Thread Binyamin Dissen
You specify the pointer type in the storage display screen.

% = 24bit
? = 31 bit

On Wed, 20 Sep 2023 15:15:28 -0500 Paul Gilmartin
<042bfe9c879d-dmarc-requ...@listserv.ua.edu> wrote:

:>On Wed, 20 Sep 2023 22:45:29 +0300, Binyamin Dissen wrote:
:>
:>>It seems like the IPCS 64 bit follow pointer has become ] (right bracket)
:>>instead of ! (exclamation point).
:>>
:>How does it distinguish 24- from 31-bit pointers?
:>Of course that could be resolved with control area maps.

--
Binyamin Dissen 
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel

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


Re: When did the IPCS follow 64 bit pointer character change?

2023-09-20 Thread Paul Gilmartin
On Wed, 20 Sep 2023 22:45:29 +0300, Binyamin Dissen wrote:

>It seems like the IPCS 64 bit follow pointer has become ] (right bracket)
>instead of ! (exclamation point).
>
How does it distinguish 24- from 31-bit pointers?
Of course that could be resolved with control area maps.

-- 
gil

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


When did the IPCS follow 64 bit pointer character change?

2023-09-20 Thread Binyamin Dissen
It seems like the IPCS 64 bit follow pointer has become ] (right bracket)
instead of ! (exclamation point).

--
Binyamin Dissen 
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel

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


Re: IPCS formatting of I/O control blocks

2023-04-29 Thread Jim Mulder
 If you do  an IPCSDATA ACTIVE   subcommand under IPCS, you should find in there

DATA STRUCTURE(Tcb) FIND(BLSSTCB) FORMAT(IEATCBF) SCAN(BLSVTCB)  
  
   EXIT CBSTAT(TCB) EP(BLSAFLG)   
   EXIT CBSTAT(TCB) EP(IEAVTRCA)  
   EXIT CBSTAT(TCB) EP(IEAVG701)  
   EXIT CBSTAT(TCB) EP(BPXGMCBS)  
  
   EXIT FORMAT(TCB) EP(IECDAFMT)  
   EXIT FORMAT(TCB) EP(IECIOFMT)  
   EXIT FORMAT(TCB) EP(IEAVTFMT)  
   EXIT FORMAT(TCB) EP(IEAVD30)   
   EXIT FORMAT(TCB) EP(IEAVXD01)  
   EXIT FORMAT(TCB) EP(ICHIXTCB)  

  It is the EXIT FORMAT(TCB) EP(IECDAFMT) that drives this data management 
formatting.
Here is a sample from z/OS 2.5:

DATA MANAGEMENT CONTROL BLOCKS FOR OPEN DATA SETS   
   

   
---DEB 1 AT LOCATION 8AAD84, DDNAME=SYS00021 DSNAME=O.MCEVS4.DMP00065,  INPUT 
--   
-24 AVT:  EOEA   00FF47EC  SIOA 80CD5500  PCIA  00FF47EC   CEA 00FF47EC 
 XCEA 00FF47EC06:09:56.57 2023/03/21   
-10 PREFIX:  0120  DEBX 008AB070 LENGTH 11  AMTYPE 20   
TBLOF 0012(TIME AND DATE OPENED)   
+0  NMSUB 05  TCB8B11E0   AMLNG 10   DEBB   00   IRBAD 6800 
 PATB 1100 
+10 NMEXT 01  USRPB  00   ECBAD FD00 DCBAD  8F0AEA40 EXSCL 04   
 APPB 8AAD60   
+20 DVMOD 58  UCBA FB23B8 00  TRKHI 00   START  03160009   END 0001 
NMTRK 2000 
+30 ACC.METH: VOLSQ 0001  VOLNM 0001  DSNM  
BLKSI    LRECL 1040
+40 SUBROUTINES: VU V7 BK BA BB 
   
+4A         
   
***DCB AT LOCATION 0AEA40   (BSAM)  
DASD,RECFM=FBS 
+0  DCBE  000AED40 KEYCN 00 FDAD  00 0009 8B DVTBA 
E76026  
+10 KEYLE 00  DEVT 2F  TRBAL 7FFF   BUFCB 0001  BUFL DSORG 4000 
IOBAD 0001 
+20 EODAD 8601 RECFM 98 EXLST 0AEC7CTIOT 0418MACRF 2400 
IFLGS 00 DEBA  8AAD84  
+30 OFLGS 12  D6C978   OPTCD 00   BCD808IOBL 0A  SYNA  
090DA8   CIND     BLKSI 6180
+40 WCPO  30013030 IOBA  000C955C NCP 14   EOBRA CBD098  EOBW  
80CBD098 DIRCT    LRECL 1040
+54 POINT 00D68188  
   
EXIT LIST: 870AEC90 
   
**DCBE AT LOCATION 000AED40 
   
+0  IDC4C3C2C5   LEN  0038   DCB  000AEA40RELA  
   
+10 FLG1  C080   NSTR 0001   FLG3 A000  BLKSI8 

+20 XSIZ     EODA    SYNA  
   MULTACC 00   MULTSDN 0A  
IOBS ARE NUMBERED IN PHYSICAL ORDER.
   
***IOB 16 AT LOCATION 0C95B4(SAM, BPAM - NORMAL SCHEDULING) 
CE DE  
-10VIDAN LENRD NIOBA 000C95FC NECB 7F00 
   
+0 FLAG1 0200SENS  ECBPT 7F0D6EA4 CSW  000C95E4 
0C00   
+10START 000C95DCDCBPT 000AEA40RESTR INCAM  
  SEEK 098A
+28 060B7000 6180       
   
0D6EA4  DECB:  ECB 7F00  FLAGS 000D3000DCB   1D551F04 AREA C9C5C1E5 
  STATUS E7C3C6C5  
***IOB 17 AT LOCATION 0C9604(SAM, BPAM - NORMAL SCHEDULING) 
CE DE  
-10VIDAN LENRD 

Re: IPCS formatting of I/O control blocks

2023-04-27 Thread Seymour J Metz
I see TIOT (does that include XTIOT?) but not DCB, DECB or IOB, and I would 
have expected any new support for them to be via VERBEXIT.

Do you have a sample output? Thanks.


From: IBM Mainframe Discussion List  on behalf of Jim 
Mulder 
Sent: Thursday, April 27, 2023 2:41 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS formatting of I/O control blocks

  Yes, Wayne Rhoten enhanced that a while back.  I don't remember
which release of z/OS, but I have gotten accustomed to seeing it
in the output from the SUMMARY FORMAT subcommand.

Jim Mulder

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Seymour J Metz
Sent: Thursday, April 27, 2023 8:28 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: IPCS formatting of I/O control blocks

The last time I looked, IPCS did not format, e.g., DCB, DECB, IOB. Has that 
changed?



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

--
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: IPCS formatting of I/O control blocks

2023-04-27 Thread Jim Mulder
  Yes, Wayne Rhoten enhanced that a while back.  I don't remember
which release of z/OS, but I have gotten accustomed to seeing it 
in the output from the SUMMARY FORMAT subcommand.

Jim Mulder  

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Seymour J Metz
Sent: Thursday, April 27, 2023 8:28 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: IPCS formatting of I/O control blocks

The last time I looked, IPCS did not format, e.g., DCB, DECB, IOB. Has that 
changed?



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

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


Re: IPCS formatting of I/O control blocks

2023-04-27 Thread Binyamin Dissen
On Thu, 27 Apr 2023 12:28:18 + Seymour J Metz  wrote:

:>The last time I looked, IPCS did not format, e.g., DCB, DECB, IOB. Has that 
changed?

Doesn't appear so. Need to make the formatting blocks.

--
Binyamin Dissen 
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel

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


IPCS formatting of I/O control blocks

2023-04-27 Thread Seymour J Metz
The last time I looked, IPCS did not format, e.g., DCB, DECB, IOB. Has that 
changed?



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

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


Re: IPCS VERBX 64bit storage

2022-09-22 Thread Binyamin Dissen
On Thu, 22 Sep 2022 13:16:07 +0100 Colin Paice  wrote:

:>I'm very rusty ( 15+ years since I last used this) ...  but can you use
:>your 31 bit code to access a symbol relating to a 31/64 bit data item?
:>I only used 31 bit, but I think I used to get a block of storage from the
:>dump with a 64 bit address into my buffer in 31 bit address.
:>You have to use the correct ESSY block.
:>I could be deluded

It has been a while, but I already had am API for the 31 bit addresses and did
not want to change the API. The 64bit call will certainly do 31 bit zero
extended addresses, but I believe the way the data is returned is different.


:>On Thu, 22 Sept 2022 at 11:55, Binyamin Dissen 
:>wrote:
:>
:>> Looking at my code:
:>>
:>> The 31bit access call is
:>>
:>>  IHBOPLTX ,+
:>>(ABDPL,  ..ABDPL+
:>>=A(ADPLSACC),..TYPE OF CALL: ACCESS STOR+
:>>MY_ADPLPACC),..ACCESS STORAGE PARM LIST +
:>>    MF=(E,PLIST)
:>>  L R15,ADPLSERV LOCATE IPCS SERVICE ROUTINE
:>>  BASR  R14,R15
:>>
:>> The 64bit access call is:
:>>
:>>  IHBOPLTX ,+
:>>(ABDPL,  ..ABDPL+
:>>=A(ADPLSMAP),..TYPE OF CALL: MAP SERVICE+
:>>XMSP),   ..ACCESS STORAGE PARM LIST +
:>>MF=(E,PLIST)
:>>  L R15,ADPLSERV LOCATE IPCS SERVICE ROUTINE
:>>  BASR  R14,R15
:>>
:>> Formatting the request is left as an exercise for the OP
:>>
:>>
:>>
:>> On Wed, 21 Sep 2022 15:49:21 -0500 David Janicek 
:>> wrote:
:>>
:>> :>Hi all.  I am new to this list but I have searched the archives for an
:>> answer to my question already without any luck.
:>> :>
:>> :>I am responsible for maintaining an IBM IPCS VERBX (verb exit) that
:>> analyzes our application dumps and points out any inconsistencies in it.
:>> We are in the process of moving some of our data above the bar (ATB) and I
:>> need to update the VERBX to analyze that data.  Unfortunately the IBM doc
:>> has virtually nothing on how to access 64bit storage in an IPCS dump via a
:>> VERBX.  I searched the internet and the only clue I found was a 7 year old
:>> post on this site by Don Poitras.  He listed a routine in C that would
:>> access 64bit (and 31bit) storage.  I have tried to mimic that code in
:>> assembler but I haven't gotten it to work yet.  I am posting my code at the
:>> end of this listing.  My hope is that someone will either point out the
:>> error of my ways or, instead, simply post their code that does the same
:>> thing.  When I attempt to access 64bit storage, I get the following
:>> messages:
:>> :>
:>> :>Dump analysis will be incomplete.
:>> :>  XSSP passed by exit PLATFORM is not valid.
:>> :>  Equate Symbol record failed consistency check.
:>> :>
:>> :>Here's my code that I'm using.  Thanks in advance for your time on this.
:>> :>
:>> :>
:>> :>Access64BitBlock Entry ,
:>> :>*
:>> :> Lmg   R2,R3,0(R1) -> storage address and length to get
:>> :>*
:>> :> Cli   WS_Es64,0   have we initialized storage yet?
:>> :> Jne   Access64BitBlock100 Yes->Don't do it again
:>> :>*
:>> :> LaR14,WS_Es64 Copy
:>> :> LaR15,WS_Es64$  skeleton
:>> :> LaR0,C_Es64   to
:>> :> Lgr   R1,R15working
:>> :> Mvcl  R14,R0  storage
:>> :>*
:>> :> Mvc   WS_Es64AST,=Al2(ZZZASTCV) CPU ASID
:>> :> Lgf   R0,WS_SSAsidSet owning
:>> :> StR0,WS_Es64AS1 asid
:>> :> Mvi   WS_Es64DTY,ZZZDTYU  Set as area
:>> :>*
:>> :> Mvc   WS_Xs64(WS_Xs64$),C_Xs64 copy skeleton
:>> :> OiWS_Xs64PFL1,WS_Xs64BIT64 Indicate 64bit
:>> :> Mvc   WS_Xs64Code,=Al2(WS_Xs64Acc) set to access storage
:>> :> Mvc   WS_Xs64Modn,C_PlatFormVar
:>> :> LaR0,WS_Es64  Link them
:>> :> StR0,WS_Xs64Esr together
:>> :>*
:>> :> CallFunc Function=StorageObtain,  +
:>> :>   Param=4096,   

Re: IPCS VERBX 64bit storage

2022-09-22 Thread Colin Paice
I'm very rusty ( 15+ years since I last used this) ...  but can you use
your 31 bit code to access a symbol relating to a 31/64 bit data item?
I only used 31 bit, but I think I used to get a block of storage from the
dump with a 64 bit address into my buffer in 31 bit address.
You have to use the correct ESSY block.
I could be deluded
Colin

On Thu, 22 Sept 2022 at 11:55, Binyamin Dissen 
wrote:

> Looking at my code:
>
> The 31bit access call is
>
>  IHBOPLTX ,+
>(ABDPL,  ..ABDPL+
>=A(ADPLSACC),..TYPE OF CALL: ACCESS STOR+
>MY_ADPLPACC),..ACCESS STORAGE PARM LIST +
>MF=(E,PLIST)
>  L R15,ADPLSERV LOCATE IPCS SERVICE ROUTINE
>  BASR  R14,R15
>
> The 64bit access call is:
>
>  IHBOPLTX ,+
>(ABDPL,  ..ABDPL+
>=A(ADPLSMAP),..TYPE OF CALL: MAP SERVICE+
>XMSP),   ..ACCESS STORAGE PARM LIST +
>MF=(E,PLIST)
>  L R15,ADPLSERV LOCATE IPCS SERVICE ROUTINE
>  BASR  R14,R15
>
> Formatting the request is left as an exercise for the OP
>
>
>
> On Wed, 21 Sep 2022 15:49:21 -0500 David Janicek 
> wrote:
>
> :>Hi all.  I am new to this list but I have searched the archives for an
> answer to my question already without any luck.
> :>
> :>I am responsible for maintaining an IBM IPCS VERBX (verb exit) that
> analyzes our application dumps and points out any inconsistencies in it.
> We are in the process of moving some of our data above the bar (ATB) and I
> need to update the VERBX to analyze that data.  Unfortunately the IBM doc
> has virtually nothing on how to access 64bit storage in an IPCS dump via a
> VERBX.  I searched the internet and the only clue I found was a 7 year old
> post on this site by Don Poitras.  He listed a routine in C that would
> access 64bit (and 31bit) storage.  I have tried to mimic that code in
> assembler but I haven't gotten it to work yet.  I am posting my code at the
> end of this listing.  My hope is that someone will either point out the
> error of my ways or, instead, simply post their code that does the same
> thing.  When I attempt to access 64bit storage, I get the following
> messages:
> :>
> :>Dump analysis will be incomplete.
> :>  XSSP passed by exit PLATFORM is not valid.
> :>  Equate Symbol record failed consistency check.
> :>
> :>Here's my code that I'm using.  Thanks in advance for your time on this.
> :>
> :>
> :>Access64BitBlock Entry ,
> :>*
> :> Lmg   R2,R3,0(R1) -> storage address and length to get
> :>*
> :> Cli   WS_Es64,0   have we initialized storage yet?
> :> Jne   Access64BitBlock100 Yes->Don't do it again
> :>*
> :> LaR14,WS_Es64 Copy
> :> LaR15,WS_Es64$  skeleton
> :> LaR0,C_Es64   to
> :> Lgr   R1,R15working
> :> Mvcl  R14,R0  storage
> :>*
> :> Mvc   WS_Es64AST,=Al2(ZZZASTCV) CPU ASID
> :> Lgf   R0,WS_SSAsidSet owning
> :> StR0,WS_Es64AS1 asid
> :> Mvi   WS_Es64DTY,ZZZDTYU  Set as area
> :>*
> :> Mvc   WS_Xs64(WS_Xs64$),C_Xs64 copy skeleton
> :> OiWS_Xs64PFL1,WS_Xs64BIT64 Indicate 64bit
> :> Mvc   WS_Xs64Code,=Al2(WS_Xs64Acc) set to access storage
> :> Mvc   WS_Xs64Modn,C_PlatFormVar
> :> LaR0,WS_Es64  Link them
> :> StR0,WS_Xs64Esr together
> :>*
> :> CallFunc Function=StorageObtain,  +
> :>   Param=4096, +
> :>   Mf=(E,WS_StorageObtainParms)
> :>     StR15,WS_Xs64Buf  Save buffer address
> :>*
> :>Access64BitBlock100 Ds 0h
> :> Stg   R2,WS_Es64LAD   Set address to obtain
> :> Stg   R3,WS_Es64DLE   Set length to obtain
> :>*
> :> Sam31 ,   This call requires 31 bit amode
> :> SysState Amode64=NO
> :>*
> :> LgR4,WS_Abdpl@-> IPCS parameter area
> :> Using Abdpl,R4
> :>*
> :> L R15,AdplServ-> IPCS Service Routine
> :> Call  (15),   go get the reque

Re: IPCS VERBX 64bit storage

2022-09-22 Thread Binyamin Dissen
Looking at my code:

The 31bit access call is 

 IHBOPLTX ,+
   (ABDPL,  ..ABDPL+
   =A(ADPLSACC),..TYPE OF CALL: ACCESS STOR+
   MY_ADPLPACC),..ACCESS STORAGE PARM LIST +
   MF=(E,PLIST) 
 L R15,ADPLSERV LOCATE IPCS SERVICE ROUTINE 
 BASR  R14,R15  

The 64bit access call is:

 IHBOPLTX ,+
   (ABDPL,  ..ABDPL+
   =A(ADPLSMAP),..TYPE OF CALL: MAP SERVICE+
   XMSP),   ..ACCESS STORAGE PARM LIST +
   MF=(E,PLIST) 
 L R15,ADPLSERV LOCATE IPCS SERVICE ROUTINE 
 BASR  R14,R15  

Formatting the request is left as an exercise for the OP



On Wed, 21 Sep 2022 15:49:21 -0500 David Janicek  wrote:

:>Hi all.  I am new to this list but I have searched the archives for an answer 
to my question already without any luck.
:>
:>I am responsible for maintaining an IBM IPCS VERBX (verb exit) that analyzes 
our application dumps and points out any inconsistencies in it.  We are in the 
process of moving some of our data above the bar (ATB) and I need to update the 
VERBX to analyze that data.  Unfortunately the IBM doc has virtually nothing on 
how to access 64bit storage in an IPCS dump via a VERBX.  I searched the 
internet and the only clue I found was a 7 year old post on this site by Don 
Poitras.  He listed a routine in C that would access 64bit (and 31bit) storage. 
 I have tried to mimic that code in assembler but I haven't gotten it to work 
yet.  I am posting my code at the end of this listing.  My hope is that someone 
will either point out the error of my ways or, instead, simply post their code 
that does the same thing.  When I attempt to access 64bit storage, I get the 
following messages:
:>
:>Dump analysis will be incomplete. 
:>  XSSP passed by exit PLATFORM is not valid.  
:>  Equate Symbol record failed consistency check.  
:>
:>Here's my code that I'm using.  Thanks in advance for your time on this.
:>
:>
:>Access64BitBlock Entry ,
:>*   
:> Lmg   R2,R3,0(R1) -> storage address and length to get 
:>*   
:> Cli   WS_Es64,0   have we initialized storage yet? 
:> Jne   Access64BitBlock100 Yes->Don't do it again   
:>*   
:> LaR14,WS_Es64 Copy 
:> LaR15,WS_Es64$  skeleton
:> LaR0,C_Es64   to   
:> Lgr   R1,R15working
:> Mvcl  R14,R0  storage  
:>*
:> Mvc   WS_Es64AST,=Al2(ZZZASTCV) CPU ASID   
:> Lgf   R0,WS_SSAsidSet owning   
:> StR0,WS_Es64AS1 asid
:> Mvi   WS_Es64DTY,ZZZDTYU  Set as area  
:>*
:> Mvc   WS_Xs64(WS_Xs64$),C_Xs64 copy skeleton   
:> OiWS_Xs64PFL1,WS_Xs64BIT64 Indicate 64bit   
:> Mvc   WS_Xs64Code,=Al2(WS_Xs64Acc) set to access storage   
:> Mvc   WS_Xs64Modn,C_PlatFormVar
:> LaR0,WS_Es64  Link them
:> StR0,WS_Xs64Esr together   
:>*
:> CallFunc Function=StorageObtain,  +
:>   Param=4096, +
:>   Mf=(E,WS_StorageObtainParms)  
:> StR15,WS_Xs64Buf  Save buffer address  
:>*   
:>Access64BitBlock100 Ds 0h   

Re: IPCS VERBX 64bit storage

2022-09-21 Thread Mike Schwab
https://www.ibm.com/docs/en/zos/2.2.0?topic=dialog-examining-64-bit-dump-data-sets

On Wed, Sep 21, 2022 at 3:59 PM David Janicek  wrote:
>
> Hi all.  I am new to this list but I have searched the archives for an answer 
> to my question already without any luck.
>
> I am responsible for maintaining an IBM IPCS VERBX (verb exit) that analyzes 
> our application dumps and points out any inconsistencies in it.  We are in 
> the process of moving some of our data above the bar (ATB) and I need to 
> update the VERBX to analyze that data.  Unfortunately the IBM doc has 
> virtually nothing on how to access 64bit storage in an IPCS dump via a VERBX. 
>  I searched the internet and the only clue I found was a 7 year old post on 
> this site by Don Poitras.  He listed a routine in C that would access 64bit 
> (and 31bit) storage.  I have tried to mimic that code in assembler but I 
> haven't gotten it to work yet.  I am posting my code at the end of this 
> listing.  My hope is that someone will either point out the error of my ways 
> or, instead, simply post their code that does the same thing.  When I attempt 
> to access 64bit storage, I get the following messages:
>
> Dump analysis will be incomplete.
>   XSSP passed by exit PLATFORM is not valid.
>   Equate Symbol record failed consistency check.
>
> Here's my code that I'm using.  Thanks in advance for your time on this.
>
>
> Access64BitBlock Entry ,
> *
>  Lmg   R2,R3,0(R1) -> storage address and length to get
> *
>  Cli   WS_Es64,0   have we initialized storage yet?
>  Jne   Access64BitBlock100 Yes->Don't do it again
> *
>  LaR14,WS_Es64 Copy
>  LaR15,WS_Es64$  skeleton
>  LaR0,C_Es64   to
>  Lgr   R1,R15working
>  Mvcl  R14,R0  storage
> *
>  Mvc   WS_Es64AST,=Al2(ZZZASTCV) CPU ASID
>  Lgf   R0,WS_SSAsidSet owning
>  StR0,WS_Es64AS1 asid
>  Mvi   WS_Es64DTY,ZZZDTYU  Set as area
> *
>  Mvc   WS_Xs64(WS_Xs64$),C_Xs64 copy skeleton
>  OiWS_Xs64PFL1,WS_Xs64BIT64 Indicate 64bit
>  Mvc   WS_Xs64Code,=Al2(WS_Xs64Acc) set to access storage
>  Mvc   WS_Xs64Modn,C_PlatFormVar
>  LaR0,WS_Es64  Link them
>  StR0,WS_Xs64Esr together
> *
>  CallFunc Function=StorageObtain,  +
>Param=4096, +
>Mf=(E,WS_StorageObtainParms)
>  StR15,WS_Xs64Buf  Save buffer address
> *
> Access64BitBlock100 Ds 0h
>  Stg   R2,WS_Es64LAD   Set address to obtain
>  Stg   R3,WS_Es64DLE   Set length to obtain
> *
>  Sam31 ,   This call requires 31 bit amode
>  SysState Amode64=NO
> *
>  LgR4,WS_Abdpl@-> IPCS parameter area
>  Using Abdpl,R4
> *
>  L R15,AdplServ-> IPCS Service Routine
>  Call  (15),   go get the requested storage+
>(Abdpl,=A(AdplSSym),WS_Xs64),   +
>Mf=(E,WS_P64Parms)
> *
>  Sam64 ,   Get back in 64bit mode
>  SysState Amode64=YES
>  Drop  R4
> *
>  Ltr   R15,R15 Did it work?
>  Llgt  R15,WS_Xs64Buf  -> returned storage
>  JzAccess64BitBlockContinue if successful
>  Sgr   R15,R15 Indicate storage not found
> Access64BitBlock900 Ds 0h
> *
>  Exit  ,
> *
> C_Es64   BlsrEssy Dsect=NO,ABITS=64
> C_Xs64   BlsrXssp Dsect=NO
> *
>  BeginWS ,
> *
>  SysState Amode64=NO
> WS_P64Parms Call ,(,,),Mf=L
>  SysState Amode64=YES
> *
> WS_Es64  BlsrEssy Dsect=NO,ABITS=64
> WS_Es64$ Equ   *-WS_Es64
> WS_Xs64  BlsrXssp Dsect=NO
> WS_Xs64$ Equ   *-WS_Xs64
> *
>  EndWS ,
>
> --
> 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: IPCS VERBX 64bit storage

2022-09-21 Thread Jim Mulder
https://listserv.ua.edu/cgi-bin/wa?A2=ind2111=IBM-MAIN=R28794=O14039FAB4B2233B763=d10jhm1%40us.ibm.com

Jim Mulder z/OS Diagnosis, Design, Development, Test  IBM Corp. Poughkeepsie NY

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
David Janicek
Sent: Wednesday, September 21, 2022 4:49 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: IPCS VERBX 64bit storage

Hi all.  I am new to this list but I have searched the archives for an answer 
to my question already without any luck.

I am responsible for maintaining an IBM IPCS VERBX (verb exit) that analyzes 
our application dumps and points out any inconsistencies in it.  We are in the 
process of moving some of our data above the bar (ATB) and I need to update the 
VERBX to analyze that data.  Unfortunately the IBM doc has virtually nothing on 
how to access 64bit storage in an IPCS dump via a VERBX.  I searched the 
internet and the only clue I found was a 7 year old post on this site by Don 
Poitras.  He listed a routine in C that would access 64bit (and 31bit) storage. 
 I have tried to mimic that code in assembler but I haven't gotten it to work 
yet.  I am posting my code at the end of this listing.  My hope is that someone 
will either point out the error of my ways or, instead, simply post their code 
that does the same thing.  When I attempt to access 64bit storage, I get the 
following messages:

Dump analysis will be incomplete. 
  XSSP passed by exit PLATFORM is not valid.  
  Equate Symbol record failed consistency check.  

Here's my code that I'm using.  Thanks in advance for your time on this.

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


IPCS VERBX 64bit storage

2022-09-21 Thread David Janicek
Hi all.  I am new to this list but I have searched the archives for an answer 
to my question already without any luck.

I am responsible for maintaining an IBM IPCS VERBX (verb exit) that analyzes 
our application dumps and points out any inconsistencies in it.  We are in the 
process of moving some of our data above the bar (ATB) and I need to update the 
VERBX to analyze that data.  Unfortunately the IBM doc has virtually nothing on 
how to access 64bit storage in an IPCS dump via a VERBX.  I searched the 
internet and the only clue I found was a 7 year old post on this site by Don 
Poitras.  He listed a routine in C that would access 64bit (and 31bit) storage. 
 I have tried to mimic that code in assembler but I haven't gotten it to work 
yet.  I am posting my code at the end of this listing.  My hope is that someone 
will either point out the error of my ways or, instead, simply post their code 
that does the same thing.  When I attempt to access 64bit storage, I get the 
following messages:

Dump analysis will be incomplete. 
  XSSP passed by exit PLATFORM is not valid.  
  Equate Symbol record failed consistency check.  

Here's my code that I'm using.  Thanks in advance for your time on this.


Access64BitBlock Entry ,
*   
 Lmg   R2,R3,0(R1) -> storage address and length to get 
*   
 Cli   WS_Es64,0   have we initialized storage yet? 
 Jne   Access64BitBlock100 Yes->Don't do it again   
*   
 LaR14,WS_Es64 Copy 
 LaR15,WS_Es64$  skeleton
 LaR0,C_Es64   to   
 Lgr   R1,R15working
 Mvcl  R14,R0  storage  
*
 Mvc   WS_Es64AST,=Al2(ZZZASTCV) CPU ASID   
 Lgf   R0,WS_SSAsidSet owning   
 StR0,WS_Es64AS1 asid
 Mvi   WS_Es64DTY,ZZZDTYU  Set as area  
*
 Mvc   WS_Xs64(WS_Xs64$),C_Xs64 copy skeleton   
 OiWS_Xs64PFL1,WS_Xs64BIT64 Indicate 64bit   
 Mvc   WS_Xs64Code,=Al2(WS_Xs64Acc) set to access storage   
 Mvc   WS_Xs64Modn,C_PlatFormVar
 LaR0,WS_Es64  Link them
 StR0,WS_Xs64Esr together   
*
 CallFunc Function=StorageObtain,  +
   Param=4096, +
   Mf=(E,WS_StorageObtainParms)  
 StR15,WS_Xs64Buf  Save buffer address  
*   
Access64BitBlock100 Ds 0h   
 Stg   R2,WS_Es64LAD   Set address to obtain
 Stg   R3,WS_Es64DLE   Set length to obtain 
*
 Sam31 ,   This call requires 31 bit amode  
 SysState Amode64=NO
*
 LgR4,WS_Abdpl@    -> IPCS parameter area   
 Using Abdpl,R4 
*   
 L R15,AdplServ    -> IPCS Service Routine  
 Call  (15),   go get the requested storage+
   (Abdpl,=A(AdplSSym),WS_Xs64),   +
   Mf=(E,WS_P64Parms)
*   
 Sam64 ,   Get back in 64bit mode   
 SysState Amode64=YES   
 Drop  R4
*   
 Ltr   R15,R15 Did it work? 
 Llgt  R15,WS_Xs64Buf  -> returned storage

Re: Request: Examples of an IPCS RUNARRAY command where the EXEC clause display storage using a pointer as a displacement off of X

2022-04-20 Thread CM Poncelet
I cannot remember what the purpose was. I realise it is a bit odd to
have X2C(C2X(<...>)). Perhaps it was just to have the same X2C(<...>)
parms in the BITAND(): e.g. RB_TYPE_VAL =
C2X(BITAND(X2C(X_E0),X2C(RBSTAB1)))
 

On 20/04/2022 04:37, Tony Harminc wrote:
> On Tue, 19 Apr 2022 at 20:58, CM Poncelet
> <03e99a92061c-dmarc-requ...@listserv.ua.edu> wrote:
>> FWIW No idea what "runarray" does, but attached is an example [in this
>> case for a CICS SVC dump] of some native IPCS REXX [as IPCSREXX.txt] -
>> which can then be modified to read/process any system dump.
>>
>> BTW Was written to be executed from within IPCS - else add "ARG" and
>> "ADDRESS IPCS" etc. cards at the start of the REXX code if to be invoked
>> via TSO batch JCL.
> I'm just curious what the purpose of
>
> X_E0 = C2X('E0'X)
> X_00 = C2X('00'X)
> X_40 = C2X('40'X)
> X_60 = C2X('60'X)
> X_80 = C2X('80'X)
> X_C0 = C2X('C0'X)
>
> is.
>
> Tony H.
>
> --
> 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: Request: Examples of an IPCS RUNARRAY command where the EXEC clause display storage using a pointer as a displacement off of X

2022-04-20 Thread Seymour J Metz
RUNARRAY executes an IPCS command on each element of an array.


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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of CM 
Poncelet [03e99a92061c-dmarc-requ...@listserv.ua.edu]
Sent: Tuesday, April 19, 2022 8:58 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Request: Examples of an IPCS RUNARRAY command where the EXEC 
clause display storage using a pointer as a displacement off of X

FWIW No idea what "runarray" does, but attached is an example [in this
case for a CICS SVC dump] of some native IPCS REXX [as IPCSREXX.txt] -
which can then be modified to read/process any system dump.

BTW Was written to be executed from within IPCS - else add "ARG" and
"ADDRESS IPCS" etc. cards at the start of the REXX code if to be invoked
via TSO batch JCL.

HTH


On 19/04/2022 23:45, Richard Pace wrote:
> Hi Ben: Not sure if you're still looking...Here's my example. I had an array 
> of 512 size blocks that I wanted to display 6 bytes from offset +8 in each 
> block (a volser). I positioned IPCS at the first block and tried this:
>
> ipcs runarray address(+0) length(512) entries(1:10) exec((list X+8 length(6)))
>
> This did not work. It listed the first control block repeatedly, similar to 
> what you experienced I think.  On advice from IBM, I changed the command to 
> this:
>
> ipcs runarray address(+8) length(512) entries(1:10) exec((list X length(6)))
>
> This worked -- setting the displacement value, +8,  in the address field, 
> instead of trying to add to X.   I didn't really get an explanation from IBM; 
> just "working as designed".  However, I suspect that inside the EXEC,  LIST 
> X+n is treated different than LIST X; i.e. X only needs to be evaluated once 
> for X+n, whereas X by itself, List knows to use the new position as 
> determined by the origin start (the offset value, +8), the entry number, and 
> entry length (512).
> Richard
>
> --
> 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: Request: Examples of an IPCS RUNARRAY command where the EXEC clause display storage using a pointer as a displacement off of X

2022-04-20 Thread Seymour J Metz
Burning CPU cycles. Code like X_E0='E0' would work just as well


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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Tony Harminc [t...@harminc.net]
Sent: Tuesday, April 19, 2022 11:37 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Request: Examples of an IPCS RUNARRAY command where the EXEC 
clause display storage using a pointer as a displacement off of X

On Tue, 19 Apr 2022 at 20:58, CM Poncelet
<03e99a92061c-dmarc-requ...@listserv.ua.edu> wrote:
>
> FWIW No idea what "runarray" does, but attached is an example [in this
> case for a CICS SVC dump] of some native IPCS REXX [as IPCSREXX.txt] -
> which can then be modified to read/process any system dump.
>
> BTW Was written to be executed from within IPCS - else add "ARG" and
> "ADDRESS IPCS" etc. cards at the start of the REXX code if to be invoked
> via TSO batch JCL.

I'm just curious what the purpose of

X_E0 = C2X('E0'X)
X_00 = C2X('00'X)
X_40 = C2X('40'X)
X_60 = C2X('60'X)
X_80 = C2X('80'X)
X_C0 = C2X('C0'X)

is.

Tony H.

--
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: Request: Examples of an IPCS RUNARRAY command where the EXEC clause display storage using a pointer as a displacement off of X

2022-04-19 Thread Tony Harminc
On Tue, 19 Apr 2022 at 20:58, CM Poncelet
<03e99a92061c-dmarc-requ...@listserv.ua.edu> wrote:
>
> FWIW No idea what "runarray" does, but attached is an example [in this
> case for a CICS SVC dump] of some native IPCS REXX [as IPCSREXX.txt] -
> which can then be modified to read/process any system dump.
>
> BTW Was written to be executed from within IPCS - else add "ARG" and
> "ADDRESS IPCS" etc. cards at the start of the REXX code if to be invoked
> via TSO batch JCL.

I'm just curious what the purpose of

X_E0 = C2X('E0'X)
X_00 = C2X('00'X)
X_40 = C2X('40'X)
X_60 = C2X('60'X)
X_80 = C2X('80'X)
X_C0 = C2X('C0'X)

is.

Tony H.

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


Re: Request: Examples of an IPCS RUNARRAY command where the EXEC clause display storage using a pointer as a displacement off of X

2022-04-19 Thread CM Poncelet
FWIW No idea what "runarray" does, but attached is an example [in this
case for a CICS SVC dump] of some native IPCS REXX [as IPCSREXX.txt] -
which can then be modified to read/process any system dump. 
 
BTW Was written to be executed from within IPCS - else add "ARG" and
"ADDRESS IPCS" etc. cards at the start of the REXX code if to be invoked
via TSO batch JCL.
 
HTH


On 19/04/2022 23:45, Richard Pace wrote:
> Hi Ben: Not sure if you're still looking...Here's my example. I had an array 
> of 512 size blocks that I wanted to display 6 bytes from offset +8 in each 
> block (a volser). I positioned IPCS at the first block and tried this:
>
> ipcs runarray address(+0) length(512) entries(1:10) exec((list X+8 length(6)))
>
> This did not work. It listed the first control block repeatedly, similar to 
> what you experienced I think.  On advice from IBM, I changed the command to 
> this:
>
> ipcs runarray address(+8) length(512) entries(1:10) exec((list X length(6)))
>
> This worked -- setting the displacement value, +8,  in the address field, 
> instead of trying to add to X.   I didn't really get an explanation from IBM; 
> just "working as designed".  However, I suspect that inside the EXEC,  LIST 
> X+n is treated different than LIST X; i.e. X only needs to be evaluated once 
> for X+n, whereas X by itself, List knows to use the new position as 
> determined by the origin start (the offset value, +8), the entry number, and 
> entry length (512).  
> Richard
>
> --
> 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
/*-REXX--*/
/* IPCS CLIST TO ANALYSE A CICS REGION SVC DUMP AND DETERMINE THE*/
/* ADDRESS OF THE CSA (DFHCSA).  */
/*   */
/* INPUT:  NONE: IS INVOKED AS A COMMAND, FROM WITHIN IPCS, AND  */
/* ¯¯IT THEN ANALYSES THE DUMP CURRENTLY ALLOCATED   */
/*   */
/* OUTPUT: ADDRESS OF CICS TCB.  */
/* ¯¯¯""   "   GENERAL PURPOSE REGISTERS FROM TCB.   */
/*""   "   PRB, IF ANY.  */
/*""   "   GENERAL PURPOSE REGISTERS FROM ANY PRB.   */
/*""   "   IRB, IF ANY.  */
/*""   "   GENERAL PURPOSE REGISTERS FROM ANY IRB.   */
/*""   "   < ... OTHER RB'S, IF ANY ... >*/
/*""   "   DFHCSA.   */
/*   */
/* 06/01/95 CORRECTION TO ACTIVE/SUSPENDED TASK CHAINING */
/* 21/03/94 CMP: AMENDED TO OUTPUT ACTIVE + SUSPENDED TCA'S  */
/* 16/03/94 CHRIS PONCELET   */
/*---*/

ADDRESS IPCS

TRACE I
PSA_ADDRESS = ''
"EVALUATE" PSA_ADDRESS||. ,
  "POSITION("X2D(224)") LENGTH(4) REXX(STORAGE(OLD_ASCB_ADDRESS))"
"EVALUATE" OLD_ASCB_ADDRESS||. ,
  "POSITION("X2D(6C)") LENGTH(4) REXX(STORAGE(OLD_ASXB_ADDRESS))"
"EVALUATE" OLD_ASXB_ADDRESS||. ,
  "POSITION("X2D(4)") LENGTH(4) REXX(STORAGE(TCB_CHAIN_START_ADDRESS))"
"EVALUATE" OLD_ASXB_ADDRESS||. ,
  "POSITION("X2D(8)") LENGTH(4) REXX(STORAGE(TCB_CHAIN_STOP_ADDRESS))"

SAY ' '
FIND_CICS_TCB:
FOUND = 'NO'
STOP  = 'NO'
TCB_CHAIN_NEXT_ADDRESS = TCB_CHAIN_START_ADDRESS
X_E0 = C2X('E0'X)
X_00 = C2X('00'X)
X_40 = C2X('40'X)
X_60 = C2X('60'X)
X_80 = C2X('80'X)
X_C0 = C2X('C0'X)
DFHSIP = C2X('DFHSIP  ')

/* FOR EACH TCB, SEARCH FOR ALL RB'S */
DO WHILE (FOUND = 'NO') & (STOP = 'NO')
  IF TCB_CHAIN_NEXT_ADDRESS = TCB_CHAIN_STOP_ADDRESS THEN ,
STOP = 'YEAH'
  "EVALUATE" TCB_CHAIN_NEXT_ADDRESS||. ,
"POSITION(0) LENGTH(4) REXX(STORAGE(RB_ADDRESS))"

/* FOR EACH RB: FIND PRB, IF ANY, AND CHECK WHETHER ASSOCIATED   */
/*  PROGRAM IS DFHSIP*/
  PRB_ADDRESS  = 0
  IRB_ADDRESS  = 0
  TIRB_ADDRESS = 0
  SIRB_ADDRESS = 0
  SVRB_ADDRESS = 0
  DO K = 0 TO 999 WHILE (RB_ADDRESS ¬= TCB_CHAIN_NEXT_ADDRESS)
LINK_ADDRESS.K  = RB

Re: Request: Examples of an IPCS RUNARRAY command where the EXEC clause display storage using a pointer as a displacement off of X

2022-04-19 Thread Richard Pace
Hi Ben: Not sure if you're still looking...Here's my example. I had an array of 
512 size blocks that I wanted to display 6 bytes from offset +8 in each block 
(a volser). I positioned IPCS at the first block and tried this:

ipcs runarray address(+0) length(512) entries(1:10) exec((list X+8 length(6)))

This did not work. It listed the first control block repeatedly, similar to 
what you experienced I think.  On advice from IBM, I changed the command to 
this:

ipcs runarray address(+8) length(512) entries(1:10) exec((list X length(6)))

This worked -- setting the displacement value, +8,  in the address field, 
instead of trying to add to X.   I didn't really get an explanation from IBM; 
just "working as designed".  However, I suspect that inside the EXEC,  LIST X+n 
is treated different than LIST X; i.e. X only needs to be evaluated once for 
X+n, whereas X by itself, List knows to use the new position as determined by 
the origin start (the offset value, +8), the entry number, and entry length 
(512).  
Richard

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


Re: IPCS - Dump timing [EXTERNAL]

2022-02-08 Thread Feller, Paul
Not exactly what the person asked but I have the date and time stamp as part of 
the dump dataset name.  We set the dynamic feature active at IPL time.  The 
date and time the dump was taken, well when DUMPSRV allocates the dataset, is 
in the dataset name.  Helps with knowing when dumps happens.

NAME=SYSD.DUMP.
   EXAMPLE=SYSD.DUMP.PR01.D220208.T162448.S0 


Paul Feller
GTS Mainframe Technical Support

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Matt Hogstrom
Sent: Tuesday, February 8, 2022 3:27 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: IPCS - Dump timing [EXTERNAL]

IPCS STATUS SYSTEM or ST SYS ?

Matt Hogstrom
m...@hogstrom.org

“It may be cognitive, but, it ain’t intuitive."
— Hogstrom

> On Feb 8, 2022, at 4:23 PM, Ed Jaffe  wrote:
> 
> On 2/7/2022 10:53 PM, Binyamin Dissen wrote:
>> On Tue, 8 Feb 2022 08:05:32 +0400 Jake Anderson 
>> 
>> wrote:
>> 
>> :>We have some dumps taken on 6th February but is it possible to know 
>> at what :>time the dump was captured using IPCS and can we see the 
>> timestamp anywhere :>in DUMP using IPCS ?
>> 
>> IPCS subcommand IEAVDUMP
> 


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

--
Please note:  This message originated outside your organization. Please use 
caution when opening links or attachments.

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


Re: IPCS - Dump timing

2022-02-08 Thread Matt Hogstrom
IPCS STATUS SYSTEM or ST SYS ?

Matt Hogstrom
m...@hogstrom.org

“It may be cognitive, but, it ain’t intuitive."
— Hogstrom

> On Feb 8, 2022, at 4:23 PM, Ed Jaffe  wrote:
> 
> On 2/7/2022 10:53 PM, Binyamin Dissen wrote:
>> On Tue, 8 Feb 2022 08:05:32 +0400 Jake Anderson 
>> wrote:
>> 
>> :>We have some dumps taken on 6th February but is it possible to know at what
>> :>time the dump was captured using IPCS and can we see the timestamp anywhere
>> :>in DUMP using IPCS ?
>> 
>> IPCS subcommand IEAVDUMP
> 


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


Re: IPCS - Dump timing

2022-02-08 Thread Ed Jaffe

On 2/7/2022 10:53 PM, Binyamin Dissen wrote:

On Tue, 8 Feb 2022 08:05:32 +0400 Jake Anderson 
wrote:

:>We have some dumps taken on 6th February but is it possible to know at what
:>time the dump was captured using IPCS and can we see the timestamp anywhere
:>in DUMP using IPCS ?

IPCS subcommand IEAVDUMP


This helps prove what many of us know already:

IPCS is "Black Art" whose Tricks of the Trade are passed along as Tribal 
Knowledge.


Case in point: IEAVDUMP is not documented.


--
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: IPCS - Dump timing

2022-02-08 Thread Jim Mulder
  VERBX  IEAVTSFS


Jim Mulder z/OS Diagnosis, Design, Development, Test  IBM Corp. 
Poughkeepsie NY

"IBM Mainframe Discussion List"  wrote on 
02/07/2022 11:05:32 PM:

> From: "Jake Anderson" 
> To: IBM-MAIN@LISTSERV.UA.EDU
> Date: 02/08/2022 11:17 AM
> Subject: IPCS - Dump timing
> Sent by: "IBM Mainframe Discussion List" 
> 
> Hello
> 
> We have some dumps taken on 6th February but is it possible to know at 
what
> time the dump was captured using IPCS and can we see the timestamp 
anywhere
> in DUMP using IPCS ?
> 
> Jake



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


Re: IPCS - Dump timing

2022-02-07 Thread Jake Anderson
Thank you so much

On Tue, Feb 8, 2022, 10:54 AM Binyamin Dissen 
wrote:

> On Tue, 8 Feb 2022 08:05:32 +0400 Jake Anderson 
> wrote:
>
> :>We have some dumps taken on 6th February but is it possible to know at
> what
> :>time the dump was captured using IPCS and can we see the timestamp
> anywhere
> :>in DUMP using IPCS ?
>
> IPCS subcommand IEAVDUMP
>
> --
> Binyamin Dissen 
> http://www.dissensoftware.com
>
> Director, Dissen Software, Bar & Grill - Israel
>
> --
> 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: IPCS - Dump timing

2022-02-07 Thread Binyamin Dissen
On Tue, 8 Feb 2022 08:05:32 +0400 Jake Anderson 
wrote:

:>We have some dumps taken on 6th February but is it possible to know at what
:>time the dump was captured using IPCS and can we see the timestamp anywhere
:>in DUMP using IPCS ?

IPCS subcommand IEAVDUMP

--
Binyamin Dissen 
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel

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


Re: IPCS - Dump timing

2022-02-07 Thread Robin Atwood
IPCS STATUS.

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Jake Anderson
Sent: 08 February 2022 11:06
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: IPCS - Dump timing

Hello

We have some dumps taken on 6th February but is it possible to know at what 
time the dump was captured using IPCS and can we see the timestamp anywhere in 
DUMP using IPCS ?

Jake

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


IPCS - Dump timing

2022-02-07 Thread Jake Anderson
Hello

We have some dumps taken on 6th February but is it possible to know at what
time the dump was captured using IPCS and can we see the timestamp anywhere
in DUMP using IPCS ?

Jake

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


Re: IPCS CTRACE Buffer Locate Exit

2021-11-24 Thread Tom Harper
Jim,

Thank you! I never would have thought of that. Hopefully that will resolve the 
issue. 

A holiday gift!

Tom

Phoenix Software International 

Sent from my iPhone

> On Nov 24, 2021, at 9:23 PM, Jim Mulder  wrote:
> 
>  That would be a good question  for 
> Phoenix Software International's IBM Technical Advocate.
> It turns out that is me. 
> I dug around a bit in the code that issues that message, and it looks 
> like it intends to put out some additional diagnostic information (and
> then Abend if you are in IPCS line mode) if you put IPCS into TEST mode,
> which is done via the SETDEF TESTsubcommand. 
> 
> Jim Mulder z/OS Diagnosis, Design, Development, Test  IBM Corp. 
> Poughkeepsie NY
> 
> "IBM Mainframe Discussion List"  wrote on 
> 11/24/2021 10:39:10 AM:
> 
>> From: "Tom Harper" 
>> To: IBM-MAIN@LISTSERV.UA.EDU
>> Date: 11/24/2021 08:17 PM
>> Subject: IPCS CTRACE Buffer Locate Exit
>> Sent by: "IBM Mainframe Discussion List" 
>> 
>> All,
>> 
>> I’ve used IPCS for decades including using CTRACE. One of the 
>> required exits for this facility is the Buffer Locate Exit, which I 
>> have used at prior jobs without issue. 
>> 
>> However now I cannot get it to work and I can’t determine what the issue 
> is. 
>> 
>> The exit passes the address of an equate symbol (ES) record, mapped 
>> by BLSRESSY. 
>> 
>> All the exit is supposed to do is to complete the BLSRESSY record 
>> and pass it back with a return code which indicates whether the exit
>> should be driven again for another buffer. That all works correctly. 
>> 
>> I can locate the buffers and their lengths fine (l’ve tried both 31-
>> bit and 64-bit buffers using the respective mappings for the ES) but
>> to no avail. 
>> 
>> The message I get back from IPCS is BLS18460I which states that the 
>> symbol record is not valid.  A further detail is the qualifier:
>> 
>> “Equate Symbol record failed consistency check.”
>> 
>> I have no idea what that means. I have carefully checked every field
>> and they all appear to be correct to me. 
>> 
>> Any ideas would be much appreciated. 
>> 
>> Tom Harper
>> 
>> Phoenix Software International 
> 
> 
> 
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN



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: IPCS CTRACE Buffer Locate Exit

2021-11-24 Thread Jim Mulder
  That would be a good question  for 
Phoenix Software International's IBM Technical Advocate.
It turns out that is me. 
I dug around a bit in the code that issues that message, and it looks 
like it intends to put out some additional diagnostic information (and
then Abend if you are in IPCS line mode) if you put IPCS into TEST mode,
which is done via the SETDEF TESTsubcommand. 

Jim Mulder z/OS Diagnosis, Design, Development, Test  IBM Corp. 
Poughkeepsie NY

"IBM Mainframe Discussion List"  wrote on 
11/24/2021 10:39:10 AM:

> From: "Tom Harper" 
> To: IBM-MAIN@LISTSERV.UA.EDU
> Date: 11/24/2021 08:17 PM
> Subject: IPCS CTRACE Buffer Locate Exit
> Sent by: "IBM Mainframe Discussion List" 
> 
> All,
> 
> I’ve used IPCS for decades including using CTRACE. One of the 
> required exits for this facility is the Buffer Locate Exit, which I 
> have used at prior jobs without issue. 
> 
> However now I cannot get it to work and I can’t determine what the issue 
is. 
> 
> The exit passes the address of an equate symbol (ES) record, mapped 
> by BLSRESSY. 
> 
> All the exit is supposed to do is to complete the BLSRESSY record 
> and pass it back with a return code which indicates whether the exit
> should be driven again for another buffer. That all works correctly. 
> 
> I can locate the buffers and their lengths fine (l’ve tried both 31-
> bit and 64-bit buffers using the respective mappings for the ES) but
> to no avail. 
> 
> The message I get back from IPCS is BLS18460I which states that the 
> symbol record is not valid.  A further detail is the qualifier:
> 
> “Equate Symbol record failed consistency check.”
> 
> I have no idea what that means. I have carefully checked every field
> and they all appear to be correct to me. 
> 
> Any ideas would be much appreciated. 
> 
> Tom Harper
> 
> Phoenix Software International 



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


Re: IPCS CTRACE Buffer Locate Exit

2021-11-24 Thread Tom Harper
Yes.

Sent from my iPhone

> On Nov 24, 2021, at 1:28 PM, Seymour J Metz  wrote:
> 
> Are you STEPLIBing to the right MIGLIB?
> 
> 
> --
> Shmuel (Seymour J.) Metz
> http://mason.gmu.edu/~smetz3
> 
> 
> From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
> Tom Harper [tomhar...@phoenixsoftware.com]
> Sent: Wednesday, November 24, 2021 10:39 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: IPCS CTRACE Buffer Locate Exit
> 
> All,
> 
> I’ve used IPCS for decades including using CTRACE. One of the required exits 
> for this facility is the Buffer Locate Exit, which I have used at prior jobs 
> without issue.
> 
> However now I cannot get it to work and I can’t determine what the issue is.
> 
> The exit passes the address of an equate symbol (ES) record, mapped by 
> BLSRESSY.
> 
> All the exit is supposed to do is to complete the BLSRESSY record and pass it 
> back with a return code which indicates whether the exit should be driven 
> again for another buffer. That all works correctly.
> 
> I can locate the buffers and their lengths fine (l’ve tried both 31-bit and 
> 64-bit buffers using the respective mappings for the ES) but to no avail.
> 
> The message I get back from IPCS is BLS18460I which states that the symbol 
> record is not valid.  A further detail is the qualifier:
> 
> “Equate Symbol record failed consistency check.”
> 
> I have no idea what that means. I have carefully checked every field and they 
> all appear to be correct to me.
> 
> Any ideas would be much appreciated.
> 
> Tom Harper
> 
> Phoenix Software International
> 
> 
> 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
> 
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN



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: IPCS CTRACE Buffer Locate Exit

2021-11-24 Thread Seymour J Metz
Are you STEPLIBing to the right MIGLIB?


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


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of Tom 
Harper [tomhar...@phoenixsoftware.com]
Sent: Wednesday, November 24, 2021 10:39 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: IPCS CTRACE Buffer Locate Exit

All,

I’ve used IPCS for decades including using CTRACE. One of the required exits 
for this facility is the Buffer Locate Exit, which I have used at prior jobs 
without issue.

However now I cannot get it to work and I can’t determine what the issue is.

The exit passes the address of an equate symbol (ES) record, mapped by BLSRESSY.

All the exit is supposed to do is to complete the BLSRESSY record and pass it 
back with a return code which indicates whether the exit should be driven again 
for another buffer. That all works correctly.

I can locate the buffers and their lengths fine (l’ve tried both 31-bit and 
64-bit buffers using the respective mappings for the ES) but to no avail.

The message I get back from IPCS is BLS18460I which states that the symbol 
record is not valid.  A further detail is the qualifier:

“Equate Symbol record failed consistency check.”

I have no idea what that means. I have carefully checked every field and they 
all appear to be correct to me.

Any ideas would be much appreciated.

Tom Harper

Phoenix Software International


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

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


IPCS CTRACE Buffer Locate Exit

2021-11-24 Thread Tom Harper
All,

I’ve used IPCS for decades including using CTRACE. One of the required exits 
for this facility is the Buffer Locate Exit, which I have used at prior jobs 
without issue. 

However now I cannot get it to work and I can’t determine what the issue is. 

The exit passes the address of an equate symbol (ES) record, mapped by 
BLSRESSY. 

All the exit is supposed to do is to complete the BLSRESSY record and pass it 
back with a return code which indicates whether the exit should be driven again 
for another buffer. That all works correctly. 

I can locate the buffers and their lengths fine (l’ve tried both 31-bit and 
64-bit buffers using the respective mappings for the ES) but to no avail. 

The message I get back from IPCS is BLS18460I which states that the symbol 
record is not valid.  A further detail is the qualifier:

“Equate Symbol record failed consistency check.”

I have no idea what that means. I have carefully checked every field and they 
all appear to be correct to me. 

Any ideas would be much appreciated. 

Tom Harper

Phoenix Software International 


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


  1   2   3   4   >