1PP 
          IDENT  1PP,PPF
          PERIPH
          BASE   MIXED
          LIST   F
          SST 
*COMMENT  1PP - PERIODIC FUNCTION PROCESSOR.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          TITLE  1PP - PERIODIC FUNCTION PROCESSOR. 
          SPACE  4,10 
***       1PP - PERIODIC FUNCTION PROCESSOR.
*         R. M. DANISCH.     88/06/27.
          SPACE  4,10 
***              *1PP* IS RESPONSIBLE FOR PROCESSING A VARIETY OF 
*         FUNCTIONS THAT ARE PERIODIC IN NATURE.  FUNCTIONS PROCESSED 
*         INCLUDE THE FOLLOWING - 
* 
*              - TIMED/EVENT ROLLOUT PROCESSING.
* 
*              - CHECK FOR EXPIRED CM/CPU TIME SLICES.
* 
*              - CHECK WAIT RESPONSE/CONNECTION INDICATORS. 
* 
*              - PROCESS ACCUMULATOR OVERFLOW FLAGS.
* 
*              - SCAN OPTICAL DISK EQUIPMENT AND UPDATE THE OPTICAL 
*                STORAGE STATUS TABLE *OST*.
* 
*              - SCAN OPTICAL DISK REQUESTS FOR MOUNTED DISKS AND 
*                ORPHAN REQUESTS. 
* 
*              - CHECK FOR MASS STORAGE CHECKPOINT AND LABEL
*                INITIALIZATION REQUESTS. 
* 
*              - INITIATE SWEEP CYCLE PROCESSING. 
* 
*              - INITIATE MASS STORAGE CONFIDENCE TESTING.
          SPACE  4,10 
***       CALL. 
* 
* 
*T        18/  *1PP*,6/  CP,36/ 
*         CP     SYSTEM CONTROL POINT NUMBER. 
          SPACE  4,10 
***       ERROR LOG MESSAGES. 
* 
* 
*         *XXYYY,   RECOVERED ERROR LIMIT EXCEEDED.* = THE NUMBER 
*                OF RECOVERED ERRORS ON DEVICE TYPE XX WITH EST ORDINAL 
*                YYY IS GREATER THAN THE THRESHOLD DEFINED FOR THAT 
*                DEVICE TYPE. 
* 
*         *XXYYY, UNRECOVERED ERROR LIMIT EXCEEDED.* = THE NUMBER 
*                OF UNRECOVERED ERRORS ON DEVICE TYPE XX WITH EST 
*                ORDINAL YYY IS GREATER THAN THE THRESHOLD DEFINED FOR
*                THAT DEVICE TYPE.
          SPACE  4,10 
**        ROUTINES USED.
* 
* 
*         0AU - PROCESS ACCUMULATOR OVERFLOW FLAGS. 
          SPACE  4,10 
**        PROGRAMS CALLED.
* 
* 
*         CMS - MASS STORAGE LABEL INITIALIZATION.
*         1CK - MASS STORAGE CHECKPOINT.
*         1MV - MASS STORAGE VERIFICATION.
          SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMPMAC 
          QUAL   CPS
*CALL     COMSCPS 
          QUAL    * 
          QUAL   DSL
*CALL     COMSDSL 
          QUAL   *
*CALL     COMSDST 
*CALL     COMSEJT 
*CALL     COMSEVT 
*CALL     COMSJIO 
*CALL     COMSMSC 
*CALL     COMSMSP 
*CALL     COMSMST 
*CALL     COMSPIM 
*CALL     COMSSCD 
*CALL     COMSSCP 
*CALL     COMSSSD 
*CALL     COMSZOL 
          QUAL   1DS
*CALL     COMS1DS 
          QUAL   *
*CALL     COMS1MV 
 MACROS   SPACE  4,10 
**        MACRO DEFINITIONS.
  
  
**        DFLIM - CONSTRUCT DAYFILE SIZE THRESHOLD PROCESSING ENTRY FOR 
*                 *TDFP* TABLE. 
* 
*         DFLIM  A,B,C,D,E
, 
*                A     TABLE NAME IF PRESENT. 
*                B     DAYFILE IDENTIFIER/INDEX.
*                C     CM WORD OFFSET OF 3RD WORD OF DAYFILE BUFFER 
*                      POINTER BLOCK RELATIVE TO FWA OF DAYFILE BUFFER
*                      POINTER BLOCKS.
*                D     THRESHOLD SIZE IN PRUS.
*                E     EVENT TO ISSUE IF THRESHOLD EXCEEDED.
  
  
          PURGMAC DFLIM 
  
          MACRO  DFLIM,A,B,C,D,E
          MACREF DFLIM
 .X       IFC    NE,$A$$
 A        BSS    0
 .1       SET    A
 .X       ELSE
          ORG    .1+4*B 
 .Y       IFC    NE,$C$$
          LOC    B
          CON    C
          VFD    24/D 
          CON    E
 .Y       ELSE
          VFD    48/0 
 .Y       ENDIF 
 .X       ENDIF 
          ENDM
 JOBSTAT  SPACE  4,15 
**        JOBSTAT - DEFINE JOB STATE ATTRIBUTES.
* 
*         JOBSTAT NAME,STATUS,SS,ES,FR,TE,PI
*                NAME        TABLE NAME IF PRESENT. 
*                STATUS      JOB STATUS.
*                SS          NON-BLANK IF SCHEDULABLE JOB STATUS. 
*                ES          NON-BLANK IF ERROR FLAG SET CAUSES JOB 
*                            STATUS TO BECOME SCHEDULABLE.
*                FR          NON-BLANK IF JOB MAY BE FORCED ROLLED IN.
*                TE          NON-BLANK IF TIMED/EVENT TYPE JOB STATUS.
*                PI          NON-BLANK IF PRE-INITIAL JOB STEP TYPE 
*                            STATUS.
*         JOBSTAT A,B,C,D,E,F,G 
* 
*         NOTE - ANY CHANGE TO THIS MACRO MUST BE ACCOMPANIED BY A
*                CORRESPONDING CHANGE TO THE *JOBSTAT* MACRO DEFINED
*                IN *1SJ*.
  
  
          PURGMAC JOBSTAT 
  
          MACRO  JOBSTAT,NAME,STATUS,SS,ES,FR,TE,PI 
          MACREF JOBSTAT
.1        IFC    NE,$NAME$$ 
NAME      INDEX 
.1        ELSE
.V        SET    0
          IFC    NE,$SS$$,1 
.V        SET    .V+4000
          IFC    NE,$ES$$,1 
.V        SET    .V+2000
          IFC    NE,$FR$$,1 
.V        SET    .V+1000
          IFC    NE,$TE$$,1 
.V        SET    .V+400 
          IFC    NE,$PI$$,1 
.V        SET    .V+200 
          INDEX  STATUS,.V
.1        ENDIF 
          ENDM
          TITLE  DIRECT CELL ASSIGNMENTS. 
****      DIRECT CELL ASSIGNMENTS.
  
  
 T8       EQU    16          SCRATCH
 T9       EQU    17          SCRATCH
 AA       EQU    20 - 24     SCRATCH (5 CELLS)
 TM       EQU    25 - 26     SECONDS PORTION OF *RTCL* (2 CELLS)
 BB       EQU    27 - 33     SCRATCH (5 CELLS)
 EO       EQU    34          EJT ORDINAL
 CF       EQU    35          SCHEDULER CONTROL FLAGS
 PN       EQU    36          NUMBER OF MCT ENTRIES
*         EQU    37 - 47     UNUSED 
 EJ       EQU    50 - 54     EJT BUFFER (5 CELLS) 
 SC       EQU    57          SERVICE CLASS
*         EQU    60 - 65     UNUSED 
 NC       EQU    66          NUMBER OF CONTROL POINTS 
 TP       EQU    67          SCRATCH
  
  
****
 PPF      TITLE  MAIN PROGRAM.
**        PPF - MAIN PROGRAM. 
  
  
          ORG    PPFW 
  
 PPF      BSS    0
          RJM    PRS         PRESET 
          RJM    PCA         PROCESS CONTROL POINT AREAS
          RJM    CFS         CHECK FILE SIZES 
          RJM    SEJ         SCAN EJT 
          RJM    OSS         SCAN OPTICAL STORAGE DEVICES AND REQUESTS
          RJM    CMS         CHECK MASS STORAGE DEVICES 
  
*         PROCESS OVERFLOW FLAGS.  THIS PROCESSING MUST BE PERFORMED
*         AFTER ROUTINE *SEJ* COMPLETES SO THAT *0AU* MAY OVERLAY THE 
*         *TJAM* AND *TEPB* TABLES.  ROUTINE *PSL* (CALLED BY *SEJ*)
*         USES THE *TJAM* TABLE AND ROUTINE *SRS* (CALLED BY *PSL*) 
*         USES THE *TEPB* TABLE.  *POF* MUST BE CALLED AFTER *PCA*
*         SINCE THE *TOVF* TABLE IS BUILT BY *PCA* AND USED BY *POF*. 
*         ALSO, *PCA* USES THE *TEPB* TABLE.
  
          RJM    POF         PROCESS OVERFLOW FLAGS 
          RJM    COR         CHECK FOR OPERATOR ACTION REQUIRED 
          LDD    IA          READ PP INPUT REGISTER 
          CRD    CM 
          LDD    MA          PLACE PP CALL IN MESSAGE BUFFER
          CWD    CM 
          LDK    ZERL 
          CRD    CM 
          LDK    /CPS/PTMF   SET SUBFUNCTION
          STD    CM+1 
          LDC    1000D       SET RECALL TIME TO 1 SECOND
          STD    CM+4 
          MONITOR RECM       DROP PP
          LJM    PPR         ENTER IDLE LOOP
          TITLE  PRIMARY SUBROUTINES. 
 CFS      SPACE  4,10 
**        CFS - CHECK FILE SIZES. 
* 
*         CHECK FOR FILE SIZE LIMIT EXCEEDED FOR SYSTEM DAYFILE, ERROR
*         LOG, ACCOUNT FILE AND BINARY MAINTENANCE LOG. 
* 
*         USES   T2, T3, T5 - CM+4, AA - AA+4.
* 
*         CALLS  SEI. 
* 
*         MACROS MONITOR. 
  
  
 CFSA     MAX    MSDY,ACDY,ELDY,MLDY
  
 CFS      SUBR               ENTRY/EXIT 
          LDN    DFPP        GET FWA OF BUFFER POINTER WORDS
          CRD    AA 
          LDN    CFSA*TDFPE+TDFPE  INITIALIZE INDEX 
          STD    AA+2 
 CFS1     LCN    TDFPE       DECREMENT INDEX
          RAD    AA+2 
          MJN    CFSX        IF ALL DAYFILES HAVE BEEN PROCESSED
          LDM    TDFP,AA+2
          ZJN    CFS1        IF THIS DAYFILE SHOULD NOT BE PROCESSED
          SHN    6
          ADD    AA 
          SHN    14 
          ADD    AA+1 
          CRD    T5 
          SBN    2           GET THRESHOLD INCREMENT
          CRD    CM 
          LDD    CM+2 
          LPN    7
          STD    AA+4 
          ADN    1
          STM    CFSB+4 
          LDD    T5 
          ZJN    CFS1        IF ZERO LENGTH DAYFILE 
          RJM    SEI         SEARCH FOR EOI 
 CFS2     LDM    TDFP+2,AA+2
          RAD    T3 
          SHN    -14
          ADM    TDFP+1,AA+2
          RAD    T2 
          SHN    -14
          RAD    T3 
          LDD    T2 
          SHN    0-13 
 CFS3     NJP    CFS1        IF SIZE NOT EXCEEDED 
          SOD    AA+4 
          PJN    CFS2        IF NOT END OF THRESHOLD INCREMENT
  
