cdc:nos2.source:nam5871:kdel
Table of Contents
KDEL
Table Of Contents
- [00015] PRGM KDEL
- [00075] PROC KUPVTAB
- [00076] PROC KPUT
- [00077] PROC XTRACE
Source Code
- KDEL.txt
- *DECK KDEL
- USETEXT NIPDEF
- USETEXT KDIS
- USETEXT KINITBF
- USETEXT KSTTAB
- USETEXT ACB
- USETEXT LLCB
- USETEXT NBT
- USETEXT DRHDR
- USETEXT KHDRX
- USETEXT AT
- USETEXT PARAMS
- USETEXT PT
- USETEXT TNT
- PRGM KDEL;
- STARTIMS;
- #
- *1DC KDEL
- *
- * 1. PROC NAME AUTHOR DATE
- * KDEL A.BEN-ARTZI 82/03/04
- * M.GIBIAN 83/12/20
- *
- * 2. FUNCTIONAL DESCRIPTION
- *
- * DELETE A LINE FROM STATUS DISPLAY (ACB,NBT,OR LLCB)
- *
- * 3. METHOD USED
- *
- * -IF DELETED LINE IS BEING DISPLAYED, SET DISPLAY TYPE TO
- * THE TYPE OF LINE DELETED. COMPUTE THE CONVERSION FACTOR
- * TO CONVERT FROM RELATIVE LINE NUMBER TO ABSOLUTE LINE NUMBER.
- *
- * -DECREMENT MAXIMUM COUNT FOR LINE TYPE AND UPDATE VIEW TABLE
- *
- * -IF DELETED LINE IS BEING VIEWED THEN
- * SHIFT DISPLAY TO DELETE LINE
- * DETERMINE TYPE OF NEW LAST LINE AND SAVE IT. IF LAST LINE
- * IS BEYOND END OF DISPLAY, SET TYPE TO RESERVED TO PREVENT
- * ANY NEW LINE FROM BEING DISPLAYED.
- *
- * -SEARCH ACB-S NBTE-S AND LLCB-S TO ADJUST RELATIVE LINE NUMBER
- * FOR STRUCTURE OF DELETED LINE, AND TO DISPLAY NEW LAST LINE
- *
- * 4. ENTRY PARAMETERS
- *
- * TYPE - 1,2,OR 3 ACCORDING TO ACB,NBT(EST) OR LLCB
- *
- * KNDX - THE DATA-STRUCTURE INDX INTO THE STATUS DISPLAY BUFFER
- *
- * 5. EXIT PARAMETERS
- *
- * NONE
- *
- * 6. COMDECKS AND TEXTS
- *
- * NIPDEF KDIS KINITBF
- * KHDRX ACB LLCB NBT
- * DRHDR AT PT
- * TNT
- *
- * 7. ROUTINES AND OVERLAYS CALLED
- *
- * KPUT - UPDATE DATA ON STATUS DISPLAY BUFFERS
- * KUPVTAB- UPDATE VIEW TABLE
- * XTRACE - MARK ROUTINE IN TRACE DUMP
- *
- * 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION
- *
- * THIS PROCEDURE IS CALLED BY NPESTOF,RELACB AND RELLLCB.
- *
- #
- STOPIMS;
- XREF BEGIN
- PROC KUPVTAB;
- PROC KPUT ;
- PROC XTRACE ;
- LABEL RJMAIN;
- END
- #
- INPUT PARAMETERS
- #
- ITEM TYPE U; # SPECIFY ACB,NBT(EST) OR LLCB MOD (1,2 OR 3) #
- ITEM KNDX U; # THE INDEX INTO ST-DISPLAY BUFFER #
- #
- INTERNAL VARIABLES
- #
- ITEM DTYPE S:KST; # TYPE OF DISPLAY CONTAINING LAST LINE #
- ITEM BUF U; # ADDRESS OF NEW BUFFER ALLOCATED #
- ITEM KN I; # TEMP LINE INDEX #
- # #
- BASED ARRAY INDEXES S(1);
- BEGIN
- ITEM ISTART U(0,9,9); # START INDEX IN VIEW TABLE ARRAY #
- ITEM IEND U(0,18,9); # END INDEX IN VIEW TABLE ARRAY #
- END
- SWITCH KLAB1 N1,KAPP1,KEST1,KLGL1;
- # #
- ITEM SIZE U; # SIZE OF NEW BUFFER #
- ITEM I U; # LOOP INDEX #
- ITEM KINDEX U; # LOOP INDEX #
- # #
- #**********************************************************************#
- BEGIN
- CONTROL IFEQ DEBUG,1;
- XTRACE("KDEL ");
- CONTROL FI;
- TYPE=PARAMS1;
- KNDX=PARAMS2;
- # #
- IF TYPE LS 1 OR TYPE GR 3
- THEN # ERROR IN TYPE (INTERNAL NIP) #
- RETURN ; # WE SHOULD ABORT NIP HERE #
- ELSE
- BEGIN
- DTYPE=KST"RESERVED";
- P<KSTTAB> = KHDRNP[0]+BLKHSIZE+KHDRSIZE;
- P<INDEXES>=LOC(KDAPPST[0])-1;
- FOR I=KST"APP" STEP 1 WHILE ISTART[I] EQ 0 DO;
- KN=KNDX-ISTART[I];
- FOR I=KST"APP" STEP 1 UNTIL TYPE-1 DO KN=KN+IEND[I];
- GOTO KLAB1[TYPE] ;
- END
- N1:
- RETURN ;
- # #
- KAPP1:
- IF KNDX GQ KDAPPST[0] AND KNDX LQ KDAPPND[0] THEN
- DTYPE=KST"APP";
- KDAPPMX[0] = KDAPPMX[0] - 1;
- KPUT(LOC(KHDRXNM),0,KPHXNAP,KDAPPMX[0]-3) ;
- GOTO NEXT ;
- # #
- KEST1:
- IF KNDX GQ KDESTST[0] AND KNDX LQ KDESTND[0] THEN
- DTYPE=KST"EST";
- KDESTMX[0] = KDESTMX[0] - 1 ;
- GOTO NEXT ;
- # #
- KLGL1:
- IF KNDX GQ KDLGLST[0] AND KNDX LQ KDLGLND[0] THEN
- DTYPE=KST"LLK";
- KDLGLMX[0] = KDLGLMX[0] - 1 ;
- GOTO NEXT ;
- # #
- NEXT:
- KUPVTAB;
- # SHIFT DISPLAY TO DELETE LINE #
- IF DTYPE NQ KST"RESERVED" THEN
- BEGIN
- FOR I=KN+1 STEP 1 UNTIL KDVWLN[0]-1 DO
- KLGLDTA[I-1]=KLGLDTA[I];
- KLGLDTA[KDVWLN[0]-1]=" ";
- # NOW DECIDE TYPE OF NEW LAST LINE IN DISPLAY #
- IF KDLGLST[0] NQ 0 THEN
- BEGIN
- DTYPE=KST"LLK";
- IF KDESTST[0] EQ 0 THEN
- KN=KDLGLND[0]-KDLGLST[0];
- ELSE
- IF KDAPPST[0] EQ 0 THEN
- KN=KDLGLND[0]+KDESTND[0]-KDESTST[0];
- ELSE
- KN=KDLGLND[0]+KDESTND[0]+KDAPPND[0]-KDAPPST[0];
- IF KN LS KDVWLN[0]-1 THEN
- DTYPE=KST"RESERVED";
- END
- ELSE IF KDESTST[0] NQ 0 THEN
- DTYPE=KST"EST";
- ELSE
- DTYPE=KST"APP";
- END
- IF IEND[DTYPE] EQ 1 OR IEND[DTYPE] EQ 3 THEN
- BEGIN
- PARAMS1=0;
- DTYPE=KST"RESERVED";
- END
- IF DTYPE NQ KST"RESERVED" THEN
- BEGIN
- PARAMS5=TRUE;
- PARAMS3=DTYPE;
- END
- IF IEND[DTYPE] EQ 2 THEN
- BEGIN
- PARAMS1=2;
- DTYPE=KST"RESERVED";
- END
- IF TYPE EQ KST"LLK" OR DTYPE EQ KST"LLK" THEN
- BEGIN
- # CHECK LLCB-S FOR LAST LINE IN DISPLAY AND UPDATED VALUES #
- FOR KINDEX=1 STEP 1 UNTIL TNTBS[0]-1 DO
- BEGIN
- P<LLCB> = TNTLLAD[KINDEX];
- KLMORE:
- IF P<LLCB> NQ 0 THEN
- BEGIN
- IF TYPE EQ KST"LLK" AND LLCBKNDX[0] GR KNDX THEN
- LLCBKNDX[0]=LLCBKNDX[0]-1;
- IF DTYPE EQ KST"LLK" AND LLCBKNDX[0] EQ KDLGLND[0] THEN
- BEGIN
- PARAMS1=LLCBKNDX[0];
- PARAMS2=P<LLCB>;
- DTYPE=KST"RESERVED";
- END
- #
- BEFORE WE QUIT,CHECK FOR ANY MORE LL SERVING THE TNT
- #
- IF LLCBFP[0] NQ 0
- THEN
- BEGIN
- P<LLCB> = LLCBFP[0]; # GET DATA FROM THIS LLCB #
- GOTO KLMORE;
- END
- END
- #
- END LLCB SEARCH
- #
- END
- END
- IF TYPE EQ KST"EST" OR DTYPE EQ KST"EST" THEN
- BEGIN
- # LOCATE EST ENTRY TO DISPLAY ON LAST LINE OF DISPLAY #
- FOR KINDEX = 0 STEP NBTFETNO UNTIL NBTMAXID
- DO
- BEGIN
- IF TYPE EQ KST"EST" AND NBTKNDX[KINDEX] GR KNDX THEN
- NBTKNDX[KINDEX]=NBTKNDX[KINDEX]-1;
- IF DTYPE EQ KST"EST" AND
- NBTKNDX[KINDEX] EQ KDESTND[0] THEN
- BEGIN
- PARAMS1=NBTKNDX[KINDEX];
- PARAMS2=KINDEX;
- DTYPE=KST"RESERVED";
- END
- END
- END
- IF TYPE EQ KST"APP" OR DTYPE EQ KST"APP" THEN
- BEGIN
- FOR KINDEX = 1 STEP 1 UNTIL ATHAN[0] DO
- BEGIN
- P<ACB> = ATACBA[KINDEX];
- IF ATACBA[KINDEX] NQ 0 THEN
- BEGIN
- IF TYPE EQ KST"APP" AND ACBKNDX[0] GR KNDX THEN
- ACBKNDX[0]=ACBKNDX[0]-1;
- IF DTYPE EQ KST"APP" AND ACBKNDX[0] EQ KDAPPND[0] THEN
- BEGIN
- PARAMS1=KDAPPND[0];
- PARAMS2=ATACBA[KINDEX];
- DTYPE=KST"RESERVED";
- END
- END
- END
- END
- IF DTYPE NQ KST"RESERVED" THEN PARAMS5=FALSE; # DO NOT CALL ADD #
- KLGLEND[KDVWLN[0]-1]=0; # MAKE SURE DISPLAY LINE IS TERMINATED #
- GOTO RJMAIN;
- END
- TERM
cdc/nos2.source/nam5871/kdel.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator