COMPCUA 
COMMON
          CTEXT  COMPCUA - CHECK USER ACCESS. 
 CUA      SPACE  4
          IF     -DEF,QUAL$,1 
          QUAL   COMPCUA
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 CUA      SPACE  4
***       CUA - CHECK USER ACCESS.
*         G. R. MANSFIELD.  70/08/30. 
 CUA      SPACE  4
***              CUA CHECKS THE ORIGIN CODE OF A JOB AND VERIFIES 
*         THAT A GIVEN FUNCTION MAY BE PERFORMED. 
* 
*         ENTRY  IF THE SYMBOL DIAG$ IS DEFINED, THE JOB AT THE 
*                CONTROL POINT MUST BE AN SSJ= JOB TO OBTAIN
*                ENGINEERING ACCESS.
*                IF THE SYMBOL SSJ$ IS DEFINED, THE USER-S *AACW* WORD
*                WILL BE RETRIEVED FROM THE SSJ BLOCK IF AN SSJ PROGRAM 
*                IS CURRENTLY EXECUTING AT THE USER,S CONTROL POINT.
*                IF THIS SYMBOL IS NOT DEFINED AND AN SSJ JOB 
*                IS EXECUTING, *NO SYSTEM PRIVILEGE* STATUS 
*                WILL BE RETURNED.
* 
*         EXIT   (A) = 0  IF SYSTEM ACCESS ALLOWED (DEBUG. ON). 
*                (CM) = 0  IF ENGINEERING ACCESS ALLOWED. 
* 
*         USES   CM - CM+4. 
* 
*         MACROS NFA. 
  
  
 DIAG$    IF     DEF,DIAG$
 CUA0.1   LDN    1           DENY ENGINEERING ACCESS
 DIAG$    ENDIF 
 CUA1     STD    CM          SAVE ENGINEERING MODE
  
 CUA      SUBR               ENTRY/EXIT 
          LDD    CP          READ JOB NAME
          ADN    JOTW 
          CRD    CM 
          LDD    CM+3        CHECK ORIGIN CODE
          LPN    77 
          LMK    SYOT 
          ZJN    CUA1        IF SYSTEM ORIGIN 
  
          LDD    CP 
          ADC    SEPW 
          CRD    CM 
          LDD    CM 
          SHN    21-2 
 DIAG$    IF     DEF,DIAG$
          PJN    CUA0.1      IF NOT SSJ= JOB AT CONTROL POINT 
 DIAG$    ELSE
          PJN    CUA2        IF NOT SSJ= JOB AT CONTROL POINT 
 DIAG$    ENDIF 
 SSJ$     IF     DEF,SSJ$ 
          LDD    CM+3        CHECK IF SSJ= PARAMETER BLOCK PRESENT
          LPN    37 
          ADD    CM+4 
          ZJN    CUA2        IF NO SSJ= PARAMETER BLOCK 
          NFA    SSJN+AACS   READ *AACW* FROM SSJ= PARAMETER BLOCK
          UJN    CUA3 
  
 SSJ$     ELSE
          LCN    1           SET NO SYSTEM PRIVILEGES ALLOWED 
          UJN    CUA1 
  
 SSJ$     ENDIF 
 CUA2     LDD    CP          READ USERS *AACW* FROM CONTROL POINT AREA
          ADK    AACW 
 CUA3     CRD    CM 
          LDD    CM+3        CHECK MAINTENANCE ACCESS 
          LPC    200
          LMC    200
          STD    CM 
          STM    CUAA 
          LDD    CM+4 
          LPN    20 
          LMN    20 
          ZJN    CUA4        IF SYSTEM PRIVILEGED 
          LJM    CUAX        RETURN 
  
 CUA4     LDN    SSTL        READ SYSTEM STATUS WORD
          CRD    CM 
          LDC    *           CHECK FOR MAINTENANCE ACCESS 
 CUAA     EQU    *-1
          ZJN    CUA5        IF MAINTENANCE ACCESS ALLOWED
          LDD    CM+3        CHECK ENGINEERING MODE 
          LPN    4
 CUA5     STD    CM 
          LDD    CM+3        TOGGLE ON DEBUG SWITCH 
          LPN    1
          LMN    1
          LJM    CUAX        RETURN 
          SPACE  4
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 CUA      EQU    /COMPCUA/CUA 
 QUAL$    ENDIF 
          ENDX
