STORAGE - Speicher Anzeige und Aenderung

REXX TSO und MVS Built-In Funktionen

Syntax:                                 
STORAGE(address<,<laenge><,data>>)

/* REXX STORAGE Copyright YCOS Yves Colliard Software 1990-2009 */
/* TRACE ?R  */
  /* einschalten des interaktiven Trace Modus */
  /* */
Numeric digits 12                         /* dflt of 9 not enough  */
/* */
call yves_tab  /* we need this table */
/* */
st1 = STORAGE(0,64)             /* Inhalt der PSA (Location 0)     */
SAY "PSA Location 0 to 64:"
x=yves_dump_it(st1)
  /* */
st2 = STORAGE(4C,4)             /* CVT Adresse                     */
st3 = C2X(st2)                  /* CVT Adresse im Hex-Format       */
SAY "CVT Adresse:" st3
  /* */
st4 = X2D(st3) - 64             /* CVT Adresse - 64 Bytes          */
st5 = D2X(st4)
SAY "CVT Location 0 to 64:"
st6=STORAGE(st5,64)             /* Ausgabe: .... CVT ....          */
x=yves_dump_it(st6)
  /* */
EXIT
  /* */
/* dump it ... */
yves_dump_it:
increm=16
do i=1 to 64 by increm
   say " " right("00"strip(i-1),3)"-"right("00"strip(i+increm-1),3),
   yves_make_it(substr(arg(1),i,increm))
end
/* make it readable ... */
yves_make_it:
return "*"c2x(arg(1))"*" "*"translate(arg(1),tabou,tabin)"*"
/* create table for yves_make_ti */
yves_tab:
tabin=xrange('00'x,'FF'x)
tabou=copies(' ',64)
tabou=tabou" "copies(' ',10)
tabou=tabou".<(+&"copies(' ',9)
tabou=tabou"!$*);^-/"copies(' ',9)
tabou=tabou",%_>?"copies(' ',10)
tabou=tabou":#@'"
tabou=tabou'=" abcdefghi'copies(' ',7)
tabou=tabou'jklmnopqr'copies(' ',8)
tabou=tabou'stuvwxyz'copies(' ',22)
TABOU=TABOU'{ABCDEFGHI'COPIES(' ',7)
TABOU=TABOU'JKLMNOPQR'COPIES(' ',8)
TABOU=TABOU'STUVWXYZ'COPIES(' ',6)
TABOU=TABOU'0123456789'COPIES(' ',6)
return
  /* */