From: ##09@UTMARTN.BITNET (Larry Holder)
Newsgroups: bit.listserv.ibm-main
Subject: Upper/Lower Case Exit for CICS
Date: 6 Nov 92 22:24:29 GMT
Comments: Gated by NETNEWS@AUVM.AMERICAN.EDU

> We run CICS 2.1.2 in MVS/ESA 4.2 amd we are looking for an exit to allow
> upper and lower case transactions for a case tool project.  We have
> checked the SHARE tape for CICS and were unable to find anything there.
> Does anyone know of such an exit?  Please let me know. Thanks

Here's ours.  It is LINK'd to from any application.
It works for both 1.7 and 2.1.

Larry Holder,  Sr. Programmer/Analyst            Bitnet: ##09@UTMARTN
The University of Tennessee at Martin            Phone:  901-587-7890
Martin, TN  38238                                Fax:    901-587-7841

Software: VM/ESA 1.0, VSE/ESA 1.1, CICS/VSE 2.1, COBOL-II, DL/I, SQL/DS
Hardware: IBM 9221-150 with 9336 FBA dasd
PSW:      (Personal Status Words): Saved by grace (Romans 1:16 & 8:38)

SOURCE CODE BEGINS...................
***********************************************************************
*                                                                     *
* PROGRAM NAME:  MIXCASE.                                             *
*                                                                     *
* TRANSID:       (NONE; INVOKED VIA CICS LINK).                       *
*                                                                     *
* AUTHOR:        LARRY HOLDER.                                        *
*                                                                     *
* INSTALLATION:  UNIVERSITY OF TENNESSEE AT MARTIN.                   *
*                                                                     *
* DATE WRITTEN:  FEBRUARY 28, 1990.                                   *
*                                                                     *
* PURPOSE:       CHANGE CASE FROM UPPER TO MIXED OR VICE-VERSA,       *
*                OR INQUIRE ON CURRENT CASE SETTING.                -01
*                                                                     *
* SYSTEM NOTES:  VSE 3.1.2; CICS 1.7 (COMMAND LEVEL).                 *
*                                                                     *
*                TCTTE FIELD TCTEUCTB (INDEX FOR TRANSLATE TABLE),    *
*                WHICH IS OFFSET +6B IN CICS 1.7, IS X'01' FOR        *
*                UPPER-CASE TRANSLATION, AND X'00' FOR MIXED.         *
*                                                                     *
* INPUT:         CALLER MUST PASS 2 BYTE COMMAREA, CONTAINING:        *
*                                                                     *
*                1. A REQUEST CODE:                                   *
*                   "U" UPPER CASE.                                   *
*                   "M" MIXED CASE.                                   *
*                   "Q" QUERY CURRENT CASE.                         -01
*                                                                   -01
*                2. A RESPONSE CODE:                                -01
*                   " " (BLANK) MEANS CASE SET AS REQUESTED.        -01
*                   "U" OR "M" IS RESPONSE TO QUERY REQUEST.        -01
*                   "?" IS RESPONSE TO INVALID REQUEST.             -01
*                                                                     *
*---------------------------------------------------------------------*
*                                                                     *
* MAINTENANCE HISTORY:                                                *
*                                                                     *
* DATE      DESCRIPTION                                           II-NN
*                                                                     *
* 90-02-28  INITIAL VERSION COMPLETED.............................LH-00
* 90-04-18  ADDED QUERY SUPPORT AND RESPONSE CODE.................LH-01
*                                                                     *
***********************************************************************
         EJECT
