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