z/OS DFSMS OAM Planning, Installation, and Storage Administration Guide for Tape Libraries
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


SAMPLIB member CBRSPLCS

z/OS DFSMS OAM Planning, Installation, and Storage Administration Guide for Tape Libraries
SC23-6867-00

This SAMPLIB member is an example of a program that uses the CBRXLCS macro interface.

SPLCS    TITLE 'CBRSPLCS - SAMPLE INSTALLATION MANAGEMENT PACKAGE'      
CBRSPLCS START 0                    SAMPLE INSTALLATION MGMT PACKAGE    
         SPACE 2                                                        
**** START OF SPECIFICATIONS ****************************************** 
*                                                                     * 
*    MODULE NAME:       CBRSPLCS                                      * 
*                                                                     * 
*    DESCRIPTIVE NAME:  SAMPLE INSTALLATION MANAGEMENT PACKAGE FOR    * 
*                       AUTOMATED TAPE LIBRARIES                      * 
*                                                                     * 
*    FUNCTION:                                                        * 
*      MODULE CBRSPLCS IS PART OF THE SAMPLE INSTALLATION             * 
*      MANAGEMENT PACKAGE FOR AUTOMATED TAPE LIBRARIES.  IT HANDLES   * 
*      REQUESTS ENTERED VIA AN INPUT TRANSACTION DATASET:             * 
*        1. EJECT A VOLUME FROM A LIBRARY                             * 
*        2. CHANGE A VOLUME USE ATTRIBUTE TO SCRATCH                  * 
*        3. CHANGE A VOLUME USE ATTRIBUTE TO PRIVATE                  * 
*        4. INITIATE AN IMPORT OPERATION                              * 
*        5. INITIATE AN EXPORT OPERATION                              * 
*        6. PERFORM CARTRIDGE ENTRY INTO AN MTL (MCE)                 * 
*                                                                     * 
*      CBRSPLCS DEMONSTRATES THE USE OF THE FOLLOWING FUNCTIONS:      * 
*        1. THE "QUERY VOLUME RESIDENCE" FUNCTION OF CBRXLCS, USED    * 
*           TO DETERMINE WHETHER A VOLUME RESIDES IN A LIBRARY.       * 
*        2. THE "CHANGE USE ATTRIBUTE" FUNCTION OF CBRXLCS, USED      * 
*           TO CHANGE THE USE ATTRIBUTE OF A VOLUME TO SCRATCH OR     * 
*           TO PRIVATE.                                               * 
*        3. THE "EJECT" FUNCTION OF CBRXLCS, USED TO EJECT A VOLUME   * 
*           FROM A LIBRARY, USING EITHER THE CONVENIENCE OUTPUT       * 
*           STATION OR THE HIGH CAPACITY OUTPUT STATION.              * 
*        4. THE ABILITY TO PASS 16 CHARACTERS OF INFORMATION TO       * 
*           THE CHANGE USE ATTRIBUTE INSTALLATION EXIT AND TO THE     * 
*           CARTRIDGE EJECT INSTALLATION EXIT.  THE CHARACTER STRING  * 
*           PASSED HERE CONTAINS AN AUTHORIZATION CODE, SO THAT THE   * 
*           EXIT CAN DETERMINE THE SOURCE OF THE REQUEST.             * 
*        5. THE "IMPORT" FUNCTION OF CBRXLCS INITIATES AN IMPORT      * 
*           OPERATION FOR A VOLUME OR VOLUMES INTO A LIBRARY OR       * 
*           TO CANCEL AN IMPORT OPERATION THAT'S ALREADY IN           * 
*           PROCESS.                                                  * 
*        6. THE "EXPORT" FUNCTION OF CBRXLCS INITIATES AN EXPORT      * 
*           OPERATION FOR A VOLUME OR VOLUMES FROM A LIBRARY OR       * 
*           TO CANCEL AN EXPORT OPERATION THAT'S ALREADY IN           * 
*           PROCESS.                                                  * 
*        7. THE "MCE" FUNCTION ILLUSTRATES ENTERING A VOLUME          * 
*           INTO AN MTL (MANUAL TAPE LIBRARY).                        * 
*                                                                     * 
*                                                                     * 
*    NOTES:                                                           * 
*                                                                     * 
*      CHARACTER CODE:        EBCDIC                                  * 
*                                                                     * 
*      RESTRICTIONS:          NONE                                    * 
*                                                                     * 
*      REGISTER CONVENTIONS:                                          * 
*        R0  - STANDARD LINKAGE REGISTER                              * 
*            - REASON CODE REGISTER                                   * 
*            - WORK REGISTER                                          * 
*        R1  - STANDARD LINKAGE REGISTER                              * 
*            - WORK REGISTER                                          * 
*        R2  - NOT USED                                               * 
*        R3  - NOT USED                                               * 
*        R4  - NOT USED                                               * 
*        R5  - NOT USED                                               * 
*        R6  - NOT USED                                               * 
*        R7  - NOT USED                                               * 
*        R8  - NOT USED                                               * 
*        R9  - LINKAGE REGISTER TO INTERNAL SUBROUTINES               * 
*        R10 - NOT USED                                               * 
*        R11 - NOT USED                                               * 
*        R12 - CBRSPLCS BASE REGISTER                                 * 
*        R13 - STANDARD LINKAGE REGISTER                              * 
*            - SAVE AREA ADDRESS                                      * 
*        R14 - STANDARD LINKAGE REGISTER                              * 
*            - RETURN POINT ADDRESS                                   * 
*            - WORK REGISTER                                          * 
*        R15 - STANDARD LINKAGE REGISTER                              * 
*            - ENTRY POINT ADDRESS                                    * 
*            - RETURN CODE REGISTER                                   * 
*            - WORK REGISTER                                          * 
*                                                                     * 
*    MODULE TYPE:             CONTROL SECTION                         * 
*                                                                     * 
*      PROCESSOR:             ASSEMBLER H                             * 
*                                                                     * 
*      ATTRIBUTES:                                                    * 
*                                                                     * 
*        LOCATION:            JOB PACK AREA                           * 
*        STATE:               PROBLEM                                 * 
*        AMODE:               24                                      * 
*        RMODE:               24                                      * 
*        KEY:                 8                                       * 
*        MODE:                TASK                                    * 
*        SERIALIZATION:       UNLOCKED                                * 
*        TYPE:                SERIALLY REUSABLE                       * 
*        AUTHORIZATION:       APF AUTHORIZED                          * 
*                                                                     * 
*      LINKAGE:               STANDARD LINKAGE CONVENTIONS            * 
*                                                                     * 
*      CALLING SEQUENCE:                                              * 
*        CBRSPLCS IS INVOKED DIRECTLY FROM A JCL EXEC STATEMENT.      * 
*                                                                     * 
*      INPUT:                                                         * 
*        INPUT TRANSACTIONS ARE CONTAINED IN DATASET INDD.  EACH      * 
*        TRANSACTION CONTAINS THE FOLLOWING INFORMATION:              * 
*          1. A TRANSACTION CODE, WHICH INDICATES THE REQUESTED       * 
*             FUNCTION:  EJECT, CHANGE THE USE ATTRIBUTE TO SCRATCH,  * 
*             CHANGE THE USE ATTRIBUTE TO PRIVATE, IMPORT,            * 
*             EXPORT, OR MCE                                          * 
*          2. A TRANSACTION MODIFIER, WHICH INDICATES WHETHER TO      * 
*             VERIFY THAT THE VOLUME RESIDES IN A LIBRARY BEFORE      * 
*             ATTEMPTING THE FUNCTION IN THE TRANSACTION CODE.  NOTE  * 
*             THAT CUA MAY BE PERFORMED ON A SHELF-RESIDENT VOLUME,   * 
*             PROVIDED THAT THERE IS A TAPE VOLUME RECORD IN THE      * 
*             TAPE CONFIGURATION DATA BASE, AND THEREFORE THAT THE    * 
*             MODIFIER MAY BE USED TO PREVENT THIS.  THE TRANSACTION  * 
*             MODIFIER IS IGNORED FOR MCE PROCESSING.                 * 
*          3. THE VOLUME SERIAL NUMBER.                               * 
*          4. FOR A REQUEST TO CHANGE THE USE ATTRIBUTE TO PRIVATE,   * 
*             THE STORAGE GROUP NAME.  THIS MAY BE SUPPLIED AS        * 
*             BLANKS.  THE CUA INSTALLATION EXIT MAY THEN SUPPLY A    * 
*             NON-BLANK VALUE OR LEAVE THE BLANK STORAGE GROUP NAME   * 
*             UNCHANGED.                                              * 
*          5. FOR AN EJECT REQUEST, A CODE TO SELECT EITHER THE       * 
*             CONVENIENCE OUTPUT STATION OR THE HIGH CAPACITY OUTPUT  * 
*             STATION.                                                * 
*          6. FOR AN IMPORT REQUEST, A CODE TO INITIATE A CANCEL      * 
*             TO TERMINATE THE IMPORT FUNCTION.                       * 
*          7. FOR AN EXPORT REQUEST, A CODE TO INITIATE A CANCEL      * 
*             TO TERMINATE THE EXPORT FUNCTION.                       * 
*          8. FOR A MANUAL CARTRIDGE ENTRY REQUEST:                   * 
*             A. THE REQUIRED EIGHT CHARACTER LIBRARY NAME INTO       * 
*                WHICH THE VOLUME IS TO BE ENTERED, LEFT-JUSTIFIED    * 
*                IN THE FIELD AND PADDED ON THE RIGHT WITH            * 
*                BLANKS.                                              * 
*             B. A REQUIRED ONE CHARACTER SEPARATOR (BLANK)           * 
*             C. AN OPTIONAL 1 CHARACTER MEDIA TYPE, SPECIFIED AS     * 
*                1 - F.                                               * 
*                                                                     * 
*      OUTPUT:                                                        * 
*        A MESSAGE DESCRIBING THE RESULTS OF PROCESSING IS BUILT      * 
*        FOLLOWING THE INPUT TRANSACTION.  THE COMBINED TRANSACTION   * 
*        AND MESSAGE ARE THEN WRITTEN TO DATASET OUTDD AND TO THE     * 
*        TAPE POOL AND TAPE LIBRARY CONSOLE DESTINATIONS.             * 
*                                                                     * 
*      EXIT NORMAL:                                                   * 
*        RETURN TO THE CALLER WITH RETURN CODE ZERO.                  * 
*                                                                     * 
*      EXIT ERROR:  NONE                                              * 
*                                                                     * 
*    EXTERNAL REFERENCES:                                             * 
*                                                                     * 
*      ROUTINES:  NONE                                                * 
*                                                                     * 
*      CONTROL BLOCKS:  NONE                                          * 
*                                                                     * 
*    EXECUTABLE MACROS:                                               * 
*      CBRXLCS                                                        * 
*      CLOSE                                                          * 
*      GET                                                            * 
*      OPEN                                                           * 
*      PUT                                                            * 
*      RETURN                                                         * 
*      SAVE                                                           * 
*      WTO                                                            * 
*                                                                     *
*    MESSAGES:  NONE                                                  *
*                                                                     *
*    ABEND CODES:  NONE                                               *
*                                                                     *
**** END OF SPECIFICATIONS ********************************************
         TITLE 'STANDARD REGISTER DEFINITIONS'                          
