ANFUXBD2 TITLE 'Begin Data Set Exit' ****** START OF SPECIFICATIONS **************************************** * MODULE NAME = ANFUXBD2 * * DESCRIPTIVE NAME = PRINTWAY EXIT FOR ADDING RECORD SHOWING * * JobName/StepName/DDName * * COPYRIGHT= 5695040 (c) COPYRIGHT IBM CORPORATION 1996 * *********************************************************************** * >>>>>>> IMPORTANT NOTICE <<<<<<<<<<< * * * * THIS SAMPLE EXIT IS NOT SUPPORTED IN ANY WAY BY IBM. IT HAS NOT * * BEEN SUBJECTED TO ANY FORMAL IBM TESTING AND IS DISTRIBUTED ON * * AN "AS-IS" BASIS WITHOUT ANY WARRANTY EITHER EXPRESSED OR * * IMPLIED. THE USE OF THIS CODE OR ANY INFORMATION OR TECHNIQUES * * IMPLICIT WITHIN IT IS THE SOLE RESPONSIBILITY OF THE CUSTOMER. * * SUCH USE DEPENDS UPON THE CUSTOMER'S ABILITY TO EVALUATE THE * * INFORMATION IN THE CONTEXT OF THEIR OWN PARTICULAR OPERATING * * ENVIRONMENT. * * THE EXITS SHOULD ALWAYS BE RECOMPILED WHEN NEWER LEVELS OF * * IP PRINTWAY CODE HAVE BEEN INSTALLED * * THERE IS NO GUARANTEE THAT IT WILL OPERATE CORRECTLY. * * IF YOU ARE EXPERIENCING ANY PROBLEMS SUCH AS HANGS OR ABENDS THIS * * EXIT SHOULD BE REMOVED BEFORE REPORTING THE PROBLEM TO IBM SUPPORT* *********************************************************************** * STATUS = VERSION 1, RELEASE 1, LEVEL 0 * * FUNCTION = PRINT JES INFO ON O/P REPORT * * NOTES = none * * DEPENDENCIES = none * * MODULE TYPE = PROCEDURE * * PROCESSOR = Assembler * * ATTRIBUTES = * * REENTRANT * * AMODE(31) * * RMODE(ANY) * * PATCH LABEL = none * * ENTRY POINT = * * ANFUXBD2 * * LINKAGE = * * LOAD ANFUXBD2 * * CALL ANFUXBD2(addr(ANFUEXTP)) * * calling module passes address of Common Parameter * * area. * * CHANGE ACTIVITY = * * 96/10/16 XXX Initial Version @23418N* ***** END OF SPECIFICATIONS ******************************************* * Modified by Customer * * August 12, 1999 * * usage - This exit will provide a one line header in front of * * mainframe output showing JobName/StepName/DDName * *********************************************************************** ANFUXBD2 CSECT , Establish the csect ANFUXBD2 AMODE ANY It addresses all storage ANFUXBD2 RMODE ANY It can reside anywhere USING ANFUXBD2,R15 Establish temporary addressabilityx to module B BDSINIT Branch around copyright informat ANFUXBD2 MODID BR=NO EYECATCHER INFO DC C'LICENSED MATERIALS-PROPERTY OF IBM ' DC C'THIS MODULE IS "RESTRICTED MATERIALS OF IBM" ' DC C'5695-040 (c) COPYRIGHT IBM CORP. 1996 ' DC C'SEE COPYRIGHT INSTRUCTIONS ' EJECT , *------------------------------------------------------------------ * ANFUXBD2 Module entry point *------------------------------------------------------------------ * BDSINIT DS 0H STM R14,R12,12(R13) Save callers registers LR R12,R15 Move base register to R12 DROP R15 Done with this register USING ANFUXBD2,R12 R12 is base reg for program code L R4,0(R1) Get address of parm area USING ANFUEXTP,R4 R4 is base for parm area L R6,XTPJSPAP USING IAZJSPA,R6 *R6 IS BASE FOR JSPA DATA AREA ST R13,XTPSAVE+4 chain save areas LA R15,XTPSAVE get my save area ST R15,8(R13) point callers save area to it LR R13,R15 point R13 to my save area *----------------------------------------------------------------- * Get storage for work area *----------------------------------------------------------------- * SLR R2,R2 get a zero L R1,XTPWORK1 get working storage addr CR R1,R2 has work area been gotten? BNE BDSDOIT yes, skip this LA R2,BDSSTGL Get length of DSECT GETMAIN RU,LV=(2),LOC=ANY Get program storage area DS 0H ST R1,XTPWORK1 save my work area ********************************************************** BDSDOIT DS 0H USING BDSSTG,R1 MVI BDSWORKD,0 not done yet DS 0H ST R4,BDSWORKB put addr of parm LA R1,BDSWORKB TM XTPRCFLG,XTPRLAST LAST ONE? BNO NOTLAST NO, KEEP GOING B GETOUT NOTLAST DS 0H LA R5,BDSWORKB GET RECORD ADDRESS ST R5,XTPERPTR put it in XTP area LA R5,OUTLEN GET RECORD LENTH ST R5,XTPERLEN set length to print MVI BDSWORKB,C' ' MOVE SPACE TO FIRST RECORD MVC BDSWORKB+1(OUTLEN-1),BDSWORKB SPACES TO ENTIRE REC MVC JOBNAME,JSPAJBNM MOVE PROCNAME TO RECORD MVC STEPNAME,JSPJDSSN MOVE STEPNAME TO PRINT RECORD MVC DDNAME,JSPJDSDD MOVE DDNAME TO PRINT RECORD MVC JOBINFO,=C'JOB INFORMATION RECORD' MOVE IN CONSTANT WTO 'EXIT INVOKED' ***TEMP TO SHOW EXIT IS WORKING OI XTPRCFLG,XTPRCTRN translate it to ASCII OI XTPRCFLG,XTPRCCC assume it has carriage control OI XTPRCFLG,XTPRCEXT print the record * OI XTPRCFLG,XTPRLAST SET LAST REC ADD FLAG B GETOUT * *---------------------------------------------------------------------* * Return to caller * *---------------------------------------------------------------------* GETOUT DS 0H L R13,XTPSAVE+4 Get address of caller's save area LM R14,R12,12(R13) Restore caller's registers BR R14 Return to MVS *---------------------------------------------------------------- * other dsects * anfuextp provide addressability to JSPA * JSPA provides jes2 information *---------------------------------------------------------------- TITLE 'DSECT - JSPA' IAZJSPA LIST=YES TITLE 'DSECT - ANFUEXTP' ANFUEXTP LIST=YES *---------------------------------------------------------------- * Work area *---------------------------------------------------------------- BDSSTG DSECT BDSWORKB DS 0CL133 AREA FOR OUTPUT RECORD DS C CARRIAGE CONTROL JOBNAME DS CL8 DS CL2 STEPNAME DS CL8 DS CL2 DDNAME DS CL8 DS CL2 JOBINFO DS CL22 DS CL2 DS CL(133-(*-BDSWORKB)) RESERVE 133 BYTES FOR RECORD OUTLEN EQU *-BDSWORKB DS 0D BDSWORKD DS 8BL1 * BDSSTGL EQU *-BDSSTG Length of program storage *----------------------------------------------------------------- * End of Program Storage *----------------------------------------------------------------- * R0 EQU 0 Register R1 EQU 1 equates R2 EQU 2 R3 EQU 3 R4 EQU 4 R5 EQU 5 R6 EQU 6 R7 EQU 7 R8 EQU 8 R9 EQU 9 R10 EQU 10 R11 EQU 11 R12 EQU 12 R13 EQU 13 R14 EQU 14 R15 EQU 15 END , End of ANFUXBD2 module