*DECK DB$DSMF 
      PROC DB$DSMF; 
      BEGIN 
 #
* *   DB$DSMF - MANIPULATION OF SYNTAX FLAGS     PAGE  1
* *   C F RICHARDS                               DATE  11/27/78 
* 
* DC  PURPOSE 
* 
*     CONTAIN THE SEMANTIC ROUTINES FOR THE MANIPULATION OF FLAGS USED
*     IN THE SYNTAX ANALYSIS OF AN OPERATOR.
* 
* DC  CONTAINED ROUTINES
# 
      XDEF PROC DB$DS08;           # DB$YES IF DISPLAY SUSPENDED       #
      XDEF PROC DB$DS09;           # COMMAND INITIALIZATION OF FLAGS   #
      XDEF PROC DB$DS10;           # SET *ALL* FLAG. DB$NO IF WAS SET. #
      XDEF PROC DB$DS11;           # SET *AR* FLAG. DB$NO IF WAS SET.  #
      XDEF PROC DB$DS12;           # SET *CDCS* FLAG. DB$NO IF WAS SET.#
      XDEF PROC DB$DS13;           # SET *JOBS* FLAG. DB$NO IF WAS SET.#
      XDEF PROC DB$DS14;           # SET *SC* FLAG. DB$NO IF WAS SET.  #
      XDEF PROC DB$DS35;           # SET *VN* FLAG. DB$NO IF WAS SET   #
      XDEF PROC DB$DS38;           # SET -ROLLABLE- TRUE               #
      XDEF PROC DB$DS39;           # SET -ROLLABLE- FALSE              #
 #                                                                     #
      CONTROL EJECT;
      PROC DB$DS08; 
      BEGIN 
 #
* *   DB$DSMF                                    PAGE  1
* *   DB$DS08 - CHECK DISPLAY *SUSPEND* FLAG
* *   C F RICHARDS                               DATE  11/27/78 
* 
* DC  PURPOSE 
* 
*     CONVEY THE VALUE OF THE DISPLAY SUSPENDED FLAG TO A SYNGEN
*     ROUTINE.
* 
* DC  CALLING ROUTINES
* 
*     DB$DSTX - SYNGEN SPECIFICATION (THROUGH DB$DDIF)
* 
* DC  CALLED ROUTINES 
# 
      XREF PROC DB$NO;             # FAIL RETURN TO SCANNER            #
      XREF PROC DB$YES;            # SUCCESS RETURN TO SCANNER         #
# 
* DC  NON-LOCAL VARIABLES 
# 
      XREF ITEM DB$DMSF B;         # TRUE IF CONSOLE DISPLAY SUSPENDED #
 #                                                                     #
  
  
#     E X E C U T A B L E   C O D E   F O R   D B $ D S 0 8            #
  
  
      IF DB$DMSF                   # IF CONSOLE DISPLAY IS SUSPENDED   #
      THEN
        BEGIN 
        DB$YES;                    # SUCCESS RETURN TO SCANNER         #
  
        END 
  
      DB$NO;                       # FAIL RETURN TO SCANNER            #
  
      END 
      CONTROL EJECT;
      PROC DB$DS09; 
      BEGIN 
 #
* *   DB$DSMF                                    PAGE  1
* *   DB$DS09 - INITIALIZE COMMAND SYNTAX FLAGS 
* *   C F RICHARDS                               DATE  11/27/78 
* 
* DC  PURPOSE 
* 
*     INITIALIZE THE CONSOLE DISPLAY AND SYNTAX FLAGS FOR THE NEW 
*     COMMAND.
* 
* DC  EXIT CONDITIONS 
* 
*     CONSOLE DIAGNOSTIC AND RESPONSE LINES CLEARED.
*     COMMAND ECHOED TO CONSOLE DISPLAY.
*     ALL FLAGS IN DB$DSFL CLEARED TO FALSE.
*     SCHEMA AND AREA ID SET TO ZERO. 
*     SCHEMA, AREA, JOB, AND LOGFILE NAMES SET TO BLANKS. 
* 
* DC  CALLING ROUTINES
* 
*     DB$DSTX - SYNGEN SPECIFICATION (THROUGH DB$DDIF)
* 
* DC  CALLED ROUTINES 
# 
      XREF PROC DB$DCDL;           # CLEAR CONSOLE DIAGNOSTIC LINE     #
      XREF PROC DB$DCRL;           # CLEAR CONSOLE RESPONSE LINES      #
      XREF PROC DB$DECE;           # ENTER DISPLAY COMMAND ECHO        #
      XREF PROC DB$YES;            # SUCCESS RETURN TO SCANNER         #