*---------------------------------------------------------------------* 
*                                                                     * 
*        STANDARD REGISTER DEFINITIONS                                * 
*                                                                     * 
*---------------------------------------------------------------------* 
R0       EQU   0                    GENERAL REGISTER 0                  
R1       EQU   1                    GENERAL REGISTER 1                  
R2       EQU   2                    GENERAL REGISTER 2                  
R3       EQU   3                    GENERAL REGISTER 3                  
R4       EQU   4                    GENERAL REGISTER 4                  
R5       EQU   5                    GENERAL REGISTER 5                  
R6       EQU   6                    GENERAL REGISTER 6                  
R7       EQU   7                    GENERAL REGISTER 7                  
R8       EQU   8                    GENERAL REGISTER 8                  
R9       EQU   9                    GENERAL REGISTER 9                  
R10      EQU   10                   GENERAL REGISTER 10                 
R11      EQU   11                   GENERAL REGISTER 11                 
R12      EQU   12                   GENERAL REGISTER 12                 
R13      EQU   13                   GENERAL REGISTER 13                 
R14      EQU   14                   GENERAL REGISTER 14                 
R15      EQU   15                   GENERAL REGISTER 15                 
         TITLE 'CBRLCSPL - LCS EXTERNAL SERVICES PARAMETER LIST'        
         CBRLCSPL  ,                LCS EXTERNAL SERVICES PARM LIST     
         TITLE 'CBRSPLCS - SAMPLE INSTALLATION MANAGEMENT PACKAGE'      
