steve-myers
Active Member
Joined: 30 Nov 2013 Posts: 917 Location: The Universe
|
|
|
|
Dead minimum program to delete data set specified in parm text. No validation of any sort. Ends with RC=0, data set deleted, RC=12 delete failed, RC=16 allocation failed.
Code: |
KILLVSAM CSECT
USING *,12
SAVE (14,12),,*
LR 12,15
LA 15,SAVEAREA
ST 13,4(,15)
ST 15,8(,13)
LR 13,15
L 2,0(,1) LOAD ADDRESS OF THE PARM TEXT
LH 1,0(,2) LOAD LENGTH OF PARM TEXT
LA 0,2(,2) COMPUTE ADDRESS OF THE PARM TEXT
LR 15,1 COPY LENGTH TO REG 15
LA 14,ADSN COMPUTE DATA SET NAME ADDRESS
MVCL 14,0 COPY PARM TEXT TO DATA SET NAME
LA 1,A ALLOCATE THE DATA SET
DYNALLOC ,
LTR 15,15 RC OK
BZ FREE YES
MVI RC,16 SET RC = 16
B EXIT
FREE MVC UDDN,ADDN COPY DD NAME TO UDDN
LA 1,U UNALLOCE THE DATA SET
DYNALLOC ,
LTR 15,15 OK?
BZ EXIT YES
MVI RC,12 SET RC = 12
EXIT L 13,4(,13) LOAD ADDRESS OF THE HIGHER SAVE AREA
SR 15,15 LOAD THE RETURN CODE
IC 15,RC
RETURN (14,12),RC=(15) RETURN
* DYNAMIC ALLOCATION PARAMETERS TO ALLOCATE A DATA SET
A DC A(X'80000000'+ARB)
ARB DC AL1(S99RBEND-S99RB,S99VRBAL,0,0)
DC 2AL2(*-*),A(ATXTPP,0,0)
ATXTPP DC A(ATXT01,ATXT02,ATXT03,X'80000000'+ATXT04)
ATXT01 DC AL2(DALDSNAM,1,L'ADSN)
ADSN DC CL44' '
ATXT02 DC AL2(DALRTDDN,1,L'ADDN)
ADDN DC CL8' '
ATXT03 DC AL2(DALSTATS,1,1),X'01'
ATXT04 DC AL2(DALNDISP,1,1),X'04'
* DYNAMIC ALLOCATION PARAMETERS TO FREE A DATA SET
U DC A(X'80000000'+URB)
URB DC AL1(S99RBEND-S99RB,S99VRBUN,0,0)
DC 2AL2(*-*),A(UTXTPP,0,0)
UTXTPP DC A(X'80000000'+UTXT01)
UTXT01 DC AL2(DUNDDNAM,1,L'UDDN)
UDDN DC CL8' '
RC DC FL1'0'
SAVEAREA DC 9D'0'
LTORG
IEFZB4D0 ,
IEFZB4D2 ,
END KILLVSAM |
|
|