Product Tips

[ Home | Contents | Search | Post | Reply | Next | Previous | Up ]


Code to list library CICS program is in

From:
Date: 3/29/2002
Time: 9:59:06 PM
Remote Name: 209.178.164.237

Comments

Here it is:

TELRPLMD TITLE 'TELRPLMD - FIND DFHRPL FOR PROGRAM'
***********************************************************************
*   SWA STORAGE                                                       *
***********************************************************************
SWADSECT DSECT
SWASTART EQU   *
EPA      DS    CL28
SWEPAPTR DS    F
SWAPARMS SWAREQ MF=L
SWALENG  EQU   *-SWASTART
***********************************************************************
*   PROGRAM STORAGE                                                   *
***********************************************************************
DFHEISTG DSECT
HEADERA  DS    CL5
HEADERT  DS    CL8
HEADERB1 DS    CL24
HEADERC  DS    CL6
HEADERS  DS    CL4
HEADERB2 DS    CL24
HEADERD  DS    CL8
HEADERNL DS    CL2
PGMNAMCA DS    CL5
PGMNAMC  DS    CL8
PGMNAMA  DS    CL2
PGMNAM   DS    CL8
PGMNAMEA DS    CL2
HEADERLE EQU   *-HEADERA
TEXTLEN  DS    H
TEXTPTR  DS    F
ABSTIME  DS    D
DSNAME   DS    CL44
CONCAT   DS    CL4
DDNAME   DS    CL8
SERV1SAV DS    F
TCBSAVE  DS    F
BLDLAREA DS    CL20
REGSTORE DS    16F
MVSREGSA DS    18F
TEXTOUT  DS    CL256
***********************************************************************
*   PROGRAM LOGIC                                                     *
***********************************************************************
TELRPLMD DFHEIENT CODEREG=(R3,R4),DATAREG=(R12),EIBREG=(R8)
         TELIN
         CLI   EIBAID,DFHCLEAR      IS THIS CLEAR?
         BE    MAIN0910             YES, RETURN AND END
         CLI   EIBAID,DFHPF3        PF3?
         BE    MAIN0910             YES, RETURN AND END
         CLI   EIBAID,DFHPF15       PF3?
         BE    MAIN0910             YES, RETURN AND END
         B     PROC1000
***********************************************************************
*   EXIT LOGIC                                                        *
***********************************************************************
MAIN0900 EXEC CICS RETURN TRANSID(EIBTRNID)
MAIN0910 EXEC CICS SEND CONTROL ERASE FREEKB
         EXEC CICS RETURN
***********************************************************************
*   MAIN LOGIC                                                        *
***********************************************************************
PROC1000 OC    PGMNAM,=CL8' '       CLEAR PGMNAM
         EXEC CICS RECEIVE SET(R10) LENGTH(TEXTLEN)
         CLC   0(4,R10),EIBTRNID    IS THIS UNFORMATTED?
         BE    PROC2000             YES, GO SEND INITIAL
         LH    R2,TEXTLEN           GET LENGTH OF TEXT
         SH    R2,=H'3'             SUBTRACT 3 TO BYPASS FIRST SA
         BNP   PROC1020             NOT > 0, GO DO PROCESS
         LA    R1,PGMNAM            GET STARTING ADDRESS OF PGMNAM
         LA    R10,3(R10)           BUMP PAST SA
PROC1010 MVC   0(1,R1),0(R10)       MOVE IN PGMNAM
         LA    R1,1(R1)             GO TO NEXT BYTE TO MOVE TO
         LA    R10,1(R10)           GO TO NEXT BYTE TO MOVE FROM
         BCT   R2,PROC1010          GO DO NEXT BYTE
         B     PROC1020             GO PROCESS
