         TITLE    'CONTROL TASK OVERLAY FOR PERIODIC SCHEDULING'                
         SYSTEM   SIG9P                                                         
         SYSTEM   OPTIONS                                                       
*                                                                               
*                                                                               
*                                                                               
*                                                                               
         DEF      SCNEXT,SCEMPTY,SCFIND,SCUPDATE                                
         DEF      SCMSG                                                         
         DEF      SCSUBSX                                                       
         DEF      SCMSGX                                                        
*                                                                               
*                                                                               
*                                                                               
*                                                                               
OLAYFLAG EQU      'SCNE'                                                        
         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 FILE SUBROUTINES                                        
*                                                                               
*                 SCEMPTY(FIND EMPTY SPOT)                                      
*                 SCFIND(FIND R12,R13 TASK IN R14,R15 JOB)                      
*                 SCNEXT(FIND NEXT INIT)                                        
*                 SCUPDATE(WRITE OUT PRESENT GRANULE)                           
*                                                                               
*                 +/ EXIT ABNORMAL(NORMAL FOR SCUPDATE)                         
*                 +2 NORMAL                                                     
*                                                                               
*                 R7 WORD POSITION OF ENTRY                                     
*                 R12,R13,R14 DATE FOR SCNEXT                                   
*                 R15 CYCLES MISSED FOR SCNEXT                                  
*                                                                               
SCEMPTY  RES      0                                                             
         PUSH     7,R0                                                          
         LI,R6    0                 EMPTY INDEX                                 
         B        SCALL                                                         
*                                                                               
SCFIND   RES      0                                                             
         PUSH     7,R0                                                          
         LI,R6    1                 FIND INDEX                                  
         B        SCALL                                                         
*                                                                               
SCNEXT   RES      0                                                             
         PUSH     7,R0                                                          
         LI,R6    2                 NEXT INDEX                                  
         LI,R15   0                 FLAG FOR NONE                               
*                                                                               
SCALL    PUSH     4,R8                                                          
         LI,R0    0                                                             
         LI,R1    7                                                             
         STW,R0   *SC:DCB,R1        GRAN ZERO IS START                          
SCRDLP   LCI      5                                                             
         LM,R0    SCREAD                                                        
         AW,R0    SC:DCB                                                        
         LI,R4    7                                                             
         LW,R4    *SC:DCB,R4        KEY                                         
         CAL1,1   R0                READ SCHED FILE                             
         B        %+2                                                           
         B        SCRDERR           ERROR                                       
         LI,R7    (ENTRIES-1)*SIZE  ENTRIES PER GRAN TIMES SIZE                 
         AW,R7    *SC:BBCW          ADD BASE OF BLOCKING BUFFER                 
         AND,R7   M17                                                           
         LI,R5    ENTRIES           FOR SEARCH LOOP                             
SCSNLP   B        SCRDTBL,R6        GO TO SPECIAL SUB SEARCHER                  
*                                                                               
SCRDTBL  B        SCRDEMP                                                       
         B        SCRDFND                                                       
         B        SCRDNXT                                                       
*                                                                               
SCSNRTN  AI,R7    -SIZE             NEXT ENTRY                                  
         BDR,R5   SCSNLP                                                        
         LI,R1    7                                                             
         MTW,1    *SC:DCB,R1        NEXT GRAN                                   
         B        SCRDLP                                                        
*                                                                               
SCRDEMP  MTW,0    TYC,R7            THIS ONE IN USE                             
         BNEZ     SCSNRTN           YES                                         
         B        SCNRTN                                                        
*                                                                               
SCRDFND  MTW,0    TYC,R7            THIS ONE DELETED                            
         BEZ      SCSNRTN           YES                                         
         CW,R12   TNAME1,R7         TASK                                        
         BNE      SCSNRTN                                                       
         CW,R13   TNAME2,R7         NAME                                        
         BNE      SCSNRTN                                                       
         CW,R14   JNAME1,R7         JOB                                         
         BNE      SCSNRTN                                                       
         CW,R15   JNAME2,R7         NAME                                        
         BNE      SCSNRTN                                                       
         B        SCNRTN            MATCH YES                                   