# 
* DC  NON-LOCAL VARIABLES 
# 
      XREF ITEM DB$DSAI I;         # AREA-ID                           #
      XREF ITEM DB$DSAN C(30);     # AREA-NAME                         #
      XREF ITEM DB$DSJN C(7);      # JOB-NAME                          #
      XREF ITEM DB$DSSB C(30);     # RETAIN/RETURN SUBSCHEMA NAME      #
      XREF ITEM DB$DSSI I;         # SCHEMA-ID                         #
      XREF ITEM DB$DSSN C(30);     # SCHEMA-NAME                       #
      XREF ITEM DB$DSVN C(7);      # VERSION NAME                      #
      XREF ITEM DB$MIRL I;         # LENGTH OF COMMAND IN DB$MWSA      #
      XREF ITEM DB$MWSA C(80);     # COMMAND INPUT BUFFER              #
*CALL DSFDCLS 
# 
* DC  DESCRIPTION 
* 
*     CLEAR THE CONSOLE DIAGNOSTIC AND RESPONSE LINES.
*     ECHO THE COMMAND TO THE DISPLAY.
*     CLEAR ALL THE FLAGS AND ITEMS. RETURN VIA DB$YES. 
 #
  
  
#     E X E C U T A B L E   C O D E   F O R   D B $ D S 0 9            #
  
  
      DB$DCDL;                     # CLEAR CONSOLE DIAGNOSTIC LINE     #
      DB$DCRL;                     # CLEAR CONSOLE RESPONSE LINES      #
      DB$DECE (DB$MWSA, DB$MIRL);  # ECHO THE COMMAND AS ENTERED       #
      DSFWORD[0] = 0;              # CLEAR ALL DB$DSFL FLAGS TO FALSE  #
      DB$DSAI = 0;
      DB$DSSI = 0;
      DB$DSAN = " ";
      DB$DSSB = " ";               # INITIALIZE SUB-SCHEMA NAME        #
      DB$DSSN = " ";
      DB$DSJN = " ";
      DB$DSVN = " ";               # INITIALIZE VERSION NAME           #
      DB$YES;                      # SUCCESS RETURN TO SCANNER         #
  
      END 
      CONTROL EJECT;
      PROC DB$DS10; 
      BEGIN 
 #
* *   DB$DSMF                                    PAGE  1
* *   DB$DS10 - SET FLAG FOR OPTION *ALL* 
* *   C F RICHARDS                               DATE  11/27/78 
* 
* DC  PURPOSE 
* 
*     REMEMBER OCCURRENCE OF OPTION *ALL* AND IDENTIFY A DUPLICATE
*     OCCURRENCE OF THIS OPTION.
* 
* DC  EXIT CONDITION
* 
*     DSFALL SET TRUE.
*     EXIT VIA DB$NO IF WAS ALREADY SET, ELSE EXIT VIA DB$YES.
* 
* DC  CALLING ROUTINES
* 
*     DB$DSTX - SYNGEN SPECIFICATION (THROUGH DB$DDIF)
* 
* DC  CALLED ROUTINES 
# 
      XREF PROC DB$NO;
      XREF PROC DB$YES; 