*---------------------------------------------------------------------* 
*                                                                     * 
*        CBRSPLCS ENTRY POINT                                         * 
*                                                                     * 
*---------------------------------------------------------------------* 
CBRSPLCS CSECT ,                    SAMPLE INSTALLATION MGMT PACKAGE    
CBRSPLCS AMODE 24                                                       
CBRSPLCS RMODE 24                                                       
         SAVE  (14,12),,            SAVE CALLER'S REGISTERS AND        +
               'CBRSPLCS&SYSDATE    MARK ENTRY POINT                  
         LR    R12,R15              COPY ENTRY POINT ADDRESS            
         USING CBRSPLCS,R12         CBRSPLCS BASE REGISTER              
         ST    R13,SAVE+4           BACKWARD CHAIN SAVE AREAS           
         LA    R0,SAVE              CBRSPLCS SAVE AREA ADDRESS          
         ST    R0,8(,R13)           FORWARD CHAIN SAVE AREAS            
         LR    R13,R0               SET CBRSPLCS SAVE AREA ADDRESS      
         SPACE 2                                                        
*---------------------------------------------------------------------* 
*                                                                     * 
*        OPEN BOTH DATA CONTROL BLOCKS                                * 
*                                                                     * 
*---------------------------------------------------------------------* 
         OPEN  (INDCB,(INPUT),OUTDCB,(OUTPUT))  OPEN BOTH DCBS          
         SPACE 2                                                        
*---------------------------------------------------------------------* 
*                                                                     * 
*        READ AND PROCESS THE INPUT TRANSACTION REQUEST DATASET       * 
*                                                                     * 
*---------------------------------------------------------------------* 
CUA1000  DS    0H                                                       
         GET   INDCB,TRANSACT       READ FIRST/NEXT TRANSACTION         
         EJECT ,                                                        
*---------------------------------------------------------------------* 
*                                                                     * 
*        VERIFY THAT THE VOLUME RESIDES IN A LIBRARY, IF REQUESTED    * 
*                                                                     * 
*---------------------------------------------------------------------* 
         CLI   TRANCODE,TRANMCE     MANUAL CARTRIDGE ENTRY?             
         BE    CUA6000              YES, SKIP VERIFY                    
         CLI   TRANMOD,TRANVER      VERIFY VOLUME IN LIBRARY?           
         BNE   CUA2000              NO. GO CHECK REQUEST TYPE           
         BAL   R9,CUACOPY           COPY MODEL TO LCS PARAMETER LIST    
         CBRXLCS  TYPE=TAPE,        QUERY VOLUME RESIDENCE CALL        +
               FUNC=QVR,                                               +
               VOLUME=TRANVOL,                                         +
               MF=(E,LCSLIST)                                           
         LTR   R15,R15              VOLUME IN LIBRARY?                  
         BZ    CUA2000              YES. GO CHECK REQUEST TYPE          
         C     R15,=A(LCSWARN)      WARNING RETURN CODE?                
         BNE   CUA1100              NO. FORMAT ERROR MESSAGE            
         C     R0,=A(LCSFNLRS)      VOLUME NOT LIBRARY RESIDENT?        
         BNE   CUA1100              NO. FORMAT ERROR MESSAGE            
         MVC   TRANMSG,=CL45'NOT IN LIBRARY'  SET TRANS RESPONSE        
         BAL   R9,CUARESP           WRITE TRANSACTION RESPONSE          
         B     CUA1000              GET NEXT TRANSACTION                
CUA1100  DS    0H                                                       
         MVC   ERRFUNC,=CL5'QVR'    SET ERROR FUNCTION                  
         BAL   R9,CUACODES          FORMAT RETURN AND REASON CODES      
         BAL   R9,CUARESP           WRITE TRANSACTION RESPONSE          
         B     CUA1000              GET NEXT TRANSACTION                
         EJECT ,                                                        
*---------------------------------------------------------------------* 
*                                                                     * 
*        EJECT A VOLUME FROM ITS LIBRARY, IF REQUESTED                * 
*                                                                     * 
*---------------------------------------------------------------------* 
CUA2000  DS    0H                                                       
         CLI   TRANCODE,TRANEJCT    EJECT VOLUME FROM LIBRARY?          
         BNE   CUA3000              NO. CHECK CHANGE USE ATTRIBUTE      
         BAL   R9,CUACOPY           COPY MODEL TO LCS PARAMETER LIST    
         CLI   TRANDEST,TRANBULK    BULK EJECT REQUEST?                 
         BNE   CUA2100              NO. ISSUE EJECT REQUEST             
         CBRXLCS  BULKEJCT=YES,     EJECT TO BULK OUTPUT STATION       +
               MF=(M,LCSLIST)                                           