***********************************************************************
*        REGISTER USEAGE                                              *
***********************************************************************
*                                                                     *
R0       EQU   0                                                      *
R1       EQU   1                                                      *
R2       EQU   2                                                      *
R3       EQU   3                                                      *
R4       EQU   4                                                      *
R5       EQU   5                                                      *
R6       EQU   6                                                      *
DATAREG  EQU   7                       DATAREG                        *
CODEREG  EQU   8                       CODEREG                        *
EIBREG   EQU   9                       EIBREG                         *
CAREG    EQU   10                      COMMAREA                       *
TCTTEAR  EQU   11                      TCTTE                          *
R12      EQU   12                      TCA                            *
CSACBAR  EQU   13                      CSA                            *
R14      EQU   14                                                     *
R15      EQU   15                                                     *
*                                                                     *
***********************************************************************
         SPACE
***********************************************************************
*        COMMAREA DSECT.                                              *
***********************************************************************
*                                                                     *
COMMAREA DSECT                                                        *
REQCODE  DS    CL1                     REQUEST CODE.                  *
RESPCODE DS    CL1                     RESPONSE CODE.               -01
*                                                                     *
***********************************************************************
         SPACE
         DFHEISTG                      EIB DYNAMIC STORAGE
         SPACE
         PRINT NOGEN
         COPY  DFHCSADS                COMMON SYSTEM AREA
         SPACE
         DFHTCA                        TASK CONTROL AREA (USER AREA)
         SPACE
         COPY  DFHTCTTE                TCT TERMINAL ENTRY
         SPACE
         PRINT GEN
***********************************************************************
*        PROGRAM ENTRY.                                               *
***********************************************************************
*                                                                     *
MIXCASE  DFHEIENT CODEREG=CODEREG,DATAREG=DATAREG,EIBREG=EIBREG       *
*                                                                     *
         B     STRT                    BYPASS CONSTANTS...            *
         DC    CL8'MIXCASE '                                          *
         DC    CL8'04/18/90'           LAST CHG DATE.               -XX
STRT     DS    0H                                                     *
         EXEC  CICS ADDRESS CSA(CSACBAR).   R13 -> CSA.               *
*                                                                     *
         L     TCACBAR,CSACDTA         R12 -> TCA USER AREA.          *
         L     TCTTEAR,TCAFCAAA        R11 -> TCT TERMINAL ENTRY.     *
*                                                                     *
         L     CAREG,DFHEICAP          ADDR THE COMMAREA.             *
         USING COMMAREA,CAREG          (NOTIFY ASSEMBLER).            *
*                                                                     *
         CLI   REQCODE,C'U'            REQUEST UPPER CASE ?           *
         BNE   NOTUPPER                ==> NO...                      *
         MVI   TCTEUCTB,X'01'          SET UPPERCASE XLATE ON.        *
         MVI   RESPCODE,C' '           SET RESPONSE TO BLANK.       -01
         B     PGMEXIT                 ==> DONE.                      *
NOTUPPER DS    0H                                                     *
         CLI   REQCODE,C'M'            REQUEST MIXED CASE ?           *
         BNE   NOTMIXED                ==> NO...                      *
         MVI   TCTEUCTB,X'00'          SET UPPERCASE XLATE OFF.       *
         MVI   RESPCODE,C' '           SET RESPONSE TO BLANK.       -01
         B     PGMEXIT                 ==> DONE.                      *
NOTMIXED DS    0H                                                     *
         CLI   REQCODE,C'Q'            QUERY REQUEST ?              -01
         BNE   NOTQUERY                ==> NO...                    -01
         MVI   RESPCODE,C'U'           ASSUME UPPERCASE.            -01
         CLI   TCTEUCTB,X'01'          CORRECT ?                    -01
         BE    PGMEXIT                 ==> YES..DONE.               -01
         MVI   RESPCODE,C'M'           THEN MUST BE MIXED CASE.     -01
         B     PGMEXIT                 ==> DONE.                    -01
NOTQUERY DS    0H                                                   -01
         MVI   RESPCODE,C'?'           INDICATE CALLER'S ERROR.     -01
PGMEXIT  DS    0H                                                     *
         EXEC  CICS RETURN.            RETURN TO CALLER.              *
*                                                                     *
         LTORG ,                                                      *
*                                                                     *
***********************************************************************
         END   MIXCASE