Kirk - here is a routine from PDSEGEN that will do some of what you want
Do_Model: Expose pdsedsn zdsngen null zcmd
'dsinfo dataset('pdsedsn')'
if words(zcmd) = 2 then mdsn = word(zcmd,2)
else mdsn = pdsedsn
newgen = zdsngen
munit = left(zdsspc,1)
dsnt = left(zdsdsnt,1)
'Control Display Save'
'Addpop'
do forever
zcmd = null
'Display Panel(pdsegmdl)'
xrc = rc
if xrc > 0 then leave
if sysdsn(mdsn) /= 'OK' then leave
zerrsm = 'Error...'
zerrlm = mdsn 'already exists - try a different dsn.'
'setmsg msg(isrz002)'
end
'RemPop'
'Control Display Restore'
if xrc > 0 then do
zerrsm = 'Cancelled'
zerrlm = 'Model request has been cancelled.'
'setmsg msg(isrz002)'
return
end
zdsrf = strip(left(zdsrf,1)' 'substr(zdsrf,2,1)' 'substr(zdsrf,3,1))
library = null
if dsnt = 'P' then
library = 'Dsntype(PDS) dsorg(po) dir('zdsdira')'
if (dsnt = 'L' & newgen = 0) then
library = 'Dsntype(Library,2) dsorg(po) dir(1)'
if (dsnt = 'L' & newgen > 0) then
library = 'Dsntype(Library,2) dsorg(po) dir(1) maxgens('newgen')'
if zdsvol = null then vol = null
else vol = 'Vol('zdsvol')'
space = null
if munit = 'B' then space = 'Block('zdsblk')'
if munit = 'T' then space = 'Tracks'
if munit = 'C' then space = 'Cylinders'
Address TSO ,
'Alloc ds('mdsn') new spa('zds1ex','zds2ex')' vol ,
'Recfm('zdsrf') Lrecl('zdslrec') Blksize('zdsblk')' ,
library space
if rc = 0 then do
zerrsm = 'Allocated'
zerrlm = mdsn 'allocated with Space('zds1ex','zds2ex')' ,
'Recfm('zdsrf') Lrecl('zdslrec') Blksize('zdsblk')' ,
vol library space
topdse = mdsn
end
else do
zerrsm = 'Error'
zerrlm = 'Allocation failure for' mdsn
end
'setmsg msg(isrz002)'
return
--------------------------------------------------------------------------
Lionel B. Dyck (Contractor) <sdg><
Mainframe Systems Programmer – RavenTek Solution Partners
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN