*DECK MUJACT
USETEXT COMCBEG 
USETEXT COMRAPL 
USETEXT COMRQUE 
USETEXT COMRSFC 
PROC MUJACT;
# TITLE  MUJACT - CHECK FOR MUJ ACTIVITY.  #
  
      BEGIN  # MUJACT # 
  
# 
**    MUJACT - CHECK FOR MUJ ACTIVITY.
* 
*     INITIATE MUJ (ITF) SWAP IN IF THERE IS NETWORK ACTIVITY FOR ITF.
* 
*     PROC MUJACT.
* 
*     ENTRY   - APL$HEADER IS BASED ARRAY POINTING TO APPLICATION TABLE.
* 
*     EXIT    - NSUP WORD UPDATE OR SWAP IN REQUEST MADE. 
* 
*     PROCESS - GENERATE NSUP WORD. 
*               IF INPUT OR SUPERVISORY MESSAGE AVAILABLE 
*                 AND UCP QUEUE EMPTY 
*               THEN
*                 WRITE NSUP STATUS.
*                 IF SWAP STATUS RETURNED 
*                 THEN
*                   INITIATE SWAP IN
*                 ELSE
*                   IF SSF ERROR
*                   THEN
*                     CALL SSF ERROR PROCESSOR. 
*               RETURN. 
* 
* 
****  PROC MUJACT - XREF LIST BEGIN.
# 
  
      XREF
        BEGIN 
        PROC CALLSYS;                # MAKE RA + 1 CALL # 
        PROC GENNSUP;                # GENERATE NSUP WORD # 
        PROC GETFREE;                # GET FREE QUEUE ENTRY # 
        PROC SSFERRP;                # SSF ERROR PROCESSOR #
        PROC SSFREQ;                 # MAKE SSF REQUEST # 
        END 
  
# 
****  PROC MUJACT - XREF LIST END.
# 
  
  
CONTROL EJECT;
  
      GENNSUP;
      IF (NSUP$INPUT OR NSUP$SUPER) 
        AND APL$UCPQ EQ 0 
      THEN
        BEGIN 
        SFC$WD1 = 0;
  
      CONTROL IFEQ OS$NOS;
        SFC$FC1 = SF$STAT;
      CONTROL ENDIF;
  
      CONTROL IFEQ OS$NOSBE;
        SFC$FP1 = 1;
        SFC$FC1 = SF$WRIT;
        SFC$SCPA1 = LOC(NSUP$WD); 
        SFC$UCPA1 = APL$NSUP; 
      CONTROL ENDIF;
  
        SSFREQ; 
  
        IF SFC$RC1 EQ SFRC$SWAP 
        THEN
          BEGIN 
          GETFREE;
          QU$TYPE = QT$UCPSWAP; 
          QU$SSFC = SF$SWPI;
          QU$WD2 = APL$JOBID; 
          SSFRCL = FALSE; 
          SSFADDR = LOC(QU$SSFC); 
          CALLSYS(SSF$CALL);
          APL$UCPQ = P<QU$ADDRESS>; 
          END 
        ELSE
          BEGIN 
          IF SFC$RC1 NE 0 
          THEN
            BEGIN  # SSF ERROR ENCOUNTERED #
            SSFERRP(0); 
            END 
          END 
  
        END 
  
      RETURN; 
      END 
  
      TERM
