         MACRO                                                          00050000
&MACNAM  STTRAN &FLG,&TAB=,&NAME=,&TCHAR=,&SCHAR=,&LIST=,&MF=I          00100000
.********************************************************************** 00150000
.*                                                                    * 00200000
.* STATUS - CHANGE LEVEL 000                                          * 00250000
.*                                                                    * 00300000
.* NAME - STTRAN                                                      * 00350000
.*                                                                    * 00400000
.* FUNCTION - THE STTRAN MACRO IS USED TO:                            * 00450000
.*            1-SET UP THE USE OF A USER DEFINED TRANSLATE TABLE      * 00500000
.*            2-DISCONTINUE THE USE OF A USER DEFINED TRANSLATE TABLE * 00550000
.*            3-ESTABLISH SPECIFIC TRANSLATIONS IN A USER TABLE OR    * 00600000
.*              A DEFAULT TABLE, CHARACTER BY CHARACTER               * 00650000
.*            4-DISCONTINUE PREVIOUS SPECIFIC CHARACTER TRANSLATIONS  * 00700000
.*                                                                    * 00750000
.*       THE MACRO PROTOTYPE IS LISTED ABOVE                          * 00800000
.*                                                                    * 00850000
.*       THE STANDARD FORM OF EXPANSION FOR MF=I:                     * 00900000
.*                                                                    * 00904000
.*         STTRAN TAB=MYTAB,NAME=TABNAME                              * 00908000
.*         CNOP  0,4                                                  * 00912000
.*         BAL   1,*+16                  BRANCH AROUND PARAMETERS     * 00916000
.*         DC    A(MYTAB)                ADDRESS OF TABLE             * 00920000
.*         DC    A(TABNAME)              ADDRESS OF NAME              * 00924000
.*         DC    A(0)                    ADDRESS OF LIST PARAMETERS   * 00928000
.*         LA    0,3840+32               SET ENTRY CODE AND FLAGS     * 00932000
.*         SLL   0,16                    SHIFT TO HIGH ORDER BYTES    * 00936000
.*         SVC   94                      TERMINAL CONTROL MACROS SVC  * 00940000
.*                                                                    * 00950000
.*       THE STANDARD FORM OF EXPANSION FOR MF=L:                     * 01000000
.*                                                                    * 01007000
.*         STTRAN LIST=LISTPARM,MF=L                                  * 01014000
.*         DS    0F                                                   * 01021000
.*         DC    A(0)                    ADDRESS OF TABLE             * 01028000
.*         DC    A(0)                    ADDRESS OF NAME              * 01035000
.*         DC    A(LISTPARM)             ADDRESS OF LIST PARAMETERS   * 01042000
.*                                                                    * 01050000
.*       THE STANDARD FORM OF EXPANSION FOR MF=E:                     * 01100000
.*                                                                    * 01105000
.*         STTRAN NOCHAR,NAME=TABNAME,MF=(E,MYLIST)                   * 01110000
.*         LA    1,MYLIST                LOAD PARAMETER REG1          * 01115000
.*         LA    0,TABNAME               LOAD ADDRESS OF NAME         * 01120000
.*         ST    0,4(,1)                 STORE NAME ADDR IN PARM LIST * 01125000
.*         LA    0,3840+64               SET ENTRY CODE AND FLAGS     * 01130000
.*         SLL   0,16                    SHIFT TO HIGH ORDER BYTES    * 01135000
.*         SVC   94                      TERMINAL CONTROL MACROS SVC  * 01140000
.*                                                                    * 01150000
.********************************************************************** 01200000
         LCLA  &SYSFLG                                                  01250000
         LCLA  &SYSEC                                                   01300000
