To simplify things I have deleted the lines which contain only the tail end of 
comments.  I have also inserted some line numbers to correspond to my comments.

Line 1 tells us that JCTJCLAS contains the address of the class.  You use that 
address correctly in the target of the EX instruction in line 2.  But you don't 
use that address when changing the class in line 3.  There, you move the new 
class directly into JCTJCLAS, thereby destroying the address.

Regarding line 2, wouldn't a CLI instruction be easier than using EX to perform 
a TRT?  Of course the following BC would change also.

Your two EX instructions OR the contents of R4 before performing the target TRT 
instructions.  Since R4 is always 0, the TRT instructions are unchanged.  
Wouldn't it be easier to place the TRT instructions inline replacing the EX 
ones.

Regarding your translate tables, rather than manually counting the number of 
x'00' bytes to insert between non-zero ones and manually coding the hex values 
for characters, I suggest the following approach:
TRTABLE1 DC    256X'00'
         ORG   TRTABLE1+C'C'
         DC    C'C'
         ORG   TRTABLE1+C'E'
         DC    C'EF'
         ORG   TRTABLE1+C'I'
         DC    C'I'
         ...
         ORG   TRTABLE+C'Z'
         ORG   C'Z'
         ORG

When using a literal reference, as in line 4, I suggest omitting the the length 
field.  The assembler will compute it properly and it is one less thing to 
change if you need to replace the value of the literal.


> -----Original Message-----
> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU]
> On Behalf Of Crabtree, Anne D
> Sent: Monday, February 25, 2013 7:03 AM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: JES exit 6
>
> I am trying to modify JES exit 6 so that jobs, starting with a
> particular string and destination is to a particular partial string,
> get assigned a class of F (jobname beginning with WE# and destination
> beginning with VPRTxxxx).  I also want to prohibit non SY users from
> using class Z.
>
> I modified our existing exit 6 and tested on our onepac system.  It
> worked great.  However, when I tried to use the same module in our
> production lpar, the class Z logic is working, but the class F will not
> work!  I've tried for the last two Sundays for hours!
>
> Yesterday, changed the module name and entry name so I could make sure
> it was using the new module.  $d exit(6) shows the new entry.  I've
> compared JES2 initialization members and cannot figure out why the same
> code works on one but not the other.  Does anyone have a suggestion on
> what else I can look at?
>
> I have a small window of opportunity each week to try and get this to
> work.  Thought about using the trace option but don't know enough about
> how to do it so would have to read up on that.  Would that be of any
> help?
>
> Here's the part of code that I changed: (I'm not the greatest assembler
> programmer so be kind :))
>
1.> SCAN                     LA     R3,JCTJCLAS             LOAD ADDRESS OF
>                                 L        R4,=F'0'
>                                 EX     R4,SCANCLS1           SCAN FOR
>                                 BC     2,CHKJNAME           CLASS IS
2.>                                 EX     R4,SCANCLS2           CLASS Z?
>                                  BC    2,CLASSZ                   IF
3.>                                 MVI  JCTJCLAS,C'C'          NOT SY, SET
>                                 B        RETURN
> CLASSZ                 LA      R5,JCTNOUSR          SUBMITTING USERID
4.>                                 CLC    =CL2'SY',0(R5)         IS THIS
>                                 BE     ALLGOOD                 CLASS Z
>                                 MVI  JCTJCLAS,C'C'          CLASS Z
>                                 B        RETURN
> CHKJNAME         LA      R6,JCTJNAME          JOBNAME
>                                 CLC    =CL3'WE#',0(R6)    DOES JOBNAME
>                                 BE      CHKDEST                   YES,
>                                 B         RETURN
> CHKDEST              LA       R7,JCTPRRID            JOB PRINT
>                                 CLC    =CL4'VPRT',0(R7)   DOES PRINT
>                                 BE     CHGCLAS                    YES,
> ALLGOOD            B      RETURN                        NO, RETURN TO
> CHGCLAS             MVI    JCTJCLAS,C'F'          MOVE F TO CLASS
>                                 B      RETURN
> RETURN               RETURN (14,12),RC=0
> SCANCLS1           TRT   0(0,R3),TRTABLE1  LOOKIN FOR A VALID CLASS
> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> *   VALID CLASS TABLE CHECKING FOR CLASS C,E,F,I,K,L,Q,T            *
> *   CLASS I FOR IPO2                                                *
> *   CLASS T FOR TEST                                                *
> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> TRTABLE1 DC   195X'00'
>          DC     1X'C3'       C
>          DC     1X'00'
>          DC     1X'C5'       E
>          DC     1X'C6'       F
>          DC     2X'00'
>          DC     1X'C9'       I
>          DC     8X'00'
>          DC     1X'D2'       K
>          DC     1X'D3'       L
>          DC     1X'D4'       M
>          DC     3X'00'
>          DC     1X'D8'       Q
>          DC    10X'00'
>          DC     1X'E3'       T
>          DC     5X'00'
>          DC    23X'00'
> *        DC     1X'E9'       Z
> *        DC    22X'00'
> SCANCLS2 TRT   0(0,R3),TRTABLE2         LOOKIN FOR CLASS Z
> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> *   VALID CLASS TABLE CHECKING FOR CLASS Z                          *
> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> TRTABLE2 DC   233X'00'
>          DC     1X'E9'       Z
>          DC    22X'00'
> *

----------------------------------------------------------------------
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