Re: Sv: Execute Rexx from Cobol

2024-05-07 Thread Willy Jensen
You found the solution, fine. Fyi, I recently wrote a assembler subroutine, it 
can be called from COBOL, C, PL/I and probably other, to access REXX variables 
and the TSO stack, and it can also start a REXX. It is available on request.

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


Re: How do one return a fullword binary to a C program from an assembler subroutine?

2024-04-17 Thread Willy Jensen
Thanks Bernd, 
yes I did wonder about that, I will fix it.

Willy

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


Re: How do one return a fullword binary to a C program from an assembler subroutine?

2024-04-17 Thread Willy Jensen
Thanks Peter,
worked like a charm and makes the program much simpler.
Now I just wonder why it is neccessary to use a specific pointer specification 
for int fields and not for char fields. Anyway, it works.

Willy

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


Re: How do one return a fullword binary to a C program from an assembler subroutine?

2024-04-16 Thread Willy Jensen
Kirh,
thank you for your alternate solution, I will keep that in mind.

Willy

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


Re: How do one return a fullword binary to a C program from an assembler subroutine?

2024-04-16 Thread Willy Jensen
Found it, it was down to C pointers as expected / feared.
This works, note the use of 'textlenp' in the call:

#pragma linkage (rxhlicpl, OS)   
main () {
 extern int rxhlicpl();  
 int retcode;
 char hlicmd[8]; 
 char name[61];   /* text + eod  */  
 int  *namelenp, namelen;
 char text[121];  /* text + eod  */  
 int  *textlenp, textlen;
 int  retval;
-  -  -
 retcode = 0;
 strcpy (hlicmd, "VGET");
 strcpy (name, "TESTVAR");   
 namelen = 7 ;   
 textlen = 120;  
 textlenp=  
 retcode = rxhlicpl (hlicmd, name, namelen, text, textlenp); 
 printf("rc is %d, text is %d '%s'\n\n", retcode, textlen, text);

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


Re: How do one return a fullword binary to a C program from an assembler subroutine?

2024-04-16 Thread Willy Jensen
Thanks Tony,
yes I am at the 'I just want it to work stage'.
I do actually have a "#pragma linkage(rxhlicpl,OS)" statement in there, should 
have listed that as well.
I would really prefer not to get involved with LE at this point, but if that is 
what it takes, then I guess I have to.
Your idea of a small C programs looks interesting too.

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


How do one return a fullword binary to a C program from an assembler subroutine?

2024-04-16 Thread Willy Jensen
Anybody have a sample of how to return a fullword to a C program from an 
assembler subroutine?
Apologies if this seems basic, but I really haven't looked seriously at C 
before.
I have read about 'Combining C or C++ and Assembler programs', which didn't 
help.

I have this C program (extract):
 extern int rxhlicpl();
 int retcode;  
 char hlicmd[8];   
 char name[61];   
 int  namelen;
 char text[121];  
 int  textlen;
. . .
 strcpy (hlicmd, "VGET"); 
 strcpy (name, "TESTVAR");
 namelen = 7 ;
 strcpy (text, " ");  
 textlen = 120;   
 retcode = rxhlicpl (hlicmd, name, namelen, text, textlen);   
 printf("rc is %d, text is %d '%s'\n\n", retcode, textlen, text); 

Running the program shows: rc is 0, text is 120 'Kilroy was here yesterday'

The RXHLICPL program is an assembler subroutine which returns data to the C 
program. The char field is updated, but not the int field. I know from tracing 
the assembler subroutine that the length value is correct and not 120.
The same subroutine, except from setting the end-of-data char in the text area, 
runs in COBOL and sets the textlen field correctly.
I assume that it has something to do with C pointers, I never could get my head 
around those.

The assembler pgm (extract):
  
ndp_blkdsect  
ndp_cmda   ds   a 
ndp_namea  ds   a 
ndp_namela ds   a 
ndp_texta  ds   a 
ndp_textla ds   a 

 ereg  0,1   
 lrr9,r1 
 using ndp_blk,r9
 l r5,zrx_getdldata size   
 l r1,ndp_textla   -> data length field
 str5,0(,r1)

I am not using the the prolog and epilog macros as it seemed to work without, 
and I really would like to avoid LE.

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


Re: Initiator purge or start based on imitator alphabet

2024-03-11 Thread Willy Jensen
Yes if is has been named. You can use the $DI(n) to check for the name, or look 
at the JES2 parmlib member.

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


Re: How read Cyl 0 from within a program?

2024-02-13 Thread Willy Jensen
I think that DSN=44XL’04’ is the VTOC. Perhaps allocate with ABSTR?

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


Re: ISPF edit - clone a column

2024-02-02 Thread Willy Jensen
I have an edit macro that might help, extract from the help screen:

ARRANGE  I|M|O|X c l t s   
   
Parameter description  
   
 I Insert block at 'to', leave the original.   
 O overlay at 'to' with block, leave the original. 
 M Insert block at 'to', whitespace the original.  
 X Insert block at 'to', delete the original   
 cColomn   
 lLength of sub-field. 
 tTo colomn.   

And a small sample for moving a block:
Sample original data:
=COLS> +1+2+3+4+-
** * Top of Data 
01 key1  
02  this line does not contain any value 
03  this line do contain the key1 value  
04  this line also does not contain any value
05  this line do contain the lastkey value   
06  this line also contains the lastkey value
07 lastkey

Sample command: arrange m 1 5 25 

Sample modified data:
=COLS> +1+2+3+4+5-
** * Top of Data *
01 key1   
02  this line does not  contain any value 
03  this line do contai n the key1 value  
04  this line also does  not contain any value
05  this line do contai n the lastkey value   
06  this line also cont ains the lastkey value
07  ey lastk  

I can send it to you if you like, it's not on the CBT web.

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


Re: Antiquarian Curiosity: Pre-MVS/XA Mount Command for DASD Volumes

2024-02-01 Thread Willy Jensen
Seems that the VATLSTxx parmlib member is still relevant.

From the z/OS 2.5 MVS Initialization and Tuning Reference:

The VATLSTxx member contains an optional VATDEF statement followed by entries 
that define the mount
and use attributes of DASD volumes.
Use the VATDEF statement in VATLSTxx to specify a default use attribute. If you 
do not specify VATDEF,
the system assigns a default of PUBLIC to those volumes that are not 
specifically assigned a use attribute
in the VATLSTxx member or in a MOUNT command.

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


Re: Sv: Custom ISPF command

2024-01-23 Thread Willy Jensen
I can offer my ISPCMDU found at https://harders-jensen.com. With it you can 
update the ISPF command table ISPCMDS in flight, no restart required.

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


Re: Masking SMF data internally

2024-01-22 Thread Willy Jensen
Most SMF records can be copied to a normal VB dataset. As I recall, only one or 
two CICS records were really that big (or perhaps it is DB2, it's been a 
while)? Anyway, you can select the record types that you need and the use SORT 
to convert to normal VB.

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


Re: Netview, REXX and assembler interfaces for variable access

2024-01-09 Thread Willy Jensen
Turns out the problem is with IRXSAY, I can read and write variables using 
IRXEXCOM. But IRXSAY returns with return code 28 'A language processor 
environment could not be located'. Unfortunately I was not checking for IRXSAY 
return codes, as IRXSAY just works, well at least in TSO it does. So now to 
find an alternative to that.

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


Re: LISTDSI - hardcoded dsn vs. read in from file

2024-01-06 Thread Willy Jensen
"PROF NOPREFIX works but can leave you that setting when you don't want it on 
termination."
Do check if it is already off before you change it, and if so dont set it on 
afterwards. Also remember that the prefix is not neccessarily the user id, so 
you need something like the following to preserve the value:  pfx = 
sysvar('syspref')

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


Re: ISPF setup macro

2024-01-05 Thread Willy Jensen
"INRTDDN, which is valid for INFO but not for ALLOC"
For alloc you must use the RTDSN(varname) parameter. But a good point, it 
really should have been the same.

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


Re: LISTDSI - hardcoded dsn vs. read in from file

2024-01-05 Thread Willy Jensen
> . .   
>Unquote: return strip(space(translate(arg(1)," ","'"))) 
>
>Isn't that a verbose equivalent of:
>return strip( arg( 1 ), 'Both',  )
Not exactly, the Unquote also removes spaces between the quote and the text. It 
has happened.

>Requote: if arg(1)='' then return '';else return "'"Unquote(arg(1))"'" 
>
>If arg( 1 ) is a string of blanks, do you want to pass listds()
>an empty string?

Yes, though one could return something like '*missing name*' I guess and/or do 
a SAY with a message.

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


Netview, REXX and assembler interfaces for variable access

2024-01-05 Thread Willy Jensen
Hi,
I am trying to make a REXX function writen in assembler run in Netview REXX. 
The function in question reads. lists and writes variables, it uses IRXEXCOM 
for variable access, IRXSTK for stack access and IRXSAY for terminal output.
When running in Netview it doesn't abend, but it doesn't do anything either, 
except that the return value is valid. It returns 0, which indicates success.
I have written another test program, which shows that on entry 
 r0 points to an ENVBLOCK 
 field ENVBLOCK_IRXEXTE points to a valid IRXEXTE, but the fields IRXEXCOM, 
IRXSTK and IRXSAY in there points to the TSO modules. 
I verified this by running the program under TSO.
I have read the manuals, but haven't found a clue. My old friend Google was no 
help either.
I did look at the sample Netview program CNMS8002, but that didn't help.
Anybody got a hint? A link to or the name of a manual would be nice, a working 
sample even better. 

rgds
Willy

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


Re: LISTDSI - hardcoded dsn vs. read in from file

2024-01-05 Thread Willy Jensen
or requote as a function, I think it looks nicer

 cc=Listdsi(requote(ds))   
 . .   
Unquote: return strip(space(translate(arg(1)," ","'")))
Requote: if arg(1)='' then return '';else return "'"Unquote(arg(1))"'" 
--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: LISTDSI - hardcoded dsn vs. read in from file

2024-01-05 Thread Willy Jensen
Instead of changing the TSO profile, I usually remove quotes using a function 
like so:

  cc=Listdsi("'"unquote(ds)"'")  
  . .
 Unquote: return strip(space(translate(arg(1)," ","'"))) 

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


Re: Checking status of multiple datasets in CLIST and REXX

2023-12-29 Thread Willy Jensen
SDSF has an ENQD command, which might be available via the API.

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


Re: Find the ASID type?

2023-12-08 Thread Willy Jensen
I found an old program which checks a field named ascbtsb, if this is not zero 
then the task is a TSU.

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


Re: Page Datasets in User Catalog

2023-11-22 Thread Willy Jensen
Maybe s/he was thinking about defining them, which I am pretty sure I have done 
in a distant past using MLA, rather actually using them.

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


Re: Converting Assembler TPUTS to ISPF

2023-08-22 Thread Willy Jensen
www.cbttape.org file 669 contains program ISPDPX01, which is an ISPF panel exit 
allowing you to define the entire panel, or parts thereof, in on or more REXX 
stems.

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


Re: Accessing JCL SETs in Rexx

2023-08-04 Thread Willy Jensen
Maybe some DISP=(OLD,DELETE) might have unforseen consequenses when actually 
executing the JCL, even with PGM=IEFBR14.

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


Re: Equivalent of TSOLIB for batch

2023-07-20 Thread Willy Jensen
I for one would be sorry to see the STEPLIB program from CBT file 452 go away. 
I find it very useful for packaging applications in separate set of libraries 
and then use ISPF LIBDEFs, TSO ALTLIB and the STEPLIB program to make the 
neccessary allocations. Sadly ISPLLIB has severe limitations and TSOLIB cannot 
be used inside ISPF, unless something has changed since I last checked. I sure 
would welcome a built-in TSO STEPLIB equivalent.

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


Re: PDS/PDSE Member information

2023-06-16 Thread Willy Jensen
I have a free alternative to TSO PIPE, it can do member list as you require. 
Let me know if you are interrested.

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


Re: VSAM skip sequential processing

2023-05-23 Thread Willy Jensen
I think I put it badly, by "used a key search to position at the first record" 
when I really meant that I used a key search to position at the first record 
matching the partial key, and then switched to sequential processing.

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


Re: VSAM skip sequential processing

2023-05-23 Thread Willy Jensen
The one time I have done it, I used a key search to position at the first 
record, then sequential processsing from then on, till I reached my end point.

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


Re: TSO command System Rexx

2023-05-07 Thread Willy Jensen
This will issue any TSO command, but security-wise I think it opens a barn door.
Save it as member TSOCMD in your SYSREXX lib.

/* general TSO command   rexx */
 address tso arg(1) 
 Exit 0  

Sample use (@ is my SYSREXX command char):

@TSOCMD LISTCAT ENT(SYS1.HELP)

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


Re: rexx calls to utilities using dd list

2023-03-26 Thread Willy Jensen
This DD override feature can be used for all IBM standard utilities, I have 
recently used it with IEBGENER.

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


Re: ISPF macro/script

2023-02-09 Thread Willy Jensen
It will work, that is how I usually do it.
And so will this:
"line_after .zl = 'this is a new line'" 
"line_after .zl = ' and so is this   '" 

Though I prefer to assigh the value to a variable and then use that, mostly 
because it is easier to handle quotes and complex strings that way.

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


Re: JCL Procedure help

2023-02-08 Thread Willy Jensen
Since you are running a REXX anyway, that REXX could copy DDname SYSIN to a 
temporary dataset, which is then used for SYSIN in the 2nd step, A simple REPRO 
INFILE(SYSIN) OUTFILE(TEMP) should do it.

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


Re: ISPF macro/script

2023-02-07 Thread Willy Jensen
If it is a short template then you can insert the lines from the macro. Replace 
the COPY command with

 /* Insert template */   
 s='Template line 1' 
 "line_after .zl = (s)"  
 s='Template line 2' 
 "line_after .zl = (s)"  

 and so on and so forth

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


Re: ISPF macro/script

2023-02-07 Thread Willy Jensen
I think this is the shortest sample I can come up with. It generates first or 
next membername for the day, then edits that member using itself as edit macro. 
The edit macro part copies the template and saves the member. Remove the 
'CANCEL' command to stay in edit.
The command can be executed from a dataset list, or from a member list.
You must of course change the 'your.template.lib' to your own library.
/*rexx  
*/  
 Address Isredit "MACRO PROCESS (PRM)"  
 if rc=0 then exit EditMac() /* edit macro */   

 chrl='?ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
 parse source @sys @what @me @ddn @where .  

 /* get dsn from parm */
 parse value translate(arg(1)," ","'()") with dsn . 

 /* get member list using TSO services */   
 zz=outtrap('mbl.') 
 "listds '"dsn"' members"   
 zz=outtrap('off')  

 /* Locate previous members with date, member base is Dyymmdd */
 mbrb='D'substr(date('s'),3)
 do n=mbl.0 to 7 by -1 until left(mbr,7)=mbrb   
   mbr=strip(mbl.n) 
 end
 if left(mbr,7)=mbrb then c=right(mbr,1)  /* found one */   
 else c='?'   /* 1st of day, use A */   
 mbr=mbrb||substr(chrl,pos(c,chrl)+1,1)   /* make new mbrname  */   

 /* edit (create) new member, using self as macro */
 Address ispexec "Edit dataset('"dsn"("mbr")') macro("@me")"
 exit 0 

/* Here is the inline edit macro */ 
EditMac:
 Address Isredit
 "(ds)=dataset" 
 "(mb)=member " 
 /* Get template */ 
 "Copy 'your.template.lib(TEMPLATE)' after .zf"  /* insert after first */ 
 /* save and quit */
 "save" 
 "cancel"/* to avoid any prompts */ 
 exit 0

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


Re: REXX Question

2023-01-18 Thread Willy Jensen
Yeah I know, I really should strip that from the web text.

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


Re: REXX Question

2023-01-18 Thread Willy Jensen
For asking RACF from a REXX, check RXSAFCHK at http://harders-jensen.com.
--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Integrated Catalog record layout

2022-10-22 Thread Willy Jensen
I'm ok wth the layout of the SMF record as such, what I am looking for is the 
layout of the field SMF61CRC.

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


Integrated Catalog record layout

2022-10-22 Thread Willy Jensen
Hi, anybody knows where to find the mapping of Integrated Catalog records?
I am looking at SMF type 61 and at the end it says 'New catalog record for 
defined entry', but doesn't say where to find the mapping. I am primarily 
looking for volser information for non-vsam datasets. I have found the position 
by printing a few records and eye-balling the result, but I would like 
something a bit more official. I did look at the CSI interface returned info, 
but it doesn't match up with what I see in the SMF record.
I couldn't find any IBM documentation nor anything in the internet in general.

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


Re: Iebcopy rename hlq??

2022-10-21 Thread Willy Jensen
Forgot to metion, you can run an ISPF skeleton directly from the edited member 
using the SKEL command from http://harders-jensen.com. And I know that there 
are others.

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


Re: Iebcopy rename hlq??

2022-10-21 Thread Willy Jensen
A small ISPF skeleton like this:

)CM Copy datasets with rename 
  
)REXX DSN COUNT   
 /* make dataset list */  
 address tso "delstack"   
 queue dsn
 count=queued()   
 say 'count='count
)ENDREXX  
  
//DSCOPY   EXEC PGM=ADRDSSU   
//SYSPRINT DD SYSOUT=*
  
)DO N = 1 TO
)REXX DSN NDS 
 pull dsn 
 nds='NEWHQ'.dsn  
)ENDREXX  
  
 COPY DATASET(INC(  )) -  
   RENAMEU((,)) -  
TOL(ENQF) CATALOG SHR NULLSTORCLAS SPHERE 
  
)ENDDO

For the demo a dataset is queued inside the skeleton itself, but you can of 
course do the queues before running the skeleton. Or you can do a LISTCAT 
inside the skeleton and build the dataset list from that.

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


Re: Automation of the TSO RECEIVE command

2022-08-31 Thread Willy Jensen
You can pull the information from the XMIT dataset and then either present it 
to the user in a dialog, or act upon it directly.
Here is a snippet that 'says' the original datasetname and user..

  /* get xmit datasetname */
  arg inda  
  say 'xmitda='inda 

  /* get xmit data */   
  queue 'END'   
  Call DoReceive
  parse var resp.1 xmsg . srcds . srcuser . 
  say 'srcds='srcds 
  say 'srcuser='srcuser 
  exit 0

 DoReceive: 
  p=prompt('on')
  zz=outtrap('resp.')   
  "receive inda("inda")"
  cc=rc 
  zz=outtrap('off') 
  p=prompt(p)   
  if cc<>0 then do n=1 to resp.0
say resp.n  
  end   
  return cc 

 Silent: zz=outtrap(word(arg(2) '$.',1))
 address tso arg(1);zz=outtrap('off');return rc

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


Re: SDSF ISFEXEC issue - help (please)

2022-08-29 Thread Willy Jensen
Probably a quoting issue, this works:
 Address SDSF ISFSLASH "'send ''howdy folks'' user(xx)'"

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


Re: How to set time parameter in TSO/E REXX getmsg function

2022-08-17 Thread Willy Jensen
You have the statement ARG hsmcmd':'seconds  
Could it be that the seconds value is not entirely numeric?
Maybe do something like this:
 
 seconds=word(seconds 2,1)  /* set default =2 */
 if datatype(seconds)<>'NUM' then call error 'bad seconds value "'seconds"'"'

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


Re: How to set time parameter in TSO/E REXX getmsg function

2022-08-17 Thread Willy Jensen
re "why do you recommend the REXX/SDSF API rather than TSO GETMSG"
I think it is simpler to use and saves one RACF definition (CONSOLE class).

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


Re: How to set time parameter in TSO/E REXX getmsg function

2022-08-16 Thread Willy Jensen
In any case, I will strongly recommend that you use the REXX/SDSF API rather 
than TSO GETMSG, i.e.:

 /* Demo REXX/SDSF API system command */
 zz=isfcalls('ON')  
 isfdelay=2  /* value for WAIT */
 Address SDSF ISFSLASH "'d prog,apf' (WAIT)"
 if rc<>0 then say 'Console failed rc' rc   
 else do n=1 to isfulog.0   
  say '->'isfulog.n 
 end


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


Re: How to set time parameter in TSO/E REXX getmsg function

2022-08-16 Thread Willy Jensen
You might be missing something. This is (one of) my TSO console pgms. The delay 
of 2 seconds could be a variaible.

/*  Issue command, receive response via the TSO CONSOLE commandrexx  */ 
   
  
 cons = userid()'C'   
 cart = 'C'right(time('s'),7,0)   
 parse arg cmd
 cc= XTSO("Console deactivate")   
 cc= XTSO("CONSOLE SYSCMD("cmd") CART("cart") NAME("cons")")  
 if cc>0 then do  
   say 'Console rc' cc
   if datatype($.0)='NUM' then do n=1 to $.0  
 say $.n  
   end
   Call close 20  
 end  
  
 Do cn=1 to 2/* #2 is sometimes needed to pick up all messages */ 
   cm.0=0 
   cc= GETMSG('CM.','SOL',cart,,2)
   if cc>4 then call close 8 "GETMSG error retrieving message, rc" cc 
   if cm.0=0 then leave   
   do cmsgi=1 to cm.0 
 say strip(cm.cmsgi,'t')  
   end
   if cm.0>1 then leave   
 End  
 call close 0 
  
Close:
 parse arg crc cmsg   
 crc=word(crc 0,1)
 if cmsg<>'' then call line cmsg  
 cc= XTSO("Console deactivate")   
 Exit crc 