CUA2100  DS    0H                                                       
         CBRXLCS  TYPE=TAPE,        EJECT VOLUME FROM LIBRARY          +
               FUNC=EJECT,                                             +
               VOLUME=TRANVOL,                                         +
               EXITINFO=PASSTHRU,                                      +
               MF=(E,LCSLIST)                                           
         LTR   R15,R15              EJECT SUCCESSFULLY SCHEDULED?       
         BNZ   CUA2200              NO. FORMAT ERROR MESSAGE            
         MVC   TRANMSG,=CL45'EJECT SCHEDULED'  SET TRANS RESPONSE       
         BAL   R9,CUARESP           WRITE TRANSACTION RESPONSE          
         B     CUA1000              GET NEXT TRANSACTION                
CUA2200  DS    0H                                                       
         MVC   ERRFUNC,=CL5'EJECT'  SET ERROR FUNCTION                  
         BAL   R9,CUACODES          FORMAT RETURN AND REASON CODES      
         BAL   R9,CUARESP           WRITE TRANSACTION RESPONSE          
         B     CUA1000              GET NEXT TRANSACTION                
         EJECT ,                                                        
*---------------------------------------------------------------------* 
*                                                                     * 
*        CHANGE THE VOLUME USE ATTRIBUTE, IF REQUESTED                * 
*                                                                     * 
*---------------------------------------------------------------------* 
CUA3000  DS    0H                                                       
         CLI   TRANCODE,TRANCHGP    CHANGE USE ATTRIBUTE TO PRIVATE?    
         BNE   CUA3100              NO. CHECK CHANGE TO SCRATCH         
         BAL   R9,CUACOPY           COPY MODEL TO LCS PARAMETER LIST    
         CBRXLCS  USE=PRIVATE,      CHANGE USE ATTRIBUTE TO PRIVATE    +
               GRPNAME=TRANSGRP,      STORAGE GROUP NAME OR BLANKS     +
               MF=(M,LCSLIST)                                           
         B     CUA3200              GO INVOKE LCS EXTERNAL SERVICES     
CUA3100  DS    0H                                                       
         CLI   TRANCODE,TRANCHGS    CHANGE USE ATTRIBUTE TO SCRATCH?    
         BNE   CUA4000              NO. INVALID TRANSACTION CODE        
         BAL   R9,CUACOPY           COPY MODEL TO LCS PARAMETER LIST    
         CBRXLCS  USE=SCRATCH,      CHANGE USE ATTRIBUTE TO SCRATCH    +
               MF=(M,LCSLIST)                                           
CUA3200  DS    0H                                                       
         CBRXLCS  TYPE=TAPE,        CHANGE USE ATTRIBUTE CALL          +
               FUNC=CUA,                                               +
               VOLUME=TRANVOL,                                         +
               EXITINFO=PASSTHRU,                                      +
               MF=(E,LCSLIST)                                           
         LTR   R15,R15              USE ATTRIBUTE CHANGED?              
         BNZ   CUA3300              NO. FORMAT ERROR MESSAGE            
         MVC   TRANMSG,=CL45'USE ATTRIBUTE CHANGED'  SET TRANS RESPONSE 
         BAL   R9,CUARESP           WRITE TRANSACTION RESPONSE          
         B     CUA1000              GET NEXT TRANSACTION                
CUA3300  DS    0H                                                       
         C     R15,=A(LCSWARN)      WARNING RETURN CODE?                
         BNE   CUA3500              NO. FORMAT ERROR MESSAGE            
         C     R0,=A(LCSWVAS)       VOLUME ALREADY SCRATCH?             
         BE    CUA3400              YES. FORMAT NOT CHANGED MESSAGE     
         C     R0,=A(LCSWVAP)       VOLUME ALREADY PRIVATE?             
         BNE   CUA3500              NO. FORMAT ERROR MESSAGE            
CUA3400  DS    0H                                                       
         MVC   TRANMSG,=CL45'USE ATTRIBUTE NOT CHANGED'  SET TRANS RESP 
         BAL   R9,CUARESP           WRITE TRANSACTION RESPONSE          
         B     CUA1000              GET NEXT TRANSACTION                
CUA3500  DS    0H                                                       
         MVC   ERRFUNC,=CL5'CUA'    SET ERROR FUNCTION                  
         BAL   R9,CUACODES          FORMAT RETURN AND REASON CODES      
         BAL   R9,CUARESP           WRITE TRANSACTION RESPONSE          
         B     CUA1000              GET NEXT TRANSACTION                
         EJECT ,                                                        
*---------------------------------------------------------------------* 
*                                                                     * 
*        IMPORT FUNCTION                                              * 
*                                                                     * 
*---------------------------------------------------------------------* 
CUA4000  DS    0H                                                       
         CLI   TRANCODE,TRANIMP     IMPORT VOL INTO A VTS LIBRARY       
         BNE   CUA5000              NO. CHECK FOR EXPORT                
         BAL   R9,CUACOPY           COPY MODEL TO LCS PARM LIST         
         CLI   TRANCOPT,TRANCAN     CANCEL IMPORT REQUEST?              
         BNE   CUA4100              IMPORT VOL INTO A VTS LIBRARY       
         CBRXLCS  TYPE=TAPE,        CANCEL IMPORT REQUEST              +
               FUNC=IMPORT,                                            +
               VOLUME=TRANVOL,                                         +
               CANCEL=YES,                                             +
               MF=(E,LCSLIST)                                           
         LTR   R15,R15              IMPORT CANCEL SUCCESSFULLY?         
         BNZ   CUA4200              NO. FORMAT ERROR MESSAGE            
         MVC   TRANMSG,=CL45'IMPORT CANCELED'  SET TRANS RESPONSE       
         BAL   R9,CUARESP           WRITE TRANSACTION RESPONSE          
         B     CUA1000              GET NEXT TRANSACTION                
CUA4100  DS    0H                                                       
         CBRXLCS  TYPE=TAPE,        IMPORT VOLUME INTO A VTS LIBRARY   +
               FUNC=IMPORT,                                            +
               VOLUME=TRANVOL,                                         +
               MF=(E,LCSLIST)                                           
         LTR   R15,R15              IMPORT SUCCESSFULLY?                
         BNZ   CUA4200              NO. FORMAT ERROR MESSAGE            
         MVC   TRANMSG,=CL45'IMPORT SCHEDULED'  SET TRANS RESPONSE      
         BAL   R9,CUARESP           WRITE TRANSACTION RESPONSE          
         B     CUA1000              GET NEXT TRANSACTION                
CUA4200  DS    0H                                                       
         MVC   ERRFUNC,=CL5'IMP'    SET ERROR FUNCTION                  
         BAL   R9,CUACODES          FORMAT RETURN AND REASON CODES      
         BAL   R9,CUARESP           WRITE TRANSACTION RESPONSE          
         B     CUA1000              GET NEXT TRANSACTION                
         EJECT ,                                                    
*---------------------------------------------------------------------* 
*                                                                     * 
*        EXPORT FUNCTION                                              * 
*                                                                     * 
*---------------------------------------------------------------------* 
CUA5000  DS    0H                                                       
         CLI   TRANCODE,TRANEXP     EXPORT VOLUME FROM LIBRARY?         
         BNE   CUA6000              NO. CHECK FOR MCE                   
         BAL   R9,CUACOPY           COPY MODEL TO LCS PARM LIST         
         CLI   TRANCOPT,TRANCAN     CANCEL EXPORT REQUEST               
         BNE   CUA5100              EXPORT VOL FROM A VTS LIBRARY       
         CBRXLCS  TYPE=TAPE,        CANCEL EXPORT REQUEST              +
               FUNC=EXPORT,                                            +
               VOLUME=TRANVOL,                                         +
               CANCEL=YES,                                             +
               MF=(E,LCSLIST)                                           
         LTR   R15,R15              EXPORT CANCEL SUCCESSFULLY?         
         BNZ   CUA5200              NO. FORMAT ERROR MESSAGE            
         MVC   TRANMSG,=CL45'EXPORT CANCELED'  SET TRANS RESPONSE       
         BAL   R9,CUARESP           WRITE TRANSACTION RESPONSE          
         B     CUA1000              GET NEXT TRANSACTION                
CUA5100  DS    0H                                                       
         CBRXLCS  TYPE=TAPE,        EXPORT VOLUME FROM A VTS LIBRARY   +
               FUNC=EXPORT,                                            +
               VOLUME=TRANVOL,                                         +
               MF=(E,LCSLIST)                                           
         LTR   R15,R15              EXPORT SUCCESSFULLY?                
         BNZ   CUA5200              NO. FORMAT ERROR MESSAGE            
         MVC   TRANMSG,=CL45'EXPORT SCHEDULED'  SET TRANS RESPONSE      
         BAL   R9,CUARESP           WRITE TRANSACTION RESPONSE          
         B     CUA1000              GET NEXT TRANSACTION                
CUA5200  DS    0H                                                       
         MVC   ERRFUNC,=CL5'EXP'    SET ERROR FUNCTION                  
         BAL   R9,CUACODES          FORMAT RETURN AND REASON CODES      
         BAL   R9,CUARESP           WRITE TRANSACTION RESPONSE          
         B     CUA1000              GET NEXT TRANSACTION                
         EJECT ,                                                        
*---------------------------------------------------------------------* 
*                                                                     * 
*        MCE (MANUAL CARTRIDGE ENTRY)                                 * 
*                                                                     * 
*        THIS ROUTINE WAS CREATED WITH THE MTL CHANGES                * 
*---------------------------------------------------------------------* 
CUA6000  DS    0H                                                       
         CLI   TRANCODE,TRANMCE     MANUAL CARTRIDGE ENTRY?             
         BNE   CUA7000              NO, INVALID TRANSACTION CODE        
         BAL   R9,GETVOLST          GET STORAGE FOR VOLUMELIST          
*                                                                       
*        *---------------------------------------------------*          
*        *           INITIALIZE VOLUME LIST HEADER           *          
*        *---------------------------------------------------*          
         L     R2,MCEADDR           ADDRESS OF LCSV FOR MCE             
         USING LCSV,R2              ADDRESSIBILITY TO LCSV              
*                                                                       
         LA    R8,LCSVEND+LCSMLEND  CALC LEN OF HEADER & VOLIST 
         ST    R8,LCSVBUF           STORE INTO LCSV                     
*                                                                       
         LA    R8,1                 NUMBER OF VOLUMES IN LIST           
         ST    R8,LCSVCNT           STORE INTO LCSV                     
                                                                  *                                                                       
         LA    R8,LCSMLEND          LEN OF SINGLE ENTRY VOLUME LST      
         ST    R8,LCSVLEN           STORE INTO LCSV                     
*                                                                       
         LA    R8,LCSVEND(,R2)      ADDR OF BEGINNING OF VOL LIST       
         ST    R8,LCSVADDR          STORE INTO LCSV                     
