FINDVOL CSECT
PROLOG STM 14,R12,12(R13)
BALR R12,0
PSTART DS OH
USING PSTART,R12
ST R13,MYSAVE+4 SAVE CALLER'S REGISTER 13
LA R2,MYSAVE GET MY SAVE AREA ADDRESS
ST R2,8(R13) CHAIN SAVE AREA TO CALLER'S
LR R13,R2 SET UP TO USE LOCAL SAVE AREA
......
......
SETUP DS OH SET UP FOR UCB SCAN SERVICE
L R3,CVTPTR GET CVT ADDRESS
USING CVTMAP,R3 SET UP ADDRESSABILITY TO CVT
XC WORKAREA,WORKAREA CLEAR WORK AREA
LA R1,WORKAREA GET ADDRESS OF WORK AREA
ST R1,PARMWA STORE ADDRESS IN THE PARMLIST
LA R1,DEVCLASS GET ADDRESS OF AREA CONTAINING X
THE DEVICE CLASS TO BE SEARCHED
ST R1,PARMDEVT STORE ADDRESS IN THE PARMLIST
MVI DEVCLASS,UCB3DACC INDICATE ONLY DIRECT ACCESS UCBS
* ARE TO BE SEARCHED.
* NOTE: IF ALL UCBS WERE TO BE
* SEARCHED, DEVCLASS WOULD
* BE SET TO X'00'.
LA R1,ADDRUCB GET ADDRESS OF WORD WHERE SCAN X
SERVICE WILL STORE THE UCB ADDRESS
ST R1,PARMUCB STORE ADDRESS IN THE PARMLIST
OI PARMUCB,X'80' INDICATE END OF PARMLIST
USING UCBOB,R2 SET UP ADDRESSABILITY TO UCB
SEARCH DS OH
LA R1,PARMLIST PUT PARMLIST ADDRESS IN REGISTER 1
L R15,CVTUCBSC GET SCAN SERVICE ADDRESS
BALR R14,R15 GO TO SCAN SERVICE.
* INTERFACE:
* REGISTER 1 = ADDRESS OF THE
* PARAMETER LIST
* REGISTER 13= ADDRESS OF AN
* 18-WORD SAVE AREA
* REGISTER 14= RETURN ADDRESS
* REGISTER 15= SCAN SERVICE ENTRY
* POINT ADDRESS
LTR R15,R15 HAS A UCB BEEN RETURNED?
BNZ NOMATCH NO, AT END OF DEVICE CLASS AND X
NO MATCH FOUND
L R2,ADDRUCB GET UCB ADDRESS THAT THE SCAN X
SERVICE RETURNED
CLC UCBVOLI,SRCHVOL IS THIS THE VOLSER WE'RE LOOKING X
FOR?
BNE SEARCH NO, CONTINUE SCAN OF UCBS.
* NOTE: THE WORK AREA MUST NOT BE
* CHANGED BETWEEN CALLS TO THE
* SCAN SERVICE ROUTINE
FOUND DS OH
......
......
NOMATCH DS OH
......
......
ENDIT DS OH
L R13,MYSAVE+4 RESTORE CALLER'S REGISTER 13
LM R14,R12,12(R13) RESTORE REMAINDER OF CALLER'S X
REGISTERS
BR R14
EJECT
PARMLIST DS 3F PARMLIST MAPPING
ORG PARMLIST
PARMWA DS F ADDRESS OF 100-BYTE WORK AREA
PARMDEVT DS F ADDRESS OF BYTE CONTAINING X
THE DEVICE TYPE TO BE SEARCHED
PARMUCB DS F ADDRESS OF WORD TO CONTAIN THE X
UCB ADDRESS
SPACE
DEVCLASS DS CL1 BYTE CONTAINING DEVICE CLASS TO X
BE SEARCHED FOR
ADDRUCB DS F WORD IN WHICH UCB SCAN WILL PLACE X
THE ADDRESS OF THE UCBS. ALIGN
DS 0D ON DOUBLE-WORD BOUNDARY. (THE
* WORK AREA FOR SCAN SERVICE MUST
* BE ON A DOUBLE-WORD BOUNDARY.)
WORKAREA DS CL100 WORK AREA
MYSAVE DS 18F
......
......
DSECT
IEFUCBOB UCB MACRO ID
CVT DSECT=YES
EJECT
END FINDVOL