How about the following ?

  /* REXX */
   X = LISTDSI("'SYS1.MODGEN'" DIRECTORY)
   SAY 'FUNCTION CODE FROM LISTDSI IS:                 ' X
   SAY 'THE DATA SET NAME IS:                          ' SYSDSNAME
   SAY 'THE DEVICE UNIT ON WHICH THE VOLUME RESIDES IS:' SYSUNIT
   SAY 'THE RECORD FORMAT IS:                          ' SYSRECFM
   SAY 'THE LOGICAL RECORD LENGTH IS:                  ' SYSLRECL
   SAY 'THE BLOCK SIZE IS:                             ' SYSBLKSIZE
   SAY 'THE ALLOCATION IN SPACE UNITS IS:              ' SYSALLOC
   SAY 'TYPE OF RACF PROTECTION IS:                    ' SYSRACFA
   SAY 'THE NUMBER OF ALLOCATED BLOCKS IS:             ' SYSADIRBLK
   SAY 'THE NUMBER OF USED BLOCKS IS:                  ' SYSUDIRBLK
   SAY 'THE NUMBER OF MEMBER IS:                       ' SYSMEMBERS

The result is as folows.

 FUNCTION CODE FROM LISTDSI IS:                  0
 THE DATA SET NAME IS:                           SYS1.MODGEN
 THE DEVICE UNIT ON WHICH THE VOLUME RESIDES IS: 3390
 THE RECORD FORMAT IS:                           FB
 THE LOGICAL RECORD LENGTH IS:                   80
 THE BLOCK SIZE IS:                              27920
 THE ALLOCATION IN SPACE UNITS IS:               567
 TYPE OF RACF PROTECTION IS:                     NONE
 THE NUMBER OF ALLOCATED BLOCKS IS:              57
 THE NUMBER OF USED BLOCKS IS:                   47
 THE NUMBER OF MEMBER IS:                        723

Best regards,

Nobuhiko Furuya(古谷信彦)
V-SOL Inc.

On 2022/08/25 12:44, Farley, Peter x23353 wrote:
Posted earlier today on MVS-OE but got no responses there.

I know this has probably been discussed previously but I can't seem to get the 
Marist MVS-OE archive search to work for me.

Is there any way to use the LISTDSI TSO external function from "address tso" in 
a Rexx program run under the Unix shell?

I can only get it to return RC = -3, "routine not found".  Sample code below.

RTFM seems to indicate that "address tso" in a REXX program run under the Unix 
shell will run a TSO TMP in a separate address space, which is OK, I can capture the 
output from that as needed, but I am not getting any execution of LISTDSI at all.

Peter

Sample code to get LISTDSI information on 'profilename.EXEC':

/* Rexx */
Address tso
Myrc = LISTDSI('EXEC')
Say 'RC='Myrc',reason='SYSREASON


This message and any attachments are intended only for the use of the addressee 
and may contain information that is privileged and confidential. If the reader 
of the message is not the intended recipient or an authorized representative of 
the intended recipient, you are hereby notified that any dissemination of this 
communication is strictly prohibited. If you have received this communication 
in error, please notify us immediately by e-mail and delete the message and any 
attachments from your system.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@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

Reply via email to