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


Example of Using the CVAFDIR macro to read multiple DSCBs

z/OS DFSMSdfp Advanced Services
SC23-6861-01

This example uses the CVAFDIR macro to read multiple DSCBs for a VSAM data set that has 123 extents using the MULTIPLEDSCBS=YES parameter. Refer to the documentation within the sample source for program logic and expected output.

The following is the sample JCL used to execute the sample source module below.
//*                                                                     
//**********************************                                            
//* JCL TO EXECUTE CVDIR027 MODULE *                                            
//**********************************                                            
//*                                                                             
//STEP001 EXEC PGM=CVDIR027                                                     
//STEPLIB   DD DISP=SHR,DSN=YOUR.TEST.LOAD                                      
//SYSPRINT  DD SYSOUT=*                                                         
//CVAFDD    DD DISP=SHR,UNIT=3390,VOL=SER=1P9503  /* VSAM01 VOLSER  */          
//OUTDD     DD SYSOUT=*                           /* OUTPUT DATASET */          
//*                                                                             
The following is the CVAFDIR sample source to read multiple DSCBs.
CVDIR027 CSECT                                                                  
CVDIR027 AMODE 31                                                               
CVDIR027 RMODE 24                                                               
*                                                                               
***********************************************************************         
*                                                                     *         
*    CVDIR027 - MODULE THAT ISSUES THE CVAFDIR MACRO WHICH RETURNS    *         
*               THE DSCBS FOR A GIVEN DATASET USING THE KEYWORDS      *         
*               MULTIPLEDSCBS=YES AND EADSCB=OK.                      *         
*                                                                     *         
*               THIS MODULE USES A PASSED DSN (SEARCH) AND ISSUES THE *         
*               CVAFDIR MACRO TO PERFORM A READ OF ALL DSCBS FOR THE  *         
*               DATASET.  THE DATASET PROCESSED IS VSAM AND HAS 123   *         
*               EXTENTS.  THE DSN IS CVAFDIR1.VSAM01.DATA.            *         
*                                                                     *         
*               THE CVAFDIR MACRO CALL WILL USE THE FOLLOWING:        *         
*               EADSCB=OK CODED                                       *         
*               MULTIPLEDSCBS=YES CODED                               *         
*                                                                     *         
*                                                                     *         
*               THIS MODULE HAS BEEN WRITTEN TO RUN AT THE Z/OS 1.10  *         
*               LEVEL AND WILL CREATE A SLIGHTLY DIFFERENT OUTPUT     *         
*               REPORT DEPENDENT UPON DEVICE TYPE (EAV OR NON EAV).   *         
*               THE NUMBER OF BUFFER LIST ENTRIES NEEDED WILL BE 11   *         
*               FOR A NON EAV DEVICE AND THE NUMBER OF BUFFER LIST    *         
*               ENTRIES NEEDED WILL BE 12 FOR AN EAV DEVICE TO        *         
*               ACCOUNT FOR THE FORMAT 9 DSCB.                        *         
*                                                                     *         
*                                                                     *         
*               THIS MODULE WILL CREATE AN OUTPUT REPORT DIRECTED TO  *         
*               THE OUTDD DD THAT SHOULD LOOK LIKE THE FOLLOWING:     *         
*                                                                     *         
*---------------------------------------------------------------------*         
*                                                                     *         
*                        NON EAV VOLUME                               *         
*                        --------------                               *         
*                                                                     *         
*             CVDIR027 START OF OUTPUT MESSAGES                       *         
*                                                                     *         
*              PROCESSING DSN: CVAFDIR1.VSAM01.DATA                   *         
*              CVAFDIR  CALL: EADSCB=OK AND MULTIPLEDSCBS=YES CODED   *         
*              CV4EADOK BIT SET / EADSCB=OK                           *         
*              CV4MULTD BIT SET / MULTIPLEDSCBS=YES                   *         
*              RC00 VERIFIED - THE REQUEST WAS SUCCESSFUL             *         
*               X"00"    DEC"000"    00 - CVSTAT CODE VERIFIED        *         
*              BUFFER LIST ENTRIES PROVIDED: 12                       *         
*              BUFFER LIST ENTRIES NEEDED  : 11                       *         
*                                                                     *         
*             CVDIR027 END OF OUTPUT MESSAGES                         *         
*                                                                     *         
*                                                                     *         
*                                                                     *         
*                           EAV VOLUME                                *         
*                           ----------                                *         
*                                                                     *         
*             CVDIR027 START OF OUTPUT MESSAGES                       *         
*                                                                     *         
*              PROCESSING DSN: CVAFDIR1.VSAM01.DATA                   *         
*              CVAFDIR  CALL: EADSCB=OK AND MULTIPLEDSCBS=YES CODED   *         
*              CV4EADOK BIT SET / EADSCB=OK                           *         
*              CV4MULTD BIT SET / MULTIPLEDSCBS=YES                   *         
*              RC00 VERIFIED - THE REQUEST WAS SUCCESSFUL             *         
*               X"00"    DEC"000"    00 - CVSTAT CODE VERIFIED        *         
*              BUFFER LIST ENTRIES PROVIDED: 12                       *         
*              BUFFER LIST ENTRIES NEEDED  : 12                       *         
*                                                                     *         
*             CVDIR027 END OF OUTPUT MESSAGES                         *         
*                                                                     *         
*                                                                     *         
*                                                                     *         
***********************************************************************         
*                                                                     *         
*    CVDIR027 - LOGIC NOTES                                           *         
*                                                                     *         
*    THIS MODULE WILL PERFORM THE FOLLOWING:                          *         
*                                                                     *         
*    INITIALIZATION                                                   *         
*    - OBTAIN THE NECESSARY INFORMATION FROM THE DASD VOLUME          *         
*    - OPEN AN OUTPUT FILE AND WRITE THE NECESSARY OUTPUT MESSAGES    *         
*                                                                     *         
*    MAINLINE                                                         *         
*    - INVOKE SETU1RTN TO SETUP BUFFER LIST FOR 12 ENTRIES            *         
*    - INVOKE VSAM1RTN TO PROCESS VSAM01 DSN                          *         
*      - INVOKE READRTN - EADSCB=OK AND MULTIPLEDSCBS=YES CODED       *         
*        - CHECK CV4FL BIT SETTINGS AFTER CVAFDIR CALL                *         
*      - CHECK RC AND CVSTAT CODES RETURNED                           *         
*      - CHECK BUFFERS PROVIDED AND BUFFERS NEEDED FROM BUFFER LIST   *         
*      - WRITE OUTPUT RECS                                            *         
*      - ISSUE CVAFDIR TO RELEASE WORK AREAS                          *         
*      - WRITE OUTPUT RECS                                            *         
*                                                                     *         
*                                                                     *         
*    FINALIZATION                                                     *         
*    - CLOSE THE OUTPUT FILE                                          *         
*    - EXIT                                                           *         
*                                                                     *         
*                                                                     *         
*    CVDIR027 - 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                    *         
*                                                                     *         
*                                                                     *         
*                                                                     *         
*                                                                     *         
***********************************************************************         
*                                                                               
***********************************************************************         
*                                                                     *         
* 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     CV000000           BRANCH AROUND DECLARES                        
BASEADDR DC    A(BASE+4096)       ADDRESSING FOR R12                            
CV000000 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             
         OPEN  (OUTFILE,(OUTPUT)) OPEN THE OUTDD OUTPUT FILE                    
         TM    OUTFILE+48,X'10'   TEST IF FILE IS OPEN (OUTFILE)                
         BO    INIT0010           IF OPEN OK - BRANCH AROUND ABEND              
         ABEND 101                ELSE ISSUE USER ABEND 101                     
