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

Reply via email to