I have a local mod to CP that I originally got from Melinda Varian thru 

VMSHARE, (that I have maintained thru all the versions/releases of VM 
since), that adds an extra line to the reponse from QUERY CPLEVEL, (for 

Class E users), that display the IPL, CheckPoint, and Warm Volsers and 

Addresses.  The output looks like this:

query cplevel                    
                         
   
z/VM Version 5 Release 4.0, service level 1002 (64-bit)      

Generated at 2010-09-22 15:15:16 EST             
            
IPL at 2010-11-07 03:45:01 EST               
                
SYSIPL=VMSY02(5B00), SYSCKP=VMSY01(5700), SYSWRM=VMSY02(5B00)

IBM could easily add this same info.  The IPL Volume information is store
d 
in HCPSYSCM and can be retrieved and displayed with a REXX Exec, (assumin
g 
you have Class E or the equivalent CP Privilege class.  Here is sample 

Exec that does this.  (This is not a fully roubust Exec with all the erro
r 
checking/messages built-in.  That is left as an exercise to the reader! 

:-)>  It should work for most people.)

/*--------------------------------------------------------------------*/
/*                            SYSRES EXEC                             */
/* Display the VM System IPL Volume Volser and Address from HCPSYSCM. */
/*--------------------------------------------------------------------*/
SYSRES:                      
                         
                  
   Address COMMAND                   
                         
          
   Parse Source . ctype ename etype emode .          
                   
   Numeric Digits 12                  
                         
         
   eol      = '15'x                  
                         
          
   asysvold = '60.6'    /* Offset.Length of SYSRES Volser */    
        
   asysdvno = '730.2'   /* Offset.Length of SYSRES Device Address */ 
   
   locsyslc = 'LOCATE SYMBOL HCPSYSLC'           
                       
   cpver    = C2D(SubStr(Diag(00),11,1))           
                     
   If cpver > 4 Then                  
                         
         
      display  = 'DISPLAY HLS'              
                         
   
   Else                      
                         
                  
      display  = 'DISPLAY HS'              
                         
    
   Parse Value Diagrc(08,locsyslc) With rc cc . . asyscm .     
         
   If rc \= 0 Then Exit rc               
                         
      
   Parse Var asysvold offset '.' length .           
                    
   dispcmd = display||D2X(X2D(asyscm) + X2D(offset))'.'length    
       
   Parse Value Diagrc(08,dispcmd) With rc cc . sysvold . (eol) .   
     
   If rc \= 0 Then Exit rc               
                         
      
   sysvold = X2C(sysvold)                
                         
      
   Parse Var asysdvno offset '.' length .           
                    
   dispcmd = display||D2X(X2D(asyscm) + X2D(offset))'.'length    
       
   Parse Value Diagrc(08,dispcmd) With rc cc . sysdvno . (eol) .   
     
   If rc \= 0 Then Exit rc               
                         
      
   Say 'SYSIPL='sysvold'('sysdvno')'            
                        
   Exit 0                      
                         
                

-- 
Dale R. Smith

Reply via email to