*         ISSUE *EATM* TO POST OPERATOR ACTION EVENT. 
  
          LDN    0           SELECT *EATM* ENTER EVENT OPTION 
          STD    CM+1 
          STD    CM+3        STORE EVENT DESCRIPTOR 
          LDM    TDFP+3,AA+2
          STD    CM+4 
          MONITOR  EATM 
          LDM    CFSB+4 
          LMN    10 
          ZJN    CFS3        IF MAXIMUM THRESHOLD INCREMENT 
          LDD    AA          SET NEW THRESHOLD INCREMENT
          SHN    14 
          ADD    AA+1 
          ADM    TDFP,AA+2
          SBN    2
          STD    CM+4 
          SHN    -14
          STD    CM+3 
          LDN    1
          STD    CM+1 
          LDD    MA 
          CWM    CFSB,CM+1
          MONITOR  UTEM 
          LJM    CFS1        LOOP FOR NEXT DAYFILE
  
  
*         *UTEM* PARAMETERS TO SET DAYFILE THRESHOLD INCREMENT. 
  
 CFSB     VFD    6/0,6/3,6/24D,42/0 
 TDFP     SPACE  4,10 
**        TDFP - DAYFILE PROCESSING PARAMETERS. 
*         ENTRY = 4 WORDS.
*         INDEXED BY DAYFILE TYPE.
* 
*T        12/ WO,24/ TH,12/ EV
*         WO     CM WORD OFFSET OF 3RD WORD OF DAYFILE BUFFER POINTER 
*                BLOCK RELATIVE TO FWA OF DAYFILE BUFFER POINTER
*                BLOCKS.
*         TH     THRESHOLD SIZE IN PRUS.
*         EV     EVENT TO ISSUE IF THRESHOLD EXCEEDED.
  
  
 TDFP     DFLIM 
          DFLIM  MSDY,(3*MSDY+2),-DFDL,DFDE 
          DFLIM  ACDY,(3*ACDY+2),-AFDL,ALDE 
          DFLIM  ELDY,(3*ELDY+2),-ELDL,ELDE 
          DFLIM  MLDY,(3*MLDY+2),-BLTL,BMLE 
  
          LOC    *O 
  
 .1       SET    *-TDFP 
 .2       SET    CFSA+1 
 TDFPE    EQU    .1/.2       *TDFP* ENTRY LENGTH
 CMS      SPACE  4,15 
**        CMS - CHECK MASS STORAGE. 
* 
*         THIS ROUTINE SCANS THE EST LOOKING FOR THE FOLLOWING. 
*         1.     CHECKPOINT REQUESTS.                   *1CK* CALLED. 
*         2.     INITIALIZATION/REDEFINITION REQUESTS.  *CMS* CALLED. 
*         3.     SUSPECT DEVICES OR FLAWED TRACKS.      *1MV* CALLED. 
*         4.     DEVICES WHOSE RESTRICT NEW ACTIVITY THRESHOLD
*                DOES NOT MATCH THE RESTRICT NEW ACTIVITY BIT FOR THE 
*                DEVICE.  THE RESTRICT NEW ACTIVITY BIT IS ADJUSTED 
*                TO REFLECT THE THRESHOLD BEING EXCEEDED OR NOT.
*         5.     DEVICES WHOSE OPERATOR NOTIFICATION THRESHOLD IS 
*                GREATER THAN THE TRACKS AVAILABLE.  IF ANY SUCH
*                DEVICES ARE FOUND AND THE OPERATOR NOTIFICATION
*                EVENT HAS NOT BEEN ISSUED (AS NOTED IN *OPRL*), THEN 
*                ISSUE THE OPERATOR NOTIFICATION EVENT (*TKSL*).
*         6.     DEVICES WHOSE OPERATOR NOTIFICATION THRESHOLD IS 
*                LESS THAN THE TRACKS AVAILABLE BY AT LEAST 5.  IF
*                ALL DEVICES HAVE AVAILABLE TRACKS AT LEAST 5 GREATER 
*                THAN THE OPERATOR NOTIFICATION THRESHOLD AND THE 
*                OPERATOR NOTIFICATION FLAG FOR TRACKS LOW IS SET IN
*                *OPRL*, THEN CLEAR THE TRACKS LOW NOTIFICATION FLAG. 
* 
*         EXIT   IF *CMS* OR *1CK* MUST BE CALLED BUT NO PP IS
*                AVAILABLE, THE TIMERS IN *RDSL* WILL REMAIN UNCHANGED
*                SO THE SAME PROCESSING WILL OCCUR IN THE NEXT
*                SCHEDULING CYCLE.
* 
*         USES   T8, T9, AA - AA+4, BB - BB+4, CM - CM+4, EJ - EJ+4,
*                TM - TM+4, T0 - T7.
* 
*         CALLS  AST, CPP, CSC, CTF, SME. 
* 
*         MACROS MONITOR, SFA, SMSTF. 
  
  
 CMS13    LDN    SSTL 
          CRD    EJ 
          ADN    RDSL-SSTL
          CRD    BB 
          ADN    OPRL-RDSL
          CRD    AA 
          SOD    BB+1 
          PJN    CMS14       IF NOT TIME FOR *1CK* CALL 
          LDN    15D         RESET *1CK* TIMER
          STD    BB+1 
          LDC    0
 CMSA     EQU    *-1
          ZJN    CMS14       IF NO *1CK* CALL REQUIRED
          LDN    C1CK        CALL *1CK* 
          RJM    CPP
          NJN    CMS14       IF *1CK* ASSIGNED
          STD    BB+1        RESET TIMER TO TRY ON NEXT CYCLE 
  
*         CHECK FOR *CMS* CALL REQUIRED.
  
 CMS14    SOD    BB          DECREMENT *CMS* TIMER
          PJN    CMS15       IF NOT TIME FOR *CMS* LABEL CHECK
          LDN    60D         RESET LABEL CHECK TIMER
          STD    BB 
          LDD    EJ+1 
          SHN    21-6 
          PJN    CMS16       IF LABEL CHECK NOT DISABLED
 CMS15    LDC    0           CHECK IF *CMS* CALL REQUIRED 
 CMSB     EQU    *-1
          ZJN    CMS17       IF NO *CMS* CALL REQUIRED
 CMS16    LDC    MSSI+FEAF*10000
          RJM    AST         GET SSCT ENTRY FOR *MSM* SUBSYSTEM 
          NJN    CMS17       IF *CMS* IS ALREADY ACTIVE 
          LDN    CCMS        CALL *CMS* 
          RJM    CPP
          NJN    CMS17       IF PP AVAILABLE
          STD    BB          RESET TIMER TO TRY ON NEXT CYCLE 
 CMS17    LDC    RDSL        UPDATE *1CK*/*CMS* TIMERS
          CWD    BB 
  
*         CHECK FOR OPERATOR NOTIFICATION OF LOW SPACE. 
  
          LDC    0           OPERATOR NOTIFICATION REQUIRED FLAG
 CMSC     EQU    *-1
          ZJN    CMS18       IF NO OPERATOR NOTIFICATION REQUIRED 
          LDD    AA+3 
          SHN    21-LSPE+1+14 
          MJN    CMSX        IF NOTIFICATION ALREADY SET
          LDN    LSPE        SET OPERATOR NOTIFICATION EVENT
          STD    CM+4 
          LDN    0           ENTER EVENT
          STD    CM+3 
          STD    CM+1 
          MONITOR  EATM 
          UJN    CMSX        RETURN 
  
*         CHECK FOR CLEARING OF LOW SPACE NOTIFICATION. 
  
 CMS18    LDC    0
 CMSD     EQU    *-1
          NJN    CMSX        IF TO AVOID CLEARING NOTIFICATION
          LDD    AA+3 
          SHN    21-LSPE+1+14 
          PJN    CMSX        IF NOTIFICATION NOT SET
          LDK    OPRL        SET BIT IN *OPRL*
          STD    CM+4 
          LDN    0
          STD    CM+3 
          STD    CM+2 
          LDN    1
          STD    CM+1 
          LDD    MA 
          CWM    CMSE,ON
          MONITOR  UTEM 
  
 CMS      SUBR               ENTRY/EXIT 
          LDN    ESTP 
          CRD    AA 
          ADK    RTCL-ESTP
          CRD    TM 
          LDN    NOPE-1      INITIALIZE EST ORDINAL FOR SEARCH
          STD    T8 
          LDD    AA+3 
          STD    T9 
  
*         SCAN EST FOR INITIALIZE AND CHECKPOINT REQUESTS.
  
 CMS1     AOD    T8 
          LMD    T9 
          NJN    CMS2        IF EST SEARCH NOT COMPLETE 
          LJM    CMS13       CALL *1CK/CMS* 
  
 CMS2     SFA    EST,T8      READ EST ENTRY 
          ADK    EQDE 
          CRD    EJ 
          LDD    EJ          CHECK DEVICE TYPE
          SHN    21-13
          PJN    CMS1        IF NOT MASS STORAGE DEVICE 
          SHN    21-1-21+13 
          MJN    CMS1        IF DEVICE IS *OFF* OR *DOWN* 
          LDD    EJ+4 
          SHN    3
          ADK    TDGL        READ TRACKS AVAILABLE
          CRD    T0 
          ADN    ACGL-TDGL   READ REDEFINITION REQUEST
          CRD    CM 
          ADN    NVGL-ACGL   READ FLAW REQUEST
          CRD    T6 
          ADN    DALL-NVGL   READ DEVICE STATE BITS 
          CRD    T7 
          ADN    STLL-DALL   READ CHECKPOINT, *1MV*, INITIALIZE 
          CRD    BB 
          ADN    THLL-STLL   READ DEVICE THRESHOLDS 
          CRD    AA 
  
*         CHECK FOR *CMS* CALL REQUIRED.
  
          LDD    CM+4 
          LPC    MGRDR
          NJN    CMS3        IF REDEFINITION REQUESTED
          LDD    BB 
          LPN    MLIRP
          ZJN    CMS4        IF INITIALIZE IS NOT REQUESTED 
          LDD    BB 
          LPC    MLFPR+MLUNL
          NJN    CMS4        IF PACK FORMAT/UNLOAD REQUESTED
          LDD    BB 
          LPC    MLIAL+MLIHD+MLIFD+MLIPF
          ZJN    CMS3        IF NOT TOTAL/PF INITIALIZE 
          LDD    BB+3 
          NJN    CMS4        IF ACTIVITY ON DEVICE
 CMS3     AOM    CMSB        SET *CMS* CALL REQUIRED
  
*         CHECK FOR *1CK* CALL REQUIRED.
  
 CMS4     LDD    BB          (TIME TO PROCESS CHECKPOINT REQUESTS)
          LPN    MLCKP
          ZJN    CMS5        IF CHECKPOINT NOT REQUESTED ON DEVICE
          AOM    CMSA        NOTE CHECKPOINT BIT SET
  
*         CHECK FOR *1MV* CALL REQUIRED.
  
 CMS5     LDD    T7 
          LPC    200
          NJN    CMS7        IF SUSPECT DEVICE
          RJM    CTF         CHECK TRACK FLAW 
          ZJN    CMS6        IF TRACK FLAWED
          RJM    CSC         CHECK SWEEP CYCLING
          MJN    CMS8        IF NO SWEEP CYCLING CALL REQUIRED
          SOM    CSCA        DECREMENT REMAINING CALL COUNT 
          LDN    SCFC&MVFC   SET SWEEP CYCLING
 CMS6     LMK    MVFC&DVFC   SET MEDIA VERIFICATION 
 CMS7     LMK    DVFC        SET DEVICE VERIFICATION
          SHN    6
          STM    TCPP+C1MV+3
          LDD    BB+1 
          SHN    21-7 
          MJN    CMS8        IF *1MV* ACTIVE
          LDD    T8          SET EQUIPMENT IN REQUEST 
          STD    T5 
          STM    TCPP+C1MV+2
          LDN    C1MV 
          RJM    CPP
          ZJN    CMS8        IF PP NOT ASSIGNED 
          SMSTF  L1MV        SET *1MV* ACTIVE 
  
*         PROCESS LOW SPACE, RESTRICT NEW ACTIVITY FLAG.
  
 CMS8     LDD    T0+4 
          SBD    AA+1 
          SHN    -21+6       (A) BIT 6 = 0, IF THRESHOLD NOT EXCEEDED 
          LMD    T7 
          SHN    21-6 
          PJN    CMS9        IF RESTRICT NEW ACTIVITY BIT CORRECT 
          LDD    T7 
          SHN    -6 
          LPN    1
          LMN    1
          ADN    /CPS/CRES   SET/CLEAR RESTRICT NEW ACTIVITY BIT
          ERRNZ  /CPS/SRES-/CPS/CRES-1  CODE DEPENDS ON VALUE OF TAGS 
          STD    CM+2 
          LDD    T8          SET EQUIPMENT
          STD    CM+1 
          MONITOR  SEQM 
  
*         PROCESS LOW TRACK NOTIFICATION THRESHOLD. 
  
 CMS9     LDD    AA+2        CHECK FOR LOW SPACE THRESHOLD EXCEEDED 
          LPC    3777 
          SBN    1
          SBD    T0+4 
          PJN    CMS10       IF THRESHOLD EXCEEDED
          ADN    5+1
          PJN    CMS11       IF INSUFFICIENT SPACE TO CLEAR *OPRL*
          LDD    AA+2        CLEAR *OPERATOR NOTIFIED* FLAG 
          LPC    3777 
          STD    AA+2 
          LDD    EJ+4        REWRITE *THLL* IN MST
          SHN    3
          ADN    THLL 
          CWD    AA 
          UJN    CMS12       CONTINUE 
  
 CMS10    LDD    AA+2 
          SHN    21-13
          MJN    CMS11       IF OPERATOR PREVIOUSLY NOTIFIED
          LDC    4000        SET *OPERATOR NOTIFIED* FLAG 
          RAD    AA+2 
          LDD    EJ+4        REWRITE *THLL* IN MST
          SHN    3
          ADN    THLL 
          CWD    AA 
          AOM    CMSC        NOTIFY OPERATOR
 CMS11    AOM    CMSD        PREVENT CLEARING *OPRL* LOW SPACE STATUS 
 CMS12    RJM    SME         CHECK MST ERROR COUNTS 
          LJM    CMS1        PROCESS NEXT EQUIPMENT 
  
  
 CMSE     VFD    1/0,5/0,6/1
          VFD    6/LSPE-1,6/0 
          CON    0,0,0
 COR      SPACE  4,15 
**        COR - CHECK IF OPERATOR ACTION IS REQUIRED. 
* 
*         WHEN RUNNING IN A DUAL STATE ENVIROMENT, *COR* SETS BIT 56
*         IN WORD *D7ST* OF THE *EICB* BLOCK TO INDICATE THAT ACTION
*         IS REQUIRED BY THE CONSOLE OPERATOR.
* 
*         USES   EO, T7, AA - AA+4, BB - BB+4, CM - CM+4, T1 - T5.
* 
*         CALLS  AST, EJA.
  
  
*         SET BIT INDICATING THAT ACTION IS REQUIRED OF THE CONSOLE 
*         OPERATOR. 
  
 COR6     LDD    AA 
          LPC    7377 
          LMC    400
 CORA     EQU    *-1
*         LMC    0           (CLEAR BIT IF NO ACTION IS REQUIRED) 
          STD    AA 
          LDK    EIBP 
          CRD    CM 
          LDD    CM+3        REPLACE WORD *D7ST*
          SHN    14 
          LMD    CM+4 
          ADK    D7ST 
          CWD    AA 
          ADK    D8ST-D7ST
          CRD    AA 
          SBN    D8ST-D8TY
          CRD    CM 
          LDC    **          *NVE* CONTROL POINT ADDRESS
 CORB     EQU    *-1
          ZJN    CORX        IF NOS/VE NOT ACTIVE 
          LDD    CM+3        CHECK NOS/VE STATUS
          LPN    77 
          LMN    2
          NJN    CORX        IF NOS/VE NOT RUNNING
          LDD    AA 
          SHN    21-10
          MJN    COR7        IF NOS/VE REQUESTING OPERATOR ATTENTION
          LDN    0           CLEAR MESSAGE AT *NVE* CONTROL POINT 
          STM    CORC 
 COR7     LDM    CORB        ISSUE/CLEAR MESSAGE AT *NVE* CONTROL POINT 
          ADK    MS2W 
          CWM    CORC,TR
  
 COR      SUBR               ENTRY/EXIT 
          LDK    EIBP 
          CRD    CM 
          LDD    CM+3 
          SHN    14 
          LMD    CM+4 
          ZJN    CORX        IF *EICB* NOT DEFINED
          ADK    D7ST 
          CRD    AA          SAVE CONTENTS OF *D7ST*
          LDK    NVOL 
          CRD    CM 
          LDD    CM+4 
          ZJN    CORX        IF NOS/VE NOT ACTIVE 
          LDD    EO          SAVE EJT ORDINAL 
          STD    BB 
          LDC    SSCP        READ *SSAT* POINTER
          CRD    CM 
          LDD    CM+2 
          LPN    37 
          SHN    14 
          LMD    CM+3 
  
 .W       SET    MXSI-NVSI   CALCULATE WORD OFFSET IN *SSAT*
 .W       SET    .W/5 
 .B       SET    MXSI-5*.W-NVSI  CALCULATE BYTE OFFSET IN *SSAT* WORD 
  
          ADK    SSCTL+.W    READ *SSAT* WORD FOR *NVE* SUBSYSTEM 
          CRD    CM 
          LDD    CM+.B       SET *NVE* EJT ORDINAL
          STD    EO 
          RJM    EJA         GET ADDRESS OF EJT ENTRY 
          ADK    SCHE 
          CRD    CM 
          LDD    BB          RESTORE EJT ORDINAL
          STD    EO 
          LDD    CM+3        SAVE CP ADDRESS OF *NVE* 
          LPN    77 
          SHN    7
          STM    CORB 
  
*         CHECK FOR SYSTEM PROBLEMS.
  
          LDN    0
          CRD    CM 
          LDD    CM 
          ADD    CM+1 
          ADD    CM+2 
          ADD    CM+3 
          ADD    CM+4 
          NJN    COR2        IF WORD ZERO OF LOW CORE IS NON-ZERO 
          LDK    OPRL 
          CRD    CM 
          LDD    CM 
          ADD    CM+1 
          ADD    CM+2 
          ADD    CM+3 
          ADD    CM+4 
          NJN    COR2        IF OPERATOR MESSAGE IS PRESENT 
  
*         SCAN CONTROL POINTS FOR REQUIRED ACTION BY OPERATOR.
  
          LDD    CP          INITIALIZE CP ADDRESS FOR BACKWARD SCAN
          STD    T7 
          ADK    MS2W 
          CRD    CM 
          LDD    CM 
          NJN    COR2        IF MESSAGE AT SYSTEM CONTROL POINT 
 COR1     LDC    -200        DECREMENT CONTROL POINT ADDRESS
          RAD    T7 
          NJN    COR3        IF NOT END OF CONTROL POINTS 
          STM    CORA        CLEAR BIT IN *D7ST*
 COR2     LJM    COR6        RESET BIT IN *D7ST*
  
 COR3     ADK    TFSW 
          CRD    CM 
          LDD    CM 
          ZJN    COR1        IF NO JOB AT CONTROL POINT 
          LDD    T7 
          ADK    SNSW 
          CRD    CM 
          ADK    MS1W-SNSW
          CRD    T1 
          ADK    MS2W-MS1W
          CRD    BB 
          LDD    CM+3 
          SHN    21-0 
          PJN    COR4        IF PAUSE FLAG NOT SET
          LDD    T1 
          ADD    BB 
          NJN    COR2        IF MESSAGE IS PRESENT
 COR4     LDD    BB 
          ZJN    COR1        IF NO MESSAGE IN *MS2W*
          SHN    -6 
          LMN    1R$
 COR5     NJN    COR1        IF NOT FLASHING MESSAGE
          LDD    T7 
          ADK    JOTW 
          CRD    BB 
          LDD    BB+3 
          LMK    SYOT 
          NJN    COR5        IF NOT SYSTEM ORIGIN JOB 
          UJN    COR2        SET BIT IN *D7ST*
  
  
 CORC     DATA   C*$SEE NOS/VE DISPLAY* 
 OSS      SPACE  4,16 
**        OSS - OPTICAL STORAGE SCANNER.
* 
*         UPDATES THE OPTICAL DISK STATUS TABLE AND SCANS THE 
*         OPTICAL DISK REQUEST TABLE FOR MOUNTED DISKS. 
* 
*         ENTRY  NONE.
* 
*         EXIT   INTERVAL COUNTER UPDATED.
* 
*         USES   CM+1, AA - AA+4. 
* 
*         CALLS  *1OS*. 
* 
*         MACROS MONITOR. 
  
  
 OSS      SUBR               ENTRY/EXIT 
          LDC    OSTP        READ OST POINTER WORD
          CRD    AA 
          LDD    AA+2 
          ZJN    OSSX        IF NO OPTICAL DEVICES DEFINED
          LDD    AA+4 
          SHN    21-13
          MJN    OSSX        IF SCANNER DISABLED OR *1OS* ACTIVE
          SOD    AA+4        DECREMENT INTERVAL COUNTER 
 OSS1     LDC    OSTP        UPDATE *OST* POINTER WORD
          CWD    AA 
          LDD    AA+4 
          NJN    OSSX        IF INTERVAL COUNT NOT EXHAUSTED
          LDC    4000        SET *1OS* ACTIVE 
          STD    AA+4 
          LDC    OSTP        UPDATE *OST* POINTER WORD
          CWD    AA 
          LDD    MA 
          CWM    OSSA,ON     WRITE INPUT REGISTER 
          LDD    IR+1        SET CP NUMBER
          LPN    37 
          RAM    OSSA+1 
          LDN    10          ASSIGN TO SYSTEM CP
          STD    CM+1 
          MONITOR RPPM       REQUEST PP 
          LDD    CM+1 
          NJP    OSSX        IF PP ASSIGNED 
          LDN    1           SET INTERVAL COUNTER FOR RETRY 
          STD    AA+4 
          UJN    OSS1        UPDATE *OST* POINTER WORD
  
 OSSA     VFD    18/0L1OS,42/0         *1OS* PP INPUT REGISTER
 PCA      SPACE  4,20 
**        PCA - PROCESS CONTROL POINT AREAS.
* 
*         SCAN THE CPA-S AND PCPA-S CHECKING FOR ACCUMULATOR
*         OVERFLOW AND EXPIRED CM/CP TIME SLICES.  THE *TOVF* TABLE 
*         IS BUILT CONTAINING ACCUMULATOR OVERFLOW FLAGS FROM WORD
*         *SRUW* OF EACH ACTIVE CPA.  FOR JOBS HAVING AN EXPIRED CM 
*         TIME SLICE, THE SCHEDULING PRIORITY WILL BE REDUCED TO THE
*         LOWER BOUND OF THE JOB-S SERVICE CLASS.  JOBS HAVING AN 
*         EXPIRED CONTROL POINT TIME SLICE WILL HAVE THEIR SCHEDULING 
*         PRIORITY REDUCED TO THE CP SLICE PRIORITY FOR THEIR 
*         RESPECTIVE SERVICE CLASSES. 
* 
*         ENTRY  (NC) = NUMBER OF CONTROL POINTS. 
*                (PN) = NUMBER OF MCT ENTRIES.
* 
*         USES   EO, SC, T3, T7, AA - AA+4, BB - BB+4, CM - CM+4, 
*                EJ - EJ+4. 
* 
*         CALLS  CCA, CCS, CET, CPS, CWR, EJA, IRR, IUT, PIS, SSA.
  
  
 PCA19    RJM    SSA         WRITE TIME SLICE COUNT STATISTICS
          CWM    PCAE,ON
  
 PCA      SUBR               ENTRY/EXIT 
          RJM    SSA         READ TIME SLICE COUNT STATISTICS 
          CRM    PCAE,ON
          LDN    0           INITIALIZE CP/PCP NUMBER 
          STD    T7 
 PCA1     AOD    T7          ADVANCE TO NEXT CP/PCP 
          LMD    NC 
          ZJN    PCA1        IF SYSTEM CONTROL POINT
          LMD    NC 
          LMD    PN 
          ZJN    PCA19       IF END OF SCAN 
          LDD    T7          SET CP/PCP ADDRESS 
          RJM    CCA
          ADK    SRUW 
          CRD    BB 
          ADN    TFSW-SRUW
          CRD    AA 
          LDD    T7 
          SBD    NC 
          PJN    PCA2        IF PCP 
          LDN    0           PRESET OVERFLOW FLAGS TABLE ENTRY
          STM    TOVF-1,T7
 PCA2     LDD    AA 
          ZJN    PCA1        IF NO JOB AT CP/PCP
          STD    EO          EJT ORDINAL
          RJM    EJA         CALCULATE EJT ENTRY ADDRESS
          ADK    JSNE 
          CRD    EJ          READ *JSNE* WORD OF EJT ENTRY
          ADN    SCLE-JSNE
          CRD    AA          READ *SCLE* WORD OF EJT ENTRY
          LDD    AA 
          SHN    -6 
          STD    SC 
          LDD    EJ+4 
          SHN    -1 
          LPN    77 
          LMK    PCJS 
          ZJN    PCA4        IF PCP JOB AND ADVANCE CLEAR 
          LMK    EXJS&PCJS
 PCA3     NJP    PCA1        IF ADVANCE SET OR NOT *EXJS* STATUS
          LDD    BB          SAVE OVERFLOW FLAGS
          LPN    3
          SHN    14 
          ADD    BB+1 
          SHN    -5 
          STM    TOVF-1,T7
 PCA4     LDD    T7          SET CP/PCP ADDRESS 
          RJM    CCA
          ADK    JCIW 
          CRD    CM 
          LDD    CM+2 
          ZJN    PCA6        IF ROLLOUT ALLOWED 
          LMN    ORSI        CHECK FOR OPERATOR ROLLOUT ALLOWED 
 PCA5     NJN    PCA3        IF ROLLOUT INHIBITED OR SUBSYSTEM
 PCA6     LDD    AA 
          SHN    21-5 
          PJN    PCA7        IF NOT FORCED ROLLOUT
          LDN    0
          UJN    PCA10       REQUEST ROLLOUT
  
 PCA7     SHN    5-4
          MJN    PCA5        IF FORCED ROLLIN 
          LDD    BB 
          SHN    21-10+1
          LPN    5
          ZJN    PCA12       IF RESOURCE LIMIT NOT REACHED
          AOM    PCAE+2      INCREMENT RESOURCE LIMIT ROLLOUT COUNT 
          SHN    -14
          RAM    PCAE+1 
          LDD    EJ+4 
          SHN    0-7
          LPN    17 
          LMK    OLCS 
          ZJN    PCA8        IF ON-LINE INTERACTIVE JOB 
          LMK    OLCS&DTCS
          ZJN    PCA9        IF DETACHED INTERACTIVE JOB
          LDN    0           ROLLOUT ALL OTHER JOBS 
          UJN    PCA10       REQUEST ROLLOUT
  
 PCA8     LDN    /CPS/ROSU&/CPS/ROSR  SELECT *ROSR* SCHEDULER ROLLOUT 
 PCA9     LMN    /CPS/ROSU   SELECT *ROCM* SUSPEND OPTION 
          SHN    14 
 PCA10    LMD    T7 
          RJM    IRR         ISSUE ROLLOUT REQUEST
 PCA11    LJM    PCA1        CONTINUE CONTROL POINT SCAN
  
 PCA12    RJM    CWR         CHECK WAIT RESPONSE/CONNECTION INDICATORS
 PCAA     LDD    T7          SET CP/PCP ADDRESS 
*         UJN    PCA13       (USER ECS IS ENABLED)
          RJM    CCA
          ADK    ECSW 
          CRD    CM 
          LDD    CM+4 
          ZJN    PCA13       IF NO ECS IS ASSIGNED TO JOB 
          LDN    0
          UJN    PCA10       REQUEST ROLLOUT
  
 PCA13    LDD    T7 
          SBD    NC 
          PJN    PCA11       IF PCP JOB 
          LDD    AA+2        SAVE SLICE FLAG
          SHN    14 
          STD    T3 
          SHN    -14
          STD    AA+2 
          RJM    CCS         CHECK FOR EXPIRED CM SLICE 
          PJN    PCA14       IF CM SLICE IS EXPIRED 
          LDD    PN 
          SBD    NC 
          SBN    1
          ZJN    PCA11       IF NO PCP-S
          RJM    CPS         CHECK FOR EXPIRED CONTROL POINT SLICE
          MJP    PCA1        IF CP SLICE NOT EXPIRED
          LDN    2
          STD    T3 
 PCA14    LDM    PCAD,T3
          STM    PCAB 
          LDD    T3 
          NJN    PCA15       IF EITHER CP SLICE OR NOT INITIAL SLICE
          RJM    PIS         PROCESS INITIAL SLICE
 PCA15    RJM    EJA         CALCULATE EJT ENTRY ADDRESS
          ADN    SCHE 
          CRD    CM 
          LDM    TEPB+1*MXJC,SC  PUT PRIORITY IN *UTEM* CALL
 PCAB     EQU    *-1
          STM    PCAC+14D 
          LDD    CM+3 
          STM    PCAC+13D 
          LDD    EJ+4        STORE JOB STATUS IN *UTEM* BLOCK 
          LPN    76 
          STM    PCAC+9D
          LDD    T7 
          SBD    NC 
          MJN    PCA16       IF NOT PCP 
          LDM    PCAC+14D 
          STD    T1 
          LDD    SC 
          SHN    14 
          LMK    EXQT 
          RJM    CET
          LDD    T1          STORE ENTRY TIME IN *UTEM* BLOCK 
          STM    PCAC+13D 
          LDD    T2 
          STM    PCAC+14D 
          UJN    PCA17       REDUCE PRIORITY TO LOWER BOUND 
  
 PCA16    LDM    PCAC+14D 
          SBD    CM+4 
          PJN    PCA18       IF PRIORITY ALREADY REDUCED
  
*         REDUCE SCHEDULING PRIORITY. 
  
 PCA17    LDD    SC          PUT SERVICE CLASS IN *UTEM* CALL 
          STM    PCAC+4 
          LDC    PCAC+3*10000 
          RJM    IUT         ISSUE *UTEM* MONITOR FUNCTION
          NJN    PCA18       IF *UTEM* REJECTED 
          LDD    T3 
          SBN    2
          PJN    PCA18       IF CP SLICE EXPIRED
          AOM    PCAE+4      INCREMENT SLICE COUNT
          SHN    -14
          RAM    PCAE+3 
 PCA18    LJM    PCA1        CONTINUE CONTROL POINT SCAN
  
  
*         *UTEM* PARAMETERS FOR CHANGING SCHEDULING PRIORITY. 
  
 PCAC     VFD    1/1,5/SCLE,6/6  VERIFY SERVICE CLASS 
          VFD    6/54D,6/0
          CON    0
          CON    0
          CON    0
  
          VFD    1/1,5/JSNE,6/6  VERIFY UNCHANGED JOB STATE, CLEAR I/L
          VFD    6/0,6/0
          CON    0
          CON    0
          CON    0
  
          VFD    1/0,5/SCHE,6/24D  SET SCHEDULING PRIORITY
          VFD    6/0,6/0
          CON    0
          CON    0
          CON    0
  
 PCAD     CON    TEPB 
          CON    TEPB+1*MXJC
          CON    TEPB+3*MXJC
  
 PCAE     BSS    5           *PF0S* BUFFER
 POF      SPACE  4,15 
**        POF - PROCESS OVERFLOW FLAGS. 
* 
*         CALL *0AU* FOR EACH CONTROL POINT HAVING ACCUMULATOR
*         OVERFLOW. 
* 
*         ENTRY  (NC) = SYSTEM CONTROL POINT NUMBER.
*                *TOVF* TABLE CONTAINS ACCUMULATOR OVERFLOW FLAGS.
* 
*         USES   EO, TP, CM - CM+4. 
* 
*         CALLS  EJA, 0AU.
* 
*         MACROS EXECUTE, MONITOR.
  
  
 POF      SUBR               ENTRY/EXIT 
          LDD    NC          INITIALIZE CONTROL POINT NUMBER
          STD    TP 
 POF1     SOD    TP          DECREMENT CONTROL POINT NUMBER 
          ZJN    POFX        IF ALL CONTROL POINTS HAVE BEEN PROCESSED
          LDM    TOVF-1,TP
          ZJN    POF1        IF NO ACCUMULATOR OVERFLOW AT THIS CP
          LDD    TP          SAVE CONTROL POINT NUMBER FOR *CCAM* 
          STD    CM+1 
          MONITOR  CCAM      CHANGE CONTROL POINT ASSIGNMENT
          LDD    CM+1 
          NJN    POF1        IF FUNCTION REJECTED 
  
*         SET UP *0AU* PARAMETERS.
  
          LDD    CP 
          ADN    SRUW 
          CRM    P0AU+5,ON
          ADN    FPFW-SRUW-1
          CRM    OVL0,ON
          ADN    TFSW-FPFW-1
          CRD    CM 
          LDM    P0AU+6 
          SCN    37 
          NJN    POF2        IF OVERFLOW
          LDM    P0AU+5 
          LPN    3
          ZJN    POF3        IF NO OVERFLOW FLAGS SET 
 POF2     LDD    CM          PLACE JSN IN PARAMETER BLOCK 
          STD    EO 
          RJM    EJA         CALCULATE EJT ENTRY ADDRESS
          ADK    JSNE 
          CRM    P0AU,ON
          ADK    SCLE-JSNE-1 SET SERVICE CLASS FOR *0AU*
          CRD    CM 
          LDD    CM 
          SCN    77 
          STM    P0AU+4 
          LDC    P0AU        SET PARAMETER BLOCK ADDRESS
          STM    OVL0+1 
          LDM    OVL0        SET *0AU* FUNCTION CODE
          SCN    77 
          ADN    1
          STM    OVL0 
  
*         EXECUTE *0AU*.  NOTE THAT *0AU* USES DIRECT CELLS 0 - 17B.
  
          EXECUTE  0AU,OVL0+5 
 POF3     LDD    NC          SAVE SYSTEM CP NUMBER FOR *CCAM* 
          STD    CM+1 
          MONITOR  CCAM      CHANGE PP ASSIGNMENT TO SYSTEM CP
          LJM    POF1        CONTINUE 
          SPACE  4,10 
 SEJ      SPACE  4,20 
**        SEJ - SCAN EJT. 
* 
*         SET FLAGS IN WORD *OPRL* FOR POSTED OPERATOR ACTION EVENTS. 
*         SCAN THE EJT LOOKING FOR JOBS HAVING TIMED/EVENT ROLLOUT JOB
*         STATUS, AND FOR JOBS WITH ACCESS LEVEL LIMITS OUTSIDE THEIR 
*         JOB ORIGIN ACCESS LEVEL LIMITS.  IF A JOB-S ROLLOUT TIME HAS
*         EXPIRED OR ITS EVENT IS POSTED, CHANGE THE JOB STATUS TO
*         SCHEDULER ROLLOUT (*ROJS*).  IF A JOB-S ACCESS LEVEL LIMITS 
*         ARE OUTSIDE ITS ORIGIN TYPE LIMIT, ABORT THE JOB WITH AN
*         *SYET* ERROR FLAG.  SUBSYSTEMS ARE NOT ABORTED. 
*         SCAN THE EJT LOOKING FOR JOBS IN SERVICE LIMIT WAIT STATUS
*         AND SET *ROJS* STATUS ON THE JOBS IF THEY ARE NOW WITHIN
*         THE SERVICE LIMIT CONSTRAINTS.
* 
*         USES   EO, SC, AA - AA+4, BB - BB+4, CM - CM+4, 
*                EJ - EJ+4, T0 - T0+4.
* 
*         CALLS  CAL, OAE, PSL, PTE, RTE. 
* 
*         MACROS CFI, MONITOR.
  
  
 SEJ5     LDD    CF 
          LPN    4
          ZJN    SEJX        IF SYSTEM LIMITS HAVE NOT CHANGED
          LDN    1           CLEAR SYSTEM LIMITS CHANGED FLAG 
          STD    CM+1 
          STD    CM+2 
          LDD    MA 
          CWM    SEJD,ON
          MONITOR  UADM 
  
 SEJ      SUBR               ENTRY/EXIT 
          RJM    RTE         READ TABLE OF EVENTS 
          LDD    T7          GET EVENT COUNT
  
*         CHECK FOR OPERATOR ACTION EVENTS. 
  
          RJM    OAE         PROCESS OPERATOR ACTION EVENTS 
  
*         SCAN THE EJT. 
  
          LDD    CF          GET SYSTEM LIMITS CHANGED STATUS 
          LPN    4
          STM    SEJC 
          LDC    **          PRESET EJT ORDINAL FOR BACKWARD SCAN 
 SEJA     EQU    *-1         (LARGEST EJT ORDINAL + 1)
          STD    EO 
 SEJ1     SOD    EO          DECREMENT EJT ORDINAL
          ZJP    SEJ5        IF EJT SCAN COMPLETE 
          CFI    EJT,,EO     GET EJT ENTRY OFFSET 
          ADC    **          ADD EJT FWA (SET BY *PRS*) 
 SEJB     EQU    *-1         (EJT FWA)
          ADK    JSNE 
          CRD    EJ 
          ADN    SCHE-JSNE
          CRD    AA 
          ADN    PRFE-SCHE
          CRD    BB 
          ADN    SCLE-PRFE
          CRD    T0 
          LDD    EJ 
          ZJN    SEJ1        IF EMPTY ENTRY 
          LDD    T0          GET SERVICE CLASS
          STM    PTEA 
          SHN    -6 
          STD    SC 
          LMN    DSSC 
          NJN    SEJ2        IF NOT DEADSTART SEQUENCING JOB
          SOM    CPPA        SET D/S SEQUENCING FLAG
 SEJ2     LDC    ** 
 SEJC     EQU    *-1         (SYSTEM LIMITS CHANGED FLAG) 
          ZJN    SEJ3        IF SYSTEM LIMITS HAVE NOT CHANGED
          RJM    CAL         CHECK ACCESS LEVEL LIMITS
          NJN    SEJ4        IF JOB ABORTED OR IN TERMINATION 
 SEJ3     RJM    PTE         PROCESS TIMED/EVENT ROLLOUT JOBS 
          RJM    PSL         PROCESS SERVICE LIMITS 
 SEJ4     LJM    SEJ1        PROCESS NEXT EJT ENTRY 
  
  
*         *UADM* PARAMETERS TO CLEAR SYSTEM LIMITS CHANGED FLAG.
  
 SEJD     CON    /CPS/LDOS   DECREMENT BY ONE 
          CON    INWL 
          CON    14D*100+1   BIT ADDRESS AND FIELD WIDTH
          TITLE  SECONDARY SUBROUTINES. 
 CAL      SPACE  4,20 
**        CAL - CHECK ACCESS LEVEL LIMITS.
* 
*         CHECK IF THE JOB-S ACCESS LEVEL LIMITS ARE OUTSIDE THE
*         LIMITS FOR THE JOB-S ORIGIN TYPE.  IF SO, ABORT THE JOB 
*         WITH AN *SYET* ERROR.  SUBSYSTEMS WILL NOT BE ABORTED.
*         IGNORE ALL JOBS THAT ALREADY HAVE *SYET* OR *TJET* ERROR
*         FLAGS, AS WELL AS JOBS ALREADY IN JOB TERMINATION.
* 
*         ENTRY  (EO) = EJT ORDINAL OF JOB. 
*                (SC) = SERVICE CLASS OF JOB. 
*                (EJ - EJ+4) = *JSNE* WORD OF EJT ENTRY.
*                (AA - AA+4) = *SCHE* WORD OF EJT ENTRY.
*                (BB - BB+4) = *PRFE* WORD OF EJT ENTRY.
*                (T0 - T0+4) = *SCLE* WORD OF EJT ENTRY.
* 
*         EXIT   (A) .NE. 0 IF JOB ABORTED OR IN TERMINATION. 
* 
*         USES   CM - CM+4. 
* 
*         MACROS DELAY, MONITOR.
  
  
 CAL3     LDN    1           SET ERROR RETURN STATUS
  
 CAL      SUBR               ENTRY/EXIT 
          LDD    AA+2 
          SHN    21-12
          MJN    CALX        IF JOB TERMINATION IN PROGRESS 
          LDD    BB+1 
          LMK    SYET 
          ZJN    CAL3        IF JOB ALREADY HAS *SYET* ERROR
          LDD    BB+2 
          LPN    77 
          SHN    -3+22
          STD    CM+4        SET LOWER ACCESS LEVEL LIMIT 
          SHN    -22+3
          STD    CM+3        SET UPPER ACCESS LEVEL LIMIT 
          LDD    T0          SET ORIGIN TYPE
          LPN    17 
          STD    CM+2 
          LDN    /CPS/VJLS   VALIDATE JOB LIMITS
          STD    CM+1 
          MONITOR  VSAM 
          LDD    CM+1 
          ZJN    CALX        IF JOB LIMITS VALID
  
*         SET *SYET* ERROR FLAG FOR ALL JOBS EXCEPT SUBSYSTEMS. 
  
          LDD    SC 
          LMK    SSSC 
          ZJN    CALX        IF JOB IS SUBSYSTEM
 CAL1     LDC    SYET+4000   SET ERROR FLAG 
          STD    CM+1 
          LDD    EO          SET EJT ORDINAL
          STD    CM+2 
          LDD    EJ          SET JSN
          STD    CM+3 
          LDD    EJ+1 
          STD    CM+4 
          MONITOR  CEFM 
          LDD    CM+1 
          ZJP    CAL3        IF ERROR FLAG SET
          DELAY 
          UJN    CAL1        RETRY
 CCA      SPACE  4,10 
**        CCA - COMPUTE CPA/PCPA ADDRESS. 
* 
*         ENTRY  (A) = CP/PCP NUMBER. 
*                (NC) = NUMBER OF CONTROL POINTS. 
* 
*         EXIT   (A) = CPA/PCPA ADDRESS.
  
  
 CCA1     ADD    NC 
          SHN    7
  
 CCA      SUBR               ENTRY/EXIT 
          SBD    NC 
          MJN    CCA1        IF CONTROL POINT 
          ZJN    CCA1        IF SYSTEM CONTROL POINT
          SHN    7
 CCAA     ADC    **          (PCP AREAS BASE ADDRESS) 
          UJN    CCAX        RETURN 
 CCS      SPACE  4,10 
**        CCS - CHECK CM SLICE. 
* 
*         CHECK FOR EXPIRED CM TIME SLICE.
* 
*         ENTRY  (AA - AA+4) = WORD *TSCW* OF CPA/PCPA. 
*                (TM - TM+1) = SECONDS PORTION OF WORD *RTCL*.
* 
*         EXIT   (A) .GE. 0  IF CM TIME SLICE EXPIRED.
  
  
 CCS      SUBR               ENTRY/EXIT 
          LDD    TM          CALCULATE REAL TIME - CM SLICE TIME
          SBD    AA 
          NJN    CCSX        IF NO NEED TO CHECK LOWER BITS 
          LDD    TM+1 
          SBD    AA+1 
          UJN    CCSX        RETURN 
 CPP      SPACE  4,10 
**        CPP - CALL PP.
* 
*         THIS ROUTINE CALLS THE REQUESTED PP TO THE SYSTEM CONTROL 
*         POINT.
* 
*         ENTRY  (A) = RELATIVE PP CALL INDEX FROM TCPP.
* 
*         EXIT   (A) = 0, IF NO PP AVAILABLE. 
* 
*         USES   T1, CM - CM+4. 
  
  
 CPP2     LDN    0           INDICATE NO PP AVAILABLE 
  
 CPP      SUBR               ENTRY/EXIT 
          ADC    TCPP        SET ABSOLUTE TABLE ADDRESS 
          STD    T1 
          STM    CPPB 
          SBM    CPPC 
          PJN    CPP2        IF PP CALL DISABLED
          LDD    T1 
          ADC    -C1MV-TCPP 
          ZJN    CPP1        IF *1MV* REQUESTED 
 CPPA     LDN    1
*         LDN    0           (D/S SEQUENCING) 
          ZJN    CPPX        IF D/S SEQUENCING
 CPP1     LDM    1,T1        SET SYSTEM CP NUMBER 
          SCN    77 
          LMD    NC 
          STM    1,T1 
          LDD    MA 
          CWM    TCPP,ON
 CPPB     EQU    *-1
          EXECUTE  1CK,=
          EXECUTE  1DS,=
          EXECUTE  1MV,=
          LDN    1           SET PRIORITY PP FLAG 
          STD    CM+1 
          MONITOR  RPPM 
          LDD    CM+1 
          UJP    CPPX        RETURN 
  
  
 CPPC     CON    TCPP+C1MV+1
 TCPP     BSS    0           TABLE OF PP CALLS
          LOC    0
 C1CK     VFD    18/0L1CK,6/0,12/2,24/0 
 CCMS     VFD    18/0L1DS,6/0,12//1DS/ISSF,18/0LCMS,6/0 
 C1MV     VFD    18/0L1MV,6/0,12/0,6/0,18/0 
          LOC    *O 
 CPS      SPACE  4,10 
**        CPS - CHECK CONTROL POINT SLICE.
* 
*         CHECK FOR EXPIRED CONTROL POINT SLICE.
* 
*         ENTRY  (AA - AA+4) = WORD *TSCW* OF CONTROL POINT AREA. 
*                (TM - TM+1) = SECONDS PORTION OF WORD *RTCL*.
* 
*         EXIT   (A) .GE. 0 IF CONTROL POINT SLICE EXPIRED. 
  
  
 CPS      SUBR               ENTRY/EXIT 
          LDD    TM 
          SBD    AA+3 
          NJN    CPSX        IF NO NEED TO CHECK LOWER BITS 
          LDD    TM+1 
          SBD    AA+4 
          UJN    CPSX        RETURN 
 CSC      SPACE  4,10 
**        CSC - CHECK SWEEP CYCLING.
* 
*         ENTRY  (EJ - EJ+4) = *EQDE* WORD OF EST ENTRY.
*                (TM - TM+1) = SECONDS PORTION OF *RTCL*. 
* 
*         EXIT   (A) .GE. 0 IF SWEEP CYCLING CALL IS REQUIRED.
* 
*         USES   CM - CM+5. 
  
  
 CSC3     LCN    0           SET REPLY STATUS 
  
 CSC      SUBR               ENTRY/EXIT 
          LDN    1
 CSCA     EQU    *-1
          ZJN    CSC3        IF SWEEP CYCLING CALL LIMIT REACHED
          LDD    EJ 
          LPN    3
          LMN    3
          ZJN    CSC3        IF DEVICE IS DOWN
          LDD    EJ+4 
          SHN    3
          ADN    SCLL        READ SWEEP CYCLING CONTROL WORD
          CRD    CM 
          LDC    CSCB-1 
          STD    T1 
 CSC1     AOD    T1 
          LDI    T1 
          ZJN    CSC3        IF SWEEP CYCLING NOT SUPPORTED ON DEVICE 
          LMD    EJ+3 
          NJN    CSC1        IF NOT THIS DEVICE TYPE
          LDD    TM+1 
          SBD    CM+1 
          PJN    CSC2        IF NO ROLLOVER 
          ADC    10000
 CSC2     SBK    SCDT*60D 
          UJP    CSCX        RETURN 
  
  
 CSCB     BSS    0           TABLE OF DEVICES SUPPORTING SWEEP CYCLING
  
          CON    2RDB        DEVICE TYPE *DB* 
          CON    2RDD        DEVICE TYPE *DD* 
          CON    2RDG        DEVICE TYPE *DG* 
          CON    2RDM        DEVICE TYPE *DM* 
          CON    2RDQ        DEVICE TYPE *DQ* 
  
          CON    0           END OF TABLE 
 CTF      SPACE  4,10 
**        CTF - CHECK TRACK FLAWED. 
* 
*         THIS ROUTINE CHECKS FOR A TRACK BEING FLAWED. 
* 
*         ENTRY  (T6) = TRACK TO CHECK FOR BEING FLAWED.
*                (EJ - EJ+4) = EST ENTRY FOR EQUIPMENT. 
* 
*         EXIT   (A) = 0, IF TRACK IS FLAWED. 
* 
*         USES   T0, T1, CM - CM+4. 
  
  
 CTF      SUBR               ENTRY/EXIT 
          LDD    T6 
          STM    TCPP+C1MV+4
          ZJN    CTF1        IF NO TRACK PRESENT
          SHN    21-1 
          STD    T0          TRT RELATIVE WORD + 1000 
          SHN    0-20 
          STD    T1          TRACK BYTE INDEX 
          LDD    EJ+4        READ TRT WORD
          SHN    3
          ADK    TRLL 
          CRD    CM 
          LDD    CM+3 
          SHN    14 
          ADD    CM+4 
          ADD    T0 
          SBD    TH 
          CRD    CM 
          LDM    CM,T1       GET TRACK BYTE 
 CTF1     LMC    3777 
          UJN    CTFX        RETURN 
 CWR      SPACE  4,20 
**        CWR - CHECK WAIT RESPONSE INDICATORS. 
* 
*         FOR THE SPECIFIED CP/PCP, IF ANY SCP WAIT RESPONSE
*         INDICATOR IN WORD *SSCW* IS NON-ZERO AND THE CORRESPONDING
*         ROLLOUT ALLOWABLE BIT IS CLEAR, ADD THE INSTALLATION DEFINED
*         MULTIPLE OF CM TIME SLICES TO THE JOB-S SLICE TIME IN CELLS 
*         *AA - AA+4* TO REDUCE THE CHANCE OF ROLLING THIS JOB. 
* 
*         ENTRY  (SC) = SERVICE CLASS.
*                (EO) = EJT ORDINAL.
*                (T7) = CP OR PCP NUMBER. 
* 
*         EXIT   (AA - AA+4) = *TSCW*.
* 
*         USES   T4, CM - CM+4, AA - AA+4.
* 
*         CALLS  CCA. 
* 
*         MACROS SFA. 
  
  
 CWR      SUBR               ENTRY/EXIT 
          LDD    T7          SET CP/PCP ADDRESS 
          RJM    CCA
          ADK    SSCW 
          CRD    CM 
          ADN    TSCW-SSCW
          CRD    AA 
          LDN    5           INITIALIZE BYTE INDEX
          STD    T4 
 CWR1     SOD    T4 
          MJN    CWRX        IF NO MORE INDICATORS TO CHECK 
          LDM    CM,T4
          LPN    27          MASK ROLLOUT ALLOWABLE/WAIT RESPONSE 
          ZJN    CWR1        IF NO INDICATORS SET 
          LPN    20 
          NJN    CWR1        IF ROLLOUT ALLOWABLE SET 
          LDN    CMSL        INSTALLATION DEFINED CM SLICE MULTIPLIER 
          STD    T4 
          SFA    JCB,SC      GET CM TIME SLICE FOR JOB
          ADN    SVJT 
          CRD    CM 
 CWR2     LDD    CM+2        INCREASE CM TIME SLICE 
          RAD    AA+1 
          SHN    -14
          RAD    AA 
          SOD    T4 
          NJN    CWR2        IF NOT FINISHED INCREASING TIME SLICE
          LJM    CWRX        RETURN 
 EJA      SPACE  4,10 
**        EJA - CALCULATE EJT ENTRY ADDRESS.
* 
*         ENTRY  (EO) = EJT ORDINAL.
* 
*         EXIT   (A) = EJT ENTRY ADDRESS. 
* 
*         MACROS CFI. 
  
  
 EJA      SUBR               ENTRY/EXIT 
          CFI    EJT,EO      CALCULATE ENTRY OFFSET 
          ADC    ** 
 EJAA     EQU    *-1         (EJT FWA)
          UJN    EJAX        RETURN 
 IRR      SPACE  4,15 
**        IRR - ISSUE ROLLOUT REQUEST.
* 
*         ENTRY  (A) = 6/  OP,12/  CP.
*                      OP    *ROCM* OPTIONS.
*                      CP    CP/PCP TO ROLL.
* 
*         EXIT   (A) = 0 IF ROLLOUT REQUEST WAS ACCEPTED. 
*                JOBS PREEMPTED STATISTIC UPDATED.
* 
*         USES   CM - CM+4. 
* 
*         MACROS MONITOR. 
  
  
 IRR      SUBR               ENTRY/EXIT 
          STD    CM+2        STORE CP/PCP NUMBER
          SHN    -14
          LMC    4000        SET ALTERNATE CP/PCP OPTION
          STD    CM+1 
          MONITOR  ROCM      REQUEST ROLLOUT
          LDD    CM+1 
          UJN    IRRX        RETURN 
 IUT      SPACE  4,20 
**        IUT - ISSUE *UTEM* MONITOR FUNCTION.
* 
*         ENTRY  (A) = 1/ 0,1/ I,1/ 0,3/ C,12/ P
*                      I = 0 IF INTERLOCK SHOULD BE SET.
*                        = 1 IF INTERLOCK SHOULD BE CLEARED.
*                      C = NUMBER OF *UTEM* PARAMETER WORDS.
*                        = 0 IF INTERLOCK REQUEST.
*                      P = PARAMETER LIST ADDRESS.
* 
*         EXIT   (A) = 0 IF *UTEM* FUNCTION WAS SUCCESSFUL. 
*                    .NE. 0 IF *UTEM* VERIFICATION FAILED.
* 
*         USES   CM - CM+4. 
* 
*         CALLS  EJA. 
* 
*         MACROS MONITOR. 
  
  
 IUT      SUBR               ENTRY/EXIT 
          STM    IUTA        PARAMETER LIST ADDRESS 
          LPC    -7777
          SHN    1
          STD    CM          TABLE INDICATOR
          SCN    1           SAVE INTERLOCK FLAG
          SHN    1
          STD    CM+2 
          SHN    -14-2
          STD    CM+1        NUMBER OF PARAMETER WORDS
          RJM    EJA         CALCULATE TABLE ADDRESS
          STD    CM+4 
          SHN    -14
          STD    CM+3 
          LDD    CM+1 
          ZJN    IUT1        IF NO PARAMETER WORDS
          LDD    MA          WRITE PARAMETERS TO MESSAGE BUFFER 
          CWM    **,CM+1
 IUTA     EQU    *-1
 IUT1     LDD    CM+2        SET/CLEAR INTERLOCK FLAG 
          SHN    5
          RAD    CM+1 
          LDN    0
          STD    CM+2 
          MONITOR  UTEM 
          LDD    CM+1 
          LJM    IUTX        RETURN 
 OAE      SPACE  4,15 
**        OAE - PROCESS OPERATOR ACTION EVENTS. 
* 
*         FOR EACH POSTED OPERATOR ACTION EVENT FOUND IN THE *TEVT* 
*         TABLE, SET THE CORRESPONDING BIT IN WORD *OPRL*.
* 
*         ENTRY  (A) = NUMBER OF EVENTS IN *TEVT* TABLE.
* 
*         USES   T1, CM - CM+4. 
* 
*         MACROS MONITOR. 
  
  
 OAE      SUBR               ENTRY/EXIT 
          SHN    1           INITIALIZE INDEX 
          STD    T1 
 OAE1     LCN    2           DECREMENT *TEVT* INDEX 
          RAD    T1 
          MJN    OAEX        IF END OF *TEVT* SCAN
          LDM    TEVT,T1
          NJN    OAE1        IF NOT SYSTEM EVENT
          STD    CM+2 
          LDM    TEVT+1,T1
          ZJN    OAE1        IF NULL EVENT
          SBK    MXOE 
          PJN    OAE1        IF NOT OPERATOR ACTION EVENT 
          ADK    MXOE-1      STORE BIT NUMBER IN *UTEM* BLOCK 
          SHN    6
          STM    OAEA+1 
          LDN    1
          STD    CM+1 
          LDK    OPRL 
          STD    CM+4 
          SHN    -14
          STD    CM+3 
          LDD    MA          WRITE PARAMETER WORDS TO MESSAGE BUFFER
          CWM    OAEA,CM+1
          MONITOR  UTEM      SET OPERATOR ACTION FLAG 
          UJN    OAE1        CONTINUE *TEVT* SCAN 
  
  
*         *UTEM* PARAMETER BLOCK FOR *OPRL* UPDATE. 
  
 OAEA     VFD    1/0,5/0,6/1
          VFD    6/0,6/0
          CON    0,0,1
 PIS      SPACE  4,10 
**        PIS - PROCESS INITIAL SLICE.
* 
*         ENTRY  (SC) = SERVICE CLASS.
*                (T7) = CP OR PCP NUMBER. 
*                (TM - TM+1) = SECONDS PORTION OF *RTCL*. 
* 
*         USES   AA - AA+4, CM - CM+4.
* 
*         CALLS  CCA, RJC.
  
  
 PIS      SUBR               ENTRY/EXIT 
          LDD    T7          SET CP/PCP ADDRESS 
          RJM    CCA
          ADK    TSCW 
          CRD    AA 
          LDD    SC 
          RJM    RJC         CALCULATE JCB ADDRESS
          ZJN    PIS2        IF NO JCB FOR SERVICE CLASS
          ADK    SVJT        READ *SVJT* WORD OF JCB
          CRD    CM 
          LDD    CM+2        CALCULATE CM SLICE TIME
          STD    AA+1 
          ZJN    PIS1        IF CM SLICE = 0
          LDD    TM+1 
          RAD    AA+1 
          SHN    -14
          ADD    TM 
 PIS1     STD    AA 
 PIS2     LDD    HN          SET POST-INITIAL SLICE FLAG
          STD    AA+2 
          LDD    T7          SET CP/PCP ADDRESS 
          RJM    CCA
          ADK    TSCW 
          CWD    AA 
          UJP    PISX        RETURN 
 PSL      SPACE  4,10 
**        PSL - PROCESS SERVICE LIMITS. 
* 
*         ENTRY  (EJ - EJ+4) = *JSNE* EJT WORD. 
*                (T0 - T0+4) = *SCLE* EJT WORD. 
*                (SC) = SERVICE CLASS.
* 
*         EXIT   JOB STATUS CHANGED IF SERVICE LIMITS NOT EXCEEDED. 
* 
*         CALLS  SRS. 
  
  
 PSL      SUBR               ENTRY/EXIT 
          LDD    EJ+4 
          LPN    76 
          STM    SRSA+4      SAVE CURRENT JOB STATUS
          LMN    SWJS*2 
          NJN    PSLX        IF NOT SERVICE WAIT STATUS 
          LDM    TJAM,SC
          SBD    T0+4 
          MJN    PSLX        IF CM EXCEEDS SERVICE LIMIT
          LDM    TJAM+1*MXJC,SC 
          SBD    T0+3 
          MJN    PSLX        IF EM EXCEEDS SERVICE LIMIT
          RJM    SRS         SET ROLLOUT STATUS 
          UJN    PSLX        RETURN 
 PTE      SPACE  4,20 
**        PTE - PROCESS TIMED/EVENT ROLLOUT JOBS. 
* 
*         CHECK FOR JOBS HAVING TIMED/EVENT ROLLOUT STATUS. 
*         DECREMENT ROLLOUT TIMES OF SUCH JOBS AND SEE IF 
*         THEIR EVENTS ARE POSTED YET.
* 
*         ENTRY  (AA - AA+4) = *SCHE* WORD OF EJT ENTRY.
*                (BB - BB+4) = *PRFE* WORD OF EJT ENTRY.
*                (EJ - EJ+4) = *JSNE* WORD OF EJT ENTRY.
*                (T7) = NUMBER OF EVENTS IN EVENT TABLE.
*                (PTEA) = BYTE 0 OF *SCLE* WORD OF EJT ENTRY. 
*                CURRENT EVENTS SET IN *TEVT*.
* 
*         USES   AA+3, AA+4, T1, T2, CM - CM+4. 
* 
*         CALLS  SRS, IUT.
* 
*         MACROS MONITOR. 
  
  
 PTE      SUBR               ENTRY/EXIT 
          LDD    EJ+4 
          LPN    77 
          STM    SRSA+4      SAVE CURRENT JOB STATUS
          SHN    21-0        CHECK FOR EJT INTERLOCK
          MJN    PTEX        IF EJT INTERLOCKED 
          STD    T2          SAVE JOB STATUS
          STM    PTEH+4 
          LMK    PWJS 
          NJN    PTE1        IF NOT PRE-INITIAL WAIT JOB STATUS 
          LDD    BB+1 
          LMK    ORET 
          ZJN    PTE2        IF OPERATOR OVERRIDE, CHANGE JOB STATUS
 PTE1     LDM    TJST,T2
          SHN    21-10
          PJN    PTEX        IF NOT TIMED/EVENT ROLLOUT STATUS
          LDC    *           GET SERVICE CLASS
 PTEA     EQU    *-1         (BYTE 0 OF *SCLE* WORD OF EJT ENTRY) 
          LPN    60          MASK FORCED ROLLOUT/ROLLIN BITS
          LMN    20 
          STM    PTED        SET/CLEAR *EATM* REISSUE FLAG
          NJN    PTE3        IF NOT FORCED ROLLIN 
 PTE2     LJM    PTE11       GO CHANGE JOB STATUS AND SET PRIORITY
  
 PTE3     LDD    AA+3 
          LPC    777
          LMN    EXTM/10000 
          STM    PTEC        SET/CLEAR EXTENDED TIMED ROLLOUT FLAG
          NJN    PTE5        IF NOT EXTENDED TIMED ROLLOUT
          SOD    AA+4        DECREMENT ROLLOUT TIME (2ND BYTE)
          STM    PTEF+4 
          ZJN    PTE4        IF 2ND BYTE OF ROLLOUT TIME EXHAUSTED
          LDC    PTEF+10000*1 
          UJN    PTE8        GO ISSUE *UTEM* TO UPDATE EJT ENTRY
  
 PTE4     LCN    0           RESET 2ND BYTE OF ROLLOUT TIME 
          STM    PTEF+4 
 PTE5     LDD    AA+2 
          LPN    77 
          SHN    14 
          LMD    AA+3 
          SHN    10-21
          STM    PTED        SET/CLEAR EVENT FLAG 
          ZJN    PTE2        IF ROLLOUT TIME EXPIRED
          SBN    1           DECREMENT COUNTER
          STM    PTEE+4 
          LDC    ** 
 PTEC     EQU    *-1         (EXTENDED TIMED/ROLLOUT FLAG)
          NJN    PTE6        IF NOT EXTENDED TIMED ROLLOUT
          LDC    PTEE+10000*2 
          UJN    PTE8        GO ISSUE *UTEM* TO UPDATE EJT ENTRY
  
 PTE6     LDD    AA+3        CHECK FOR EVENT
          LPC    777
          STD    AA+3 
          ADD    AA+4 
          NJN    PTE9        IF EVENT EXISTS
  
*         EVENT EXISTS BUT HAS NOT BEEN POSTED YET AND ROLLOUT TIME HAS 
*         NOT EXPIRED, OR NO EVENT EXISTS AND ROLLOUT TIME HAS NOT
*         EXPIRED.  DECREMENT ROLLOUT TIME VIA *UTEM*.
  
 PTE7     LDC    PTEE+10000*1 
  
*         VERIFY AND UPDATE *SCHE* WORD.
  
 PTE8     STM    PTEG        PARAMETER ADDRESS
          SHN    -14
          LPN    3
          STD    T1          SAVE WORD COUNT
          LDD    MA          MOVE PARAMETER WORDS 
          CWM    **,T1
 PTEG     EQU    *-1
          LDD    MA 
          CRM    PTEI,T1
          AOD    T1          INCREMENT WORD COUNT 
          SHN    14 
          ADK    PTEH        PARAMETER WORDS
          RJM    IUT         ISSUE *UTEM* FUNCTION
          LJM    PTEX        CONTINUE EJT SCAN
  
*         SCAN *TEVT* TABLE TO SEE IF THIS JOB-S EVENT HAS BEEN POSTED. 
  
 PTE9     LDD    T7          INITIALIZE INDEX 
          SHN    1
          STD    T2 
 PTE10    LCN    2           DECREMENT INDEX
          RAD    T2 
          MJN    PTE7        IF *TEVT* SCAN COMPLETE, EVENT NOT FOUND 
          LDM    TEVT,T2
          LMD    AA+3 
          NJN    PTE10       IF NO MATCH
          LDM    TEVT+1,T2
          LMD    AA+4 
          NJN    PTE10       IF NO MATCH
  
*         EVENT WAS FOUND IN *TEVT* OR ROLLOUT TIME HAS EXPIRED.
*         CHANGE JOB STATUS TO *ROJS* IF JOB STATUS WAS *TOJS* OR 
*         *ERJS* OR TO *PRJS* IF JOB STATUS WAS *PWJS*.  SET PRIORITY 
*         TO UPPER BOUND OF SERVICE CLASS.
  
 PTE11    RJM    SRS         SET ROLLOUT STATUS AND PRIORITY
          ZJN    PTE12       IF FUNCTION ACCEPTED 
          LDC    ** 
 PTED     EQU    *-1         (*EATM* REISSUE FLAG)
          ZJN    PTE12       IF ROLLOUT TIME EXPIRED OR FORCED ROLLIN 
          LDN    0           SET *EATM* SUBFUNCTION 
          STD    CM+1 
          LDD    AA+3        STORE EVENT IN *EATM* CALL 
          STD    CM+3 
          LDD    AA+4 
          STD    CM+4 
          MONITOR  EATM      REISSUE EVENT
 PTE12    LJM    PTEX        CONTINUE EJT SCAN
  
  
*         *UTEM* PARAMETERS FOR DECREMENTING ROLLOUT TIME.
  
 PTEE     VFD    1/0,5/SCHE,6/9D
          VFD    6/21D,6/0
          CON    0
          CON    0
          CON    0
  
 PTEF     VFD    1/0,5/SCHE,6/12D 
          VFD    6/0,6/0
          CON    0
          CON    0
          CON    0
  
*         *UTEM* PARAMETERS FOR VERIFY AND DECREMENT ROLLOUT TIME.
  
 PTEH     VFD    1/1,5/JSNE,6/5 
          VFD    6/1,6/0
          CON    0
          CON    0
          CON    TOJS 
  
 PTEI     BSS    5*2         UPDATE PARAMETER WORDS 
 TJST     SPACE  4,15 
**        TJST - TABLE OF JOB STATE ATTRIBUTES. 
*         ENTRY = 1 WORD. 
*         INDEXED BY JOB STATUS.
* 
*T        1/ SS, 1/ ES, 1/ FR, 1/ TE, 1/ PI 
*         SS     SET IF SCHEDULABLE JOB STATE.
*         ES     SET IF SCHEDULABLE JOB STATE WHEN ERROR FLAG IS SET. 
*         FR     SET IF JOB IN THIS STATE MAY BE FORCED ROLLED IN.
*         TE     SET IF TIMED/EVENT TYPE JOB STATE. 
*         PI     SET IF PRE-INITIAL TYPE JOB STATE. 
* 
*         NOTE - ANY CHANGES TO THIS TABLE MUST BE COUPLED WITH 
*                CORRESPONDING CHANGES TO THE *TJST* TABLE IN *1SJ*.
  
 TJST     JOBSTAT 
          JOBSTAT PRJS,SS,ES,FR,,PI 
          JOBSTAT EXJS
          JOBSTAT ROJS,SS,ES,FR 
          JOBSTAT SIJS,SS,ES,FR 
          JOBSTAT SOJS,,ES,FR 
          JOBSTAT TOJS,,ES,,TE
          JOBSTAT IOJS
          JOBSTAT DOJS
          JOBSTAT SUJS,,ES
          JOBSTAT PCJS,SS,ES,FR 
          JOBSTAT ERJS,,,FR,TE
          JOBSTAT NVJS
          JOBSTAT PWJS,,,,TE,PI 
          JOBSTAT SWJS,,ES
  
          INDEX   MXJS       TERMINATE TABLE
 RTE      SPACE  4,10 
**        RTE - READ TABLE OF EVENTS. 
* 
*         EXIT   EVENTS READ INTO *TEVT* TWO BYTES PER EVENT. 
*                EVENT COUNT IN EVT TABLE CLEARED.
*                (T7) = NUMBER OF EVENTS. 
* 
*         USES   AA - AA+4, CM - CM+4, T1 - T7. 
* 
*         MACROS MONITOR. 
  
  
 RTE      SUBR               ENTRY/EXIT 
          LDK    ZERL 
          CRD    AA 
          ADK    EVTP-ZERL   GET EVENT TABLE POINTER
          CRD    T1 
          CRD    T1+2 
          LDN    /CPS/SEIS   SET EVENT TABLE INTERLOCK
          STD    CM+1 
          MONITOR  EATM 
          LDD    CM+1        SAVE NUMBER OF EVENTS
          STD    T7 
          ZJN    RTE2        IF NO EVENTS 
          SOD    CM+1 
 RTE1     LDD    T1          GET TABLE ADDRESS
          SHN    14 
          LMD    T1+1 
          CRM    TEVT,ON
 RTEA     EQU    *-1         (ADDRESS INCREMENTED IN LOOP)
          STD    T1+1 
          SHN    -14
          STD    T1 
          LDN    4           INCREMENT *TEVT* ADDRESS 
          RAM    RTEA 
          LCN    2
          RAD    CM+1 
          PJN    RTE1        IF NOT END OF EVENTS 
 RTE2     LDD    T1+2        CLEAR COUNT AND INTERLOCK
          SHN    14 
          LMD    T1+2+1 
          CWD    AA 
          LJM    RTEX        RETURN 
 SME      SPACE  4,15 
**        SME - SCAN MST ERROR COUNTS.
* 
*         ENTRY  (T8) = EQUIPMENT EST ORDINAL TO CHECK. 
*                (EJ - EJ+4) = EQDE WORD OF EST ENTRY.
* 
*         EXIT   IF A RECOVERED OR UNRECOVERED ERROR COUNT IN THE MST 
*                IS GREATER THAN OR EQUAL TO THE APPROPRIATE DEVICE 
*                TYPE THRESHOLD, AN *ERRLOG ALERT* SYSTEM EVENT AND 
*                A CORRESPONDING ERRLOG MESSAGE ARE ISSUED. 
* 
*         USES   BB - BB+4, CM - CM+4.
* 
*         CALLS  C2D, DFM.
* 
*         MACROS MONITOR. 
  
  
 SME      SUBR               ENTRY/EXIT 
          LDD    EJ+4        READ MST WORD
          SHN    3
          ADN    THLL 
          CRD    BB 
          ADN    CTLL-THLL
          CRD    CM 
          LDD    CM+4 
          SHN    0-13 
          NJN    SME1        IF CONDITION ALREADY PROCESSED 
          LDD    CM+4        CHECK UNRECOVERED ERROR COUNT
          SBD    BB+4 
          MJN    SME1        IF COUNT DOES NOT EQUAL/EXCEED THRESHOLD 
          LDC    2R U 
          STM    SMEA+3 
          LDC    2RNR 
          STM    SMEA+4 
          LDN    11D
          UJN    SME3        PROCESS THRESHOLD ERROR
  
 SME1     LDD    CM+3 
          SHN    0-13 
 SME2     NJN    SMEX        IF CONDITION ALREADY PROCESSED 
          LDD    CM+3        CHECK RECOVERED ERROR COUNT
          SBD    BB+3 
          MJN    SMEX        IF COUNT DOES NOT EQUAL/EXCEED THRESHOLD 
          LDN    23D
 SME3     SHN    6           SET BIT POSITION 
          STM    SMEB+1      SAVE BIT POSITION
          LMC    11D*100
          ZJN    SME4        IF UNRECOVERED COUNT EXCEEDED
          LDC    2R R 
          STM    SMEA+4 
          ADN    1R -1RR
          STM    SMEA+3 
 SME4     LDN    ZERL 
          CRD    CM 
          LDN    ELAE 
          STD    CM+4 
          MONITOR  EATM 
          LDD    CM+1 
          NJN    SME2        IF EVENT NOT ENTERED 
          LDD    T8          SET EST ORDINAL IN MESSAGE 
          SHN    -3 
          RJM    C2D         CONVERT TO DISPLAY CODE
          STM    SMEA+1 
          LDD    T8          SET EST ORDINAL IN MESSAGE 
          LPN    7
          SHN    6
          ADC    2R0, 
          STM    SMEA+2 
          LDD    EJ+3        SET EQUIPMENT TYPE IN MESSAGE
          LPC    3777 
          STM    SMEA 
          LDC    SMEA+ERLN   ISSUE ERRLOG MESSAGE 
          RJM    DFM
          LDN    ZERL        SET *1SJ* PROCESSED BIT
          CRD    CM 
          LDN    1           SET NUMBER OF REQUESTS 
          STD    CM+1 
          LDD    EJ+4        SET MST ADDRESS
          SHN    3
          STD    CM+4 
          SHN    -14
          STD    CM+3 
          LDD    MA 
          CWM    SMEB,ON
          MONITOR  UTEM 
          LJM    SMEX        RETURN 
  
  
 SMEA     DATA   C*XXYYY, UNRECOVERED ERROR LIMIT EXCEEDED.*
 SMEB     VFD    1/0,5/CTLL,6/1,6/11D,42/1
 SRS      SPACE  4,10 
**        SRS - SET ROLLOUT STATUS. 
* 
*         ENTRY  (SC) = SERVICE CLASS.
*                (SRSA+4) = JOB STATUS OF SELECTED ENTRY. 
* 
*         EXIT   (A) = 0, IF *UTEM* CALL COMPLETED. 
*                      .NE. 0, IF *UTEM* ABORTED. 
*         USES   T1.
* 
*         CALLS  CET, IUT.
  
  
 SRS      SUBR               ENTRY/EXIT 
          LDM    TEPB+2*MXJC,SC  SET UP *CET* PARAMETERS
          STD    T1 
          LDD    SC 
          SHN    14 
          LMN    EXQT 
          RJM    CET         CALCULATE ENTRY TIME 
          LDD    T1          PLACE ENTRY TIME IN *UTEM* PARAMETER BLOCK 
          STM    SRSA+2*5+3 
          LDD    T2 
          STM    SRSA+2*5+4 
          LDD    EJ+4        CHECK FOR *PWJS* STATUS
          LPN    76 
          LMK    PWJS*2 
          ZJN    SRS1        IF SHOULD CHANGE *PWJS* TO *PRJS*
          LDK    ROJS&PRJS   SET *ROJS* STATUS FOR *ERJS* OR *TOJS* 
 SRS1     LMK    PRJS 
          STM    SRSA+1*5+4 
          LDC    SRSA+SRSAL*10000 
          RJM    IUT         ISSUE *UTEM* 
          LJM    SRSX        RETURN 
  
  
*         *UTEM* PARAMETERS FOR CHANGING JOB STATUS AND SETTING 
*         SCHEDULING PRIORITY TO UPPER BOUND. 
  
 SRSA     VFD    1/1,5/JSNE,6/6    VALIDATE JOB STATUS UNCHANGED
          VFD    6/0,6/0
          CON    0
          CON    0
          CON    0
  
          VFD    1/0,5/JSNE,6/5    SET JOB STATUS 
          VFD    6/1,6/0
          CON    0
          CON    0
          CON    ROJS 
  
          VFD    1/0,5/SCHE,6/30D  SET SCHEDULING PRIORITY
          VFD    6/0,6/0
          CON    0
          CON    0
          CON    0
  
 SRSAL    EQU    */5-SRSA/5  BLOCK LENGTH 
 SSA      SPACE  4,10 
**        SSA - SET STATISTICAL AREA ADDRESS. 
* 
*         EXIT   (A) = ADDRESS OF PERIODIC PROCESSOR STATISTICS AREA. 
* 
*         USES   CM - CM+4. 
  
  
 SSA      SUBR               ENTRY/EXIT 
          LDK    SDAP        READ STATISTICAL DATA AREA POINTER 
          CRD    CM 
          LDD    CM 
          SHN    14 
          LMD    CM+1 
          ADK    PF0S 
          UJN    SSAX        EXIT 
          SPACE  4,10 
*         COMMON DECKS. 
  
  
*CALL     COMPAST 
 CET$     SET    1           ASSEMBLE ROUTINE *CET* OF *COMPCPE*
*CALL     COMPCPE 
 JCB$     EQU    1           SET *JCB* ACCESS 
 IFP$     EQU    1           GENERATE *IFP* REMOTE CODE 
*CALL     COMPGFP 
*CALL     COMPC2D 
*CALL     COMPRJC 
 SLBS     EQU    /CPS/SLBS
*CALL     COMPTLB 
*CALL     COMPSEI 
 TABLES   SPACE  4,10 
          USE    TABLES 
  
**        TEVT - POSTED EVENTS. 
*         ENTRY = 2 WORDS.
* 
*T        24/ EV
*         EV     POSTED EVENT OBTAINED FROM EVT TABLE.
  
  
 TEVT     EQU    *
 TEVTE    EQU    2           ENTRY LENGTH 
 TABLES   SPACE  4,10 
**        TOVF - ACCUMULATOR OVERFLOW FLAGS.
*         ENTRY = 1 WORD. 
*         INDEXED BY CONTROL POINT NUMBER.
* 
*T        12/ OF
*         OF     OVERFLOW FLAGS FROM *SRUW*.
  
  
 TOVF     EQU    TEVT+TEVTE*MEVC
 TOVFE    EQU    1           ENTRY LENGTH 
          SPACE  4,10 
 P0AU     EQU    TOVF+/DSL/NCPS*TOVFE  *0AU* PARAMETER BLOCK
 OVL0     EQU    P0AU+12+5   *0AU* ORIGIN 
          ERRPL  *+ZAUL-EPFW  CODE OVERLAYS ERROR PROCESSING BUFFER 
          TITLE  INITIALIZATION.
 PRS      SPACE  4,10 
**        PRS - PRESET. 
* 
*         USES   CF, NC, PN, T1, CM - CM+4, AA - AA+4, BB - BB+4, 
*                EJ - EJ+4, TM - TM+4.
* 
*         CALLS  IFP. 
* 
*         MACROS ISTORE, SFA. 
  
  
 PRS      SUBR               ENTRY/EXIT 
          LDK    PCPP        SET FWA OF PCPA-S
          CRD    CM 
          LDD    CM+3 
          SHN    14 
          LMD    CM+4 
          SBK    200B 
          STM    CCAA+1 
          SHN    -14
          LMC    ADCI 
          STM    CCAA 
          LDD    CM+2        SET NUMBER OF MCT ENTRIES
          ERRNZ  MCTP-PCPP   CODE DEPENDS ON VALUE
          STD    PN 
          RJM    IFP         INITIALIZE TABLE ACCESS
          LDN    SSTL        GET USER ECS FLAG
          CRD    AA 
          ADK    EJTP-SSTL   PRESET EJT FWA 
          CRD    CM 
          ADK    RTCL-EJTP   READ REAL TIME CLOCK 
          CRD    TM 
          ADK    INWL-RTCL   READ SCHEDULER CONTROL FLAGS 
          CRD    BB 
          LDD    BB+3 
          STD    CF          SAVE SCHEDULER CONTROL FLAGS 
          LPN    2
          ZJN    PRS0        IF *AUTO* HAS BEEN ENTERED 
          LDC    TCPP+C1CK+1 DISABLE ALL PP CALLS BUT *1CK* 
          STM    CPPC 
 PRS0     LDD    CM+1        SET EJT FWA
          STM    EJAA 
          STM    SEJB 
          LDD    CM 
          RAM    EJAA-1 
          STM    SEJB-1 
          LDD    CM+2        SET START OF EJT SCAN
          STM    SEJA 
          LDD    CP          SET NUMBER OF CONTROL POINTS 
          SHN    -7 
          STD    NC 
          LDD    AA 
          SHN    21-5 
          MJN    PRS1        IF USER ECS IS DISABLED
          ISTORE PCAA,(UJN PCA13)  DISABLE USER ECS CHECK 
  
