SSCONTL 
.PROC,SSCONTL.
*         THIS JOB BUILDS TWO PROGRAMS THAT ARE NEEDED TO TIME EVENT
*         A SSMOVE DESTAGE JOB OR A LOW DISK SPACE SSMOVE JOB.
* 
*         *TIMESCR* PROGRAM IS CALLED BY A JOB THAT PLACES A SSMOVE 
*         PROGRAM IN THE ROLLOUT QUEUE WAITTING FOR A PRESET TIME 
*         TO START THE SSMOVE EXECUTION.
*         THIS DESTAGE RELATED PROCEEDURE IS CALL BY THE PROC *DESTAGE*.
*         ** THE BINNARY DECK IS CALLED *TIMEB*.
* 
*         *PROFULL* PROGRAM IS CALLED BY A JOB THAT PLACES A SSMOVE 
*         PROGRAM IN THE ROLLOUT QUEUE WAITTING FOR A LOW DISK SPACE
*         THRESHOLD FLAG TO BE SET. 
*         THE *PROFULL* BINNARIES MUST BE SYSEDITED OR BE PLACED ON 
*         THE DEAD START TO EXECUTED.  (AN SSJ= PROGRAM THAT READS
*         THE EST AND MST WITH SYSTEM MACRO-S FOR THE LOW DISK
*         THRESHOLD FLAGS.) 
*         * THE BINNARY DECK IS CALLED *DKFULL*.
* 
*         THIS LOW DISK SPACE PROGRAM IS CALLED BY THE PROC *DKFULL*
* 
ATTACH,OPL/UN=LIBRARY.
COPYBR,TIMESRC,X. 
COPYBR,PROFULL,X1.
REWIND,*. 
COPYBF,X,TIMESRC. 
COPYBR,X1,PROFULL.
REWIND,*. 
MODIFY,P=0,C=0,N=N,F,Z./*CREATE,TIMESRC 
REWIND,*. 
MODIFY,P,LO=E,Z./*OPLFILE,N/*EDIT,TIMESRC 
FTN,I=COMPILE,L=L,B=TIMEB,S=PSSTEXT,S=NOSTEXT.
REWIND,*. 
MODIFY,P=0,C=0,N=N,F,Z./*CREATE,PROFULL 
REWIND,*. 
MODIFY,P,LO=E,Z./*OPLFILE,N/*EDIT,DKFULL
COMPASS,I,B=DKFUL,S=NOSTEXT,S=PSSTEXT,L=M.
REWIND,*. 
MODIFY,P,LO=E,Z./*EDIT,MAC2 
COMPASS,I,B=MACBIN,S=NOSTEXT,S=PSSTEXT,S=SSYTEXT,L=0. 
REWIND,*. 
LIBGEN(F=MACBIN,P=MACLIB,NX=0)
LDSET(LIB=MACLIB,PRESET=0,MAP=SBEX/MAP) 
LOAD(DKFUL) 
NOGO(DKFULL,DKFULL,$RFL=$,$SSJ=$) 
PURGE,TIMEB,DKFULL/NA.
SAVE,TIMEB,DKFULL.
REVERT.     SAVE TIMEB AND DKFULLB. 
DIS.
EXIT. 
REVERT.   ERRORS......
.DATA,TIMESRC.
TIMESRC 
      PROGRAM TIMESRC ( TAPE1 ) 
  
CCC   *TIMESRC* CONTROLS THE CALLING OF *SSMOVE*. 
C 
C     *TIMESRC* READS LOCAL FILE TAPE1 TO DETERMINE 
C     THE NEXT TIME TO CALL *SSMOVE*.  WHEN THE 
C     TRIGGER TIME IS HIT, THEN *TIMESRC* ENDS AND
C     THE CCL PROCEDURE FILE IS ALLOWED TO CONTINUE.
C 
C     THE CCL PROCEDURE WILL THEN CALL *SSMOVE*.
C 
C     FORMAT OF TAPE1.
C 
C     N RECORDS OF FORMAT I4  - HHMM. 
C                             HH = HOUR OF NEXT DESTAGE.
C                             MM = MINUTES OF NEXT DESTAGE. 
  
      INTEGER CURTM 
  
C 
C     READ NEXT TIME TO DESTAGE.
C 
  
      READ ( 1 , 9000 ) IHR , ISE 
9000  FORMAT ( 2I2 )
      NTM = SHIFT ( IHR , 6 ) .OR. ISE
  
C 
C     DETERMINE CURRENT TIME
C 
  
10    CALL GETCTM ( CURTM ) 
      CURTM = CURTM .AND. 777700B 
      CURTM = SHIFT ( CURTM , -6 )
  
C 
C     IF CURRENT TIME .GT. TIME TO DESTAGE, THEN
C     END TO ALLOW PROCEDURE TO CALL *SSMOVE*.
C 
  
      IF ( NTM .GT. CURTM ) GOTO 100
      STOP
  
C 
C     IF *SSMOVE* SHOULD RUN IN LESS THAN 15 MINUTES, 
C     INCREASE THE FREQUENCY OF THE ROLLINS.
C 
  
100   CURTM = CURTM - 15
      IF ( CURTM .GT. NTM ) 110 , 120 
  
110   ITIME = 3 
      CALL ROLL ( ITIME ) 
      GOTO 10 
  
120   ITIME = 15
      CALL ROLL ( ITIME ) 
      GOTO 10 
  
      END 
          IDENT GETCTM
          ENTRY GETCTM
          SPACE  4
 GETCTM   BSSZ   1
          SA1    A1 
          PDATE  X1 
          EQ     GETCTM 
          END 
          IDENT  ROLL 
          ENTRY  ROLL 
          SPACE  4
 ROLL     BSSZ   1
          SA1    X1 
          SX2    60D         CONVERT TIME TO SECONDS
          IX6    X1*X2
          SA6    ADDR 
          ROLLOUT  ADDR 
          EQ     ROLL        RETURN AFTER ROLLOUT 
  
 ADDR     BSSZ   1
          END 
.DATA,PROFULL.
DKFULL
          IDENT  DKFULL 
  
          SYSCOM B1 
          SST 
          ENTRY  RFL= 
          ENTRY  SSJ= 
          ENTRY  DKFULL 
          EXT    RDESTC 
  
***       *DKFULL* CONTROLS THE CALLING OF *SSMOVE* WHEN THE
*         DISK LOW SPACE THRESHOLD IS REACHED.
* 
  
  
 DKFULL   SB2    ESTB              BUFFER TO RECEIVE EST ENTRIES
          SB1    1
          SB3    ESTN 
          SB4    -B1               READ MASS STORAGE ENTRIES
          RJ     =XRDESTC          READ EST INTO *ESTB* 
          SA5    ESTN 
          SB6    X5                SET LAST MASS STORAGE ORDINAL + 1
  
*SEARCH EST FOR MASS STORAGE DEVICES THAT ARE FULL. 
  
  
 DFL1     SB4    B4+B1
          EQ     B4,B6,DFL2        IF END OF MASS STORAGE DEVICES 
  
          SX1    B4                CALCULATE *ESTB* OFFSET
          R=     X6,ESTE
          IX1    X1*X6
          SA1    ESTB+X1+EQDE      GET NEXT EST ENTRY 
          PL     X1,DFL1           IF NOT MASS STORAGE DEVICE 
          BX6    X1 
          LX6    59-54
          NG     X6,DFL1           IF DEVICE UNAVAIBLE FOR ACCESS 
          RJ     RDM               READ MST 
          SA2    MSTB+ACGL-TDGL 
          LX2    59-4 
          NG     X2,DFL1           IF ERROR IDLE SET ON DEVICE
          SA2    MSTB+MDGL-TDGL 
          LX2    59-58
          NG     X2,DFL1           IF AUXILIARY DEVICE
          SA2    MSTB+DULL-TDGL 
          LX2    59-11
          NG     X2,DFL1           IF FAMILY IDLE DOWN FLAG IS SET
          SA2    MSTB+THLL-TDGL 
          LX2    59-35
          NG     X2,DFL3           FULL DISK FOUND
          EQ     DFL1              CHECK NEXT ENTRY 
  
 DFL2     ROLLOUT ADDR
          EQ     DKFULL            CHECK REASON FOR ROLLIN
  
 DFL3     ENDRUN
  
  
***       RDM - READ FULL *MST* ENTRY.
* 
*         ENTRY  (X1) = EST ENTRY.
* 
*         EXIT   (X3) = MST ADDRESS.
*                (MSTA) = MST POINTER PARAMETER.
*                (MSTB) = *MSTN* CONTIGUOUS WORDS STARTING AT *TDGL*
*                         OF THE MST ENTRY. 
* 
*         USES   A - 6, 7.
*                X - 0, 2, 3, 6, 7. 
* 
*         MACROS SYSTEM.
  
  
 RDM      SUBR                     ENTRY/EXIT 
          MX0    -12
          BX3    -X0*X1            GET ADDRESS OF MST ENTRY 
          LX3    3
          SX2    X3+TDGL           READ WORD *TDGL* OF MST
          LX2    35-17
          MX7    1
          SA7    MSTB 
          SX7    MSTXL             NUMBER OF MST ENTRY WORDS TO READ
          LX7    59-23
          BX6    X7+X2
          SX2    MSTB 
          BX6    X2+X6
          SA6    MSTA 
          SYSTEM RSB,R,A6 
          EQ     RDMX              RETURN 
  
  
  
 SSJ=     BSS    0           SSJ= PARAMETER BLOCK 
          BSSZ   1
          CON    0
          BSSZ   SSJL        PAD SSJ= PARAMETERS
          BSS    1
  
  
*         BUFFERS 
  
 ADDR     VFD    24/0,24/LSPE,12/7020B  LOW SPACE THRESHOLD/ HOUR TIMER 
  
 ESTB     BSS    ESMX*ESTE         EST BUFFER 
 ESTN     BSS    1                 LAST MASS STORAGE ORDINAL + 1
 MSTA     BSS    1                 MST POINTER PARAMETER WORD 
 MSTB     BSS    MSTXL             MST ENTRY BUFFER 
  
  
*         COMMON DECKS
  
*CALL COMSEVT 
*CALL COMCMAC 
          USE    // 
 RFL=     BSS    0
          USE    *
          END    DKFULL 
