REXX Show first 64 Bytes of any SVC goto
homepage
Infos
über SVC im Speicher finden – neue Version 12/2005
/* REXX */
/*------------------------------------------------------*/
/* Copyright 2005 YCOS Yves Colliard Software GmbH */
/*------------------------------------------------------*/
/* Show the first 64 bytes of the
selected SVC! */
/*------------------------------------------------------*/
signal on halt
caller="OTHER"
if arg()=1 & datatype(arg(1))="NUM" then do
anfang=arg(1)
ende=arg(1)
end
else do
if arg()=1 &
arg(1)="FROMIPLINFO" then do
caller="IPLINFO"
end
anfang=0
ende=255
end
/* */
Numeric digits 12
/* dflt of 9 not enough */
/* */
call yves_tab /* we need this table
*/
cvt = PTR(76) /*
4C
PSACVT */
svcnpsw= STORAGE(d2x(448),16) /* 1C0
SVC New PSW PSA */
scvt = PTR(cvt+200) /*
C8 SCVT CVTABEND */
svct = PTR(scvt+132) /* 84
SVCTABLE
SCVTSVCT */
queue 'SVC Report - YCOS Yves Colliard Software'
queue 'SVC Handler' c2x(svcnpsw)
svch=c2d(right(svcnpsw,4)) /* Decimal
Entry of SVC Handler */
svcd=3000
do svc=anfang to ende
queue ''
call thissvc
end
if caller="OTHER" then do
do queued()
parse pull info
say info
end
end
exit
thissvc:
/* */
/* */
entry=svc*8 /* what entry do
you need */
/* */
oursvc = svct+entry /* the svc we need! */
ourentry=c2x(storage(d2x(oursvc),8))
svcnum=svc+1
if dsv.svcnum="DSV."svcnum then do
svcdesc=""
end
else do
svcdesc=dsv.svcnum
end
queue "SVC :"
format(svc,3)"/x'"right("00"d2x(svc),2)"' -"
svcdesc
svcepd=bit1off(x2d(left(ourentry,8)))
if svcepd<svch+svcd &,
svcepd>svch then do
zus="- Within SVC
Handler"
end
else do
zus=""
end
queue "SVC Entry:" ourentry zus
queue " "
"EntryPt Attr"
select
when substr(ourentry,9,1)="0" then
queue " SVC Type: 1"
when substr(ourentry,9,1)="8" then
queue " SVC Type: 2"
when substr(ourentry,9,1)="C" then
queue " SVC Type: 3/4"
when substr(ourentry,9,1)="2" then
queue " SVC Type: 6"
otherwise
queue " SVC Type: ????"
end
/* */
attr2.0=""
attr2.1="Can be assisted"
attr2.2="Non-Premptive"
attr2.3=attr2.1"+"attr2.2
attr2.4="ESR"
attr2.5=attr2.1"+"attr2.4
attr2.6=attr2.2"+"attr2.4
attr2.7=attr2.1"+"attr2.2"+"attr2.4
attr2.8="APF"
attr2.9=attr2.1"+"attr2.8
attr2.A=attr2.2"+"attr2.8
attr2.B=attr2.1"+"attr2.2"+"attr2.8
attr2.C=attr2.4"+"attr2.8
attr2.D=attr2.1"+"attr2.4"+"attr2.8
attr2.E=attr2.2"+"attr2.4"+"attr2.8
attr2.F=attr2.1"+"attr2.2"+"attr2.4"+"attr2.8
at2=substr(ourentry,10,1)
if attr2.at2="" then do
tp=""
end
else do
tp="+"
end
attr3=""
if left(x2b(substr(ourentry,11,1)),1)="1" then do
attr3=tp"Access Reg
Supported"
tp="+"
end
attr4.0=""
attr4.1="SALLOC Lock"
attr4.2="SRM Lock"
attr4.3=attr4.1"+"attr4.2
attr4.4="CMS Lock"
attr4.5=attr4.1"+"attr4.4
attr4.6=attr4.2"+"attr4.4
attr4.7=attr4.1"+"attr4.2"+"attr4.4
attr4.8="LOCAL Lock"
attr4.9=attr4.1"+"attr4.8
attr4.A=attr4.2"+"attr4.8
attr4.B=attr4.1"+"attr4.2"+"attr4.8
attr4.C=attr4.4"+"attr4.8
attr4.D=attr4.1"+"attr4.4"+"attr4.8
attr4.E=attr4.2"+"attr4.4"+"attr4.8
attr4.F=attr4.1"+"attr4.2"+"attr4.4"+"attr4.8
at4=substr(ourentry,13,1)
if attr4.at4<>"" then do
attr4.at4 =
tp""attr4.at4
end
/* */
queue " SVC Attr:"
attr2.at2""attr3""attr4.at4
/* */
svcep=PTR(oursvc)
byte64=storage(d2x(svcep),64)
/* */
if pos("ESR",attr2.at2)=0 then do
increm=16
if zus="" then do
queue "
"left(ourentry,8)
do i=1 to 64 by increm
queue " "
right("00"strip(i-1),3)"-"right("00"strip(i+increm-1),3),
yves_make_it(substr(byte64,i,increm))
end
end
end
else do
esrinfo=left(byte64,4)
esranz =c2d(substr(byte64,8,1))
svcesr=svcep+8
do l1=1 to esranz
svcep=PTR(svcesr)
byte64=storage(d2x(svcep),64)
/* */
svcepd=bit1off(svcep)
svcdesc=""
if svcepd<svch+svcd &,
svcepd>svch then do
zus="- Within SVC
Handler"
end
else do
zus=""
if
dsv.svcnum.l1="DSV."svcnum"."l1 then do
nop
end
else do
svcdesc="-
"dsv.svcnum.l1
end
end
increm=16
queue " "esrinfo,
format(l1-1,3)"/x'"right("00"d2x(l1-1),2)"'",
"-
EP:"right("0000"d2x(svcep),8) zus""svcdesc
if zus="" then do
do i=1 to 64 by increm
queue " "
right("00"strip(i-1),3)"-"right("00"strip(i+increm-1),3
yves_make_it(substr(byte64,i,increm))
end
end
svcesr=svcesr+8
end
end
/* */
return
/*--------------------------------------------------------------------*/
PTR: RETURN C2D(BITAND(STORAGE(D2X(ARG(1)),4),'7FFFFFFF'X))
PTR24: RETURN C2D(BITAND(STORAGE(D2X(ARG(1)),4),'00FFFFFF'X))
/*--------------------------------------------------------------------*/
/* */
bit1off:
if length(d2x(arg(1)))<8 then do
return arg(1)
end
td=x2b(d2x(arg(1)))
return x2d(b2x(substr(td,2)))
/* 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)
/* */
/* create table for svc desc */
dsv.1="PRTOV,WAIT,WAITR"
dsv.2="PRTOV,WAIT,WAITR"
dsv.3="POST"
dsv.4="EXIT"
dsv.5="GETMAIN"
dsv.6="FREEMAIN"
dsv.7="LINK,LINKX"
dsv.8="XCTL,XCTLX"
dsv.9="LOAD"
dsv.10="DELETE"
dsv.11="FREEMAIN,GETMAIN"
dsv.12="TIME"
dsv.13="SYNCH,SYNCHX"
dsv.14="ABEND"
dsv.15="SPIE"
dsv.16="ERREXCP"
dsv.17="PURGE"
dsv.18="RESTORE"
dsv.19="BLDL,FIND"
dsv.20="OPEN"
dsv.21="CLOSE"
dsv.22="STOW"
dsv.23="OPEN (TYPE=J)"
dsv.24="CLOSE (TYPE=T)"
dsv.25="DEVTYPE"
dsv.26="TRKBAL"
dsv.27="CATALOG,INDEX,LOCATE"
dsv.28="OBTAIN"
dsv.30="SCRATCH"
dsv.31="RENAME"
dsv.32="FEOV"
dsv.33="REALLOC"
dsv.34="IOHALT"
dsv.35="MGCR/MGCRE,QEDIT"
dsv.36="WTO,WTOR"
dsv.37="WTL"
dsv.38="SEGLD,SEGWT"
dsv.40="LABEL"
dsv.41="EXTRACT"
dsv.42="IDENTIFY"
dsv.43="ATTACH,ATTACHX"
dsv.44="CIRB"
dsv.45="CHAP"
dsv.46="OVLYBRCH"
dsv.47="STIMERM,TTIMER"
dsv.48="STIMER,STIMERM"
dsv.49="DEQ"
dsv.52="SDUMP,SDUMPX,SNAP,SNAPX"
dsv.53="RESTART"
dsv.54="RELEX"
dsv.55="DISABLE"
dsv.56="EOV"
dsv.57="ENQ,RESERVE"
dsv.58="FREEDBUF"
dsv.59="RELBUF,REQBUF"
dsv.60="OLTEP"
dsv.61="ESTAE,STAE"
dsv.62="IKJEGS6A"
dsv.63="DETACH"
dsv.64="CHKPT"
dsv.65="RDJFCB"
dsv.67="BTAMTEST"
dsv.69="SYNADAF,SYNADRLS"
dsv.70="BSP"
dsv.71="GSERV"
dsv.72="ASGNBFR,BUFINQ,RLSEBFR"
dsv.74="SPAR"
dsv.75="DAR"
dsv.76="DQUEUE"
dsv.79="LSPACE"
dsv.80="STATUS"
dsv.82="SETDEV,SETPRT"
dsv.84="SMFEWTM,SMFWTM"
dsv.85="GRAPHICS"
dsv.87="ATLAS"
dsv.88="DOM"
dsv.92="VOLSTAT"
dsv.93="TCBEXCP"
dsv.94="TGE,TPG,TPUT"
dsv.95="GTDEVSIZ,..."
dsv.96="SYSEVENT"
dsv.97="STAX"
dsv.98="IKJEGS9G"
dsv.99="PROTECT"
dsv.100="DYNALLOC"
dsv.101="IKJEFFIB"
dsv.102="QTIP"
dsv.103="AQCTL"
dsv.104="XLATE"
dsv.105="TOPCTL"
dsv.106="IMGLIB"
dsv.108="MODESET"
dsv.110="ESR (TYPE 4)"
dsv.110.6="GTFSRV"
dsv.110.8="MFSTART(RMF)"
dsv.110.19="SORT"
dsv.110.23="MFDATA(RMF)"
dsv.110.25="HSM"
dsv.110.26="IFAUSAGE"
dsv.110.27="TSO/E"
dsv.110.28="TSO/E"
dsv.110.29="ESPIE"
dsv.110.30="VSAMCBUS"
dsv.110.31="MSGDISP"
dsv.110.32="SYNCDEV"
dsv.110.33="NOTE,POINT"
dsv.110.34="OUTADD,OUTDEL"
dsv.110.35="MVS BULK"
dsv.110.37="ISPF LIB"
dsv.110.39="SORT"
dsv.110.40="DFP"
dsv.110.45="DFP"
dsv.110.48="DFP"
dsv.110.200="Customer Use"
dsv.110.201="Customer Use"
dsv.110.202="Customer Use"
dsv.110.203="Customer Use"
dsv.110.204="Customer Use"
dsv.110.205="Customer Use"
dsv.110.206="Customer Use"
dsv.110.207="Customer Use"
dsv.110.208="Customer Use"
dsv.110.209="Customer Use"
dsv.110.210="Customer Use"
dsv.110.211="Customer Use"
dsv.110.212="Customer Use"
dsv.110.213="Customer Use"
dsv.110.214="Customer Use"
dsv.110.215="Customer Use"
dsv.110.216="Customer Use"
dsv.110.217="Customer Use"
dsv.110.218="Customer Use"
dsv.110.219="Customer Use"
dsv.110.220="Customer Use"
dsv.110.221="Customer Use"
dsv.110.222="Customer Use"
dsv.110.223="Customer Use"
dsv.110.224="Customer Use"
dsv.110.225="Customer Use"
dsv.110.226="Customer Use"
dsv.110.227="Customer Use"
dsv.110.228="Customer Use"
dsv.110.229="Customer Use"
dsv.110.230="Customer Use"
dsv.110.231="Customer Use"
dsv.110.232="Customer Use"
dsv.110.233="Customer Use"
dsv.110.234="Customer Use"
dsv.110.235="Customer Use"
dsv.110.236="Customer Use"
dsv.110.237="Customer Use"
dsv.110.238="Customer Use"
dsv.110.239="Customer Use"
dsv.110.240="Customer Use"
dsv.110.241="Customer Use"
dsv.110.242="Customer Use"
dsv.110.243="Customer Use"
dsv.110.244="Customer Use"
dsv.110.245="Customer Use"
dsv.110.246="Customer Use"
dsv.110.247="Customer Use"
dsv.110.248="Customer Use"
dsv.110.249="Customer Use"
dsv.110.250="Customer Use"
dsv.110.251="Customer Use"
dsv.110.252="Customer Use"
dsv.110.253="Customer Use"
dsv.110.254="Customer Use"
dsv.110.255="Customer Use"
dsv.110.256="Customer Use"
dsv.113="PGRLSE"
dsv.114="PGANY,PGFIX,PGFREE,PGLOAD,PGOUT"
dsv.115="EXCPVR"
dsv.117="ESR (TYPE 1)"
dsv.117.1="IECTRDTI"
dsv.117.2="IECTATNR"
dsv.117.3="CHNGNTRY"
dsv.117.4="IECTCHGA"
dsv.117.5="RESETPL"
dsv.117.9="CALLDISP"
dsv.118="DEBCHK"
dsv.120="TESTAUTH"
dsv.121="FREEMAIN,GETMAIN"
dsv.122="VSAM"
dsv.123="ESR (TYPE 2)"
dsv.123.6="EVENTS (TYPE 2)"
dsv.123.7="Service Processor Call"
dsv.123.8="Extended LINK"
dsv.123.9="Extended XCTL"
dsv.123.10="Extended LOAD"
dsv.123.11="Service Processor Call"
dsv.124="PURGEDQ"
dsv.125="TPIO"
dsv.126="EVENTS (TYPE 1)"
dsv.131="RACHECK"
dsv.132="RACINIT"
dsv.133="RACLIST"
dsv.134="RACDEF"
dsv.138="ESR (TYPE 6)"
dsv.138.1="CALLDISP"
dsv.139="PGSER"
dsv.140="CVAF"
dsv.144="CIPHER,EMK,GENKEY,RETKEY"
dsv.147="BPESVC"
dsv.200="Customer Use"
dsv.201="Customer Use"
dsv.202="Customer Use"
dsv.203="Customer Use"
dsv.204="Customer Use"
dsv.205="Customer Use"
dsv.206="Customer Use"
dsv.207="Customer Use"
dsv.208="Customer Use"
dsv.209="Customer Use"
dsv.210="Customer Use"
dsv.211="Customer Use"
dsv.212="Customer Use"
dsv.213="Customer Use"
dsv.214="Customer Use"
dsv.215="Customer Use"
dsv.216="Customer Use"
dsv.217="Customer Use"
dsv.218="Customer Use"
dsv.219="Customer Use"
dsv.220="Customer Use"
dsv.221="Customer Use"
dsv.222="Customer Use"
dsv.223="Customer Use"
dsv.224="Customer Use"
dsv.225="Customer Use"
dsv.226="Customer Use"
dsv.227="Customer Use"
dsv.228="Customer Use"
dsv.229="Customer Use"
dsv.230="Customer Use"
dsv.231="Customer Use"
dsv.232="Customer Use"
dsv.233="Customer Use"
dsv.234="Customer Use"
dsv.235="Customer Use"
dsv.236="Customer Use"
dsv.237="Customer Use"
dsv.238="Customer Use"
dsv.239="Customer Use"
dsv.240="Customer Use"
dsv.241="Customer Use"
dsv.242="Customer Use"
dsv.243="Customer Use"
dsv.244="Customer Use"
dsv.245="Customer Use"
dsv.246="Customer Use"
dsv.247="Customer Use"
dsv.248="Customer Use"
dsv.249="Customer Use"
dsv.250="Customer Use"
dsv.251="Customer Use"
dsv.252="Customer Use"
dsv.253="Customer Use"
dsv.254="Customer Use"
dsv.255="Customer Use"
dsv.256="Customer Use"
return
/* */
halt:
say "STOP"
"DELSTACK"
exit
Resultat:
SVC
Report - YCOS Yves Colliard Software
SVC Handler 04040000800000000000000000FFEB00
SVC : 13/x'0D' - ABEND
SVC Entry: 84154000C1808000
EntryPt Attr
SVC Type: 3/4
SVC Attr: Can be assisted+Access Reg
Supported+LOCAL Lock
84154000
000-016
*05F047F0F01C16C9C5C1E5E3D9E3F240* * 0 00
IEAVTRT2 *
016-032
*F0F0F0F6F940C8C2C2F7F7F0F3000560* *00069 HBB7703 -*
032-048
*41306FFF94EF401D91044114477036CB* * ?
m j *
048-064
*A72800601E25D73B2000200050002000* *x
- P &
*