*DECK NS$KDD
USETEXT HOC$NS
USETEXT LIN$NS
  
      PROC NS$KDD(REASON);   # ISSUE HOP COMMAND DIAGNOSTIC            #
  
# TITLE NS$KDD - ISSUE HOP COMMAND DIAGNOSTIC.                         #
  
      BEGIN    # NS$KDD # 
# 
**    NS$KDD - ISSUE HOP COMMAND DIAGNOSTIC.
* 
*     J.C. LEE    1981
* 
*     THIS ROUTINE ISSUES HOP COMMAND DIAGNOSTIC. 
* 
*     PROC NS$KDD(REASON) 
* 
*     ENTRY:  
*       REASON - HOP COMMAND ERROR REASON CODE: 
*                0 - NO ERROR.
*                1 - SYNTAX ERROR.
*                2 - UNRECOGNIZABLE COMMAND VERB. 
*                3 - ILLEGAL PARAMETER. 
*                4 - NPU NOT CONFIGURED.
*                5 - NPU NOT SPECIFIED. 
*                6 - NLF NOT SPECIFIED. 
*                7 - NLF NOT AVAILABLE. 
*                8 - NPU ACTIVE, CANNOT ACTION. 
*                9 - BAD NLF FILE FORMAT. 
* 
*     EXIT: 
*       NONE. 
* 
*     METHOD: 
*       USE REASON CODE AS INDEX TO A TABLE OF HOP COMMAND MESSAGES.
*       CALL NS$TKD TO TRANSFER THE INDEXED LINE TO *KDB*.
* 
# 
  
      ITEM REASON     S:HOPCMDERR;
  
      $BEGIN
      XREF
        BEGIN 
        PROC NS$DBG;         # TRACE CALL                              #
        END 
      $END
  
      XREF
        BEGIN 
        PROC NS$TKD;         # TRANSFER LINE TO KDB                    #
        END 
  
      DEF L$HCD      # 4 #;  # SIZE OF DIAGNOSTIC MESSAGE              #
      DEF MAX$NMSGS  # 9 #;  # MAXIMUM NUMBER OF DIAGNOSTIC            #
      ARRAY ILLHOPCMD[1:MAX$NMSGS]S(L$HCD); 
        BEGIN                # HOP COMMAND ERROR DIAGNOSTICS           #
        ITEM HCD$LNHDR  U(00,00,60); # LINE HEADER WORD                #
        ITEM HCD$LNID   U(00,00,24) = [MAX$NMSGS(LIN$IDENT)]; # LINE ID#
        ITEM HCD$LNSIZE U(00,42,18) = [MAX$NMSGS(L$HCD)]; # LINE SIZE  #
        ITEM HCD$ERROR  C(01,00,28) = [ # K DISPLAY ERROR DIAGNOSTICS  #
            "SYNTAX ERROR.",
            "UNRECOGNIZED COMMAND.",
            "ILLEGAL PARAMETER.", 
            "NPU IS NOT CONFIGURED.", 
            "NPU IS NOT SPECIFIED.",
            "NLF IS NOT SPECIFIED.",
            "NLF IS NOT AVAILABLE.",
            "NPU IS ACTIVE,TRY LATER.", 
            "BAD NLF FILE FORMAT.", 
                                      ];
        ITEM HCD$END    U(03,48,12) = [MAX$NMSGS(0)]; # LINE TERMINATOR#
        END 
  
      CONTROL EJECT;
  
      $BEGIN
      NS$DBG("KDD");         # TRACE CALL                              #
      $END
  
      IF REASON LQ MAX$NMSGS
      THEN                   # VALID REASON CODE                       #
        BEGIN                # ISSUE DIAGNOSTIC                        #
        NS$TKD(ILLHOPCMD[REASON],L$HCD,1);
        END 
  
      RETURN; 
      END # NS$KDD #
      TERM
  
