*DECK DB$SR84 
USETEXT MD10CTX 
USETEXT MDBCMTX 
USETEXT UTMPTTX 
      PROC DB$SR84; 
      BEGIN 
 #
* *   DB$SR84 - REPLACE JOB CONTROL INFORMATION  PAGE 1 
* *             IN SCHEMA INFORMATION TABLE (SIT) 
* *   J. G. SERPA                                DATE 02/11/81
* *   R. M. PAPPE                                DATE 06/30/81
* *   KIM H. NGUYEN                              DATE  11/09/84 
* 
* DC  PURPOSE 
* 
*     REPLACE CDCS JOB CONTROL INFORMATION IN THE SCHEMA INFORMATION
*     TABLE.
* 
* DC  ENTRY CONDITIONS
* 
*     CCLPROCNAME    -  CONTAINS THE CCLPROC FILE NAME
*     CHARGE         -  CONTAINS THE ACCOUNT/CHARGE 
*     CHARGELEN      -  CONTAINS THE LENGTH IN CHARACTERS OF THE CHARGE 
*     DENSITY        -  CONTAINS THE TAPE DENSITY FOR DBREC USE 
*     JOBFAM         -  CONTAINS THE FAMILY NAME
*     JOBPW          -  CONTAINS THE PASSWORD 
*     JOBUN          -  CONTAINS THE USER NAME
*     MDSIJOBP       -  CONTAINS THE POINTER TO THE JOB CONTROL 
*                       INFORMATION IN THE SCHEMA INFORMATION TABLE 
*     SCDRBP         -  CONTAINS THE ADDRESS OF THE SCHEMA DIRECTORY TAB
*     SCHDIRP        -  CONTAINS THE INDEX INTO THE CURRENT SCHEMA ENTRY
*     SCHNAME        -  CONTAINS THE NAME OF THE CURRENT SCHEMA 
*     TRACKTYPE      -  CONTAINS THE TAPE TYPE
* 
* DC  EXIT CONDITIONS 
* 
*     IF JOB CONTROL INFORMATION WAS NOT SPECIFIED IN THE OLD MASTER
*     DIRECTORY FILE, DIAGNOSTIC 150 IS ISSUED. OTHERWISE, THE
*     JOB CONTROL INFORMATION IN THE SCHEMA INFORMATION TABLE IS
*     REPLACED. RETURN IS TO DB$NO. 
* 
* DC  CALLING ROUTINES
* 
*     DB$SNTX - SYNTAX CRACKER (SYNGEN) 
* 
* DC  CALLED ROUTINES 
* 
# 
      XREF PROC DB$DIAG;           # ISSUE DIAGNOSTICS                 #
      XREF PROC DB$NO;             # SYNTAX TABLE DRIVER -NO- RETURN   #
# 
* 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
*     FIELDS MDJOBUN, MDJOBPW, MDJOBFAM, MDJOBCHGLEN, MDJOBCHARGE,
*     MDJOBTTYP, MDJOBTDEN, MDJOBACCESS, MDJOBCCLNAME, AND
*     MDJOBCCLFLAG IN THE SCHEMA INFORMATION TABLE,  AND FIELD
*     MDSCSISZ (SIZE OF SIT) IN THE SCHEMA DIRECTORY TABLE ARE
*     MODIFIED. 
* 
* DC  DESCRIPTION 
* 
*     CHECK IF JOB CONTROL INFORMATION WAS SPECIFIED IN THE OLD MD. 
*     THIS IS DONE BY CHECKING THE OFFSET POINTER MDSIJOBP. IF THIS 
*     FIELD IS ZERO, ISSUE DIAGNOSTIC 150 AND EXIT TO DB$NO.
*     SAVE THE CURRENT POINTER TO THE JOB CONTROL INFORMATION 
*     TABLE, THEN POSITION BASED ARRAY MDJOBINFO TO OVERLAY THE 
*     JOB CONTROL INFORMATION IN THE SCHEMA INFORMATION TABLE.
*     MOVE THE USER NAME, PASSWORD, FAMILY NAME, CHARGE INFORMATION,
*     TAPE TYPE, TAPE DENSITY, AND CCLPROC FILE NAME TO THE SCHEMA
*     INFORMATION TABLE.
*     STORE THE NEW LENGTH OF THE SCHEMA INFORMATION TABLE IN THE 
*     SCHEMA DIRECTORY TABLE, AND RETURN VIA DB$NO. 
* 
 #
        CONTROL EJECT;
  
#     LOCAL ARRAYS AND ITEMS                                           #
  
      BASED ARRAY MDSCENTRY [0:0] S(1);  # SCHEMA DIRECTORY TABLE      #
        BEGIN 
*CALL MDSCDDCLS              SCHEMA DIRECTORY 
        END 
  
      BASED ARRAY MDJOBINFO [0:0] S(1);   # JOB CONTROL INFORMATION    #
        BEGIN 
*CALL MDJOBDCLS              JOB CONTROL INFORMATION
        END 
  
        CONTROL EJECT;
  
        IF MDSIJOBP[0] EQ 0        # JOB CONTROL INFO NOT SPECIFIED    #
        THEN
          BEGIN 
          DB$DIAG(150,SCHNAME);    # ERROR                             #
          DB$NO;
  
          END 
  
# OVERLAY BASE ARRAY MDJOBINFO ON JOB CONTROL INFORMATION              #
  
        P<MDJOBINFO> = LOC(MDSCINFO) + MDSIJOBP[0]; 
        MDJOBUN[0] = JOBUN;            # REPLACE USER NAME             #
        MDJOBPW[0] = JOBPW;          # REPLACE PASSWORD                #
        MDJOBFAM[0] = JOBFAM;        # REPLACE FAMILY NAME             #
        MDJOBCHGLEN[0] = CHARGELEN;  # REPLACE CHARGE LENGTH           #
        MDJOBCHARGE[0] = CHARGE;     # REPLACE CHARGE                  #
        IF TAPEFLAG[0]
        THEN
          BEGIN 
          MDJOBTTYP[0] = TRACKTYPE;  # REPLACE TAPE TYPE               #
          MDJOBTDEN[0] = DENSITY;    # REPLACE TAPE DENSITY            #
          MDJOBCCLFLAG[0] = FALSE;   # REPLACE CCLPROC FLAG            #
          END 
  
  
        IF PROCFLAG[0]
        THEN
          BEGIN 
          MDJOBCCLNAME[0] = CCLPROCNAME; # REPLACE CCLPROC FILE NAME   #
          MDJOBCCLFLAG[0] = TRUE;        # REPLACE CCLPROC FLAG        #
          IF INDFLAG[0]                  # REPLACE CCLPROC ACCESS FLAG #
          THEN
            MDJOBACCESS[0] = 0; 
          ELSE
            MDJOBACCESS[0] = 1; 
          END 
  
# STORE NEW LENGTH OF SIT INTO SCHEMA DIRECTORY                        #
  
        P<MDSCENTRY> = SCDRBP + 1;   # SET BLOCK POINTER               #
        MDSCSISZ[SCHDIRP] = 
          MDSIJOBP[0] + DFCHRGOFFSET + (CHARGELEN + 9) / 10;
  
  
      DB$NO;                       # EXIT TO DB$STD                    #
  
      END 
      TERM
