*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