XTSO: trace off; zz=outtrap(word(arg(2) '$.',1))  
address tso arg(1);zz=outtrap('off');xtsorc=rc;return rc 

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


Re: Tool for abend testing

2022-07-16 Thread Willy Jensen
I have a program which abends with the code in the parm field, it supports both 
system- and user abends. You are welcome to a copy, send me a private mail.
Sample:
 PARM=S0C8
 PARM=U123

You will still need some other program to do the wait, but a simple REXX in 
batch could do that.

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


Re: sys1.parmlib compare

2022-07-07 Thread Willy Jensen
"Members with ISPF statistics are marked with 'no-stat'"
should of course have said
"Members without ISPF statistics are marked with 'no-stat'"
doc will be fixed asap

Re FAMS, the dialog uses whatever PDS86 provides as timestamp.

The SETDatadif command compares all members in both libraries using SUPERC, 
marks lines where member data differ with 'datadif' in pink. I think that it is 
too costly to have that option as default.

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


Re: sys1.parmlib compare

2022-07-06 Thread Willy Jensen
I have an ISPF based dialog to compare 2 libraries, and copy between them. See 
MLCMP at http://harders-jensen.com
Start by taking a look at the doc - click on the 'text' text in the righthand 
column. Note that the PDS86 program from cbtttape.org file 182 is required.

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


