*DECK GENNSUP 
USETEXT COMCBEG 
USETEXT COMRAPL 
USETEXT COMRSFC 
PROC GENNSUP; 
# TITLE GENNSUP - GENERATE NSUP WORD.  #
  
      BEGIN  # GENNSUP #
  
# 
**    GENNSUP - GENERATE NSUP WORD. 
* 
*     GENERATE NSUP WORD. 
* 
*     PROC GENNSUP. 
* 
*     ENTRY   - APL$HEADER IS BASED ARRAY CONTAINING APPLICATION TABLE. 
* 
*     EXIT    - NSUP$WP IS GENERATED. 
* 
*     PROCESS - SET INPUT FALSE.
*               SAVE CONNECTION POINTER.
*               FOR EACH CONNECTION WHILE INPUT FALSE:  
*                 IF INPUT IS AVAILABLE 
*                 THEN: 
*                   SET INPUT TRUE. 
*               IF SUPERVISORY MESSAGES QUEUED
*               THEN: 
*                 SET SUPERVISORY MESSAGE IN QUEUE. 
*               ELSE: 
*                 CLEAR SUPERVISORY MESSAGE IN QUEUE. 
*               RESTORE CONNECTION POINTER. 
*               RETURN. 
# 
  
  
      ITEM I I;                      # LOOP CONTROL VARIABLE #
      ITEM CONNECT I;                # SAVE CONNECTION POINTER #
  
CONTROL EJECT;
  
      NSUP$INPUT = FALSE; 
      CONNECT = P<CONNECTION>;
      P<CONNECTION> = P<APL$HEADER> + APL$LENGTH; 
      FASTFOR I=0 STEP 1 WHILE I LQ (APL$MAXACN - APL$MINACN) 
        AND NOT NSUP$INPUT
      DO
        BEGIN  # EXAMINE EACH CONNECTION FOR INPUT #
        IF CON$INPUT
        THEN
          BEGIN  # INPUT AVAILABLE #
          NSUP$INPUT = TRUE;
          END 
  
        P<CONNECTION> = P<CONNECTION> + CON$LENGTH; 
        END 
  
      IF APL$MSGQ NQ 0
      THEN
        BEGIN  # SUPERVISORY MESSAGE QUEUED # 
        NSUP$SUPER = TRUE;
        END 
  
      ELSE
        BEGIN  # NO SUPERVISORY MESSAGE QUEUED #
        NSUP$SUPER = FALSE; 
        END 
  
      P<CONNECTION> = CONNECT;
      RETURN; 
      END  # GENNSUP #
  
      TERM
