         TITLE    'CONTROL TASK OVERLAY FOR PERIODIC SCHEDULING'                
         SYSTEM   SIG9P                                                         
         SYSTEM   OPTIONS                                                       
*                                                                               
*                                                                               
*                                                                               
*                                                                               
         DEF      SCHED             ENTRY                                       
         DEF      SCHEDX            EXIT                                        
*                                                                               
*                                                                               
*                                                                               
*                                                                               
OLAYFLAG EQU      'SCHE'                                                        
         SYSTEM   CPRMON                                                        
         PAGE                                                                   
PFBITS   EQU      0                                                             
AREA     EQU      1                                                             
TNAME1   EQU      2                                                             
TNAME2   EQU      3                                                             
PRIO     EQU      4                                                             
JNAME1   EQU      5                                                             
JNAME2   EQU      6                                                             
ACC1     EQU      7                                                             
ACC2     EQU      8                                                             
SYEAR    EQU      9                                                             
SDAY     EQU      10                                                            
SSEC     EQU      11                                                            
ISEC     EQU      12                                                            
TYC      EQU      13                                                            
SIZE     EQU      14                                                            
ENTRIES  EQU      256/SIZE                                                      
SCM1     EQU      1                                                             
SCM2     EQU      2                                                             
SCM3     EQU      3                                                             
SCM4     EQU      4                                                             
         PAGE                                                                   
*                                                                               
SCERR    RES      0                 ALL ERROR CALS COME HERE                    
         AI,R8    1                 ERROR RETURN CAL+2                          
         B        *R8                                                           
*                                                                               
         PAGE                                                                   
SCHED    RES      0                 ENTRY                                       
         LW,R0    K:CTST                                                        
         CI,R0    BIT16             CALLED OR RECALLED                          
         BANZ     SCGO              YES                                         
         LW,R6    SC:BBCW           BLOCKING BUFFER CONTROL WORD                
         BEZ      %+2                                                           
         BAL,R11  RELADBUF          RELEASE BLOCKING BUFFER                     
         LI,R0    0                                                             
         STW,R0   SC:BBCW           CLEAR POINTER                               
         LCI      4                                                             
         LM,R0    SCCLOSE                                                       
         AW,R0    SC:DCB                                                        
         CAL1,1   R0                CLOSE SCHED FILE                            
         B        SCCLOK                                                        
         LD,R14   SCCL              TEXT CLOSE                                  
         LB,R7    R10               TYC                                         
         LI,R6    SCM3              CLOSE ERROR MESSAGE                         
         BAL,R8   SCMSG                                                         
*                                                                               
SCCLOK   LW,R7    SC:DCB                                                        
         OR,R7    Y08                                                           
         BAL,R8   RELTEMP           RELEASE DCB SPACE                           
         LI,R0    0                                                             
         STW,R0   SC:DCB                                                        
*                                                                               
SCHEDX   B        CT1               DEF'ED EXIT                                 
*                                                                               
SCGO     RES      0                                                             
         DISABLE                                                                
         LI,R1    BIT16                                                         
         LI,R0    0                                                             
         STS,R0   K:CTST            RESET SCHED BIT                             
         STW,R0   SC:YEAR           RESET CLOCK SEARCH                          
         ENABLE                                                                 
         MTW,0    SC:DCB            DCB EXITS                                   
         BNEZ     SCCKIN            YES                                         
         LI,R7    8                                                             
         BAL,R8   GETTEMP           GET SCHED DCB SPACE                         
         B        SCHEDX                                                        
         AND,R7   M17                                                           
         STW,R7   SC:DCB            SAVE POINTER                                
         LCI      7                                                             
         LM,R0    SCDCB                                                         
         STM,R0   *SC:DCB           MOVE DCB                                    
SCGO1    LCI      4                                                             
         LM,R0    SCOPEN                                                        
         AW,R0    SC:DCB                                                        
         CAL1,1   R0                OPEN FILE                                   
         B        SCOPOK                                                        
         LD,R14   SCOP              TEXT OPEN                                   
         LB,R7    R10               TYC                                         
         CI,R7    3                 FILE NON-EXISTENT                           
         BNE      SCGO2             NO                                          
         MTW,0    SC:LIST           ANYTHING TO DO                              
         BNEZ     %+3               YES                                         
         MTW,0    SC:INIT                                                       
         BEZ      SCCLOK            NO                                          
         LCI      10                ALLOT IT                                    
         LM,R0    SCALLOT                                                       
         CAL1,7   R0                                                            
         B        SCGO1             TRY OPEN AGAIN                              
         LD,R14   SCAL              ERROR ON ALLOT                              
         LB,R7    R10               TYC                                         