INIT0010 DS    0H                 FILE IS OPEN WRITE START MESSAGE              
         PUT   OUTFILE,STRTMSG    WRITE A RECORD TO THE OUTPUT FILE             
         PUT   OUTFILE,BLNKLINE   WRITE A RECORD TO THE OUTPUT FILE             
*                                                                               
***********************************************************************         
*                                                                     *         
* MAINLINE                                                            *         
*                                                                     *         
***********************************************************************         
*                                                                               
MAINLINE DS    0H                 MAINLINE SECTION                              
*                                                                               
MAIN0010 DS    0H                 PROCESS CVAFDIR1.VSAM01.DATA DATASET          
*                                                                               
         BAL   R14,SETU1RTN       SETUP FOR CVAFDIR - 12 ENTRIES                
         BAL   R14,VSAM1RTN       PROCESS VSAM01 DATASET ROUTINE                
         PUT   OUTFILE,BLNKLINE   WRITE A RECORD TO THE OUTPUT FILE             
*                                                                               
*                                                                               
***********************************************************************         
*                                                                     *         
* FINALIZATION                                                        *         
*                                                                     *         
***********************************************************************         
*                                                                               
FINAL    DS    0H                 FINALIZATION SECTION                          
         PUT   OUTFILE,ENDMSG     WRITE A RECORD TO THE OUTPUT FILE             
         CLOSE (OUTFILE)          CLOSE OUTPUT FILE                             
         C     R15,RCODE00        IF FILE CLOSE IS OK                           
         BE    FINL0010            BRANCH AROUND ABEND                          
         ABEND 102                 ELSE ISSUE USER ABEND 102                    
