*DECK NS$STR
USETEXT COM$NS
USETEXT ERR$NS
USETEXT KDS$NS
USETEXT PFC$NS
USETEXT SMB$NS
      PROC NS$STR(ERRCODE);  # PROCESS HOP/START                       #
# TITLE NS$STR - PROCESS HOP/START.                                    #
  
      BEGIN    # NS$STR # 
# 
**    NS$STR - PROCESS HOP/START. 
* 
*     J.C. LEE    1981
* 
*     THIS ROUTINE PROCESSES HOP/START. 
* 
*     PROC NS$STR(ERRCODE)
* 
*     ENTRY:  
*       NONE. 
* 
*     EXIT: 
*       ERRCODE.
* 
*     METHOD: 
*       IF K-DISPLAY ASSIGNED, FLAG ERRCODE AND EXIT. 
*       SEND HELP DISPLAY TO K-DISPLAY RIGHT SCREEN.
*       ALLOCATE 1-WORD TSB FOR PAGE-WAIT BUFFER. 
*       INITIALIZE HEADER WORD OF PAGE-WAIT BUFFER. 
*       SET PAGE-WAIT MODE TO FALSE.
*       SET K-DISPLAY-LINE-COUNT TO 0.
*       SET IGNORE-ALERT TO FALSE.
*       SET HISTORY-DISPLAY-ASSIGNED TO TRUE. 
*       SET INPUT-ALLOW-FLAG TO FALSE.
*       SEND THE LAST PAGE OF HISTORY TO K-DISPLAY. 
*       SEND "READY.." TO K-DISPLAY WITH END-OF-HOP 
*       -RESPONSE FLAG SET. 
* 
# 
  
      ITEM ERRCODE    U;     # ERROR CODE                              #
  
      $BEGIN
      XREF
        BEGIN 
        PROC NS$DBG;         # TRACE PROC CALL                         #
        END 
      $END
  
      XREF
        BEGIN 
        PROC MOVEOK;         # ALLOW MOVE ON TABLE                     #
        PROC NETPUT;         # SEND MESSAGE TO NAM                     #
        FUNC NS$FEC U;       # FORMAT ERROR CODE                       #
        PROC REQTSB;         # REQUEST TSB                             #
        END 
  
      ITEM TSBADDR    U;     # TSB FWA                                 #
      ITEM TSBN       U;     # TSB NUMBER                              #
      ARRAY ABH [0:0] S(1);  # APPLICATION BLK HDR FOR HOP/DIS/SM      #
        BEGIN 
        ITEM ABH$ABT    U(00,00,06) = [APPCMD];     # BLOCK TYPE       #
        ITEM ABH$ADR    U(00,06,12) = [0];          # CONNECTION NUMBER#
        ITEM ABH$ABN    U(00,18,18) = [0];          # APP BLOCK NUMBER #
        ITEM ABH$ACT    U(00,36,04) = [CT60TRANS];  # CHAR TYPE        #
        ITEM ABH$DBC    U(00,40,08) = [0];          # DATA BLK CLARIFIR#
        ITEM ABH$TLC    U(00,48,12) = [116];        # SIZE OF SUP MSG  #
        END 
      ARRAY SM$HELP [0:0] S(116);  # HOP/DIS SM TO SEND HELP DISPLAY   #
        BEGIN 
        ITEM SM$HELPPS  U(000,00,16) = [HOPDIS]; # PFC/SFC VALUE       #
        ITEM SM$HELPZ1  U(000,16,42) = [0]; 
        ITEM SM$HELPRS  B(000,58,01) = [TRUE];   # RIGHT SCREEN DISPLAY#
        ITEM SM$HELPIA  B(000,59,01) = [FALSE];  # INPUT ALLOWED FLAG  #
  
        ITEM SM$HELPL01 C(001,00,21) = [" "];    # DISPLAY HEADER LINE #
        ITEM SM$HELPM01 C(003,06,15) = ["NS COMMAND LIST"]; 
        ITEM SM$HELPN01 C(004,36,22) = [" "];    # DISPLAY HEADER LINE #
        ITEM SM$HELPE01 U(006,48,12) = [0];      # LINE TERMINATOR     #
  
        ITEM SM$HELPM02 C(007,00,58) = [" "];    # BLANK LINE          #
        ITEM SM$HELPE02 U(012,48,12) = [0];      # LINE TERMINATOR     #
  
        ITEM SM$HELPL03 C(013,00,28) = ["FI,NP=NN,NL=FF,UN=UU,PW=PP. "];
        ITEM SM$HELPM03 C(015,48,28) = ["CHANGE THE NPU LOAD FILE FOR"];
        ITEM SM$HELPN03 C(018,36,02) = [" "]; 
        ITEM SM$HELPE03 U(018,48,12) = [0];      # LINE TERMINATOR     #
  
        ITEM SM$HELPL04 C(019,00,31) = [" "];    # LINE 4              #
        ITEM SM$HELPM04 C(022,06,27) = ["NPU NAMED NN TO FILE FF    "]; 
        ITEM SM$HELPE04 U(024,48,12) = [0];      # LINE TERMINATOR     #
  
        ITEM SM$HELPL05 C(025,00,31) = [" "];    # LINE 5              #
        ITEM SM$HELPM05 C(028,06,27) = ["UNDER USER NAME UU AND     "]; 
        ITEM SM$HELPE05 U(030,48,12) = [0];      # LINE TERMINATOR     #
  
        ITEM SM$HELPM06 C(031,00,31) = [" "];    # LINE 6              #
        ITEM SM$HELPN06 C(034,06,27) = ["PASSWORD PP.               "]; 
        ITEM SM$HELPE06 U(036,48,12) = [0];      # LINE TERMINATOR     #
  
        ITEM SM$HELPM07 C(037,00,29) = ["HI."];  # LINE 7              #
        ITEM SM$HELPN07 C(039,54,29) = ["DISPLAY LAST PAGE OF RECENT"]; 
        ITEM SM$HELPE07 U(042,48,12) = [0];      # LINE TERMINATOR     #
  
        ITEM SM$HELPM08 C(043,00,31) = [" "];    # LINE 8              #
        ITEM SM$HELPN08 C(046,06,27) = ["ACTIVITY BUFFER. "]; 
        ITEM SM$HELPE08 U(048,48,12) = [0];      # LINE TERMINATOR     #
  
        ITEM SM$HELPM09 C(049,00,29) = ["HI,ALL."];  # LINE 9          #
        ITEM SM$HELPN09 C(051,54,29) = ["DISPLAY ALL AVAILABLE PAGES"]; 
        ITEM SM$HELPE09 U(054,48,12) = [0];      # LINE TERMINATOR     #
  
        ITEM SM$HELPM10 C(055,00,31) = [" "];    # LINE 10             #
        ITEM SM$HELPN10 C(058,06,27) = ["OF HISTORY BUFFER."];
        ITEM SM$HELPF10 U(060,48,12) = [0];      # LINE TERMINATOR     #
  
        ITEM SM$HELPM11 C(061,00,29) = ["NO."];  # LINE 11             #
        ITEM SM$HELPN11 C(063,54,29) = ["USED AFTER AN FI COMMAND TO"]; 
        ITEM SM$HELPE11 U(066,48,12) = [0];      # LINE TERMINATOR     #
  
        ITEM SM$HELPM12 C(067,00,31) = [" "];    # LINE 12             #
        ITEM SM$HELPN12 C(070,06,27) = ["REVERT BACK TO THE DEFAULT "]; 
        ITEM SM$HELPE12 U(072,48,12) = [0];      # LINE TERMINATOR     #
  
        ITEM SM$HELPM13 C(073,00,31) = [" "];    # LINE 13             #
        ITEM SM$HELPN13 C(076,06,27) = ["NPU LOAD FILE.  "];
        ITEM SM$HELPE13 U(078,48,12) = [0];      # LINE TERMINATOR     #
  
        ITEM SM$HELPM14 C(079,00,29) = ["ST,NP=NN."];  # LINE 14       #
        ITEM SM$HELPN14 C(081,54,29) = ["REQUEST CURRENT LOAD STATUS"]; 
        ITEM SM$HELPE14 U(084,48,12) = [0];      # LINE TERMINATOR     #
  
        ITEM SM$HELPM15 C(085,00,31) = [" "];    # LINE 15             #
        ITEM SM$HELPN15 C(088,06,27) = ["OF THE NPU NAMED NN "];
        ITEM SM$HELPE15 U(090,48,12) = [0];      # LINE TERMINATOR     #
  
        ITEM SM$HELPM16 C(091,00,31) = [" "];    # LINE 16             #
        ITEM SM$HELPN16 C(094,06,27) = ["RELATIVE TO THIS NS."];
        ITEM SM$HELPE16 U(096,48,12) = [0];      # LINE TERMINATOR     #
  
        ITEM SM$HELPM17 C(097,00,29) = ["ST,NPS."];  # LINE 17         #
        ITEM SM$HELPN17 C(099,54,29) = ["REQUEST STATUS OF ALL NPUS "]; 
        ITEM SM$HELPE17 U(102,48,12) = [0];      # LINE TERMINATOR     #
  
        ITEM SM$HELPM18 C(103,00,31) = [" "];    # LINE 18             #
        ITEM SM$HELPN18 C(106,06,27) = ["RELATIVE TO THIS NS."];
        ITEM SM$HELPE18 U(108,48,12) = [0];      # LINE TERMINATOR     #
  
        ITEM SM$HELPM19 C(109,00,29) = ["*"];    # LINE 19             #
        ITEM SM$HELPN19 C(111,54,29) = ["RETURN TO NAM MODE."]; 
        ITEM SM$HELPE19 U(114,48,12) = [0];      # LINE TERMINATOR     #
  
        ITEM SM$HELPLWD U(115,00,60) = [0];      # ZERO WORD AT END    #
        END 
  
