Joined: 15 Jul 2005 Posts: 2 Topics: 1 Location: chennai
Posted: Mon Jul 18, 2005 3:12 am Post subject:
thanks bauer
can u send me the exact location of the document of that macro or can u send me the piece of code of that macro _________________ sudhakar
Joined: 10 Oct 2003 Posts: 315 Topics: 49 Location: Germany
Posted: Mon Jul 18, 2005 4:37 am Post subject:
sudhakar_mf,
follwowing code sample uses PL/1 and the already mentioned assemblermacro.
dynamic allocate dataset
Code:
MYNAME START
***********************************************************************
SPACE
YREGS
SPACE
***********************************************************************
* S T A R T - KONVENTIONEN *
***********************************************************************
MYNAME AMODE 31
MYNAME RMODE ANY
SAVE (14,12)
DS 0H
STM 14,12,12(13) SAVE REGISTERS
BALR R12,0 LADEN ENTRY ADDRESS
USING *,R12 BASIS-REGISTER
ST R13,SAVEA+4 STORE REG 13 IN SAVEAREA
LA R13,SAVEA LADEN ADDR. D. SAVEAREA IN REG13
USING UEBERG,R4
L R4,0(R1) PARAMETER V. PLI-PGM
***********************************************************************
SPACE 2
MVC S99DDN,DDN
MVC S99DSN,DSN
*
MVI S99STAT,X'08' DEFAULT STATUS = SHR
CLI STATUS+1,X'00'
BE *+10
MVC S99STAT,STATUS+1
*
MVI S99DISN,X'08' DEFAULT DISPOSITON = KEEP
CLI DISPN+1,X'00'
BE *+10
MVC S99DISN,DISPN+1
*
MVI S99DISA,X'08' DEFAULT ABNORM. DISPOSITON = KEEP
CLI DISPA+1,X'00'
BE *+10
MVC S99DISA,DISPA+1
*
LA R3,TUPLISTO-TUPLIST LOAD OFFSET TO OPTIONAL TU'S
*
CLC MEMBER,=8C' '
BE NOMEMB
MVC S99DSO,=X'0200' DSORG = PO
MVC S99MEMB,MEMBER SET MEMBER NAME
LA R1,TUDSORG
ST R1,TUPLIST(R3) DEFINE TEXT UNIT DSORG
LA R1,TUMEMBER
ST R1,TUPLIST+4(R3) DEFINE TEXT UNIT MEMBERNAME
LA R3,8(,R3)
NOMEMB EQU *
CLC VOLSER,=6C' '
BE NOVOLUME
MVC S99VOL,VOLSER SET SPEC. VOLUME
LA R1,TUVOLUME
ST R1,TUPLIST(R3) DEFINE TEXT UNIT VOLUME
LA R3,4(,R3)
NOVOLUME EQU *
*
CLC UNIT,=6C' '
BE NOUNIT
MVC S99UNIT,UNIT SET SPEC. UNIT
LA R1,TUUNIT
ST R1,TUPLIST(R3) DEFINE TEXT UNIT 'UNIT'
LA R3,4(,R3)
NOUNIT EQU *
*
MVC S99BLK,BLKS SET SPEC. BLOCKSIZE
CLC BLKS,=X'0000'
BNE BLOCKSIZ
CLI S99STAT,X'04' STATUS = NEW ?
BNE NOBLOCK
MVC S99BLK,=H'4000' SET DEFAULT BLOCKSIZE
BLOCKSIZ LA R1,TUBLKSIZ
ST R1,TUPLIST(R3) DEFINE TEXT UNIT BLOCKSIZE
LA R3,4(,R3)
NOBLOCK EQU *
*
MVC S99LREC,LRECL SET SPEC. LRECL
CLC LRECL,=X'0000'
BNE RECLEN
CLI S99STAT,X'04' STATUS = NEW ?
BNE NOLRECL
MVC S99LREC,=H'80' SET DEFAULT LRECL
RECLEN LA R1,TULRECL
ST R1,TUPLIST(R3) DEFINE TEXT UNIT LRECL
LA R3,4(,R3)
NOLRECL EQU *
*
MVC S99RECF,RECFM+1 SET SPEC. RECFM
CLI RECFM+1,X'00'
BNE RECORDFM
CLI S99STAT,X'04' STATUS = NEW ?
BNE NORECFM
MVI S99RECF,X'90' SET DEFAULT RECFM
RECORDFM LA R1,TURECFM
ST R1,TUPLIST(R3) DEFINE TEXT UNIT RECFM
LA R3,4(,R3)
NORECFM EQU *
*
MVC S99BSPP+1(2),SPACP SET SPEC. PRIMARY SPACE
MVC S99BSPS+1(2),SPACS SET SPEC. SECOND. SPACE
CLC SPACP(4),=F'0'
BNE SETSPACE
CLI S99STAT,X'04' STATUS = NEW ?
BNE NOSPACE
MVC S99BSPP,=X'00000F' SET DEFAULT PRIM. SPACE
MVC S99BSPS,=X'00000F' SET DEFAULT SEC. SPACE
SETSPACE LA R1,TUTRACK
ST R1,TUPLIST(R3) DEFINE TEXT UNIT TRACK-ALLOCATION
LA R1,TUPRIMSP
ST R1,TUPLIST+4(R3) DEFINE TEXT UNIT PRIMARY SPACE
LA R1,TUSECSP
ST R1,TUPLIST+8(R3) DEFINE TEXT UNIT SECOND. SPACE
LA R3,12(,R3)
NOSPACE EQU *
*
MVC S99DIR+1(2),DIRECT SET DIRECTORY BLOCKS
CLC DIRECT,=X'0000'
BNE SETDIR
CLC S99DSO,=X'0200' DSORG = PO ?
BNE NODIR AND
CLI S99STAT,X'04' STATUS = NEW ?
BNE NODIR
MVC S99DIR,=X'000001' DEFAULT FOR DIRECTORY BL.
SETDIR LA R1,TUDIRBLK
ST R1,TUPLIST(R3) DEFINE TEXT UNIT DIR. BLOCKS
LA R3,4(,R3)
NODIR EQU *
*
L R1,=X'80000000' END OF TEXT UNITS
ST R1,TUPLIST(R3)
*
LA R1,S99RBPTR
DYNALLOC
***********************************************************************
MVC ERROR,S99ERR
MVC INFO,S99INFO
ENDE L R13,SAVEA+4
RETURN (14,12),RC=(15)
EJECT
***********************************************************************
* DEFINITIONEN
***********************************************************************
DS 0D
*
S99RBPTR DC A(S99RB+X'80000000') ADDR. REQUEST BLOCK + BIT0
S99RB DC AL1(20) LAENGE
S99VERB DC X'01' VERB CODE (DSNAME ALLOC)
S99FLAG1 DC X'0000' FLAGS1
S99ERR DC H'0' ERROR-CODE
S99INFO DC H'0' INFO-CODE
DC A(TUPLIST) ADDR. TEXT-UNITS POINTER LIST
DC F'0' RESERVED
DC F'0' FLAGS2
TUPLIST DC A(TUDDNAM) ADDR. TEXT-UNIT DDNAME
DC A(TUDSNAM) " DSNAME
DC A(TUSTATUS) " DS-STATUS
DC A(TUDISPN) " NORMAL DISPOSITION
DC A(TUDISPA) " ABNORMAL DISP.
TUPLISTO DS 15F ROOM FOR OPTIONAL TEXT UNITS
*
TUDDNAM DC X'0001' KEY DDNAME
DC X'0001' NUMBER
DC AL2(L'S99DDN) LAENGE
S99DDN DS CL8 DDNAME
TUDSNAM DC X'0002' KEY DSNAME
DC X'0001' NUMBER
DC AL2(L'S99DSN) LAENGE
S99DSN DS CL44 DSNAME
TUSTATUS DC X'0004' KEY STATUS
DC X'0001' NUMBER
DC X'0001' LAENGE
S99STAT DS X DATASET STATUS (1=OLD,2=MOD,
* 4=NEW,8=SHR)
TUDISPN DC X'0005' KEY DISPOS. NORMAL
DC X'0001' NUMBER
DC X'0001' LAENGE
S99DISN DS X DATASET DISPOS.(1=UNCATLG,2=CATLG,
* 4=DELETE,8=KEEP)
TUDISPA DC X'0006' KEY DISPOS. ABEND
DC X'0001' NUMBER
DC X'0001' LAENGE
S99DISA DS X DATASET DISPOS.(1=UNCATLG,2=CATLG,
* 4=DELETE,8=KEEP)
TUDSORG DC X'003C' KEY DSORG
DC X'0001' NUMBER
DC X'0002' LAENGE
S99DSO DS XL2 DSORG (PS = X'4000')
TUTRACK DC X'0007' KEY TRKS
DC X'0000' NUMBER
TUPRIMSP DC X'000A' KEY PRIM. SPACE
DC X'0001' NUMBER
DC X'0003' LAENGE
S99BSPP DS XL3 SPACE PRIM.
TUSECSP DC X'000B' KEY SECOND. SPACE
DC X'0001' NUMBER
DC X'0003' LAENGE
S99BSPS DS XL3 SPACE SECOND
TUVOLUME DC X'0010' KEY VOLSER
DC X'0001' NUMBER
DC AL2(L'S99VOL) LAENGE
S99VOL DS CL6 VOLSER KEIN DEFAULT
TUUNIT DC X'0015' KEY UNIT
DC X'0001' NUMBER
DC AL2(L'S99UNIT) LAENGE
S99UNIT DS CL6 UNIT KEIN DEFAULT
TUBLKSIZ DC X'0030' KEY BLKSIZE
DC X'0001' NUMBER
DC X'0002' LAENGE
S99BLK DS XL2 BLKSIZE (4000)
TULRECL DC X'0042' KEY LRECL
DC X'0001' NUMBER
DC X'0002' LAENGE
S99LREC DS XL2 LRECL (80)
TURECFM DC X'0049' KEY RECFM
DC X'0001' NUMBER
DC X'0001' LAENGE
S99RECF DS X RECFM (64=V,128=F,)
* (80=VB,144=FB)
*UPERM DC X'0052' KEY PERMANENT ALLOCATION
* DC X'0000' NUMBER
TUMEMBER DC X'0003' KEY MEMBER B. PART. DS
DC X'0001' NUMBER
DC AL2(L'S99MEMB) LAENGE
S99MEMB DS CL8 MEMBER-NAME
TUDIRBLK DC X'000C' KEY DIRECTORY BLOCKS
DC X'0001' NUMBER
DC X'0003' LAENGE
S99DIR DS XL3 DIRECTORY BLOCKS
*
SAVEA DS 18F
LTORG
UEBERG DSECT
DDN DS CL8
DSN DS CL44
MEMBER DS CL8
STATUS DS XL2
DISPN DS XL2
DISPA DS XL2
SPACP DS XL2
SPACS DS XL2
DIRECT DS XL2
VOLSER DS CL6
UNIT DS CL6
BLKS DS XL2
LRECL DS XL2
RECFM DS XL2
ERROR DS XL2
INFO DS XL2
*
END
dynamic free dataset
Code:
MYNAM2 START
***********************************************************************
YREGS
***********************************************************************
* S T A R T - KONVENTIONEN *
***********************************************************************
MYNAM2 AMODE 31
MYNAM2 RMODE ANY
SAVE (14,12)
BALR R3,0 LADEN ENTRY ADDRESS
USING *,R3 REG 3 BASIS-REGISTER
USING UEBERG,R4
ST R13,SAVEA+4 STORE REG 13 IN SAVEAREA
LA R13,SAVEA LADEN ADDR. D. SAVEAREA IN REG13
L R4,0(R1) PARAMETER V. PLI-PGM
EJECT
***********************************************************************
MVC S99DDN,DDN
MVC S99DSN,DSN
*
CLC MEMBER,=8C' '
BE *+14
MVC S99MEMB,MEMBER PART. DATASET
B *+8
OI S99TUPLN,X'80' ENDE TEXTUNITS BEI SEQU.
*
LA R1,S99RBPTR
DYNALLOC
SPACE 2
***********************************************************************
MVC ERROR,S99ERR
MVC INFO,S99INFO
ENDE L R13,SAVEA+4
RETURN (14,12),RC=(15)
EJECT
***********************************************************************
* DEFINITIONEN
***********************************************************************
DS 0D
S99RBPTR DC A(S99RB+X'80000000') ADDR. REQUEST BLOCK + BIT0
S99RB DC AL1(20) LAENGE
S99VERB DC X'02' VERB CODE (DSNAME UNALLOC)
S99FLAG1 DC X'F000' FLAGS1
S99ERR DC H'0' ERROR-CODE
S99INFO DC H'0' INFO-CODE
DC A(S99TUPL) ADDR. TEXT-UNITS BEGIN
DC F'0' RESERVED
DC F'0' FLAGS2
S99TUPL DC A(S99TU01) ADDR. TEXT-UNIT 01
DC A(S99TU02) " 02
S99TUPLN DC A(S99TU03) " 03
DC A(S99TU04+X'80000000') " 04 + ENDE-BIT
S99TU01 DC X'0001' KEY DDNAME
DC X'0001' NUMBER
DC AL2(L'S99DDN) LAENGE
S99DDN DC CL8' ' DDNAME
S99TU02 DC X'0002' KEY DSNAME
DC X'0001' NUMBER
DC AL2(L'S99DSN) LAENGE
S99DSN DC CL44' ' DSNAME
S99TU03 DC X'0007' UNALLOC DDNAME/DSNAME
DC X'0000' NUMBER
S99TU04 DC X'0003' KEY MEMBER B. PART. DS
DC X'0001' NUMBER
DC AL2(L'S99MEMB) LAENGE
S99MEMB DC CL8' ' MEMBER-NAME
*
SAVEA DS 18F
LTORG
UEBERG DSECT
DDN DS CL8
DSN DS CL44
MEMBER DS CL8
ERROR DS XL2
INFO DS XL2
END
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum