*DECK     NVFICNE 
USETEXT    TEXTNVF
USETEXT    TEXTSS 
USETEXT    TXINNVF
USETEXT    TXTANVF
PROC NVFICNE; 
#     TITLE NVFICNE - COMPLETE NVF EXECUTION.                          #
  
      BEGIN    # NVFICNE #
# 
**    NVFICNE - COMPLETE NVF EXECUTION. 
* 
*     A. LIM.     82/07/15. 
* 
*     THIS PROCEDURE_S MAIN FUNCTION IS TO COMPLETE NVF EXECUTION 
*     UPON *OTQ* FLUSHED AND COMPLETE BIT IN *NSUP* WORD SET. 
* 
*     PROC NVFICNE
* 
*     ENTRY    NONE.
* 
*     EXIT     NVF NETTED OFF.
* 
*     METHOD   NET OFF NVF WHEN LAST DATA IN *OTQ* HAS FLUSHED AND
*              COMPLETE BIT IN *NSUP* WORD SET, ELSE RECALL AND 
*              MAKE A WORKLIST REQUEST. 
# 
  
  
# 
****  PROC NVFICNE XREF LIST
# 
  
      XREF
        BEGIN 
        PROC DFC;            # DECREMENT FAMILY COUNT                  #
        PROC NETOFF;         # TERMINATE NVF                           #
        PROC NETCHEK;       # CHECK WORKLIST PROCESSING COMPLETION    # 
        PROC RECALL;         # PLACE NVF IN RECALL STATE               #
        PROC SSSAWR;         # ACCEPT A WORKLIST REQUEST               #
        PROC SSSPSI;         # PREPARE SS STATISTICS INFORMATION       #
        END 
  
      ITEM I      I;         # LOOP INDEX # 
      ITEM J      I;         # LOOP INDEX # 
  
# 
****
# 
  
  
  
  
  
CONTROL EJECT;
  
# 
*     NET OFF NVF WHEN *OTQ* EMPTY AND COMPLETE BIT SET, ELSE RECALL
*     AND ISSUE A WORKLIST REQUEST FOR SELF.
# 
  
      IF ((OTQLNGTH EQ 0) AND (NSUP$COMP[0])) 
      THEN
        BEGIN 
        NETCHEK;
  
        $BEGIN
        SSSPSI; 
        $END
  
# 
*     BEFORE NET OFF, SEARCH IFMC TABLE, FOR EACH IFMC$COUNT GREATER
*     THAN ZERO, ISSUE CPM73B REQUESTS TO DECREMENT FAMILY COUNTS(
*     EACH REQUEST ONLY DECREMENT ONE FAMILY COUNT) UNTIL IFMC$COUNT
*     EQUAL TO ZERO.
# 
        FOR I=0 STEP 1 UNTIL (IFCLNGTH-1) 
        DO
          BEGIN 
          FOR J=0 STEP 1 UNTIL (IFMC$COUNT[I]-1)
          DO
            BEGIN 
            CPB$WORD[0]=0;
            CPB$FNAM[0]=IFMC$FNAM[I]; 
            DFC(CPMBUF);               # CPM73B REQUEST             # 
            END 
          END 
  
        NETOFF; 
        STOP; 
        END 
      ELSE
        BEGIN 
        RECALL(0);
        SSSAWR(WWDF"NICNE");
        END 
  
      END    # NVFICNE #
  
      TERM