*         BUILD *TEPB*, *TJAM* TABLES.
  
 PRS1     LDN    MXJC-1      INITIALIZE INDEX 
          STD    T1 
 PRS2     SFA    JCB         SET JCB ADDRESS
          ADN    EXQT        READ *EXQT* WORD OF JCB
          CRD    AA 
          ADN    MCMT-EXQT   READ *MCMT* WORD OF JCB
          CRD    BB 
          ADN    MECT-MCMT   READ *MECT* WORD OF JCB
          CRD    EJ 
          LDD    AA 
          STM    TEPB,T1
          LDD    AA+1 
          STM    TEPB+1*MXJC,T1 
          LDD    AA+2 
          STM    TEPB+2*MXJC,T1 
          LDD    BB 
          STM    TEPB+3*MXJC,T1 
          LDD    BB+2 
          STM    TJAM,T1
          LDD    EJ+2 
          STM    TJAM+1*MXJC,T1 
          SOD    T1          DECREMENT JCB INDEX
          PJN    PRS2        IF NOT ALL JCB-S HAVE BEEN PROCESSED 
          UJP    PRSX        RETURN 
  
  
 IFP      HERE               ASSEMBLE *COMPGFP* REMOTE CODE 
          SPACE  4,10 
*         OVERFLOW CHECKS.
  
          OVERFLOW  PPFW,EPFW 
 TABLES   SPACE  4,10 
