**** START OF SPECIFICATIONS ***************************************** 00010000 * * 00020000 *01* MODULE NAME = APSUX07T * 00030000 * $MOD (APSUX07 ) COMP(APS) PROD(PSF) : VERSION 3.2.0 * 00040000 * * 00050000 *01* DESCRIPTIVE NAME = RESOURCE EXIT - SAMPLE 6 * 00060000 * * 00070000 *01* STATUS = VERSION 3, RELEASE 2, LEVEL 0 * 00080000 * * 00090000 *01* FUNCTION = * 00100000 * * 00110000 * This exit performs two separate functions: * 00120000 * * 00130000 * 1. The RLSTLOAD flag is set for all PAGEDEF and FORMDEF * 00140000 * accesses. This causes all PAGEDEFs and FORMDEFs to be * 00150000 * loaded from DASD. The in-storage copy is never used. * 00160000 * * 00170000 * 2. The substitution of a PAGEDEF and/or FORMDEF based on the * 00180000 * contents of the FORMS= or FLASH= JCL field (FORMS= takes * 00190000 * precedence). * 00200000 * * 00210000 * * 00220000 * The basic logic and environment for PSF exits is described in * 00230000 * the PSF System Programmers Guide. * 00240000 * * 00250000 * * 00260000 * ------------------BASIC LOGIC DESCRIPTION----------------------- * 00270000 * * 00280000 * After initialization, this PSF Resource Exit is only active when * 00290000 * a PAGEDEF or FORMDEF is accessed. For all accesses to both * 00300000 * PAGEDEFs and FORMDEFs, a check is made to determine whether the * 00310000 * resource is for use with a user dataset (as opposed to a separator* 00320000 * page or message dataset). If not a user dataset, processing ends.* 00330000 * For all entries after the Initialization entry the following * 00340000 * logic is performed: * 00350000 * * 00360000 * - Check that dataset concerned is a user dataset (e.g. not a * 00370000 * job header, trailer, msg dataset etc.), if not processing ends* 00380000 * * 00390000 * - Determine whether resource is a PAGEDEF or FORMDEF and go to * 00400000 * appropriate handling routine * 00410000 * * 00420000 * NOTE: THIS SAMPLE USED ECAFORM INSTEAD OF ECEFORM WHEN @D2A* 00430000 * ORIGINALLY WRITTEN. THIS HAS BEEN CHANGED SINCE @D2A* 00440000 * THE FORMS= KEYWORD IN JCL IS NOW 8 CHARACTERS IN @D2A* 00450000 * LENGTH RATHER THAN 4 CHARACTERS AS BEFORE. ECAFORM @D2A* 00460000 * IS 4 CHARACTERS IN LENGTH WHILE ECEFORM IS 8 @D2A* 00470000 * CHARACTERS IN LENGTH. @D2A* 00480000 * * 00490000 * *--------------------------------------------* * 00500000 * * ACCESS PAGEDEF ROUTINE * * 00510000 * *--------------------------------------------* * 00520000 * * 00530000 * 1. The contents of ECEFORM (specified by user as FORMS= in JCL) * 00540000 * are used as an argument in a table lookup against FORMLIST. * 00550000 * If no hit, then the contents of the FLASH= JCL field are * 00560000 * compared. If there is no match on these searches, we exit. * 00570000 * * 00580000 * 2. Check to see if the table entry supplies the name of a PAGEDEF* 00590000 * to be substituted for the one supplied by PSF. If not, we * 00600000 * exit. * 00610000 * * 00620000 * 3. Check to see if the PAGEDEF supplied by PSF is a default. If * 00630000 * not, we don't substitute it on the assumption that the user * 00640000 * knows what they want. Otherwise copy the PAGEDEF name in the * 00650000 * FORMLIST entry into the RLSTNAME field to cause PSF to use it.* 00660000 * * 00670000 * * 00680000 * * 00690000 * *--------------------------------------------* * 00700000 * * ACCESS FORMDEF ROUTINE * * 00710000 * *--------------------------------------------* * 00720000 * * 00730000 * * 00740000 * 1. The contents of ECEFORM (specified by user as FORMS= in JCL) * 00750000 * are used as an argument in a table lookup against FORMLIST. * 00760000 * If no hit, then the contents of the FLASH= JCL field are * 00770000 * compared. If there is no match on these searches, we exit. * 00780000 * * 00790000 * 2. Check to see if the table entry supplies the name of a FORMDEF* 00800000 * to be substituted for the one supplied by PSF. If not, we * 00810000 * exit. * 00820000 * * 00830000 * 3. Check to see if the FORMDEF supplied by PSF is a default. If * 00840000 * not, we don't substitute it on the assumption that the user * 00850000 * knows what they want. Otherwise copy the FORMDEF name in the * 00860000 * FORMLIST entry into the RLSTNAME field to cause PSF to use it.* 00870000 * * 00880000 * * 00890000 *01* NOTES = SEE BELOW: * 00900000 * DEPENDENCIES = NONE * 00910000 * RESTRICTIONS = NONE * 00920000 * * 00930000 *01* MODULE TYPE = PROCEDURE * 00940000 * PROCESSOR = ASSEMBLER * 00950000 * ATTRIBUTES = REENTRANT, SUPERVISOR STATE, CALLER'S KEY, * 00960000 * PAGEABLE * 00970000 * * 00980000 *01* ENTRY POINT = APSUX07 * 00990000 * * 01000000 *01* REGISTER ON ENTRY : * 01010000 * R1 = ADDRESS OF A 4 BYTE FIELD WHICH CONTAINS THE * 01020000 * ADDRESS OF APSGEXTP * 01030000 * R13 = SAVE AREA ADDRESS * 01040000 * R14 = RETURN ADDRESS * 01050000 * R15 = ENTRY POINT ADDRESS * 01060000 * * 01070000 * * 01080000 *01* INPUT = PARAMETER AREA (APSGEXTP) * 01090000 * * 01100000 *01* OUTPUT = N/A * 01110000 * EXIT-NORMAL = RETURN TO CALLER * 01120000 * EXIT-ERROR = NONE * 01130000 * * 01140000 *01* EXTERNAL REFERENCES = SEE BELOW: * 01150000 * ROUTINES = * 01160000 * DATA AREAS = NONE * 01170000 * CONTROL BLOCKS = (SEE MACROS LISTED BELOW) * 01180000 * * 01190000 *01* TABLES = NONE * 01200000 * * 01210000 *01* MACROS = MACROS USED FROM MACRO LIBRARY: * 01220000 * APSGEXTP - PSF INSTALLATION EXIT PARAMETER AREA * 01230000 * APSUECA - PSF EXIT COMMUNICATIONS AREA * 01240000 * APSURLST - PSF EXIT RESOURCE LIST AREA * 01250000 * IAZJSPA - JES SEPARATOR PAGE AREA * 01260000 * IEFJMR - MVS JOB MANAGEMENT RECORD * 01270000 *01* CHANGE ACTIVITY = * 01280000 * $L1=LAPS0004, HAF1228, 880530, B53KEMC: RELEASE 3.0 * 01290000 * $01=OY31363, HAF1228, 900406, B53KEMC: Use correct save area @01A* 01300000 * $H5=LAPS0005, HPRF102, 033189, B53KEMC: REL 2.1.0 NEW FUNCT @H5A* 01310000 * $D2=LAPS0006, HPRF220, 930208, BJ13RLD: REL 2.2.0 - Add @D2A* 01320000 * support for ECEFORM - @D2A* 01330000 * BF00046. @D2A* 01340000 * $02=OW18773, HPRF220, 960410, BDKURLD: Delete MDFLT @02A* 01350000 * $DU=LAPS0007,HPRF310,980604,BDKURLB: Version 3.1.0 @DUA* 01360000 * $DX=LAPS0008,HPRF320,991117,BUQ4RLB: Version 3.2.0 @DXA* 01370000 * * 01380000 **** END OF SPECIFICATIONS ******************************************* 01390000 * 01400000 * 01410000 APSUX07 START 0 01420000 TITLE 'DSECT - GEXTP' 01430000 APSGEXTP LIST=YES 01440000 TITLE 'DSECT - UECA' 01450000 APSUECA LIST=YES 01460000 TITLE 'DSECT - RLST' 01470000 APSURLST LIST=YES 01480000 TITLE 'DSECT - JSPA' 01490000 IAZJSPA LIST=YES 01500000 TITLE 'DSECT - JMR' 01510000 IEFJMR 01520000 TITLE 'APSUX07 - INSTALLATION EXIT 7 - RESOURCE EXIT' 01530000 APSUX07 CSECT 01540000 APSUX07 AMODE 31 @H5A 01550000 APSUX07 RMODE ANY @H5A 01560000 USING *,R15 01570000 B START 01580000 DC AL1(16) LENGTH OF FOLLOWING FIELDS 01590000 DC CL8'APSUX07 ' NAME OF THIS ROUTINE 01600000 DC CL8'&SYSDATE' DATE OF THIS ASSEMBLY 01610000 DROP R15 01620000 START DS 0H 01630000 STM R14,R12,R12(R13) SAVE CALLERS REGISTERS 01640000 USING APSUX07,BASEREG NEW ADDRESSABILITY 01650000 LR BASEREG,R15 SWITCH BASE REGISTER 01660000 ********************************************************************** 01670000 * GET BASING FOR CONTROL BLOCKS * 01680000 ********************************************************************** 01690000 USING APSGEXTP,GEXTPTR SET ADDRESSABILITY TO GEXTP 01700000 USING XTP7,XTP7PTR SET ADDRESSABILITY TO XTP7 01710000 USING APSUECA,ECAPTR SET ADDRESSABILITY TO APSUECA 01720000 USING APSUECE,ECEPTR SET ADDRESSABILITY TO APSUECE 01730000 USING APSURLST,RLSTPTR SET ADDRESSABILITY TO APSURLST 01740000 USING IAZJSPA,JSPAPTR SET ADDRESSABILITY TO IAZJSPA 01750000 USING JMR,JMRPTR SET ADDRESSABILITY TO JMR 01760000 L GEXTPTR,0(,R1) LOAD ADDRESS OF GEXTP 01770000 L ECAPTR,XTPECAP LOAD ADDRESS OF APSUECA 01780000 LR R3,R13 LOAD ADDRESS OF CALLERS SAVE 01790000 LA R13,ECARSCSV ADDR OF APSUX07 SAVE AREA @01C 01800000 ST R3,4(,R13) SAVE CALLERS SAVE AREA ADDRESS 01810000 ST R13,8(,R3) SAVE APSUX07 SAVE AREA ADDR @01C 01820000 L XTP7PTR,XTPRECP LOAD ADDRESS OF XTP7 01830000 L RLSTPTR,XTP7LSTP LOAD ADDRESS OF APSURLST 01840000 L JSPAPTR,XTPJSPAP LOAD ADDRESS OF IAZJSPA 01850000 L JMRPTR,JSPAJMR LOAD ADDRESS OF JMR 01860000 L ECEPTR,ECAECEP LOAD ADDRESS OF ECE 01870000 ********************************************************************** 01880000 * DETERMINE WHAT TYPE OF CALL IS BEING MADE TO THE EXIT * 01890000 ********************************************************************** 01900000 CALLTYPE EQU * 01910000 TM XTP7ETYP,INITCALL INITIALIZATION CALL? 01920000 BO INITRTN YES, GOTO INIT ROUTINE 01930000 TM XTP7ETYP,ACCCALL RESOURCE ACCESS TIME CALL? 01940000 BO ACCRTN YES, GOTO ACCESS ROUTINE 01950000 B GETOUT THIS SHOULD NEVER HAPPEN 01960000 ********************************************************************** 01970000 * INITIALIZATION ROUTINE: * 01980000 * FUNCTION: * 01990000 * - REQUEST CONTROL AT ACCESS TIME FOR FORMDEFS AND PAGEDEFS * 02000000 ********************************************************************** 02010000 INITRTN EQU * 02020000 MVI XTP7NACC,XTP7AFD+XTP7APD REQUEST CONTROL AT ACCESS 02030000 * TIME FOR FDEFS AND PDEFS 02040000 B GETOUT EXIT APSUX07 02050000 * 02060000 ********************************************************************** 02070000 * ACCESS ROUTINE: * 02080000 * FUNCTION: * 02090000 * - CHECK DATASET TYPE AND DON'T PROCESS HEADERS, TRAILERS, MSGDS* 02100000 * - REQUEST RELOAD FROM DASD FOR ALL USER RESOURCE OBJECTS * 02110000 * - ACCFDEF ROUTINE HANDLES FORMDEFS * 02120000 * - ACCPDEF ROUTINE HANDLES PAGEDEFS * 02130000 ********************************************************************** 02140000 * 02150000 ACCRTN EQU * 02160000 TM XTP7DSAT,XTP7PDFT+XTP7PJHD+XTP7PJTR+XTP7PDSH+XTP7PMDS 02170000 * TEST FLAGS FOR NON-USER DATASET 02180000 BNZ GETOUT EXIT IF NON-USER 02190000 * 02200000 OI RLSTAFLG,RLSTLOAD REQUEST RELOAD FROM DASD 02210000 * 02220000 TM XTP7RTYP,PDEF IS THIS CALL FOR PAGEDEFS? 02230000 BO ACCPDEF YES, GOTO CHECK PAGEDEF 02240000 TM XTP7RTYP,FDEF IS THIS CALL FOR FORMDEFS? 02250000 BO ACCFDEF YES, GOTO CHECK FORMDEF 02260000 B GETOUT NO MATCH FOUND - POSSIBLE ERROR 02270000 * 02280000 ********************************************************************** 02290000 * ACCESS ROUTINE FOR PAGEDEFS: * 02300000 * * 02310000 * - LOOKUP FORMS= AND FLASH= IN FORM TABLE, IF NO MATCH EXIT. * 02320000 * * 02330000 * - CHECK TO SEE IF THIS IS A DEFAULT PAGEDEF. IF YES, WE EXIT. * 02340000 * FIRST WE CHECK THE RLSTATTR FIELD FOR THE DEFAULT FLAG. IF ON, * 02350000 * WE HAVE A DEFAULT. IF OFF, IT WE MAY STILL HAVE A DEFAULT. * 02360000 * WE CAN'T ACCEPT THE SETTING OF RLSTATTR AS A TRUE INDICATION * 02370000 * OF A DEFAULT PAGEDEF, BECAUSE IT IS ONLY SET IF THE PAGEDEF * 02380000 * IN THE PSF PRINTDEV STATEMENT IS USED. OFTEN, JES HAS * 02390000 * SUBSTITUTED AN FCB NAME VIA THE JES INIT DECK OR OPER COMMAND. * 02400000 * THEREFORE, WE ESTABLISH DEFAULT BY COMPARING RLSTNAME RECEIVED * 02410000 * AGAINST PAGEDEF= CODED IN PRINTDEV. IF THEY ARE THE SAME WE * 02420000 * ASSUME A DEFAULT. THIS MEANS IT IS IMPERATIVE THAT THE JES * 02430000 * INIT DECK AGREE WITH THE PRINTDEV STATEMENT. ALSO IF THE * 02440000 * OPERATOR ISSUES A $TPRTX,C= COMMAND, THIS CODING WILL NOT * 02450000 * OPERATE PROPERLY. THE PAGEDEF CODED IN THE PRINTDEV STATEMENT * 02460000 * IS FOUND BY USING ECEDPDEF. * 02470000 * * 02480000 * - IF PAGEDEF IS TO BE SUBSTITUTED COPY NAME FROM TABLE TO * 02490000 * RLSTNAME FIELD AND SET FLAG TO GENERATE SUBSTITUTION MESSAGE * 02500000 * * 02510000 ********************************************************************** 02520000 * * 02530000 ACCPDEF EQU * 02540000 BAL R14,CHKFORM CHECK TO SEE IF FORMS= PARM 02550000 * MATCHES OUR LIST, ON RETURN 02560000 * R3=0 FOR NOMATCH. IF ENTRY 02570000 * FOUND, R4 POINTS TO IT. 02580000 ALR R3,R3 R3 = 0 02590000 BZ GETOUT EXIT IF NO MATCH WAS FOUND 02600000 CLI FOLPDNAM(R4),C'¬' IS THERE A PD FOR THIS FORM? 02610000 BE GETOUT NO, THEN EXIT 02620000 *-------------------------------------------------------------------* 02630000 * THE FORM TABLE SAYS WE HAVE A PAGEDEF NAME TO SUBSTITUTE, * 02640000 * CHECK TO SEE IF WE HAVE A DEFAULT PAGEDEF SPECIFIED, IF NOT * 02650000 * WE DON'T SUBSTITUTE. * 02660000 * FIRST CHECK THE DEFAULT FLAG IN RLSTATTR. IF OFF, THEN CHECK * 02670000 * VALUE IN RLSTNAME AGAINST NAME CODED IN PRINTDEV (FOUND IN * 02680000 * ECEDPDEF). * 02690000 *-------------------------------------------------------------------* 02700000 TM RLSTATTR,DFLT IS THIS A DEFAULT PDEF? @02C 02710000 BNZ CHNGPD IF YES, GO DO SUBSTITUTION 02720000 CLC RLSTNAME,ECEDPDEF IS INPUT PDEF = PRINTDEV PDEF? 02730000 BNE GETOUT IF NOT DEFAULT, USER CODED IT 02740000 * EXIT 02750000 * 02760000 *-------------------------------------------------------------------* 02770000 * WE HAVE A DEFAULT PAGEDEF, SUBSTITUTE FROM THE FORM TABLE * 02780000 *-------------------------------------------------------------------* 02790000 * 02800000 CHNGPD EQU * 02810000 MVC RLSTNAME,FOLPDNAM(R4) REPLACE PAGEDEF WITH TBL ENTRY 02820000 OI RLSTAFLG,X'40' GIVE SUBSTITUTION MESSAGE 02830000 B GETOUT WE'RE DONE 02840000 * 02850000 ********************************************************************** 02860000 * ACCESS ROUTINE FOR FORMDEFS: * 02870000 * - CHECK TO SEE IF RESOURCE IS A DEFAULT. IF NOT, WE WILL NOT * 02880000 * SUBSTITUTE SOMETHING CODED BY THE USER - WE EXIT. * 02890000 * * 02900000 * - IF FORMDEF IS TO BE SUBSTITUTED COPY NAME FROM TABLE TO * 02910000 * RLSTNAME FIELD AND SET FLAG TO GENERATE SUBSTITUTION MESSAGE * 02920000 * * 02930000 ********************************************************************** 02940000 ACCFDEF EQU * 02950000 * 02960000 * 02970000 BAL R14,CHKFORM CHECK TO SEE IF FORMS= PARM 02980000 * MATCHES OUR LIST, ON RETURN 02990000 * R3=0 FOR NOMATCH. IF ENTRY 03000000 * FOUND, R4 POINTS TO IT. 03010000 ALR R3,R3 R3 = 0 03020000 BZ GETOUT SCRAM IF NO MATCH WAS FOUND 03030000 CLI FOLFDNAM(R4),C'¬' IS THERE A FD FOR THIS FORM? 03040000 BE GETOUT IF NOT, WE'RE DONE 03050000 *-------------------------------------------------------------------* 03060000 * THE FORM TABLE SAYS WE HAVE A FORMDEF NAME TO SUBSTITUTE, * 03070000 * CHECK TO SEE IF WE HAVE A DEFAULT FORMDEF SPECIFIED, IF NOT * 03080000 * WE DON'T SUBSTITUTE. * 03090000 *-------------------------------------------------------------------* 03100000 TM RLSTATTR,DFLT IS THIS A DEFAULT FDEF? @02C 03110000 BZ GETOUT IT NOT, WE'RE DONE - EXIT 03120000 * EXIT 03130000 * 03140000 *-------------------------------------------------------------------* 03150000 * WE HAVE A DEFAULT FORMDEF, SUBSTITUTE FROM THE FORM TABLE * 03160000 *-------------------------------------------------------------------* 03170000 * 03180000 MVC RLSTNAME,FOLFDNAM(R4) REPLACE FORMDEF WITH TBL ENTRY 03190000 OI RLSTAFLG,X'40' GIVE SUBSTITUTION MESSAGE 03200000 B GETOUT EXIT 03210000 * 03220000 * 03230000 ********************************************************************** 03240000 * EXIT LINKAGE * 03250000 ********************************************************************** 03260000 * 03270000 GETOUT EQU * 03280000 SLR R15,R15 PSF EXPECTS ZERO RETURN CODE 03290000 L R13,4(,R13) RESTORE CALLERS SAVE AREA ADDR. 03300000 L R14,12(,R13) RESTORE CALLERS RETURN ADDRESS 03310000 LM R0,R12,20(R13) RESTORE CALLERS REGISTERS 03320000 BR R14 RETURN TO PSF CALLER 03330000 * 03340000 ********************************************************************* 03350000 * SUBROUTINE TO CHECK THE FORMS LIST FOR A FORM THAT IS TO CAUSE * 03360000 * FORCED LOAD OF A FORMDEF AND/OR PAGEDEF. THE ECEFORM FIELD * 03370000 * (CONTAINED IN THE UECA CONTROL BLOCK MAPPED BY APSUECA) * 03380000 * CONTAINS VALUE SPECIFIED ON FORMS= JCL PARAMETER. IF ECEFORM * 03390000 * DOES NOT HAVE A MATCH IN THE TABLE, THE ECEFLASH FIELD IS * 03400000 * CHECKED TO SEE IF FLASH= JCL PARAMETER HAS A MATCH. * 03410000 * * 03420000 * IF ECEFORM = STD (JES DEFAULT), THEN THE LOOKUP IS NOT DONE AND* 03430000 * THE CHECK FOR FLASH= IS DONE IMMEDIATELY. RETURN TO CALLER IS * 03440000 * VIA BR 14. ON RETURN, R4 -> LAST TABLE ENTRY COMPARED. IF * 03450000 * NO MATCH IS FOUND, R3 IS ZERO (DUE TO BCT OPERATION). IF * 03460000 * A MATCH IS FOUND, R3 > 0 AND R4 -> MATCHED TABLE ENTRY. * 03470000 ********************************************************************* 03480000 CHKFORM EQU * 03490000 SLR R3,R3 INDICATE NOTHING FOUND AS 03500000 * DEFAULT IN CASE OF EARLY EXIT 03510000 CLC ECEFORM(4),=C'STD ' IS THIS JES STANDARD FORM?@D2C 03520000 BE CHKFLSH IF YES, DID THEY PASS INFO 03530000 * VIA FLASH= TO AVOID QUEUING? 03540000 LA R3,NUMFORM R3 = NUMBER OF LIST ENTRIES 03550000 LA R4,FORMLIST R4 -> 1ST ENTRY IN FORM LIST 03560000 CHKFORML EQU * 03570000 CLC ECEFORM,0(R4) IS FORM IN THE LIST? @D2C 03580000 BER R14 RETURN TO CALLER IF YES 03590000 LA R4,FOLSTLEN(R4) BUMP LIST POINTER 03600000 BCT R3,CHKFORML ITERATE LOOP 03610000 CHKFLSH EQU * LOOP TO CHECK FLASH= 03620000 LA R3,NUMFORM R3 = NUMBER OF LIST ENTRIES 03630000 LA R4,FORMLIST R4 -> 1ST ENTRY IN FORM LIST 03640000 CHKFLSHL EQU * 03650000 CLC ECEFLASH,0(R4) IS FLASH IN THE LIST? 03660000 BE 0(R14) RETURN TO CALLER IF YES 03670000 LA R4,FOLSTLEN(R4) BUMP LIST POINTER 03680000 BCT R3,CHKFLSHL ITERATE LOOP 03690000 BR R14 RETURN TO CALLER, NOTHING FOUND 03700000 *----------------------END OF CHKFORM SUBROUTINE -------------------- 03710000 SPACE 2 03720000 ********************************************************************** 03730000 * EXIT 7 DATA AREAS * 03740000 ********************************************************************** 03750000 * 03760000 *--------------------FORM TABLE--------------------------------------* 03770000 * * 03780000 * CONTAINS A LIST OF FORMS THAT MIGHT BE SPECIFIED ON FORMS= JCL * 03790000 * PARM. FOR EACH FORM, AN ASSOCIATED FORMDEF AND PAGEDEF ARE * 03800000 * LISTED. EACH TABLE ENTRY CONSISTS OF A 4-CHAR FORM ID, AN * 03810000 * 8-CHAR FORMDEF NAME AND AN 8-CHAR PAGEDEF NAME. THE FORMDEF * 03820000 * AND PAGEDEF NAMES IN THIS TABLE WILL ONLY BE SUBSTITUTED IF THE* 03830000 * THE RESOURCE NAME IN RLSTNAME IS A DEFAULT. FOR FORMDEFS THIS * 03840000 * IS DETERMINED BY INTERROGATING THE RLSTADFT FLAG IN THE * 03850000 * RLSTATTR FIELD, WHICH IS SET IF THE FORMDEF DEFINED IN THE * 03860000 * PSF PRINTDEV JCL STATEMENT IS USED. FOR PAGEDEFS, THIS FLAG * 03870000 * IS IRRELEVANT BECAUSE JES ALWAYS FORCES AN FCB (I.E. PAGEDEF) * 03880000 * NAME TO BE SUPPLIED, THEREFORE THE "PSF" DEFAULT IS NEVER TAKEN* 03890000 * THE PAGEDEF DEFAULT IS DETERMINED BY COMPARING RLSTNAME TO THE * 03900000 * PAGEDEF= SPECIFIED IN THE PRINTDEV STATEMENT. THIS DOES NOT * 03910000 * GUARANTEE THAT THIS PAGEDEF WAS, IN FACT, PROVIDED VIA DEFAULT * 03920000 * PROCESSING, UNLESS THE JES2 DEFAULTS ARE ALSO SET TO THIS VALUE* 03930000 * 03940000 * IF THE VALUE IN THIS TABLE FOR EITHER A PAGEDEF OR A FORMDEF * 03950000 * IS SET TO ¬¬¬¬¬¬¬¬, THIS INDICATES THAT THERE IS NO OBJECT TO * 03960000 * BE SUBSTITUTED FROM THE TABLE. THE CURRENT VALUE WILL BE USED.* 03970000 * THIS IS USED WHERE ONLY ONE OF THE PAGEDEF OR FORMDEF IS REQD * 03980000 * BY THE FORM= VALUE, NOT A PAGEDEF/FORMDEF PAIR. * 03990000 * * 04000000 * THE FOLSTLEN EQUATE REPRESENTS THE LENGTH OF A LIST ENTRY AND * 04010000 * MUST BE CHANGED IF SUBSEQUENT UPDATES ALTER THE LENGTH OF AN * 04020000 * ENTRY. THE NUMFORMS EQUATE EQUALS THE NUMBER OF LIST ENTRIES * 04030000 * IMMEDIATELY FOLLOW THE LAST LIST ENTRY * 04040000 *--------------------------------------------------------------------* 04050000 FOLSTLEN EQU 24 LENGTH OF A FORMLIST TABLE ENTRY @D2C 04060000 FOLFDNAM EQU 8 OFFSET TO FORMDEF NAME FIELD @D2C 04070000 FOLPDNAM EQU 16 OFFSET TO PAGEDEF NAME FIELD @D2C 04080000 FORMLIST DS 0D 04090000 * FORM FORMDEF PAGEDEF 04100000 * | | | (IF FORMDEF OR PAGEDEF 04110000 * | | | NAME STARTS WITH ¬, NO 04120000 * V V V SUBSTITUTION IS DONE) 04130000 DC C'EJCT ',C'F1EJCTFD',C'¬¬¬¬¬¬¬¬' @D2C 04140000 DC C'2UP ',C'¬¬¬¬¬¬¬¬',C'P12UP66A' @D2C 04150000 DC C'OFF ',C'¬¬¬¬¬¬¬¬',C'P1OFFSET' @D2C 04160000 DC C'BOTH ',C'F1EJCTFD',C'P12UP66A' @D2C 04170000 DC C'TST12345',C'F1010111',C'P1W120C2' @D2C 04180000 DC C'TST23456',C'F1IBM ',C'P1V06483' @D2C 04190000 DC C'ZZZZZZZZ',C'F1ZZZZZZ',C'P1ZZZZZZ' @D2C 04200000 NUMFORM EQU (*-FORMLIST)/FOLSTLEN THIS EQU MUST FOLLOW 04210000 * LAST TABLE ENTRY 04220000 *-----------------------------------------------END FORM TABLE-------* 04230000 ASTERISK DC CL30'******************************' 04240000 ********************************************************************** 04250000 * LIST FORM WTL TO BE USED FOR EXEC TRACING * 04260000 * BY COPYING THE CONTROL BLOCK GENERATED BY THE FOLLOWING MACRO * 04270000 * INTO ECAWKBUF, YOU CAN USE AN EXECUTE FORM WTL TO SEND TRACING * 04280000 * MESSAGES TO THE CONSOLE. USE THE WTLDSECT TO MAP THE FIELDS. * 04290000 * AFTER ESTABLISHING ADDRESSIBILITY, MOVE THE TEXT YOU WANT * 04300000 * INTO WTLDSECT AND ISSUE WTL EXECUTE FORM; LIKE SO: 04310000 * - AT MODULE INIT: 04320000 * MVC ECAWKBUF(WTLLISTL),WTLLIST 04330000 * USING WTLDSECT,R1 04340000 * - AT MESSAGE TIME: 04350000 * LA R1,ECAWKBUF 04360000 * MVC WTLTEXT(47),=CL47'MESSAGE TEXT' 04370000 * WTL MF=(E,(1)) 04380000 * THIS ALLOWS YOU TO MOVE VARIABLE INFORMATION INTO THE WTLS 04390000 ********************************************************************** 04400000 WTLLIST WTL 'APSUX07: ',*04410000 ,MF=L 04420000 WTLLISTL EQU *-WTLLIST 04430000 ********************************************************************** 04440000 * EQUATES TO VERIFY TYPE OF EXIT CALL, COMPARE WITH XTP7ETYP * 04450000 ********************************************************************** 04460000 INITCALL EQU B'10000000' RESOURCE MANAGER INITIAL CALL 04470000 BDSCALL EQU B'01000000' BEGINNING OF DATA SET CALL 04480000 ACCCALL EQU B'00100000' RESOURCE ACCESS 04490000 LDBCALL EQU B'00010000' RESOURCE LOAD BEGIN 04500000 LDECALL EQU B'00001000' RESOURCE LOAD END 04510000 DSECALL EQU B'00000100' RESOURCE DELETE AT DATA SET END 04520000 TRMCALL EQU B'00000010' TERMINATION OF FSA 04530000 ********************************************************************** 04540000 * EQUATES TO VERIFY TYPE OF RESOURCE CALL, COMPARE WITH XTP7RTYP * 04550000 ********************************************************************** 04560000 PDEF EQU B'10000000' PAGEDEF 04570000 FDEF EQU B'01000000' FORMDEF 04580000 FONT EQU B'00100000' CODED FONT 04590000 OVLY EQU B'00010000' MEDIUM OVERLAY 04600000 PSEG EQU B'00001000' PAGE SEGMENT 04610000 ********************************************************************** 04620000 * EQUATES FOR RLSTATTR FLAG FIELD * 04630000 ********************************************************************** 04640000 DFLT EQU B'10000000' DEFAULT FD/PD RESOURCE 04650000 * deleted 1 line (MDFLT) @02D 04660000 INLINE EQU B'00100000' INLINE FD/PD RESOURCE 04670000 SOFTPS EQU B'00010000' SOFT PAGE SEGMENT 04680000 MEFONT EQU B'00001000' MULTIPLE ENTRY FONT 04690000 ********************************************************************** 04700000 * REGISTER EQUATES * 04710000 ********************************************************************** 04720000 R0 EQU 0 04730000 R1 EQU 1 04740000 R2 EQU 2 04750000 R3 EQU 3 04760000 R4 EQU 4 04770000 R5 EQU 5 04780000 R6 EQU 6 04790000 R7 EQU 7 04800000 R8 EQU 8 04810000 R9 EQU 9 04820000 R10 EQU 10 04830000 R11 EQU 11 04840000 R12 EQU 12 04850000 R13 EQU 13 04860000 R14 EQU 14 04870000 R15 EQU 15 04880000 ECEPTR EQU R2 04890000 GEXTPTR EQU R5 04900000 XTP7PTR EQU R6 04910000 ECAPTR EQU R7 04920000 RLSTPTR EQU R8 04930000 JSPAPTR EQU R9 04940000 JMRPTR EQU R10 04950000 USRPTR EQU R11 04960000 BASEREG EQU R12 04970000 * * 04980000 ********************************************************************** 04990000 * DSECT TO MAP LIST FORM WTL BUILT WITH WTL MF=(L) * 05000000 ********************************************************************** 05010000 WTLDSECT DSECT 05020000 DS F 05030000 DS CL9 05040000 WTLTEXT DS CL47 05050000 END 05060000