*DECK  CHCMD
USETEXT COMCBEG 
USETEXT COMRDSD 
USETEXT COMRLRA 
USETEXT COMRMEM 
USETEXT COMRAPL 
PROC CHCMD; 
# TITLE  CHCMD - CHECK FOR COMMAND FROM DSD. #
  
      BEGIN # CHCMD # 
  
# 
**    CHCMD - CHECK FOR COMMAND FROM DSD
* 
*     CHECK DSD L-DISPLAY BUFFER FOR DSD COMMAND
* 
*     PROC CHCMD
* 
*     ENTRY      - DSDLBUF
*                  LBUFST 
* 
*     EXIT       - COMMAND (IF ANY) PROCESSED 
* 
*     PROCESSING -
*         IF SUBSYSTEM IDLE FLAG SET
*         THEN
*           IDLEDWN = TRUE
*         IF  COMMAND 
*         THEN
*           CALL PCMD TO PROCESS COMMAND
*           CLEAR COMMAND 
*         IF DSPLAY NEEDS TO BE UPDATED 
*         THEN
*           CALL DSPL TO UPDATE DISPLAY 
*           CLEAR UPDATE DISPLAY FLAG 
*         RETURN
# 
  
# 
****  PROC CHCMD - XREF LIST BEGIN. 
# 
      XREF
        BEGIN 
        PROC OVLLDR;                 # LOAD AND EXECUTE OVERLAY # 
        END 
# 
****  PROC CHCMD - XREF LIST END. 
# 
  
CONTROL EJECT;
  
      IF RA$IDLE
      THEN
        BEGIN 
        IDLEDWN = TRUE; 
        END 
  
      IF DSD$CMDW[0] NE 0 
      THEN  # PROCESS DSD COMMAND # 
        BEGIN 
        DSD$INVC[0] = BLANK;
        DSD$CMDBC[0] = BLANK; 
        OVLLDR("RHF0316");           # PCMD # 
        DSD$CMDC = BLANK;            # CLEAR OUT BUFFER # 
        DSD$CMDW[0] = 0;
        LBUF$UPD[0] = TRUE; 
        END 
      ELSE
      IF APPL$UPD AND 
         (LBUF$CURD[0] EQ DISORDAP) 
      THEN
        BEGIN 
        LBUF$UPD[0] = TRUE; 
        END 
      IF LBUF$UPD[0]
      THEN   # UPDATE DISPLAY # 
        BEGIN 
        OVLLDR("RHF0317");           # DSPL # 
        LBUF$UPD[0] = FALSE;
        END 
      APPL$UPD = FALSE; 
      RETURN; 
      END 
  
      TERM