Re: FTP Software for Mainframe to PC

2022-06-10 Thread Willy Jensen
Core FTP Server

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


Re: JES2 spool outputs

2022-06-03 Thread Willy Jensen
I found this link https://developer.ibm.com/articles/jes2-privilege-support/ to 
the article, brilliant, thanks Ravi.

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


Re: Do you have an example of .......

2022-05-17 Thread Willy Jensen
Try this REXX using the SDSF API:

 zz=isfcalls('ON')   
 Address SDSF ISFSLASH "'D SMS,STORGRP(ALL)' (WAIT)" 
 cc=rc   
 zz=isfcalls('OFF')  
 if rc<>0 then say 'Console failed rc' cc
 else do n=1 to isfulog.0
  say '->'isfulog.n  
 end

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


Re: SDSF Process

2022-03-02 Thread Willy Jensen
I strongly recommend that you use the SDSF/REXX API. Use the following as a 
model. The actual fields to use are described in the SDSF Users guide.

 isfsysname='**'  
 isfowner=''  
 isfprefix='' 
 call isfcalls 'ON'   
 call syscalls 'ON'   
  
 do 2  /* forever */  
   address SDSF "ISFEXEC DA"  
   if rc<>0 then exit msgrtn  
   do n=1 to jname.0  
 rec.n=left(jname.n,8),   
   left(jtype.n,8),   
   left(jobid.n,8),   
   left(ownerid.n,8)  
   end
   /*"execio" jname.0 "diskw output (stem rec.)" */   
   do n=1 to jname.0;say rec.n;end
   address syscall 'sleep 5'  
 end  
 return 0 
  
msgrtn:   
 if  isfmsg<>""  then  Say  "isfmsg  is:"  isfmsg 
 do  ix=1  to  isfmsg2.0  
   Say  "isfmsg2."ix  "is:"  isfmsg2.ix   
 end  
 return 0

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


Re: Rexx routine to dump all variables when debugging?

2022-02-17 Thread Willy Jensen
Depending on what you mean by 'dump' then the RLIST and REXPORT commands of the 
REXXGBLV program also at https://harders-jensen.com might be useful.

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


Re: Rexx routine to dump all variables when debugging?

2022-02-17 Thread Willy Jensen
See the REXXVARS program at https://harders-jensen.com

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


Re: ISPF Table Display attribute

2022-01-29 Thread Willy Jensen
A demo of ISPF dynamic area. It handles scrolling.
/*rexx 
 Demo ISPF panel using dynamic scrollable area 
  It changes the color of the text if line cmd is 1, 2, 3 or 4  
 
  See the panel source at the end  
   
 Input is 3 rexx stems, pos 1 in each stem is the panel attribute  
  psel   selection field   
  pmbr   member name - leading text
  ptxt   just some text
   
 Panel attributes  
  x'11' input  color turq caps off hilite uscore   
  x'12' input  color yellow caps off hilite uscore 
  x'13' input  color red caps off  hilite uscore   
  x'14' output color turq caps off 
  x'15' output color green caps off
  x'16' output color pink caps off 
  x'17' output color white caps off
   
 Control and reference variables   
  dpascsrwt panel width
  dpaarea   dynamic area   
  dpacsrp   cursor pos in field
  dpacsrf   fieldname of cursor
*/ 
   
 parse value '111213'x   with pai1 +1 pai2 +1 pai3 
 parse value '14151617'x with pao1 +1 pao2 +1 pao3 +1 pao4 
 dpascrwt=80   
 address ispexec "control errors return"   
 address ispexec   
 "vget (zscrmaxd zscrmaxw)"
   
 Call Load 
 pcsr= 1   
 Call Display  
 say 'End...'  
 exit 0
   
Display:   
 dpatop=1/* position in data */
 pnlareap=6  /* line in panel where the area is found */   
 pnlaread=zscrmaxd-pnlareap /* area depth */   
 do forever
   /* format screen area */
   if dpatop>pseln-pnlaread+1 then dpatop=pseln-pnlaread+1 
 /*if dpatop>pseln then dpatop=pseln */
   if dpatop<1 then dpatop=1   
   dpaarea=''  
   do n=dpatop to pseln
 dpaarea=dpaarea||left(left(psel.n,3)left(pmbr.n,9)ptxt.n,dpascrwt-1)||pao2
   end 
   /* control display, pull info */
   "display panel(ISPDYN2#)"   
   "vget (zverb zscrolla zscrolln)"
   if rc>4 | wordpos(zverb,'END RETURN')>0 then return 0   
   
   /* handle linecmd */
   lcn=0   
   do lcp=2 to zscrmaxd*dpascrwt by dpascrwt 
 lcmd=strip(substr(dpaarea,lcp,2))   
 lcn=lcn+1   
 if lcmd<>'' then do   

Re: ISPF, How to insert text to the first input field in the panel ?

2022-01-06 Thread Willy Jensen
Also, the ZCMD field may not be wide enough for your purpose. Personally I 
would just write a small prompt panel, as I then would have full control over 
format etc. Com to think of it, I do have (at least) one such panel.

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


Re: ISPF, How to insert text to the first input field in the panel ?

2022-01-06 Thread Willy Jensen
Long thread, not sure if this has been mentioned before.
The first input (or output field for that matter) will have a variable name 
associated with it, that is the variable name you use in the assignment. Not X.

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


Re: How to use dfsort to filter keywords that aren't fixed position

2022-01-04 Thread Willy Jensen
Be aware that multi-line messages may be interleaved with other messages.
--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: how to copy entire pds to sequential file ?

2021-12-14 Thread Willy Jensen
If you are ok with installing freeware then I suggest that you take a look at a 
couple of programs found at www.cbttape.org:
OFFLOAD in files 093 and 316, PDSPRINT in file 316.

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


Re: IBM ZDNT Learner's Edition - beware

2021-10-26 Thread Willy Jensen
I too have tried to get in touch with the local IBM sales with no response so 
far. When you filled in the form what did you enter as company name? In my 
opinion entering a company name runs contrary to requesting the Learners 
Edition as a hobbyist.

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


Inherit RMODE in local CSECTs?

2021-07-20 Thread Willy Jensen
Hi,
I would like to avoid linkage-editor messages IEW2646W 4B07 ESD RMODE(24) 
CONFLICTS WITH USER-SPECIFIED RMODE(ANY) FOR SECTION when I have internal 
CSECTs in my program without specific RMODE statement. I know that it is just a 
warning, but still..
I haven't found any assembler symbol for current RMODE aka the  for 
section name.
Any ideas?

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


Re: Read REXX variables directly by an assembler program

