Yes, Clist (or C-List) can debug as follows:
 
PROC 0 DEBUG
/*-------------------------------------------------------------------*/
/* CLIST TO SWITCH PRIMARY/SECONDARY PFKEYS                          */
/*                                                                   */
/*-------------------------------------------------------------------*/
CONTROL: +
  CONTROL MAIN END(ENDO)
  IF &DEBUG = DEBUG | &DEBUG = D THEN +
    CONTROL LIST SYMLIST CONLIST MSG         /* to debug */
  ELSE +
    CONTROL NOLIST NOSYMLIST NOCONLIST NOMSG/* not to debug */

ERROR: +
  ERROR DO
    CONTROL LIST SYMLIST CONLIST MSG
    RETURN
    ENDO ERROR

INITS: +
  SET ZPF  = &&ZPF    /* set up ZPF as an array */
  SET OZPF = &&OZPF   /* ditto OZPF */

GET_PFKEYS: +
  DO I = 1 TO 24
    SET X = &SUBSTR(&LENGTH(&I):&LENGTH(&I)+1,0&I)
    ISPEXEC VGET (ZPF&X) PROFILE/* VGET element X in array ZPF */
    SET OZPF&X = &STR(&ZPF&X)    /* copy ZPF.X to element X in array
OZPF */
    ENDO GET_PFKEYS

SET_PFKEYS1: +
  DO I = 1 TO 12
    SET X = &SUBSTR(&LENGTH(&I):&LENGTH(&I)+1,0&I)
    SET ZPF&X = &STR(&OZPF&EVAL(&X+12))
    ISPEXEC VPUT (ZPF&X) PROFILE
    ENDO SET_PFKEYS1

SET_PFKEYS2: +
  DO I = 1 TO 12
    SET X = &SUBSTR(&LENGTH(&I):&LENGTH(&I)+1,0&I)
    SET Y = &X + 12
    SET ZPF&Y = &STR(&OZPF&X)
    ISPEXEC VPUT (ZPF&Y) PROFILE
    ENDO SET_PFKEYS2

EXIT: +
  EXIT CODE(&MAXCC)
 
*As for:*

SET VARNX = &&VARN&GLCV
IF (&VARNX = &SYMBOL) THEN DO
  SET VARFND = 1
  SET VARVX  = &&VARV&GLCV
  SET SYMBOL = &STR(&VARVX)
END
 
&&VARN is an arrayand &GLCV is the element in that array; so VARNX is
being set to the value of element &GLCV in array &&VARN.
 
In REXX "SET VARNX = &&VARN&GLCV" would be coded as "VARNX = VARN.GLCV".
 
BTW Some things can be done in Clist which cannot (well at least not
easily) be done in REXX, e.g. opening/reading a dataset associated with
a DDNAME passed as a parm to a Clist submitted as a batch TSO job via
JCL - such as:
 
PROC 2 DESTLIST MESSAGE DEBUG USERID CONSOLE
/*-------------------------------------------------------------------*/
/* N.B. DEFAULT IS 'NOW'                                             */
/* 'LOGON' -> 'NOW' IF LOGGED ON, ELSE AT LOGON TIME.                */
/* 'SAVE' -> ONLY AT NEXT LOGON TIME (OR LISTBC)                     */
/*                                                                   */
/* PARMS: DESTLIST DDNAME OF USERS/CONSOLES TO WHOM MESSAGE IS TO    */
/*                 BE SENT - DEFAULT=NONE                            */
/*        MESSAGE: DDNAME OF MESSAGE TEXT TO BE SENT - DEFAULT=NONE  */
/*        DEBUG:   SETS TRACE ON - DEFAULT=OFF                       */
/*                                                                   */
/* 13/12/94 CMP - ALLOW SENDING TO USERID(S) OR TO MVS CONSOLE(S)    */
/* 17/04/89 CMP                                                      */
/*-------------------------------------------------------------------*/
/* etc. etc. */
SET USREC  = &&&DESTLIST  /* define USREC as being a record in
DDNAME=&DESTLIST */
SET MSGREC = &&&MESSAGE   /* etc. */
SET MAXCC = 0
OPENFILE &DESTLIST INPUT  /* open DDNAME=&DESTLIST for reading */
GETFILE &DESTLIST         /* read the 1st record in DDNAME=&DESTLIST */
DO I = 0 TO 99 WHILE &MAXCC = 0
  SET USER = &USREC
  SET J = &SYSINDEX(&STR( ),&USER,1)
  SET J = &J - 1
  SET USER = &SUBSTR(1:&J,&USER)
  SET SENDTO = &STR(&SENDTO&USER,)
  GETFILE &DESTLIST
  ENDO
/* etc. etc. */
 
HTH - Cheers, Chris Poncelet (retired sysprog) 
 


On 19/03/2020 18:43, Charles Mills wrote:
> Does CLIST have the kind of debugging facility that Rexx has? Can you assign
> some initial values and then step through the code seeing what is happening?
> I am going to guess not, but thought it worth asking.
>
> I know nada CLIST. When I left the OS/360 family of operating systems
> somewhere around 1975 TSO was mostly a slow curiosity and when I came back
> around 1990 Rexx was powerful, widely available and I knew it from CMS.
> Whenever I opened a member and it was in CLIST I quickly closed it again.
>
> Charles
>
> ----------------------------------------------------------------------
> 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