© robertzenuk@newsgroup

This example shows assignments to run IEBGENER under OMVS.

/* REXX **************************************************************/
/* Purpose: Run a GENER through the USS wall                         */
/*-------------------------------------------------------------------*/
/* Syntax: gener sysut1 sysut2                                       */
/* Parms:  sysut1 - input                                            */
/*         sysut2 - output                                           */
/*                                                                   */
/*********************************************************************/
/* Accept input and output                                           */
arg sysut1 sysut2
/*********************************************************************/
/* Allocate SYSUT1                                                   */
exitrc = bpxwdyn("alloc fi(sysut1) da('"sysut1"') shr")
if exitrc <> 0 then say 'Allocate error on SYSUT1 RC='exitrc
/*********************************************************************/
/* Allocate SYSUT2                                                   */
exitrc = bpxwdyn("alloc fi(sysut2) da('"sysut2"') shr")
if exitrc <> 0 then say 'Allocate error on SYSUT2 RC='exitrc
/*********************************************************************/
/* Allocate SYSPRINT                                                 */
exitrc = bpxwdyn("alloc dd(sysprint) sysout(a)")
if exitrc <> 0 then say 'Allocate error on SYSPRINT RC='exitrc
/*********************************************************************/
/* Allocate SYSIN                                                    */
exitrc = bpxwdyn("alloc dd(sysin) dummy")
if exitrc <> 0 then say 'Allocate error on SYSIN RC='exitrc
/*********************************************************************/
/* Invoke IEBGENER                                                   */
parms = ''
address linkmvs 'IEBGENER' 'PARMS'
exitrc = rc
if exitrc <> 0 then say 'IEBGENER error RC='exitrc
/*********************************************************************/
/* Free All DD's                                                     */
/*********************************************************************/
exitrc = bpxwdyn("free dd(sysut1)")
if exitrc <> 0 then say "FREE error on SYSUT1 DD RC="exitrc
exitrc = bpxwdyn("free dd(sysut2)")
if exitrc <> 0 then say "FREE error on SYSUT2 DD RC="exitrc
exitrc = bpxwdyn("free dd(sysprint)")
if exitrc <> 0 then say "FREE error on SYSPRINT DD RC="exitrc
exitrc = bpxwdyn("free dd(sysin)")
if exitrc <> 0 then say "FREE error on SYSIN DD RC="exitrc
/*********************************************************************/
/* Shutdown                                                          */
/*********************************************************************/
shutdown: exit(exitrc)
back to REXX in batch