***********************************************************************
* PROCESS PGMNAM FOUND IN ENTERED COMMAND                             *
***********************************************************************
PROC1020 MVC   TEXTOUT(DSNAMEL),DSNAMES               MOVE IN SEND TEXT
         MVC   DDNAME,=CL8'DFHRPL'                    GET DFHRPL FIRST
         BAL   R1,SERV1000                            GET DFHRPL FIRST
         LA    R10,TEXTOUT                            GET OUTPUT AREA
         MVC   DFHRPLO-DSNAMES(L'DFHRPLO,R10),DSNAME  MOVE DSNAME
         MVC   CONCATDO-DSNAMES(L'CONCATDO,R10),CONCAT MOVE CONCAT #
*        MVC   DDNAME,=CL8'STEPLIB'                   GET STEPLIB NEXT
         MVC   DDNAME,=XL8'0000000000000000'          GET STEPLIB NEXT
         BAL   R1,SERV1000                            GET STEPLIB NEXT
         LA    R10,TEXTOUT                            GET OUTPUT AREA
         MVC   STEPLIBO-DSNAMES(L'STEPLIBO,R10),DSNAME MOVE DSNAME
         MVC   CONCATSO-DSNAMES(L'CONCATSO,R10),CONCAT MOVE CONCAT #
***********************************************************************
* SEND THE CREATED TEXT                                               *
***********************************************************************
         MVC   TEXTLEN,=AL2(DSNAMEL)                  MOVE SEND LENGTH
         EXEC CICS SEND TEXT FROM(TEXTOUT) LENGTH(TEXTLEN) ERASE
***********************************************************************
* BUILD AND SET FIRST SCREEN                                          *
***********************************************************************
PROC2000 XC    TEXTLEN,TEXTLEN      CLEAR TEXT LENGTH
         LA    R0,TEXTOUT           GET ADDRESS OF OUTPUT TEXT
         ST    R0,TEXTPTR           STORE ADDRESS OF OUTPUT TEXT
         MVI   HEADERA,STFIELD      MOVE IN START FIELD
         MVI   HEADERA+1,DFHBMASK   MOVE IN ASKIP
         MVI   HEADERA+2,DFHSA      MOVE IN SET ATTRIBUTE
         MVI   HEADERA+3,DFHCOLOR   MOVE IN COLOR
         MVI   HEADERA+4,DFHTURQ    MOVE IN COLOR TURQUOISE
         MVC   HEADERC,=CL6'SYSID=' INDICATE SYSID
         EXEC CICS ASSIGN SYSID(HEADERS)
         EXEC CICS ASKTIME ABSTIME(ABSTIME)
         EXEC CICS FORMATTIME ABSTIME(ABSTIME)                         X
               TIME(HEADERT) TIMESEP MMDDYY(HEADERD) DATESEP
         MVC   HEADERB1,=CL24' '
         MVC   HEADERB2,=CL24' '
         MVI   HEADERNL,NEWLINE     MOVE NEW LINE AFTER LINE1
         MVI   HEADERNL+1,NEWLINE   MOVE NEW LINE AFTER LINE1
         MVC   PGMNAMCA,HEADERA     MOVE IN DEFAULT DISPLAY ATTRIBUTE
         MVC   PGMNAMC,=CL8'PGNNAME:'
         MVI   PGMNAMA,STFIELD      MOVE IN START FIELD
         MVC   PGMNAMA+1(1),=AL1(DFHBMUNP+DFHBMFSE+DFHBMBRY)
         MVI   PGMNAMEA,STFIELD     MOVE IN START FIELD
         MVI   PGMNAMEA+1,DFHBMASK  MOVE IN ASKIP
         LH    R1,TEXTLEN           GET TEXT LENGTH
         LA    R1,HEADERLE(R1)      ADD LENGTH OF HEADER
         STH   R1,TEXTLEN           STORE TEXT LENGTH
         L     R1,TEXTPTR           GET OUTPUT LOCATION
         MVC   0(HEADERLE,R1),HEADERA MOVE OUTPUT LINE
         LA    R1,HEADERLE(R1)      BUMP UP MVC LENGTH
         ST    R1,TEXTPTR
         EXEC CICS SEND TEXT FROM(TEXTOUT) LENGTH(TEXTLEN)             X
               FREEKB CURSOR(=AL2(171))
         B     MAIN0900
***********************************************************************
*   GET DSNAME AND CONCAT FORM DDNAME                                 *
***********************************************************************
SERV1000 ST    R1,SERV1SAV        STORE RETURN ADDRESS
         MVC   CONCAT,=CL4' '
         USING PSA,R0
SERV1010 L     R1,PSATOLD         DDNLOOP - GET TCB'S ADDRESS
         USING TCB,R1
SERV1020 ST    R1,TCBSAVE         TCBLOOP
         SR    R2,R2              CLEAR R2
         ICM   R2,B'1111',TCBDEB  GET FIRST DEB ADDRESS
         BZ    SERV1050           INDICATE DFHRPL NOT FOUND
         L     R5,TCBTIO          GET TIOT ADDRESS
         DROP  R1
         USING DEBBASIC,R2
SERV1030 SR    R1,R1              DEB LOOP - CLEAR R1
         ICM   R1,B'0111',DEBDCBB GET DCB ADDRESS
         BZ    SERV1040           ZERO, GO GET NEXT DEB
         USING IHADCB,R1
         LH    R10,DCBTIOT        GET OFFSET INTO TIOT FOR THIS ENTRY
         AR    R10,R5             GET TRUE TIOT ENTRY
         USING TIOENTRY,R10
         CLC   TIOEDDNM,DDNAME    DDNAME FOUND?
         BE    SERV1100
SERV1040 SR    R1,R1              NEXT DEB - CLEAR R1
         ICM   R1,B'0111',DEBDEBB GET NEXT DEB ADDRESS
         BZ    SERV1050           INDICATE DFHRPL NOT FOUND
         LR    R2,R1              GET DEB ADDRESS
         B     SERV1030           GO GET'EM TIGER
         DROP  R1,R2
SERV1050 L     R2,TCBSAVE         GET TCB'S ADDRESS
         USING TCB,R2
         SR    R1,R1
         ICM   R1,B'1111',TCBBACK GET NEXT TCB
         DROP  R2
         BZ    SERV1060           NO, CONTINUE TO SERV1100
         C     R1,PSATOLD         SEE IF WE'VE HIT END
         BNE   SERV1020
SERV1060 MVC   DSNAME,=CL44'DCB NOT FOUND   '
         B     SERV1140
SERV1100 STM   R0,R15,REGSTORE    STORE REGISTERS
         LA    R13,MVSREGSA       GET ADDRESS OF MVS SA
         MVC   BLDLAREA(2),=H'1'  INDICATE 1 ENTRY
         MVC   BLDLAREA+2(2),=H'14' 14 BYTE ENTRY
         MVC   BLDLAREA+4(8),PGMNAM MOVE IN PROGRAM NAME
         BLDL  (R1),BLDLAREA      GO DO BLDL
         LM    R0,R14,REGSTORE    STORE REGISTER
         LTR   R15,R15            TEST R15
         BNZ   SERV1130           NOT FOUND
         USING IHADCB,R1
         LH    R10,DCBTIOT        GET OFFSET INTO TIOT FOR THIS ENTRY
         DROP  R1
         L     R1,PSATOLD
         USING TCB,R1
         L     R5,TCBTIO          GET TIOT ADDRESS
         AR    R10,R5             GET TRUE TIOT ENTRY
         DROP  R1
         SR    R1,R1              CLEAR R1
         ICM   R1,B'0001',BLDLAREA+15         GET CONCATENATION NUMBER
         CVD   R1,ABSTIME         CONVERT TO DECIMAL
         UNPK  CONCAT+1(3),ABSTIME+6(2) UNPACK
         OI    CONCAT+3,C'0'      FORCE X'F0'
         MVI   CONCAT,C'+'
SERV1110 CH    R1,=H'1'           COMPARE WITH H'1'
         BL    SERV1120           LOW, FOUND DSNAME
         BCTR  R1,0               SUBTRACT COUNT BY ONE
         SR    R0,R0              CLEAR R0
         IC    R0,TIOELNGH        GET TIOE LENGTH
         AR    R10,R0             BUMP UP TO NEXT TIOT ENTRY
         B     SERV1110
SERV1120 EXEC CICS GETMAIN SET(R6) BELOW FLENGTH(=A(SWALENG))
         USING SWADSECT,R6
         LA    R5,EPA                  GET ADDRESS OF THE EPA
         ST    R5,SWEPAPTR             INITIALIZE EPA POINTER
         USING ZB505,R5                ESTABLISH ADDRESSABILITY TO EPA
*        XC    SWAEPA,SWAEPA           INITIALIZE THE EPA
         XC    SWAEPAX,SWAEPAX         INITIALIZE THE EPA
*        USING TIOT1,R10               ESTABLISH ADDRESSABILITY TO TIOT
         MVC   SWVA,TIOEJFCB           MV SVA OF JFCB INTO EPA
         STM   R0,R15,REGSTORE    STORE REGISTERS
         LA    R13,MVSREGSA       GET ADDRESS OF MVS SA
         SWAREQ FCODE=RL,EPA=SWEPAPTR,UNAUTH=YES,MF=(E,SWAPARMS)
         LM    R0,R14,REGSTORE    STORE REGISTER
         LTR   R15,R15            TEST R15
         BNZ   SERV1130           NOT FOUND
         L     R7,SWBLKPTR             SET THE POINTER TO THE JFCB
         USING INFMJFCB,R7             ESTABLISH ADDRESSABILITY TO JFCB
         MVC   DSNAME,JFCBDSNM         MOVE IN DSNAME
         EXEC CICS FREEMAIN DATAPOINTER(R6)
         DROP  R5,R6,R7
         B     SERV1140
SERV1130 MVC   DSNAME,=CL44'PROGRAM NOT FOUND IN CONCATENATION'
SERV1140 L     R1,SERV1SAV          GET RETURN ADDRESS
         BR    R1                   RETURN
***********************************************************************
*   WORK AREAS                                                        *
***********************************************************************
DSNAMES  DC    XL6'151515151515'
         DC    AL1(STFIELD,DFHBMASK,DFHSA,DFHCOLOR,DFHTURQ)
         DC    C' DFHRPL: '
DFHRPLO  DS    CL44
         DC    C'   CONCAT: '
CONCATDO DS    CL4
         DC    XL6'1515'
         DC    AL1(STFIELD,DFHBMASK,DFHSA,DFHCOLOR,DFHTURQ)
         DC    C'STEPLIB: '
STEPLIBO DS    CL44
         DC    C'   CONCAT: '
CONCATSO DS    CL4
DSNAMEL  EQU   *-DSNAMES
***********************************************************************
*   CONSTANTS AND EQUATES                                             *
***********************************************************************
NEWLINE  EQU   X'15'
STFIELD  EQU   X'1D'
         COPY  DFHAID
         COPY  DFHBMSCA
         DCBD  DSORG=PO,DEVD=DA
         IEFTIOT1
         IEZDEB  LIST=YES
         IHAPSA LIST=YES
         IKJTCB LIST=YES
         CVT DSECT=YES,LIST=YES
         IEFJESCT
         IEFZB505 LOCEPAX=YES
         IEFJFCBN LIST=YES
         END

Last changed: June 14, 2008