**        TEPB - EJT/CP SCHEDULING PARAMETERS.
*         ENTRY = 4 WORDS.
*         INDEXED BY SERVICE CLASS. 
* 
*T        12/  IL,12/  LB,12/  UB,12/  CS 
*         IL     LOWER BOUND SCHEDULING PRIORITY USED FOR INITIAL CM
*                SLICE. 
*         LB     LOWER BOUND SCHEDULING PRIORITY OF EXECUTING JOBS. 
*         UB     UPPER BOUND SCHEDULING PRIORITY OF EXECUTING JOBS. 
*         CS     CONTROL POINT SLICE PRIORITY.
  
  
 TEPB     EQU    *
 TEPBE    EQU    4           ENTRY LENGTH 
 TABLES   SPACE  4,10 
**        TJAM - SERVICE CLASS RESOURCE CONSTRAINTS.
*         ENTRY = 2 WORDS.
*         INDEXED BY SERVICE CLASS. 
* 
*T        12/ MCJ,12/ MEJ 
*         MCJ    MAXIMUM CM FL/100B PER JOB OF SERVICE CLASS. 
*         MEJ    MAXIMUM ECS FL/100B PER JOB OF SERVICE CLASS.
  
  
 TJAM     EQU    TEPB+TEPBE*MXJC
 TJAME    EQU    2           ENTRY LENGTH 
          SPACE  4,10 
          ERRPL  TJAM+TJAME*MXJC-EPFW  *TJAM* OVERFLOWS PP
  
          QUAL
          TTL    1PP - PERIODIC FUNCTION PROCESSOR. 
          SPACE  4,10 
          END 
