z/OS DFSMSdfp Advanced Services
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Code example of the CVAFFILT Macro

z/OS DFSMSdfp Advanced Services
SC23-6861-01

CVAFFEXP TITLE 'CVAF CVAFFILT EXAMPLE'                                          
CVAFFEXP CSECT                                                                  
CVAFFEXP AMODE 24                                                               
CVAFFEXP RMODE 24                                                               
*                                                                               
***********************************************************************         
*                                                                     *         
*    CVAFFEXP - CVAFFILT EXAMPLE                                      *         
*                                                                     *         
*                                                                     *         
*    CVAFFILT EXAMPLE TO BE USED IN DFSMS ADVANCED SERVICES MANUAL    *         
*                                                                     *         
*    CVAFFILT MACRO RUN IN AMODE24/RMODE24                            *         
*                                                                     *         
*    CVAFFILT TEST DSN'S / PROCESSING USED:                           *         
*                                                                     *         
*    1) 2 SEQUENTIAL DATASETS WITH 5 EXTENTS. (1 FMT1/1 FMT3 EACH)    *         
*       DSCBS RETURNED WILL BE COMBINED TO TOTAL 2 FMT1 / 2 FMT3'S    *         
*       DSN: CVAFFLT1.DATA01                                          *         
*       DSN: CVAFFLT1.DATA02                                          *         
*       CREATE ON THE VOLUME ASSOCIATED WITH THE CVAFDD DD            *         
*                                                                     *         
*    2) PDSE DATASET WITH 122 EXTENTS. (1 FMT1/10 FMT3'S)             *         
*       DSN: CVAFFLT1.PDSE01                                          *         
*       CREATE ON THE VOLUME ASSOCIATED WITH THE CVAFDD DD            *         
*                                                                     *         
*    3) 1 SEQUENTIAL DATASET WITH 5 EXTENTS (1 FMT1/1 FMT3)           *         
*       DSN: CVAFFLT1.DATA01                                          *         
*       CREATE ON THE VOLUME ASSOCIATED WITH THE CVAFDD DD            *         
*                                                                     *         
*    4) RETURN DSCB COUNT FOR ENTIRE VOLUME USING CVAFFILT RESUME     *         
*       PROCESING.                                                    *         
*       DSN'S ON THE VOLUME: (IN SEQUENCE ORDER)                      *         
*       SYS1.VTOCIX.V39L62   (VTOC INDEX - 1 FMT1)                    *         
*       CVAFFLT1.DATA01      (5 EXTENTS - 1 FMT1/1 FMT3)              *         
*       CVAFFLT1.DATA02      (5 EXTENTS - 1 FMT1/1 FMT3)              *         
*       CVAFFLT1.PDSE01      (122 EXTENTS - 1 FMT1/10 FMT3'S)         *         
*       DSN'S CREATED ON THE VOLUME ASSOCIATED WITH THE CVAFDD DD     *         
*                                                                     *         
*                                                                     *         
*       OUTPUT IN OUTDD DATASET SHOULD BE THE FOLLOWING:              *         
*---------------------------------------------------------------------*         
*                                                                     *         
*                                                                     *         
*   CVAFFEXP START OF OUTPUT MESSAGES                                 *         
*                                                                     *         
*   RC00 VERIFIED - THE REQUEST WAS SUCCESSFUL                        *         
*   CVAFFILT RETURNED THE FOLLOWING DSCBS FOR DSN: CVAFFLT1.DATA01    *         
*                                     AND FOR DSN: CVAFFLT1.DATA02    *         
*    NUMBER OF FORMAT 1 DSCBS - 0000002                               *         
*    NUMBER OF FORMAT 3 DSCBS - 0000002                               *         
*                                                                     *         
*   RC00 VERIFIED - THE REQUEST WAS SUCCESSFUL                        *         
*   CVAFFILT RETURNED THE FOLLOWING DSCBS FOR DSN: CVAFFLT1.PDSE01    *         
*    NUMBER OF FORMAT 1 DSCBS - 0000001                               *         
*    NUMBER OF FORMAT 3 DSCBS - 0000010                               *         
*                                                                     *         
*   RC00 VERIFIED - THE REQUEST WAS SUCCESSFUL                        *         
*   CVAFFILT RETURNED THE FOLLOWING DSCBS FOR DSN: CVAFFLT1.DATA01    *         
*    NUMBER OF FORMAT 1 DSCBS - 0000001                               *         
*    NUMBER OF FORMAT 3 DSCBS - 0000001                               *         
*                                                                     *         
*   RC04 VERIFIED - CVSTAT 064  RESUME IS NECESSARY                   *         
*   CVAFFILT (INITIAL) RETURNED THE FOLLOWING DSCBS FOR THE VOLUME:   *         
*    NUMBER OF FORMAT 1 DSCBS - 0000003                               *         
*    NUMBER OF FORMAT 3 DSCBS - 0000002                               *         
*   CVAFFILT (RESUME)  RETURNED THE FOLLOWING DSCBS FOR THE VOLUME:   *         
*    NUMBER OF FORMAT 1 DSCBS - 0000001                               *         
*    NUMBER OF FORMAT 3 DSCBS - 0000010                               *         
*   CVAFFILT RESUME OPERATION COMPLETE - ALL DSCBS RETURNED           *         
*                                                                     *         
*   CVAFFEXP END OF OUTPUT MESSAGES                                   *         
*                                                                     *         
*                                                                     *         
*---------------------------------------------------------------------*         
*                                                                     *         
* NOTE: THE NUMBER OF DSCBS RETURNED WILL VARY IF THE DATASET DOES    *         
*       NOT EXIST ON THE VOLUME OF IF THE DATASET EXTENT IS NOT AS    *         
*       LISTED ABOVE OR IF THERE IS NO VTOC INDEX ON THE VOLUME.      *         
*                                                                     *         
* NOTE: WHEN CREATING A PDSE ON A SMS MANAGED VOLUME A VVDS           *         
*       WILL ALSO BE CREATED AND THE FMT1 COUNT WILL BE               *         
*       INCREASED BY ONE.                                             *         
*                                                                     *         
*                                                                     *         
***********************************************************************         
*                                                                               
***********************************************************************         
*                                                                     *         
*    CVAFFEXP - LOGIC NOTES                                           *         
*                                                                     *         
*    THIS EXAMPLE WILL PERFORM THE FOLLOWING:                         *         
*                                                                     *         
*    INITIALIZATION                                                   *         
*    - OBTAIN THE NECESSARY INFORMATION FROM THE DASD VOLUME          *         
*    - OPEN AN OUTPUT FILE AND WRITE THE NECESSARY OUTPUT MESSAGES    *         
*    - INITIALIZE THE NECESSARY BUFFER LIST FOR CVAFFILT              *         
*                                                                     *         
*    MAINLINE                                                         *         
*    - INITIALIZE A FCL TO READ FOR TWO SPECIFIC SEQ DATASETS         *         
*    - ISSUE CVAFFILT READ TO READ THE DSCBS FOR THE TWO DATASETS     *         
*    - CHECK THE RETURN CODE AND CVSTAT CODE FROM CVAFFILT            *         
*    - COUNT THE NUMBER OF FMT1 AND FMT3 DSCBS FOR THE REQUEST        *         
*    - FORMAT THE DSCB COUNTS AND WRITE TO THE OUTPUT DATASET         *         
*    - ISSUE CVAFFILT RLSE TO RELEASE THE WORK AREAS USED             *         
*                                                                     *         
*    - INITIALIZE A FCL TO READ FOR ONE SPECIFIC PDSE DATASET         *         
*    - ISSUE CVAFFILT READ TO READ THE DSCBS FOR THE PDSE DATASET     *         
*    - CHECK THE RETURN CODE AND CVSTAT CODE FROM CVAFFILT            *         
*    - COUNT THE NUMBER OF FMT1 AND FMT3 DSCBS FOR THE REQUEST        *         
*    - FORMAT THE DSCB COUNTS AND WRITE TO THE OUTPUT DATASET         *         
*    - ISSUE CVAFFILT RLSE TO RELEASE THE WORK AREAS USED             *         
*                                                                     *         
*    - INITIALIZE A FCL TO READ FOR ONE SPECIFIC SEQ DATASET          *         
*    - ISSUE CVAFFILT READ TO READ THE DSCBS FOR THE ONE DATASET      *         
*    - CHECK THE RETURN CODE AND CVSTAT CODE FROM CVAFFILT            *         
*    - COUNT THE NUMBER OF FMT1 AND FMT3 DSCBS FOR THE REQUEST        *         
*    - FORMAT THE DSCB COUNTS AND WRITE TO THE OUTPUT DATASET         *         
*    - ISSUE CVAFFILT RLSE TO RELEASE THE WORK AREAS USED             *         
*                                                                     *         
*    - INITIALIZE A FCL TO READ THE DSCBS ON THE ENTIRE VOLUME        *         
*    - ISSUE CVAFFILT READ TO READ THE DSCBS FOR THE VOLUME           *         
*    - CHECK THE RETURN CODE AND CVSTAT CODE FROM CVAFFILT            *         
*    - PROCESS ALL DSCBS USING CVAFFILT RESUME AS NECESSARY           *         
*    - COUNT THE NUMBER OF FMT1 AND FMT3 DSCBS FOR THE REQUEST        *         
*    - FORMAT THE DSCB COUNTS AND WRITE TO THE OUTPUT DATASET         *         
*    - ISSUE CVAFFILT RLSE TO RELEASE THE WORK AREAS USED             *         
*                                                                     *         
*    FINALIZATION                                                     *         
*    - CLOSE THE OUTPUT FILE                                          *         
*    - EXIT                                                           *         
*                                                                     *         
*                                                                     *         
*    CVAFFEXP - JOB INFORMATION                                       *         
*                                                                     *         
*    NORMAL END OF JOB:                                               *         
*    - RC=00 AND OUTDD OUTPUT AS DETAILED ABOVE                       *         
*                                                                     *         
*                                                                     *         
*    ABNORMAL END OF JOB:                                             *         
*    - ABEND 100 - ERROR OPENING VTOC ON THE DASD VOLUME THAT IS      *         
*                  ASSOCIATED WITH THE CVAFDD DD STATEMENT            *         
*    - ABEND 101 - ERROR OPENING THE OUTDD DATASET                    *         
*    - ABEND 102 - ERROR CLOSING THE OUTDD DATASET                    *         
*                                                                     *         
*                                                                     *         
*    DASD VOLUMES USED IN THIS EXAMPLE:                               *         
*    - 339L61 - 3390 WHERE OUTDD DATASET IS DEFINED                   *         
*    - 339L62 - 3390 WHERE TEST DATASETS DETAILED ABOVE ARE DEFINED   *         
*                                                                     *         
*                                                                     *         
***********************************************************************         
*                                                                               
***********************************************************************         
*                                                                     *         
* HOUSEKEEPING                                                        *         
* - SAVE CALLER'S REGISTERS AND ESTABLISH A NEW REGISTER SAVE AREA    *         
*                                                                     *         
***********************************************************************         
*                                                                               
         STM   R14,R12,12(R13)    STANDARD LINKAGE CONVENTION                   
         BALR  R11,0              DCL R11 AS IMPLIED BASE REG                   
         USING BASE,R11,R12       R12 IS ALSO BASE REG                          
BASE     L     R12,BASEADDR       SET UP ADDRESSING FOR R12                     
         B     CVAFFL00           BRANCH AROUND DECLARES                        
BASEADDR DC    A(BASE+4096)       ADDRESSING FOR R12                            
CVAFFL00 DS    0H                 CONTINUE...                                   
         ST    R13,SAVE+4         SAVE PTR TO CALLER'S SAVE AREA                
         LA    R14,SAVE           GET ADDRESS OF THE NEW SAVE AREA              
         ST    R14,8(,R13)        CHAIN CALLER'S AREA TO OURS                   
         LR    R13,R14            ESTABLISH THE NEW SAVE AREA                   
*                                                                               
***********************************************************************         
*                                                                     *         
* INITIALIZATION                                                      *         
*                                                                     *         
***********************************************************************         
*                                                                               
INITIAL  DS    0H                 INITIALIZATION SECTION                        
         BAL   R14,IDVOLRTN       INVOKE RTN TO IDENTIFY THE VOLUME(S)          
         BAL   R14,OPENRTN        INVOKE OPEN OUTPUT DATASET RTN                
         MVC   PDETLINE(133),STRTMSG  MOVE START MSG TO LINE                    
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         MVC   PDETLINE(133),BLNKLNE  MOVE BLANK LINE TO LINE                   
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         BAL   R14,BUFLRTN        INVOKE RTN TO INIT BUFFER LIST (H/E)          
*                                                                               
***********************************************************************         
*                                                                     *         
* MAINLINE                                                            *         
*                                                                     *         
***********************************************************************         
*                                                                               
MAINLINE DS    0H                 MAINLINE SECTION                              
         MVI   DSNNBR,X'02'       SET DSNNBR FLAG TO TWO                        
         BAL   R14,FCL1RTN        INVOKE RTN TO INIT FCL (DS01/DS02)            
         BAL   R14,CVAFRD2        INVOKE CVAFFILT READ RTN 2                    
         BAL   R14,TSTRCRTN       INVOKE TEST RC RTN                            
         L     R15,RETCODE        LOAD R15 WITH RETURN CODE                     
         CH    R15,RCODE00        IS RC = 0                                     
         BNE   MAIN0010            NO - DO NOT FORMAT/PRINT LINES               
         MVC   DS(44),DS01        ELSE MOVE DSN FOR DS01 TO MSG LINE            
         MVC   PDETLINE(133),DSCBMSGA  MOVE MSG TO LINE                         
         PUT   OUTFILE,PDETLINE      WRITE A RECORD TO THE OUTPUT FILE          
         MVC   DS2(44),DS02          MOVE DSN FOR DS02 TO MSG LINE              
         MVC   PDETLINE(133),DSCBMSGB MOVE MSG TO LINE                          
         PUT   OUTFILE,PDETLINE      WRITE A RECORD TO THE OUTPUT FILE          
         BAL   R14,FMTOPRTN          INVOKE FORMAT OUTPUT MSG RTN               
         B     MAIN0020              BRANCH TO MAIN0020                         
MAIN0010 DS    0H                 CVAFFILT - CVSTAT LOGICAL ERROR               
         MVC   DS3(44),DS01       MOVE DSN FOR DS01 TO MSG LINE                 
         MVC   PDETLINE(133),DSCBMSGC MOVE MSG TO LINE                          
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         MVC   DS3(44),DS02       MOVE DSN FOR DS02 TO MSG LINE                 
         MVC   PDETLINE(133),DSCBMSGC MOVE MSG TO LINE                          
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
MAIN0020 DS    0H                                                               
         MVC   PDETLINE(133),BLNKLNE  MOVE BLANK LINE TO LINE                   
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         BAL   R14,CVAFRL         INVOKE CVAFFILT RELEASE RTN                   
         MVI   DSNNBR,X'01'       SET DSNNBR FLAG TO ONE                        
         BAL   R14,FCL2RTN        INVOKE RTN TO INIT FCL (DS03)                 
         BAL   R14,CVAFRD1        INVOKE CVAFFILT READ RTN 1                    
         BAL   R14,TSTRCRTN       INVOKE TEST RC RTN                            
         L     R15,RETCODE        LOAD R15 WITH RETURN CODE                     
         CH    R15,RCODE00        IS RC = 0                                     
         BNE   MAIN0030            NO - DO NOT FORMAT/PRINT LINES               
         MVC   DS(44),DS03        ELSE MOVE DSN FOR DS03 TO MSG LINE            
         MVC   PDETLINE(133),DSCBMSGA  MOVE MSG TO LINE                         
         PUT   OUTFILE,PDETLINE      WRITE A RECORD TO THE OUTPUT FILE          
         BAL   R14,FMTOPRTN          INVOKE FORMAT OUTPUT MSG RTN               
         B     MAIN0040              BRANCH TO MAIN0040                         
MAIN0030 DS    0H                 CVAFFILT - CVSTAT LOGICAL ERROR               
         MVC   DS3(44),DS03       MOVE DSN FOR DS03 TO MSG LINE                 
         MVC   PDETLINE(133),DSCBMSGC MOVE MSG TO LINE                          
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
MAIN0040 DS    0H                                                               
         MVC   PDETLINE(133),BLNKLNE  MOVE BLANK LINE TO LINE                   
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         BAL   R14,CVAFRL         INVOKE CVAFFILT RELEASE RTN                   
         BAL   R14,FCL3RTN        INVOKE RTN TO INIT FCL (DS01)                 
         BAL   R14,CVAFRD1        INVOKE CVAFFILT READ RTN                      
         BAL   R14,TSTRCRTN       INVOKE TEST RC RTN                            
         L     R15,RETCODE        LOAD R15 WITH RETURN CODE                     
         CH    R15,RCODE00        IS RC = 0                                     
         BNE   MAIN0050            NO - DO NOT FORMAT/PRINT LINES               
         MVC   DS(44),DS01        ELSE MOVE DSN FOR DS01 TO MSG LINE            
         MVC   PDETLINE(133),DSCBMSGA  MOVE MSG TO LINE                         
         PUT   OUTFILE,PDETLINE      WRITE A RECORD TO THE OUTPUT FILE          
         BAL   R14,FMTOPRTN          INVOKE FORMAT OUTPUT MSG RTN               
         B     MAIN0060              BRANCH TO MAIN0060                         
MAIN0050 DS    0H                 CVAFFILT - CVSTAT LOGICAL ERROR               
         MVC   DS3(44),DS01       MOVE DSN FOR DS01 TO MSG LINE                 
         MVC   PDETLINE(133),DSCBMSGC MOVE MSG TO LINE                          
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
MAIN0060 DS    0H                                                               
         MVC   PDETLINE(133),BLNKLNE  MOVE BLANK LINE TO LINE                   
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         BAL   R14,CVAFRL         INVOKE CVAFFILT RELEASE RTN                   
         BAL   R14,FCL4RTN        INVOKE RTN TO INIT FCL (ENTIRE VOL)           
         BAL   R14,CVAFRDA        INVOKE CVAFFILT READ RTN (FOR RESUME)         
         LA    R9,CVPLDEFA        ESTABLISH ADDRESSABILITY                      
         USING CVPLMAP,R9         TO THE CVPL (FOR CVSTAT)                      
         BAL   R14,TSTRCRTN       INVOKE TEST RC RTN                            
*                                                                               
***********************************************************************         
*                                                                     *         
* FINALIZATION                                                        *         
*                                                                     *         
***********************************************************************         
*                                                                               
FINAL    DS    0H                 FINALIZATION SECTION                          
         MVC   PDETLINE(133),BLNKLNE  MOVE BLANK LINE TO LINE                   
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         MVC   PDETLINE(133),ENDMSG  MOVE END MSG TO LINE                       
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         BAL   R14,CLOSERTN       INVOKE CLOSE OUTPUT DATASET RTN               
         L     R13,4(R13)         RESTORE REGISTER                              
         LM    R14,R12,12(R13)    RESTORE CALLERS REGISTERS                     
         LA    R15,0              SET RC TO 0                                   
         BR    R14                RETURN TO CALLER                              
*                                                                               
***********************************************************************         
*                          OPENRTN                                    *         
*          - ROUTINE TO OPEN OUTPUT FILE USED BY THIS MODULE          *         
***********************************************************************         
*                                                                               
OPENRTN  DS    0H                 OPEN FILES ROUTINE                            
         ST    R14,OPENSAVE       STORE C(R14) INTO SAVE AREA                   
         OPEN  (OUTFILE,(OUTPUT)) OPEN THE OUTDD OUTPUT FILE FOR MSGS           
         TM    OUTFILE+(DCBOFLGS-IHADCB),DCBOFOPN  IS FILE OPEN?                
         BO    OPENEXIT           FILE OPEN OK - EXIT OPEN RTN                  
         LA    R1,EABN101         OUTPUT FILE NOT OPEN-USER ABEND 101           
         BAL   R14,ABENDRTN       INVOKE ABEND ROUTINE                          
OPENEXIT DS    0H                 EXIT FROM OPEN ROUTINE                        
         L     R14,OPENSAVE       LOAD C(OPENSAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                          CLOSERTN                                   *         
*          - ROUTINE TO CLOSE OUTPUT FILE USED BY THIS MODULE         *         
***********************************************************************         
*                                                                               
CLOSERTN DS    0H                 CLOSE FILES ROUTINE                           
         ST    R14,CLOSSAVE       STORE C(R14) INTO SAVE AREA                   
         CLOSE (OUTFILE)          CLOSE OUTPUT FILE                             
         LTR   R15,R15            CHECK IF CLOSED OK                            
         BZ    CLOSEXIT           IF OK BRANCH TO CLOSEXIT                      
         LA    R1,EABN102         ELSE SETUP FOR USER ABEND 102                 
         BAL   R14,ABENDRTN       INVOKE ABEND ROUTINE                          
CLOSEXIT DS    0H                 EXIT FROM CLOSE ROUTINE                       
         L     R14,CLOSSAVE       LOAD C(CLOSSAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                          ABENDRTN                                   *         
*                  - FORCE AN ABEND ROUTINE                           *         
***********************************************************************         
*                                                                               
ABENDRTN DS    0H                 ABEND ROUTINE                                 
         ST    R14,ABENSAVE       STORE C(R14) INTO SAVE AREA                   
         ABEND (R1),DUMP          ISSUE USER ABEND WITH DUMP                    
ABENEXIT DS    0H                 EXIT FROM ABEND ROUTINE                       
         L     R14,ABENSAVE       LOAD C(ABENSAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                          IDVOLRTN                                   *         
*     - OBTAIN THE NECESSARY INFORMATION FROM THE DASD VOLUME         *         
***********************************************************************         
*                                                                               
IDVOLRTN DS    0H                 IDENTIFY VOLUME ROUTINE                       
         ST    R14,IDVLSAVE       STORE C(R14) INTO SAVE AREA                   
         RDJFCB (VTOCDCB,(INPUT)) READ JFCB / OPEN VTOC                         
         MVI   JFCB1,X'04'        PUT IN ID FOR FORMAT 4                        
         MVC   JFCB1+1(43),JFCB1  SETUP FOR VTOC OPEN                           
         OPEN  (VTOCDCB,(INPUT)),TYPE=J  OPEN VTOC (OPEN TYPE=J)                
         TM    VTOCDCB+(DCBOFLGS-IHADCB),DCBOFOPN                               
         BO    IDVOL010           BRANCH TO IDVOL010 - GOOD OPEN                
         LA    R1,EABN100         ELSE SETUP FOR USER ABEND 100                 
         BAL   R14,ABENDRTN       INVOKE ABEND ROUTINE                          
IDVOL010 DS    0H                 GOOD OPEN - OBTAIN VOLUME INFORMATION         
         SLR   RDEB,RDEB          INIT REG1 FOR DEB PTR                         
         SLR   RUCB,RUCB          INIT REG2 FOR UCB PTR                         
         ICM   RDEB,B'0111',VTOCDCB+(DCBDEBA-IHADCB) GET DEB ADDRESS            
         ST    RDEB,DEBADD        SAVE DEB ADDRESS INTO R1                      
         ICM   RUCB,B'0111',(DEBBASND-DEBBASIC)+(DEBUCBA-DEBDASD)(RDEB)         
         ST    RUCB,UCBADD        SAVE UCB ADDRESS INTO R2                      
IDVLEXIT DS    0H                 EXIT FROM IDVOLRTN                            
         L     R14,IDVLSAVE       LOAD C(IDVLSAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                          TSTRCRTN                                   *         
*             - TEST RETURN CODE FROM CVAFFILT                        *         
*             - FORMAT AND PRINT MESSAGES AS NEEDED                   *         
***********************************************************************         
*                                                                               
TSTRCRTN DS    0H                 CHECK RETURN CODE ROUTINE                     
         ST    R14,TSTRSAVE       STORE C(R14) INTO SAVE AREA                   
         L     R15,RETCODE        LOAD R15 WITH RC SAVED FROM LAST CALL         
         CH    R15,RCODE00        IF RETURN CODE = 00                           
         BE    TSTRC00               BRANCH TO PROCESS RC00                     
         CH    R15,RCODE04        IF RETURN CODE = 04                           
         BE    TSTRC04               BRANCH TO PROCESS RC04                     
TSTRCER  DS    0H                 ELSE PRINT GENERAL ERROR MESSAGE              
         MVC   PDETLINE(133),RCERMSG MOVE ERROR MSG TO PRINT LINE               
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         B     TSTREXIT           BRANCH TO EXIT RTN                            
TSTRC00  DS    0H                 PROCESS RETURN CODE = 00                      
         MVC   PDETLINE(133),RC00MSG MOVE RC00 MSG TO PRINT LINE                
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         BAL   R14,FMTCTRTN       BRANCH TO FMT COUNT RTN                       
         BAL   R14,FMTOPRTN       INVOKE FORMAT OUTPUT MSG ROUTINE              
         B     TSTREXIT           BRANCH TO EXIT RTN                            
TSTRC04  DS    0H                 PROCESS RETURN CODE = 04                      
         CLI   CVSTAT,STAT064     DO WE NEED RESUME?                            
         BNE   TSTR0010           NO - PRINT LOGICAL ERROR MSG                  
         BAL   R14,CVAFRS         INVOKE CVAFRS RESUME ROUTINE                  
         B     TSTREXIT           BRANCH TO EXIT RTN                            
TSTR0010 DS    0H                 PRINT RC04-OTHER LOGICAL ERROR/CVSTAT         
         MVC   PDETLINE(133),RC04MSG MOVE RC04 MSG TO PRINT LINE                
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
TSTREXIT DS    0H                 EXIT FROM TSTRCRTN                            
         L     R14,TSTRSAVE       LOAD C(TSTRSAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                          FMTCTRTN                                   *         
*      - COUNT THE NUMBER OF FMT1 AND FMT3 DSCBS FOR THE REQUEST      *         
***********************************************************************         
*                                                                               
FMTCTRTN DS    0H                 COUNT DSCBS RETURNED ROUTINE                  
         ST    R14,FMTCSAVE       STORE C(R14) INTO SAVE AREA                   
         SLR   R6,R6              ZERO OUT R6                                   
         SLR   R7,R7              ZERO OUT R7                                   
         CLI   DSNNBR,X'01'       IF DSNNBR FLAG = 1                            
         BE    FMTC0010              BRANCH TO LOAD ADDR OF FCL                 
         LA    R4,FCLDEF2         ELSE LOAD R4 WITH ADDR OF FCL2                
         B     FMTC0020                BRANCH TO SET USING                      
FMTC0010 DS    0H                                                               
         LA    R4,FCLDEF          LOAD R4 WITH ADDR OF FCL                      
FMTC0020 DS    0H                 CONTINUE - SET USING                          
         USING FCLMAP,R4          ESTABLISH ADDRESSABILITY TO FCL               
         SLR   R5,R5              ZERO OUT R5                                   
         ICM   R5,B'0011',FCLDSCBR  DETERMINE IF ANY DSCBS RETURNED             
         BZ    FMTC0060             NO - GO AND PRINT APPROPRIATE MSG           
         LA    R4,DSCBDEF         LOAD R4 WITH ADDR OF DSCB MAP                 
         USING DSCBMAP,R4         ESTABLISH ADDRESSABILITY TO DSCB              
FMTC0030 DS    0H                 COUNT DSCBS BY TYPE RETURNED                  
         CLI DS1FMTID,X'F1'       IF FORMAT1                                    
         BE    FMTC0040            BRANCH TO FMTC0040                           
         CLI DS1FMTID,X'F3'       ELSE IF NOT FORMAT3                           
         BNE   FMTC0050                 BRANCH TO FMTC0050                      
         LA    R7,1(R7)           ADD 1 TO FORMAT3 COUNT                        
         B     FMTC0050           BRANCH TO FMTC0050                            
FMTC0040 DS    0H                 FMTC0040 - FORMAT1 INCREMENT                  
         LA    R6,1(R6)           ADD 1 TO FORMAT1 COUNT                        
FMTC0050 DS    0H                 FMTC0050 - PROCESS THROUGH DSCBS              
         LA    R4,DSCBSIZ(R4)     ADD DSCBSIZ TO R4                             
         BCT   R5,FMTC0030        SUBTRACT 1 FROM DSCB COUNT AND CONT           
         ST    R6,RETF1           STORE #FMT1'S INTO RETF1                      
         ST    R7,RETF3           STORE #FMT3'S INTO RETF3                      
         DROP  R4                 DROP R4 USING                                 
         B     FMTCEXIT           BRANCH AROUND FMTC0060                        
FMTC0060 DS    0H                 PRINT MSG - NO DSCB'S RETURNED                
         MVC   PDETLINE(133),NODSCBM   MOVE MSG TO PRINT LINE                   
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         SLR   R6,R6              ZERO OUT R6                                   
         ST    R6,RETF1           STORE ZERO INTO RETF1                         
         SLR   R7,R7              ZERO OUT R7                                   
         ST    R7,RETF3           STORE ZERO INTO RETF3                         
FMTCEXIT DS    0H                 EXIT FROM FMTCTRTN                            
         L     R14,FMTCSAVE       LOAD C(FMTCSAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                          FMTOPRTN                                   *         
*     - FORMAT THE DSCB COUNTS AND WRITE TO THE OUTPUT DATASET        *         
***********************************************************************         
*                                                                               
FMTOPRTN DS    0H                 FORMAT OUTPUT ROUTINE                         
         ST    R14,FMTOSAVE       STORE C(R14) INTO SAVE AREA                   
         MVC   MSG(29),DSCBMSG1   MOVE MSG TO FORMAT LINE                       
         L     R6,RETF1           LOAD R6 WITH NBR OF FMT1'S RETURNED           
         CVD   R6,WF1             CONVERT TO DEC FOR PRINTING                   
         UNPK  WFMTREC+29(7),WF1  UNPACK TO FORMAT LINE                         
         OI    WFMTREC+35,X'F0'   SET APPROPRIATE BITS                          
         MVC   PDETLINE(133),WFMTREC   MOVE RECORD TO OUTPUT LINE               
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         MVC   MSG(29),DSCBMSG2   MOVE MSG TO FORMAT LINE                       
         L     R7,RETF3           LOAD R7 WITH NBR OF FMT3'S RETURNED           
         CVD   R7,WF3             CONVERT TO DEC FOR PRINTING                   
         UNPK  WFMTREC+29(7),WF3  UNPACK TO FORMAT LINE                         
         OI    WFMTREC+35,X'F0'   SET APPROPRIATE BITS                          
         MVC   PDETLINE(133),WFMTREC   MOVE RECORD TO OUTPUT LINE               
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
FMTOEXIT DS    0H                 EXIT FROM FMTOPRTN                            
         L     R14,FMTOSAVE       LOAD C(FMTOSAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                          BUFLRTN                                    *         
*             - INITIALIZE BUFFER LIST HEADER (BFLH)                  *         
*             - INITIALIZE BUFFER LIST ELEMENTS (BFLE)                *         
***********************************************************************         
*                                                                               
BUFLRTN  DS    0H                 BUFFER LIST INITIALIZATION ROUTINE            
         ST    R14,BUFLSAVE       STORE C(R14) INTO SAVE AREA                   
         XC    BFLHDEF(BFLSIZE),BFLHDEF   CLEAR BUFR LIST AREA                  
         LA    R1,BFLHDEF         R1 - BUFFER LIST HEADER                       
         USING BFLMAP,R1          ESTABLISH ADDRESSABILITY                      
         MVI   BFLHNOE,BUFNBR     SET NUMBER OF BUFFER ELEMENTS                 
         OI    BFLHFL,BFLHDSCB    IDENTIFY AS DSCB BUFR ELEMENT LIST            
         LA    R2,BFLHDEF+BFLHLN  R2 - FIRST BUFFER LIST ELEMENT                
         USING BFLE,R2            ESTABLISH ADDRESSABILITY                      
         LA    R3,DSCBDEF         R3 - FIRST DSCB BUFFER                        
         LA    R4,BUFNBR          R4 = NUMBER OF ELEMENTS AND BUFRS             
BFL0010  OI    BFLEFL,BFLECHR     REQUEST CCHHR ON RETURN                       
         MVI   BFLELTH,DSCBSIZ    SET BUFR LNGTH TO FULL DSCB SIZE              
         ST    R3,BFLEBUF         SET ADDR(DSCB BUFFER)                         
         LA    R2,BFLELN(R2)      R2 - NEXT BUFFER LIST ELEMENT                 
         LA    R3,DSCBSIZ(R3)     R3 - NEXT DSCB BUFFER                         
         BCT   R4,BFL0010         LOOP THROUGH ALL ELEMENTS                     
         DROP  R1,R2              DROP TEMP USINGS                              
BUFLEXIT DS    0H                 EXIT FROM BUFLRTN                             
         L     R14,BUFLSAVE       LOAD C(BUFLSAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                            FCL1RTN                                  *         
*      - INITIALIZE FILTER CRITERIA LIST (FCL) HEADER AND ELEMENT     *         
*      - INITIALIZE A FCL TO READ FOR TWO SPECIFIC SEQ DATASETS       *         
***********************************************************************         
*                                                                               
FCL1RTN  DS    0H                 FCL INITIALIZATION ROUTINE                    
         ST    R14,FCL1SAVE       STORE C(R14) INTO SAVE AREA                   
         XC    FCLDEF2(FCLSIZE2),FCLDEF2  CLEAR FCL AREA                        
         LA    R1,FCLDEF2         R1 - FCL HEADER                               
         USING FCLMAP,R1          ESTABLISH ADDRESSABILITY                      
         LA    R2,FCLHDEND        R2 - FIRST FCL ELEMENT                        
         USING FCLDSN,R2          ESTABLISH ADDRESSABILITY                      
         MVC   FCLID,CFCLID       SET THE EYECATCHER 'FCL '                     
         MVC   FCLCOUNT,=H'2'     SET NUMBER OF FCL ELEMENTS                    
         MVI   FCL1FLAG,X'80'     SET FLAG FOR FULLY QUAL DSN                   
         MVI   FCLDSNLG,X'0F'     SET LENGTH FOR DSN1 (15)                      
         LA    R3,DS01            DSN=CVAFFLT1.DATA01                           
*                                 SEQ DS - 5 EXTENTS                            
*                                 1 FORMAT1 AND 1 FORMAT3                       
         ST    R3,FCLDSNA         SET ADDR OF DSN                               
         LA    R2,FCLDSNEL(R2)    LOAD R2 WITH ADDR OF 2ND FCL ELEMENT          
         MVI   FCLDSNLG,X'0F'     SET LENGTH FOR DSN2 (15)                      
         LA    R3,DS02            DSN=CVAFFLT1.DATA02                           
*                                 SEQ DS - 5 EXTENTS                            
*                                 1 FORMAT1 AND 1 FORMAT3                       
         ST    R3,FCLDSNA         SET ADDR OF DSN                               
         DROP  R1,R2              DROP TEMP USING                               
FC1EXIT  DS    0H                 EXIT FROM FCLRTN                              
         L     R14,FCL1SAVE       LOAD C(FCL1SAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                            FCL2RTN                                  *         
*     - INITIALIZE FILTER CRITERIA LIST (FCL) HEADER AND ELEMENT      *         
*     - INITIALIZE A FCL TO READ FOR ONE SPECIFIC PDSE DATASET        *         
***********************************************************************         
*                                                                               
FCL2RTN  DS    0H                 FCL INITIALIZATION ROUTINE                    
         ST    R14,FCL2SAVE       STORE C(R14) INTO SAVE AREA                   
         XC    FCLDEF(FCLSIZE),FCLDEF  CLEAR FCL AREA                           
         LA    R1,FCLDEF          R1 - FCL HEADER                               
         USING FCLMAP,R1          ESTABLISH ADDRESSABILITY                      
         LA    R2,FCLHDEND        R2 - FIRST (ONLY) FCL ELEMENT                 
         USING FCLDSN,R2          ESTABLISH ADDRESSABILITY                      
         MVC   FCLID,CFCLID       SET THE EYECATCHER 'FCL '                     
         MVC   FCLCOUNT,=H'1'     SET NUMBER OF FCL ELEMENTS                    
         MVI   FCL1FLAG,X'80'     SET FLAG FOR FULLY QUAL DSN                   
         MVI   FCLDSNLG,X'0F'     SET LENGTH FOR DSN (15)                       
         LA    R3,DS03            DSN=CVAFFLT1.PDSE01                           
*                                 PDSE DS - 122 EXTENTS                         
*                                 1 FORMAT1 AND 10 FORMAT3'S                    
         ST    R3,FCLDSNA         SET ADDR OF DSN                               
         DROP  R1,R2              DROP TEMP USING                               
FC2EXIT  DS    0H                 EXIT FROM FCLRTN                              
         L     R14,FCL2SAVE       LOAD C(FCL2SAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                            FCL3RTN                                  *         
*     - INITIALIZE FILTER CRITERIA LIST (FCL) HEADER AND ELEMENT      *         
*     - INITIALIZE A FCL TO READ FOR ONE SPECIFIC SEQ DATASET         *         
***********************************************************************         
*                                                                               
FCL3RTN  DS    0H                 FCL INITIALIZATION ROUTINE                    
         ST    R14,FCL3SAVE       STORE C(R14) INTO SAVE AREA                   
         XC    FCLDEF(FCLSIZE),FCLDEF  CLEAR FCL AREA                           
         LA    R1,FCLDEF          R1 - FCL HEADER                               
         USING FCLMAP,R1          ESTABLISH ADDRESSABILITY                      
         LA    R2,FCLHDEND        R2 - FIRST (ONLY) FCL ELEMENT                 
         USING FCLDSN,R2          ESTABLISH ADDRESSABILITY                      
         MVC   FCLID,CFCLID       SET THE EYECATCHER 'FCL '                     
         MVC   FCLCOUNT,=H'1'     SET NUMBER OF FCL ELEMENTS                    
         MVI   FCL1FLAG,X'80'     SET FLAG FOR FULLY QUAL DSN                   
         MVI   FCLDSNLG,X'0F'     SET LENGTH FOR DSN (15)                       
         LA    R3,DS01            DSN=CVAFFLT1.DATA01                           
*                                 SEQ DS - 5 EXTENTS                            
*                                 1 FORMAT1 AND 1 FORMAT3                       
         ST    R3,FCLDSNA         SET ADDR OF DSN                               
         DROP  R1,R2              DROP TEMP USING                               
FC3EXIT  DS    0H                 EXIT FROM FCLRTN                              
         L     R14,FCL3SAVE       LOAD C(FCL3SAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                            FCL4RTN                                  *         
*     - INITIALIZE FILTER CRITERIA LIST (FCL) HEADER AND ELEMENT      *         
*     - INITIALIZE A FCL TO READ THE DSCBS ON THE ENTIRE VOLUME       *         
***********************************************************************         
*                                                                               
FCL4RTN  DS    0H                 FCL INITIALIZATION ROUTINE                    
         ST    R14,FCL4SAVE       STORE C(R14) INTO SAVE AREA                   
         XC    FCLDEF(FCLSIZE),FCLDEF  CLEAR FCL AREA                           
         LA    R1,FCLDEF          R1 - FCL HEADER                               
         USING FCLMAP,R1          ESTABLISH ADDRESSABILITY                      
         LA    R2,FCLHDEND        R2 - FIRST (ONLY) FCL ELEMENT                 
         USING FCLDSN,R2          ESTABLISH ADDRESSABILITY                      
         MVC   FCLID,CFCLID       SET THE EYECATCHER 'FCL '                     
         MVC   FCLCOUNT,=H'1'     SET NUMBER OF FCL ELEMENTS                    
         MVI   FCL1FLAG,X'00'     SET FLAG FOR GENERIC DSN                      
         MVI   FCLDSNLG,X'02'     SET LENGTH FOR DSN - ** (02)                  
         LA    R3,=C'**'          ALL DATASETS ON THE VOLUME                    
         ST    R3,FCLDSNA         SET ADDR OF DSN                               
         DROP  R1,R2              DROP TEMP USING                               
FC4EXIT  DS    0H                 EXIT FROM FCLRTN                              
         L     R14,FCL4SAVE       LOAD C(FCL4SAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                           CVAFRD1                                   *         
*     - INVOKE THE CFAFFILT MACRO AND READ THE DSCBS (1 DSN)          *         
***********************************************************************         
*                                                                               
CVAFRD1  DS    0H                 CVAFFILT - READ ROUTINE (2 DSN)               
         ST    R14,CVR1SAVE       STORE C(R14) INTO SAVE AREA                   
         SLR   R2,R2              ZERO OUT R2                                   
         LA    R2,CVPLDEF         LOAD R2 WITH ADDR OF CVPL                     
         L     R3,UCBADD          LOAD R3 WITH UCB ADDRESS                      
         CVAFFILT ACCESS=READ,UCB=(R3),FCL=FCLDEF,BUFLIST=BFLHDEF,     X        
               MF=(E,(R2))                                                      
         ST    R15,RETCODE        STORE RC FOR LATER INTERROGATION              
CVR1EXIT DS    0H                 EXIT FROM CVAFRD1                             
         L     R14,CVR1SAVE       LOAD C(CVR1SAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                           CVAFRD2                                   *         
*     - INVOKE THE CFAFFILT MACRO AND READ THE DSCBS (2 DSN'S)        *         
***********************************************************************         
*                                                                               
CVAFRD2  DS    0H                 CVAFFILT - READ ROUTINE (2 DSN'S)             
         ST    R14,CVR2SAVE       STORE C(R14) INTO SAVE AREA                   
         SLR   R2,R2              ZERO OUT R2                                   
         LA    R2,CVPLDEF         LOAD R2 WITH ADDR OF CVPL                     
         L     R3,UCBADD          LOAD R3 WITH UCB ADDRESS                      
         LA    R4,FCLDEF2         LOAD R4 WITH ADDR OF FCLDEF2                  
         LA    R5,BFLHDEF         LOAD R5 WITH ADDR OF FCLDEF2                  
         CVAFFILT ACCESS=READ,UCB=(R3),FCL=(R4),BUFLIST=(R5),          X        
               MF=(E,(R2))                                                      
         ST    R15,RETCODE        STORE RC FOR LATER INTERROGATION              
CVR2EXIT DS    0H                 EXIT FROM CVAFRD2                             
         L     R14,CVR2SAVE       LOAD C(CVR2SAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                           CVAFRDA                                   *         
*     - INVOKE THE CFAFFILT MACRO AND READ ALL THE DSCBS              *         
***********************************************************************         
*                                                                               
CVAFRDA  DS    0H                 CVAFFILT - READ ALL DSCBS ROUTINE             
         ST    R14,CVRASAVE       STORE C(R14) INTO SAVE AREA                   
         CVAFFILT ACCESS=READ,UCB=UCBADD,FCL=FCLDEF,BUFLIST=BFLHDEF,   X        
               FLTAREA=KEEP,IOAREA=KEEP,                               X        
               MF=(E,CVPLDEFA)                                                  
         ST    R15,RETCODE        STORE RC FOR LATER INTERROGATION              
CVRAEXIT DS    0H                 EXIT FROM CVAFRDA                             
         L     R14,CVRASAVE       LOAD C(CVRASAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                           CVAFRS                                    *         
*           - INVOKE THE CFAFFILT MACRO USING RESUME                  *         
***********************************************************************         
*                                                                               
CVAFRS   DS    0H                 CVAFFILT - RESUME ROUTINE                     
         ST    R14,CVRSSAVE       STORE C(R14) INTO SAVE AREA                   
CVRS0000 DS    0H                 NOW CHECK RC AND STAT CODES                   
         CH    R15,RCODE00        IS THE RC FROM RESUME 0?                      
         BE    CVRS0050            YES BRANCH TO CVRS0050                       
         CH    R15,RCODE04        IS THE RC FROM RESUME 4?                      
         BE    CVRS0020            YES BRANCH TO CVRS0020                       
CVRS0010 DS    0H                 ELSE PRINT MSG (RC IS 8,12,OR 16)             
         MVC   PDETLINE(133),RCERMSG  MOVE MSG TO LINE                          
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         B     CVRSEXIT           BRANCH TO EXIT ROUTINE                        
CVRS0020 DS    0H                 PROCESS FOR RC04 - CHECK FOR STAT064          
         CLI   CVSTAT,STAT064     IS THE CVSTAT CODE 064(RESUME NEEDED)         
         BNE   CVRS0060            NO - BRANCH TO CVRS0060                      
         CLI   RESFLG,X'01'       IS RESUME FLAG ON                             
         BE    CVRS0030            YES - BRANCH TO CVRS0030                     
         MVC   PDETLINE(133),ST64MSG1 MOVE MSG TO LINE                          
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         MVC   PDETLINE(133),ST64MSG2 MOVE MSG TO LINE                          
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         BAL   R14,FMTCTRTN       INVOKE FORMAT COUNT ROUTINE                   
         BAL   R14,FMTOPRTN       INVOKE FORMAT OUTPUT MSG ROUTINE              
         MVI   RESFLG,X'01'       RESUME NEEDED - SET FLAG ON                   
         B     CVRS0040           BRANCH TO CVRS0040                            
CVRS0030 DS    0H                 RESUME PROCESSING                             
         MVC   PDETLINE(133),ST64MSG3 MOVE MSG TO LINE                          
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         BAL   R14,FMTCTRTN       INVOKE FORMAT COUNT ROUTINE                   
         BAL   R14,FMTOPRTN       INVOKE FORMAT OUTPUT MSG ROUTINE              
CVRS0040 DS    0H                 RESUME PROCESSING                             
         CVAFFILT ACCESS=RESUME,MF=(E,CVPLDEFA)                                 
         B     CVRS0000           BRANCH TO CHECK RETURN CODE AGAIN             
CVRS0050 DS    0H                 RC IS 0 NO LONGER NEED RESUME                 
         MVC   PDETLINE(133),ST64MSG3 MOVE MSG TO LINE                          
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         BAL   R14,FMTCTRTN       INVOKE FORMAT COUNT ROUTINE                   
         BAL   R14,FMTOPRTN       INVOKE FORMAT OUTPUT MSG ROUTINE              
         MVC   PDETLINE(133),ST64MSG4 MOVE MSG TO LINE                          
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
*                                                                               
*                                 RELEASE WORK AREAS                            
*                                                                               
         CVAFFILT ACCESS=RLSE,FLTAREA=NOKEEP,IOAREA=NOKEEP,            X        
               MF=(E,CVPLDEFA)                                                  
         B     CVRSEXIT           BRANCH TO EXIT ROUTINE                        
CVRS0060 DS    0H                 RC IS 4 BUT CVSTAT IS NOT 064                 
         MVC   PDETLINE(133),RC04MSG  MOVE MSG TO LINE                          
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
CVRSEXIT DS    0H                 EXIT FROM CVAFRS                              
         L     R14,CVRSSAVE       LOAD C(CVRSSAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                           CVAFRL                                    *         
*     - INVOKE THE CFAFFILT MACRO AND RELEASE WORK AREAS              *         
***********************************************************************         
*                                                                               
CVAFRL   DS   0H                  CVAFFILT - RLSE ROUTINE                       
         ST   R14,CVRLSAVE        STORE C(R14) INTO SAVE AREA                   
         CVAFFILT ACCESS=RLSE,FCL=0,BUFLIST=0,FLTAREA=NOKEEP,          X        
               MF=(E,CVPLDEF)                                                   
         CH    R15,RCODE00        IF RC = 0 THEN                                
         BE    CVRLEXIT              BRANCH TO EXIT                             
         MVC   PDETLINE(133),RLSEMSG ELSE MOVE MSG TO LINE                      
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
CVRLEXIT DS    0H                 EXIT FROM CVAFRL                              
         L     R14,CVRLSAVE       LOAD C(CVRLSAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                       WORKING  STORAGE                              *         
***********************************************************************         
*                                                                               
         DS    0D                                                               
         DC    CL36'CVAFFEXP-WORKING STORAGE BEGINS HERE'                       
*                                                                               
***********************************************************************         
*                          EQUATES                                    *         
***********************************************************************         
*                                                                               
EABN100  EQU    100           USER ABEND CODE 100 - VTOC OPEN ERROR             
EABN101  EQU    101           USER ABEND CODE 101 - OUTDD OPEN ERROR            
EABN102  EQU    102           USER ABEND CODE 102 - OUTDD CLOSE ERROR           
BUFNBR   EQU    11            11 BUFFERS TO BE USED                             
R0       EQU    0                                                               
R1       EQU    1                                                               
RDEB     EQU    1             REG1 FOR DEB ADDRESS                              
R2       EQU    2                                                               
RUCB     EQU    2             REG2 FOR UCB ADDRESS                              
R3       EQU    3                                                               
R4       EQU    4                                                               
R5       EQU    5                                                               
R6       EQU    6                                                               
R7       EQU    7                                                               
R8       EQU    8                                                               
R9       EQU    9                                                               
R11      EQU   11                                                               
R12      EQU   12                                                               
R13      EQU   13                                                               
R14      EQU   14                                                               
R15      EQU   15                                                               
*                                                                               
***********************************************************************         
*                         SAVE AREAS                                  *         
***********************************************************************         
*                                                                               
SAVE     DC    18F'0'             MAIN PROGRAM SAVE AREA                        
OPENSAVE DC    F'0'               OPEN FILES ROUTINE SAVE AREA                  
CLOSSAVE DC    F'0'               CLOSE FILES ROUTINE SAVE AREA                 
ABENSAVE DC    F'0'               ABEND ROUTINE SAVE AREA                       
IDVLSAVE DC    F'0'               IDNETIFY VOLUME ROUTINE SAVE AREA             
BUFLSAVE DC    F'0'               INITIALIZE BUFFER ROUTINE SAVE AREA           
FCL1SAVE DC    F'0'               INITIALIZE FCL1 ROUTINE SAVE AREA             
FCL2SAVE DC    F'0'               INITIALIZE FCL2 ROUTINE SAVE AREA             
FCL3SAVE DC    F'0'               INITIALIZE FCL3 ROUTINE SAVE AREA             
FCL4SAVE DC    F'0'               INITIALIZE FCL4 ROUTINE SAVE AREA             
TSTRSAVE DC    F'0'               TEST RETURN CODE ROUTINE SAVE AREA            
CVR1SAVE DC    F'0'               CVAFFILT READ 1 DSN ROUTINE SAVE AREA         
CVR2SAVE DC    F'0'               CVAFFILT READ 2 DSN ROUTINE SAVE AREA         
CVRASAVE DC    F'0'               CVAFFILT READ ALL ROUTINE SAVE AREA           
CVRLSAVE DC    F'0'               CVAFFILT RLSE ROUTINE SAVE AREA               
CVRSSAVE DC    F'0'               CVAFFILT RESUME ROUTINE SAVE AREA             
FMTCSAVE DC    F'0'               FORMAT DSCB COUNT ROUTINE SAVE AREA           
FMTOSAVE DC    F'0'               FORMAT OUTPUT ROUTINE SAVE AREA               
*                                                                               
***********************************************************************         
*                         CONSTANTS                                   *         
***********************************************************************         
*                                                                               
RETCODE  DC    F'999'                                                           
RCODE00  DC    H'0'               RETURN CODE 0 - HALFWORD                      
RCODE04  DC    H'4'               RETURN CODE 4 - HALFWORD                      
DSNNBR   DC    X'FF'              INDICATE NBR OF DSNS TO PROCESS               
RESFLG   DC    X'00'              RESUME FLAG - OFF                             
BLNKLNE  DC    CL133' '                                                         
STRTMSG  DC    CL133' CVAFFEXP START OF OUTPUT MESSAGES               '         
ENDMSG   DC    CL133' CVAFFEXP END OF OUTPUT MESSAGES                 '         
ST64MSG1 DC    CL133' RC04 VERIFIED - CVSTAT 064  RESUME IS NECESSARY '         
ST64MSG2 DS    0CL133                                                           
         DC    CL49' CVAFFILT (INITIAL) RETURNED THE FOLLOWING DSCBS '          
         DC    CL84'FOR THE VOLUME:                                  '          
ST64MSG3 DS    0CL133                                                           
         DC    CL49' CVAFFILT (RESUME)  RETURNED THE FOLLOWING DSCBS '          
         DC    CL84'FOR THE VOLUME:                                  '          
ST64MSG4 DS    0CL133                                                           
         DC    CL48' CVAFFILT RESUME OPERATION COMPLETE - ALL DSCBS '           
         DC    CL85'RETURNED'                                                   
DSCBMSGA DS    0CL133                                                           
         DC    CL48' CVAFFILT RETURNED THE FOLLOWING DSCBS FOR DSN:'            
DS       DC    CL44' '                                                          
         DC    CL41' '                                                          
DSCBMSGB DS    0CL133                                                           
         DC    CL48'                                   AND FOR DSN:'            
DS2      DC    CL44' '                                                          
         DC    CL41' '                                                          
DSCBMSGC DS    0CL133                                                           
         DC    CL48' CVAFFILT LOGICAL ERROR STATUS RETURNED  - DSN:'            
DS3      DC    CL44' '                                                          
         DC    CL41' '                                                          
NODSCBM  DC    CL133' NO DSCBS RETURNED FROM CVAFFILT                 '         
RC00MSG  DC    CL133' RC00 VERIFIED - THE REQUEST WAS SUCCESSFUL      '         
RC04MSG  DC    CL133' RC04 VERIFIED - LOGICAL ERROR STATUS IN CVSTAT  '         
RCERMSG  DC    CL133' RC08, RC12, OR RC16 RETURNED FROM CVAFFILT      '         
RLSEMSG  DC    CL133' NON ZERO RETURN CODE BACK FROM RLSE             '         
DSCBMSG1 DC    CL29'  NUMBER OF FORMAT 1 DSCBS - '                              
DSCBMSG2 DC    CL29'  NUMBER OF FORMAT 3 DSCBS - '                              
DS01     DC    CL44'CVAFFLT1.DATA01'                                            
DS02     DC    CL44'CVAFFLT1.DATA02'                                            
DS03     DC    CL44'CVAFFLT1.PDSE01'                                            
CFCLID   DC    CL4'FCL '                                                        
***********************************************************************         
*                         WORK AREAS                                  *         
***********************************************************************         
*                                                                               
WF1      DS    D                  DOUBLE WORD - FORMAT 1 WORK AREA              
WF3      DS    D                  DOUBLE WORD - FORMAT 3 WORK AREA              
DEBADD   DC    F'0'               DEB ADDRESS SAVE AREA                         
UCBADD   DC    F'0'               UCB ADDRESS SAVE AREA                         
RETF1    DC    F'0'               COUNT OF FMT 1 DSCBS RET BY CVAFFILT          
RETF3    DC    F'0'               COUNT OF FMT 3 DSCBS RET BY CVAFFILT          
WFMTREC  DS    0CL133             WORK FORMAT RECORD FOR OUTPUT                 
MSG      DC    CL29' '            GENERAL MESSAGE                               
FMTCNT   DC    CL08' '            FORMAT COUNT                                  
TOEOL    DC    CL96' '            SPACES TO END OF LINE                         
*                                                                               
***********************************************************************         
*                         PRINT LINES                                 *         
***********************************************************************         
*                                                                               
         DS    0D                 TAKE CARE OF SLACK BYTES                      
PDETLINE DS    0CL133             DETAIL LINE                                   
         DC    CL133' '                                                         
EPDETLEN EQU   *-PDETLINE         LENGTH OF DETAIL LINE                         
*                                                                               
***********************************************************************         
*                    DCB - OUTPUT FILE (OUTFILE)                      *         
***********************************************************************         
*                                                                               
OUTFILE  DCB   DDNAME=OUTDD,                                           X        
               DSORG=PS,                                               X        
               RECFM=FBA,                                              X        
               LRECL=133,                                              X        
               MACRF=PM                                                         
*                                                                               
***********************************************************************         
*                     VTOC DCB AREA                                   *         
***********************************************************************         
*                                                                               
VTOCDCB  DCB   DDNAME=CVAFDD,MACRF=E,EXLST=XLST1,DSORG=PS                       
XLST1    DC    X'87'                                                            
         DC    AL3(JFCB1)                                                       
JFCB1    DS    0CL176                                                           
TESTNAME DS    CL44                                                             
         DS    CL8                                                              
         DS    BL1                                                              
         DS    CL123                                                            
*                                                                               
***********************************************************************         
*                     MAPPPING MACROS                                 *         
***********************************************************************         
*                                                                               
CVPLMAP  ICVAFPL CVPLFSA=YES      CVAF PARMLIST                                 
FCLMAP   ICVFCL                   FILTER CRITERIA LIST                          
BFLMAP   ICVAFBFL                 BUFFER LIST                                   
         PUSH  PRINT                                                            
         PRINT NOGEN                                                            
DSCBMAP  DSECT                    DSCB DSECT                                    
         IECSDSL1 (1)             USE FMT 1 DSCB MAPPING TO GET BUFFER          
DSCBSIZ  EQU   *-IECSDSL1         LENGTH OF FULL DSCB                           
         DCBD DSORG=XE,DEVD=DA    MAP OF DCB                                    
         IEZDEB                   MAP OF DEB                                    
         POP   PRINT                                                            
*                                                                               
*                                                                               
CVAFFEXP CSECT ,                  CONT OF CSECT AFTER MAPPING MACROS            
*                                                                               
*                                                                               
***********************************************************************         
*                       CVAF PARAMETER LISTS                          *         
***********************************************************************         
*                                                                               
CVPLDEF  CVAFFILT MF=L,BRANCH=NO,FLTAREA=KEEP                                   
CVPLDEFA CVAFFILT BRANCH=(YES,SUP),MF=L                                         
*                                                                               
***********************************************************************         
*        SPACE ALLOCATION FOR CVPL, FCL, BFL, AND DSCB BUFFERS        *         
***********************************************************************         
*                                                                               
FCLDEF   DS    (FCLHDLEN+FCLDSNEL)X FCL HEADER AND ONE FCL ELEMENT              
FCLSIZE  EQU   *-FCLDEF                                                         
*                                 DEFINE A CVAF BUFFER LIST WITH                
FCLDEF2  DS    (FCLHDLEN+2*FCLDSNEL)X FCL HEADER AND TWO FCL ELEMENTS           
FCLSIZE2 EQU   *-FCLDEF2                                                        
*                                 DEFINE A CVAF BUFFER LIST WITH                
*                                 N BUFFER LIST ELEMENTS                        
BFLHDEF  DS    (BFLHLN)X          BUFFER LIST HEADER                            
BFLEDEF  DS    (BUFNBR*BFLELN)X   N BUFFER LIST ELEMENTS                        
BFLSIZE  EQU   *-BFLHDEF                                                        
*                                 DEFINE N FULL DSCB BUFFERS                    
DSCBDEF  DS    (BUFNBR*DSCBSIZ)X                                                
*                                                                               
         END   CVAFFEXP           END OF CVAFFEXP                               

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014