*                                                                               
SCRDNXT  MTW,0    TYC,R7            IN USE                                      
         BEZ      SCSNRTN           NO                                          
         CI,R15   0                                                             
         BNE      SCNXT2                                                        
SCNXT1   LI,R1    7                 SAVE THIS ENTRY                             
         LW,R0    *SC:DCB,R1                                                    
         LW,R4    R7                                                            
         STB,R0   R4                R4=POSITION                                 
         LW,R3    PRIO,R7           R0,R1,R2=YEAR,DAY,SEC                       
         LCI      3                 R3=PRIO                                     
         LM,R0    SYEAR,R7                                                      
         LCI      2                                                             
         LM,R12   TNAME1,R7         R12,R13=TASK                                
         LM,R14   JNAME1,R7         R14,R15=JOB                                 
*                                                                               
SCNXT3   PUSH     4,R12             BEST ONE                                    
         PUSH     5,R0              SO FAR                                      
         B        SCSNRTN                                                       
*                                                                               
SCNXT2   PULL     5,R0              OLD ONE                                     
         PULL     4,R12                                                         
         CW,R0    SYEAR,R7                                                      
         BL       SCNXT3                                                        
         BG       SCNXT1                                                        
         CW,R1    SDAY,R7                                                       
         BL       SCNXT3                                                        
         BG       SCNXT1                                                        
         CW,R2    SSEC,R7                                                       
         BL       SCNXT3                                                        
         BG       SCNXT1                                                        
         CW,R3    PRIO,R7                                                       
         BLE      SCNXT3                                                        
         B        SCNXT1                                                        
*                                                                               
*                                                                               
SCRDERR  B        SCRDETBL,R6                                                   
SCRDETBL B        SCEMPERR                                                      
         B        SCFNDERR                                                      
         B        SCNXTERR                                                      
*                                                                               
SCEMPERR LB,R0    R10                                                           
         CI,R0    X'1C'             EOT                                         
         BE       SCARTN            ABNORMAL RETURN                             
         CI,R0    5                 EOD                                         
         BNE      SCRDEMSG          REAL ERROR                                  
         LI,R1    255                                                           
         LI,R0    0                                                             
         LW,R2    *SC:BBCW          GET BLOCKING BUFFER ADDRESS                 
         STW,R0   *R2,R1            PURGE GRANULE                               
         BDR,R1   %-1                                                           
         STW,R0   *R2                                                           
         BAL,R8   SCUPDATE          WRITE IT                                    
         B        SCRDLP            GO FIND EMPTY ONE                           
*                                                                               
SCFNDERR LB,R0    R10                                                           
         CI,R0    5                 EOD                                         
         BE       SCARTN            ABNORMAL RTN                                
         CI,R0    X'1C'             EOT                                         
         BE       SCARTN            ABNORMAL RTN                                
         B        SCRDEMSG          REAL ERROR                                  
*                                                                               
SCNXTERR LB,R0    R10                                                           
         CI,R0    5                 EOD                                         
         BE       %+3                                                           
         CI,R0    X'1C'             EOT                                         
         BNE      SCRDEMSG          REAL ERROR                                  
         CI,R15   0                                                             
         BE       SCARTN            NONE ABNORMAL                               
         PULL     5,R0                                                          
         DISABLE                                                                
         LW,R5    K:DATE1                                                       
         AND,R5   M16                                                           
         AI,R5    1900                                                          
         CW,R0    R5                                                            
         BL       SCNXTGO                                                       
         BG       SCNXTNGO                                                      
         CW,R1    K:DATE2                                                       
         BL       SCNXTGO                                                       
         BG       SCNXTNGO                                                      
         CW,R2    K:TIME                                                        
         BLE      SCNXTGO                                                       
         B        SCNXTNGO                                                      
*                                                                               
SCNXTNGO PULL     4,R12             CLEAR STACK AND SET R15                     
         ENABLE                                                                 
         LCI      3                                                             
         LM,R12   R0                MOVE DATE                                   
         B        SCARTN            ABNORMAL RTN                                
*                                                                               
SCNXTGO  PULL     4,R12             GET  TASK AND JOB                           
         ENABLE                                                                 
         LB,R5    R4                GET GRAN                                    
         LI,R6    7                                                             
         XW,R5    *SC:DCB,R6        SET GRAN ADDRESS XORRECT                    
         AI,R5    -1                ADJUST FOR PRESENT POSITION                 
         CW,R5    *SC:DCB,R6        ARE WE AT IT                                
         BNE      SCNXTG1           NO                                          
         LW,R7    R4                                                            
         AND,R7   M17                                                           
         B        SCNRTN            NORMAL RETURN                               
*                                                                               
SCNXTG1  LI,R6    1                                                             
         B        SCRDLP            GO POSITION AND LOCATE                      
*                                                                               
SCRDEMSG B        SCRMTBL,R6        GO TO SPECIAL ROUTINE                       
SCRMTBL  B        SCRMRTN                                                       
         B        SCRMRTN                                                       
         B        SCRMNXT                                                       
*                                                                               
SCRMNXT  CI,R15   0                 ANY FOUND                                   
         BEZ      SCRMRTN           NO                                          
         LI,R5    -9                CLEAN STACK                                 
         MSP,R5   *K:RTS                                                        
         B        SCRMRTN                                                       
*                                                                               
SCRMRTN  LB,R7    R10               TYC                                         
         LD,R14   SCRD              READ TEXT                                   
         LI,R6    SCM3                                                          
         BAL,R8   SCMSG             READ ERROR MESSAGE                          
         LI,R15   0                 NONE FOUND INDICATOR                        
         B        SCARTN            ABNORMAL RETURN                             
*                                                                               
*                                                                               
SCUPDATE RES      0                                                             
         PUSH     7,R0                                                          
         PUSH     4,R8                                                          
         LCI      5                                                             
         LM,R0    SCWRITE                                                       
         LI,R4    7                                                             
         LW,R4    *SC:DCB,R4        PRESENT POSITION                            
         AW,R0    SC:DCB            DCB ADDRESS                                 
         CAL1,1   R0                                                            
         B        SCARTN            ONLY ONE RETURN                             
         LB,R7    R10               TYC                                         
         LD,R14   SCWR              WRITE TEXT                                  
         LI,R6    SCM3                                                          
         BAL,R8   SCMSG             TYPE ERROR MESSAGE                          
         B        SCARTN            ONLY ONE RETURN                             
*                                                                               
SCNRTN   PULL     4,R8              ONE FOUND                                   
         PULL     7,R0                                                          
         AI,R8    1                                                             
         B        SCSUBSX                                                       
SCARTN   PULL     4,R8              NONE FOUND                                  
         PULL     7,R0                                                          
SCSUBSX  B        *R8               RETURN                                      
*                                                                               
         PAGE                                                                   
*                                                                               
SCREAD   GEN,8,24 X'10',0                                                       
         DATA     X'C1000010'                                                   
         DATA     SCERR                                                         
         DATA     SCERR                                                         
         DATA     0                                                             
*                                                                               
SCWRITE  GEN,8,24 X'11',0                                                       
         DATA     X'C1000010'                                                   
         DATA     SCERR                                                         
         DATA     SCERR                                                         
         DATA     0                                                             
*                                                                               
         PAGE                                                                   
*                                                                               
SCRD     TEXT     'READ    '                                                    
SCWR     TEXT     'WRITE   '                                                    
         PAGE                                                                   
