Roland (of all people !!!) had an issue with non-displayable chars causing a screen erasure. So to avoid similar problems, maybe you'd like to use the following instead - thanks again to Mark for the function, which was unashamedly stolen from IPLINFO.
Shane ... /* REXX */ NUMERIC DIGITS 16 /* handle big addresses */ CVT = C2d(Storage(10,4)) /* point to CVT */ ECVT = C2d(Storage(D2x(CVT + 140),4)) /* point to CVTECVT */ CTBL = C2d(Storage(D2x(ECVT + 204),4)) /* pt to Cust anchor tbl*/ say '*** Customer Anchor Table listing - used slots ***' say '*** note: slots are counted from 1 to correlate with ShowzOS ***' say Do I = 0 to 1023 ptr = (CTBL + (4*I)) TST = C2d(Storage(D2x(ptr),4)) If (TST <> '0') then do isvcode = storage(D2x(TST),32) call XLATE_NONDISP isvcode isvcode = RESULT /* remove the +1 from the following to use zero based slot counting */ say 'Slot: 'I+1' ISV text: ' isvcode end End exit XLATE_NONDISP: /* translate non-display characters to a "." */ Arg XLATEPRM XLATELEN = Length(XLATEPRM) /* length of parm passed to routine */ Do J = 1 to XLATELEN /* check each byte for non-display chars */ If Substr(XLATEPRM,J,1) < '40'x then , /* and replace each char */ XLATEPRM = OVERLAY('.',XLATEPRM,I) /* that is non-displayable */ End /* with a period (.) */ Return XLATEPRM ---------------------------------------------------------------------- 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