# 
* DC  NON-LOCAL VARIABLES 
# 
*CALL DSFDCLS 
# 
* DC  DESCRIPTION 
* 
*     IF THE FLAG WAS ALREADY SET, EXIT VIA DB$NO.
*     SET THE FLAG, EXIT VIA DB$YES.
 #
  
  
#     E X E C U T A B L E   C O D E   F O R   D B $ D S 1 0            #
  
  
      IF DSFALL[0]                 # IF OPTION ALREADY USED            #
      THEN
        BEGIN 
        DB$NO;                     # FAIL RETURN TO SCANNER            #
  
        END 
  
      DSFALL[0] = TRUE;            # SET FLAG FOR OPTION               #
      DB$YES;                      # SUCCESS RETURN TO SCANNER         #
  
      END 
      CONTROL EJECT;
      PROC DB$DS11; 
      BEGIN 
 #
* *   DB$DSMF                                    PAGE  1
* *   DB$DS11 - SET FLAG FOR OPTION *AR*
* *   C F RICHARDS                               DATE  11/27/78 
* 
* DC  PURPOSE 
* 
*     REMEMBER OCCURRENCE OF OPTION *AR* AND IDENTIFY A DUPLICATE 
*     OCCURRENCE OF THIS OPTION.
* 
* DC  EXIT CONDITION
* 
*     DSFAR SET TRUE. 
*     EXIT VIA DB$NO IF WAS ALREADY SET, ELSE EXIT VIA DB$YES.
* 
* DC  CALLING ROUTINES
* 
*     DB$DSTX - SYNGEN SPECIFICATION (THROUGH DB$DDIF)
* 
* DC  CALLED ROUTINES 
# 
      XREF PROC DB$NO;
      XREF PROC DB$YES; 
# 
* DC  NON-LOCAL VARIABLES 
# 
*CALL DSFDCLS 
# 
* DC  DESCRIPTION 
* 
*     IF THE FLAG WAS ALREADY SET, EXIT VIA DB$NO.
*     SET THE FLAG, EXIT VIA DB$YES.
 #
  
  
#     E X E C U T A B L E   C O D E   F O R   D B $ D S 1 1            #
  
  
      IF DSFAR[0]                  # IF OPTION ALREADY USED            #
      THEN
        BEGIN 
        DB$NO;                     # FAIL RETURN TO SCANNER            #
  
        END 
  
      DSFAR[0] = TRUE;             # SET FLAG FOR OPTION               #
      DB$YES;                      # SUCCESS RETURN TO SCANNER         #
  
      END 
      CONTROL EJECT;
      PROC DB$DS12; 
      BEGIN 
 #
* *   DB$DSMF                                    PAGE  1
* *   DB$DS12 - SET FLAG FOR OPTION *CDCS*
* *   C F RICHARDS                               DATE  11/27/78 
* 
* DC  PURPOSE 
* 
*     REMEMBER OCCURRENCE OF OPTION *CDCS* AND IDENTIFY A DUPLICATE 
*     OCCURRENCE OF THIS OPTION.
* 
* DC  EXIT CONDITION
* 
*     DSFCDCS SET TRUE. 
*     EXIT VIA DB$NO IF WAS ALREADY SET, ELSE EXIT VIA DB$YES.
* 
* DC  CALLING ROUTINES
* 
*     DB$DSTX - SYNGEN SPECIFICATION (THROUGH DB$DDIF)
* 
* DC  CALLED ROUTINES 
# 
      XREF PROC DB$NO;
      XREF PROC DB$YES; 
# 
* DC  NON-LOCAL VARIABLES 
# 
*CALL DSFDCLS 
# 
* DC  DESCRIPTION 
* 
*     IF THE FLAG WAS ALREADY SET, EXIT VIA DB$NO.
*     SET THE FLAG, EXIT VIA DB$YES.
 #
  
  
