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


Code example of the CVAFSEQ macro to process a volume in sequential order

z/OS DFSMSdfp Advanced Services
SC23-6861-01

SEQXMP2 TITLE 'CVAF CVAFSEQ - SEQXMP2 EXAMPLE'                                  
SEQXMP2 CSECT                                                                   
SEQXMP2 AMODE 24                                                                
SEQXMP2 RMODE 24                                                                
*                                                                               
***********************************************************************         
*                                                                     *         
*    SEQXMP2 - THIS MODULE WILL READ THROUGH THE DSCBS ON A           *         
*              NONINDEXED VOLUME.  IT WILL USE THE CVAFSEQ MACRO      *         
*              TO READ UP TO 5 DSCBS AT A TIME IN PHYSICAL            *         
*              SEQUENTIAL ORDER.                                      *         
*              OUTPUT FROM THIS MODULE WILL BE TO OUTDD.  IT WILL     *         
*              LIST ALL OF THE DATASETS ON THE VOLUME AND THEIR       *         
*              CORRESPONDING CCHHR'S.  THE FMT4, FMT5, AND FMT7 DSCBS *         
*              AND THEIR CORRESPONDING CCHHRS WILL NOT BE LISTED.     *         
*                                                                     *         
*              THE FOLLOWING DATASETS WERE ALLOCATED IN THE FOLLOWING *         
*              ORDER ON A NONINDEXED VOLUME.                          *         
*              10 SEQUENTIAL DATASETS: CVAFSEQ1.SEQ01-CVAFSEQ1.SEQ10  *         
*              5 PDS DATASETS: CVAFSEQ1.PDS01-CVAFSEQ1.PDS05          *         
*              5 PDSE DATASETS: CVAFSEQ1.PDSE01-CVAFSEQ1.PDSE05       *         
*              2 VSAM DATASETS: CVAFSEQ1.VSAM01-CVAFSEQ1.VSAM02       *         
*                                                                     *         
*    NOTE: THE OUTPUT FROM THIS EXAMPLE IS BASED ON USING A NON SMS   *         
*          MANAGED NON INDEXED VOLUME FOR ALLOCATING THE TEST         *         
*          DATASETS (CVAFDD DD).                                      *         
*          IF A SMS MANAGED NON INDEXED VOLUME IS USED THE POSITION   *         
*          OF THE VVDS DATASET WILL BE THE SECOND ENTRY IN THE LIST.  *         
*                                                                     *         
*    DASD VOLUMES USED IN THIS EXAMPLE:                               *         
*    - 1 3390-3 WHERE THE OUTDD DATASET IS DEFINED                    *         
*    - 1 3390-3 WHERE THE TEST DATASETS DETAILED ABOVE ARE DEFINED    *         
*        THIS VOLUME INITIALIZED USING:   VTOC(3326,0,195) NOINDEX    *         
*                                                                     *         
*                                                                     *         
*                                                                     *         
*          OUTPUT IN OUTDD DATASET SHOULD BE THE FOLLOWING:           *         
*---------------------------------------------------------------------*         
*                                                                     *         
*                                                                     *         
* SEQXMP2 START OF OUTPUT MESSAGES                                    *         
*                                                                     *         
* DSN: CVAFSEQ1.SEQ01                              CCHHR: 0CFE000003  *         
* DSN: CVAFSEQ1.SEQ02                              CCHHR: 0CFE000004  *         
* DSN: CVAFSEQ1.SEQ03                              CCHHR: 0CFE000005  *         
* DSN: CVAFSEQ1.SEQ04                              CCHHR: 0CFE000006  *         
* DSN: CVAFSEQ1.SEQ05                              CCHHR: 0CFE000007  *         
* DSN: CVAFSEQ1.SEQ06                              CCHHR: 0CFE000008  *         
* DSN: CVAFSEQ1.SEQ07                              CCHHR: 0CFE000009  *         
* DSN: CVAFSEQ1.SEQ08                              CCHHR: 0CFE00000A  *         
* DSN: CVAFSEQ1.SEQ09                              CCHHR: 0CFE00000B  *         
* DSN: CVAFSEQ1.SEQ10                              CCHHR: 0CFE00000C  *         
* DSN: CVAFSEQ1.PDS01                              CCHHR: 0CFE00000D  *         
* DSN: CVAFSEQ1.PDS02                              CCHHR: 0CFE00000E  *         
* DSN: CVAFSEQ1.PDS03                              CCHHR: 0CFE00000F  *         
* DSN: CVAFSEQ1.PSD04                              CCHHR: 0CFE000010  *         
* DSN: CVAFSEQ1.PDS05                              CCHHR: 0CFE000011  *         
* DSN: CVAFSEQ1.PDSE01                             CCHHR: 0CFE000012  *         
* DSN: CVAFSEQ1.PDSE02                             CCHHR: 0CFE000013  *         
* DSN: CVAFSEQ1.PDSE03                             CCHHR: 0CFE000014  *         
* DSN: CVAFSEQ1.PDSE04                             CCHHR: 0CFE000015  *         
* DSN: CVAFSEQ1.PDSE05                             CCHHR: 0CFE000016  *         
* DSN: CVAFSEQ1.VSAM01.DATA                        CCHHR: 0CFE000017  *         
* DSN: SYS1.VVDS.V339003                           CCHHR: 0CFE000018  *         
* DSN: CVAFSEQ1.VSAM02.DATA                        CCHHR: 0CFE000019  *         
*                                                                     *         
* END OF DATA REACHED - ALL DATA SETS PROCESSED                       *         
*                                                                     *         
* SEQXMP2 END OF OUTPUT MESSAGES                                      *         
*                                                                     *         
*                                                                     *         
*---------------------------------------------------------------------*         
*                                                                     *         
***********************************************************************         
*                                                                     *         
*    SEQXMP2 - LOGIC NOTES                                            *         
*                                                                     *         
*    THIS MODULE WILL PERFORM THE FOLLOWING:                          *         
*                                                                     *         
*    INITIALIZATION                                                   *         
*    - INITIALIZE STARTING CCHHR VALUE TO 0 (GT ZERO USED IN CVAFSEQ) *         
*    - OBTAIN THE NECESSARY INFORMATION FROM THE DASD VOLUME          *         
*    - OPEN AN OUTPUT FILE                                            *         
*    - WRITE NECESSARY MESSAGES TO THE OUTPUT FILE                    *         
*                                                                     *         
*    MAINLINE                                                         *         
*      DO WHILE MORE DATASETS ON VOLUME TO PROCESS                    *         
*      - LOAD 5 ENTRY TABLE WITH DSCB ADDRESS                         *         
*      - INIT BUFFER LIST HDR TO READ DSCBS AND STARTING CCHHR        *         
*      - INIT BUFFER LIST ENTRY WITH DSCB ADDRESS AND LENGTH          *         
*      - ISSUE CVAFSEQ MACRO TO READ 5 ENTRIES                        *         
*      - LOAD CCHHR RETURNED FROM CVAFSEQ INTO TABLE                  *         
*      - PROCESS TABLE ENTRIES AND PRODUCE OUTPUT: DSN/CCHHR LIST     *         
*                                                                     *         
*    FINALIZATION                                                     *         
*    - WRITE NECESSARY MESSAGES TO THE OUTPUT FILE                    *         
*    - CLOSE THE OUTPUT FILE                                          *         
*    - EXIT                                                           *         
*                                                                     *         
*                                                                     *         
*    SEQXMP2 - 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     CVAFSQ00           BRANCH AROUND DECLARES                        
BASEADDR DC    A(BASE+4096)       ADDRESSING FOR R12                            
CVAFSQ00 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                        
         MVC   CCHHRS,CCHHR0      INIT CCHHR START TO ZERO                      
         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             
*                                                                               
***********************************************************************         
*                                                                     *         
* MAINLINE                                                            *         
*                                                                     *         
***********************************************************************         
*                                                                               
MAINLINE DS    0H                 MAINLINE SECTION                              
         MVI   SWEOD,NOEOD        SET SWITCH TO NO EOD INITIALLY                
         BAL   R14,LDTABRTN       INVOKE LDTABRTN TO LOAD TABLE                 
         BAL   R14,INITBRTN       INVOKE INITBRTN TO INIT BUFFER LIST           
         BAL   R14,CVAFSRTN       INVOKE CVAFSRTN TO ISSUE CVAFSEQ CALL         
         BAL   R14,LODCRTN        INVOKE LODCRTN TO LOAD CCHHR IN TBL           
         BAL   R14,PRTBRTN        INVOKE PRTBRTN TO PROCESS TBL ENTRIES         
         CLI   SWEOD,EOD          DID WE REACH THE END OF DATA?                 
         BNE   MAINLINE           NO, PROCESS MORE DATA                         
         L     R15,RETCODE        LOAD R15 WITH RETURN CODE                     
         CH    R15,RCODE00        IF RC WAS 00?                                 
         BNE   FINAL                 NO - DO NOT PRINT EOD MESSAGE              
         MVC   PDETLINE(133),BLNKLNE YES- MOVE BLANK LINE TO LINE               
         PUT   OUTFILE,PDETLINE           WRITE THE REC TO OUTPUT FILE          
         MVC   PDETLINE(133),EODMSG       MOVE EOD MSG TO LINE                  
         PUT   OUTFILE,PDETLINE           WRITE THE REC TO OUTPUT FILE          