&SYSEC   SETA  3840                                                     01350000
         AIF   ('&MF' EQ 'I' AND '&FLG' EQ '' AND '&TAB' EQ '' AND '&TC*01400000
               HAR' EQ '' AND '&LIST' EQ '' AND '&NAME' EQ '' AND '&SCH*01420000
               AR' EQ '').ERROR1                                        01440000
         AIF   ('&FLG' EQ 'NOTRAN' AND ('&TAB' NE '' OR '&NAME' NE '' O*01500000
               R '&TCHAR' NE '' OR '&SCHAR' NE '')).ERROR1              01530000
         AIF   ('&FLG' EQ 'NOTRAN').TOPMAC                              01560000
         AIF   ('&FLG' EQ 'NOCHAR' AND ('&TAB' NE '' OR '&TCHAR' NE '' *01590000
               OR '&SCHAR' NE '')).ERROR1                               01620000
         AIF   ('&FLG' EQ 'NOCHAR' AND '&NAME' EQ '' AND '&MF' EQ 'I').*01650000
               ERROR2                                                   01680000
         AIF   ('&FLG' EQ 'NOCHAR').TOPMAC                              01800000
         AIF   ('&FLG' NE '').ERROR3                                    01820000
         AIF   ('&TAB' NE '' AND '&NAME' EQ '' AND '&MF' EQ 'I').ERROR2 01840000
         AIF   ('&TCHAR' EQ '' AND '&SCHAR' NE '' AND '&MF' NE 'L').ERR*01860000
               OR4                                                      01880000
         AIF   ('&TCHAR' NE '' AND '&SCHAR' EQ '' AND '&MF' NE 'L').ERR*01970000
               OR5                                                      01976000
         AIF   ('&NAME' NE '' AND ('&TAB' EQ '' OR '&FLG' EQ 'NOCHAR') *01990000
               AND '&MF' EQ 'I').ERROR6                                 02010000
.TOPMAC  ANOP                                                           02050000
         AIF   ('&FLG' EQ 'NOTRAN' AND '&LIST' EQ '' AND '&MF' NE 'L').*02070000
               NOTRN                                                    02080000
         AIF   ('&MF' EQ 'L').LNAME                                     02100000
         AIF   ('&MF(1)' EQ 'E').ENAME                                  02120000
         AIF   ('&MF' NE 'I').ERROR1                                    02140000
&MACNAM  CNOP  0,4                                                      02200000
         BAL   1,*+16                   BRANCH AROUND PARAMETERS        02250000
         AGO   .DCONST                                                  02300000
.ENAME   ANOP                                                           02350000
         IHBOPLST ,,&MACNAM,MF=&MF                                      02370000
         AGO   .STADDS                                                  02450000
.LNAME   ANOP                                                           02500000
&MACNAM  DS    0F                                                       02550000
.DCONST  AIF   ('&TAB' EQ '').TREG                                      02600000
         AIF   ('&TAB'(1,1) EQ '(').TREG                                02610000
         DC    A(&TAB)                  ADDRESS OF TABLE                02650000
         AGO   .DNAME                                                   02700000
.TREG    ANOP                                                           02750000
         DC    A(0)                     ADDRESS OF TABLE                02800000
.DNAME   AIF   ('&NAME' EQ '').NREG                                     02850000
         AIF   ('&NAME'(1,1) EQ '(').NREG                               02860000
         DC    A(&NAME)                 ADDRESS OF NAME                 02900000
         AGO   .DLIST                                                   02950000
.NREG    ANOP                                                           03000000
         DC    A(0)                     ADDRESS OF NAME                 03050000
.DLIST   AIF   ('&LIST' EQ '').LREG                                     03100000
         AIF   ('&LIST'(1,1) EQ '(').LREG                               03110000
         DC    A(&LIST)                 ADDRESS OF LIST PARAMETERS      03150000
         AGO   .CKMF                                                    03200000
.LREG    ANOP                                                           03250000
         DC    A(0)                     ADDRESS OF LIST PARAMETERS      03300000
.CKMF    AIF   ('&MF' EQ 'L').LEND                                      03350000
.STADDS  ANOP                                                           03360000
         AIF   ('&TAB' EQ '').STNAM                                     03370000
         AIF   ('&TAB'(1,1) NE '(' AND '&MF' EQ 'I').STNAM              03400000
         AIF   ('&TAB'(1,1) NE '(').STTABA                              03430000
         ST    &TAB(1),0(,1)            STORE TABLE ADDR IN PARM LIST   03500000
         AGO   .STNAM                                                   03520000
.STTABA  ANOP                                                           03550000
         LA    0,&TAB                   LOAD ADDRESS OF TABLE           03600000
         ST    0,0(,1)                  STORE TABLE ADDR IN PARM LIST   03650000
.STNAM   ANOP                                                           03660000
         AIF   ('&NAME' EQ '').STLIST                                   03670000
         AIF   ('&NAME'(1,1) NE '(' AND '&MF' EQ 'I').STLIST            03700000
         AIF   ('&NAME'(1,1) NE '(').STNAMA                             03730000
         ST    &NAME(1),4(,1)           STORE NAME ADDR IN PARM LIST    03800000
         AGO   .STLIST                                                  03820000
.STNAMA  ANOP                                                           03850000
         LA    0,&NAME                  LOAD ADDRESS OF NAME            03900000
         ST    0,4(,1)                  STORE NAME ADDR IN PARM LIST    03950000
.STLIST  ANOP                                                           03960000
         AIF   ('&LIST' EQ '').LOAD0                                    03970000
         AIF   ('&LIST'(1,1) NE '(' AND '&MF' EQ 'I').LOAD0             04000000
         AIF   ('&LIST'(1,1) NE '(').STLSTA                             04030000
         ST    &LIST(1),8(,1)           STORE LIST ADDR IN PARM LIST    04100000
         AGO   .LOAD0                                                   04110000
.STLSTA  ANOP                                                           04120000
         LA    0,&LIST                  LOAD ADDRESS OF LIST PARMS      04140000
         ST    0,8(,1)                  STORE LIST ADDR IN PARM LIST    04160000
.NOTRN   ANOP                                                           04180000
         SR    1,1                      ZERO REGISTER 1                 04200000
.LOAD0   ANOP                                                           04250000
         AIF   ('&FLG' EQ '').CKCHARS                                   04280000
         AIF   ('&FLG' EQ 'NOCHAR').STNOCH                              04310000
&SYSFLG  SETA  128                                                      04450000
         AGO   .STREG0                                                  04500000
.STNOCH  ANOP                                                           04550000
&SYSFLG  SETA  64                                                       04600000
         AGO   .STREG0                                                  04650000
.CKCHARS AIF   ('&TCHAR' EQ '').NOFLG                                   04700000
&SYSFLG  SETA  32                                                       04750000
         AGO   .STREG0                                                  04800000
.NOFLG   ANOP                                                           04850000
&SYSFLG  SETA  0                                                        04900000
.STREG0  ANOP                                                           04950000
         LA    0,&SYSEC+&SYSFLG         SET ENTRY CODE AND FLAGS        05000000
         SLL   0,16                     SHIFT TO HIGH ORDER BYTES       05050000
         AIF   ('&TCHAR' EQ '').STSVC                                   05100000
         AIF   ('&TCHAR'(1,1) EQ '(').TCREG                             05130000
         ICM   0,2,&TCHAR               SET TERMINAL CHARACTER          05200000
         AGO   .STSCHAR                                                 05250000
.TCREG   ANOP                                                           05300000
         ICM   0,2,0(&TCHAR(1))         SET TERMINAL CHARACTER          05350000
.STSCHAR AIF   ('&SCHAR'(1,1) EQ '(').SCREG                             05380000
         ICM   0,1,&SCHAR               SET SYSTEM CHARACTER            05450000
         AGO   .STSVC                                                   05500000
.SCREG   ANOP                                                           05550000
         ICM   0,1,0(&SCHAR(1))         SET SYSTEM CHARACTER            05600000
.STSVC   ANOP                                                           05650000
         SVC   94                       TERMINAL CONTROL MACROS SVC     05700000
         MEXIT                                                          05750000
.LEND    AIF   ('&TCHAR' EQ '' AND '&SCHAR' EQ '').END                  05760000
         IHBERMAC 1016,TCHAR/SCHAR,MF-L                                 05766000
.END     MEXIT                                                          05780000
.ERROR1  ANOP                                                           05800000
         IHBERMAC 54,,,                                                 05850000
         MEXIT                                                          05900000
.ERROR2  ANOP                                                           05950000
         IHBERMAC 1006,NAME                                             06000000
         MEXIT                                                          06050000
.ERROR3  ANOP                                                           06100000
         IHBERMAC 1008,&FLG,1                                           06150000
         MEXIT                                                          06200000
.ERROR4  ANOP                                                           06250000
         IHBERMAC 1010,SCHAR,TCHAR                                      06300000
         MEXIT                                                          06350000
.ERROR5  ANOP                                                           06400000
         IHBERMAC 1010,TCHAR,SCHAR                                      06450000
         MEXIT                                                          06500000
.ERROR6  ANOP                                                           06510000
         IHBERMAC 1010,NAME,TAB/NOCHAR                                  06520000
         MEXIT                                                          06530000
         MEND                                                           06550000