#     E X E C U T A B L E   C O D E   F O R   D B $ D S 1 2            #
  
  
      IF DSFCDCS[0]                # IF OPTION ALREADY USED            #
      THEN
        BEGIN 
        DB$NO;                     # FAIL RETURN TO SCANNER            #
  
        END 
  
      DSFCDCS[0] = TRUE;           # SET FLAG FOR OPTION               #
      DB$YES;                      # SUCCESS RETURN TO SCANNER         #
  
      END 
      CONTROL EJECT;
      PROC DB$DS13; 
      BEGIN 
 #
* *   DB$DSMF                                    PAGE  1
* *   DB$DS13 - SET FLAG FOR OPTION *JOBS*
* *   C F RICHARDS                               DATE  11/27/78 
* 
* DC  PURPOSE 
* 
*     REMEMBER OCCURRENCE OF OPTION *JOBS* AND IDENTIFY A DUPLICATE 
*     OCCURRENCE OF THIS OPTION.
* 
* DC  EXIT CONDITION
* 
*     DSFJOBS SET TRUE. 
*     EXIT VIA DB$NO IF WAS ALREADY SET, ELSE EXIT VIA DB$YES.
* 
* DC  CALLING ROUTINES
* 
*     DB$DSTX - SYNGEN SPECIFICATION (THROUGH DB$DDIF)
* 
* DC  CALLED ROUTINES 
# 
      XREF PROC DB$NO;
      XREF PROC DB$YES; 
# 
* DC  NON-LOCAL VARIABLES 
# 
*CALL DSFDCLS 
# 
* DC  DESCRIPTION 
* 
*     IF THE FLAG WAS ALREADY SET, EXIT VIA DB$NO.
*     SET THE FLAG, EXIT VIA DB$YES.
 #
  
  
#     E X E C U T A B L E   C O D E   F O R   D B $ D S 1 3            #
  
  
      IF DSFJOBS[0]                # IF OPTION ALREADY USED            #
      THEN
        BEGIN 
        DB$NO;                     # FAIL RETURN TO SCANNER            #
  
        END 
  
      DSFJOBS[0] = TRUE;           # SET FLAG FOR OPTION               #
      DB$YES;                      # SUCCESS RETURN TO SCANNER         #
  
      END 
      CONTROL EJECT;
      PROC DB$DS14; 
      BEGIN 
 #
* *   DB$DSMF                                    PAGE  1
* *   DB$DS14 - SET FLAG FOR OPTION *SC*
* *   C F RICHARDS                               DATE  11/27/78 
* 
* DC  PURPOSE 
* 
*     REMEMBER OCCURRENCE OF OPTION *SC* AND IDENTIFY A DUPLICATE 
*     OCCURRENCE OF THIS OPTION.
* 
* DC  EXIT CONDITION
* 
*     DSFSC SET TRUE. 
*     EXIT VIA DB$NO IF WAS ALREADY SET, ELSE EXIT VIA DB$YES.
* 
* DC  CALLING ROUTINES
* 
*     DB$DSTX - SYNGEN SPECIFICATION (THROUGH DB$DDIF)
* 
* DC  CALLED ROUTINES 
# 
      XREF PROC DB$NO;
      XREF PROC DB$YES; 
# 
* DC  NON-LOCAL VARIABLES 
# 
*CALL DSFDCLS 
# 
* DC  DESCRIPTION 
* 
*     IF THE FLAG WAS ALREADY SET, EXIT VIA DB$NO.
*     SET THE FLAG, EXIT VIA DB$YES.
 #
  
  
#     E X E C U T A B L E   C O D E   F O R   D B $ D S 1 4            #
  
  
      IF DSFSC[0]                  # IF OPTION ALREADY USED            #
      THEN
        BEGIN 
        DB$NO;                     # FAIL RETURN TO SCANNER            #
  
        END 
  
      DSFSC[0] = TRUE;             # SET FLAG FOR OPTION               #
      DB$YES;                      # SUCCESS RETURN TO SCANNER         #
  
      END 
  
  
      CONTROL EJECT;
      PROC DB$DS35; 
      BEGIN 
 #