*                                                                               
*                 MESSAGE TYPINS SUBROUTINE                                     
*                                                                               
*                 R6=MESSAGE INDEX                                              
*                 R7=BINARY NUMBER IF INDICATED                                 
*                 R8=LINK                                                       
*                 R10-R15=EBCDIC IF INDICATED                                   
*                                                                               
SCMSG    RES      0                                                             
         PUSH     0,R0              SAVE THEM ALL                               
         LW,R6    SCMSGTBL,R6                                                   
         LW,R4    *K:RTS                                                        
         AI,R4    -15               BASE OF INCOMING REGISTERS                  
         LCI      11                                                            
         LM,R5    0,R6              PUT MESSAGE IN R5-R15                       
         LB,R3    R5                NUMBER OF BYTES                             
         AI,R3    1                 ROUND                                       
         SLS,R3   -2                                                            
SCMSG6   LW,R1    R4,R3             GET NEXT WORD                               
         BLZ      SCMSG3            NOT REGISTER                                
         CI,R1    15                REGISTER                                    
         BLE      SCMSG1            YES                                         
SCMSG3   STW,R1   R4,R3                                                         
         BDR,R3   SCMSG6                                                        
*                                                                               
         LCI      3                                                             
         LM,R0    SCTYPE                                                        
         CAL1,2   R0                TYPE IT                                     
         PULL     0,R0              GET THEM ALL                                
SCMSGX   B        *R8                                                           
*                                                                               
SCMSG1   CI,R1    7                 BINARY CONVERSION                           
         BE       %+3               YES                                         
         LW,R1    *R1,R4            GET TEXT FIELD                              
         B        SCMSG3                                                        
         LW,R0    *R1,R4            TWO DIGITS MAX                              
         LI,R1    0                                                             
         AND,R0   M8                                                            
         LI,R2    2                                                             
         SLS,R0   24                POSITION                                    
SCMSG4   SLS,R1   4                                                             
         SCD,R0   4                                                             
         CI,R1    8                                                             
         BAZ      SCMSG5                                                        
         CI,R1    6                                                             
         BAZ      SCMSG5                                                        
         AI,R1    X'B7'             A-F                                         
         B        %+2                                                           
SCMSG5   AI,R1    X'F0'             1-9                                         
         BDR,R2   SCMSG4                                                        
         AW,R1    Y4                BLANKS                                      
         AW,R1    Y004                                                          
         B        SCMSG3                                                        
         PAGE                                                                   
*                                                                               
SCTYPE   GEN,8,24 X'02',0                                                       
         DATA     X'80000010'                                                   
         DATA     R5                                                            
*                                                                               
SCMSGTBL DATA     0                                                             
         DATA     SCMX1                                                         
         DATA     SCMX2                                                         
         DATA     SCMX3                                                         
         DATA     SCMX4                                                         
*                                                                               
SCMX1    DATA,1   SCM1CT,'!','!',' '                                            
         DATA     R10                                                           
         DATA     R11                                                           
         DATA     ' IN '                                                        
         DATA     R12                                                           
         DATA     R13                                                           
         DATA     ' TYC'                                                        
         DATA     R7                                                            
         DATA     R14                                                           
         DATA     R15                                                           
SCM1CT   EQU      ((%-SCMX1)**2)-1                                              
*                                                                               
SCMX2    DATA,1   SCM2CT,'!','!',' '                                            
         DATA     R10                                                           
         DATA     R11                                                           
         DATA     ' IN '                                                        
         DATA     R12                                                           
         DATA     R13                                                           
         DATA     ' MIS'                                                        
         DATA     'SED '                                                        
         DATA     R7                                                            
         DATA     ' CYC'                                                        
         DATA     'LES '                                                        
SCM2CT   EQU      ((%-SCMX2)**2)-1                                              
*                                                                               
SCMX3    DATA,1   SCM3CT,'!','!',' '                                            
         DATA     'SCHE'                                                        
         DATA     'D FI'                                                        
         DATA     'LE  '                                                        
         DATA     ' TYC'                                                        
         DATA     R7                                                            
         DATA     ' ON '                                                        
         DATA     R14                                                           
         DATA     R15                                                           
SCM3CT   EQU      ((%-SCMX3)**2)-1                                              
*                                                                               
SCMX4    TEXTC    '!! SCHED FILE OVERFLOW'                                      
*                                                                               
         OLAYEND                                                                
         END                                                                    
