*DECK RHFMSG
USETEXT COMCBEG 
USETEXT COMRFLS 
USETEXT COMRLRA 
USETEXT COMRMEM 
USETEXT COMRQUE 
PROC RHFMSG(MESSAGE,LENGTH);
# TITLE RHFMSG - SEND DAYFILE MESSAGE TO RHF CONTROL POINT. # 
  
      BEGIN  # RHFMSG # 
  
# 
**    RHFMSG - SEND DAYFILE MESSAGE TO RHF CONTROL POINT. 
* 
*     SENDS DAYFILE MESSAGE "MESSAGE" TO RHF AND SYSTEM DAYFILES. 
* 
*     PROC RHFMSG(MESSAGE): 
* 
*     ENTRY   -  MESSAGE IS MSG TO SEND TO DAYFILE. 
*                LENGTH - LENGTH OF MESSAGE IN CHARACTERS.
* 
*     EXIT    -  MESSAGE HAS BEEN SENT TO RHF AND SYSTEM DAYFILES.
* 
*     PROCESS -  FORMAT MSG CALL
*                IF FLSHMSGQ NE 0 
*                  ISSUE FLASHING MESSAGE.
*                RETURN 
* 
* 
# 
  
      BASED ARRAY MESSAGE [0:0] S(7); 
        BEGIN 
        ITEM MESSAGE$ C(00,00,70);   # MESSAGE TO GO TO DAYFILE # 
        END 
  
      ITEM LENGTH I;                 # LENGTH OF MESSAGE IN CHARACTERS #
  
# 
****  PROC RHFMSG - XREF LIST BEGIN.
# 
      XREF
        BEGIN 
        PROC ZBYTE;                  # ADD ZERO BYTE TO END OF MESSAGE #
        PROC CALLSYS;                # INITIATE RA+1 CALL # 
        END 
  
# 
****  PROC RHFMSG - XREF LIST END.
# 
  
  
      DEF BDISPLAY   #2#;          # MESSAGE DESTINATION #
  
  
      ARRAY [0:0] S(1); 
        BEGIN  # CALL WORD FOR MSG #
        ITEM MSGCALL  U(00,00,60) = [0];
        ITEM MSG      C(00,00,03) = ["MSG"];
        ITEM MSGRCL   B(00,19,01) = [TRUE]; 
        ITEM MSGDEST  U(00,24,12);
        ITEM MSGPARM  U(00,42,18);
        END 
  
      ARRAY [0:0] S(1); 
        BEGIN  # PARM WORD FOR MSG #
        ITEM MSGPRM   U(00,00,60) = [0];
        ITEM MSGADR   U(00,00,30);
        ITEM MSGCOMP  B(00,59,01);
        END 
  
CONTROL EJECT;
  
      MSGCOMP = FALSE;
      MSGADR  = LOC(MESSAGE); 
      MSGPARM = LOC(MSGPRM);
      ZBYTE(LOC(MESSAGE),LENGTH); 
      CALLSYS(MSGCALL); 
  
      MSGDEST = BDISPLAY; 
      MSGCOMP = FALSE;
      IF FLSHMSGQ NE 0
      THEN
        BEGIN 
CONTROL IFEQ OS$NOS;
        RA$PAUSE = TRUE;           # SET PAUSE FLAG # 
CONTROL ENDIF;
        MSGADR = FLSHMSGQ + 1;
        CALLSYS(MSGCALL); 
        END 
      ELSE
        BEGIN 
        IF SHUTDWN
        THEN
          BEGIN 
          MSGADR = LOC(MSG$SHTDWN); 
          CALLSYS(MSGCALL); 
          END 
  
        ELSE
          BEGIN 
          IF IDLEDWN
          THEN
            BEGIN 
            MSGADR = LOC(MSG$IDLDWN); 
            CALLSYS(MSGCALL); 
            END 
  
          END 
  
        END 
  
      MSGDEST = 0;
  
      RETURN; 
      END  # RHFMSG # 
  
      TERM
