cdc:nos2.source:nam5871:kadd
Table of Contents
KADD
Table Of Contents
- [00014] PRGM KADD
- [00082] PROC KUPVTAB
- [00083] PROC KPUT
- [00084] PROC XTRACE
Source Code
- KADD.txt
- *DECK KADD
- USETEXT NIPDEF
- USETEXT AT
- USETEXT PT
- USETEXT KDIS
- USETEXT KINITBF
- USETEXT KSTTAB
- USETEXT ACB
- USETEXT LLCB
- USETEXT NBT
- USETEXT PARAMS
- USETEXT DRHDR
- USETEXT KHDRX
- PRGM KADD;
- STARTIMS;
- #
- *1DC KADD
- *
- * 1.PROC NAME AUTHOR DATE
- * KADD A.BEN-ARTZI 82/03/04
- * M.GIBIAN 83/12/20
- *
- * 2.FUNCTIONAL DESCRIPTION
- *
- * ADD A NEW LINE INTO THE STATUS DISPLAY AND UPDATE DISPLAY IF
- * CURRENTLY IN VIEW.
- *
- * 3.METHOD USED
- *
- * - SET STRUCTURE INDEX TO 0 TO INDICATE NEW LINE NOT DISPLAYED
- *
- * - ASSIGN RELATIVE LINE NUMBER TO NEW LINE AND UPDATE VIEW TABLE
- *
- * - IF IN VIEW, SET STRUCTURE INDEX AND STRUCTURE ADDRESS, AND
- * SET ABSOLUTE ADDRESS OF NEW LINE
- *
- * - IF STUCTURE INDEX IS NON-ZERO, MOVE DISPLAY AND DISPLAY NEW
- * LINE
- *
- * 4.ENTRY PARAMETERS
- *
- * TYPE - 1,2,OR 3 STANDS FOR ACB,NBT OR LLCB, TYPE ST-LINE.
- *
- * ADDRESS - THE ADDRESS OF PROPER DATA STRUCTURE
- *
- * 5.EXIT PARAMETERS
- *
- * NONE
- *
- * 6.COMDECKS AND TEXTS
- *
- * NIPDEF KDIS KINITBF KSTTAB
- * KHDRX
- * ACB LLCB NBT DRHDR
- *
- * 7.ROUTINES AND OVERLAYS CALLED
- *
- * KPUT - UPDATE ST-VALUE
- * KUPVTAB- UPDATE VIEW TABLE
- * XTRACE- MARK NAME IN TRACE BUFFER
- *
- *
- * 8.DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION
- * THIS PROCEDURE IS CALLED BY BLDACB,BLDLLCB,XCHKCET
- *
- #
- STOPIMS;
- #
- INPUT PARAMETERS
- #
- ITEM TYPE S:KST; # STATUS LINE BUFFER TYPE #
- ITEM ADDRESS; # ACB ADDRESS/NBT ENTRY INDEX/LLCB ADDRESS#
- #
- OUTPUT PARAMETERS
- NONE
- #
- #
- EXTERNAL REFERENCES
- #
- XREF
- BEGIN
- PROC KUPVTAB; # UPDATE VIEW TABLE #
- PROC KPUT; # UPDATE STATUS DISPLAY #
- PROC XTRACE; # TRACE CALL #
- LABEL RJMAIN;
- END
- #
- LOCAL VARIABLES
- #
- ITEM I; # INDUCTION VARIABLE #
- ITEM KN; # TEMPORARY DISPLAY LINE INDEX #
- ITEM STRIND U; # STRUCTURE 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 KLAB:KST
- LB$APP:APP,
- LB$EST:EST,
- LB$LLK:LLK;
- CONTROL EJECT;
- BEGIN # KADD #
- CONTROL IFEQ DEBUG,1;
- XTRACE("KADD"); # TRACE CALL #
- CONTROL FI;
- #
- UPDATE SPECIFIC DATA ACORDING TO THE TYPE
- #
- TYPE=PARAMS1;
- PARAMS1=0;
- ADDRESS=PARAMS2;
- STRIND=0; # INDICATE LINE ADDED IS NOT DIPLAYED #
- GOTO KLAB[TYPE]; # SWITCH ON BUFFER TYPE #
- LB$APP: # ADD NEW APPLICATION TO STATUS DISPLAY #
- KDAPPMX[0]=KDAPPMX[0]+1; #ADD NEW APPLICATION TO COUNT OF APPS #
- KPUT(LOC(KHDRXNM),0,KPHXNAP,KDAPPMX[0]-3);
- P<ACB> = ADDRESS; # FWA OF ACB #
- ACBKNDX[0] = KDAPPMX[0]; # RESET STATUS DISPLAY LINE INDEX #
- KUPVTAB; # ADJUST VIEW TABLE TO REFLECT NEW LINE #
- # NOW DETERMINE IF LINE IS BEING DISPLAYED #
- IF KDAPPST[0] NQ 0 # SOME APPLICATIONS ARE BEING DISPLAYED #
- AND ACBKNDX[0] GQ KDAPPST[0] #LINE IS AFTER/IS FIRST LINE #
- AND ACBKNDX[0] LQ KDAPPND[0] #LINE IS BEFORE/IS LAST LINE #
- THEN
- STRIND=ACBKNDX[0];
- GOTO LB$;
- LB$EST: # ADD NEW EST ENTRY TO STATUS DISPLAY #
- KDESTMX[0] = KDESTMX[0] + 1;
- NBTKNDX[ADDRESS] = KDESTMX[0];
- KUPVTAB; # UPDATE VIEW TABLE TO REFLECT NEW LINE #
- # CHECK TO SEE IF THIS LINE IS IN VIEW #
- IF KDESTST[0] NQ 0 # EST LINE ARE BEING DISPLAYED #
- AND KDESTMX[0] GQ KDESTST[0] #GREATER/IS FIRST LINE #
- AND KDESTMX[0] LQ KDESTND[0] #LESS/IS LAST LINE #
- THEN
- STRIND=KDESTMX[0];
- GOTO LB$;
- LB$LLK: # ADD NEW LOGICAL LINK TO STATUS DISPLAY #
- KDLGLMX[0] = KDLGLMX[0]+1;
- P<LLCB> = ADDRESS; # FWA OF LLCB #
- LLCBKNDX[0] = KDLGLMX[0];
- KUPVTAB; # UPDATE VIEW TABLE TO REFLECT NEW LINE #
- # CHECK TO SEE IF THIS LINE IS BEING DISPLAYED #
- IF KDLGLST[0] NQ 0
- AND KDLGLMX[0] GQ KDLGLST[0]
- AND KDLGLMX[0] LQ KDLGLND[0] THEN
- STRIND=KDLGLMX[0];
- GOTO LB$;
- LB$:
- IF STRIND NQ 0 THEN
- BEGIN
- 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=STRIND-ISTART[I];
- FOR I=KST"APP" STEP 1 UNTIL TYPE-1 DO KN=KN+IEND[I];
- FOR I=KDVWLN[0]-1 STEP -1 UNTIL KN+1 DO
- KLGLDTA[I]=KLGLDTA[I-1]; # SHIFT LINE UP ONE POSITION #
- PARAMS1=STRIND;
- PARAMS2=ADDRESS;
- PARAMS3=TYPE;
- PARAMS5=TRUE;
- END
- GOTO RJMAIN;
- END
- TERM
cdc/nos2.source/nam5871/kadd.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator