*DECK,USRDSC                       29OCT81
USETEXT COMCBEG 
USETEXT COMCAPR 
USETEXT COMCCAE 
USETEXT COMQDEF 
USETEXT COMQCPM 
USETEXT COMQFIL 
USETEXT COMQNET 
    PROC USRDSC;
      BEGIN    # USRDSC # 
# 
**    USRDSC     DECREMENT USER SECURITY COUNT. 
* 
*     PROC USRDSC 
* 
*     ENTRY      ACN = ACTIVE FILE TABLE ENTRY INDEX. 
* 
*     EXIT       [NOS] CPM CALLED TO DECREMENT SECURITY COUNT.
* 
*     PROCESS    ENTRY/EXIT.
* 
# 
  
# 
****  XREF
# 
      XREF
        BEGIN 
        PROC CALLSYS; 
        FUNC CHKCMM   I;
        FUNC FREECMM  I;
        PROC NAME;                 # DEBUG CODE # 
        END 
# 
****  XREF END
# 
  
  
      $BEGIN
      NAME("USRDSC");              # DEBUG CODE # 
      $END
  
      ITEM J          I;           # LOCAL INDEX #
      ITEM UNFOUND    B;           # USER NUMBER FOUND #
  
    CONTROL IFEQ OS$NOS;
      CPMPA[0]=CHKCMM(0,CPMBLKL);  # GET CPM BLOCK #
      P<CPMB> = CPMPA[0];          # SET ADDRESS OF CPM BLOCK # 
      SLOWFOR J = 0 STEP 1 UNTIL CPMBLKL - 1
      DO
        BEGIN 
        P<FET> = P<CPMB> + J; 
        FETWD = 0;
        END 
  
      CPMFC = CPMDSC;              # DECRMENT SECURITY COUNT #
      UNFOUND = FALSE;
      IF FILECUN NE 0 
      THEN
        BEGIN 
        CPMUN = FILEOUNC; 
        CPMFN = FILEOFMC; 
        UNFOUND = TRUE; 
        END 
  
      IF UNFOUND
      THEN
        BEGIN 
        CALLSYS (CPM);             # CALL CPM # 
        END 
  
      CPMPA[0]=FREECMM(CPMPA[0]);  # FREE CPM BLOCK # 
  
    CONTROL ENDIF;
  
      END  # END OF USRDSC #
    TERM