* *   DB$DS35 - SET FLAG FOR *VN* PARAMETER      PAGE  1
* *   M. E. STERMER                              DATE  11/05/80 
* 
* DC  PURPOSE 
* 
*     REMEMBER OCCURENCE OF OPTION *VN* AND IDENTIFY A DUPLICATE
*     OCCURRENCE OF THIS OPTION.
* 
* DC  ENTRY CONDITION 
* 
* D   ASSUMPTIONS 
* 
*     DSFVN IS TRUE IF VERSION OPTION ALREADY SPECIFIED.
* 
* DC  EXIT CONDITIONS 
* 
*     DSFVN IS SET TRUE.
*     EXIT VIA DB$NO IF DSFVN IS ALREADY SET,  ELSE EXIT VIA DB$YES.
* 
* DC  CALLING ROUTINES
* 
*     DB$DSTX - SYNGEN SPECIFICATIONS (THROUGH DB$DDIF) 
* 
* DC  CALLED ROUTINES 
# 
      XREF PROC DB$NO;             # FAILURE RETURN TO SCANNER         #
      XREF PROC DB$YES;            # SUCCESS RETURN TO SCANNER         #
# 
* DC  NON-LOCAL VARIABLES MODIFIED
# 
*CALL DSFDCLS 
# 
* DC  DESCRIPTION 
* 
*     IF THE FLAG IS ALREADY SET,  EXIT VIA DB$NO.
*     SET FLAG EXIT DB$YES. 
* 
 #
  
  
      IF DSFVN[0] 
      THEN
        BEGIN 
        DB$NO;                     # FAILURE RETURN TO SCANNER         #
  
        END 
  
      DSFVN[0] = TRUE;             # SET FLAG FOR OPTION *VN*          #
      DB$YES;                      # SUCCESS RETURN TO SCANNER         #
  
      END                          # END DB$DS35                       #
  
  
  
  
      PROC SENDMSG(MESSAGE);
      BEGIN 
 #
* 
*     SENDMSG - RESPOND TO OPERATOR AND RETURN. 
* 
* 
 #
      XREF PROC DB$YES;            # SUCCESS RETURN TO SCANNER         #
      XREF PROC DB$DEDL;           # DIAGNOSTIC LINE                   #
      XREF PROC DB$MSG2;           # CLEAR LINE 2 OF B DISPLAY         #
      XREF PROC DB$MSGB;           # SEND TO B DISPLAY                 #
  
      ITEM MESSAGE C(20);          # THE MESSAGE TO BE SENT.           #
  
      DB$DEDL(MESSAGE, 19); 
      DB$MSG2;
      DB$MSGB(MESSAGE); 
      DB$YES; 
  
      END                          # END SENDMSG                       #
  
  
  
      PROC DB$DS38; 
      BEGIN 
 #
* 
*     DB$DS38 - SET FLAG TO ACTIVATE ROLLOUT
* 
* 
 #
      XREF ITEM ROLLABLE B;        # TRUE IF CDCS IS ROLLABLE          #
  
      ROLLABLE = TRUE;             # ENABLE ROLLOUT WHEN CDCS IS IDLE  #
      SENDMSG("  ROLLOUT ACTIVATED:");
  
      END                          # END DB$DS38                       #
  
  
  
      PROC DB$DS39; 
      BEGIN 
 #
* 
*     DB$DS38 - SET FLAG TO INHIBIT ROLLOUT 
* 
* 
 #
      XREF ITEM ROLLABLE B;        # TRUE IF CDCS IS ROLLABLE          #
  
      ROLLABLE = FALSE;            # PROHIBIT ROLLOUT WHEN IDLE        #
      SENDMSG("  ROLLOUT INHIBITED:");
  
      END                          # END DB$DS39                       #
  
  
      END 
  
      TERM