SCGO2    LI,R6    SCM3              OPEN ERROR MESSAGE                          
         BAL,R8   SCMSG                                                         
         B        SCCLOK            SKIP CLOSE ON EXIT                          
*                                                                               
SCOPOK   LI,R1    0                 NO FPT CODE                                 
         BAL,R5   FINDBB            GET BLOCKING BUFFER                         
         B        SCHED             NONE AVAILABLE                              
         STW,R15  SC:BBCW           SAVE BB POINTER                             
         LW,R0    *R15                                                          
         AND,R0   M17               GET BB ADDRESS                              
         LI,R7    2                                                             
         STW,R0   *SC:DCB,R7        PLACE POINTER IN DCB                        
*                                                                               
SCCKIN   LW,R0    SC:INIT           INIT ACTIVE                                 
         BEZ      SCINSK            NO                                          
         LCI      5                                                             
         LM,R0    SCCHECK                                                       
         AW,R0    SC:INIT                                                       
         CAL1,1   R0                CHECK INIT                                  
         LW,R10   Y01               SET TYC NORMAL                              
SCINERR  LW,R7    SC:INIT                                                       
         LB,R0    R10               GET TYC                                     
         CW,R0    15,R7             NORMAL AND NO MISSED CYCLES                 
         BE       SCINREL           YES                                         
         LCI      2                                                             
         LM,R12   3,R7              GET TASK NAME                               
         LM,R14   8,R7              GET JOB NAME                                
         BAL,R8   SCFIND                                                        
         B        SCTYCOKD          TYPE DELETE MESSAGE                         
         LB,R0    R10               TYC                                         
         CI,R0    1                 NORMAL TYC                                  
         BE       SCTYCOK           YES                                         
         LW,R8    Y01               INCREMENT                                   
         AWM,R8   TYC,R7            CYCLES                                      
         LW,R8    TYC,R7            GET COUNT                                   
         LB,R8    R8                                                            
         STB,R8   R0                                                            
         LB,R6    SCTYCS            NO. OF ACCEPTABLE TYCS                      
         CB,R0    SCTYCS,R6         GOOD ONE                                    
         BE       SCTYCOK           YES                                         
         BDR,R6   %-2                                                           
*                                   DELETE FILE ENTRY                           
         STW,R0   TYC,R7                                                        
         LI,R0    0                                                             
*                                                                               
SCTYCOK  XW,R0    TYC,R7                                                        
         BAL,R8   SCUPDATE          WRITE IT OUT                                
         CW,R0    TYC,R7            SAME AS LAST                                
         BE       SCINREL           YES, SKIP MESSAGES                          
         LI,R8    1                 NORMAL TYC                                  
         CW,R8    TYC,R7                                                        
         BNE      SCTYCOK1          NO, SKIP CYCLE MESSAGE                      
         PUSH     0,R0                                                          
         LCI      2                                                             
         LM,R10   TNAME1,R7         TASKNAME                                    
         LM,R12   JNAME1,R7         JOB NAME                                    
         LB,R7    R0                CYCLES MISSED                               
         LI,R6    SCM2              CYCLES MESSAGE                              
         BAL,R8   SCMSG                                                         
         PULL     0,R0                                                          
SCTYCOK1 LD,R14   SCBLK                                                         
         MTW,0    TYC,R7                                                        
         BNEZ     %+2                                                           
SCTYCOKD LD,R14   SCDEL             DELETED                                     
         LW,R6    SC:INIT           GET INIT FPT ADDRESS                        
         LB,R7    R10               TYC                                         
         CI,R7    1                 NORMAL TYC                                  
         BE       SCINREL           SKIP ERROR MESSAGE                          
         LCI      2                                                             
         LM,R12   8,R6              JOB NAME                                    
         LM,R10   3,R6              TASK NAME                                   
         LI,R6    SCM1                                                          
         BAL,R8   SCMSG                                                         
*                                                                               
SCINREL  LW,R7    SC:INIT                                                       
         OR,R7    Y1                                                            
         BAL,R8   RELTEMP           RELEASE INIT SPACE                          
         LI,R0    0                                                             
         STW,R0   SC:INIT           AND CLEAR POINTER                           
*                                                                               
SCINSK   LW,R1    SC:LIST           ANY CALLS                                   
         BEZ      SCLTSK            NO                                          
         LCI      2                                                             
         LM,R12   TNAME1+1,R1       TASK NAME                                   
         LM,R14   JNAME1+1,R1       JOB NAME                                    
         BAL,R8   SCFIND                                                        
         LW,R2    R1                FLAG                                        
         LW,R0    1,R1              PFBITS                                      
         CI,R0    FPTF6             DELETE BIT                                  
         BAZ      SCLTADD           NO                                          
         CW,R2    R1                ALREADY GONE                                
         BE       SCLTREL           YES                                         
         LI,R0    0                 DELETE IT                                   
         STW,R0   TYC,R7                                                        
         BAL,R8   SCUPDATE          GO WRITE IT                                 
         B        SCLTREL                                                       
*                                                                               
SCLTADD  CW,R2    R1                ALREADY EXITS                               
         BNE      SCLTREL           YES                                         
         BAL,R8   SCEMPTY           FIND EMPTY ENTRY                            
         B        %+2                                                           
         B        SCLTEMP                                                       
         LI,R6    SCM4              OVERFLOW                                    
         BAL,R8   SCMSG                                                         
         B        SCLTREL                                                       
*                                                                               
SCLTEMP  LCI      8                 MOVE NEW ENTRY                              
         LM,R8    1,R1                                                          
         STM,R8   0,R7                                                          
         LCI      6                                                             
         LM,R8    9,R1                                                          
         STM,R8   8,R7                                                          
         LI,R8    1                 SET TYC TO NORM                             
         STW,R8   TYC,R7                                                        
         BAL,R8   SCUPDATE          WRITE IT OUT                                
*                                                                               
SCLTREL  DISABLE                                                                
         LI,R2    SC:LIST                                                       
         CW,R1    0,R2              THIS IT                                     
         BE       %+3               YES                                         
         LW,R2    0,R2                                                          
         B        %-3                                                           
         LW,R0    0,R1              DELINK IT                                   
         STW,R0   0,R2                                                          
         ENABLE                                                                 
         LW,R7    R1                                                            
         BAL,R8   RELTEMP           RELEASE IT                                  
         B        SCINSK            DO NEXT                                     
*                                                                               
SCLTSK   MTW,0    SC:INIT           INIT ALREADY IN PROGRESS                    
         BNEZ     SCHED             YES                                         
         BAL,R8   SCNEXT            ANY TO INIT                                 
         B        SCLOWEST          NONE                                        
         LW,R1    SYEAR,R7          CALCULATE CYCLES                            
         LI,R2    0                                                             
         LW,R3    SDAY,R7                                                       
         LI,R4    0                                                             
         LW,R5    SSEC,R7                                                       
         LI,R9    0                                                             
SCNXCY   ENABLE                                                                 
         AW,R5    ISEC,R7           ADD INTERVAL                                
         AI,R9    1                 NOTE IT                                     
         MTW,0    ISEC,R7           JUST ONE TIME INIT                          
         BNEZ     %+3               NO                                          
         STW,R4   TYC,R7            DELETE ENTRY                                
         B        SCNXCG            GO DO IT                                    
         DW,R4    SECDAY                                                        
         XW,R4    R5                                                            
         AW,R3    R4                INCREMENT DAY                               
         LI,R4    0                                                             
         LH,R0    K:DATE1           DAYS IN YEAR                                
         DW,R2    R0                                                            
         XW,R2    R3                                                            
         AW,R1    R2                INCREMENT YEAR                              
         LI,R2    0                                                             
         DISABLE                                                                
         LW,R0    K:DATE1           HAS IT EXCEEDED PRESENT                     
         AND,R0   M16                                                           
         AI,R0    1900                                                          
         CW,R1    R0                                                            
         BG       SCNXCG                                                        
         BL       SCNXCY                                                        
         CW,R3    K:DATE2                                                       
         BG       SCNXCG                                                        
         BL       SCNXCY                                                        
         CW,R5    K:TIME                                                        
         BL       SCNXCY                                                        
SCNXCG   STW,R1   SYEAR,R7          UPDATE ENTRY                                
         STW,R3   SDAY,R7                                                       
         STW,R5   SSEC,R7                                                       
         AI,R9    -1                ADJUST                                      
         SLS,R9   24                LEFT JUSTIFY                                
         AWM,R9   TYC,R7            INCREASE CYCLES                             
         LW,R5    R7                SAVE ITEM POINTER IN R5                     
         BAL,R8   SCUPDATE          WRITE IT OUT                                
*                                                                               
SCNXOK   LI,R7    16                                                            
         BAL,R8   GETTEMP           GET INIT SPACE                              
         B        SCHED             GET OUT                                     
         AND,R7   M17                                                           
         STW,R7   SC:INIT           STORE INIT POINTER                          
         LCI      8                                                             
         LM,R8    SCINIT            MOVE INIT FPT                               
         STM,R8   0,R7                                                          
         LCI      6                                                             
         LM,R8    SCINIT+8                                                      
         STM,R8   8,R7                                                          
         LW,R8    TYC,R5            GET LAST TYC                                
         STW,R8   15,R7             SAVE FOR LATER COMPARE                      
         LW,R8    AREA,R5                                                       
         AWM,R8   0,R7              STORE AREA                                  
         LW,R8    PFBITS,R5         GET ORIGINAL CAL BITS                       
         AND,R8   FPTF2F5                                                       
         AWM,R8   1,R7              PLACE GOOD ONES IN FPT                      
         LCI      2                                                             
         LM,R8    TNAME1,R5                                                     
         STM,R8   3,R7              STORE TASK NAME                             
         LW,R8    PRIO,R5                                                       
         STW,R8   5,R7              PRIORITY                                    
         LCI      2                                                             
         LM,R8    JNAME1,R5                                                     
         STM,R8   8,R7                                                          
         LM,R8    ACC1,R5                                                       
         STM,R8   12,R7             STORE ACCOUNT                               
         AI,R7    12                                                            
         STW,R7   -1,R7             STORE ACCOUNT POINTER                       
         CAL1,7   *SC:INIT          ***DO INIT CAL***                           
         B        SCHED                                                         
         B        SCINERR           ERROR                                       
*                                                                               
SCLOWEST CI,R15   0                 IS THERE ONE COMING UP                      
         BE       SCHED             NO                                          
         DISABLE                                                                
         STW,R12  SC:YEAR           SET UP FOR CLOCK                            
         STW,R13  SC:DAY                                                        
         STW,R14  SC:SEC                                                        
         ENABLE                                                                 
         B        SCHED                                                         
*                                                                               
*                                                                               
*                                                                               
         PAGE                                                                   
*                                                                               
SCALLOT  GEN,8,1,23 X'5A',1,'SP'                                                
         DATA     X'BF400010'                                                   
         DATA     SCERR                                                         
         DATA     'SCHE'                                                        
         DATA     'D   '                                                        
         DATA     1                                                             
         DATA     256                                                           
         DATA     1                                                             
         DATA     256                                                           
         DATA     0                                                             
*                                                                               
SCOPEN   GEN,8,24 X'14',0                                                       
         DATA     X'C0000000'                                                   
         DATA     SCERR                                                         
         DATA     SCERR                                                         
*                                                                               
SCCLOSE  GEN,8,24 X'15',0                                                       
         DATA     X'C0000000'                                                   
         DATA     SCERR                                                         
         DATA     SCERR                                                         
*                                                                               
*                                                                               
SCCHECK  GEN,8,24 X'29',0                                                       
         DATA     X'E0400000'                                                   
         DATA     SCERR                                                         
         DATA     SCERR                                                         
         DATA     SCINSK            BUSY                                        
*                                                                               
SCDCB    DATA,1   7,0,0,1                                                       
         DATA,1   6,0,0,0                                                       
         DATA     0                                                             
         GEN,15,17 256**2,SCERR                                                 
         DATA     SCERR                                                         
         DATA     'SCHE'                                                        
         DATA     'D   '                                                        
*                                                                               
SCINIT   DATA,1   X'48',X'80',0,0                                               
         DATA     X'B1FC0000'                                                   
         DATA     SCERR                                                         
         DATA     0                                                             
         DATA     0                                                             
         DATA     0                                                             
         GEN,2,30 0,SCEND                                                       
         DATA     0                                                             
         DATA     0                                                             
         DATA     0                                                             
         DATA     30                                                            
         DATA     0                                                             
         DATA     0                                                             
         DATA     0                                                             
         PAGE                                                                   
*                                                                               
SCTYCS   DATA,1   SCTYCCT                                                       
         DATA,1   X'62'             TASK STILL ALIVE                            
         DATA,1   X'66'             OUT OF SPACE                                
         DATA,1   X'67'             TIMED OUT                                   
         DATA,1   X'00'             ROUND TABLE OFF                             
         DATA,1   X'00'             ROUND TABLE OFF                             
         DATA,1   X'00'             ROUND TABLE OFF                             
SCTYCCT  EQU      (%-SCTYCS)**2                                                 
         BOUND    8                                                             
SCDEL    TEXT     ' DELETED'                                                    
SCBLK    TEXT     '        '                                                    
SCOP     TEXT     'OPEN    '                                                    
SCCL     TEXT     'CLOSE   '                                                    
SCAL     TEXT     'ALLOT   '                                                    
SECDAY   DATA     24*60*60                                                      
FPTF2F5  DATA     FPTF2+FPTF5                                                   
*                                                                               
         OLAYEND                                                                
         END                                                                    
