         START                                                                  
* -----------------------------------------------------------------             
         DC   C'<< Revive ! : Binary Code to Hexa Character >> ('               
         COPY RV1#HDR                                                           
         PRINT NOGEN                                                            
* RC                                                                            
*    0 : OK ( RETURN BLOCK# -> R00 )                                            
*    4 : Block Size Over .                                                      
*    8 : Block Size Over .                                                      
*   12 : UCB Error                                                              
*   16 : Volume Serial Not Found .                                              
*                                                                               
* --- Start of Process --------------------------------------------             
RV1TC    CSECT                                                                  
         SAVE  (14,12),T,*                                                      
         BALR  R03,0                                                            
         USING *,R03                     BASE REG. R03                          
         ST    R13,SAVEAREA+4            SAVE A(OLD SAVEAREA)                   
         LR    R12,R13                                                          
         LA    R13,SAVEAREA                                                     
         ST    R13,8(R12)                SAVE A(NEW SAVEAREA)                   
* --- Parameter ---                                                             
         LM    R04,R06,0(R01)                                                   
         MVC   VOLSER(6),0(R04)          Volser                                 
         MVC   @DD(2),0(R05)             Block Size                             
         ST    R06,A#RESULT              Result Area                            
*                                                                               
         L     R12,CVTPTR                CVT ADDR. ( PSA + X'10' )              
         USING CVTMAP,R12                                                       
*                                                                               
         XC    UCBWORK,UCBWORK                                                  
         MVI   DEVCLASS,UCB3DACC                                                
         OI    PARMUCB,X'80'                                                    
*                                                                               
UCB_SCAN EQU   *                                                                
         LA    R01,PARMLIST                                                     
         L     R15,CVTUCBSC                                                     
         BALR  R14,R15                                                          
         LTR   R15,R15                                                          
         BNZ   END_SCAN                                                         
         USING UCBOB,R11                                                        
         L     R11,UCBPTR                                                       
*                                                                               
         TM    UCBSTAT,X'80'                                                    
         BNO   UCB_SCAN                                                         
*                                                                               
         CLC   UCBVOLI,VOLSER                                                   
         BE    UCB_OK                                                           
         B     UCB_SCAN                                                         
         DROP  R11                                                              
         DROP  R12                                                              
*********                                                                       
UCB_OK   EQU   *                                                                
         TRKCALC FUNCTN=TRKCAP,UCB=UCBPTR,RKDD=RKDD,                   *        
                REGSAVE=YES                                                     
         LTR   R15,R15                                                          
         BZ    UCB_SAVE                                                         
         ST    R15,RC#                                                          
         CALL  RV1BTH,(RC#,ERRMSG01+28,4)                                       
         TPUT  ERRMSG01,L'ERRMSG01                                              
         L     R15,RC#                                                          
         B     @BYE                                                             
UCB_SAVE EQU   *                                                                
         L     R01,A#RESULT                                                     
         ST    R00,0(R01)                                                       
*** END OF PROCESS ***********************************************              
@BYE     EQU   *                                                                
         L     R13,SAVEAREA+4                                                   
         RETURN (14,12),RC=(15)                                                 
******************************************************************              
END_SCAN EQU   *                                                                
         LA    R15,16                                                           
         B     @BYE                                                             
******************************************************************              
MSG      DC    CL80'********* @@@@@@@@ ********'                                
*                                                                               
         DS    0F                                                               
SAVEAREA DS    18F                       SA                                     
PARMA    DS    0F                        Parameter Area                         
*#VOLSER DS    F                         Volser Address                         
*#BLKSZ  DS    F                         File Block Size Address                
A#RESULT DS    F                         Result Area                            
*                                                                               
VOLSER   DS    CL6                                                              
RKDD     DS    0F                                                               
@R       DC    X'01'                                                            
@K       DC    X'00'                                                            
@DD      DS    H                                                                
*                                                                               
BLK#     DS    F                                                                
RC#      DS    F                                                                
*                                                                               
PARMLIST DS    3F                                                               
         ORG   PARMLIST                                                         
PARMWA   DC    A(UCBWORK)                                                       
PARMDEVT DC    A(DEVCLASS)                                                      
PARMUCB  DC    A(UCBPTR)                                                        
*                                                                               
         DS    0D                                                               
UCBWORK  DS    CL100                                                            
DEVCLASS DS    CL1                                                              
UCBPTR   DS    F                                                                
*                                                                               
ERRMSG01 DC    CL80'*** TRKCALC ERROR HAPPEND !! RC:@@@@@@@@ ***'               
*                                                                               
         LTORG                                                                  
         DSECT                                                                  
         IEFUCBOB LIST=YES                                                      
         CVT   DSECT=YES,LIST=YES                                               
R00      EQU   00                                                               
R01      EQU   01                                                               
R02      EQU   02                                                               
R03      EQU   03                                                               
R04      EQU   04                                                               
R05      EQU   05                                                               
R06      EQU   06                                                               
R07      EQU   07                                                               
R08      EQU   08                                                               
R09      EQU   09                                                               
R10      EQU   10                                                               
R11      EQU   11                                                               
R12      EQU   12                                                               
R13      EQU   13                                                               
R14      EQU   14                                                               
R15      EQU   15                                                               
         END   RV1TC                                                            
