z/OS TSO/E Programming Services
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Example 4: Return All Active Variables and Their Values

z/OS TSO/E Programming Services
SA32-0973-00

Figure 1 shows an example of how to invoke IKJCT441 to find all variables and their values.

Figure 1. Example 4: Return all Active Variables and their Values
LOCATE   CSECT
CVTPTR   EQU   16
CVTTVT   EQU   X'9C'
R15      EQU   15
R14      EQU   14
R13      EQU   13
R12      EQU   12
R11      EQU   11
R9       EQU   9
R8       EQU   8
R0       EQU   0
         IKJTSVT
LOCATE   CSECT
         STM   R14,R12,12(R13)  SAVE CALLER'S REGISTERS
         BALR  R12,0            ESTABLISH ADDRESSABILITY
         USING *,R12            BASE REGISTER OF EXECUTING PROGRAM
         ST    R13,SAVEAREA+4   CALLER'S SAVEAREA ADDRESS
         LA    R15,SAVEAREA     EXECUTING PROGRAM'S SAVEAREA ADDRESS
         ST    R15,8(,R13)      EXECUTING PROGRAM'S SAVEAREA ADDRESS
         LA    R13,SAVEAREA     EXECUTING PROGRAM'S SAVEAREA ADDRESS
*
*
LOOP     DS    0H
         L     R15,CVTPTR              ESTABLISH
         L     R15,CVTTVT(,R15)        ADDRESSABILITY TO THE
         L     R15,TSVTVACC-TSVT(,R15) VARIABLE ACCESS SERVICE
*
*        INVOKE THE VARIABLE ACCESS SERVICE
*
         LTR   R15,R15         VERIFY TSVT ADDRESS PRESENT
         BNZ   CALL441         IF PRESENT, CALL IKJCT441
LINK441  LINK  EP=IKJCT441,                                            *
               PARAM=(ECODE,   ENTRY CODE                              *
               NAMEPTR,        POINTER TO VARIABLE NAME                *
               NAMELEN,        LENGTH OF VARIABLE NAME                 *
               VALUEPTR,       POINTER TO VARIABLE VALUE               *
               VALUELEN,       LENGTH OF VARIABLE VALUE                *
               TOKEN),         TOKEN TO VARIABLE ACCESS SERVICE        *
               VL=1            CAUSES HI BIT ON IN THE PARM LIST
         B     RET441
CALL441  CALL  (15),                                                   *
               (ECODE,         ENTRY CODE                              *
               NAMEPTR,        POINTER TO VARIABLE NAME                *
               NAMELEN,        LENGTH OF VARIABLE NAME                 *
               VALUEPTR,       POINTER TO VARIABLE VALUE               *
               VALUELEN,       LENGTH OF VARIABLE VALUE                *
               TOKEN),         TOKEN TO VARIABLE ACCESS SERVICE        *
               VL              CAUSES HI BIT ON IN THE PARM LIST
*
RET441   C     R15,NOMORE
         BE    ENDUP
         LTR   R15,R15
         BNZ   ERRORRTN
*
MAINLINE DS    0H
         L     R8,NAMEPTR
         L     R9,VALUEPTR
*
*
*        ISSUE 'PUTLINE' TO WRITE VARIABLE NAME AND VALUE
*                       - OR -
*        SAVE THE NAME AND VALUE IN A TABLE
*
*
         B    LOOP
*
*
ERRORRTN DS   0H
*
*        ANALYZE RETURN CODE
*
         B MAINLINE
*
ENDUP    DS   0H
         L    R13,4(,R13)
         L    R14,12(,R13)      RESTORE REGISTER 14
         LM   R0,R12,20(R13)    RESTORE REMAINING REGISTERS
         BR   R14               RETURN TO CALLER, REGISTER 15 CONTAINS
*                               THE RETURN CODE FROM IKJCT441
*
*
NAMELEN  DS    F           LENGTH OF NAME WILL BE RETURNED HERE
VALUELEN DS    F           LENGTH OF VALUE WILL BE RETURNED HERE
NAMEPTR  DS    A           ADDRESS OF NAME WILL BE RETURNED HERE
VALUEPTR DS    A           ADDRESS OF VALUE WILL BE RETURNED HERE
TOKEN    DC    F'0'        TOKEN MUST BE ZERO ON THE FIRST CALL
*                            AND NEVER CHANGED BY THE CALLER
ECODE    DC    A(TSVELOC)  ENTRY CODE FOR THE 'LOCATE' SERVICE
NOMORE   DC    A(TSVRNOM)  RETURN CODE FOR NO MORE NAMES
SAVEAREA DS    18F
         END

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014