FINL0010 DS    0H                 EXIT MODULE                                   
         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                              
*                                                                               
***********************************************************************         
*                          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+48,X'10'   IF OPEN OF VTOC IS OK                         
         BO    IDVL0010           BRANCH AROUND ABEND                           
         ABEND 100                ELSE ISSUE USER ABEND 100                     
IDVL0010 DS    0H                                                               
         SLR   R4,R4              INIT REG4 FOR DEB PTR                         
         SLR   R5,R5              INIT REG5 FOR UCB PTR                         
         ICM   R4,B'0111',VTOCDCB+45  GET DEB ADDRESS                           
         ST    R4,DEBADD          STORE C(R4) INTO DEBADD                       
         ICM   R5,B'0111',33(R4)  GET UCB ADDRESS                               
         ST    R5,UCBADD          STORE UCB ADDRESS                             
IDVLEXIT DS    0H                 EXIT FROM IDVOLRTN                            
         L     R14,IDVLSAVE       LOAD C(IDVLSAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                          SETU1RTN                                   *         
*            - SETUP FOR CVAFDIR - BFLHNOE = 12                       *         
*            - WILL SETUP 12 ENTRIES FOR CVAFDIR CALL                 *         
*            - CVAFDIR READ CALL (SEARCH) PASSED DSN                  *         
*              - 96 BYTE BUFFER - 1ST BUFFER                          *         
*              - 140 BYTE BUFFERS - REMAINING BUFFERS                 *         
*              - DSNAME=DSN WILL BE USED FOR SEARCH                   *         
*              - CCHHR = ZERO                                         *         
***********************************************************************         
*                                                                               
SETU1RTN DS    0H                 SETUP FOR CVAFDIR CALL                        
         ST    R14,SET1SAVE       STORE C(R14) INTO SAVE AREA                   
         LA    R4,BUFLHDR         GET ADDR OF BUF LIST HEADER                   
         L     R5,NBRENT          LOAD R5 WITH NBR OF ENTRIES (12)              
         USING BFLHDR,R4          GET ADDRESSABILITY TO HEADER                  
         MVI   BFLHNOE,TWELVE     INDICATE 12 ENTRIES                           
         MVI   BFLHKEY,BFLHDSCB   INDICATE READ DSCB                            
         LA    R6,DSCBBUF         LOAD R6 WITH ADDR OF 1ST DSCB BUFFER          
         LA    R7,BUFLIST1        LOAD R7 WITH ADDR OF BUFLIST1                 
         USING BFLE,R7            GET ADDRESSABILITY TO ENTRY                   
*                                                                               
* INITIALIZE 1ST ENTRY                                                          
*                                                                               
         OI    BFLEFL,BFLECHR     INDICATE CCHHR TO BE READ                     
         MVC   BFLEARG(5),CCHHR0  SET ZEROES FOR ARGUMENT                       
         MVI   BFLELTH,DSCBL96    GET LENGTH OF BUFFER                          
         ST    R6,BFLEBUF         PUT DSCB BUF ADDR IN ENTRY                    
         LA    R7,ENTLENG(,R7)    INCREMENT ADDR TO NEXT ENTRY                  
         LA    R6,DSCBL96(,R6)    INCREMENT ADDR TO NEXT DSCB BUFFER            
         S     R5,ONE             C(R5) = C(R5) - 1                             
*                                                                               
* INITIALIZE REMAINING ENTRIES                                                  
*                                                                               
SETU0010 DS    0H                 INIT REMAINING 140 BYTE BUFFERS               
         OI    BFLEFL,BFLECHR     INDICATE CCHHR TO BE READ                     
         MVI   BFLELTH,DSCBL140   GET LENGTH OF BUFFER                          
         ST    R6,BFLEBUF         PUT DSCB BUF ADDR IN ENTRY                    
         LA    R7,ENTLENG(,R7)    INCREMENT ADDR TO NEXT ENTRY                  
         LA    R6,DSCBL140(,R6)   INCREMENT ADDR TO NEXT DSCB BUFFER            
         BCT   R5,SETU0010        BRANCH TO SETU0010 IF MORE ENTRIES            
SET1EXIT DS    0H                 EXIT FROM SETU1RTN                            
         L     R14,SET1SAVE       LOAD C(SAVE AREA) INTO R14                    
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                          VSAM1RTN                                   *         
*            - PROCESS VSAM01 DATASET ROUTINE                         *         
*              - CVAFDIR READ: EADSCB=OK AND MULTIPLEDSCBS=YES CODED  *         
*              - CHECK RC / CVSTAT CODES                              *         
*              - ISSUE CVAFDIR RELEASE                                *         
***********************************************************************         
*                                                                               
VSAM1RTN DS    0H                 PROCESS VSAM01 DATASET ROUTINE                
         ST    R14,VSAMSAVE       STORE C(R14) INTO SAVE AREA                   
         MVC   DSNAME(44),VSAM01  DSNAME=CVAFDIR1.VSAM01.DATA                   
         PUT   OUTFILE,VSAM1MSG   WRITE A RECORD TO THE OUTPUT FILE             
         PUT   OUTFILE,CALLMR11   WRITE A RECORD TO THE OUTPUT FILE             
         BAL   R14,READRTN        READRTN - EADSCB=OK/MULTIPLEDSCBS=YES         
         L     R15,RETCODE        LOAD R15 WITH SAVED RETURN CODE               
         C     R15,RCODE00        IF RC FROM READ IS EQUAL TO ZERO              
         BE    VSAM0010           BRANCH TO VSAM0010                            
         PUT   OUTFILE,UNEXPMS2   ELSE WRITE RC ERROR MESSAGE                   
         B     VSAM0020           BRANCH TO VSAM0020                            
VSAM0010 DS    0H                                                               
         PUT   OUTFILE,RC00MSG    WRITE RC00 MESSAGE                            
VSAM0020 DS    0H                                                               
         LA    R9,CVAFDIR         GET ADDRESS OF CVAF PARM LIST                 
         USING CVPL,R9            GET ADDRESSABILITY TO CVPL                    
         CLI   CVSTAT,STAT000     IF CVSTAT FROM READ IS EQUAL TO ZERO          
         BE    VSAM0030           BRANCH TO VSAM0030                            
         PUT   OUTFILE,UNEXPMS3   ELSE WRITE CVSTAT ERROR MESSAGE               
         B     VSAM0040           BRANCH TO VSAM0040                            
VSAM0030 DS    0H                                                               
         PUT   OUTFILE,CV00MSG    WRITE CV00 MESSAGE                            
VSAM0040 DS    0H                                                               
         CLI   BFLHNOE,X'0C'      IF NUMBER OF BUFFERS PROVIDED = 12            
         BE    VSAM0050           BRANCH TO VSAM0050                            
         PUT   OUTFILE,UNEXPMS4   ELSE WRITE BUFFER ERROR MESSAGE               
         B     VSAM0060           BRANCH TO VSAM0060                            
VSAM0050 DS    0H                                                               
         PUT   OUTFILE,BUFSMSG1   WRITE BUFFER MESSAGE                          
VSAM0060 DS    0H                                                               
         CLI   BFLHNOEN,X'0B'     IF NUMBER OF BUFFERS NEEDED = 11              
         BE    VSAM0070           BRANCH TO VSAM0070                            
         CLI   BFLHNOEN,X'0C'     IF NUMBER OF BUFFERS NEEDED = 12              
         BE    VSAM0080           BRANCH TO VSAM0080                            
         PUT   OUTFILE,UNEXPMS5   ELSE WRITE BUFFER ERROR MESSAGE               
         B     VSAM0090           BRANCH TO VSAM0090                            
VSAM0070 DS    0H                                                               
         PUT   OUTFILE,BUFNMSG1   WRITE BUFFER MESSAGE                          
         B     VSAM0090           BRANCH TO VSAM0090                            
VSAM0080 DS    0H                                                               
         PUT   OUTFILE,BUFNMSG2   WRITE BUFFER MESSAGE                          
VSAM0090 DS    0H                                                               
*                                                                               
         CVAFDIR ACCESS=RLSE,IXRCDS=NOKEEP,BUFLIST=0,                  X        
               MF=(E,CVAFDIR)                                                   
*                                                                               
         C     R15,RCODE00        IF RC FROM RLSE IS EQUAL TO ZERO              
         BE    VSAMEXIT           BRANCH TO VSAMEXIT                            
         PUT   OUTFILE,UNEXPMS6   ELSE WRITE RLSE ERROR MESSAGE                 
*                                                                               
VSAMEXIT DS    0H                 EXIT FROM ROUTINE                             
         DROP  R9                 DROP R9                                       
         L     R14,VSAMSAVE       LOAD C(SAVE AREA) INTO R14                    
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                          READRTN                                    *         
*            - CVAFDIR READ ROUTINE                                   *         
*              MULTIPLEDSCBS=YES IS CODED                             *         
*              EADSCB=OK IS CODED                                     *         
*            - CHECK CV4FL BIT SETTINGS AFTER READ                    *         
*            - REPORT ON CV4FL BIT SETTINGS FOR CV4EADOK AND CVMULTD  *         
***********************************************************************         
*                                                                               
READRTN  DS    0H                 CVAFDIR READ ROUTINE                          
         ST    R14,READSAVE       STORE C(R14) INTO SAVE AREA                   
         L     R2,DEBADD          LOAD R2 WITH DEB ADDRESS                      
*                                                                               
         CVAFDIR ACCESS=READ,DEB=(R2),BUFLIST=BUFLHDR,MAPRCDS=YES,     X        
               DSN=DSNAME,MULTIPLEDSCBS=YES,EADSCB=OK,                 X        
               MF=(E,CVAFDIR)                                                   
*                                                                               
         ST    R15,RETCODE        STORE RC INTO RETCODE                         
*                                                                               
         LA    R9,CVAFDIR         GET ADDRESS OF CVAF PARM LIST                 
         USING CVPL,R9            GET ADDRESSABILITY TO CVPL                    
         CLI   CVFL4,CV4EADOK     IF CVFL4 = X'10' CV4EADOK ONLY                
         BE    READ0010           BRANCH TO READ0010                            
         CLI   CVFL4,CV4MULTD     IF CVFL4 = X'08' CV4MULTD ONLY                
         BE    READ0020           BRANCH TO READ0020                            
         CLI   CVFL4,BOTH         IF CVFL4 = X'18' CV4MULTD/CV4EADOK            
         BE    READ0030           BRANCH TO READ0030                            
         PUT   OUTFILE,UNEXPMS1   ELSE WRITE ERROR RECORD PL                    
         B     READEXIT           BRANCH TO EXIT ROUTINE                        
READ0010 DS    0H                 WRITE MESSAGES X'10'                          
         PUT   OUTFILE,OKMSG      WRITE OK MSG RECORD                           
         PUT   OUTFILE,NOMULTMS   WRITE NO MULTI MSG RECORD                     
         B     READEXIT           BRANCH TO EXIT ROUTINE                        
READ0020 DS    0H                 WRITE MESSAGES X'08'                          
         PUT   OUTFILE,NOTOKMSG   WRITE NOTOK MSG RECORD                        
         PUT   OUTFILE,MULTMSG    WRITE MULTI MSG RECORD                        
         B     READEXIT           BRANCH TO EXIT ROUTINE                        
READ0030 DS    0H                 WRITE MESSAGES X'18'                          
         PUT   OUTFILE,OKMSG      WRITE OK MSG RECORD                           
         PUT   OUTFILE,MULTMSG    WRITE MULTI MSG RECORD                        
READEXIT DS    0H                 EXIT FROM READRTN                             
         DROP  R9                 DROP R9                                       
         L     R14,READSAVE       LOAD C(SAVE AREA) INTO R14                    
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                       WORKING  STORAGE                              *         
***********************************************************************         
*                                                                               
         DS    0D                                                               
         DC    CL36'CVDIR027-WORKING STORAGE BEGINS HERE'                       
*                                                                               
***********************************************************************         
*                          EQUATES                                    *         
***********************************************************************         
*                                                                               
R0       EQU    0                                                               
R1       EQU    1                                                               
R2       EQU    2                                                               
R3       EQU    3                                                               
R4       EQU    4                                                               
R5       EQU    5                                                               
R6       EQU    6                                                               
R7       EQU    7                                                               
R8       EQU    8                                                               
R9       EQU    9                                                               
R10      EQU   10                                                               
R11      EQU   11                                                               
R12      EQU   12                                                               
R13      EQU   13                                                               
R14      EQU   14                                                               
R15      EQU   15                                                               
BOTH     EQU   X'18'                                                            
TWELVE   EQU   X'0C'                                                            
*                                                                               
***********************************************************************         
*                         SAVE AREAS                                  *         
***********************************************************************         
*                                                                               
SAVE     DC    18F'0'             MAIN PROGRAM SAVE AREA                        
IDVLSAVE DC    F'0'               IDENTIFY VOLUME ROUTINE SAVE AREA             
READSAVE DC    F'0'               CVAFDIR READ ROUTINE SAVE AREA                
SET1SAVE DC    F'0'               SETUP ROUTINE SAVE AREA                       
VSAMSAVE DC    F'0'               VSAM01 ROUTINE SAVE AREA                      
*                                                                               
***********************************************************************         
*                         CONSTANTS                                   *         
***********************************************************************         
*                                                                               
CCHHR0   DS    XL5'00'            CCHHR ARGUMENT - ZERO                         
NBRENT   DC    F'12'              CONSTANT-12 NUMBER OF BUFFER ENTRIES          
RCODE00  DC    F'0'               RETURN CODE 0                                 
ONE      DC    F'1'               CONSTANT - ONE                                
VSAM01   DC    CL44'CVAFDIR1.VSAM01.DATA'                                       
*                                                                               
***********************************************************************         
*                    PROGRAM BUFFERS                                  *         
***********************************************************************         
*                                                                               
BUFLIST  DS    0F                 BUFFER LIST DECLARATIONS                      
BUFLHDR  DC    2F'0'              BUFFER LIST HEADER                            
BUFLIST1 DC    3F'0'              BUFFER LIST ENTRY 1                           
ENTLENG  EQU   *-BUFLIST1         ENTRY LENGTH - 12                             
BUFLIST2 DC    3F'0'              BUFFER LIST ENTRY 2                           
BUFLIST3 DC    3F'0'              BUFFER LIST ENTRY 3                           
BUFLIST4 DC    3F'0'              BUFFER LIST ENTRY 4                           
BUFLIST5 DC    3F'0'              BUFFER LIST ENTRY 5                           
BUFLIST6 DC    3F'0'              BUFFER LIST ENTRY 6                           
BUFLIST7 DC    3F'0'              BUFFER LIST ENTRY 7                           
BUFLIST8 DC    3F'0'              BUFFER LIST ENTRY 8                           
BUFLIST9 DC    3F'0'              BUFFER LIST ENTRY 9                           
BUFLISTA DC    3F'0'              BUFFER LIST ENTRY 10                          
BUFLISTB DC    3F'0'              BUFFER LIST ENTRY 11                          
BUFLISTC DC    3F'0'              BUFFER LIST ENTRY 12                          
*                                                                               
DSCBBUF  DS    XL96               DSCB BUFFER DECLARATION 1 - 96 BYTE           
DSCBL96  EQU   *-DSCBBUF          LENGTH - 96                                   
DSCBBUF2 DS    XL140              DSCB BUFFER DECLARATION 2 - 140 BYTE          
DSCBL140 EQU   *-DSCBBUF2         LENGTH - 140                                  
DSCBBUF3 DS    XL140              DSCB BUFFER DECLARATION 3 - 140 BYTE          
DSCBBUF4 DS    XL140              DSCB BUFFER DECLARATION 4 - 140 BYTE          
DSCBBUF5 DS    XL140              DSCB BUFFER DECLARATION 5 - 140 BYTE          
DSCBBUF6 DS    XL140              DSCB BUFFER DECLARATION 6 - 140 BYTE          
DSCBBUF7 DS    XL140              DSCB BUFFER DECLARATION 7 - 140 BYTE          
DSCBBUF8 DS    XL140              DSCB BUFFER DECLARATION 8 - 140 BYTE          
DSCBBUF9 DS    XL140              DSCB BUFFER DECLARATION 9 - 140 BYTE          
DSCBBUFA DS    XL140              DSCB BUFFER DECLARATION 10- 140 BYTE          
DSCBBUFB DS    XL140              DSCB BUFFER DECLARATION 11- 140 BYTE          
DSCBBUFC DS    XL140              DSCB BUFFER DECLARATION 12- 140 BYTE          
*                                                                               
***********************************************************************         
*                    PROGRAM MESSAGES                                 *         
***********************************************************************         
*                                                                               
BLNKLINE DC    CL80' '                                                          
STRTMSG  DC    CL80'CVDIR027 START OF OUTPUT MESSAGES                 '         
ENDMSG   DC    CL80'CVDIR027 END OF OUTPUT MESSAGES                   '         
VSAM1MSG DC    CL80' PROCESSING DSN: CVAFDIR1.VSAM01.DATA             '         
CALLMR11 DC CL80' CVAFDIR  CALL: EADSCB=OK AND MULTIPLEDSCBS=YES CODED'         
OKMSG    DC    CL80' CV4EADOK BIT SET / EADSCB=OK                     '         
NOTOKMSG DC    CL80' CV4EADOK BIT NOT SET / EADSCB=NOTOK              '         
MULTMSG  DC    CL80' CV4MULTD BIT SET / MULTIPLEDSCBS=YES             '         
NOMULTMS DC    CL80' CV4MULTD BIT NOT SET / MULTIPLEDSCBS=NO          '         
RC00MSG  DC    CL80' RC00 VERIFIED - THE REQUEST WAS SUCCESSFUL       '         
CV00MSG  DC    CL80'  X"00"    DEC"000"    00 - CVSTAT CODE VERIFIED  '         
BUFSMSG1 DC    CL80' BUFFER LIST ENTRIES PROVIDED: 12                 '         
BUFNMSG1 DC    CL80' BUFFER LIST ENTRIES NEEDED  : 11                 '         
BUFNMSG2 DC    CL80' BUFFER LIST ENTRIES NEEDED  : 12                 '         
UNEXPMS1 DC    CL80' ERROR: UNEXPECTED BIT SETTING FOR CVFL4          '         
UNEXPMS2 DC    CL80' ERROR: UNEXPECTED RETURN CODE FROM CVAFDIR READ  '         
UNEXPMS3 DC    CL80' ERROR: UNEXPECTED CVSTAT CODE FROM CVAFDIR READ  '         
UNEXPMS4 DC    CL80' ERROR: UNEXPECTED NUMBER OF BUFFERS PROVIDED     '         
UNEXPMS5 DC    CL80' ERROR: UNEXPECTED NUMBER OF BUFFERS NEEDED       '         
UNEXPMS6 DC    CL80' ERROR: UNEXPECTED RETURN CODE FROM CVAFDIR RLSE  '         
*                                                                               
***********************************************************************         
*                         WORK AREAS                                  *         
***********************************************************************         
*                                                                               
DEBADD   DC    F'0'               DEB ADDRESS SAVE AREA                         
UCBADD   DC    F'0'               UCB ADDRESS SAVE AREA                         
RETCODE  DC    F'999'             RETURN CODE SAVE AREA                         
DSNAME   DS    CL44               DSNAME                                        
*                                                                               
***********************************************************************         
*                    DCB - OUTPUT FILE (OUTFILE)                      *         
***********************************************************************         
*                                                                               
OUTFILE  DCB   DDNAME=OUTDD,                                           X        
               DSORG=PS,                                               X        
               RECFM=FB,                                               X        
               LRECL=80,                                               X        
               MACRF=PM                                                         
*                                                                               
***********************************************************************         
*                     VTOC DCB AREA                                   *         
***********************************************************************         
*                                                                               
VTOCDCB  DCB   DDNAME=CVAFDD,MACRF=E,EXLST=XLST1,DSORG=PS,DCBE=VTOCDCBE         
XLST1    DC    X'87'                                                            
         DC    AL3(JFCB1)                                                       
JFCB1    DS    0CL176                                                           
TESTNAME DS    CL44                                                             
         DS    CL8                                                              
         DS    BL1                                                              
         DS    CL123                                                            
*                                                                               
VTOCDCBE DCBE  EADSCB=OK                                                        
*                                                                               
***********************************************************************         
*                       CVAF DECLARATIONS                             *         
***********************************************************************         
*                                                                               
CVAFDIR  CVAFDIR MF=L                                                           
*                                                                               
***********************************************************************         
*                       MAPPING MACROS                                *         
***********************************************************************         
*                                                                               
         ICVAFPL                                                                
         ICVAFBFL                                                               
         DSECT                                                                  
         IECSDSL1 (1,3,8,9)                                                     
*                                                                               
*                                                                               
         END   CVDIR027           END OF CVDIR027                               
/*

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014