* 
*        *---------------------------------------------------*          
*        *           INITIALIZE VOLUME LIST ITSELF           *          
*        *---------------------------------------------------*          
         LR    R3,R8                ADDRESS OF VOLUME LIST              
         USING LCSMLIST,R3          ADDRESSIBILITY TO LCSV              
*                                                                       
         MVC   LCSMVOL(6),TRANVOL   VOLSER TO LIST                      
*                                                                       
*        *---------------------------------------------------*          
*        *     PROCESS THE MEDIA TYPE                        *          
*        *---------------------------------------------------*          
         CLI   TRANMEDT,X'40'       MEDIA TYPE NOT SPECIFIED?           
         BE    CUA6100              BR IF NOT SPEC'D, WILL DEFAULT      
*                                                                       
         TM    TRANMEDT,X'F0'       IS HIGH NIBBLE ALL ONES?            
         BNO   CUA6800              BR IF NO, CANT BE NUMERIC           
*                                                                       
         MVC   LCSMMED(1),TRANMEDT  MOVE MEDIATYPE CHAR INTO VLIST      
         NI    LCSMMED,X'0F'        ZERO HIGH NIBBLE                    
*                                                                       
CUA6100  EQU   *                                                        
         BAL   R9,CUACOPY           COPY MODEL TO LCS PARM LIST         
*                                                                       
         CBRXLCS  TYPE=TAPE,        MCE REQUEST                        +
               FUNC=MCE,            MANUAL CARTRIDGE ENTRY             +
               LIBNAME=TRANLIBN,    LIBRARY NAME PASSED TO US          +
               VOLLIST=(R2),        PTR TO VOLUME HEADER & LIST        +
               MF=(E,LCSLIST)                                           
*                                                                       
         DROP  R2                                                       
         DROP  R3                                                       
*                                                                       
         LTR   R15,R15              SUCCESSFUL ENTRY?                   
         BNZ   CUA6200              NO. FORMAT ERROR MESSAGE            
*                                                                       
         MVC   TRANMSG,=CL45'VOLUME SUCCESSFULLY ENTERED'               
         B     CUA6900              COMPLETE PROCESSING                 
*                                                                       
CUA6200  EQU   *                                                   
         C     R15,=A(LCSWARN)      WARNING RETURN CODE?               
         BNE   CUA6500              NO. FORMAT ERROR MESSAGE           
         C     R0,=A(LCSWSTMP)      SCRATCH THRESHOLD MSG FAILURE?     
         BE    CUA6300              YES, FORMAT MESSAGE                
         C     R0,=A(LCSWSCNU)      LIB SCRATCH COUNT NOT UPDATED      
         BNE   CUA6500              NO. FORMAT ERROR MESSAGE           
*                                                                      
         MVC   TRANMSG,=CL45'LIBRARY SCRATCH COUNT NOT UPDATED'        
         B     CUA6900              COMPLETE PROCESSING                
*                                                                      
CUA6300  EQU   *                                                       
         MVC   TRANMSG,=CL45'SCRATCH THRESHOLD PROCESSING FAILURE'     
         B     CUA6900              COMPLETE PROCESSING                
 *                                                                      
CUA6500  EQU   *                                                       
         MVC   ERRFUNC,=CL5'MCE'    SET ERROR FUNCTION                 
         BAL   R9,CUACODES          FORMAT RETURN AND REASON CODES     
         B     CUA6900              COMPLETE PROCESSING                
*                                                                      
CUA6800  EQU   *                                                       
         MVC   TRANMSG,=CL45'INVALID MEDIATYPE SPECIFIED'              
*                                                                      
CUA6900  EQU   *                                                       
         BAL   R9,CUARESP           WRITE TRANSACTION RESPONSE         
         BAL   R9,RELVOLST          RELEASE THE GOTTEN VOLUME LIST     
         B     CUA1000              GET NEXT TRANSACTION               
*                                                                      
         EJECT ,                                                    
*---------------------------------------------------------------------* 
*                                                                     * 
*        INVALID TRANSACTION CODE REQUESTED                           * 
*                                                                     * 
*---------------------------------------------------------------------* 
CUA7000  DS    0H                                                       
         MVC   TRANMSG,=CL45'INVALID TRANSACTION CODE'  SET TRANS RESP  
         BAL   R9,CUARESP           WRITE TRANSACTION RESPONSE          
         B     CUA1000              GET NEXT TRANSACTION                
         EJECT ,                                                        
*---------------------------------------------------------------------* 
*                                                                     * 
*        CLEAN UP AND RETURN TO THE CALLER                            * 
*                                                                     * 
*---------------------------------------------------------------------* 
EXIT     DS    0H                                                       
         CLOSE (INDCB,,OUTDCB)      CLOSE BOTH DATA CONTROL BLOCKS      
         L     R13,SAVE+4           RESTORE CALLER'S SAVE AREA ADDRESS  
         RETURN  (14,12),           RESTORE CALLER'S REGISTERS, THEN   +
               RC=0                   RETURN TO CALLER                  
         EJECT ,                                                        
*---------------------------------------------------------------------* 
*                                                                     * 
*        COPY THE MODEL LCS PARAMETER LIST TO THE ACTUAL LIST         * 
*                                                                     * 
*---------------------------------------------------------------------* 
CUACOPY  DS    0H                                                       
         LA    R0,LCSMODEL          ADDRESS OF SOURCE                   
         LA    R1,LCSPLENG          LENGTH OF SOURCE                    
         LA    R14,LCSLIST          ADDRESS OF TARGET                   
         LR    R15,R1               LENGTH OF TARGET                    
         MVCL  R14,R0               COPY MODEL TO LCS PARAMETER LIST    
         BR    R9                   RETURN TO CALLER                    
         EJECT ,                                                        
*---------------------------------------------------------------------* 
*                                                                     * 
*        FORMAT THE RETURN AND REASON CODES FOR PRINTING              * 
*                                                                     * 
*---------------------------------------------------------------------* 
CUACODES DS    0H                                                       
         CVD   R15,PRETCODE         CONVERT TO PACKED DECIMAL           
         UNPK  ZRETCODE,PRETCODE    CONVERT TO ZONED DECIMAL            
         OI    ZRETCODE+3,X'F0'     CORRECT FINAL ZONE                  
         CVD   R0,PRSNCODE          CONVERT TO PACKED DECIMAL           
         UNPK  ZRSNCODE,PRSNCODE    CONVERT TO ZONED DECIMAL            
         OI    ZRSNCODE+3,X'F0'     CORRECT FINAL ZONE                  
         MVC   TRANMSG,RETREAS      MOVE TEXT TO RESPONSE AREA          
         BR    R9                   RETURN TO CALLER                    
         EJECT ,                                                        
*---------------------------------------------------------------------* 
*                                                                     * 
*        GET AND ZERO OUT THE VOLUME LIST FOR THE MCE CALL            * 
*                                                                     * 
*---------------------------------------------------------------------*
GETVOLST EQU   *                                                        
         LA    R8,LCSVEND+LCSMLEND  CALC AMOUNT OF STORAGE TO GET       
*                                                                       
         STORAGE OBTAIN,            INVOKE STORAGE MACRO               +
               LENGTH=(R8),         AMOUNT TO GET                      +
               ADDR=MCEADDR,        VARIABLE FOR RETURNED ADDRESS      +
               COND=YES,            CONDITIONAL SO DON'T ABEND         +
               RTCD=STGRTCD         RETURN CODE VARIABLE                
*                                                                       
         LTR   R15,R15              VIRTUAL STORAGE ACQUIRED?           
         BNZ   GETFAILD             BR, IF STORAGE NOT ACQUIRED         
*                                                                       
         LA    R2,1(,R1)            POINT 1 PAST BEGIN OF STORAGE       
         LR    R3,R8                LENGTH TO CLEAR                     
         BCTR  R8,0                 LENGTH - 1                          
         LR    R4,R1                POINT TO BEGINNING OF STORAGE       
         SR    R5,R5                ZERO OUT                            
*                                                                       
         MVCL  R2,R4                CLEAR THE AUTODATA AREA             
*                                                                       
         BR    R9                   RETURN TO CALLER OF GETVOLST        
*                                                                       
GETFAILD EQU   *                                                        
         MVC   TRANMSG,=CL45'OBTAIN FAILURE'  SET TRANS RESPONSE        
RELFAILD EQU   *                                                        
         BAL   R9,STGCODES          FORMAT RETURN AND REASON CODES      
         BAL   R9,CUARESP           WRITE TRANSACTION RESPONSE          
         B     CUA1000              GET NEXT TRANSACTION                
         EJECT ,                                                        
*---------------------------------------------------------------------* 
*                                                                     * 
*              RELEASE THE VOLUME LIST FOR THE MCE CALL               * 
*                                                                     * 
*---------------------------------------------------------------------* 
RELVOLST EQU   *                                                        
*                                                                       
         L     R2,MCEADDR           ADDRESS OF LCSV                     
         USING LCSV,R2              ADDRESSIBILITY TO LCSV              
*                                                                       
         L     R2,LCSVBUF           LENGTH OF RELEASE                   
*                                                                       
         STORAGE RELEASE,           INVOKE STORAGE MACRO               +
               LENGTH=(R2),         AMOUNT TO RELEASE                  +
               ADDR=MCEADDR,        VARIABLE FOR RETURNED ADDRESS      +
               COND=YES,            CONDITIONAL RELEASE                +
               RTCD=STGRTCD         RETURN CODE VARIABLE                
*                                                                       
         LTR   R15,R15              VIRTUAL STORAGE ACQUIRED?           
         BZR   R9                   BR, IF STORAGE RELEASED             
*                                                                       
         MVC   TRANMSG,=CL45'RELEASE FAILURE'  SET TRANS RESPONSE       
         B     RELFAILD                                                 
*                                                                       
         DROP  R2                                                       
         EJECT ,                                                        
*---------------------------------------------------------------------* 
*                                                                     * 
*        FORMAT FAILED STORAGE RETURN AND REASON CODES FOR PRINTING   * 
*                                                                     * 
*---------------------------------------------------------------------* 
STGCODES DS    0H                                                       
         L     R15,STGRTCD          GET FAILING RETURN CODE             
         CVD   R15,STGRCDEC         CONVERT TO PACKED DECIMAL           
                                                                
UNPK  ZRETCODE,STGRCDEC    CONVERT TO ZONED DECIMAL            
         OI    ZRETCODE+3,X'F0'     CORRECT FINAL ZONE                  
         CVD   R0,PRSNCODE          CONVERT TO PACKED DECIMAL           
         MVC   TRANMSG,RETREAS      MOVE TEXT TO RESPONSE AREA          
         BR    R9                   RETURN TO CALLER                    
         EJECT ,  
*---------------------------------------------------------------------* 
*                                                                     * 
*        WRITE THE TRANSACTION RESPONSE                               * 
*                                                                     * 
*---------------------------------------------------------------------* 
CUARESP  DS    0H                                                       
         PUT   OUTDCB,TRANSACT      WRITE TRANSACTION RESPONSE          
         WTO   TEXT=TRANLEN,        WRITE RESPONSE TO OPERATOR         +
               ROUTCDE=(3,5)          SEND TO TAPE POOL, TAPE LIBRARY   
         BR    R9                   RETURN TO CALLER                    
         TITLE 'CONSTANTS AND WORK AREAS'                               
*---------------------------------------------------------------------* 
*                                                                     * 
*        CONSTANTS AND WORK AREAS                                     * 
*                                                                     * 
*---------------------------------------------------------------------* 
         LTORG ,                    LITERAL CONSTANTS                   
         EJECT ,                                                        
*---------------------------------------------------------------------* 
*                                                                     * 
*        DATA CONTROL BLOCKS                                          * 
*                                                                     * 
*---------------------------------------------------------------------* 
INDCB    DCB   DDNAME=INDD,         INPUT:  TRANSACTION REQUESTS       +
               DSORG=PS,                                               +
               MACRF=GM,                                               +
               EODAD=EXIT                                               
         EJECT ,                                                        
OUTDCB   DCB   DDNAME=OUTDD,        OUTPUT:  RESULT NOTIFICATION       +
               MACRF=PM,                                               +
               DSORG=PS,                                               +
               RECFM=FB,                                               +
               LRECL=80,                                               +
               BLKSIZE=400                                              
         EJECT ,                                                        
*---------------------------------------------------------------------* 
*                                                                     * 
*        CBRSPLCS TRANSACTION RECORD AND RESPONSE AREA                * 
*                                                                     * 
*---------------------------------------------------------------------* 
TRANLEN  DC    AL2(L'TRANSACT)      LENGTH FOR WTO TEXT                 
TRANSACT DS    0CL80                TRANSACTION RECORD                  
TRANCODE DS    CL1                  TRANSACTION CODE                    
TRANEJCT EQU   C'E'                 EJECT VOLUME FROM LIBRARY           
TRANCHGP EQU   C'P'                 CHANGE VOLUME USE ATTRIBUTE TO      
*                                     PRIVATE                           
TRANCHGS EQU   C'S'                 CHANGE VOLUME USE ATTRIBUTE TO      
*                                     SCRATCH                           
TRANIMP  EQU   C'I'                 IMPORT FUNCTION                     
TRANEXP  EQU   C'X'                 EXPORT FUNCTION                     
TRANMCE  EQU   C'M'                 MANUAL CARTRIDGE ENTRY              
TRANMOD  DS    CL1                  TRANSACTION CODE MODIFIER           
TRANVER  EQU   C'V'                 VERIFY VOLUME RESIDES IN LIBRARY    
*                                     BEFORE EXECUTING REQUEST          
             DS    CL1                  SEPARATOR                           
TRANVOL  DS    CL6                  VOLUME SERIAL NUMBER                
         DS    CL1                  SEPARATOR                           
TRANSPEC DS    CL25                 REQUEST-SPECIFIC AREA               
         ORG   TRANSPEC             VOLUME EJECT SECTION                
TRANDEST DS    CL1                  EJECT DESTINATION                   
TRANCONV EQU   C'C'                 CONVENIENCE OUTPUT STATION          
TRANBULK EQU   C'B'                 HIGH CAPACITY OUTPUT STATION        
         ORG   TRANSPEC             IMPORT/EXPORT SECTION               
TRANCOPT DS    CL1                  CANCEL AREA                   
TRANCAN  EQU   C'C'                 CANCEL REQUEST                      
         ORG   TRANSPEC             CHANGE USE ATTRIBUTE SECTION        
TRANSGRP DS    CL8                  STORAGE GROUP NAME FOR CHANGE TO    
*                                     PRIVATE                           
         ORG   TRANSPEC             MCE SECTION                         
TRANLIBN DS    CL8                  LIBRARY NAME INTO WHICH VOLUME      
*                                     IS TO BE ENTERED                  
         DS    CL1                  SEPARATOR                           
TRANMEDT DS    CL1                  OPTIONAL MEDIA TYPE OF VOLUME       
         ORG   ,                    RESTORE LOCATION COUNTER            
TRANMSG  DS    CL45                 TRANSACTION COMPLETION MESSAGE      
         EJECT ,                                                        
*---------------------------------------------------------------------* 
*                                                                     * 
*        CBRXLCS PARAMETER LISTS                                      * 
*                                                                     * 
*---------------------------------------------------------------------* 
         CBRXLCS  MF=(L,LCSLIST)    LCS EXTERNAL SERVICES PARM LIST     
         SPACE 2                                                        
         CBRXLCS  MF=(L,LCSMODEL)   LCS EXTERNAL SERVICES MODEL LIST    
         EJECT ,                                                        
                                                
*---------------------------------------------------------------------* 
*                                                                     * 
*        MISCELLANEOUS WORK AREAS                                     * 
*                                                                     * 
*---------------------------------------------------------------------* 
SAVE     DC    18F'0'               STANDARD SAVE AREA                  
         SPACE 2                                                        
PRETCODE DC    D'0'                 CBRXLCS RETURN CODE - PACKED DEC    
PRSNCODE DC    D'0'                 CBRXLCS REASON CODE - PACKED DEC    
         SPACE 2                                                        
RETREAS  DS    0CL45                                                    
ERRFUNC  DC    CL5' '               QVR, CUA, EJECT, IMP, EXP, OR MCE   
         DC    CL15' RETURN CODE = '                                    
ZRETCODE DC    CL4' '               CBRXLCS RETURN CODE - ZONED DEC     
         DC    CL16', REASON CODE = '                                   
ZRSNCODE DC    CL4' '               CBRXLCS REASON CODE - ZONED DEC     
         DC    CL1'.'                                                   
         SPACE 2                                                        
PASSTHRU DC    CL16'SIMP'           PASSTHRU VALUE FOR EJECT, CUA       
         SPACE 2                                                        
MCEADDR  DC    A(0)                 ADDR OF GOTTEN MCE STORAGE          
STGRTCD  DC    F'0'                 RETURN CODE FOR STORAGE CALL        
STGRCDEC DC    D'0'                 PACKED DECIMAL STORAGE RC           
         SPACE 2                                                        
         END   CBRSPLCS 

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014