Figure 1 is a sample of IGBDCSX1. It
returns the installation-defined maximum block size for non-VSAM data
sets whose first four characters are SYS2 or SYS3. For non-VSAM data
sets whose first four characters are SYS4 or SYS5, IGBDCSX1 returns
the only block size allowed. For all other data sets, no restrictions
apply. The figure is intended to be used as a learning aid for the
installation system programmer and is not guaranteed to run on a particular
system without some modification.
Figure 1. Sample Listing
of IGBDCSX1 Part 1 of 2 ***********************************************************************
* *
* $MOD(IGBDCSX1): DASD CALCULATION SERVICES PRE-CALCULATION EXIT *
* *
* DESCRIPTIVE NAME = DCS PRE-CALCULATION EXIT *
* *
* COPYRIGHT = NONE *
* *
* FUNCTION = SEE TEXT FOR ENTRY AND EXIT INFORMATION *
* *
* PROCESSOR = ASSEMBLER *
* *
* ATTRIBUTES = CALLER KEY, CALLER STATE, ENABLED, *
* AMODE(31),RMODE(ANY) *
***********************************************************************
EJECT
IGBDCSX1 CSECT
IGBDCSX1 AMODE 31
IGBDCSX1 RMODE ANY
*
* SET UP ADDRESSABILITY
*
STM REG14,REG12,12(REG13) SAVE CALLER'S REGS
LR REG12,REG15 LOAD IGBDCSX1 ADDR INTO BASE REG
USING IGBDCSX1,REG12
L REG1,0(,REG1) SET UP PARM LIST ADDRESSABILITY
USING DCSIEPL,REG1
*
* CHECK FOR VSAM DATA SET
*
TM DCSIEDSO+1,DCSIEAM TEST DATA SET ORGANIZATION
BO EXIT BRANCH IF VSAM DATA SET
*
* CHECK FIRST-FOUR CHARACTERS OF DATA SET NAME FOR SYS2
*
CLC DCSIEDSN(4),SYS2 IS DSN SYS2?
BNE SYS3CHK NO - CHECK FOR SYS3
L REG0,MAXSYS2 SET MAX BLOCKSIZE FOR SYS2 DS
LA REG15,4 SET RETURN CODE INDICATING A
* LIMIT WAS SET
Figure 2. Sample Listing of IGBDCSX1
Part 2 of 2 B EXIT
*
* CHECK FIRST-FOUR CHARACTERS OF DATA SET NAME FOR SYS3
*
SYS3CHK CLC DCSIEDSN(4),SYS3 IS DSN SYS3?
BNE SYS4CHK NO - CHECK FOR SYS4
L REG0,MAXSYS3 SET MAX BLOCKSIZE FOR SYS3 DS
LA REG15,4 SET RETURN CODE INDICATING A
* LIMIT WAS SET
B EXIT
*
* CHECK FIRST-FOUR CHARACTERS OF DATA SET NAME FOR SYS4
*
SYS4CHK CLC DCSIEDSN(4),SYS4 IS DSN SYS4?
BNE SYS5CHK NO - CHECK FOR SYS5
L REG0,SYS4BSZ SET ONLY BLOCKSIZE FOR SYS4 DS
LA REG15,8 SET RETURN CODE INDICATING TO
* BYPASS CALCULATION
B EXIT
*
* CHECK FIRST-FOUR CHARACTERS OF DATA SET NAME FOR SYS5
SYS5CHK CLC DCSIEDSN(4),SYS5 IS DSN SYS5?
BNE NOLIMIT NO - NO LIMITS SET
L REG0,SYS5BSZ SET ONLY BLOCKSIZE FOR SYS5 DS
LA REG15,8 SET RETURN CODE INDICATING TO
* BYPASS CALCULATION
B EXIT
*
* INDICATE NO LIMITS SET
*
NOLIMIT LA REG15,0
*
* RETURN TO DCS
*
EXIT EQU *
L REG14,12(,REG13) RESTORE CALLER'S REG 14
LM REG1,REG12,24(REG13) RESTORE REST OF CALLER'S REGS
BR REG14 BRANCH BACK TO CALLER
EJECT
* * DEFINE VARIABLES
*
SYS2 DC C'SYS2'
SYS3 DC C'SYS3'
SYS4 DC C'SYS4'
SYS5 DC C'SYS5'
*
REG0 EQU 0
REG1 EQU 1
REG12 EQU 12
REG13 EQU 13
REG14 EQU 14
REG15 EQU 15 *
MAXSYS2 DC F'5120'
MAXSYS3 DC F'10240'
SYS4BSZ DC F'4096'
SYS5BSZ DC F'8192'
*
*
IGBDCSIE
*
END IGBDCSX1