This SAMPLIB member is a sample volume not in library installation
exit.
UXVNL TITLE 'CBRUXVNL - VOLUME NOT IN LIBRARY INSTALLATION EXIT'
CBRUXVNL START 0 VOLUME NOT IN LIBRARY INST EXIT
SPACE 2
**** START OF SPECIFICATIONS ******************************************
* *
* MODULE NAME: CBRUXVNL *
* *
* DESCRIPTIVE NAME: SAMPLE VOLUME NOT IN LIBRARY INSTALLATION *
* EXIT *
* *
***********************************************************************
* *
* THIS SAMPLE INSTALLATION EXIT MAY BE USED TO PROVIDE VOLUME *
* NOT IN LIBRARY RECOVERY WHILE THE CUSTOMER IS DEVELOPING AN *
* EXIT WHICH IS MORE CLOSELY TAILORED TO INSTALLATION NEEDS. *
* *
* A DEFAULT VERSION OF CBRUXVNL IS DISTRIBUTED AS PART OF *
* DFSMSrmm. *
* *
***********************************************************************
* *
* FUNCTION: *
* MODULE CBRUXVNL IS INVOKED TO ALLOW THE INSTALLATION TO *
* ENTER A TAPE VOLUME INTO A LIBRARY DURING PROCESSING FOR *
* THE JOB STEP WHICH REQUIRES THE VOLUME. *
* *
* THE EXIT IS ENTERED AT THE FOLLOWING TIMES: *
* *
* 1. JOB STEP SETUP PROCESSING *
* *
* THE DEVICE AND VOLUME REQUIREMENTS FOR THE JOB STEP ARE *
* BEING DETERMINED. *
* *
* THE VOLUME MAY HAVE ONE OF THREE STATES: *
* A. THE VOLUME IS KNOWN TO BE SHELF-RESIDENT. THERE IS *
* A TAPE VOLUME RECORD FOR THE VOLUME IN THE TAPE *
* CONFIGURATION DATA BASE. *
* B. THE VOLUME IS KNOWN TO BE AN EXPORTED LOGICAL *
* VOLUME. THERE IS A TAPE VOLUME RECORD IN THE *
* TAPE CONFIGURATION DATABASE WITH STACKED=VOLSER *
* IN THE SHELF LOCATION FIELD. *
* C. THE VOLUME IS UNKNOWN TO THE SYSTEM. THERE IS NO *
* TAPE VOLUME RECORD FOR THE VOLUME IN THE TCDB, THE *
* VOLUME IS NOT A CURRENTLY MOUNTED DASD VOLUME, AND *
* THE VOLUME IS NOT AN SMS-MANAGED DASD VOLUME. *
* *
* IF THE EXIT CAUSES THE VOLUME TO BE ENTERED INTO A TAPE *
* LIBRARY: *
* A. FOR AN EXISTING DATASET, THE REQUEST WILL BE *
* SMS-MANAGED MOUNTABLE, AND A LIBRARY-RESIDENT TAPE *
* DRIVE WILL BE ALLOCATED. *
* B. FOR A NEW DATASET, THE LIBRARY NAME IS PASSED TO *
* THE ACS FILTER ROUTINES: *
* 1. IF THE FILTER ROUTINES DO NOT MAKE THE REQUEST *
* SMS-MANAGED MOUNTABLE, A NON-LIBRARY-RESIDENT *
* TAPE DRIVE IS ALLOCATED. WHEN A MOUNT REQUEST *
* IS LATER ISSUED, THE VOLUME WILL HAVE TO BE *
* EJECTED FROM THE LIBRARY BEFORE IT CAN BE *
* MOUNTED ON THE DRIVE. *
* 2. IF THE FILTER ROUTINES MAKE THE REQUEST *
* SMS-MANAGED MOUNTABLE, AND THE LIBRARY INTO *
* WHICH THE VOLUME WAS ENTERED IS NOT INCLUDED IN *
* ANY OF THE SELECTED TAPE STORAGE GROUPS, SMS *
* FAILS THE JOB. *
* 3. IF THE FILTER ROUTINES MAKE THE REQUEST *
* SMS-MANAGED MOUNTABLE, AND THE LIBRARY INTO *
* WHICH THE VOLUME WAS ENTERED IS INCLUDED IN ONE *
* OF THE SELECTED TAPE STORAGE GROUPS, A LIBRARY- *
* RESIDENT TAPE DRIVE WILL BE ALLOCATED. *
* *
* IF THE EXIT TAKES NO ACTION: *
* A. FOR AN EXISTING DATASET, THE REQUEST WILL BE *
* NON-SMS-MANAGED, AND A NON-LIBRARY-RESIDENT TAPE *
* DRIVE WILL ULTIMATELY BE ALLOCATED. *
* B. FOR A NEW DATASET, A NULL LIBRARY NAME IS PASSED TO *
* THE ACS FILTER ROUTINES: *
* 1. IF THE FILTER ROUTINES MAKE THE REQUEST SMS- *
* MANAGED MOUNTABLE, SMS FAILS THE JOB. *
* 2. IF THE FILTER ROUTINES DO NOT MAKE THE REQUEST *
* SMS-MANAGED MOUNTABLE, A NON-LIBRARY-RESIDENT *
* TAPE DRIVE IS ALLOCATED. *
* *
* 2. DEVICE ALLOCATION PROCESSING *
* *
* JOB STEP SETUP PROCESSING HAS DESIGNATED THE REQUEST AS *
* SMS-MANAGED MOUNTABLE, BUT THE VOLUME HAS BEEN EJECTED *
* FROM ITS LIBRARY. *
* *
* THE VOLUME STATES ARE THE SAME AS FOR JOB STEP SETUP *
* PROCESSING. *
* *
* IN A JES2 ENVIRONMENT, IF THE EXIT CAUSES THE VOLUME TO *
* BE ENTERED INTO ANY TAPE LIBRARY, THEN A LIBRARY- *
* RESIDENT TAPE DRIVE WILL BE ALLOCATED. *
* *
* IN A JES3 ENVIRONMENT, THE EXIT MUST CAUSE THE VOLUME TO *
* BE ENTERED INTO THE SAME LIBRARY IN WHICH IT RESIDED *
* DURING JOB STEP SETUP PROCESSING. IN THIS CASE, A *
* LIBRARY-RESIDENT TAPE DRIVE WILL BE SUCCESSFULLY *
* ALLOCATED. IF THE EXIT CAUSES THE VOLUME TO BE ENTERED *
* INTO A DIFFERENT LIBRARY, THEN THE JOB STEP WILL FAIL. *
* *
* IF THE EXIT TAKES NO ACTION, THEN THE JOB STEP WILL *
* FAIL. *
* *
* 3. LIBRARY MOUNT PROCESSING *
* *
* THE SYSTEM IS ATTEMPTING TO MOUNT THE VOLUME ON A *
* LIBRARY-RESIDENT TAPE DRIVE. *
* *
* THE VOLUME MAY HAVE ONE OF FIVE STATES: *
* A. THE VOLUME IS KNOWN TO BE SHELF-RESIDENT. THERE IS *
* A TAPE VOLUME RECORD FOR THE VOLUME IN THE TCDB. *
* B. THE VOLUME IS KNOWN TO RESIDE IN A DIFFERENT *
* LIBRARY. THERE IS A TAPE VOLUME RECORD FOR THE *
* VOLUME IN THE TCDB. *
* C. THE VOLUME IS KNOWN TO RESIDE IN THE CORRECT *
* LIBRARY, BUT VOLUME EJECTION IS ALREADY IN PROGRESS *
* AND CANNOT BE CANCELED. THERE IS CURRENTLY A TAPE *
* VOLUME RECORD IN THE TCDB, BUT THIS MAY BE PURGED *
* WHEN VOLUME EJECTION COMPLETES. *
* D. THE VOLUME IS UNKNOWN TO THE SYSTEM. THERE IS NO *
* TAPE VOLUME RECORD FOR THE VOLUME IN THE TCDB. *
* E. THE VOLUME IS KNOWN TO BE AN EXPORTED LOGICAL *
* VOLUME. THERE IS A TAPE VOLUME RECORD IN THE *
* TAPE CONFIGURATION DATABASE WITH STACKED=VOLSER *
* IN THE SHELF LOCATION FIELD. *
* *
* NOTE: IF A LOGICAL VOLUME IS EXPORT PENDING OR IN *
* PROCESS OF BEING EXPORTED, THE VOLUME NOT IN LIBRARY *
* INSTALLATION EXIT WILL NOT BE INVOKED. FOR THE EXIT *
* TO BE INVOKED FOR A LOGICAL VOLUME, IT MUST HAVE *
* COMPLETED THE EXPORT PROCESS. *
* *
* IF THE EXIT CAUSES THE VOLUME TO BE ENTERED INTO THE *
* TAPE LIBRARY WHERE THE DRIVE RESIDES, THE VOLUME MOUNT *
* WILL BE RETRIED. *
* *
* IF THE EXIT TAKES NO ACTION, THEN THE JOB STEP WILL *
* FAIL. *
* *
* *
* NOTES: *
* *
* CHARACTER CODE: EBCDIC *
* *
* RESTRICTIONS: NONE *
* *
* REGISTER CONVENTIONS: *
* R0 - WORK REGISTER *
* R1 - STANDARD LINKAGE REGISTER *
* - PARAMETER LIST ADDRESS *
* - WORK REGISTER *
* R2 - NOT USED *
* R3 - NOT USED *
* R4 - NOT USED *
* R5 - NOT USED *
* R6 - NOT USED *
* R7 - NOT USED *
* R8 - SHFLOCFD BASE REGISTER *
* R9 - RETURN CODE WORK REGISTER *
* R10 - CBRUXVNL WORKING STORAGE BASE REGISTER *
* R11 - UXNPL BASE REGISTER *
* R12 - CBRUXVNL 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 *
* - WORK REGISTER *
* *
* MODULE TYPE: CONTROL SECTION *
* *
* PROCESSOR: ASSEMBLER H *
* *
* ATTRIBUTES: *
* *
* LOCATION: JOB PACK AREA SUBPOOL 252 *
* STATE: CALLER'S *
* AMODE: 31 *
* RMODE: ANY *
* KEY: CALLER'S *
* MAY BE DIFFERENT FROM JOB KEY *
* MODE: TASK *
* SERIALIZATION: UNLOCKED *
* TYPE: REUSABLE *
* REENTRANT *
* REFRESHABLE *
* AUTHORIZATION: APF AUTHORIZED *
* *
* LINKAGE: STANDARD LINKAGE CONVENTIONS *
* *
* CALLING SEQUENCE: *
* CBRUXVNL IS INVOKED USING THE MVS LINK MACRO. *
* *
* INPUT: *
* AT ENTRY TO CBRUXVNL, REGISTER 1 CONTAINS THE ADDRESS OF *
* THE VOLUME NOT IN LIBRARY INSTALLATION EXIT PARAMETER LIST. *
* THE PARAMETER LIST FORMAT IS GIVEN BY MAPPING MACRO *
* CBRUXNPL. *
* *
* OUTPUT: *
* A RETURN CODE IS PLACED IN REGISTER 15: *
* CODE MEANING *
* 0 CONTINUE NORMAL PROCESSING OF THIS REQUEST. NO *
* CHANGE HAS BEEN MADE TO TAPE VOLUME RESIDENCE. *
* 4 RETRY THE CURRENT OPERATION. THE TAPE VOLUME HAS *
* BEEN ENTERED INTO THE APPROPRIATE LIBRARY. *
* 8 CANCEL THE JOB IMMEDIATELY. *
* 12 NOT USED. *
* 16 DO NOT INVOKE THE VOLUME NOT IN LIBRARY *
* INSTALLATION EXIT AGAIN. CONTINUE NORMAL *
* PROCESSING OF THE CURRENT REQUEST. NO CHANGE HAS *
* BEEN MADE TO TAPE VOLUME RESIDENCE. *
* *
* EXIT NORMAL: *
* RETURN TO THE CALLER WITH ONE OF THE RETURN CODES DESCRIBED *
* ABOVE. *
* *
* EXIT ERROR: NONE *
* *
* EXTERNAL REFERENCES: *
* *
* ROUTINES: NONE *
* *
* CONTROL BLOCKS: *
* CBRUXNPL - VOLUME NOT IN LIBRARY INSTALLATION *
* EXIT PARAMETER LIST - R/O *
* *
* EXECUTABLE MACROS: *
* FREEMAIN *
* GETMAIN *
* RETURN *
* SAVE *
* WAIT *
* WTO *
* WTOR *
* *
* MESSAGES: VNL001 VOLUME NOT IN LIBRARY EXIT *
* VOLUME (VOLSER) UNKNOWN TO SYSTEM *
* ON STACKED (VOLSER) *
* SHELF-RESIDENT *
* EJECT IN PROGRESS *
* IN LIBRARY (LIBNAME) *
* DURING JOB STEP SETUP *
* DEVICE ALLOCATION *
* LIBRARY MOUNT *
* ENTER INTO ANY LIBRARY *
* LIBRARY (LIBNAME) *
* *
* VNL002 REPLY 'CONT', 'RETRY', 'CANCEL', OR 'DISABLE' *
* *
* ABEND CODES: NONE *
**** END OF SPECIFICATIONS ********************************************
TITLE 'CBRUXNPL - VOLUME NOT IN LIBRARY EXIT PARAMETER LIST'
CBRUXNPL , VOLUME NOT IN LIBRARY PARAMETERS
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 'SHELF LOCATION FIELD FORMAT'
*---------------------------------------------------------------------*
* *
* SHELF LOCATION FIELD FORMAT. THE FOLLOWING DSECT *
* MAPS TO THE DEFAULT SHELF LOCATION FIELD. *
* *
*---------------------------------------------------------------------*
SHFLOCFD DSECT , MAPS THE TCDB SHELF LOC FIELD
STKVOLTX DS CL8 STACKED= VOLUME TEXT
STKVOLSR DS CL6 VOLSER FOR THE STACKED VOLUME
DS CL18 AVAILABLE
SPACE 2
TITLE 'CBRUXVNL WORKING STORAGE'
*---------------------------------------------------------------------*
* *
* CBRUXVNL WORKING STORAGE *
* *
*---------------------------------------------------------------------*
VNLWORK DSECT , CBRUXVNL WORKING STORAGE
SPACE 2
SAVE DS 18F CBRUXVNL SAVE AREA
SPACE 2
*---------------------------------------------------------------------*
* *
* MULTI-LINE WTO PARAMETER LIST *
* *
*---------------------------------------------------------------------*
WTOLIST WTO TEXT=((,C),(,D),(,D),(,DE)), +
ROUTCDE=(3,5), +
CONSNAME=, +
MF=L
WTOLISTL EQU *-WTOLIST
SPACE 2
*---------------------------------------------------------------------*
* *
* MULTI-LINE WTO TEXT LINES *
* *
*---------------------------------------------------------------------*
CTRLLINE DS 0F MLWTO CONTROL LINE
DS AL2 LENGTH OF MESSAGE TEXT
DS C'VNL001 VOLUME NOT IN LIBRARY EXIT'
CTRLLEN EQU *-CTRLLINE LENGTH OF CONTROL LINE
SPACE 2
VOLLINE DS 0F VOLUME INFORMATION LINE
DS AL2 LENGTH OF MESSAGE TEXT
DS C'VOLUME '
VOLSER DS CL6 MISSING VOLUME SERIAL NUMBER
DS C' '
VOLSTATE DS CL19'UNKNOWN TO SYSTEM ' ERROR ASSOCIATED WITH VOLUME
VOLLEN EQU *-VOLLINE LENGTH OF VOLUME INFORMATION LINE
SPACE 2
VOLLOGCL DS 0CL19 WHERE THE LOGICAL VOLUME LIVES
DS C'ON STACKED '
VOLSTKVS DS CL6 VOLSER FOR THE STACKED VOLUME
DS CL2' '
SPACE 2
VOLLIBER DS 0CL19 VOLUME IN WRONG LIBRARY ERROR
DS C'IN LIBRARY '
VOLCLIB DS CL8 LIBRARY WHERE VOLUME RESIDES
SPACE 2
STAGLINE DS 0F PROCESSING STAGE LINE
DS AL2 LENGTH OF MESSAGE TEXT
DS C'DURING '
STAGE DS CL17'JOB STEP SETUP ' PROCESSING STAGE
STAGLEN EQU *-STAGLINE LENGTH OF PROCESSING STAGE LINE
SPACE 2
ACTLINE DS 0F ACTION REQUIRED LINE
DS AL2 LENGTH OF MESSAGE TEXT
DS C'ENTER INTO '
ACTLIB DS CL16'ANY LIBRARY ' TARGET LIBRARY IDENTIFICATION
ACTLEN EQU *-ACTLINE LENGTH OF ACTION REQUIRED LINE
SPACE 2
ACTSPLIB DS 0CL16 SPECIFIC TARGET LIBRARY TEXT
DS C'LIBRARY '
ACTTLIB DS CL8 TARGET LIBRARY NAME
SPACE 2
*---------------------------------------------------------------------*
* *
* WTOR PARAMETER LIST AND RELATED FIELDS *
* *
*---------------------------------------------------------------------*
WTORLIST WTOR TEXT=(,,,), +
ROUTCDE=(3,5), +
CONSNAME=, +
MF=L
WTORLSTL EQU *-WTORLIST
SPACE 2
WTORECB DS F WTOR EVENT CONTROL BLOCK
WTORREP DS CL7 WTOR REPLY AREA
SPACE 2
WORKEND DS 0D END OF CBRUXVNL WORKING STORAGE
WORKLEN EQU *-VNLWORK CBRUXVNL WORKING STORAGE LENGTH
TITLE 'CBRUXVNL - VOLUME NOT IN LIBRARY INSTALLATION EXIT'
*---------------------------------------------------------------------*
* *
* CBRUXVNL ENTRY POINT *
* *
*---------------------------------------------------------------------*
CBRUXVNL CSECT , VOLUME NOT IN LIBRARY INST EXIT
CBRUXVNL AMODE 31
CBRUXVNL RMODE ANY
SAVE (14,12),, SAVE CALLER'S REGISTERS AND +
'CBRUXVNL&SYSDATE' MARK ENTRY POINT
LR R12,R15 COPY ENTRY POINT ADDRESS
USING CBRUXVNL,R12 CBRUXVNL BASE REGISTER
LR R11,R1 COPY PARAMETER ADDRESS
USING UXNPL,R11 VOLUME NOT IN LIBRARY PARAMETERS
LA R8,UXNSHLOC ADDRESS OF THE TCDB SHELF LOC
USING SHFLOCFD,R8 SHELF LOCATION FIELD
GETMAIN RU, GETMAIN WORKING STORAGE FROM +
LV=WORKLEN, SUBPOOL 230 TO GET PSW KEY +
SP=230 STORAGE
LR R10,R1 SAVE WORKING STORAGE ADDRESS
USING VNLWORK,R10 CBRUXVNL WORKING STORAGE
LR R14,R1 START ADDRESS OF TARGET AREA
LA R15,WORKLEN TARGET LENGTH
LR R0,R1 START ADDRESS OF SOURCE AREA
SR R1,R1 ZERO SOURCE LENGTH AND PAD BYTE
MVCL R14,R0 CLEAR WORKING STORAGE
ST R13,SAVE+4 BACKWARD CHAIN SAVE AREAS
LA R0,SAVE CBRUXVNL SAVE AREA ADDRESS
ST R0,8(,R13) FORWARD CHAIN SAVE AREAS
LR R13,R0 SET CBRUXVNL SAVE AREA ADDRESS
EJECT ,
***********************************************************************
***********************************************************************
* *
* AT THIS POINT, A CALL TO THE INSTALLATION TAPE MANAGEMENT *
* SYSTEM SHOULD BE MADE TO GATHER INFORMATION ABOUT THE *
* VOLUME. *
* *
***********************************************************************
***********************************************************************
EJECT ,
*---------------------------------------------------------------------*
* *
* COPY THE MODEL WTO PARAMETER LIST TO DYNAMIC STORAGE *
* *
*---------------------------------------------------------------------*
MVC WTOLIST(WTOLISTL),WTOMODEL WTO PARAMETER LIST
MVC CTRLLINE(CTRLLEN),CTRLMODL MLWTO CONTROL LINE
MVC VOLLINE(VOLLEN),VOLMODL VOLUME INFORMATION LINE
MVC STAGLINE(STAGLEN),STAGMODL PROCESSING STAGE LINE
MVC ACTLINE(ACTLEN),ACTMODL ACTION REQUIRED LINE
SPACE 2
*---------------------------------------------------------------------*
* *
* COMPLETE THE TEXT INSERTS FOR THE MULTI-LINE WTO *
* *
*---------------------------------------------------------------------*
MVC VOLSER,UXNVOLSR SET VOLUME SERIAL NUMBER
CLI UXNERROR,UXNNTCDB VOLUME UNKNOWN TO SYSTEM?
BE VNL1600 YES. GO CHECK PROCESSING STAGE
CLI UXNERROR,UXNSHELF VOLUME SHELF-RESIDENT?
BE VNL1200 YES. GO SET INSERT
CLI UXNERROR,UXNEJECT VOLUME EJECT IN PROGRESS?
BE VNL1400 YES. GO SET INSERT
MVC VOLLIBER,=CL19'IN LIBRARY LIB-NAME' WRONG LIBRARY
MVC VOLCLIB,UXNLIBRS LIBRARY WHERE VOLUME NOW RESIDES
MVC VOLSTATE,VOLLIBER SET DIFFERENT LIBRARY INSERT
B VNL1600 GO CHECK PROCESSING STAGE
VNL1200 DS 0H
CLC STKVOLTX,=CL8'STACKED=' COMPARE SHELF LOC FIELD
BE VNL1300 YES. GO SET SHELF LOCATION
MVC VOLSTATE,=CL19'SHELF-RESIDENT'
B VNL1600 GO CHECK PROCESSING STAGE
VNL1300 DS 0H
MVC VOLLOGCL,=CL19'ON STACKED VOLSER ' STACKED VOLUME
MVC VOLSTKVS,STKVOLSR
MVC VOLSTATE,VOLLOGCL
B VNL1600 GO CHECK PROCESSING STAGE
VNL1400 DS 0H
MVC VOLSTATE,=CL19'EJECT IN PROGRESS'
VNL1600 DS 0H
CLI UXNWHERE,UXNSETUP JOB STEP SETUP PROCESSING?
BE VNL2000 YES. GO SET ACTION
CLI UXNWHERE,UXNALLOC DEVICE ALLOCATION PROCESSING?
BE VNL1800 YES. GO SET INSERT
MVC STAGE,=CL17'LIBRARY MOUNT' SET LIBRARY MOUNT INSERT
B VNL2000 GO SET ACTION
VNL1800 DS 0H
MVC STAGE,=CL17'DEVICE ALLOCATION' SET ALLOCATION INSERT
VNL2000 DS 0H
CLC UXNLIB,=CL8' ' TARGET LIBRARY UNKNOWN?
BE VNL3000 YES. GO ISSUE MLWTO
MVC ACTSPLIB,=CL16'LIBRARY LIB-NAME' TARGET LIBRARY TEXT
MVC ACTTLIB,UXNLIB LIBRARY WHERE VOLUME NEEDED
MVC ACTLIB,ACTSPLIB SET TARGET LIBRARY INSERT
EJECT ,
*---------------------------------------------------------------------*
* *
* ISSUE THE MULTI-LINE WTO *
* *
*---------------------------------------------------------------------*
VNL3000 DS 0H
SR R0,R0 CLEAR R0 BEFORE MULTI-LINE WTO
WTO TEXT=(CTRLLINE,VOLLINE,STAGLINE,ACTLINE), +
CONSNAME=UXNLCON, +
MF=(E,WTOLIST)
EJECT ,
*---------------------------------------------------------------------*
* *
* ISSUE THE WTOR *
* *
*---------------------------------------------------------------------*
MVC WTORLIST(WTORLSTL),WTORMODL COPY WTOR PARAMETER LIST
SR R15,R15 GET CONSTANT ZERO
ST R15,WTORECB CLEAR WTOR ECB
MVC WTORREP,=CL7' ' SET WTOR REPLY AREA TO BLANKS
SR R0,R0 CLEAR R0 BEFORE WTOR
WTOR TEXT=(WTORLINE,WTORREP,L'WTORREP,WTORECB), +
CONSNAME=UXNLCON, +
MF=(E,WTORLIST,EXTENDED)
WAIT 1, WAIT FOR OPERATOR REPLY +
ECB=WTORECB
SPACE 2
*---------------------------------------------------------------------*
* *
* CHECK THE OPERATOR REPLY *
* *
*---------------------------------------------------------------------*
OC WTORREP,=CL7' ' CONVERT RESPONSE TO UPPER CASE
LA R9,UXNNORML SET CONTINUE RETURN CODE
CLC WTORREP,=CL7'CONT' CONTINUE (VOLUME NOT ENTERED)?
BE VNLEXIT YES. EXIT WITH PRESET RETURN CODE
LA R9,UXNRETRY SET RETRY RETURN CODE
CLC WTORREP,=CL7'RETRY' RETRY (VOLUME ENTERED)?
BE VNLEXIT YES. EXIT WITH PRESET RETURN CODE
LA R9,UXNFAIL SET CANCEL RETURN CODE
CLC WTORREP,=CL7'CANCEL' CANCEL JOB STEP?
BE VNLEXIT YES. EXIT WITH PRESET RETURN CODE
LA R9,UXNDONT SET DISABLE EXIT RETURN CODE
CLC WTORREP,=CL7'DISABLE' DISABLE EXIT?
BNE VNL3000 NO. REISSUE MLWTO AND WTOR
EJECT ,
*---------------------------------------------------------------------*
* *
* RETURN TO THE CALLER *
* *
*---------------------------------------------------------------------*
VNLEXIT DS 0H
L R13,SAVE+4 RESTORE CALLER'S SAVE AREA ADDRESS
FREEMAIN RU, RELEASE WORKING STORAGE +
LV=WORKLEN, +
A=(R10), +
SP=230
LR R15,R9 SET RETURN CODE
RETURN (14,12), RESTORE CALLER'S REGISTERS, THEN +
RC=(15) RETURN TO CALLER
TITLE 'CBRUXVNL CONSTANTS'
*---------------------------------------------------------------------*
* *
* CBRUXVNL CONSTANTS *
* *
*---------------------------------------------------------------------*
SPACE 2
LTORG , LITERAL CONSTANTS
SPACE 2
*---------------------------------------------------------------------*
* *
* MODEL MULTI-LINE WTO PARAMETER LIST *
* *
*---------------------------------------------------------------------*
WTOMODEL WTO TEXT=((,C),(,D),(,D),(,DE)), +
ROUTCDE=(3,5), +
CONSNAME=, +
MF=L
SPACE 2
*---------------------------------------------------------------------*
* *
* MODEL MULTI-LINE WTO TEXT LINES *
* *
*---------------------------------------------------------------------*
CTRLMODL DC 0F'0' MLWTO CONTROL LINE MODEL
DC AL2(CTRLMLEN-2)
DC C'VNL001 VOLUME NOT IN LIBRARY EXIT'
CTRLMLEN EQU *-CTRLMODL
SPACE 2
VOLMODL DC 0F'0' VOLUME INFORMATION LINE MODEL
DC AL2(VOLMLEN-2)
DC C'VOLUME '
DC C'VOLSER'
DC C' '
DC CL19'UNKNOWN TO SYSTEM '
VOLMLEN EQU *-VOLMODL
SPACE 2
STAGMODL DC 0F'0' PROCESSING STAGE LINE MODEL
DC AL2(STAGMLEN-2)
DC C'DURING '
DC CL17'JOB STEP SETUP '
STAGMLEN EQU *-STAGMODL
SPACE 2
ACTMODL DC 0F'0' ACTION REQUIRED LINE MODEL
DC AL2(ACTMLEN-2)
DC C'ENTER INTO '
DC CL16'ANY LIBRARY '
ACTMLEN EQU *-ACTMODL
SPACE 2
*---------------------------------------------------------------------*
* *
* MODEL WTOR PARAMETER LIST *
* *
*---------------------------------------------------------------------*
WTORMODL WTOR TEXT=(,,,), +
ROUTCDE=(3,5), +
CONSNAME=, +
MF=L
SPACE 2
*---------------------------------------------------------------------*
* *
* MODEL WTOR TEXT LINE *
* *
*---------------------------------------------------------------------*
WTORLINE DC 0F'0' WTOR MESSAGE TEXT
DC AL2(WTORLEN-2)
DC C'VNL002 REPLY ''CONT'', ''RETRY'', ''CANCEL'', OR ''DIS+
ABLE'''
WTORLEN EQU *-WTORLINE
SPACE 2
END CBRUXVNL