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 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
/*