cdc:nos2.source:nam5871:kchange
Table of Contents
KCHANGE
Table Of Contents
- [00011] PRGM KCHANGE
- [00021] PROC LOCLLCB
- [00022] PROC MRELS
- [00023] PROC OVLCALL
- [00024] PROC XTRACE
Source Code
- KCHANGE.txt
- *DECK KCHANGE
- USETEXT NIPDEF
- USETEXT AT
- USETEXT KDIS
- USETEXT KSTTAB
- USETEXT NBT
- USETEXT OVERLAY
- USETEXT PARAMS
- USETEXT PT
- PRGM KCHANGE; # PROCESS K DISPLAY CHANGE #
- STARTIMS;
- STOPIMS;
- #
- EXTERNAL REFERENCES
- #
- XREF
- BEGIN
- PROC LOCLLCB; # LOCATE LOGICAL LINK CONTROL BLOCK #
- PROC MRELS; # RELEASE BUFFER #
- PROC OVLCALL;
- PROC XTRACE; # TRACE CALL #
- LABEL RJMAIN;
- END
- #
- LOCAL VARIABLES
- #
- ITEM TYPE; # STATUS DISPLAY BUFFER TYPE #
- ITEM INDEX; # INDUCTION VARIABLE, TABLE INDEX #
- ITEM J; # INDUCTION VARIABLE #
- ITEM NEXTKWL; # FWA OF NEXT KWL #
- SWITCH ST$TYPE:KST # SWITCH FOR VALID STATUS DISPLAY BUFFER #
- LB$APP:APP, # APPLICATION ACB #
- LB$EST:EST, # EST #
- LB$LLK:LLK; # LOGICAL LINK LLCB #
- CONTROL EJECT;
- BEGIN # KCHANGE #
- P<KWL> = LOC(KWLPTR[0]);
- NEXTKWL = KWL$NEXT[0]; # FWA OF FIRST KWL IN LIST #
- IF KDST[0]
- THEN # IF STATUS DISPLAY IS STILL ON #
- BEGIN
- FOR J=J WHILE KWL$NEXT[0] NQ 0
- DO # PROCESS ALL KWL ENTRY(S) IN LIST #
- BEGIN
- P<KWL> = KWL$NEXT[0]; # CURRENT KWL ENTRY #
- TYPE = KWL$TYPE[0]; # BUFFER TYPE TO ADD/DELETE #
- PARAMS5=FALSE;
- IF KWL$ID[0] EQ KADDIDVALUE
- THEN # ADD ENTRY TO STATUS DISPLAY #
- BEGIN
- GOTO ST$TYPE[TYPE]; # CASE ON STATUS DISPLAY BUFFER TYPE #
- LB$APP: # COMPUTE ACB ADDRESS #
- INDEX = ATACBA[KWL$AN[0]];
- GOTO LB$CHANGE;
- LB$EST: # COMPUTE NBT ENTRY INDEX #
- FOR INDEX=0 STEP NBTFETNO WHILE NBTHN[INDEX] NQ KWL$HN[0]
- AND INDEX LQ NBTMAXID
- DO # SEARCH NBT FOR MATCHING COUPLER NODE NUMBER #
- BEGIN
- END # INDEX = NBT ENTRY INDEX #
- GOTO LB$CHANGE1;
- LB$LLK: # COMPUTE LLCB ADDRESS #
- LOCLLCB(KWL$HN[0],KWL$TN[0],INDEX);
- GOTO LB$CHANGE;
- LB$CHANGE:
- IF INDEX EQ 0
- THEN # ACB OR LLCB NOT EXISTS #
- GOTO LB$END;
- LB$CHANGE1:
- PARAMS1=TYPE;
- PARAMS2=INDEX;
- OVLNAME=KADDP;
- OVLCALL;
- LB$END:
- END
- ELSE # DELETE ENTRY FROM STATUS DISPLAY #
- BEGIN
- INDEX = KWL$KNDX[0]; # STATUS DISPLAY LINE INDEX #
- IF INDEX NQ 0
- THEN # STATUS DISPLAY LINE EXISTS #
- BEGIN
- PARAMS1=TYPE;
- PARAMS2=INDEX;
- OVLNAME=KDELP;
- OVLCALL;
- END
- END
- IF PARAMS5 THEN
- BEGIN
- OVLNAME=KOVDISP;
- OVLCALL;
- END
- END
- END
- FOR INDEX=INDEX WHILE NEXTKWL NQ 0
- DO # RELEASE ALL KWL ON LIST #
- BEGIN
- P<KWL> = NEXTKWL;
- NEXTKWL = KWL$NEXT[0]; # NEXT KWL ENTRY #
- MRELS(P<KWL>); # RELEASE KWL #
- END
- KWLPTR[0] = 0; # CLEAR KWL POINTER, ALL KWL(S) PROCESSED #
- GOTO RJMAIN;
- END # KCHANGE #
- TERM
cdc/nos2.source/nam5871/kchange.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator