COMPSUT 
COMMON
          CTEXT  COMPSUT - SET PERMANENT FILE DEVICE INTERLOCK. 
          SPACE  4
          IF     -DEF,QUAL$,1 
          QUAL   COMPSUT
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SUT      SPACE  4
***       SUT - SET PERMANENT FILE DEVICE INTERLOCK.
*         R. J. THIELEN.     75/04/17.
*         C. R. LUND.        81/06/09.
 SUT      SPACE  4
*                SUT SETS THE PERMANENT FILE DEVICE INTERLOCK ON A
*         MASS STORAGE EQUIPMENT.  STATUS IS RETURNED TO INDICATE IF
*         THE INTERLOCK HAS BEEN SET OR IF PF SYSTEM ACTIVITY 
*         PROHIBITED SETTING THE INTERLOCK.  IF THE DEVICE INTERLOCK
*         HAS BEEN SET BY ANOTHER PP, THE ROUTINE EXITS AND THE 
*         CALLING PROGRAM SHOULD BE PLACED ON RECALL.  IF THE INTER-
*         LOCK IS SET BUT PF ACTIVITY REMAINS AFTER APPROXIMATELY 1 
*         SECOND, THE INTERLOCK IS RELEASED AND THE CALLING PROGRAM 
*         SHOULD BE PLACED ON RECALL.  IF THE INTERLOCK IS OBTAINED 
*         WITH NO PF ACTIVITY PRESENT, SUBSEQUENT PF ACTIVITY ON THIS 
*         DEVICE IS DISALLOWED UNTIL THE CALLING PROGRAM HAS RELEASED 
*         THE INTERLOCK.
* 
*         ENTRY  (T5) = EQUIPMENT TO SET INTERLOCK ON.
* 
*         EXIT   (A) = 0 IF INTERLOCK SET.
*                    .NE. 0 IF INTERLOCK NOT SET. 
* 
*         USES   T1, T2, CM - CM+4. 
* 
*         CALLS  CUT. 
* 
*         MACROS DELAY, MONITOR, PAUSE, SFA.
* 
*         NOTE   THIS COMMON DECK REQUIRES THE PRESENCE OF *COMSCPS*
*                AND *COMPCUT*. 
  
  
 SUT      SUBR               ENTRY/EXIT 
          LDD    T5          EST ORDINAL
          STD    CM+1 
          LDN    SPIS        SET DEVICE PF INTERLOCK
          STD    CM+3 
          MONITOR STBM
          LDD    CM+1 
 SUT1     ZJN    SUTX        IF DEVICE INTERLOCKED
          SHN    -6 
          NJN    SUTX        IF DEVICE INTERLOCKED BY ANOTHER PP
          LDN    2           INITIALIZE RETRY LOOP COUNTER
          STD    T1 
 SUT2     LDC    500000D/150D INITIALIZE APPROX. 1/2 SECOND LOOP
          STD    T2 
 SUT3     DELAY 
          PAUSE  NE 
          SFA    EST,T5      GET FWA/10B OF MST 
          ADK    EQDE 
          CRD    CM 
          LDD    CM+4        READ TDGL IN MST 
          SHN    3
*         ADN    TDGL 
          ERRNZ  TDGL-0      ERROR IF WORD POSITION CHANGES 
          CRD    CM 
          LDD    CM+1 
          LPN    77 
 SUT4     ZJN    SUT1        IF PF ACTIVITY ON DEVICE DONE
          SOD    T2 
          MJN    SUT5        IF TIME LIMIT UP 
          NJN    SUT3        IF TIME FOR ANOTHER MST CHECK
  
*         ISSUE UTRS SUBFUNCTION AFTER APPROXIMATELY 1/2 SECOND TO
*         OBTAIN AN UP-TO-DATE COPY OF THE GLOBAL MST IN CM.
  
          LDD    T5          EST ORDINAL
          STD    CM+1 
          LDN    UTRS        OBTAIN UP-TO-DATE COPY OF GLOBAL MST 
          STD    CM+3 
          MONITOR STBM
  
*         WHEN (T1) = (T2) = 0, ONE FINAL CHECK OF THE MST IN CM IS 
*         PERFORMED TO DETERMINE IF PF ACTIVITY HAS GONE AWAY.
  
          SOD    T1 
          ZJN    SUT3        IF TIME FOR FINAL CHECK FOR PF ACTIVITY
          LJM    SUT2        RESET TIME FOR ANOTHER 1/2 SECOND
  
*         PF ACTIVITY HAS NOT GONE AWAY AFTER APPROXIMATELY 1 SECOND
*         OF CHECKING.  CLEAR THE DEVICE PF INTERLOCK TO ALLOW PF 
*         ACTIVITY ON THE DEVICE, RECALL THIS PP, AND TRY LATER.
  
 SUT5     RJM    CUT         CLEAR DEVICE INTERLOCK 
          LDN    1           INDICATE DEVICE NOT INTERLOCKED
          LJM    SUTX        EXIT 
          SPACE  4
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 SUT      EQU    /COMPSUT/SUT 
 QUAL$    ENDIF 
          ENDX
