*DECK DB$DDFE 
USETEXT CDGDFTX 
      PROC DB$DDFE; 
      BEGIN 
 #
* *   DB$DDFE - FRONT END TO *L* OR *K* DISPLAY  PAGE  1
* *   LG WHITE                                   DATE  02/09/79 
* 
* DC  PURPOSE 
* 
*     INTERCEPT PERIODIC CALLS FROM DB$MTR CHECKING FOR AN OPERATOR 
*     COMMAND, SO THAT  A) DB$MTR NEEDS NO KNOWLEDGE OF THE INTERNALS 
*     OF THE OPERATOR INTERFACE AND  B) THE OPERATOR INTERFACE CAPSULE
*     IS NOT LOADED UNLESS THERE IS WORK FOR IT TO DO.
* 
* DC  ENTRY CONDITIONS
* 
*     NONE
* 
* DC  EXIT CONDITIONS 
* 
*     COMMAND PROCESSING COMPLETE 
* 
*     CONTAINED ITEMS AND ARRAYS
* 
*     THESE ITEMS ARE CONTAINED WITHIN THIS ROUTINE AND REFERENCED
*     EXTERNALLY BY THE OTHER OPERATOR INTERFACE MODULES. 
# 
      XDEF ITEM DB$DMPF B = FALSE; # FLAG INDICATING PREVIOUS DUMP     #
      XDEF ITEM DB$DSAI I;         # DISPLAY SEMANTICS - AREA ID       #
      XDEF ITEM DB$DSAN C(30);     # DISPLAY SEMANTICS - AREA NAME     #
      XDEF ITEM DB$DSCY B;         # TRUE IF CONFIRMATION RESPONSE YES #
      XDEF ITEM DB$DSJN C(7);      # DISPLAY SEMANTICS - JOB NAME      #
      XDEF ITEM DB$DSSB C(30);     # RETAIN/RETURN SUBSCHEMA NAME      #
      XDEF ITEM DB$DSSI I;         # DISPLAY SEMANTICS - SCHEMA ID     #
      XDEF ITEM DB$DSSN C(30);     # DISPLAY SEMANTICS - SCHEMA NAME   #
      XDEF ITEM DB$DSVN C(7);      # DISPLAY SEMANTICS - VERSION NAME  #
      XDEF ITEM DB$MEOF I = 0;     # EOF ON SCANNER INPUT IF NOT ZERO  #
      XDEF ITEM DB$MIRL I = 0;     # LENGTH OF OPERATOR COMMAND        #
      XDEF ITEM DB$MWSA C(80) = " ";  # BUFFER FOR OPERATOR COMMAND    #
      XDEF ITEM DB$NLIN I = 0;     # UNUSED ITEM REQUIRED BY SCANNER   #
  
      XDEF ARRAY DB$DSFL ;;        # WORD OF DISPLAY SYNTAX FLAGS.     #
                                   # SEE DSFDCLS FOR FLAG DESCRIPTIONS.#
  
# 
* DC  CALLING ROUTINES
* 
*     DB$MTR - CDCS MONITOR LOOP
* 
* DC  CALLED ROUTINES 
# 
      XREF PROC DB$DDVR;            # INITIALIZE COMMAND PROCESSING    #
      XREF PROC DB$DGOC;           # GET OPERATOR COMMAND              #
# 
* DC  NON-LOCAL VARIABLES MODIFIED
# 
      XREF ITEM DB$MFPA I;         # OVERFLOW OPTION PROCEDURE ADDRESS #
# 
* DC  DESCRIPTION 
* 
*     SAVE ADDRESS OF THE CURRENT CMM OVERFLOW PROCEDURE IN DB$DDOP.
*     TRY TO GET OPERATOR COMMAND.  IF ONE EXISTS, CALL DB$DDVR TO
*     INITIATE COMMAND PROCESSING.
*     IF MEMORY IS NOT AVAILABLE FOR THE OPERATOR OVCAP TO BE LOADED
*     THEN PROC DB$DDOP IS CALLED.  CALL DB$DAED TO ACTIVATE THE
*     CMM ERROR DISPLAY.  THEN RETURN TO MONITOR LOOP.
 #
  
      CONTROL EJECT;
      PROC DB$DDOP;                # DISPLAY DRIVER OVERFLOW PROCESSOR #
  
      BEGIN 
 #
* *   DB$DDFE                                    PAGE  1
* *   DB$DDOP - DISPLAY DRIVER OVERFLOW PROCESSOR 
* *   M. E. STERMER                              DATE  09/10/80 
* 
* DC  PURPOSE 
* 
*     TO ACTIVATE THE CONSOLE CMM ERROR DISPLAY 
* 
* DC  ENTRY CONDITIONS
* 
*     ASSUMPTIONS 
* 
*     REQUIRED CM NEEDED TO LOAD THE OPERATOR INTERFACE DISPLAY 
*     OVERLAY CAPSULE COULD NOT BE OBTAINED.
* 
* DC  EXIT CONDITIONS 
* 
*     CONSOLE DISPLAY HAS BEEN SWITCHED TO ERROR DISPLAY.  B DISPLAY
*     AND DAYFILE MESSAGES HAVE BEEN ISSUED.
* 
* DC  CALLING ROUTINE 
* 
*     DB$MFI - INITALIZE CMM OWN.EXIT 
* 
* DC  CALLED ROUTINE
# 
      XREF PROC DB$DAED;           # ACTIVATE ERROR DISPLAY            #
      XREF PROC DB$FLOP;           # GENERATE FLOW POINT               #
# 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
*     NONE
* 
* DC  DESCRIPTION 
* 
*     DB$DAED IS CALLED TO CHANGE THE MINI DISPLAY TO THE 
*     CM ERROR DISPLAY AND TO ISSUE DAYFILE AND B DISPLAY MESSAGES. 
*     GOTO LABEL DDOPRETURN IN MAIN PROCEDURE DB$DDFE.
* 
 #
  
#     E X E C U T A B L E  C O D E  F O R  D B $ D D O P               #
  
  
      CONTROL IFGR DFFLOP,0;
        DB$FLOP("DDOP    ");
      CONTROL ENDIF;
  
      DB$DAED;                     # ACTIVATE ERROR DISPLAY            #
  
      GOTO DDOPRETURN;             # GOTO DDOPRETURN IN PROC DB$DDFE   #
  
      END  # DB$DDOP #
  
      CONTROL EJECT;
  
      ITEM COMMLENG I;             # LENGTH OF COMMAND                 #
  
  
#     E X E C U T A B L E   C O D E   F O R   D B $ D D F E            #
  
      DB$MFPA = LOC(DB$DDOP);      # SAVE ADDR FOR OVERFLOW            #
  
      DB$DGOC (DB$MWSA,COMMLENG);  # GET OPERATOR COMMAND              #
      IF COMMLENG GR 0 THEN        # IF COMMAND EXISTS                 #
        DB$DDVR (COMMLENG);        # CALL THE DISPLAY DRIVER           #
  
DDOPRETURN:                        # RETURN FROM INTERNAL PROC DB$DDOP #
  
      RETURN; 
      END 
      TERM
