The assembler language subroutine in Figure 1 can be used by assembler language programs to issue the RESERVE and DEQ macros. Parameters that must be passed to the RESDEQ routine, if the RESERVE macro is to be issued, are:
DDNAME - the eight character name of the DD statement for the device to be reserved.
QNAME - an eight character name.
RNAME LENGTH - one byte (a binary integer) that contains the RNAME length value.
RNAME - a name from 1 to 255 characters in length.
RESDEQ CSECT
RESDEQ AMODE 24
RESDEQ RMODE 24
SAVE (14,12),T SAVE REGISTERS
BALR 12,0 SET UP ADDRESSABILITY
USING *,12
ST 13,SAVE+4
LA 11,SAVE ADDRESS OF MY SAVE AREA IS
* STORED IN THIRD WORD OF CALLER'S
ST 11,8(13) SAVE AREA
LR 13,11 ADDRESS OF MY SAVE AREA
LR 9,1 ADDRESS OF PARAMETER LIST
L 3,0(9) DDNAME PARAMETER OR WORD OF ZEROES
CLC 0(4,3),=F'0' WORD OF ZEROS IF DEQ IS REQUESTED
BE WANTDEQ
*PROCESS FOR DETERMINING THE UCB ADDRESS USING IEFDDSRV.
IEFDDSRV RETRIEVE,DEVENTRY,DDNAME=(3),LOC=ANY, X
DEVAREA=DDINFO INVOKE IEFDDSRV USING DDNAME
LTR 15,15 CHECKS RETURN CODE
BZ FINDUCB BRANCH IF RETURN CODE IS ZERO
ABEND 200,DUMP DDNAME IS NOT IN TIOT, ERROR
FINDUCB L 11,DDINFO ADDRESS OF DD INFORMATION
USING DVAR,11
L 8,DVAR_DEVLST_ADDR ADDRESS OF AN ENTRY
USING DVAR_DEVICE_LIST,8
*PROCESS FOR DETERMINING THE QNAME REQUESTED
WANTDEQ L 7,4(9) ADDRESS OF QNAME
MVC QNAME(8),0(7) MOVE IN QNAME
*PROCESS FOR DETERMINING THE RNAME AND THE LENGTH OF RNAME
L 7,8(9) ADDRESS OF RNAME LENGTH
MVC RNLEN+3(1),0(7) MOVE BYTE CONTAINING LENGTH
L 7,RNLEN
STC 7,RNAME STORE LENGTH OF RNAME IN THE
* FIRST BYTE OF RNAME PARAMETER
* FOR RESERVE/DEQ MACROS
L 6,12(9) ADDRESS OF RNAME REQUESTED
BCTR 7,0 SUBTRACT ONE FROM RNAME LENGTH
EX 7,MOVERNAM MOVE IN RNAME
CLC 0(4,3),=F'0'
BE ISSUEDEQ
RESERVE (QNAME,RNAME,E,0,SYSTEMS),UCB=DVAR_DEV_ADDR
* FREE THE AREA RETURNRF BY IEFDDSRV.
SR 0,0 PREPARE FOR IC
IC 0,B'0111',DVAR_LENGTH GET AREA LENGTH
SR 8,8
DROP 8
IC 8,DVAR_SUBPOOL GET SUBPOOL
STORAGE RELEASE,LENGTH=(0),ADDR=(11),SUBPOOL=(8)
DROP 11
B RETURN
ISSUEDEQ DEQ (QNAME,RNAME,0,SYSTEMS)
RETURN L 13,SAVE+4 RESTORE REGISTERS AND RETURN
RETURN (14,12),T
MOVERNAM MVC RNAME+1(0),0(6)
SAVE DS 18F STANDARD SAVE AREA
DDINFO DS A ADDRESS OF DD INFORMATION
QNAME DS 2F MAJOR NAME FOR RESERVE AND DEQ MACROS
RNAME DS CL256 MINOR NAME
RNLEN DC F'0' LENGTH OF MINOR NAME
END