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     &   *