Hey,
I try to make a cobol program what determine the file-name of a ddname of the
What functions / tool van I use?
***********************************************************************
* *
* Title -- GETDSN *
* *
* Function / Operation -- GETDSN returns the data set name of the *
* data set specified for a DD name. *
* *
* Calling sequence(Assembler) -- *
* CALL GETDSN,(DDNAME,DSNAME) *
* ... *
* DDNAME DC CL8' ' *
* DSNAME DC CL44' ' *
* *
* Attributes -- GETDSN is reenterable, refreshable and reusable. Its *
* intended operating environment is enabled, task mode, problem key *
* and problem state. It is Language Environment compatible, but *
* not Language Environment compliant. *
* *
***********************************************************************
SPACE 5
GETDSN CSECT
GETDSN AMODE ANY
GETDSN RMODE 31
PUSH PRINT
PRINT NOGEN
DCBD DSORG=QS,DEVD=DA
SPACE 2
WA DSECT
OPARMS OPEN *-*,MF=L
OPARM EQU OPARMS,*-OPARMS
ADCBS DCB DSORG=PS,MACRF=E,DDNAME=FILLMEIN,EXLST=*-*
ADCB EQU ADCBS,*-ADCBS
XLIST DS A
JFCB DS 0XL176
IEFJFCBN
DS 0D
WASIZE EQU *-WA
POP PRINT
EJECT
GETDSN CSECT
BASR 15,0 Store current address in reg 15
USING WA,9 Establish work area addressability
USING *,10 Establish program addressability
SAVE (14,10),,'GETDSN &SYSDATE &SYSTIME' Save registers
LR 10,15 Prepare program base register
LM 2,3,0(1) Load the parameter list
LA 0,WASIZE Load work area length
GETMAIN R,LV=(0) Obtain storage for the work area
LR 9,1 Copy work area address to reg 9
MVC OPARM,MASTOPEN Initialze the RDJFCB parameter list
MVC ADCB,MASTDCB Initialize the DCB
LA 0,XLIST
STCM 0,B'0111',(DCBEXLSA-IHADCB)+ADCB
LA 0,JFCB Initalize XLIST
ST 0,XLIST
MVI XLIST,X'80'+7
MVC (DCBDDNAM-IHADCB)+ADCB,0(2) Copy DD name to the DCB
RDJFCB ADCB,MF=(E,OPARM) Read the JFCB
LTR 15,15 RDJFCB RC = 0?
BNZ EXIT No
MVC 0(L'JFCBDSNM,3),JFCBDSNM Copy data set name to user
EXIT LR 8,15 Copy RDJFCB return code to reg 8
LA 0,WASIZE Free the work area
FREEMAIN R,LV=(0),A=(9)
LR 15,8 Copy RDJFCB RC to reg 15
RETURN (14,10),RC=(15) Restore registers & return
MASTOPEN OPEN *-*,MF=L
MASTDCB DCB DSORG=PS,MACRF=E,DDNAME=FILLMEIN,EXLST=*-*
DC 0D'0'
LTORG ,
DC 0D'0'
END