      SUBROUTINE WTOPER(TEXT,LENGTH)                                  !$VAX$
C
C     WRITE MESSAGE TO OPERATOR (AND OPERATOR LOG)
C     JWB - 1981-JUL-14
C     MODIFIED 1981-DEC-17 TO INSERT A DELAY SO SUCCESSIVE MESSAGES
C     ARE NOT LOST DUE TO OPCOM QUEUE OVERLOAD, OR WHATEVER ITS
C     PROBLEM IS.  DELAY CHANGED TO THREE SECONDS ON 1982-JAN-26.
C
C     INPUTS:  TEXT - CHARACTER*(*) - MESSAGE TEXT
C              LENGTH - INTEGER     - NUMBER OF CHARACTERS IN TEXT
C 
      CHARACTER*(*) TEXT
      INTEGER       LENGTH
C
      CHARACTER*1  BLANK
      CHARACTER*88 MSGBUF
      CHARACTER*80 MSGTXT
      INTEGER*4    MSGHDR(2)
      INTEGER*4 SHORTW(2) / -30000000, -1 /   ! THREE SECOND WAIT TIME
      INTEGER*4 SYS$SNDOPR, SYS$SCHDWK, SYS$HIBER, SS$_NORMAL
      EQUIVALENCE (MSGTXT,MSGBUF(9:88))
      EQUIVALENCE (MSGHDR,MSGBUF)
      DATA MSGHDR / 'FFFFFF03'X , 0 /
      DATA BLANK  / ' ' /
      DATA SS$_NORMAL / 1 /
C
      LEN = MIN(LENGTH,80)
      MSGTXT(1:LEN) = TEXT(1:LEN)
      IF (LEN.LT.80) MSGTXT(LEN+1:80) = BLANK
      ISTAT = SYS$SCHDWK(,,SHORTW,)   ! SCHEDULE A WAKEUP IN A FEW SECONDS
              IF (ISTAT.NE.SS$_NORMAL) CALL PRMSG(ISTAT)
      ISTAT = SYS$HIBER()             ! HIBERNATE UNTIL THE WAKEUP COMES
              IF (ISTAT.NE.SS$_NORMAL) CALL PRMSG(ISTAT)
      ISTAT = SYS$SNDOPR(MSGBUF,  )   ! SEND THE MESSAGE
              IF (ISTAT.NE.SS$_NORMAL) CALL PRMSG(ISTAT)
      RETURN
      END
