*DECK RHFDBG
USETEXT COMCBEG 
USETEXT COMADEF 
USETEXT COMACBF 
USETEXT COMAMCB 
    PROC RHFDBG (DBGSUP, DBGDATA, DBGAVAIL, DBGXFER); 
  
# TITLE RHFDBG - NETWORK DEBUG.  #
  
      BEGIN  # RHFDBG # 
  
# 
**    RHFDBG - NETWORK DEBUG. 
* 
*     RHFDBG TURNS ON/OFF THE NETWORK DEBUGGING CAPABILITIES. 
* 
*     PROC RHFDBG(DBGSUP,DBGDATA) 
* 
*     ENTRY      DBGSUP   = 0 TO TURN ON FLAG FOR  SUPERVISORY
*                DBGDATA                           DATA 
*                DBGXFER                            TRANSFER MESSAGES.
*                         " 0 TO TURN OFF FLAG. 
* 
*     EXIT       DBUGSUP - DEBUG SUPERVISORY MESSAGE FLAG SET.
*                DBUGDAT - DEBUG DATA MESSAGE FLAG SET. 
*                DBUGXFR - DEBUG TRANSFER MESSAGE FLAG SET. 
*                DBGAVAIL RETURN PARAMETER SET = 0
* 
*     PROCESS    IF DBGSUP/DBGDATA/DBGXFER = 0, 
*                  SET DBUGSUP/DBUGDAT/DBUGXFR = TRUE.
*                ELSE,
*                  SET DBUGSUP/DBUGDAT/DBUGXFR = FALSE. 
*                CALL CALLSYS (MSG) TO SEND DAYFILE MESSAGES
*                  SHOWING CURRENT SETTING OF EACH FLAG.
*                RETURN.
*                CALL DBGMSG SO THAT IT IS LOADED WHENEVER RHFDBG IS
*                  LOADED.
* 
# 
  
      ITEM DBGSUP    I;            # DEBUG SUPERVISORY MESSAGE PARAM #
      ITEM DBGDATA   I;            # DEBUG DATA MESSAGE PARAMETER # 
      ITEM DBGAVAIL  I; 
      ITEM DBGXFER    I;            # DEBUG TRANSFER MESSAGE PARAMETER #
  
      XDEF
        BEGIN 
        LABEL NETDBG1;               # DUMMY XDEF TO LOAD DBGMSG #
        END 
  
# 
* 
****  PROC RHFDBG - XREF LIST BEGIN.
# 
  
      XREF
        BEGIN 
        PROC DBGMSG;                 # WRITE DEBUG MESSAGE #
        PROC DBGSMSG;              # WRITE DEBUG STAT MSG # 
        PROC CALLSYS;                # MAKES RA+1 REQUESTS #
        END 
  
# 
****  PROC RHFDBG - XREF LIST END.
# 
  
  
      ARRAY NETDBGMSG [0:0] S(4);  # RHFDBG INFORMATIVE MESSAGE # 
        BEGIN 
        ITEM NETDBGMSGA C(00,00,27) = ["DEBUG TYPE MESSAGES TURNED "];
        ITEM NETDBGMSGB U(00,36,24);        # XFER/SUPR/DATA #
        ITEM NETDBGMSGC U(02,42,18);        # OFF/ON #
        ITEM NETDBGMSGD U(03,00,60) = [0];  # MESSAGE TERMINATOR #
        END 
  
      ARRAY [0:2] S(1);            # NETDBGMSG VARIABLES #
        BEGIN 
        ITEM NETDBGMSG$ C(00,00,07) = ["XFEROFF", "SUPRON ", "DATA   "];
        ITEM NETDBGTYPE U(00,00,24);        # XFER/SUPR/DATA #
        ITEM NETDBGONFF U(00,24,18);        # OFF/ON #
        END 
  
      ITEM I          I;
  
  
      MSG$STATUS[0] = 0;
      MSG$STATWD[0] = LOC(MSG$BUFADR[0]);  # ***** DEBUG ONLY **** #
      DBUGFLAGS = 0;               # SET ALL FLAGS FALSE #
  
      IF DBGSUP EQ 0
      THEN
        BEGIN 
        DBUGSUP = TRUE; 
        END 
  
      IF DBGDATA EQ 0 
      THEN
        BEGIN 
        DBUGDAT = TRUE; 
        END 
  
      IF DBGXFER EQ 0 
      THEN
        BEGIN 
        DBUGXFR = TRUE; 
        END 
  
  
      MSG$BUFADR[0] = LOC(NETDBGMSG);  # SET MESSAGE ADDR # 
  
      SLOWFOR I = 0 STEP 1 UNTIL 2
      DO
        BEGIN 
        NETDBGMSGB[0] = NETDBGTYPE[I];  # SET TYPE IN MESSAGE # 
        NETDBGMSGC[0] = NETDBGONFF[B<I,1>DBUGFLAGS];  # SET ON/OFF #
        MSG$STATUS[0] = 0;         # CLEAR MSG-COMPLETE FLAG #
        CALLSYS (MSGCALL);         # SEND DAYFILE MESSAGE # 
        END 
  
        DBGAVAIL = 0; 
      RETURN; 
  
NETDBG1:  
      DBGMSG;                        # DUMMMY CALL TO LOAD DBGMSG # 
      DBGSMSG;                     # DUMMY CALL TO LOAD DBGSMSG # 
      END  # RHFDBG # 
  
      TERM
