*DECK KRIGHT
USETEXT NIPDEF
USETEXT DRHDR
USETEXT KDIS
USETEXT KINITBF
USETEXT KSTTAB
PRGM KRIGHT;
STARTIMS;
#
*1DC KRIGHT
*
* 1.PROC NAME AUTHOR DATE
* KRIGHT 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#31#;
ARRAY KHELPARY [1:KHELPSZ] S(6);
BEGIN
ITEM KHELP C(0,0,58)=
[" USING THE NAM K-DISPLAY",
"THE NAM K-DISPLAY IS EITHER IN NAM MODE OR APPLICATION",
"MODE. THE FOLLOWING COMMANDS ARE AVAILABLE IN NAM AND",
"SUPERVISORY (NS,CS,NVF) APPLICATION MODE:",
" *NAM*",
"AP START APPL MODE MO REFRESH SPEED",
"DB DEBUG ON SE SEND MSG TO HOP",
"DE DEBUG OFF ST DISPLAY STATUS",
"DU DUMP MEMORY END EXIT K DISPLAY",
"FL CHANGE MAX FL + PAGE FORWARD",
"IG IGNORE ALERT - PAGE BACKWARD",
"LB BEGIN LOGGING HELP MORE NAM HELP",
"LE END LOGGING ( RIGHT PAGE FORWARD",
"LR RELEASE LOG FILE",
" *CS*",
"CO CONTROL NPU IN DISPLAY NPU INFO",
"DI DISABLE TR/LL//LI/TE LO RESTART NPU",
"DU SET NPU DUMP FLAG SE SEND MSG TO USERS",
"EN ENABLE TR/LL/LI/TE ST STATUS NP/CP/TR/LL/LI/TE",
"GO START NPU TS RUN DIAGNOSTICS",
"HI DISPLAY HISTORY",
" *NS*",
"FI CHANGE LOAD FILE NO NEGATE FI COMMAND",
"HI DISPLAY HISTORY ST STATUS NPU LOAD",
" *NVF*",
"DI DISABLE HOST/APPL HI DISPLAY HISTORY",
"EN ENABLE APPLICATION ST STATUS APP/TE/UNS",
"ID IDLE HOST/APPL",
" *CS,NS,NVF*",
"+ LEFT PAGING ON/TURN PAGE - PAGING OFF ",
"* RETURN TO NAM MODE ( RIGHT PAGE FORWARD"];
END
#
EXTERNAL REFERENCES
#
XREF
BEGIN
PROC MGETS;
PROC XTRACE;
LABEL RJMAIN;
END
BEGIN
CONTROL IFEQ DEBUG,1;
XTRACE("KRIGH");
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
#
PUT -MORE- ON BOTTOM RIGHT IF NOT LAST PAGE
#
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