*DECK KRIGHTD 
USETEXT NIPDEF
USETEXT DRHDR 
USETEXT KDIS
USETEXT KINITBF 
USETEXT KSTTAB
PRGM KRIGHTD; 
STARTIMS; 
# 
*1DC  KRIGHTD 
* 
*     1.PROC NAME       AUTHOR      DATE
*       KRIGHTD          M.GIBIAN    84/01/26 
* 
*     2.FUNCTIONAL DESCRIPTION
*       DISPLAY NEXT PAGE OF NIPS RIGHT KDISPLAY
* 
*     3.METHOD USED 
*       IF BUFFER IS NOT IN PLACE YET, GENERATE IT. 
*       IF HELP WAS ENTERED, COPY DETAILED HELP TO BUFFER 
*       ELSE COPY SUMMARY HELP TO BUFFER
*       INCREMENT NEXT RIGHT LINE TO DISPLAY BY RIGHT PAGE LENGTH 
* 
*     4.ENTRY PARAMETERS
* 
*     5.OUTPUT PARAMETERS 
* 
*     6.COMDECKS AND TEXTS USED.
*       NIPDEF    KDIS
* 
*     7.ROUTINES CALLED.
* 
*     8.DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION
*       MUST FIT IN SECONDARY OVERLAY 
* 
# 
STOPIMS;
  
      ITEM  KADDR U;   # ADDRESS OF NEW BUFFER  # 
      ITEM  I     I;   # LOOP VARIABLE          # 
      ITEM  J     I;
      ITEM  K     I;
  
      BASED ARRAY MOVEIT S(1);
         BEGIN
         ITEM MOVEWRD C(0,0,10);
         END
  
      BASED ARRAY GETIT S(1); 
         BEGIN
         ITEM GETWRD C(0,0,10); 
         END
  
      DEF   KHELPSZ#22#;
  
      ARRAY KHELPARY [1:KHELPSZ] S(6);
         BEGIN
            ITEM KHELP C(0,0,58)= 
["                  NAM COMMAND LIST",
 " ", 
 "AP   ASSIGN DISPLAY TO FIRST APPLICATION ON ALERT LIST.", 
 "AP=APPL ASSIGN DISPLAY TO APPLICATION APPL.", 
 "DB=APPL/NAM/ALL TURN ON INLINE DEBUG CODE IN APPLICATION",
 "     APPL, OR NAM, OR ALL APPLICATIONS AND NAM.", 
 "DE=APPL/NAM/ALL  TURN OFF INLINE DEBUG CODE.",
 "DU=APPL/NAM/ALL  DUMP FIELD LENGTH.", 
 "IG   IGNORE ALERT FROM THE FIRST APPLICATION OF ALERT LIST",
 "IG=APPL IGNORE ALERT FROM APPLICATION APPL",
 "FL=NNNNNN CHANGE NAMS MAXIMUM FIELD LENGTH TO NNNNNN.", 
 "END  TERMINATE K-DISPLAY USAGE",
 "LB=APPL/NAM/ALL START LOGGING NETWORK TRAFFIC ON DEBUG",
 "     FILE.",
 "LE=APPL/NAM/ALL END LOGGING NETWORK TRAFFIC ON DEBUG FILE.",
 "LR=APPL/NAM/ALL RELEASE THE DEBUG LOG FILE.", 
 "MO=FAST/SLOW REFRESH THE NAM STATUS DISPLAY FAST",
 "    (DYNAMICALLY) OR SLOW (EVERY 10 SECONDS).", 
 "     DEFAULT IS SLOW.", 
 "SEND,DN,MSG SEND A MESSAGE MSG (1-40 CHARACTERS) TO", 
 "     DESTINATION HOST NODE NUMBER DN.", 
 "ST   DISPLAY THE NAM STATUS DISPLAY."]; 
         END
  
# 
      EXTERNAL REFERENCES 
# 
   XREF 
      BEGIN 
      PROC MGETS; 
      PROC XTRACE;
      LABEL RJMAIN; 
      END 
  
   BEGIN
      CONTROL IFEQ DEBUG,1; 
         XTRACE("KRIGD"); 
      CONTROL FI; 
  
   IF KDRFP[0] EQ 0 THEN    # ALLOCATE RIGHT DISPLAY BUFFER # 
      BEGIN 
  
      MGETS((KRSIZE[0]*KSTBLK)+1+BLKHSIZE+KHDRSIZE,KADDR,TRUE); 
  
      KDRFP[0]=KADDR; 
      KDRBP[0]=KADDR; 
      P<DRHDRWD> = KADDR; 
      BLKID[0] = KDISIDVALUE; 
      BACKPTR[0] = LOC(KDRBP[0]); 
      NEXTPTR[0] = LOC(KDRFP[0]); 
  
      P<KINITBF> = 0; 
      KDTYPE[KADDR+BLKHSIZE] = KDISTYPE;
      KDSTAIL[KADDR+BLKBS[0]-1]=0;
      K7777[KADDR+BLKBS[0]-1]=0;
      P<KSTTAB> = KADDR+BLKHSIZE+KHDRSIZE;
      KDRSTOP[0] = P<KSTTAB>; 
      END 
   ELSE 
      P<KSTTAB> = KDRSTOP[0]; 
  
# 
      NOW DISPLAY NEXT PAGE OF RIGHT DISPLAY LINES
# 
   FOR I=0 STEP 1 WHILE (I LQ KRSIZE[0]-1) AND (KDRNXT+I LQ KHELPSZ)
   DO 
      BEGIN 
      P<GETIT>=LOC(KHELP[KDRNXT+I]);
      P<MOVEIT>=LOC(KSTDATA[I]);
      FOR J=0 STEP 1 UNTIL 5 DO 
         MOVEWRD[J]=GETWRD[J];
      KSTEND[I] = 0;
      END 
# 
    COMPUTE FIRST LINE OF NEXT PAGE 
# 
   KDRNXT[0]=KDRNXT[0]+KRSIZE[0]-1; 
   IF KDRNXT[0] GQ KHELPSZ THEN 
      KDRNXT[0]=1;
   ELSE 
      BEGIN 
      KDRNXT[0]=KDRNXT[0]-2;
      I=I-2;
      END 
# 
    BLANK REMAINING PART OF PAGE
# 
   FOR J=I STEP 1 UNTIL KRSIZE[0]-1 DO
      BEGIN 
      P<MOVEIT>=LOC(KSTDATA[J]);
      FOR K=0 STEP 1 UNTIL 5 DO 
         MOVEWRD[K]=" ";
      KSTEND[J]=0;
      END 
  
# 
    DISPLAY -MORE- AT BOTTOM RIGHT IF NOT LAST PAGET
# 
   IF KDRNXT[0] NQ 1 THEN 
      BEGIN 
      P<MOVEIT>=LOC(KSTDATA[KRSIZE[0]-1]);
      MOVEWRD[5]="MORE";
      KSTEND[KRSIZE[0]-1]=0;
      END 
  
   KSHOW[0]=FALSE;
   GOTO RJMAIN; 
   END
TERM