2021-03-17 Thread Willy Jensen
I am already allocating a large initial buffer. The issue is with my general 
routines like the CBT program REXXGBLV, where since they are in the public 
domain, I have no idea of nor control over how they will be used.
I have a couple of methods for handling the issue, but a direct read access, or 
a READ NEXT LOCATE, would be so much simpler.
Can't have it all I guess.

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


Re: Read REXX variables directly by an assembler program

2021-03-17 Thread Willy Jensen
The reason is that IRXEXCOM GET does a MOVE, meaning that you must already have 
a buffer big enough to hold the data. For a normal GET you can just redo the 
request with a bigger buffer and IRXEXCOM will tell you how big it needs to be. 
For GETNEXT however you must start again from the top as a a specific GET will 
destroy the information that REXX stored for GETNEXT. At least that is how I 
read the documentation, and experimentation seems to prove it. 
So perhaps what I really need is a GET LOCATE.

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


Read REXX variables directly by an assembler program

2021-03-16 Thread Willy Jensen
Some time ago I read something somewhere that indicated that there is a way to 
read REXX variables directly by an assembler program, without using neither 
IRXEXCOM nor IKJCT441.
Any ideas?

Willy

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


zPDT and containers

2020-02-04 Thread Willy Jensen
Hi,
anyone have any info on how to deploy zPDT in a Docker container? I have tried 
to seach the net and IBM's Internet Library, but no luck so far.

Willy

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


Re: Scheduled STCs running as instream procs?

2016-05-04 Thread Willy Jensen
Hm, interesting.

My started job starts with this:
//WTOTEST  JOB (1),'WTOTEST',   
// CLASS=A,REGION=32M   
//* 
  . . . etc etc 

SDSF shows the following files:
 JESMSGLG 
 JESJCL 
 JESYSMSG 
 SYSTSPRT TB  

No SYSMSGS.

The JESMSGS shows:
IEF695I START WTOTEST  WITH JOBNAME WTOTEST  IS ASSIGNED TO USER START2  , 
GROUP SYS1  
IEF236I ALLOC. FOR WTOTEST TB   
   
IEF237I 0AB4 ALLOCATED TO SYSEXEC   
   
IEF237I 0AB4 ALLOCATED TO   
   
IEF237I JES2 ALLOCATED TO SYSTSPRT  
   
IEF237I JES2 ALLOCATED TO SYSPRINT  
   
IEF237I JES2 ALLOCATED TO SYSTERM   
   
IEF237I DMY  ALLOCATED TO SYSTSIN   
   
Reply to continue   
   
IEF142I WTOTEST TB - STEP WAS EXECUTED - COND CODE  
   
IEF285I   SYSX.JOBLIB.DATA KEPT 
   
IEF285I   VOL SER NOS= SYSXS1.  
   
IEF285I   SYSX.EXECKEPT 
   
IEF285I   VOL SER NOS= SYSXS1.  
   
IEF285I   START2.WTOTEST.STC08485.D101.?   SYSOUT   
   
IEF285I   START2.WTOTEST.STC08485.D102.?   SYSOUT   
   
IEF285I   START2.WTOTEST.STC08485.D103.?   SYSOUT   
   
IEF373I STEP/TB  /START 2016119.0923
   
IEF032I STEP/TB  /STOP  2016119.0923
   
CPU: 0 HR  00 MIN  00.25 SECSRB: 0 HR  00 MIN  00.00 SEC
   
VIRT:68K  SYS:   268K  EXT:  360K  SYS:10800K   
   
IEF375I  JOB/WTOTEST /START 2016119.0923
   
IEF033I  JOB/WTOTEST /STOP  2016119.0923
   
CPU: 0 HR  00 MIN  00.25 SECSRB: 0 HR  00 MIN  00.00 SEC
   

This is from a z/OS 1.13. The proclib is in the IEFPDSI concatenation in the 
MSTJCL.
Perhaps we mean different things when we talk about started jobs?

Willy

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


Re: Dataset space information

2016-05-04 Thread Willy Jensen
I would recommend the VTOC program from CBTTAPE.ORG file 112. It can provide a 
lot of information, including the CCHHR of the dataset. You can filter by 
datasetname and volser.

Willy

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


Re: Scheduled STCs running as instream procs?

2016-04-29 Thread Willy Jensen
A started job will not tell you from where it came. On the other hand, it will 
also not say instream.

Willy

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