CONTROL EJECT;
  
      $BEGIN
      NS$DBG("STR");         # TRACE CALL                              #
      $END
  
      IF NOT DCW$F$ASS[0] 
      THEN                   # K DISPLAY NOT ASSIGNED                  #
        BEGIN 
        NETPUT(ABH,SM$HELP); # SEND HELP DISPLAY TO RIGHT SCREEN       #
        MAX$PW = HOPLPL[0];            # SAVE THE LEFT AND RIGHT       #
        MAX$RPW = HOPRPL[0];           #   PAGE LENGTHS                #
        DCW$WORD[0] = 0;
        REQTSB(PWB$HDRL,TSBADDR,TSBN); # ALLOCATE PAGE WAIT BUFFER     #
        P<PWB$BUFFER> = TSBADDR;
        PWB$HDRWD[0] = 0;    # INITIALIZE HEADER WORD OF PAGE WAIT BUFF#
        PWB$ID[0] = PWB$IDENT;
        PWB$WC[0] = PWB$HDRL; 
        DCW$PWBTSB[0] = TSBN;# SAVE TSBN OF PWB  #
        MOVEOK(TSBN);        # ALLOW MOVE ON PAGE WAIT BUFFER          #
  
        REQTSB(KDB$HDRL,TSBADDR,TSBN); # ALLOCATE K DISPLAY BUFFER     #
        P<KDS$BUFFER> = TSBADDR;
        KDB$HDRWD[0] = 0;    # INITIALIZE HDR WORD OF K-DISPLAY BUFF   #
        KDB$ID[0] = KDB$IDENT;
        KDB$WC[0] = KDB$HDRL; 
        DCW$KDBTSB[0] = TSBN; 
        MOVEOK(TSBN); # ALLOW KDB TO MOVE                              #
        END 
  
      ELSE # NAM ERROR, HOP/START NOT ALLOWED AT THIS STATE            #
        ERRCODE = NS$FEC(EC"ERR$SM", SMEC"HSM$HOPSM");
  
      RETURN; 
      END # NS$STR  # 
      TERM