*                                                                               
***********************************************************************         
*                                                                     *         
* 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  TEST FOR GOOD OPEN           
         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 REG4 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 R4                      
IDVLEXIT DS    0H                 EXIT FROM IDVOLRTN                            
         L     R14,IDVLSAVE       LOAD C(IDVLSAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                          LDTABRTN                                   *         
*  - LOAD 5 ENTRY TABLE WITH DSCB ADDRESS TO USE                      *         
***********************************************************************         
*                                                                               
LDTABRTN DS    0H                 LOAD TABLE ROUTINE                            
         ST    R14,LDTBSAVE       STORE C(R14) INTO SAVE AREA                   
         LA    R6,DSCB01          LOAD R6 WITH ADDRESS OF DSCB01                
         ST    R6,TDSCB01         STORE ADDRESS OF DSCB01 INTO TABLE            
         LA    R6,DSCB02          LOAD R6 WITH ADDRESS OF DSCB02                
         ST    R6,TDSCB02         STORE ADDRESS OF DSCB02 INTO TABLE            
         LA    R6,DSCB03          LOAD R6 WITH ADDRESS OF DSCB03                
         ST    R6,TDSCB03         STORE ADDRESS OF DSCB03 INTO TABLE            
         LA    R6,DSCB04          LOAD R6 WITH ADDRESS OF DSCB04                
         ST    R6,TDSCB04         STORE ADDRESS OF DSCB04 INTO TABLE            
         LA    R6,DSCB05          LOAD R6 WITH ADDRESS OF DSCB05                
         ST    R6,TDSCB05         STORE ADDRESS OF DSCB05 INTO TABLE            
LDTBEXIT DS    0H                 EXIT FROM LDTABRTN                            
         L     R14,LDTBSAVE       LOAD C(LDTBSAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                          INITBRTN                                   *         
*  - INITIALIZE THE BUFFER LIST                                       *         
***********************************************************************         
*                                                                               
INITBRTN DS    0H                 INITIALIZE BUFFER LIST ROUTINE                
         ST    R14,INITSAVE       STORE C(R14) INTO SAVE AREA                   
         LA    R7,BUFLISTE        LOAD R7 WITH ADDRESS OF BUFLIST ENTRY         
         USING BFLE,R7            ESTABLISH ADDRESSABILITY TO BFLE              
         LA    R8,BUFLISTH        LOAD R8 WITH ADDRESS OF BUFLIST HDR           
         USING BFLHDR,R8          ESTABLISH ADDRESSABILITY TO BFLHDR            
         LA    R2,TABLE           LOAD R2 WITH ADDRESS OF TABLE                 
         USING TBLMAP,R2          ESTABLISH ADDRESSABILITY USING TBLMAP         
         XC    BFLHDR(BFLHLN+TBLNBR*BFLELN),BFLHDR CLEAR BUFLIST                
         OI    BFLHFL,BFLHDSCB    DSCBS TO BE READ WITH BUFFER LIST             
         MVC   BFLEARG,CCHHRS     MOVE STARTING CCHHR TO ARG                    
         MVI   BFLHNOE,TBLNBR     MOVE NBR OF TBL ENTRIES TO BUFE NBR           
         SLR   R10,R10            INIT R10 WITH ZERO                            
         IC    R10,BFLHNOE        NBR OF BUFFER ENTRIES IN R10                  
         ST    R10,COUNT          NBR OF BUFFER ENTRIES IN COUNT                
*                                                                               
INIT0010 DS    0H                 INIT BUFFER LIST WITH DSCB ADDR/LENG          
         L     R6,DSCBA           LOAD R6 WITH DSCB ADDRESS FROM TABLE          
         ST    R6,BFLEBUF-BFLE(,R7)      PLACE IN BUFFER LIST                   
         MVI   BFLELTH-BFLE(R7),DSCBLTH  FULL DSCB READ                         
         OI    BFLEFL,BFLECHR     CCHHR TO BE RETURNED                          
         LA    R2,TBLLNG(,R2)     POINT TO NEXT TABLE ENTRY                     
         LA    R7,BFLELN(,R7)     POINT TO NEXT BUFFER LIST ENTRY               
         BCT   R10,INIT0010       BRANCH TO INIT0010 IF C(R10) GT ZERO          
         DROP  R2                 DROP R2                                       
INITEXIT DS    0H                 EXIT FROM INITBRTN                            
         L     R14,INITSAVE       LOAD C(INITSAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                          CVAFSRTN                                   *         
*  - CVAFSEQ REQUEST TO READ UP TO 5 ENTRIES AND PLACE DATA FOR EACH  *         
*    ENTRY STARTING AT THE CORRESPONDING DSCB ADDRESS IN THE BUFFER   *         
*    LIST ENTRY.                                                      *         
***********************************************************************         
*                                                                               
CVAFSRTN DS    0H                 CVAFSEQ REQUEST ROUTINE                       
         ST    R14,CVAFSAVE       STORE C(R14) INTO SAVE AREA                   
         L     RUCB,UCBADD        LOAD R4 WITH UCB ADDRESS                      
         CVAFSEQ UCB=(RUCB),      CVAFSEQ MACRO INVOCATION             X        
               EADSCB=OK,                                              X        
               BRANCH=(YES,PGM),                                       X        
               MF=(E,CVPL)                                                      
         ST    R15,RETCODE        STORE RC INTO RETCODE                         
         LTR   R15,R15            TEST RC RETURNED FROM CVAFSEQ                 
         CH    R15,RCODE00        IS IT A RC00?                                 
         BZ    CVAFEXIT             YES - BRANCH TO EXIT ROUTINE                
         CH    R15,RCODE04        IS IT A RC04?                                 
         BE    CVAFSR04             YES - BRANCH TO PROCESS RC04                
         CH    R15,RCODE08        IS IT A RC08?                                 
         BE    CVAFSR08             YES - BRANCH TO PROCESS RC08                
         CH    R15,RCODE12        IS IT A RC12?                                 
         BE    CVAFSR12             YES - BRANCH TO PROCESS RC12                
         CH    R15,RCODE16        IS IT A RC16?                                 
         BE    CVAFSR16              YES - BRANCH TO PROCESS RC16               
         MVC   PDETLINE(133),RCERMSG ELSE FORMAT UNEXPECTED RC                  
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         B     CVAFEXIT           EXIT ROUTINE                                  
CVAFSR04 DS    0H                 RETURN CODE 04                                
         MVC   PDETLINE(133),RC04MSG FORMAT RC04 MESSAGE                        
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         CLI   CVSTAT,STAT032     IS CVSTAT CODE STAT032?                       
         BE    CVAFSS32               YES - BRANCH TO PROCESS STAT032           
         MVC   PDETLINE(133),STAT2MSG NO -  FORMAT STAT2MSG                     
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         B     CVAFEXIT           BRANCH TO EXIT ROUTINE                        
CVAFSS32 DS    0H                 CVSTAT CODE = STAT032                         
         MVC   PDETLINE(133),STAT1MSG FORMAT STAT1MSG                           
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         B     CVAFEXIT           BRANCH TO EXIT ROUTINE                        
CVAFSR08 DS    0H                 RETURN CODE 08                                
         MVC   PDETLINE(133),RC08MSG FORMAT RC08 MESSAGE                        
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         B     CVAFEXIT           BRANCH TO EXIT ROUTINE                        
CVAFSR12 DS    0H                 RETURN CODE 12                                
         MVC   PDETLINE(133),RC12MSG FORMAT RC12 MESSAGE                        
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
         B     CVAFEXIT           BRANCH TO EXIT ROUTINE                        
CVAFSR16 DS    0H                 RETURN CODE 16                                
         MVC   PDETLINE(133),RC16MSG FORMAT RC16 MESSAGE                        
         PUT   OUTFILE,PDETLINE   WRITE A RECORD TO THE OUTPUT FILE             
CVAFEXIT DS    0H                 EXIT FROM CVAFSRTN                            
         L     R14,CVAFSAVE       LOAD C(CVAFSAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                          LODCRTN                                    *         
*  - LOAD CCHHR FROM BUFFER LIST ENTRY INTO PROCESSING TABLE.  THIS   *         
*    VALUE RETURNED FROM CVAFSEQ CALL.                                *         
***********************************************************************         
*                                                                               
LODCRTN  DS    0H                 LOAD CCHHR INTO PROCESSING TABLE              
         ST    R14,LODCSAVE       STORE C(R14) INTO SAVE AREA                   
         DROP  R7,R8              DROP R7 AND R8                                
         LA    R7,BUFLISTE        LOAD R7 WITH ADDRESS OF BUFLIST ENTRY         
         USING BFLE,R7            ESTABLISH ADDRESSABILITY TO BFLE              
         LA    R2,TABLE           LOAD R2 WITH ADDRESS OF TABLE                 
         USING TBLMAP,R2          ESTABLISH ADDRESSABILITY USING TBLMAP         
         L     R10,COUNT          LOAD R10 WITH TABLE ENTRY COUNT               
*                                                                               
LODC0010 DS    0H                 PROCESS CCHHR VALUE RETURNED                  
         LA    R8,BFLEARG         LOAD R8 WITH ADDRESS OF BFLEARG               
         ST    R8,CCHHRA          STORE CCHHR VALUE INTO TABLE                  
         LA    R2,TBLLNG(,R2)     POINT TO NEXT TABLE ENTRY                     
         LA    R7,BFLELN(,R7)     POINT TO NEXT BUFFER LIST ENTRY               
         BCT   R10,LODC0010       BRANCH TO LODC0010 IF C(R10) GT ZERO          
         DROP  R2,R7              DROP R2 AND R7                                
LODCEXIT DS    0H                 EXIT FROM LODCRTN                             
         L     R14,LODCSAVE       LOAD C(LODCSAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                          PRTBRTN                                    *         
*  - PROCESS TABLE WHICH CONTAINS ADDRESS OF DSCB AND ADDRESS OF      *         
*    CCHHR FOR EACH ENTRY RETURNED FROM CVAFSEQ CALL.  TABLE IS       *         
*    CURRENTLY 5 ENTRIES.                                             *         
***********************************************************************         
*                                                                               
PRTBRTN  DS    0H                 PROCESS TABLE ENTRIES (DSCBA/CCHHRA)          
         ST    R14,PRTBSAVE       STORE C(R14) INTO SAVE AREA                   
         L     R10,COUNT          LOAD COUNT IN R10                             
         LA    R2,TABLE           LOAD ADDRESS OF TABLE INTO R2                 
         USING TBLMAP,R2          ESTABLISH ADDRESSABILITY TO TABLE             
PRTB0000 DS    0H                 PROCESS ENTRIES                               
         L     R3,DSCBA           ADDRESSABILITY TO DSCBA                       
         L     R4,CCHHRA          ADDRESSABILITY TO CCHHRA                      
         CLC   0(1,R3),FMT4       IS IT A FMT4?                                 
         BE    PRTB0020           YES, BRANCH TO POINT TO NEXT ENTRY            
         CLC   0(1,R3),FMT5       IS IT A FMT5?                                 
         BE    PRTB0020           YES, BRANCH TO POINT TO NEXT ENTRY            
         CLC   0(1,R3),FMT7       IS IT A FMT7?                                 
         BE    PRTB0020           YES, BRANCH TO POINT TO NEXT ENTRY            
         CLC   0(1,R3),FMT9       IS IT A FMT9?                                 
         BE    PRTB0020           YES, BRANCH TO POINT TO NEXT ENTRY            
* DETERMINE IF END OF DATA WAS REACHED                                          
         CLC   0(1,R3),NODSN      IS THERE '00' IN FIRST BYTE                   
         BNE   PRTB0010           NO, THEN CONTINUE TO PROCESS DSN              
         MVI   SWEOD,EOD          YES, SET SWITCH TO END OF DATA                
         B     PRTBEXIT           EXIT OUT OF ROUTINE                           
PRTB0010 DS    0H                 PROCESS DSN - FORMAT                          
         MVC   DSNMSG(44),0(R3)   MOVE DSN TO PRINT LINE                        
* PROCESS / FORMAT CCHHR                                                        
         MVC   CCHHRS(5),0(R4)    MOVE CCHHR TO CCHHRS START VARIABLE           
         UNPK  CCHHRM(L'CCHHRM+1),CCHHRS(6)  UNPACK CCHHR                       
         TR    CCHHRM,TCHAR1      CONVERT TO PRINTABLE HEX                      
         PUT   OUTFILE,MSG1 PRINT THE DSN LINE                                  
PRTB0020 DS    0H                 INCREMENT COUNTER FILEEDIT                    
         LA    R2,TBLLNG(R2)      POINT TO NEXT TABLE ENTRY                     
         BCT   R10,PRTB0000       BRANCH TO PRTB0000 IF C(R10) GT ZERO          
PRTBEXIT DS    0H                 EXIT FROM PRTBRTN                             
         L     R14,PRTBSAVE       LOAD C(PRTBSAVE) INTO R14                     
         BR    R14                EXIT                                          
*                                                                               
***********************************************************************         
*                       WORKING  STORAGE                              *         
***********************************************************************         
*                                                                               
         DS    0D                                                               
         DC    CL36'SEQXMP2-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         
R0       EQU   0                                                                
R1       EQU   1                                                                
RDEB     EQU   1                  REG1 FOR DEB ADDRESS                          
R2       EQU   2                                                                
R3       EQU   3                                                                
R4       EQU   4                                                                
RUCB     EQU   4                  REG4 FOR UCB ADDRESS                          
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                                                               
*                                                                               
***********************************************************************         
*                         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'               IDENTIFY VOLUME ROUTINE SAVE AREA             
LDTBSAVE DC    F'0'               LOAD TABLE ROUTINE SAVE AREA                  
INITSAVE DC    F'0'               INIT BUFFER ROUTINE SAVE AREA                 
PRTBSAVE DC    F'0'               PROCESS TABLE ROUTINE SAVE AREA               
CVAFSAVE DC    F'0'               CVAFSEQ REQUEST ROUTINE SAVE AREA             
LODCSAVE DC    F'0'               LOAD CCHHR ROUTINE SAVE AREA                  
*                                                                               
***********************************************************************         
*                         CONSTANTS                                   *         
***********************************************************************         
*                                                                               
RETCODE  DC    F'0'               RETURN CODE SAVE FIELD                        
RCODE00  DC    H'0'               RETURN CODE 0 - HALFWORD                      
RCODE04  DC    H'4'               RETURN CODE 4 - HALFWORD                      
RCODE08  DC    H'8'               RETURN CODE 8 - HALFWORD                      
RCODE12  DC    H'12'              RETURN CODE 12 - HALFWORD                     
RCODE16  DC    H'16'              RETURN CODE 16 - HALFWORD                     
CCHHR0   DC    XL5'0000000000'    INIT WITH ZERO                                
FMT4     DC    XL1'04'            FMT4?                                         
FMT5     DC    XL1'05'            FMT5?                                         
FMT7     DC    XL1'07'            FMT7? (ONLY CERTAIN DEVICE TYPES)             
FMT9     DC    XL1'09'            FMT9? (ONLY CERTAIN DEVICE TYPES)             
NODSN    DC    XL1'00'            END OF DATA?                                  
BLNKLNE  DC    CL133' '                                                         
STRTMSG  DC    CL133' SEQXMP2 START OF OUTPUT MESSAGES               '          
ENDMSG   DC    CL133' SEQXMP2 END OF OUTPUT MESSAGES                 '          
RC00MSG  DC    CL133' RC00 RETURNED FROM SEQXMP2                      '         
RC04MSG  DC    CL133' RC04 RETURNED FROM SEQXMP2                      '         
RC08MSG  DC    CL133' RC08 RETURNED FROM SEQXMP2                      '         
RC12MSG  DC    CL133' RC12 RETURNED FROM SEQXMP2                      '         
RC16MSG  DC    CL133' RC16 RETURNED FROM SEQXMP2                      '         
RCERMSG  DC    CL133' UNEXPECTED RC (??) RETURNED FROM SEQXMP2        '         
STAT1MSG DC    CL133' CVSTAT CODE STAT032 ENCOUNTERED                 '         
STAT2MSG DC    CL133' UNEXPECTED CVSTAT CODE RETURNED FROM SEQXMP2    '         
EODMSG   DC    CL133' END OF DATA REACHED - ALL DATA SETS PROCESSED   '         
MSG1     DS    0CL133                                                           
         DC    CL6' DSN: '                                                      
DSNMSG   DS    CL44' '                                                          
         DC    CL7'CCHHR: '                                                     
CCHHRM   DS    CL10' '                                                          
         DC    CL66' '                                                          
***********************************************************************         
*                         WORK AREAS                                  *         
***********************************************************************         
*                                                                               
BUFLST   DS    0F                 BUFFER LIST WORK AREA                         
BUFLISTH DC    2F'0'              BUFFER LIST HEADER                            
BUFLISTE DC    15F'0'             5 BUFFER LIST ENTRIES                         
*                                                                               
UCBADD   DC    F'0'               UCB ADDRESS SAVE AREA                         
DEBADD   DC    F'0'               DEB ADDRESS SAVE AREA                         
COUNT    DC    F'0'               TABLE COUNTER                                 
         DS    D                                                                
DSCB01   DS    XL140              DSCB01 BUFFER AREA                            
DSCB02   DS    XL140              DSCB02 BUFFER AREA                            
DSCB03   DS    XL140              DSCB03 BUFFER AREA                            
DSCB04   DS    XL140              DSCB04 BUFFER AREA                            
DSCB05   DS    XL140              DSCB05 BUFFER AREA                            
*                                                                               
CCHHRS   DC    XL5'0000000000'    STARTING CCHHR                                
*                                                                               
***********************************************************************         
*                         PRINT LINES                                 *         
***********************************************************************         
*                                                                               
         DS    0D                                                               
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,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                                                        
*                                                                               
***********************************************************************         
*                     TABLES                                          *         
***********************************************************************         
*                                                                               
TABLE    DC    0H                 START OF TABLE DSCB ADDR / CCHHR ADDR         
*                                                                               
TDSCB01  DS    F'0'               DSCB01 ADDRESS (140 BYTE DSCB)                
TCHR01   DS    F'0'               CCHHR ADDRESS FOR DSCB01 - RETURNED           
*                                                                               
TBLLNG   EQU   *-TABLE            LENGTH OF TABLE ENTRY                         
*                                                                               
TDSCB02  DS    F'0'               DSCB02 ADDRESS (140 BYTE DSCB)                
TCHR02   DS    F'0'               CCHHR ADDRESS FOR DSCB02 - RETURNED           
*                                                                               
TDSCB03  DS    F'0'               DSCB03 ADDRESS (140 BYTE DSCB)                
TCHR03   DS    F'0'               CCHHR ADDRESS FOR DSCB03 - RETURNED           
*                                                                               
TDSCB04  DS    F'0'               DSCB04 ADDRESS (140 BYTE DSCB)                
TCHR04   DS    F'0'               CCHHR ADDRESS FOR DSCB04 - RETURNED           
*                                                                               
TDSCB05  DS    F'0'               DSCB05 ADDRESS (140 BYTE DSCB)                
TCHR05   DS    F'0'               CCHHR ADDRESS FOR DSCB05 - RETURNED           
*                                                                               
TBLNBR   EQU   (*-TABLE)/TBLLNG   NBR OF TABLE ENTRIES                          
*                                                                               
**********************************************************************          
*                        TABLES (CONT)                               *          
**********************************************************************          
*                                                                               
TCHAR1   EQU   *-C'0'             TABLE TO TRANSLATE TO PRINTABLE HEX           
         DC    C'0123456789ABCDEF'                                              
*                                                                               
**********************************************************************          
*                        SWITCHES                                    *          
**********************************************************************          
SWEOD    DC    XL1'00'            SWITCH - END OF DATA ?                        
EOD      EQU   X'FF'              END OF DATA DETECTED                          
NOEOD    EQU   X'00'              END OF DATA NOT DETECTED                      
*                                                                               
**********************************************************************          
*                           DSECTS                                   *          
**********************************************************************          
TBLMAP   DSECT                    DUMMY CONTROL SECTION FOR TABLE MAP           
DSCBA    DS    F                  DSCB ADDRESS ENTRY                            
CCHHRA   DS    F                  CCHHR ADDRESS ENTRY                           
*                                                                               
**********************************************************************          
*                           MACROS / INCLUDES                        *          
**********************************************************************          
         DCBD DSORG=XE,DEVD=DA    MAP OF DCB                                    
         IEZDEB                   MAP OF DEB                                    
         ICVAFBFL                 BUFFER LIST WITH ONE ENTRY                    
DSCB     DSECT                                                                  
         IECSDSL1 (1)             FORMAT 1 DSCB                                 
DSCBLTH  EQU   *-IECSDSL1         LENGTH OF DSCB                                
*                                                                               
**********************************************************************          
*     CVAF PARAMETER LISTS                                           *          
**********************************************************************          
*                                                                               
SEQXMP2  CSECT                                                                  
CVPL     CVAFSEQ ACCESS=GT,       CVAFSEQ MACRO REQUEST                X        
               BUFLIST=BUFLISTH,  ADDRESS OF BUFFER LIST               X        
               MF=L                                                             
         ORG   CVPL                                                             
CVPLMAP  ICVAFPL DSECT=NO         CVAF PARM LIST MAP                            
*                                                                               
*                                                                               
         END   SEQXMP2            END OF SEQXMP2                                

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014