Sebastian This code uses CVTUCBA - (ie the old UCB chain pointer) - you really should not be using it these days as it will not recognise/support dynamic devices.
Rob Scott Rocket Software, Inc 275 Grove Street Newton, MA 02466 617-614-2305 [EMAIL PROTECTED] -----Original Message----- From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On Behalf Of Sebastian Welton Sent: 09 July 2007 15:28 To: [email protected] Subject: Re: How can I give the volume unit address and return the volume name from REXX There's a slight bug in there somewhere which on my 1.8 and 1.9 systems only shows the first 25 volumes and I can't beck level at the moment but this should help to start as I used to use parts of this for that exact purpose: (Origin unknown but its helped me over the years:) Arg parms If parms = '?' Then Do Say 'QTD shows a list of all TAPEs and/or DASDs' Say ' ' Say 'Syntax: QTD unit status' Say ' ' Say 'unit: TAPE : only tape-units are listed' Say ' DASD : only dasd-units are listed' Say ' Default : tape and dasd units are listed' Say ' ' Say 'status: ONLINE : only online units are listed' Say ' OFFLINE : only offline units are listed' Say ' ALL : online and offline units are listed' Say ' Default : ONLINE' Say ' ' Say ' ' Exit 0 End numofparms = Words(parms) If numofparms > 0 Then Do loop = 1 Until numofparms = 0 parm = Subword(parms,1,1) parms = Delword(parms,1,1) numofparms = numofparms - 1 Select When Abbrev('TAPE',parm,1) = 1 Then qrylist = 'TAPE' When Abbrev('DASD',parm,1) = 1 Then qrylist = 'DASD' When Abbrev('ONLINE',parm,2) = 1 Then qrystatus = 'ONL' When Abbrev('OFFLINE',parm,2) = 1 Then qrystatus = 'OFF' When Abbrev('ALL',parm,1) = 1 Then qrystatus = 'ALL' Otherwise Do Say 'Given parameter(s):' Arg(1) Say ' ' Say 'Unknown parameter:' parm Exit 1 End End End ac = Storage(00000010,4) ad = C2d(ac) ad = ad + 1252 ax = D2x(ad) ac = Storage(ax,4) ad = C2d(ac) ax = D2x(ad) Do loop = 1 Until ad = 0 sc = Storage(ax,48) cuu = Substr(sc,14,3) ucbtyp = Substr(sc,19,1) Select When C2d(ucbtyp) = 32 Then unit = 'DASD' When C2d(ucbtyp) = 128 Then unit = 'TAPE' Otherwise unit = ' ' End volser = Substr(sc,29,6) ucbstab = Substr(sc,35,1) ucbstab = C2d(ucbstab) Select When unit = 'DASD' Then Select When ucbstab = 0 Then status = 'OFFLINE' When ucbstab = 4 Then status = 'ONLINE/STORAGE' When ucbstab = 16 Then status = 'ONLINE/PRIVATE' When ucbstab = 80 Then status = 'ONLINE/PAGEVOL' Otherwise status = 'Unknown' End When unit = 'TAPE' Then Select When ucbstab = 0 Then status = 'ONLINE/FREE' When ucbstab = 16 Then status = 'ONLINE/ALLOCATED' When ucbstab = 128 Then status = 'OFFLINE' Otherwise status = 'Unknown' End Otherwise Nop End IF unit ^= ' ' Then Do Select When qrylist = 'ALL' & qrystatus = 'ALL' Then , Say unit cuu volser status When qrylist = 'ALL' & qrystatus = SUBSTR(status,1,3) Then , Say unit cuu volser status When qrylist = unit & qrystatus = 'ALL' Then , Say unit cuu volser status When qrylist = unit & qrystatus = SUBSTR(status,1,3) Then , Say unit cuu volser status Otherwise Nop End End ac = Substr(sc,9,4) ad = C2d(ac) ax = D2x(ad) End Exit 0 Seb ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html

