0VU 
          IDENT  0VU,/REL/RVUX
          PERIPH J
          BASE   MIXED
          SST 
 QUAL$    EQU    1
*COMMENT  0VU - VERIFY USER AND JOB.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          TITLE  0VU - VERIFY USER AND JOB. 
          SPACE  4,10 
***       0VU - VERIFY USER AND JOB.
*         P. C. SMITH.       83/02/11.
          SPACE  4,10 
***       *0VU* VALIDATES THE USER NAME SPECIFIED AND THE JOB 
*         TO BE CREATED.  *0VU* IS CALLED BY *0VJ*. 
          SPACE  4,10 
***       ENTRY CONDITIONS. 
* 
*         (OT) = ORIGIN TYPE OF JOB TO BE CREATED.
*         (BFMS) = SYSTEM SECTOR. 
* 
*         SEE *COMS0VU* FOR MORE CONDITIONS.
          SPACE  4,10 
***       EXIT CONDITIONS.
* 
*         (A) .GE. 0. 
* 
*         SYSTEM SECTOR INITIALIZATION COMPLETED. 
* 
*         *0VU* RETURNS DIRECTLY TO THE PROGRAM THAT CALLED *0VJ*.
* 
*         SEE *0VJ* DOCUMENTATION FOR MORE CONDITIONS.
          SPACE  4,10 
          TITLE  MACRO DEFINITIONS. 
 PARAM    SPACE  4,10 
**        PARAM - DEFINE *0VJ*/*0VU* INTERFACE PARAMETER. 
* 
* TAG     PARAM  NUM,VAL
* 
*         ENTRY  TAG = SYMBOLIC NAME FOR LOCATION(S). 
*                NUM = NUMBER OF LOCATIONS TO RESERVE.
*                      (IF NUM = *FIRST*, INITIALIZE BLOCK; 
*                       IF NUM = *LAST*, TERMINATE BLOCK.)
*                VAL = VALUE TO PRESET LOCATION(S) WITH 
*                      (USED ONLY IN *0VJ* VERSION OF MACRO). 
  
  
          PURGMAC  PARAM
  
          MACRO  PARAM,TAG,NUM,VAL
 .A       IFC    EQ,$VAL$$
 .B       IFC    EQ,$NUM$FIRST$ 
          LOC    -ZVPL-5
 TAG      EQU    *
 .B       ELSE
 .C       IFC    EQ,$NUM$LAST$
 TAG      EQU    *
          ERRNZ  *+5         PARAMETER BLOCK LENGTH ERROR 
          LOC    *O 
 .C       ELSE
          ERR                MISSING PARAMETER
 .C       ENDIF 
 .B       ENDIF 
 .A       ELSE
 TAG      EQU    *
          LOC    *+NUM
 .A       ENDIF 
          ENDM
 SCLASS   SPACE  4,15 
**        SCLASS - DEFINE SERVICE CLASS TABLE.
* 
*         SCLASS NM,MN,DF,ST,TX 
* 
*         ENTRY  *NM* = SERVICE CLASS NAME. 
*                *MN* = TWO CHARACTER MNEMONIC. 
*                *DF* = DAYFILE MESSAGE CHARACTER.
*                *ST* = SHORT TEXT FOR *QFTLIST*. 
*                *TX* = TEXT OF SERVICE CLASS NAME FOR BANNER PAGE. 
* 
*         NOTE - THE CALL TO *COMSSCD* MUST FOLLOW THE DEFINITION OF
*                THIS MACRO.
  
  
          PURGMAC  SCLASS 
  
 SCLASS   MACRO  NM,MN,DF,ST,TX 
 .A       IFC    NE,$NM$SSSC$ 
 .SCL     RMT 
          INDEX  NM,1R_DF    TX 
 .SCL     RMT 
 .SCLVSP  RMT 
          INDEX  NM,MN_MK    TX 
 .SCLVSP  RMT 
 .A       ENDIF 
 SCLASS   ENDM
  
  
 COMMON   SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMPMAC 
*CALL     COMPRLI 
*CALL     COMSACC 
*CALL     COMSCPS 
*CALL     COMSDSP 
*CALL     COMSPIM 
 SCL$     EQU    0           ONLY PROCESS CLASSES WITH JCB-S
*CALL     COMSSCD 
*CALL     COMSMLS 
*CALL     COMSSSE 
*CALL     COMSZOL 
          SPACE  4,10 
          LIST   X,G
*CALL     COMS0VU 
          LIST   *
          SPACE  4,10 
****      DIRECT CELLS. 
  
 T8       EQU    16          TEMPORARY STORAGE (USED BY *COMPVID*)
 CN       EQU    30 - 34     ASSEMBLY BUFFER
 JF       EQU    35          INITIAL JOB FIELD LENGTH 
 UN       EQU    40 - 44     TEMPORARY STORAGE (USED BY *COMPVID*)
 OT       EQU    46          ORIGIN TYPE
 ER       EQU    47          ERROR STATUS 
  
****
          TITLE  MAIN ROUTINE.
 RVU      SPACE  4,10 
**        RVU - MAIN ROUTINE. 
  
          ORG    5
  
 RVU      SUBR               ENTRY/EXIT 
          RJM    REL         RELOCATE ADDRESSES 
          LDM    ZVJR        SET *0VJ* RETURN ADDRESS 
          STM    RVU
          RJM    VST         VALIDATE *ST* PARAMETER
          LDM    SCAL 
          ZJN    RVU1.1      IF NO ACCESS LEVEL SPECIFIED 
          LDC.   SCAL 
          RJM    VAL         VALIDATE ACCESS LEVEL
          PJN    RVU1        IF NO ERROR
          AOM    JCEF        SET ERROR FLAG 
          UJN    RVU1.1      CONTINUE 
  
 RVU1     STM    UALL        SAVE ACCESS LEVEL
          STM    JCAL 
 RVU1.1   RJM    RUA         READ USER ACCOUNTING BLOCK 
  
*         VALIDATE SERVICE CLASS AND TIME LIMIT.
  
          RJM    VSC         VALIDATE SERVICE CLASS 
          RJM    VTL         VALIDATE TIME LIMIT
  
*         VALIDATE SECURITY ACCESS LEVELS AND CATEGORIES. 
  
          LDD    MA          SET VALIDATIONS FROM SYSTEM SECTOR 
          CWM.   VASS+5*ASVW,ON 
          LDM    UCNV 
          ZJN    RVU2        IF *USER* COMMAND VALID
          LDD    MA          SET UNLIMITED ACCESS LEVEL VALIDATIONS 
          CWM    RVUA,ON
          LDM    SCAL 
          NJN    RVU2        IF ACCESS LEVEL SPECIFIED ON JOB COMMAND 
          LDN    7           SET MAXIMUM UPPER ACCESS LEVEL LIMIT 
          STM    UALL 
 RVU2     LDD    OT 
          STD    CM+2 
          LDM    LFAL        SET INITIAL JOB ACCESS LEVEL 
          STD    CM+4 
          LDM    UALL        SET UPPER ACCESS LEVEL LIMIT 
          STD    CM+3 
          LDN    VJCS        VALIDATE JOB CREATION PARAMETERS 
          STD    CM+1 
          MONITOR  VSAM 
          LDD    CM+1 
          NJN    RVU2.1      IF JOB MAY NOT BE CREATED
          LDK    SSML        CHECK SYSTEM SECURITY MODE 
          CRD    T0 
          LDD    T0 
          LPN    77 
          ZJN    RVU3        IF UNSECURED SYSTEM
          LDM    JCAL        CHECK IF JOB COMMAND ACCESS LEVEL VALID
          LMN    77 
          ZJN    RVU3        IF NO ACCESS LEVEL ON JOB COMMAND
          LMN    77 
          LMD    CM+3 
 RVU2.1   NJN    RVU4        IF SPECIFIED ACCESS LEVEL NOT VALID
 RVU3     LDD    MA          UPDATE VALIDATION ENTRY IN SYSTEM SECTOR 
          CRM.   VASS+5*ASVW,ON 
          LDM.   IOSS+5*INSQ+3  SET ACCESS LEVEL LIMITS IN QFT ENTRY
          SHN    -11
          SHN    3
          LMD    CM+4        LOWER ACCESS LEVEL LIMIT 
          SHN    3
          LMD    CM+2        INITIAL JOB ACCESS LEVEL 
          SHN    3
          LMD    CM+3        UPPER ACCESS LEVEL LIMIT 
          STM.   IOSS+5*INSQ+3
          UJN    RVU5        CHECK LID ATTRIBUTES 
  
*         SET *JOB COMMAND ERROR* STATUS. 
  
 RVU4     LDN    JCIE        SET JOB COMMAND ERROR CODE 
          STM    JCEC 
          AOM    JCEF        FLAG JOB COMMAND ERROR 
  
*         CHECK VALIDATIONS FOR SPECIFYING LID. 
  
 RVU5     LDM    DLAT 
          ZJP    RVU8        IF DESTINATION LID NOT SPECIFIED 
          SHN    21-11
          PJN    RVU7        IF VALIDATION NOT REQUIRED FOR DLID
          LDM    UCNV 
          NJN    RVU7        IF *USER* NOT VALID
          LDM.   AWSS+3      CHECK USER VALIDATIONS 
          SHN    21-5 
          PJN    RVU6        IF NOT VALIDATED TO SPECIFY LID (*CUST*) 
          SHN    21-4-21+5
          MJN    RVU7        IF VALIDATED TO USE LCN (*CQLK*) 
          LDM    DLAT 
          SHN    21-13
          MJN    RVU7        IF HOST LID
  
*         SET *INVALID LID* ERROR STATUS. 
  
 RVU6     LDN    STIE        SET ERROR CODE 
          STM    JCEC 
          AOM    JCEF        FLAG *JOB COMMAND ERROR* 
          LDN    0           CLEAR ATTRIBUTES 
          STM    DLAT 
          STM    DLID        CLEAR DLID 
          STM    DLID+1 
  
*         SET DESTINATION LID IN QFT / SYSTEM SECTOR. 
  
 RVU7     LDM    DLID        SET DLID 
          STM.   IOSS+INSQ*5+1
          LDM.   IOSS+INSQ*5+2
          LPN    77 
          LMM    DLID+1 
          STM.   IOSS+INSQ*5+2
  
*         RETURN STATUS TO *0VJ* CALLER.
  
 RVU8     LDN    0           CLEAR RETURN STATUS
          STD    ER 
          LDM    DLAT        RETURN DLID ATTRIBUTES 
          STD    CN 
          ZJN    RVU9        IF NO DLID SPECIFIED 
          SHN    21-13
          PJN    RVU10       IF DLID NOT *HOST* LID 
 RVU9     LDM    JCEF 
          ZJN    RVU10       IF NO JOB COMMAND ERROR
          LDM    JCEC        SET JOB COMMAND ERROR CODE 
          STM.   JASS 
          LDN    1           SET *JOB COMMAND ERROR* RETURN STATUS
          STD    ER 
          LDN    DNFL        SET FIELD LENGTH FOR NFL ONLY
          STD    JF 
          LDN    0           SET JOB STEP TIME LIMIT = 10B
          STM.   JTSS 
          LDN    10 
          STM.   JTSS+1 
          LDM    JCEC 
          LMN    IDIE 
          ZJN    RVU12       IF *INVALID LID* ERROR 
 RVU10    LDM    UCNV 
          ZJN    RVU12       IF USER COMMAND VALID
          LDM    ZVJP 
          SHN    21-11
          MJN    RVU11       IF JOB WILL BE ROUTED TO SYSTEM ORIGIN 
 RVUB     LDN    UNIE        * USER NAME/PASSWORD NOT VALID.* 
*         LDN    UCIE        * USER SECURITY COUNT EXHAUSTED.*
          STM.   JASS        SET JOB COMMAND ERROR CODE 
 RVU11    LDN    3           SET *USER COMMAND ERROR* RETURN STATUS 
          STD    ER 
 RVU12    LJM    RVUX        RETURN TO CALLER OF *0VJ*
  
 RVUA     VFD    12/0,12/377,36/0 
          TITLE  SUBROUTINES. 
 CPW      SPACE  4,10 
**        CPW - COMPARE PASSWORDS.
* 
*         ENTRY  (T3) = FWA OF PASSWORD IN USER BLOCK.
*                (PSWD - PSWD+3) = SUPPLIED PASSWORD. 
* 
*         EXIT   (A) = 0 IF PASSWORDS MATCH.
* 
*         USES   CM, T6.
  
  
 CPW      SUBR               ENTRY/EXIT 
          LDN    0
          STD    T6 
          LDD    T3 
          STD    CM 
 CPW1     LDM    PSWD,T6     CHECK NEXT BYTE
          LMI    CM 
          NJN    CPWX        IF NO MATCH
          AOD    CM 
          AOD    T6 
          LMN    3
          NJN    CPW1        IF MORE BYTES TO COMPARE 
          LDM    PSWD,T6     COMPARE LAST CHARACTER 
          LMI    CM 
          SCN    77 
          UJN    CPWX        RETURN 
 RUA      SPACE  4,20 
**        RUA - RETRIEVE USER ACCOUNT BLOCK.
* 
*         ENTRY  (UBAD) = ADDRESS OF USER BLOCK.
*                (SPUI) = SPECIAL USER INDEX FLAG.
*                (UCNV) = USER COMMAND NOT VALID. 
*                (UIDX - UIDX+1) = USER INDEX.
* 
*         EXIT   (UCNV) .NE. 0, IF USER COMMAND ERROR ENCOUNTERED.
*                (RVUB) MODIFIED IF USER SECURITY COUNT EXHAUSTED.
*                USER ACCOUNT BLOCK SET IN SYSTEM SECTOR. 
*                PASSWORD VALIDATED.
*                ENCRYPTED BATCH PASSWORD SET IN SYSTEM SECTOR. 
* 
*         USES   T1, T2, T3, T6.
* 
*         CALLS  VPW. 
* 
*         MACROS EXECUTE. 
  
  
 RUA      SUBR               ENTRY/EXIT 
          LDM    UCNV 
          NJP    RUA2        IF ERROR IN CRACKING USER COMMAND
          LDM    UIDX 
          STD    T1 
          SHN    14 
          LMM    UIDX+1 
          ZJN    RUA1        IF USER NAME / FAMILY NOT VALID
          STD    T2 
          LDM    UBAD        SET USER BLOCK ADDRESS 
          STD    T3 
          STM    RUAA 
          ADK    APSW*5      SET PASSWORD ADDRESS 
          STM    RUAB 
          ADK    ASCV*5-APSW*5
          STM    VSCA        SET SERVICE CLASS VALIDATION MASK ADDRESS
          RJM    VPW         VALIDATE PASSWORD
          ZJN    RUA3        IF PASSWORD IS VALID 
  
*         PASSWORD NOT VALID. 
  
 RUA1     AOM    UCNV        SET *USER COMMAND NOT VALID* STATUS
 RUA2     LDN    ZERL        CLEAR USER NAME/USER INDEX 
          CRM.   ACSS,ON
          UJP    RUAX        RETURN 
  
*         CHECK FOR OTHER ERRORS. 
  
 RUA3     LDM    SPUI 
          ZJN    RUA4        IF USER INDEX .LT. *AUIMX* 
          LDD    OT 
          LMK    SYOT 
          NJN    RUA1        IF NOT *SYOT* JOB
 RUA4     LDM    USCT 
          NJN    RUA5        IF USER SECURITY COUNT NOT EXHAUSTED 
          LDN    UCIE-UNIE   SET ERROR CODE 
          RAM    RVUB 
          UJN    RUA1        SET *USER COMMAND NOT VALID* STATUS
  
*         SAVE USER ACCOUNT BLOCK.
  
 RUA5     LDM.   ACSS+3      SET CREATION USER INDEX
          SCN    77 
          LMD    T1 
          STM.   ACSS+3 
          LDD    T2 
          STM.   ACSS+4 
          LDC    5*ABSS-1    COPY FIRST HALF OF USER BLOCK
          STD    T6 
 RUA6     LDM.   *,T6 
 RUAA     EQU    *-1
          STM.   VASS,T6
          SOD    T6 
          PJN    RUA6        IF MORE BYTES TO MOVE
          LDD    MA          COPY ENCRYPTED BATCH PASSWORD
          CWM.   *,ON 
 RUAB     EQU    *-1         (FWA OF ENCRYPTED BATCH PASSWORD)
          SBN    1
          CRM.   EPSS,ON
          LJM    RUAX        RETURN 
 VPW      SPACE  4,15 
**        VPW - VALIDATE PASSWORD.
* 
*         ENTRY  (PSWD - PSWD+4) = PASSWORD FROM USER COMMAND.
*                (T3) = FWA OF USER ACCOUNT BLOCK.
*                (T1 - T2) = USER INDEX.
* 
*         EXIT   (A) .NE. 0, IF PASSWORD NOT VALID. 
* 
*         USES   T3, CM - CM+4. 
* 
*         CALLS  CPW. 
* 
*         MACROS MONITOR. 
  
  
 VPW      SUBR               ENTRY/EXIT 
          LDK    APSW*5 
          RAD    T3 
          LDM    ZVJP 
          SHN    21-13
          MJP    VPW2        IF PASSWORD VALIDATION NOT REQUIRED
          LDM    PSWD 
          NJN    VPW1        IF PASSWORD PRESENT ON USER COMMAND
          LDM    ZVJP 
          SHN    21-12
          PJN    VPW1        IF FILE NOT PREVIOUSLY ROUTED
  
*         VALIDATE ENCRYPTED PASSWORD FROM SYSTEM SECTOR. 
  
          LDD    MA          COPY ENCRYPTED PASSWORD
          CWM.   EPSS,ON
          SBN    1
          CRM    PSWD,ON
          RJM    CPW         COMPARE PASSWORDS
          ZJN    VPW2        IF PASSWORD MATCHED
          LDN    ZERL        ENCRYPT AND COMPARE NULL PASSWORD
          CRM    PSWD,ON
  
*         ENCRYPT SUPPLIED PASSWORD AND VALIDATE. 
  
 VPW1     LDD    MA          ENCRYPT PASSWORD 
          CWM    PSWD,ON
          LDN    REPS 
          STD    CM+1 
          MONITOR  RDCM 
          LDD    MA 
          CRM    PSWD,ON
          RJM    CPW         COMPARE PASSWORDS
          NJN    VPW3        IF NO MATCH
  
*         CHECK FOR PASSWORD EXPIRATION.
  
 VPW2     LDM.   3,T3        CHECK PASSWORD EXPIRATION DATE 
          LPN    77 
          STD    CM+3 
          SHN    14 
          LMM.   4,T3 
          ZJN    VPW4        IF NONEXPIRING PASSWORD
          STD    CM+4 
          LDN    VEDS        VALIDATE EXPIRATION DATE 
          STD    CM+1 
          MONITOR  VSAM 
          LDD    CM+1 
          ZJN    VPW4        IF PASSWORD NOT EXPIRED
 VPW3     LDN    1           SET ERROR STATUS 
 VPW4     LJM    VPWX        RETURN 
 VSC      SPACE  4,20 
**        VSC - VALIDATE SERVICE CLASS. 
* 
*         ENTRY  (OT) = ORIGIN TYPE.
*                (DLAT) = DESTINATION LID ATTRIBUTES. 
*                (JCSC) = JOB COMMAND SERVICE CLASS, IF SPECIFIED.
*                (UCNV) = *USER* COMMAND NOT VALID. 
*                (VSCA) = ADDRESS OF USER ACCOUNT BLOCK WORD *ASCV*.
* 
*         EXIT   IF VALID, SERVICE CLASS UPDATED IN *IOSS*. 
*                (JCEC) = *SCIE* IF INVALID SERVICE CLASS.
*                (CN+1) = USER DEFAULT SERVICE CLASS FOR ORIGIN TYPE
*                         OF INPUT FILE.
*                (CN+2 - CN+4) = SERVICE CLASS VALIDATION MASK. 
* 
*         USES   T1, T2, T3, CN - CN+4. 
* 
*         CALLS  VSP. 
  
  
 VSC      SUBR               ENTRY/EXIT 
          LDM    UCNV 
          NJN    VSC1        IF *USER* COMMAND NOT VALID
          LDM    DLAT 
          ZJN    VSC0        IF DESTINATION LID NOT SELECTED
          SHN    21-11
          PJN    VSC1        IF VALIDATION NOT REQUIRED FOR DLID
 VSC0     LDD    MA          SET SERVICE CLASS VALIDATION MASK
          CWM    **,ON
 VSCA     EQU    *-1         (ADDRESS OF VALIDATION MASK) 
          SBN    1
          CRD    CN 
          LDM    JCEF 
          NJN    VSCX        IF PREVIOUS JOB COMMAND ERROR
          UJN    VSC2        PRESET SERVICE CLASS 
  
 VSC1     LCN    0           ALLOW ALL SERVICE CLASSES
          STD    CN+2 
          STD    CN+3 
          STD    CN+4 
 VSC2     LDM.   IOSS+SCLQ*5
          SHN    -6 
          LMN    SSSC 
          ZJN    VSCX        IF SUBSYSTEM 
          LMN    SSSC        RESTORE SERVICE CLASS
          STD    T2 
          LDD    OT 
          LMK    SYOT 
          NJN    VSC2.1      IF NOT SYSTEM ORIGIN 
          LDN    SYSC        SET SYSTEM SERVICE CLASS 
          STD    T2 
          UJP    VSC5        RETURN SERVICE CLASS 
  
 VSC2.1   LDM    UCNV 
          NJP    VSC5        IF *USER* COMMAND NOT VALID
          LDN    0           INITIALIZE SERVICE CLASS INDEX 
          STD    CN+1        PRESET INVALID USER DEFAULT SERVICE CLASS
          STD    T2 
          LDM    VSCA        GET USER DEFAULT FOR ORIGIN TYPE OF JOB
          ADK    ASC1*5-ASCV*5
          STD    T1          SET ADDRESS OF USER DEFAULT
          LDD    OT          SET BYTE NUMBER WITH USER DEFAULT
          SHN    -1+22       (DIVIDE BY TWO; PLACE BIT 0 IN SIGN BIT) 
          STM    VSCC 
          PJN    VSC3        IF UPPER SIX BITS ARE USER DEFAULT 
          LDK    PSNI 
          STM    VSCD 
 VSC3     LDM    0,T1 
 VSCC     EQU    *-1         (BYTE NUMBER OF USER DEFAULT)
 VSCD     SHN    -6          CHECK UPPER SIX BITS 
*         PSN                (USER DEFAULT IS IN LOWER SIX BITS)
          LPN    77 
          STD    T1 
 VSC4     LDM    TVSC,T2     GET SERVICE CLASS VALUE
          LMD    T1 
          ZJN    VSC5        IF MATCH 
          AOD    T2 
          LDN    MXSC 
          SBD    T2 
          PJN    VSC4        IF NOT END OF TABLE
          LDM    JCSC 
          NJN    VSC6        IF SERVICE CLASS SPECIFIED ON JOB COMMAND
          UJN    VSC7        RETURN ERROR 
  
 VSC5     LDD    T2          RETURN USER DEFAULT SERVICE CLASS
          STD    CN+1 
          LDN    0           USE THE USER-S SERVICE CLASS VALIDATION
          STD    T3 
          LDM    JCSC 
          NJN    VSC6        IF SERVICE CLASS SPECIFIED ON JOB COMMAND
          LDD    T2 
 VSC6     RJM    VSP         VALIDATE SERVICE CLASS 
          ZJN    VSC9        IF NO ERROR
 VSC7     AOM    JCEF        SET JOB COMMAND ERROR FLAG 
          LDK    SCIE        SET INVALID SERVICE CLASS STATUS 
          STM    JCEC 
 VSC8     UJP    VSCX        RETURN 
  
 VSC9     LDM.   IOSS+SCLQ*5 SET NEW SERVICE CLASS
          SHN    21-5 
          SCN    77 
          LMD    T2 
          SHN    6
          STM.   IOSS+SCLQ*5
          UJN    VSC8        RETURN 
 TVSC     SPACE  4,10 
**        TVSC - TABLE OF VALID USER DEFAULT SERVICE CLASSES. 
  
  
 TVSC     INDEX 
          LIST   D
 .SCL     HERE
          LIST   *
          INDEX  MXSC 
 VST      SPACE  4,10 
**        VST - VALIDATE *ST* PARAMETER.
* 
*         ENTRY  (DLAT) = EXISTING DLID ATTRIBUTES (FROM CALLER). 
*                (DLID) = DESTINATION LID FROM JOB COMMAND. 
* 
*         EXIT   (DLAT) = DLID ATTRIBUTES.
*                (DLID) = 0, IF DLID NOT VALID. 
*                (JCEC) = *IDIE*, IF DLID NOT VALID.
* 
*         USES   T1.
* 
*         CALLS  VID. 
  
  
 VST      SUBR               ENTRY/EXIT 
          LDM    DLID+1      GET DESTINATION LID (FROM JOB COMMAND) 
          SHN    6
          LMM    DLID 
          SHN    6
          ZJN    VSTX        IF NO DESTINATION LID SPECIFIED
          RJM    VID         VALIDATE LID 
          ZJN    VST1        IF NOT VALID LID 
          STD    T1          SAVE DLID ATTRIBUTES 
          LDM    DLAT 
          NJN    VSTX        IF DLID ATTRIBUTES ALREADY SET 
          LDD    T1          SET DLID ATTRIBUTES
          STM    DLAT 
          UJN    VSTX        RETURN 
  
 VST1     LDN    0           CLEAR DLID 
          STM    DLID 
          STM    DLID+1 
          LDN    IDIE        SET *INCORRECT LID* ERROR CODE 
          STM    JCEC 
          AOM    JCEF        FLAG JOB COMMAND ERROR 
          UJN    VSTX        RETURN 
 VTL      SPACE  4,15 
**        VTL - VALIDATE TIME LIMIT.
* 
*         ENTRY  (JTSS - JTSS+1) = TIME LIMIT ENTERED ON JOB CARD.
*                (VASS+5*AHMT+2) = VALIDATION TIME LIMIT INDEX. 
*                (UCNV) = 0, IF VALID USER COMMAND FOUND. 
* 
*         EXIT   (JTSS - JTSS+1) = LESSER OF JOB CARD TIME LIMIT AND
*                VALIDATION TIME LIMIT. 
* 
*         USES   CM.
* 
*         CALLS  TLI. 
  
  
 VTL      SUBR               ENTRY/EXIT 
          LDM    UCNV 
          NJN    VTLX        IF NO VALID USER COMMAND FOUND 
          LDM.   VASS+5*AHMT+2  CHECK VALIDATION TIME LIMIT 
          RJM    TLI
          STD    CM 
          MJN    VTLX        IF UNLIMITED 
          LDM.   JTSS        COMPARE TO TIME LIMIT
          SHN    14 
          LMM.   JTSS+1 
          SHN    -3 
          SBD    CM 
          MJN    VTLX        IF TIME LIMIT .LT. VALIDATION LIMIT
          LDD    CM          REPLACE TIME LIMIT WITH VALIDATION LIMIT 
          SHN    3
          STM.   JTSS+1 
          SHN    -14
          STM.   JTSS 
          UJN    VTLX        RETURN 
          SPACE  4,10 
*         COMMON DECKS. 
  
 TLI$     SET    1
*CALL     COMPCVI 
*CALL     COMPVID 
 VAL$     SET    0           ASSEMBLE ACCESS LEVEL CODE 
 SCH$     SET    0           ASSEMBLE SEARCH CODE 
*CALL     COMPVLC 
 CUV$     EQU    1           CHECK FOR SERVICE CLASS VALID FOR USER 
*CALL     COMPVSP 
          SPACE  4,10 
          HERE
          SPACE  4,10 
          OVERFLOW 5,ZVUL 
  
          END 
