Greetings again, I'm having a hard time getting this exit to work. My assembler skills are pretty much non-existent. I'm trying convert an old JES2 EXIT2 to work as as an EXIT52. Following the manuals, IBM's sample exit and the old exit, I put this together. I yanked all the doc so it would post without being too terribly long. It abends S0C4 whenever it is executed. I don't see where it's wandering off, but that's no surprise. If anyone can spare some time to help, I'd appreciate it.... again.
I originally had the load of register 5 wrong, so it errored off. It was working up until the point where it formatted and inserted a jobcard though. I'm guessing there's something wrong with the address in R5. More likely the way I'm using it. The manuals say X052JXWR is supposed to point to an area to be used to format an inserted card. I also backed it off to look like the old exit and set R5 to the address starting at byte 8 of R1, but that S0C4's too. Thanks again, HASX52A TITLE 'USER EXIT 52 MODULE -- PROLOG (MODULE COMMENT BLOCK)' TITLE 'USER EXIT 52 MODULE -- PROLOG ($HASPGBL)' COPY $HASPGBL COPY HASP GLOBALS TITLE 'USER EXIT 52 MODULE -- PROLOG ($MODULE)' HASX52A $MODULE ENVIRON=(USER,ANY), C RMODE=ANY, C IBMJES2=SAMPLE, C TITLE='USER EXIT 52 MODULE', C $BUFFER, GENERATE HASP BUFFER DSECT C $CADDR, GENERATE HASP CADDR DSECT C $HASPEQU, GENERATE HASP EQU DSECT C $HCCT, Generate HASP HCCT DSECT C $HCT, GENERATE HASP HCT DSECT C $JCT, GENERATE HASP JCT DSECT C $JRW, Generate HASP JRW DSECT C $MIT, GENERATE HASP MIT DSECT C $MITETBL, Generate HASP MTE dsect C $PADDR, GENERATE HASP PADDR DSECT C $PARMLST, GENERATE HASP PADDR DSECT C $PCE, GENERATE HASP PCE DSECT C $PSV, GENERATE HASP PSV DSECT C $USERCBS, GENERATE HASP USERCBDS DSECT C $XECB, GENERATE HASP XECB DSECT C $XIT, Generate HASP XIT DSECT C $XPL Generate HASP XPL DSECT TITLE 'USER EXIT 52 MODULE -- JOB STATEMENT SCAN' USING JRW,R7 JRW addressability USING XPL,R8 XPL addressability SPACE 1 EXIT52 $ENTRY BASE=R12,SAVE=YES Provide exit routine entry point LR R12,R15 Load base Register USING JCT,R10 Provide JCT addressability TM X052COND,X052SEC Second time thru for this card ? BNZ USERFND Yes, get out TM JCTJOBFL,JCTBATCH Is this a batch JOB? BZ USERFND No, get out L R2,0(R1) Put the address of the current JOB * statement in Register 2 CLC COMMENT,0(R2) Is this a comment card ?? BE X2RC00 Yes, skip this card LA R2,3(,R2) Start scan on card column 4 LA R3,68 Set scan limit to stop after col 72 L R4,4(R1) Put the address of the exit flag * byte(RDWFLAGX) in Register 4 L R5,X052JXWR Put the address of the X052JXWR * field in Register 5 XC 0(1,R5),0(R5) Clear first byte to use as a flag CHK4USER DS 0H CLI 0(R2),C' ' Is this a blank ? BNE CHKEQUAL No, continue with other tests * Yes, why is there a blank here ?? TM 0(R5),OPNQUOTE+OPNPAREN Are we within quotes or * parens? BNZ CHK4U01 Yes, Blank within quotes or parens * is OK. Ignore it and continue scan * at next character * Else TM 0(R5),POSPARM Has a positional parm been found ?? BNZ ADDCARD Yes, then we have found the end * Else B CHK4U01 Continue scan at next character CHKEQUAL DS 0H CLI 0(R2),C'=' Is this part of a positional parm ?? BNE CONTINUE No, continue with other tests TM 0(R5),OPNQUOTE+OPNPAREN Are we within quotes or * parens ?? BNZ CHK4U01 Yes, ignore the "=" sign and * continue scan at next character OI 0(R5),POSPARM Else the "=" sign is part of a * positional parm - set the flag CONTINUE DS 0H CLI 0(R2),C'''' Is this a quote ?? BE CHKQUOTE Yes CLI 0(R2),C'(' Is this a left paren ?? BE LPAREN Yes CLI 0(R2),C')' Is this a right paren ?? BE RPAREN Yes CLC USERCHK,0(R2) Is this the "USER=" parameter ?? BE USERFND Yes CLC 0(2,R2),=C', ' Is this the end of the jobcard with * more to come ?? BNE CHK4U01 No, Continue scan at next character TM 0(R5),OPNQUOTE+OPNPAREN Are we within quotes or * parens ?? BZ X2RC00 No, we are done with this jobcard. * Move on to the next jobcard. CHK4U01 DS 0H LA R2,1(,R2) Increment to the next character in * the jobcard. BCT R3,CHK4USER If column number is less than 68 * stored in register 3, continue scan * for "USER=" parameter ADDCARD DS 0H MVC 0(2,R2),=C', ' Add a comma and space to the end * of the last jobcard OI X052RESP,X052XSNC Set flag for added statement MVI 0(R5),C' ' Clear the flag byte MVC 1(79,R5),0(R5) Clear the other 79 bytes of the * JCT work area MVC 0(8,R5),USRCARD Move skeleton "USER=" statement USE5JOB MVC 8(5,R5),JCTJNAME String first five characters * of the JOB name after the USER= * parameter B USERFND Exit and don't come back CHKQUOTE DS 0H TM 0(R5),OPNQUOTE Is this ending quote ?? BZ CHKQU01 No, move on to next test NI 0(R5),X'FF'-OPNQUOTE Yes, reset the beginning * quote flag. No longer within * quoted field. B CHK4U01 Continue scan at next character CHKQU01 DS 0H OI 0(R5),OPNQUOTE Set open quote flag B CHK4U01 Continue scan at next character RPAREN DS 0H NI 0(R5),X'FF'-OPNPAREN Reset open paren flag. * No longer within parens. B CHK4U01 Continue scan at next character LPAREN DS 0H OI 0(R5),OPNPAREN Set open paren flag B CHK4U01 Continue scan at next character USERFND DS 0H We found the "USER=" parameter B X2RC00 Branch to common return routine TITLE 'USER EXIT 2 MODULE -- COMMON RETURN ROUTINE' SPACE 2 X2RC00 DS 0H RC=0 RETURN XR R2,R2 Set RC=0 B X2RTN Branch to common return SPACE 2 X2RC04 DS 0H RC=4 RETURN LA R2,4 Set RC=4 B X2RTN Branch to common return SPACE 2 X2RC08 DS 0H RC=8 RETURN LA R2,8 Set RC=8 B X2RTN Branch to common return SPACE 2 X2RC12 DS 0H RC=12 RETURN LA R2,12 Set RC=12 B X2RTN Branch to common return SPACE 2 X2RTN DS 0H SPACE 2 $RETURN RC=(R2) Return to HASPPRPU DROP R7,R8,R10,R12 Drop JRW, XPL, JCT & Local USINGs TITLE 'USER EXIT 2 MODULE -- CONSTANTS' SPACE 1 USERCHK DC CL5'USER=' JCL parameter we are scanning COMMENT DC CL3'//*' Comment card USRCARD DC CL8'// USER=' Skeleton statement OPNQUOTE EQU X'80' Open quotes flag OPNPAREN EQU X'40' Open parenthesis flag POSPARM EQU X'10' Positional parameter found flag DS 0F Alignment LTORG PLACE LITERALS HERE TITLE 'USER EXIT 52 MODULE -- EPILOG ($MODEND)' $MODEND APARNUM DC CL8'NONE' APAR Number PTFNUM DC CL8'NONE' PTF Number END , END OF HASX52A ------------------------------------------------------------------------------ This e-mail transmission may contain information that is proprietary, privileged and/or confidential and is intended exclusively for the person(s) to whom it is addressed. Any use, copying, retention or disclosure by any person other than the intended recipient or the intended recipient's designees is strictly prohibited. If you are not the intended recipient or their designee, please notify the sender immediately by return e-mail and delete all copies. OppenheimerFunds may, at its sole discretion, monitor, review, retain and/or disclose the content of all email communications. ============================================================================== ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html