cdc:nos2.source:opl871:1sj
Table of Contents
1SJ
Table Of Contents
- [00008] 1SJ - JOB SCHEDULER.
- [00010] JOB SCHEDULER.
- [00077] MACRO DEFINITIONS.
- [00081] JOBSTAT - DEFINE JOB STATE ATTRIBUTES.
- [00121] SUBSYST - GENERATE SUBSYSTEM TABLE.
- [00147] DIRECT CELL ASSIGNMENTS.
- [00178] TABLES.
- [00181] TDAC - DEVICE ACTIVITY.
- [00192] TTCU - ASSIGNED CM FL.
- [00203] TTUE - ASSIGNED ECS FL.
- [00220] TEPB - EJT/CP SCHEDULING PARAMETERS.
- [00234] TJAM - SERVICE CLASS RESOURCE CONSTRAINTS.
- [00254] TACP - ACTIVE CP-S AND PCP-S.
- [00269] TJEC - JOB ECS FIELD LENGTH.
- [00280] TJCM - JOB CM FIELD LENGTH (INCLUDING NFL).
- [00291] TJPR - JOB SCHEDULING PRIORITY.
- [00302] TJSC - JOB SERVICE CLASS.
- [00313] SCJ - MAIN PROGRAM.
- [00434] SUBROUTINES.
- [00436] ASJ - ASSIGN JOB TO CONTROL POINT.
- [00668] BST - BUILD SCHEDULING TABLES.
- [00943] CCA - COMPUTE CPA/PCPA ADDRESS.
- [00962] CCP - CHECK FOR FIRST OR LAST CONTROL POINT.
- [00977] CFL - COMMIT FIELD LENGTH.
- [01153] DDA - DETERMINE DEVICE ACTIVITY.
- [01186] EJA - CALCULATE EJT ENTRY ADDRESS.
- [01201] INT - INITIALIZE CELLS FOR EJT/CM SCHEDULING.
- [01254] IRR - ISSUE ROLLOUT REQUEST.
- [01280] IUT - ISSUE *UTEM* MONITOR FUNCTION.
- [01335] RST - REQUEST STORAGE.
- [01367] SCP - SELECT CONTROL POINT.
- [01452] SFJ - SEARCH FOR JOB.
- [02000] TEFP - TABLE OF ERROR FLAG PROCESSORS.
- [02037] TJST - TABLE OF JOB STATE ATTRIBUTES.
- [02069] SSA - SET SCHEDULER STATISTICAL AREA ADDRESS.
- [02088] USD - UPDATE STATISTICAL DATA.
- [02163] INITIALIZATION.
- [02165] PRS - PRESET.
- [02299] SSS - SCHEDULE SUBSYSTEM.
- [02531] SCI - SET/CLEAR EJT INTERLOCK.
- [02578] TSCI - SUBSYSTEM CPU PRIORITIES.
- [02610] SIE - SCHEDULE INPUT FILES TO EJT.
- [02672] CEE - CREATE EJT ENTRIES.
- [02859] FLP - FIND LOWEST PRIORITY JOB.
- [02907] IOA - CALCULATE QFT ENTRY ADDRESS.
- [02922] SIQ - SCAN QFT.
- [03157] PRESET.
- [03160] PRS - PRESET *3SB*.
- [03298] SEJ - SCAN EJT.
- [03464] THLD - SCHEDULABLE HOST LID-S.
- [03475] TJCT - JOB COUNTS.
Source Code
- 1SJ.txt
- IDENT 1SJ,SCJ
- PERIPH
- BASE MIXED
- LIST F
- SST
- *COMMENT 1SJ - JOB SCHEDULER.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TITLE 1SJ - JOB SCHEDULER.
- SPACE 4
- *** 1SJ - JOB SCHEDULER.
- * G. R. MANSFIELD. 70/09/24.
- * R. E. TATE. 71/01/25.
- * R. M. DANISCH 81/01/28.
- SPACE 4
- *** *1SJ* IS RESPONSIBLE FOR SCHEDULING JOBS TO AND FROM
- * CENTRAL MEMORY.
- *
- * *1SJ* ALWAYS ATTEMPTS TO SATISFY CM/ECS FL INCREASE
- * REQUESTS OF JOBS ALREADY AT CONTROL POINTS BEFORE SELECTING
- * ROLLED OUT JOBS FOR SCHEDULING. WHEN NO CM/ECS FL INCREASE
- * REQUESTS ARE PRESENT, *1SJ* ATTEMPTS TO SCHEDULE ROLLED
- * OUT JOBS TO CONTROL POINTS. WHETHER OR NOT ANY SUCH
- * SCHEDULING ACTUALLY OCCURS DURING A GIVEN SCHEDULER CYCLE
- * DEPENDS ON MANY FACTORS INCLUDING - AVAILABILITY OF CM AND
- * ECS, AVAILABILITY OF CONTROL POINTS, PRIORITIES OF SCHEDULING
- * CANDIDATES, PRIORITIES OF JOBS PRESENTLY IN CM, AND SERVICE
- * CLASS CONSTRAINTS ON THE ALLOCATION OF MEMORY.
- *
- * IN ADDITION TO IT-S CM/EM SCHEDULING FUNCTION, *1SJ* ALSO
- * PERIODICALLY SCHEDULES INPUT FILES TO THE EJT.
- SPACE 4
- *** CALL.
- *
- *
- *T 18/ *1SJ*,6/ CP,11/ 0,1/ Q,24/
- * CP SYSTEM CONTROL POINT NUMBER.
- * Q = 0 NO QFT SCHEDULING.
- * = 1 PERFORM INPUT FILE SCHEDULING.
- SPACE 4
- ** PROGRAMS CALLED.
- *
- *
- * 1AJ - JOB INITIATION.
- * 1RI - ROLLIN JOB.
- SPACE 4,10
- ** COMMON DECKS.
- *CALL COMPMAC
- QUAL CPS
- *CALL COMSCPS
- QUAL *
- QUAL DSL
- *CALL COMSDSL
- QUAL *
- *CALL COMSDST
- LIST X
- *CALL COMSEJT
- LIST *
- *CALL COMSEVT
- *CALL COMSJIO
- *CALL COMSMSC
- *CALL COMSMSP
- *CALL COMSPIM
- LIST X
- *CALL COMSPRD
- LIST *
- *CALL COMSSCD
- *CALL COMSSCP
- LIST X
- *CALL COMSSSD
- LIST *
- *CALL COMSSSE
- QUAL 1DS
- *CALL COMS1DS
- QUAL *
- TITLE MACRO DEFINITIONS.
- ** MACRO DEFINITIONS.
- ** 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 CHANGES TO THIS MACRO MUST BE ACCOMPANIED BY A
- * CORRESPONDING CHANGE TO THE *JOBSTAT* MACRO DEFINED
- * IN *1PP*.
- PURGMAC JOBSTAT
- MACRO JOBSTAT,NAME,STATUS,SS,ES,FR,TE,PI
- .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
- SUBSYST SPACE 4,10
- ** SUBSYST - GENERATE SUBSYSTEM TABLE.
- *
- * SUBSYST NAME,ID,PR,PP,AUTO,DEF,DCP,CP,PROC,ABT
- *
- * ENTRY *PR* = CPU PRIORITY AT WHICH TO INITIATE THE
- * SUBSYSTEM.
- *
- * TABLE OF SUBSYSTEM CPU PRIORITIES.
- *
- *T 12/ PRIORITY
- PURGMAC SUBSYST
- SUBSYST MACRO NM,ID,PT,PP,AU,DF,DC,CP,PR,AB
- .A IFC NE,$PT$$
- .SUB RMT
- INDEX (MXSI-ID),PT
- .SUB RMT
- .A ENDIF
- SUBSYST ENDM
- SPACE 4,10
- ** CONSTANTS.
- MXPR EQU 7777 MAXIMUM SCHEDULING PRIORITY (INTERNAL)
- 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
- IO EQU 35 QFT ORDINAL (USED ONLY IN *SIE*)
- TE EQU 36 LWA OF LAST *TACP* ENTRY
- AM EQU 37 - 40 AVAILABLE + ROLLING CM (2 CELLS)
- SC EQU 41 SERVICE CLASS
- AE EQU 42 AVAILABLE + ROLLING EM
- TP EQU 43 SCRATCH
- RM EQU 44 - 45 ROLLING CM (2 CELLS)
- RE EQU 46 ROLLING EM
- ES EQU 47 EXCESS ECS OF SERVICE CLASS
- EJ EQU 50 - 54 EJT BUFFER (5 CELLS)
- CS EQU 57 - 60 EXCESS CM OF SERVICE CLASS (2 CELLS)
- SP EQU 61 SERVICE CLASS OF SELECTED JOB
- JP EQU 62 SCHEDULING PRIORITY OF SELECTED JOB
- JC EQU 63 CONTROL POINT NUMBER OF SELECTED JOB
- JM EQU 64 CM FL REQUIRED BY SELECTED JOB
- JE EQU 65 ECS FL REQUIRED BY SELECTED JOB
- NC EQU 66 NUMBER OF CONTROL POINTS
- EP EQU 67 EJT ORDINAL OF SELECTED JOB
- ****
- TITLE TABLES.
- USE TABLES
- TABLES SPACE 4,10
- ** TDAC - DEVICE ACTIVITY.
- * ENTRY = 1 WORD.
- * INDEXED BY EST ORDINAL.
- *
- *T 12/ AC
- * AC ACTIVITY COUNT FROM MST OF DEVICE.
- TDAC BSS 0
- TDACE EQU 1 ENTRY SIZE
- TABLES SPACE 4,10
- ** TTCU - ASSIGNED CM FL.
- * ENTRY = 2 WORDS.
- * INDEXED BY SERVICE CLASS.
- *
- *T 24/ CM
- * CM CM FL ASSIGNED TO JOBS OF SERVICE CLASS.
- TTCU EQU TDAC+ESMX
- TTCUE EQU 2 ENTRY SIZE
- TABLES SPACE 4,10
- ** TTUE - ASSIGNED ECS FL.
- * ENTRY = 1 WORD.
- * INDEXED BY SERVICE CLASS.
- *
- *T 12/ EC
- * EC ECS FL ASSIGNED TO JOBS OF SERVICE CLASS.
- TTUE EQU TTCU+MXJC*TTCUE
- TTUEE EQU 1 ENTRY SIZE
- TABLES SPACE 4
- USE *
- TABLES SPACE 4,10
- * THE FOLLOWING TABLES ARE LOCATED TOWARD THE HIGH END OF PP
- * MEMORY TO FACILITATE *1SJ-S* OVERLAY STRUCTURE.
- TABLES SPACE 4,10
- TABLES SPACE 4,10
- ** TEPB - EJT/CP SCHEDULING PARAMETERS.
- * ENTRY = 4 WORDS.
- * INDEXED BY SERVICE CLASS.
- *
- *T 12/ LB,12/ UB,12/ WF,12/ IP
- * LB LOWER BOUND SCHEDULING PRIORITY OF EXECUTING JOBS.
- * UB UPPER BOUND SCHEDULING PRIORITY OF EXECUTING JOBS.
- * WF WEIGHTING FACTOR.
- * IP INITIAL SCHEDULING PRIORITY OF EXECUTING JOBS.
- TEPBE EQU 4 ENTRY SIZE
- TEPB EQU BFMS-MXJC*TEPBE
- TABLES SPACE 4,10
- ** TJAM - SERVICE CLASS RESOURCE CONSTRAINTS.
- * ENTRY = 6 WORDS.
- * INDEXED BY SERVICE CLASS.
- *
- *T 12/ MJ,12/ MCJ,24/ MCT,12/ MEJ,12/ MET
- * MJ MAXIMUM NUMBER OF JOBS OF SERVICE CLASS ALLOWED IN
- * SYSTEM (ASSIGNED TO EJT ENTRIES).
- * MCJ MAXIMUM CM FL/100B PER JOB OF SERVICE CLASS.
- * MCT MAXIMUM TOTAL CM FL/100B FOR ALL JOBS OF SERVICE
- * CLASS.
- * MEJ MAXIMUM ECS FL/100B PER JOB OF SERVICE CLASS.
- * MET MAXIMUM TOTAL ECS FL/100B FOR ALL JOBS OF SERVICE
- * CLASS.
- TJAME EQU 6 ENTRY SIZE
- TJAM EQU TEPB-MXJC*TJAME
- TABLES SPACE 4,10
- * THE FOLLOWING TABLES ARE OVERLAYED BY *3SA* AND *3SB*.
- TABLES SPACE 4,10
- ** TACP - ACTIVE CP-S AND PCP-S.
- * ENTRY = 1 WORD.
- * ENTRIES ARE ORDERED BY DESCENDING SCHEDULING PRIORITY. A ZERO
- * ENTRY TERMINATES THE TABLE AND A ZERO WORD MUST PRECEDE THE
- * TABLE.
- *
- *T 1/ P,1/ R,3/,7/ CP
- * P ROLLOUT IN PROGRESS.
- * R REQUEST ROLLOUT.
- * CP CP/PCP NUMBER.
- TACPE EQU 1 ENTRY SIZE
- TACP EQU TJAM-/DSL/NCPS-1-/DSL/NPPS
- TABLES SPACE 4,10
- ** TJEC - JOB ECS FIELD LENGTH.
- * ENTRY = 1 WORD.
- * INDEXED BY CP/PCP NUMBER.
- *
- *T 12/ EC
- * EC EM FL ASSIGNED TO CP/PCP.
- TJECE EQU 1 ENTRY SIZE
- TJEC EQU TACP-/DSL/NCPS-2-/DSL/NPPS
- TABLES SPACE 4,10
- ** TJCM - JOB CM FIELD LENGTH (INCLUDING NFL).
- * ENTRY = 1 WORD.
- * INDEXED BY CP/PCP NUMBER.
- *
- *T 12/ FL
- * FL CM FL (INCLUDING NFL) ASSIGNED TO CP/PCP.
- TJCME EQU 1 ENTRY SIZE
- TJCM EQU TJEC-/DSL/NCPS-1-/DSL/NPPS
- TABLES SPACE 4,10
- ** TJPR - JOB SCHEDULING PRIORITY.
- * ENTRY = 1 WORD.
- * INDEXED BY CP/PCP NUMBER.
- *
- *T 12/ PR
- * PR SCHEDULING PRIORITY OF JOB.
- TJPRE EQU 1 ENTRY SIZE
- TJPR EQU TJCM-/DSL/NCPS-1-/DSL/NPPS
- TABLES SPACE 4,10
- ** TJSC - JOB SERVICE CLASS.
- * ENTRY = 1 WORD.
- * INDEXED BY CP/PCP NUMBER.
- *
- *T 12/ SC
- * SC SERVICE CLASS OF JOB.
- TJSCE EQU 1 ENTRY SIZE
- TJSC EQU TJPR-/DSL/NCPS-1-/DSL/NPPS
- SCJ TITLE MAIN PROGRAM.
- ** SCJ - MAIN PROGRAM.
- ORG PPFW
- SCJ BSS 0
- RJM PRS PRESET
- LDN **
- * LDN 1 (INPUT FILE SCHEDULING REQUIRED)
- SCJA EQU *-1 (PP INPUT REGISTER FLAGS BYTE)
- ZJN SCJ1 IF INPUT FILE SCHEDULING NOT REQUIRED
- LDN **
- SCJB EQU *-1 (SCHEDULER CONTROL FLAGS FROM *INWL*)
- LPN 6
- NJN SCJ1 IF SCHEDULING DISABLED OR LIMITS CHANGING
- EXECUTE 3SB PERFORM INPUT FILE SCHEDULING
- * INITIALIZE/RESTORE CELLS FOR THE EJT/CM SCHEDULING FUNCTION.
- SCJ1 RJM INT INITIALIZE CELLS FOR EJT/CM SCHEDULING
- * BUILD THE FOLLOWING TABLES - *TACP*, *TJCM*, *TJEC*, *TJSC*,
- * *TJPR*, *TTCU*, *TTUE*. CALCULATE AVAILABLE AND ROLLING CM.
- RJM BST BUILD CP AND SERVICE CLASS TABLES
- * OBTAIN AVAILABLE CM AND EM FROM *ACML*.
- LDK ACML
- CRD AM
- ERRNZ AE-AM-3 CODE DEPENDS ON VALUE
- * CALCULATE AVAILABLE + ROLLING CM AND ECS.
- LDD RM+1
- RAD AM+1
- SHN -14
- ADD RM
- RAD AM
- LDD RE
- RAD AE
- * DETERMINE IF ANY JOB AT A CP OR PCP IS REQUESTING A CM
- * OR ECS FL INCREASE. IF SO, IT MUST BE ADDRESSED BEFORE
- * SCHEDULING ANOTHER JOB TO A CONTROL POINT.
- LDD JC
- ZJN SCJ4 IF NO JOB IS REQUESTING AN FL INCREASE
- * THE FOLLOWING CODE IS NECESSARY TO PREVENT A DEADLOCK IN THE
- * CASE OF SEVERAL OUTSTANDING CM FL INCREASE REQUESTS FOR JOBS
- * OF EQUAL PRIORITY, BUT INSUFFICIENT AVAILABLE CM TO SATISFY
- * ANY OF THE REQUESTS.
- LDN PSNI
- STM CFLA
- LDM SCJD
- ZJN SCJ2 IF ROLLOUT NOT INHIBITED
- LDK PSNI ALLOW ROLLOUT OF HIGHER PRIORITY JOBS
- STM CFLC
- SCJ2 RJM CFL COMMIT FIELD LENGTH
- ZJN SCJ3 IF SUFFICIENT FL
- MJN SCJ3 IF ROLLOUT REQUEST REJECTED
- STD CM+1 SET CM/EM OPTION
- LDC 0
- SCJD EQU *-1 (ROLLOUT INHIBITED FLAG)
- NJN SCJ3 IF ROLLOUT INHIBITED
- LDD JC SET CP/PCP NUMBER
- STD CM+2
- MONITOR SFLM REJECT FL INCREASE
- LJM SCJ1 RECYCLE
- SCJ3 LJM SCJ11 EXIT
- SCJ4 LDM SCJB
- LPN 2
- NJN SCJ3 IF EJT SCHEDULING DISABLED
- RJM DDA BUILD *TDAC* TABLE
- * SCAN EJT LOOKING FOR THE BEST SCHEDULABLE JOB. IF THE
- * SELECTED JOB IS A SUBSYSTEM, OVERLAY *3SA* WILL BE CALLED.
- RJM SFJ SEARCH FOR SCHEDULING CANDIDATE
- LDD EP
- ZJN SCJ7 IF NO SCHEDULABLE JOBS FOUND
- STD EO SET *EO* FOR FUTURE *EJA* CALLS
- LDD SP
- LMN DSSC
- ZJN SCJ5 IF DEADSTART SEQUENCING JOB WAS SELECTED
- LDM SCJB
- LPN 10
- NJN SCJ8 IF DEADSTART SEQUENCING JOB NOT COMPLETE
- LDD SP
- LMN SSSC
- NJN SCJ6 IF SELECTED JOB IS NOT A SUBSYSTEM
- SCJ5 EXECUTE 3SA
- NJN SCJ10 IF SUBSYSTEM NOT SCHEDULED
- UJN SCJ12 RESTART *1SJ*
- SCJ6 RJM SCP SELECT CONTROL POINT
- SCJ7 ZJN SCJ10 IF NO CP AVAILABLE
- MJN SCJ9 IF PCP REJECT
- RJM CFL COMMIT FIELD LENGTH
- SCJ8 NJN SCJ10 IF INSUFFICIENT FL
- RJM ASJ ASSIGN JOB TO CONTROL POINT
- RJM USD UPDATE STATISTICAL DATA
- LDC 0
- SCJC EQU *-1 (RECYCLE FLAG)
- ZJN SCJ11 IF RECYCLE NOT REQUESTED
- SCJ9 LJM SCJ1 RECYCLE ON THE EJT SCAN
- SCJ10 LDN 1 SET JOB NOT SCHEDULED
- RJM USD UPDATE STATISTICAL DATA
- SCJ11 MONITOR DPPM DROP PP
- LDN JSCL CLEAR SCHEDULER ACTIVE FLAG
- CRD CM
- LDC -4000
- RAD CM
- LDN JSCL
- CWD CM
- SCJ12 LJM PPR EXIT TO IDLE LOOP
- TITLE SUBROUTINES.
- ASJ SPACE 4,10
- ** ASJ - ASSIGN JOB TO CONTROL POINT.
- *
- * REQUEST CM/ECS FL; PERFORM MINIMAL CPA INITIALIZATION; STORE
- * PRIORITY IN EJT; CALL *1AJ* IF JOB STATUS IS *PRJS*,
- * OTHERWISE CALL *1RI*.
- *
- * ENTRY (JM) = CM FL TO BE ASSIGNED TO JOB.
- * (JE) = ECS FL TO BE ASSIGNED TO JOB.
- * (EO) = EJT ORDINAL OF SELECTED JOB.
- * (JC) = CONTROL POINT NUMBER FOR JOB ASSIGNMENT.
- * (SP) = SERVICE CLASS OF SELECTED JOB.
- * (TM - TM+1) = SECONDS PORTION OF REAL TIME CLOCK.
- * (NC) = SYSTEM CONTROL POINT NUMBER.
- *
- * EXIT (A) = 0 IF JOB WAS SCHEDULED TO THE CONTROL POINT.
- * .NE. 0 IF SCHEDULING ATTEMPT FAILED.
- *
- * USES JE, JM, AA - AA+4, BB - BB+4, CM - CM+4, EJ - EJ+4,
- * T1 - T5, T6, T7.
- *
- * CALLS AST, CPR, EJA, RJC, RST.
- *
- * MACROS MONITOR.
- ASJ SUBR ENTRY/EXIT
- LDD JC
- LMC /CPS/RCPS+/CPS/ENRS SET *CCAM* OPTIONS
- STD CM+1
- LDD EO SET EJT ORDINAL FOR *CCAM*
- STD CM+2
- MONITOR CCAM
- LDD CM+1
- NJN ASJX IF *CCAM* FAILED
- * REQUEST CM.
- RJM EJA CALCULATE EJT ENTRY ADDRESS
- ADK JSNE
- CRD EJ
- ADK SCHE-JSNE
- CRD AA
- ADK SCLE-SCHE
- CRD BB
- LDC **
- ASJA EQU *-1 (ORIGINAL JOB STATUS)
- LMD EJ+4
- LPC 7676
- NJN ASJ3 IF JOB/CONNECTION/SCP STATUS CHANGED
- LDD JM
- NJN ASJ2.1 IF CM FL ALREADY SET (NOT PCP JOB)
- LDD BB+3 SET EM AMOUNT
- STD JE
- LDD BB+4 SET CM AMOUNT
- STD JM
- ASJ2.1 RJM RST REQUEST CM STORAGE
- ZJN ASJ5 IF FUNCTION ACCEPTED
- ASJ3 LDN /CPS/CCPS RELEASE CP, CLEAR JOB ADVANCE
- STD CM+1
- MONITOR JACM
- LDD NC CHANGE ASSIGNMENT TO SYSTEM CP
- STD CM+1
- MONITOR CCAM
- LDN 1 SET JOB NOT SCHEDULED
- UJP ASJX TERMINATE SCHEDULING ATTEMPT
- * REQUEST ECS.
- ASJ5 LDD JE
- ZJN ASJ6 IF NO ECS REQUESTED
- LMC 10000
- RJM RST REQUEST EM STORAGE
- ZJN ASJ6 IF FUNCTION ACCEPTED
- ASJ5.1 LDN 0 RELEASE CM FL
- RJM RST
- LDC 10000 RELEASE EM FL
- RJM RST
- UJP ASJ3 TERMINATE SCHEDULING ATTEMPT
- ASJ6 LDK LOSL SAVE EJT ORDINAL OF LAST JOB SCHEDULED
- CRD CM
- LDD EO
- STD CM+4
- LDK LOSL
- CWD CM
- LDN ZERL CLEAR *TSCW* IMAGE
- CRD T1
- LDD SP
- RJM RJC CALCULATE JCB ADDRESS
- ZJN ASJ6.1 IF NO JCB FOR SERVICE CLASS
- ADN SVJT GET CP/CM TIME SLICE
- CRD BB
- ADN CSJT-SVJT GET SERVICE CLASS CPU PRIORITY
- CRD CM
- LDD BB+1 SET CONTROL POINT TIME SLICE
- STD T1+4
- LDD BB+2 SET CM TIME SLICE
- STD T1+1
- LDD CM SAVE SERVICE CLASS CPU PRIORITY
- ASJ6.1 STD T6
- LDN ZERL
- CRD BB CLEAR *CWQW* IMAGE
- CRD CM CLEAR *JCIW* IMAGE
- LDC 2000+LSCS*10-10 SET DEFAULT CPU PRIORITY
- STD BB
- LDC 6000 PRESET CPU SCHEDULING FLAGS FOR *1AJ/3AA*
- STD BB+1
- LDC SSSC*JCBE*10B SET PARAMETERS INDEX FOR NO JCB DEFINED
- STD BB+2
- LDD T6
- ZJN ASJ8 IF NO JCB FOR SERVICE CLASS
- LDD T0 SET CPU SCHEDULING PARAMETERS INDEX
- SHN 3
- STD BB+2
- LDD SP
- LMN SSSC
- NJN ASJ7 IF NOT A SUBSYSTEM
- LDM SISS
- STD CM+2 SET SUBSYSTEM ID
- SBK LSSI+1
- MJN ASJ7 IF PSEUDO SUBSYSTEM
- LDC MXSI CALCULATE SUBSYSTEM INDEX
- SBM SISS
- STD T7
- LDM /3SA/TSCI,T7 SET SUBSYSTEM INITIAL CPU PRIORITY
- ZJN ASJ7 IF CPU PRIORITY NOT SPECIFIED
- STD T6
- LDD TH SET CPU PRIORITY NOT FROM SERVICE CLASS
- RAD BB+1
- ASJ7 LDD T6 SET CPU PRIORITY IN *CWQW* IMAGE
- SHN 3
- ADC 2000
- STD BB
- LDM TEPB+1*MXJC,SP SAVE PRIORITY IN EJT DATA BLOCK
- ASJ8 STM ASJC
- LDD CP
- CWD AA SAVE EJT SCHEDULING FIELD FOR *1RI*
- ADN CWQW
- CWD BB SET CPU PRIORITY
- ADN JCIW-CWQW
- CWD CM SET SUBSYSTEM ID
- ADK TSCW-JCIW
- CWD T1
- LDC **
- ASJB EQU *-1 (EJT ORDINAL IF ONLY NFL WILL BE ROLLED)
- LMD EO
- NJN ASJ10 IF NO CHANGE NEEDED TO CM FL IN EJT ENTRY
- STD JM TELL *1RI* ONLY NFL NEEDED
- * UPDATE EJT ENTRY AS FOLLOWS -
- * SET EXECUTION SCHEDULING PRIORITY.
- * SET CONTROL POINT NUMBER.
- * SET ROLLIN CM FL.
- ASJ10 RJM EJA GET EJT ENTRY ADDRESS
- ADK SCHE
- CRD AA
- ADK SCLE-SCHE
- CRD BB
- LDD JM SET CM FL
- STD BB+4
- LDD EJ+4 SAVE JOB STATUS
- LPN 76
- SHN -1
- STD T3
- LMK PCJS
- NJN ASJ10.1 IF NOT PCP JOB
- LDD AA+3 SET ENTRY TIME FOR *CPR*
- STD T1
- LDD AA+4
- STD T2
- LDD SP
- SHN 14
- LMK EXQT
- RJM CPR COMPUTE SCHEDULING PRIORITY
- UJN ASJ10.2 STORE PRIORITY IN EJT
- ASJ10.1 LDC ** SET SCHEDULING PRIORITY
- ASJC EQU *-1
- ASJ10.2 STD AA+4
- LDD JC SET CP NUMBER
- STD AA+3
- RJM EJA UPDATE EJT ENTRY
- ADK SCHE
- CWD AA
- ADK SCLE-SCHE
- CWD BB
- LDN ZERL CLEAR PP INPUT REGISTER IMAGE
- CRD AA
- LDD EJ+4
- LDM TJST,T3
- SHN 21-7
- MJN ASJ11 IF PRE-INITIAL JOB STATE
- LDC 3RI1R
- UJP ASJ13 CALL *1RI*
- ASJ11 LDD SP
- LMN SSSC
- NJN ASJ12 IF NOT SUBSYSTEM
- LDM SISS
- ADC -LSSI
- MJN ASJ12 IF SUBSYSTEM NOT IN *SSAT*
- LDC PLSI CHECK FOR CYBIS
- LMM SISS
- NJN ASJ11.1 IF NOT CYBIS
- LDM SISS FETCH *SSAT* ENTRY (EJT ORDINAL)
- ADC /3SA/FEAF*10000
- RJM /3SA/AST
- NJN ASJ12 IF ALREADY ACTIVE
- ASJ11.1 LDD EO
- STD T1
- LDM SISS
- ADC /3SA/SEAF*10000
- RJM /3SA/AST STORE EJT ORDINAL IN SSAT TABLE
- ASJ12 AOD AA+2 SET *1AJ* FUNCTION 1
- LDC 3RJ1A CALL *1AJ*
- ASJ13 STD AA
- SHN -6
- SCN 77
- LMD JC
- STD AA+1
- LDD MA WRITE *1RI*/*1AJ* CALL TO MESSAGE BUFFER
- CWD AA
- LDN 0 CLEAR PRIORITY REQUEST FLAG
- STD CM+1
- MONITOR RPPM CALL *1RI*/*1AJ*
- LDD NC CHANGE ASSIGNMENT BACK TO SYSTEM CP
- STD CM+1
- MONITOR CCAM
- * LDN 0 SET JOB SCHEDULED
- LJM ASJX RETURN
- BST SPACE 4,20
- ** BST - BUILD SCHEDULING TABLES.
- *
- * BUILD SCHEDULING TABLES AND CHECK FOR JOBS HAVING FL INCREASE
- * REQUESTS OUTSTANDING. IF ANY ARE FOUND, SELECT THE HIGHEST
- * PRIORITY ONE FOR SCHEDULING.
- *
- * ENTRY (JC) = 0.
- * (JP) = 0.
- * (RM - RM+1) = 0.
- * (RE) = 0.
- *
- * EXIT (JC) = CP NUMBER OF HIGHEST PRIORITY JOB REQUESTING AN
- * FL INCREASE.
- * = 0 IF NO OUTSTANDING FL INCREASE REQUESTS.
- *
- * USES CS, EO, EP, ES, JC, JE, JM, JP, RE, SC, SP, TE, TP,
- * AA - AA+4, BB - BB+4, CM - CM+4, EJ - EJ+4, RM - RM+1,
- * T0 - T6.
- *
- * CALLS CCA, CCP, CPR, EJA.
- BST SUBR ENTRY/EXIT
- * INITIALIZE *TTCU* AND *TTUE* TABLES.
- LDN MXJC-1
- STD T1
- BST1 LDN 0
- STM TTCU,T1
- STM TTCU+1*MXJC,T1
- STM TTUE,T1
- SOD T1 DECREMENT INDEX
- PJN BST1 IF NOT FINISHED
- LDC TACP SET END OF *TACP* TABLE
- STD TE
- LDN 0
- STM TACP-1 MARK START OF *TACP* TABLE
- STI TE MARK END OF *TACP* TABLE
- STD TP INITIALIZE CP/PCP NUMBER
- * SCAN CONTROL POINT AREAS CALCULATING AVAILABLE CM AND ECS.
- * CHECK FOR OUTSTANDING FL INCREASE REQUESTS.
- BST2 AOD TP ADVANCE CP/PCP NUMBER
- LMD NC
- ZJN BST2 IF SYSTEM CONTROL POINT
- LMD NC
- LMC **
- BSTB EQU *-1
- ZJP BSTX IF END OF SCAN
- LDD TP SET CP/PCP ADDRESS
- RJM CCA
- ADK FLSW READ CM CONTROL WORD OF CURRENT CP/PCP
- CRD CM
- ADN ECSW-FLSW READ EM CONTROL WORD OF CURRENT CP/PCP
- CRD T0
- * STORE CP/PCP *TP* CM FL IN *TJCM* TABLE.
- LDD CM+4
- ADD CM NFL
- STM TJCM-1,TP
- STD T5
- * STORE CONTROL POINT *TP* ECS FL IN *TJEC* TABLE.
- LDD T0+4
- STM TJEC-1,TP
- STD T6
- * CHECK FOR AVAILABLE CONTROL POINT.
- LDD TP SET CP/PCP ADDRESS
- RJM CCA
- ADK JCIW
- CRD CM
- ADN TFSW-JCIW
- CRD EJ
- LDD EJ
- NJN BST6 IF CP/PCP IS OCCUPIED
- LDD TP
- SBD NC
- PJN BST5 IF PCP
- LDM SCPA
- ZJN BST4 IF NO FREE CP YET SET
- RJM CCP
- NJN BST5 IF CURRENT CP IS NEITHER FIRST NOR LAST
- BST4 LDD TP SAVE NUMBER OF FREE CONTROL POINT
- STM SCPA
- BST5 LJM BST2 CONTINUE CONTROL POINT SCAN
- BST6 STD EO SAVE EJT ORDINAL
- RJM EJA CALCULATE EJT ENTRY ADDRESS
- ADK JSNE
- CRD EJ
- ADN SCHE-JSNE
- CRD AA
- ADN SCLE-SCHE
- CRD BB
- LDD BB GET SERVICE CLASS AND FORCED ROLL FLAGS
- SHN 14
- STM TJSC-1,TP
- STD SC
- SHN 1
- PJN BST7 IF NOT FORCED ROLLIN
- LDN 1 SET NO ROLLOUT FLAG
- STD CM+2
- BST7 LDD AA+4 SET CP JOB SCHEDULING PRIORITY
- STM TJPR-1,TP
- LDD CM+1 CHECK *CPUPFM* ACTIVE
- LPN 10
- NJN BST8 IF *CPUPFM* ACTIVE
- LDD CM+3 SET/CLEAR NO ROLLOUT FLAG
- LPC 1000 MASK *DIS* FLAG
- ADD CM+2
- BST8 STM BSTA
- LDD EJ+4
- LPN 76
- LMN EXJS*2
- ZJN BST8.1 IF JOB IS AT A CP
- LMK PCJS*2&EXJS*2
- NJN BST8.2 IF NOT A PCP JOB
- LDD AA+3 SET ENTRY TIME FOR *CPR*
- STD T1
- LDD AA+4
- STD T2
- LDD SC
- SHN 14
- LMK EXQT
- RJM CPR COMPUTE SCHEDULING PRIORITY
- STM TJPR-1,TP
- LDN 0
- * CHECK FOR ROLLOUT ACTIVITY AT CP/PCP. ACCUMULATE CM
- * AND ECS FL ASSIGNED TO THE JOB IF IT IS ROLLING OUT.
- BST8.1 STD EJ+4
- LDD TP SET CP/PCP ADDRESS
- RJM CCA
- ADK STSW
- CRD CM
- ADN FLIW-STSW
- CRD AA
- LDD CM+2
- SHN 21-0
- BST8.2 PJN BST9 IF JOB NOT ROLLING OUT
- LDD TP
- SBD NC
- PJN BST8.4 IF JOB AT PCP
- LDM SCPB
- ZJN BST8.3 IF NO ROLLING CP YET SET
- RJM CCP
- NJN BST8.4 IF CURRENT CP NEITHER FIRST NOR LAST
- BST8.3 LDD TP SAVE NUMBER OF ROLLING CP
- STM SCPB
- BST8.4 LDD CM+2
- SHN 21-7
- MJN BST8.5 IF PSEUDO-ROLLOUT IN PROGRESS
- LDD T5 ACCUMULATE ROLLING CM
- RAD RM+1
- SHN -14
- RAD RM
- LDD T6 ACCUMULATE ROLLING ECS
- RAD RE
- BST8.5 LJM BST2 CONTINUE CP/PCP SCAN
- * JOB IS NOT ROLLING OUT. CHECK FOR AN OUTSTANDING FL INCREASE
- * REQUEST. IF ONE IS FOUND AT THIS CONTROL POINT, SEE IF THE
- * JOB-S SCHEDULING PRIORITY IS SUFFICIENTLY HIGH TO MAKE THE
- * JOB THE BEST SCHEDULING CANDIDATE FOUND SO FAR.
- BST9 LDD SC
- SBN MXJC
- PJN BST10 IF NO JCB FOR THIS SERVICE CLASS
- LDD T5 ACCUMULATE CM ASSIGNED TO SERVICE CLASS
- RAM TTCU+1*MXJC,SC
- SHN -14
- RAM TTCU,SC
- LDD T6 ACCUMULATE ECS ASSIGNED TO SERVICE CLASS
- RAM TTUE,SC
- BST10 LDD EJ+4
- NJN BST8.5 IF JOB IS ROLLING IN
- LDM TJPR-1,TP
- SBD JP
- MJN BST12 IF CP HAS LOWER PRIORITY THAN CURRENT HIGH
- LDD AA+4
- ZJN BST11 IF NO CM FL INCREASE REQUESTED
- LDD AA+1
- SHN 21-0
- MJN BST12 IF REQUEST WAS ALREADY REJECTED
- LDD AA+4
- SBD T5
- ZJN BST11 IF CM ALREADY ASSIGNED
- MJN BST11 IF CM ALREADY ASSIGNED
- * THIS CONTROL POINT IS THE BEST SCHEDULING CANDIDATE FOUND SO
- * FAR. SAVE SCHEDULING INFORMATION.
- STD JM
- LDN 0 CLEAR ECS REQUIREMENT
- STD JE
- UJN BST13 GO FINISH SAVING SCHEDULING INFORMATION
- BST11 LDD AA+3
- ZJN BST14.1 IF NO ECS FL INCREASE REQUESTED
- LDD AA+1
- SHN 21-1
- BST12 MJN BST14.1 IF REQUEST WAS ALREADY REJECTED
- LDD AA+3
- SBD T6
- ZJN BST14.1 IF ECS ALREADY ASSIGNED
- MJN BST14.1 IF ECS ALREADY ASSIGNED
- * THIS CONTROL POINT IS THE BEST SCHEDULING CANDIDATE SO
- * FAR. SAVE SCHEDULING INFORMATION.
- STD JE
- LDN 0 CLEAR CM REQUIREMENT
- STD JM
- BST13 LCN 0 PREVENT SERVICE CLASS ECS LIMIT
- STD ES
- STD CS+1 PREVENT SERVICE CLASS CM LIMIT
- LDN 37
- STD CS
- LDM TJPR-1,TP SAVE SCHEDULING PRIORITY
- STD JP
- LDD TP SAVE CP/PCP NUMBER
- STD JC
- LDD EO SAVE EJT ORDINAL
- STD EP
- LDD SC SAVE SERVICE CLASS
- STD SP
- BST14 LDC **
- BSTA EQU *-1 (NO ROLLOUT FLAG)
- STM SCJD (SET/CLEAR NO REJECT FLAG)
- BST14.1 LDM BSTA
- NJN BST18 IF ROLLOUT MUST NOT OCCUR
- * BUILD *TACP* ENTRY FOR THIS CONTROL POINT.
- LDC TACP-1 SET START OF *TACP* TABLE
- STD T1
- BST15 AOD T1 INCREMENT *TACP* INDEX
- LDI T1
- ZJN BST17 IF END OF *TACP* TABLE
- STD T2
- LDM TJPR-1,T2
- SBM TJPR-1,TP
- PJN BST15 IF PRIORITY OF *TP* .LE. *TACP* ENTRY
- * MOVE ALL *TACP* ENTRIES THAT ARE BEYOND CURRENT POSITION
- * ONE SLOT TOWARD THE END OF THE *TACP* TABLE.
- LDD TE
- STD T2
- BST16 LDM -1,T2
- STI T2
- SOD T2
- LMD T1
- NJN BST16 IF MOVE NOT COMPLETE
- * ALL ENTRIES OF LOWER PRIORITY HAVE BEEN MOVED ONE SLOT
- * TOWARD END OF *TACP* TABLE. STORE CP/PCP NUMBER IN
- * VACATED *TACP* ENTRY.
- BST17 LDD TP
- STI T1
- AOD TE ADVANCE END OF *TACP* TABLE POINTER
- LDN 0 MARK END OF *TACP* TABLE
- STI TE
- BST18 LJM BST2 CONTINUE CP/PCP SCAN
- 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
- CCP SPACE 4,10
- ** CCP - CHECK FOR FIRST OR LAST CONTROL POINT.
- *
- * ENTRY (A) = CONTROL POINT NUMBER.
- * (NC) = SYSTEM CONTROL POINT NUMBER.
- *
- * EXIT (A) = 0 IF CONTROL POINT 1 OR LAST CONTROL POINT.
- CCP SUBR ENTRY/EXIT
- SBN 1
- ZJN CCPX IF CP 1
- ADN 2
- LMD NC
- UJN CCPX RETURN
- CFL SPACE 4,30
- ** CFL - COMMIT FIELD LENGTH.
- *
- * SCAN THE *TACP* TABLE IN AN ATTEMPT TO FIND ENOUGH CM/ECS
- * ASSIGNED TO LOWER PRIORITY JOBS TO ACCOMODATE THE JOB
- * SELECTED FOR SCHEDULING. REQUEST ROLLOUT FOR ONLY AS MANY
- * SUCH JOBS AS NECESSARY.
- *
- * ENTRY (TE) = LWA OF *TACP* TABLE.
- * (AM - AM+1) = AVAILABLE + ROLLING CM.
- * (AE) = AVAILABLE + ROLLING ECS.
- * (JC) = CP NUMBER OF JOB REQUESTING FL INCREASE
- * (IF ANY).
- * (JP) = SCHEDULING PRIORITY OF SELECTED JOB.
- * (JM) = CM FL REQUIRED BY SELECTED JOB.
- * (JE) = ECS FL REQUIRED BY SELECTED JOB.
- * (SP) = SERVICE CLASS OF SELECTED JOB.
- * (CS - CS+1) = EXCESS CM OF SERVICE CLASS.
- * (ES) = EXCESS ECS OF SERVICE CLASS.
- *
- * EXIT (A) = 0 IF SUFFICIENT CM/ECS AFTER ROLLOUTS.
- * = 1 IF INSUFFICIENT CM.
- * = 2 IF INSUFFICIENT ECS.
- * .LT. 0 IF ROLLOUT REQUEST WAS REJECTED.
- *
- * USES T1, T3 - T7, CM - CM+4 TP.
- *
- * CALLS IRR.
- * REQUEST ROLLOUT FOR ANY JOB WHOSE ROLLOUT REQUEST BIT (BIT
- * 10D) IS SET IN ITS *TACP* ENTRY.
- CFL11 AOD TP INCREMENT *TACP* POINTER
- LDI TP
- ZJN CFLX IF *TACP* SCAN COMPLETE
- SHN 21-12
- PJN CFL11 IF ROLLOUT REQUEST BIT CLEAR
- SHN 12-21 GET CP/PCP NUMBER
- LPC 177
- ERRNZ /CPS/ROSR CODE DEPENDS ON VALUE
- RJM IRR ISSUE *ROCM*
- ZJN CFL11 IF ROLLOUT REQUEST WAS ACCEPTED
- LCN 0 SET RETURN STATUS
- CFL SUBR ENTRY/EXIT
- LDD AM
- SHN 14
- LMD AM+1
- SBD JM
- SHN -21
- NJN CFL0 IF INSUFFICIENT CM
- LDD AE
- SBD JE
- SHN -21
- ZJN CFLX IF SUFFICIENT EM
- CFL0 LDD TE INITIALIZE *TACP* POINTER
- STD TP
- LDD AM INITIALIZE CM ACCUMULATOR
- STD T5
- LDD AM+1
- STD T6
- LDD AE INITIALIZE ECS ACCUMULATOR
- STD T7
- * ACCUMULATE CM AND ECS ASSIGNED TO LOWER PRIORITY JOBS. SET
- * THE REQUEST ROLLOUT BIT IN THE *TACP* ENTRY OF EACH LOWER
- * PRIORITY JOB.
- CFL1 SOD TP DECREMENT *TACP* POINTER
- LDI TP
- ZJN CFL2 IF END OF *TACP* TABLE REACHED
- STD T1
- LMD JC
- ZJN CFL1 IF CP SELECTED FOR FL INCREASE
- LDD JP COMPARE SCHEDULING PRIORITIES
- SBM TJPR-1,T1
- MJN CFL1 IF SELECTED JOB HAS LOWER PRIORITY
- * PSN (LOCKED IN JOB REQUIRES FL INCREASE)
- CFLC EQU *-1
- ZJN CFL1 IF PRIORITIES ARE EQUAL
- * PSN (IF SELECTED JOB WANTS FL INCREASE)
- CFLA EQU *-1
- LDC 2000
- RAI TP SET ROLLOUT FLAG IN *TACP* ENTRY
- SHN 21-13
- MJN CFL1 IF ROLLOUT IN PROGRESS
- LDM TJCM-1,T1 ACCUMULATE CM OF ROLLABLE JOB
- RAD T6
- SHN -14
- RAD T5
- LDM TJEC-1,T1 ACCUMULATE ECS OF ROLLABLE JOB
- RAD T7
- UJN CFL1 CONTINUE *TACP* TABLE SCAN
- CFL2 LDD T5
- SHN 14
- LMD T6
- SBD JM
- PJN CFL4 IF ENOUGH CM CAN BE OBTAINED VIA ROLLOUT
- LDN 1 INDICATE INSUFFICIENT CM TO *SCJ*
- CFL3 LJM CFLX RETURN
- CFL4 STD T6 SAVE EXCESS CM AMOUNT
- SHN -14
- STD T5
- LDD T7
- SBD JE
- PJN CFL5 IF ENOUGH ECS CAN BE OBTAINED VIA ROLLOUT
- LDN 2 INDICATE INSUFFICIENT ECS TO *SCJ*
- UJN CFL3 RETURN
- CFL5 STD T7 SAVE EXCESS ECS AMOUNT
- ADD T5
- ADD T6
- ZJN CFL7 IF NO EXCESS CM/ECS
- * DISQUALIFY AS MANY JOBS AS POSSIBLE FROM ROLLOUT.
- LDD TP INITIALIZE *TACP* TABLE POINTER
- STD T4
- CFL6 AOD T4 INCREMENT *TACP* POINTER
- LDI T4
- NJN CFL8 IF NOT END OF *TACP* TABLE
- CFL7 LJM CFL11 ROLLOUT JOBS
- CFL8 SHN 21-12
- PJN CFL6 IF JOB IS NOT A ROLLOUT CANDIDATE
- SHN 12-21 GET CP/PCP NUMBER
- LPC 177
- STD T3
- LDD T5
- SHN 14
- LMD T6
- SBM TJCM-1,T3
- CFL9 MJN CFL6 IF JOB-S CM FL TOO BIG TO REMAIN AT CP/PCP
- STD CM+1 SAVE CM AMOUNT
- SHN -14
- STD CM
- LDD T7
- SBM TJEC-1,T3
- MJN CFL6 IF JOB-S EM FL TOO BIG TO REMAIN AT CP/PCP
- STD CM+2 SAVE EM AMOUNT
- LDM TJSC-1,T3
- LMD SP
- NJN CFL10 IF DIFFERENT SERVICE CLASSES
- LDD CS
- SHN 14
- LMD CS+1
- SBM TJCM-1,T3
- MJN CFL9 IF MAXIMUM CM FOR SERVICE CLASS EXCEEDED
- STD CM+4 SAVE NEW EXCESS CM
- SHN -14
- STD CM+3
- LDD ES
- SBM TJEC-1,T3
- MJN CFL9 IF MAXIMUM ECS FOR SERVICE CLASS EXCEEDED
- STD ES SAVE NEW EXCESS ECS
- LDD CM+3 SAVE NEW EXCESS CM
- STD CS
- LDD CM+4
- STD CS+1
- CFL10 LDD CM UPDATE REMAINING CM AMOUNT
- STD T5
- LDD CM+1
- STD T6
- LDD CM+2 UPDATE REMAINING ECS AMOUNT
- STD T7
- LDC -2000 CLEAR ROLLOUT BIT IN *TACP* ENTRY
- RAI T4
- LJM CFL6 CONTINUE *TACP* SCAN
- CFLB BSS 0
- LOC CFLA
- ZJN CFL1 IF PRIORITIES ARE EQUAL
- LOC *O
- DDA SPACE 4,10
- ** DDA - DETERMINE DEVICE ACTIVITY.
- *
- * BUILD *TDAC* TABLE.
- *
- * USES T1 - T5, CM - CM+4.
- *
- * MACROS SFA.
- DDA2 STM TDAC+1 CLEAR PCP ACTIVITY
- DDA SUBR ENTRY/EXIT
- LDN ESTP
- CRD T1
- LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
- STD T1
- DDA1 AOD T1 INCREMENT EST ORDINAL
- LMD T1+3
- ZJN DDA2 IF END OF EST SCAN
- SFA EST,T1
- ADK EQDE
- CRD CM
- LDD CM
- SHN 21-13
- PJN DDA1 IF NOT MASS STORAGE
- LDD CM+4 READ MST ENTRY
- SHN 3
- ADN DALL
- CRD CM
- LDD CM SAVE DEVICE ACTIVITY IN *TDAC* TABLE
- STM TDAC,T1
- UJN DDA1 CONTINUE EST SCAN
- 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
- INT SPACE 4,10
- ** INT - INITIALIZE CELLS FOR EJT/CM SCHEDULING.
- *
- * ENTRY (SCJC) .NE. 0 IF RECYCLE CALL.
- *
- * USES JP, JC, EP, RM - RM+1, RE, TM - TM+4, CM - CM+4.
- *
- * CALLS SSA.
- INT1 RJM SSA SET STATISTICAL AREA ADDRESS
- CRM SPST+JS0S*5,T1 READ SCHEDULER STATISTICS
- INT SUBR ENTRY/EXIT
- LDN 0
- STD JP PRIORITY OF SELECTED JOB
- STD JC CP NUMBER OF JOB REQUESTING FL INCREASE
- STD EP EJT ORDINAL OF SELECTED JOB
- STD RM ROLLING CM ACCUMULATOR
- STD RM+1
- STD RE ROLLING ECS ACCUMULATOR
- LDC RTCL READ REAL-TIME CLOCK
- CRD TM
- LDM SCJC
- ZJN INT1 IF NOT RECYCLE
- * RESET CELLS AND INSTRUCTIONS FOR RECYCLE.
- LDN 0
- STM SCJC
- STM USDA
- STM USDB
- STM USDC
- STM SCPA
- STM SCPB
- STM SFJK
- STM SFJL
- LCN 0
- STM SFJG
- STM SFJM
- LDC LDDI+EP
- STM SFJB
- LDC SFJ29
- STM SFJH
- LDC LDDI+SC
- STM SFJI
- LDM CFLB
- STM CFLA
- LDM SFJQ
- STM SFJC
- LDC SOMI
- STM SFJR
- LJM INTX 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
- AOM SPST+JS1S*5+2 INCREMENT JOBS PREEMPTED
- SHN -14
- RAM SPST+JS1S*5+1
- MONITOR ROCM REQUEST ROLLOUT
- LDD CM+1
- UJN IRRX RETURN
- IUT SPACE 4,20
- ** IUT - ISSUE *UTEM* MONITOR FUNCTION.
- *
- * ENTRY (A) = 1/ F,1/ I,1/ 0,3/ C,12/ P
- * F = 0 IF EJT ENTRY UPDATE.
- * = 1 IF QFT ENTRY UPDATE.
- * 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, IOA.
- *
- * MACROS MONITOR.
- IUT SUBR ENTRY/EXIT
- STM IUTB 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
- LDM IUTC,CM USE TABLE FLAG TO SET SUBROUTINE ADDRESS
- STM IUTA
- RJM ** CALCULATE TABLE ADDRESS
- IUTA EQU *-1
- 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
- IUTB 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
- IUTC CON EJA CALCULATE EJT ENTRY ADDRESS
- CON /3SB/IOA CALCULATE QFT ENTRY ADDRESS
- RST SPACE 4,15
- ** RST - REQUEST STORAGE.
- *
- * ENTRY (A) = 6/ T,12/ FL.
- * T = MEMORY TYPE. 0 IF CM, 1 IF EM.
- * FL = STORAGE AMOUNT.
- * (AA - AA+4) = *SCHE* WORD OF EJT ENTRY.
- * (EJ - EJ+4) = *JSNE* WORD OF EJT ENTRY.
- *
- * EXIT (A) = 0 IF REQUEST ACCEPTED, ELSE NON-ZERO.
- *
- * USES CM - CM+4.
- *
- * MACROS MONITOR.
- RST SUBR ENTRY/EXIT
- STD CM+1 SET FL
- SHN -14 SET REQUEST TYPE
- STD CM+2
- LDD EJ+4
- SHN -1
- LPN 37
- LMK PCJS
- NJN RST1 IF JOB NOT AT PCP
- LDC 4000 SET PSEUDO-ROLLIN FLAG
- RAD CM+2
- LDD AA+1 STORE PCP NUMBER IN *RSTM* REQUEST
- STD CM+3
- RST1 MONITOR RSTM REQUEST STORAGE
- LDD CM+1 RETURN STATUS IN (A)
- UJN RSTX RETURN
- SCP SPACE 4,25
- ** SCP - SELECT CONTROL POINT.
- *
- * ENTRY (JC) = 0.
- * (JP) = SCHEDULING PRIORITY OF SELECTED JOB.
- * (TE) = LWA OF *TACP* TABLE.
- *
- * EXIT (A) = (JC) = CP NUMBER IF ONE IS AVAILABLE.
- * = 0 IF NO CP IS AVAILABLE.
- * .LT. 0 IF PCP JOB WAS SELECTED BUT ONLY FIRST OR
- * LAST CP IS AVAILABLE.
- *
- * USES AE, AM - AM+1, T0 - T2.
- *
- * CALLS CCP, IRR.
- SCP8 LDN 0 SET EXIT CONDITION = NO CP AVAILABLE
- SCP9 STD JC SET CP NUMBER
- SCP SUBR ENTRY/EXIT
- LDM ASJA
- LPN 76
- LMK PCJS*2
- STD T0
- NJN SCP2 IF SELECTED JOB NOT AT PCP
- LDM SCPA
- RJM CCP CHECK FOR FIRST/LAST CP
- NJN SCP1 IF FREE CP NEITHER FIRST NOR LAST
- STM SCPA CLEAR FREE CP NUMBER
- AOM SCPC
- SCP1 LDM SCPB
- RJM CCP CHECK FOR FIRST/LAST CP
- NJN SCP2 IF ROLLING CP NEITHER FIRST NOR LAST
- STM SCPB CLEAR ROLLING CP NUMBER
- AOM SCPC
- SCP2 LDC ** (NUMBER OF AVAILABLE CP)
- SCPA EQU *-1
- NJN SCP9 IF THERE IS AN AVAILABLE CONTROL POINT
- LDC ** (NUMBER OF ROLLING CP)
- SCPB EQU *-1
- NJP SCP8 IF CP JOB IS ALREADY BEING ROLLED
- LDD TE SET *TACP* POINTER
- STD T1
- SCP3 SOD T1 DECREMENT *TACP* INDEX
- LDI T1
- NJN SCP3.3 IF NOT END OF SEARCH
- SCP3.1 LDN 0
- * LDN 1 OR 2 PCP JOB AND UNUSABLE CP FREE/ROLLING
- SCPC EQU *-1
- ZJN SCP3.2 IF NO NEED TO BLOCK PCP JOB SCHEDULING
- AOM SFJY INHIBIT PCP JOB SCHEDULING
- LCN 0
- SCP3.2 UJP SCPX RETURN
- SCP3.3 STD T2
- SBD NC
- PJN SCP3 IF PCP JOB
- LDM TJPR-1,T2
- SBD JP
- PJN SCP3.1 IF LOWEST PRIORITY .GE. SELECTED JOB
- LDD T2
- RJM CCP CHECK FOR FIRST/LAST CP
- NJN SCP4 IF NEITHER FIRST NOR LAST CP
- LDD T0
- ZJN SCP3 IF SELECTED JOB AT PCP
- SCP4 LDC 2000 CAUSE *CFL* TO IGNORE THIS CP
- RAI T1
- LDM TJCM-1,T2 ACCUMULATE ROLLING CM FL
- RAD AM+1
- SHN -14
- RAD AM
- LDM TJEC-1,T2 ACCUMULATE ROLLING EM FL
- RAD AE
- LDD T2
- RJM CCP CHECK FOR FIRST/LAST CP
- NJN SCP5 IF NEITHER FIRST NOR LAST CP
- * LDN 0 DISALLOW PSEUDO-ROLLOUT OF CP 1 JOB
- ERRNZ /CPS/ROSR CODE DEPENDS ON VALUE
- UJN SCP6 ISSUE ROLLOUT REQUEST
- SCP5 LDC /CPS/ROPR*10000 ALLOW PSEUDO-ROLLOUT
- SCP6 LMD T2
- RJM IRR ISSUE ROLLOUT REQUEST
- SCP7 UJP SCP8 RETURN
- SFJ SPACE 4,25
- ** SFJ - SEARCH FOR JOB.
- *
- * SCAN THE EJT LOOKING FOR THE HIGHEST PRIORITY JOB IN A
- * SCHEDULABLE JOB STATE THAT MAY BE SCHEDULED WITHIN THE BOUNDS
- * OF AVAILABLE CM/ECS AND SERVICE CLASS RESOURCE CONSTRAINTS.
- *
- * ENTRY (EP) = 0.
- * (TM - TM+1) = SECONDS PORTION OF *RTCL*.
- * (TE) = LWA OF *TACP* TABLE.
- *
- * EXIT (EP) = EJT ORDINAL OF SELECTED JOB.
- * = 0 IF NO SCHEDULABLE JOB FOUND.
- * (CS - CS+1) = EXCESS CM IN SERVICE CLASS.
- * (ES) = EXCESS ECS IN SERVICE CLASS.
- * (JP) = SCHEDULING PRIORITY OF SELECTED JOB.
- * (JM) = CM REQUIRED BY SELECTED JOB.
- * (JE) = ECS REQUIRED BY SELECTED JOB.
- * (SP) = SERVICE CLASS OF SELECTED JOB.
- *
- * USES T0 - T7, CM - CM+4, AA - AA+4, BB - BB+4, EO,
- * CS - CS+1, ES, EJ - EJ+4, SC, EP, SP, JP, JM, JE, TP.
- *
- * CALLS IUT.
- *
- * MACROS CFI.
- SFJ33 LDC 7777
- SFJM EQU *-1 (2ND BEST JOB-S DEVICE ACTIVITY)
- SHN 21-13
- MJN SFJX IF NO SECOND JOB
- SHN 13-21
- SBN 3
- MJN SFJ34 IF NOT TOO MUCH ACTIVITY
- LDN PPAL
- CRD CM
- LDD CM+4
- ZJN SFJX IF NO PP-S AVAILABLE
- SBN 1
- ZJN SFJX IF ONLY 1 PP AVAILABLE
- SFJ34 AOM SCJC SET RECYCLE FLAG
- SFJ SUBR ENTRY/EXIT
- AOM SPST+JS0S*5+1 INCREMENT EJT SCANS
- SHN -14
- RAM SPST+JS0S*5
- LDM SFJA START SCAN WITH CURRENT ORDINAL
- STD EO
- LJM SFJ3 ENTER LOOP
- * SCAN EJT LOOKING FOR HIGHEST PRIORITY SCHEDULABLE JOB.
- SFJ2 SOM SFJA DECREMENT EJT ORDINAL
- * UJN SFJX (SCHEDULABLE JOB WITH ERROR FLAG SET)
- SFJR EQU *-2
- STD EO
- PJN SFJ2.1 IF NOT WRAP OF THE EJT
- LDC **
- SFJS EQU *-1 (HIGHEST EJT ORDINAL)
- STM SFJA
- STD EO
- SFJ2.1 LMC **
- SFJT EQU *-1 (STARTING EJT ORDINAL)
- NJN SFJ3 IF EJT SCAN NOT COMPLETE
- LDD EP
- * UJN SFJ2.2 (POST-REJECT SCAN COMPLETE)
- SFJB EQU *-1
- UJN SFJ2.2 EXIT
- * NJN SFJ2.2 (JOB WAS REJECTED)
- SFJC EQU *-1
- * NO JOB WAS SELECTED FOR SCHEDULING BUT AT LEAST ONE JOB WAS
- * REJECTED DUE TO VIOLATION OF SERVICE CLASS RESOURCE
- * CONSTRAINTS. REMOVE SERVICE CLASS RESOURCE CONSTRAINTS AND
- * RE-SCAN THE EJT TO SELECT THE HIGHEST PRIORITY JOB OF THOSE
- * PREVIOUSLY REJECTED. THE SELECTED JOB WILL BE SCHEDULED ONLY
- * IF SUFFICIENT CM AND ECS IS AVAILABLE WITHOUT ROLLING OUT
- * OTHER JOBS. IF FLEXIBLE MEMORY PARTITIONING IS DISABLED, NO
- * RE-SCAN WILL BE PERFORMED.
- LDM SCPA
- * UJN SFJX (FLEXIBLE MEMORY PARTITIONING DISABLED)
- SFJW EQU *-2
- ZJN SFJX IF NO AVAILABLE CONTROL POINTS
- LDN 0 REINITIALIZE EJT SCAN
- STM USDA
- STM USDB
- STM USDC
- LDM SFJN
- STM SFJB
- LDC SFJ2
- STM SFJH
- LDM SFJO
- STM SFJI
- LJM SFJ2 PERFORM POST-REJECT SCHEDULING
- SFJ2.2 LJM SFJ33 CONTINUE
- SFJ3 CFI EJT,EO GET EJT ENTRY OFFSET
- ADC ** ADD EJT FWA (SET BY *PRS*)
- SFJD EQU *-1 (EJT FWA)
- ADK JSNE READ EJT ENTRY
- CRD EJ
- STD AA+1 SAVE EJT ADDRESS
- SHN -14
- STD AA
- LDD EJ
- ZJN SFJ4 IF EMPTY ENTRY
- LDD EJ+4
- SHN 21-6
- PJN SFJ5 IF JOB ADVANCE IS CLEAR
- SFJ4 LJM SFJ2 CONTINUE EJT SCAN
- SFJ5 SHN 6-0
- MJN SFJ4 IF JOB ADVANCE INHIBITED
- LPN 37 GET JOB STATUS
- STD T2
- STM SFJU+4
- LDD AA READ REMAINDER OF EJT ENTRY
- SHN 14
- LMD AA+1
- ADN SCHE-JSNE
- CRD AA
- ADN PRFE-SCHE
- CRD CM
- ADN SCLE-PRFE
- CRD BB
- LDD BB GET SERVICE CLASS
- SHN -6
- STD SC
- ERRPL 7677-MXPR ENSURE *LCN* MAY BE USED
- LCN 7777-MXPR PRESET SCHEDULING PRIORITY
- STD BB+1
- LDD AA GET EST ORDINAL
- STD BB+2
- LDD CM+1
- ZJP SFJ7 IF NO ERROR FLAG SET IN EJT ENTRY
- LDM TJST,T2
- SHN 21-12
- PJN SFJ6 IF JOB MAY NOT BE SCHEDULED
- LDD T2
- LMN SUJS
- NJN SFJ5.1 IF NOT SUSPENDED JOB
- LDD EJ+4
- SHN 0-7
- LPN 17
- LMN OLCS
- ZJN SFJ6 IF ON-LINE INTERACTIVE JOB
- LMN DTCS&OLCS
- NJN SFJ5.1 IF NOT DETACHED
- LDD CM+1
- SBK ODET
- PJN SFJ5.1 IF ERROR FLAG .GE. *ODET*
- LDD BB
- SHN 21-4
- PJN SFJ6 IF NOT FORCED ROLLIN
- SFJ5.1 LDD CM+1
- SBK MXET
- PJN SFJ6 IF ERROR FLAG NOT VALID
- LDM TEFP,CM+1 GET TRANSFER ADDRESS FROM *TEFP* TABLE
- SFJV ZJN SFJ6 IF NO PROCESSOR DEFINED FOR ERROR FLAG
- * UJN SFJ6 (IF DEADSTART SEQUENCING JOB HAS NOT RUN)
- STD T1
- LJM 0,T1
- SFJ6 LJM SFJ2 CONTINUE EJT SCAN
- * CHECK FOR FORCED ROLLIN/ROLLOUT.
- SFJ7 LDD BB
- SHN 21-5
- MJN SFJ6 IF FORCED ROLLOUT
- SHN 5-4
- PJN SFJ10 IF NOT FORCED ROLLIN
- LDM TJST,T2
- SHN 21-11
- PJN SFJ10 IF JOB MAY NOT BE FORCED ROLLED IN
- SFJ8 LJM SFJ12 SCHEDULE JOB WITH FL
- * IF ENTERING AT THIS LOCATION DUE TO AN ERROR FLAG REQUIRING
- * ROLLIN WITH ONLY NFL, SET THE MAXIMUM NFL AS THE REQUIRED CM
- * FL. ROUTINE *ASJ* WILL REQUEST THIS MUCH CM STORAGE TO
- * ENSURE *1RI* WILL HAVE SUFFICIENT SPACE FOR NFL ROLLIN.
- SFJ9 LDK MNFL
- STD BB+4
- LDN 0 CLEAR ECS REQUIREMENT
- STD BB+3
- * SAVE THE JOB-S EJT ORDINAL AS A FLAG FOR ROUTINE *ASJ*
- * INDICATING THE CM FL FIELD IN THE EJT ENTRY MUST BE CLEARED
- * TO TELL *1RI* ONLY NFL SHOULD BE ROLLED IN. IF THE JOB
- * STATE IS *PRJS*, CLEARING THE CM FL FIELD WILL HAVE NO
- * EFFECT.
- LDD EO
- STM ASJB
- LDC UJNI+77-SFJR+SFJX TERMINATE JOB SEARCH
- ERRPL SFJR-SFJX-40 RANGE ERROR
- STM SFJR
- LJM SFJ12.5 CHECK PRIORITY
- * DETERMINE WHETHER OR NOT THE JOB IS IN A SCHEDULABLE STATE.
- SFJ10 LDD CM+1
- SFJ10.1 NJN SFJ11 IF ERROR FLAG SET
- LDM TJST,T2
- SHN 21-13
- MJN SFJ10.3 IF SCHEDULABLE JOB
- SFJ10.2 LJM SFJ2 CONTINUE SEARCH
- SFJ10.3 LDD SC
- SFJ10.5 SBK MXJC
- SFJ11 PJN SFJ12 IF NO JCB FOR SERVICE CLASS
- LDD T2
- LMK SIJS
- ZJN SFJ12 IF SCP ROLLIN JOB STATUS
- * CALCULATE SCHEDULING PRIORITY. THE CALCULATION IS PERFORMED
- * IN-LINE TO AVOID THE OVERHEAD OF SUBROUTINE USAGE.
- LDC SHNI+77 CALCULATE THE WEIGHTING FACTOR SHIFT
- SBM TEPB+2*MXJC,SC
- STM SFJE
- LDD TM
- SBD AA+3
- SHN 14
- ADD TM+1
- SBD AA+4
- SFJE SHN **
- ADM TEPB,SC
- SBM TEPB+1*MXJC,SC
- MJN SFJ11.1 IF SCHEDULING PRIORITY .LT. UPPER BOUND
- LDN 0 SET PRIORITY TO UPPER BOUND
- SFJ11.1 ADM TEPB+1*MXJC,SC
- STD BB+1 SAVE SCHEDULING PRIORITY
- SFJ12 LDD CM+1
- * UJN SFJ12.2 (USER EM ENABLED)
- SFJF EQU *-1
- LMN ORET
- NJN SFJ12.1 IF NOT OPERATOR OVERRIDE
- STD BB+3
- SFJ12.1 LDD BB+3
- ZJN SFJ12.2 IF EM NOT REQUIRED
- LJM SFJ2 CHECK NEXT JOB
- SFJ12.2 AOM USDC INCREMENT SCHEDULABLE JOB COUNT
- LDD T2
- LMK PCJS
- NJN SFJ12.3 IF NOT PCP JOB
- LDN 0
- * LDN 1 (PCP JOB SCHEDULING INHIBITED)
- SFJY EQU *-1
- NJP SFJ2 IF PCP JOB SCHEDULING INHIBITED
- STD BB+3 CLEAR EM REQUIREMENT
- STD BB+4 CLEAR CM REQUIREMENT
- LDN 1 SET EST ORDINAL FOR ZERO ACTIVITY
- STD BB+2
- SFJ12.3 LDD AM
- SHN 14
- LMD AM+1
- SBD BB+4
- SHN -21
- STD T1
- ZJN SFJ12.4 IF SUFFICIENT CM
- STM USDA SET INSUFFICIENT CM
- SFJ12.4 LDD AE
- SBD BB+3
- PJN SFJ12.5 IF SUFFICIENT EM
- LDN 1 SET INSUFFICIENT EM
- STM USDB
- STD T1 SET CP SEARCH REQUIRED
- SFJ12.5 LDD BB+1
- SBD JP
- MJN SFJ13.2 IF PRIORITY .LT. CURRENT BEST
- NJN SFJ13.1 IF PRIORITY .GT. CURRENT BEST
- LDD T2
- LMK PCJS
- NJN SFJ12.6 IF NOT PCP JOB
- LDM SCPA CHECK IF CP AVAILABLE FOR PSEUDO-ROLLIN
- RJM CCP
- NJN SFJ13.1 IF FREE CP NEITHER FIRST NOR LAST
- LJM SFJ2 CONTINUE EJT SCAN
- SFJ12.6 LDD SC
- LMN DSSC
- NJN SFJ13.0 IF NOT DEADSTART SEQUENCING JOB
- SFJ13 LJM SFJ15.1 SELECT THIS JOB AS CURRENT BEST CANDIDATE
- SFJ13.0 LDC 7777
- SFJG EQU *-1 (ACTIVITY COUNT OF CURRENT BEST JOB)
- SBM TDAC,BB+2
- MJN SFJ13.2 IF CURRENT BEST HAS LESS DEVICE ACTIVITY
- SFJ13.1 NJN SFJ15 IF CURRENT BEST HAS MORE DEVICE ACTIVITY
- SFJ13.2 LDC **
- SFJK EQU *-1 (PRIORITY OF SECOND BEST JOB)
- SBD BB+1
- MJN SFJ13.4 IF PRIORITY .GT. 2ND BEST
- SFJ13.3 NJN SFJ14 IF PRIORITY .LT. 2ND BEST
- LDM TDAC,BB+2
- SBM SFJM
- MJN SFJ13.4 IF ACTIVITY .LT. 2ND BEST
- NJN SFJ14 IF ACTIVITY .GT. 2ND BEST
- LDC **
- SFJL EQU *-1 (CM FL OF 2ND BEST JOB)
- SBD BB+4
- PJN SFJ14 IF REQUIRED CM .LE. 2ND BEST
- SFJ13.4 LDD BB+1 SET 2ND BEST = CURRENT JOB
- STM SFJK
- LDM TDAC,BB+2
- STM SFJM
- LDD BB+4
- STM SFJL
- SFJ14 LJM SFJ2 CONTINUE EJT SCAN
- * DETERMINE IF ENOUGH CM AND ECS ARE AVAILABLE WITHOUT ROLLING
- * JOBS OUT. ALSO, CHECK FOR VIOLATION OF SERVICE CLASS
- * RESOURCE CONSTRAINTS.
- SFJ15 LDN 0 INITIALIZE CM/ECS ACCUMULATORS
- SFJ15.1 STD T5
- STD T6
- STD T7
- LDD T1
- ZJN SFJ18 IF LOWER PRIORITY JOB SEARCH NOT REQUIRED
- SFJ16 LJM SFJ29 GO PERFORM SCAN FOR LOWER PRIORITY JOBS
- * LJM SFJ2 (IF POST-REJECT SCHEDULING)
- SFJH EQU *-1
- * CHECK FOR VIOLATION OF SERVICE CLASS CONSTRAINTS.
- SFJ18 LCN 0 INITIALIZE EXCESS CM/ECS ACCUMULATORS
- STD AA+1
- STD AA+2
- LDN 37
- STD AA
- LDD SC
- * UJN SFJ19 (IF POST-REJECT SCHEDULING)
- SFJI EQU *-1
- SBN MXJC
- MJN SFJ20 IF JCB EXISTS FOR JOB-S SERVICE CLASS
- SFJ19 LJM SFJ26 GO MAKE THIS JOB CURRENT BEST CANDIDATE
- SFJ20 LDD CM+1
- NJN SFJ19 IF ERROR FLAG SET
- LDM TJAM+1*MXJC,SC
- ADN MNFL
- SBD BB+4
- MJN SFJ21 IF REQUIRED CM .GT. MAXIMUM FOR ONE JOB
- LDM TJAM+4*MXJC,SC
- SBD BB+3
- PJN SFJ21.2 IF REQUIRED EM .LE. MAXIMUM FOR ONE JOB
- SFJ21 LDM TJST,T2
- SHN 21-7
- MJP SFJ14 IF INITIAL JOB STATE
- LDC SFJU+2*10000 SET SERVICE WAIT JOB STATUS
- RJM IUT ISSUE *UTEM* REQUEST
- LJM SFJ24 REJECT JOB
- * DETERMINE IF THE TOTAL CM/ECS ASSIGNED TO JOBS OF THIS
- * CANDIDATE-S SERVICE CLASS WILL EXCEED THE MAXIMUM ALLOWABLE
- * IF THE CANDIDATE JOB IS SELECTED FOR SCHEDULING. THE INITIAL
- * CHECK DOES NOT CONSIDER THE AMOUNT OF CM/ECS ASSIGNED TO
- * LOWER PRIORITY JOBS OF THE CANDIDATE-S SERVICE CLASS.
- * HOWEVER, IF THE FIRST CHECK SHOWS THE CM/ECS MAXIMUM WOULD BE
- * EXCEEDED, A SECOND CHECK IS PERFORMED THAT INCLUDES THE
- * CM/ECS ASSIGNED TO LOWER PRIORITY JOBS OF THE CANDIDATE-S
- * SERVICE CLASS.
- SFJ21.2 LDM TJAM+2*MXJC,SC
- SBM TTCU,SC
- SHN 14
- ADM TJAM+3*MXJC,SC
- SBM TTCU+1*MXJC,SC
- SBD BB+4
- PJN SFJ22 IF TOTAL CM .LE. ALLOWABLE MAXIMUM
- SHN 6
- ADD T5
- SHN 14
- ADD T6
- MJN SFJ23 IF TOTAL CM .GT. ALLOWABLE MAXIMUM
- * CALCULATE THE AMOUNT OF CM ASSIGNED TO JOBS OF THE
- * CANDIDATE-S SERVICE CLASS THAT MAY REMAIN ASSIGNED IF THE
- * CANDIDATE IS SELECTED FOR SCHEDULING.
- STD AA+1
- SHN -14
- STD AA
- * PERFORM ECS RESOURCE CONSTRAINT CHECK AS WAS JUST DONE FOR
- * CM.
- SFJ22 LDM TJAM+5*MXJC,SC
- SBM TTUE,SC
- SBD BB+3
- PJN SFJ26 IF TOTAL ECS .LE. ALLOWABLE MAXIMUM
- ADD T7
- PJN SFJ25 IF TOTAL ECS .LE. ALLOWABLE MAXIMUM
- SFJ23 LJM SFJ29 GO CALCULATE ECS OF LOWER PRIORITY JOBS
- * LJM SFJ24 (IF LOWER PRIORITY SCAN ALREADY PERFORMED)
- SFJJ EQU *-1
- * THIS JOB WILL BE SELECTED FOR SCHEDULING ONLY IF NO OTHER
- * CANDIDATES ARE FOUND THAT WOULD NOT VIOLATE SERVICE CLASS
- * RESOURCE CONSTRAINTS AND FLEXIBLE MEMORY PARTITIONING IS
- * ENABLED. ADDITIONALLY, IT WILL BE SCHEDULED ONLY IF NO
- * ROLLOUTS ARE REQUIRED AND WILL BE ASSIGNED THE LOWER BOUND
- * SCHEDULING PRIORITY OF ITS SERVICE CLASS.
- SFJ24 LDM SFJP SET REJECT FLAG
- STM SFJC
- LJM SFJ27 CONTINUE EJT SCAN
- * MAKE THIS JOB THE CURRENT BEST SCHEDULING CANDIDATE.
- SFJ25 STD AA+2
- SFJ26 LDD AA SAVE EXCESS CM AMOUNT
- STD CS
- LDD AA+1
- STD CS+1
- LDD AA+2 SAVE EXCESS ECS AMOUNT
- STD ES
- LDD JP SAVE PRIORITY
- STD T2
- LDD BB+1 SAVE SCHEDULING PRIORITY
- STD JP
- LDD T2 SAVE PREVIOUS BEST PRIORITY
- STD BB+1
- LDD JM SAVE CM AMOUNT
- STD T2
- LDD BB+4 SAVE REQUIRED CM
- STD JM
- LDD T2
- STD BB+4
- LDD BB+3 SAVE REQUIRED ECS
- STD JE
- LDM SFJG SAVE ACTIVITY IN FIRST *TDAC* ENTRY
- STM TDAC
- LDM TDAC,BB+2 SAVE MASS STORAGE ACTIVITY COUNT
- STM SFJG
- LDN 0 CAUSE FIRST *TDAC* ENTRY TO BE USED
- STD BB+2
- LDD EO SAVE EJT ORDINAL
- STD EP
- LDD SC SAVE SERVICE CLASS
- STD SP
- LDD EJ+4 SAVE JOB STATUS
- STM ASJA
- SFJ27 LDC SFJ29 RESTORE INSTRUCTION
- STM SFJJ
- LDD SP
- LMN DSSC
- ZJP SFJX IF DEADSTART SEQUENCING JOB SELECTED
- LJM SFJ13.2 CHECK FOR NEW 2ND BEST JOB
- * CALCULATE AMOUNTS OF CM AND ECS OCCUPIED BY LOWER PRIORITY
- * JOBS.
- SFJ29 LDC SFJ24
- STM SFJJ
- LDD AM+1 INITIALIZE CM ACCUMULATOR
- STD T3
- LDD AM
- STD T2
- LDD AE INITIALIZE ECS ACCUMULATOR
- STD T4
- LDD TE SET *TACP* TABLE POINTER
- STD TP
- SFJ30 SOD TP DECREMENT *TACP* POINTER
- LDI TP
- NJN SFJ31 IF *TACP* SCAN NOT COMPLETE
- LDD T2
- SHN 14
- LMD T3
- SBD BB+4
- MJN SFJ30.1 IF INSUFFICIENT CM TO SCHEDULE THIS JOB
- LDD T4
- SBD BB+3
- MJN SFJ30.1 IF INSUFFICIENT ECS TO SCHEDULE THIS JOB
- LJM SFJ18 GO CHECK RESOURCE CONSTRAINTS
- SFJ30.1 LJM SFJ2 CONTINUE EJT SCAN
- SFJ31 STD T1 SAVE CP/PCP NUMBER
- LDM TJPR-1,T1
- SBD BB+1
- PJN SFJ30 IF *TACP* PRIORITY .GE. CANDIDATE-S
- LDM TJSC-1,T1
- LMD SC
- NJN SFJ32 IF *TACP* SERVICE CLASS .NE. CANDIDATE-S
- * ACCUMULATE CM AND ECS OF LOWER PRIORITY JOB HAVING THE SAME
- * SERVICE CLASS AS THAT OF THE CANDIDATE JOB.
- LDM TJCM-1,T1
- RAD T6
- SHN -14
- RAD T5
- LDM TJEC-1,T1
- RAD T7
- * ACCUMULATE CM AND ECS OF LOWER PRIORITY JOB REGARDLESS OF
- * SERVICE CLASS.
- SFJ32 LDM TJCM-1,T1
- RAD T3
- SHN -14
- RAD T2
- LDM TJEC-1,T1
- RAD T4
- LJM SFJ30 CONTINUE *TACP* SCAN
- SFJA BSS 1 LAST EJT ORDINAL SCHEDULED
- SFJN BSS 0
- LOC SFJB
- UJN SFJ2.2 POST-REJECT SCAN COMPLETE
- LOC *O
- SFJO BSS 0
- LOC SFJI
- UJN SFJ19 POST-REJECT SCHEDULING, SELECT JOB
- LOC *O
- SFJP BSS 0
- LOC SFJC
- NJN SFJ2.2 IF SELECTION MADE AND REJECT FOUND
- LOC *O
- SFJQ BSS 0
- LOC SFJC
- UJN SFJ2.2 EXIT
- LOC *O
- * *UTEM* PARAMETERS FOR SETTING JOB STATUS.
- SFJU VFD 1/1,5/JSNE,6/5 VERIFY THAT JOB STATUS HAS NOT CHANGED
- VFD 6/1,6/0
- CON 0,0
- CON 0 JOB STATUS WHEN JOB WAS SELECTED
- VFD 1/0,5/JSNE,6/5 SET JOB STATUS
- VFD 6/1,6/0
- CON 0
- CON 0
- CON SWJS
- TEFP SPACE 4,10
- ** TEFP - TABLE OF ERROR FLAG PROCESSORS.
- *
- * EACH ENTRY CONTAINS THE ADDRESS OF THE PROCESSOR ASSOCIATED
- * WITH THE ERROR FLAG.
- TEFP INDEX
- INDEX ARET,SFJ8 ARITHMETIC ERROR, ROLLIN FL
- INDEX ITET,SFJ8 SCP INVALID TRANSFER ADDRESS, ROLLIN FL
- INDEX PSET,SFJ8 PROGRAM STOP, ROLLIN FL
- INDEX PPET,SFJ8 PPU ABORT, ROLLIN FL
- INDEX CPET,SFJ8 CPU ABORT, ROLLIN FL
- INDEX PCET,SFJ8 PP CALL ERROR, ROLLIN FL
- INDEX MLET,SFJ8 MESSAGE LIMIT, ROLLIN FL
- INDEX TLET,SFJ8 TIME LIMIT, ROLLIN FL
- INDEX FLET,SFJ8 FILE LIMIT, ROLLIN FL
- INDEX TKET,SFJ8 TRACK LIMIT, ROLLIN FL
- INDEX SRET,SFJ8 SRU LIMIT, ROLLIN FL
- INDEX FSET,SFJ8 FORCED ERROR, ROLLIN FL
- INDEX ODET,SFJ8 OPERATOR DROP, ROLLIN FL
- INDEX IDET,SFJ8 SUBSYSTEM IDLEDOWN, ROLLIN FL
- INDEX RRET,SFJ8 OPERATOR RERUN, ROLLIN FL
- INDEX DRET,SFJ9 DEADSTART RERUN, ROLLIN NFL
- INDEX STET,SFJ8 SUSPENSION TIMEOUT, ROLLIN FL
- INDEX OKET,SFJ8 OPERATOR KILL, ROLLIN FL
- INDEX TIET,SFJ7 USER BREAK ONE, ROLLIN FL
- INDEX TAET,SFJ7 USER BREAK TWO, ROLLIN FL
- INDEX SVET,SFJ9 SECURITY VIOLATION, ROLLIN NFL
- INDEX SSET,SFJ8 SUBSYSTEM ABORT, ROLLIN FL
- INDEX ECET,SFJ8 ECS PARITY ERROR, ROLLIN FL
- INDEX PEET,SFJ8 CPU PARITY ERROR, ROLLIN FL
- INDEX JSET,SFJ9 JOB STEP ABORT, ROLLIN NFL
- INDEX SYET,SFJ9 SYSTEM ABORT, ROLLIN NFL
- INDEX RAET,SFJ9 RECOVERY ABORT, ROLLIN NFL
- INDEX SWET,SFJ9 SYSTEM SOFTWARE ERROR, ROLLIN NFL
- INDEX ORET,SFJ9 OVERRIDE CONDITION, ROLLIN NFL
- INDEX MXET
- TABLES SPACE 4,10
- ** 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 CHANGE TO THIS TABLE MUST BE COUPLED WITH A
- * CORRESPONDING CHANGE TO THE *TJST* TABLE IN *1PP*.
- 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
- SSA SPACE 4,10
- ** SSA - SET SCHEDULER STATISTICAL AREA ADDRESS.
- *
- * EXIT (A) = FWA SCHEDULER STATISTICS WORD 0.
- * (T1) = WORD COUNT FOR EJT SCHEDULING DATA.
- *
- * USES CM - CM+4, T1.
- SSA SUBR ENTRY/EXIT
- LDN JS3S-JS0S+1 SET WORD COUNT
- STD T1
- ADK SDAP-JS3S+JS0S-1 SET SCHEDULER STATISTICS ADDRESS
- CRD CM
- LDD CM
- SHN 14
- LMD CM+1
- ADK JS0S
- UJN SSAX EXIT
- USD SPACE 4,10
- ** USD - UPDATE STATISTICAL DATA.
- *
- * ENTRY (A) = 0 IF JOB SCHEDULED.
- *
- * EXIT SCHEDULING STATISTICAL DATA UPDATED.
- *
- * CALLS SSA.
- USD SUBR ENTRY/EXIT
- NJN USD1 IF JOB NOT ASSIGNED
- AOM SPST+JS1S*5+4 INCREMENT JOBS SCHEDULED
- SHN -14
- RAM SPST+JS1S*5+3
- LDM SFJB
- LMM SFJN
- NJN USD2 IF NOT SCHEDULED ON RESCAN
- AOM SPST+JS2S*5+2 INCREMENT JOBS SCHEDULED ON RESCAN
- SHN -14
- RAM SPST+JS2S*5+1
- UJN USD2 UPDATE STATISTICS
- USD1 LDC 0 UPDATE INSUFFICIENT CM COUNT
- * LDC 1 (INSUFFICIENT CM FOR JOB)
- USDA EQU *-1
- RAM SPST+JS2S*5+4
- SHN -14
- RAM SPST+JS2S*5+3
- LDC 0 UPDATE INSUFFICIENT EM COUNT
- * LDC 1 (INSUFFICIENT EM FOR JOB)
- USDB EQU *-1
- RAM SPST+JS3S*5+2
- SHN -14
- RAM SPST+JS3S*5+1
- LDM SCPA
- NJN USD2 IF CONTROL POINT AVAILABLE
- AOM SPST+JS3S*5+4 SET NO CONTROL POINT AVAILABLE
- SHN -14
- RAM SPST+JS3S*5+3
- USD2 LDC 0 UPDATE SCHEDULABLE JOB COUNT
- USDC EQU *-1 (SCHEDULABLE JOB COUNT)
- RAM SPST+JS0S*5+4
- SHN -14
- RAM SPST+JS0S*5+3
- SHN -14
- RAM SPST+JS0S*5+2
- RJM SSA SET STATISTICAL AREA ADDRESS
- CWM SPST+JS0S*5,T1 WRITE STATISTICAL DATA
- LJM USDX EXIT
- SPST SPACE 4,10
- SPST EQU *-JS0S*5 SCHEDULER PERFORMANCE STATISTICS
- BSS JS3S*5+5-JS0S*5
- TTL 1SJ - JOB SCHEDULER.
- SPACE 4,10
- * COMMON DECKS.
- LIST X
- CPR$ SET 1 ASSEMBLE ROUTINE *CPR* OF *COMPCPE*
- *CALL COMPCPE
- LIST *
- *CALL COMPRJC
- SPACE 4,10
- USE OVERLAY
- SPACE 4,10
- ** OVERLAY ORIGINS.
- O3SA EQU *+5 *3SA* ORIGIN
- O3SB EQU *+5 *3SB* ORIGIN
- SPACE 4,10
- ** OVERFLOW CHECKS.
- ERRNG TJSC-TTUE-MXJC-1 CHECK *1SJ* TABLES OVERFLOW
- TITLE INITIALIZATION.
- PRS SPACE 4,10
- ** PRS - PRESET.
- *
- * USES T1, CM - CM+4, AA - AA+4, BB - BB+4, EJ - EJ+4,
- * TM - TM+4, NC.
- *
- * CALLS RJC.
- *
- * MACROS ISTORE.
- 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
- STM BSTB
- LDN EJTP PRESET EJT FWA
- CRD CM
- LDD CM+1
- STM EJAA
- STM SFJD
- LDD CM
- RAM EJAA-1
- LPN 77
- RAM SFJD-1
- SOD CM+2 SET THE LAST EJT ORDINAL
- STM SFJS
- LDK LOSL SET START OF THE EJT SCAN
- CRD CM
- LDD CM+4
- STM SFJA
- STM SFJT
- LDC RTCL READ REAL TIME CLOCK
- CRD TM
- LDD IR+2 SAVE FLAGS BYTE FROM CALL
- RAM SCJA
- LDD CP SET NUMBER OF CONTROL POINTS
- SHN -7
- STD NC
- LDC INWL
- CRD CM
- LDD CM+3 SAVE SCHEDULER CONTROL FLAGS
- LPN 77
- RAM SCJB
- LPN 10
- ZJN PRS0 IF DEADSTART SEQUENCING JOB HAS RUN
- LDM PRSB
- STM SFJV
- PRS0 LDN SSTL
- CRD CM
- LDD CM
- SHN 21-5
- MJN PRS0.1 IF USER ECS DISABLED
- LDM PRSA
- STM SFJF
- PRS0.1 LDD CM+3
- SHN 21-12
- PJN PRS1 IF FLEXIBLE PARTITIONING ENABLED
- ISTORE SFJW,(UJN SFJX) DISABLE POST-REJECT SCHEDULING
- * BUILD *TEPB*, *TJAM* TABLES.
- PRS1 LDN MXJC-1 INITIALIZE INDEX
- STD T1
- PRS2 RJM RJC CALCULATE JCB ADDRESS
- ADN EXQT READ *EXQT* WORD OF JCB
- CRD AA
- ADN SVJT-EXQT READ *SVJT* WORD OF JCB
- CRD CM
- ADN MCMT-SVJT READ *MCMT* WORD OF JCB
- CRD BB
- ADN MECT-MCMT READ *MECT* WORD OF JCB
- CRD EJ
- LDD AA+1
- STM TEPB,T1
- LDD AA+2
- STM TEPB+1*MXJC,T1
- LDD AA+3
- STM TEPB+2*MXJC,T1
- LDD AA+4
- STM TEPB+3*MXJC,T1
- LDD CM+3
- STM TJAM,T1
- LDD BB+2
- STM TJAM+1*MXJC,T1
- LDD BB+3
- STM TJAM+2*MXJC,T1
- LDD BB+4
- STM TJAM+3*MXJC,T1
- LDD EJ+2
- STM TJAM+4*MXJC,T1
- LDD EJ+4
- STM TJAM+5*MXJC,T1
- SOD T1 DECREMENT JCB INDEX
- MJN PRS3 IF ALL JCB-S HAVE BEEN PROCESSED
- LJM PRS2 GO PROCESS NEXT JCB
- PRS3 LJM PRSX RETURN
- PRSA BSS 0
- LOC SFJF
- UJN SFJ12.2 (USER ECS ENABLED)
- LOC *O
- PRSB BSS 0
- LOC SFJV
- UJN SFJ6 (DEADSTART SEQUENCING JOB NOT RUN)
- LOC *O
- SPACE 4,10
- * OVERFLOW CHECKS.
- ERRNG TJAM-* CHECK FOR *TJAM*/*TEPB* OVERFLOWING *PRS*
- SPACE 4,10
- USE OVERFLOW
- OVERFLOW
- TTL 1SJ/3SA - SCHEDULE SUBSYSTEM.
- TITLE
- IDENT 3SA,O3SA SCHEDULE SUBSYSTEM.
- BASE M
- SST
- *COMMENT 1SJ - SCHEDULE SUBSYSTEM.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- ORG O3SA
- QUAL 3SA
- QUAL$ SET 1
- 3SA SPACE 4,10
- ** SSS - SCHEDULE SUBSYSTEM.
- *
- * READ THE SYSTEM SECTOR OF THE INPUT FILE OR THE ROLLOUT
- * FILE, DEPENDING ON WHETHER JOB STATUS IS *PRJS* OR *ROJS*,
- * RESPECTIVELY. OBTAIN THE SUBSYSTEM IDENTIFICATION NUMBER
- * FROM THE SYSTEM SECTOR AND USE IT TO CHECK THE *SSCT* TABLE
- * FOR A SPECIFIED CONTROL POINT TO WHICH THE SUBSYSTEM SHOULD
- * BE SCHEDULED. IF NO CONTROL POINT IS SPECIFIED, USE THE
- * ONE INDICATED BY CELL *JC*. IF INSUFFICIENT
- * MEMORY FOR THE SUBSYSTEM, CALL ROUTINE *CFL* TO INITIATE
- * ROLLOUT OF LOWER PRIORITY JOBS. IF THE CONTROL POINT AND
- * MEMORY ARE AVAILABLE, CALL ROUTINE *ASJ* TO ASSIGN THE
- * SUBSYSTEM TO THE CONTROL POINT AND CALL *1RI* OR *1AJ*.
- *
- * ENTRY (EO) = (EP) = EJT ORDINAL OF SUBSYSTEM.
- * (SP) = SERVICE CLASS (*SSSC*).
- * (AM - AM+1) = AVAILABLE + ROLLING CM.
- * (AE) = AVAILABLE + ROLLING ECS.
- * (RM - RM+1) = ROLLING CM.
- * (JC) = NUMBER OF AVAILABLE CONTROL POINT. ZERO IF
- * NONE AVAILABLE.
- * (JM) = REQUIRED CM FL.
- * (JE) = REQUIRED ECS.
- * (JP) = SCHEDULING PRIORITY.
- * (TE) = LWA OF *TACP* TABLE.
- * (TM - TM+1) = SECONDS PORTION OF REAL TIME CLOCK.
- * (NC) = SYSTEM CONTROL POINT NUMBER.
- *
- * EXIT (A) = 0 IF THE SUBSYSTEM WAS SCHEDULED.
- * .NE. 0 IF SUBSYSTEM WAS NOT SCHEDULED.
- *
- * USES EO, JC, JE, JF, SI, SP, TP, AA - AA+4, BB - BB+4,
- * CM - CM+4, EJ - EJ+4, T1 - T7.
- *
- * CALLS ASJ, AST, CFL, EJA, IRR, IUT, RSS, SCI, SCP.
- *
- * MACROS ENDMS, MONITOR, SETMS.
- SSS SUBR ENTRY/EXIT
- LDK /CPS/SFIN SET EJT INTERLOCK
- RJM SCI
- NJN SSSX IF TIMEOUT OR ENTRY NOT IN USE
- RJM EJA CALCULATE EJT ENTRY ADDRESS
- ADK JSNE
- CRD EJ
- ADN SCHE-JSNE READ *SCHE* SO THAT (T6) = LOGICAL TRACK
- CRD T5
- ADN PRFE-SCHE
- CRD BB
- LDD EJ+4 SAVE JOB STATUS
- LPN 76
- LMK PRJS*2
- STM SSSA
- * READ SYSTEM SECTOR OF INPUT FILE OR ROLLOUT FILE.
- SETMS IO
- LDN 0
- STD TP
- RJM RSS READ SYSTEM SECTOR
- NJN SSS2 IF I/O ERROR
- ENDMS
- LDM SISS
- LMC RDSI
- NJN SSS1 IF NOT *RDF*
- LCN 7777-IFSI TREAT AS *IAF*
- STM SISS
- SSS1 LJM SSS4 CONTINUE
- * AN I/O ERROR OCCURRED WHILE READING THE SYSTEM SECTOR OR THE
- * SUBSYSTEM IS ALREADY ACTIVE OR THE REQUIRED CONTROL POINT IS
- * OCCUPIED BY ANOTHER SUBSYSTEM. SET AN ERROR FLAG IN THE EJT
- * ENTRY AND CONTINUE. THE JOB WILL BE ABORTED BY *1AJ*.
- SSS2 LDD EJ SET *SSET* ERROR FLAG IN EJT
- STD CM+3
- LDD EJ+1
- STD CM+4
- LDD EO
- STD CM+2
- LDC SSET+4000
- STD CM+1
- MONITOR CEFM
- LDN 1 SELECT NO QFT OPTION ON *RJSM*
- STD CM+1
- MONITOR RJSM GET JSN
- LDD CM+3
- STM SSSB+3
- LDD CM+4
- STM SSSB+4
- LDC SSSB+1*10000
- RJM IUT ISSUE *UTEM*
- LDN 0
- SSS3 LJM SSS8 CONTINUE SCHEDULING
- * GET CP NUMBER (IF ANY) FROM SSCT AND CHECK SSAT TO SEE IF THE
- * SUBSYSTEM IS ALREADY ACTIVE.
- * FOR *DSP* INITIATED SUBSYSTEMS, CP NUMBER AND SSID ARE TAKEN
- * FROM THE SYSTEM SECTOR.
- SSS4 LDM SISS
- SBK DSSI
- ZJN SSS3 IF DEADSTART SEQUENCING JOB
- SBK LSSI+1-DSSI
- MJN SSS6 IF SUBSYSTEM NOT IN SSCT
- LDC ** (JOB STATUS)
- SSSA EQU *-1
- NJN SSS5 IF NOT PRE-INITIAL JOB STATE
- LDC FEAF*10000
- LMM SISS
- RJM AST GET SSAT ENTRY
- ZJN SSS5 IF SUBSYSTEM IS INACTIVE
- LDC PLSI CHECK FOR CYBIS
- LMM SISS
- ZJN SSS5 IF INITIATING CYBIS
- LJM SSS2 SET ERROR FLAG
- SSS5 LDM SISS
- * LMK FECF*10000
- ERRNZ FECF CODE DEPENDS ON VALUE
- RJM AST GET SSCT ENTRY
- LPN 37
- STD TP
- SSS6 LDM CPSS CHECK SYSTEM SECTOR FOR CONTROL POINT
- ZJN SSS7 IF CONTROL POINT NOT SPECIFIED
- LMN 77
- ZJN SSS8 IF ANY AVAILABLE CONTROL POINT SELECTED
- LMN 77
- SBD NC
- MJN SSS10 IF CORRECT CONTROL POINT SPECIFIED
- LDN 0 CLEAR INCORRECT CP NUMBER
- STM CPSS
- SSS7 LDD TP
- NJN SSS10.1 IF CONTROL POINT SPECIFIED IN SSCT
- SSS8 RJM SCP SELECT CONTROL POINT
- NJN SSS11 IF CONTROL POINT AVAILABLE
- SSS9 LDK /CPS/CFIN CLEAR EJT INTERLOCK
- RJM SCI
- LDN 1 INDICATE SUBSYSTEM NOT SCHEDULED
- LJM SSSX RETURN
- * SCHEDULE THE SUBSYSTEM TO THE SPECIFIED CONTROL POINT.
- * IF IT IS OCCUPIED BY A ROLLABLE JOB WITH A LOWER PRIORITY,
- * THAT JOB WILL BE ROLLED OUT. IF IT IS OCCUPIED BY A ROLLABLE
- * JOB WITH A HIGHER PRIORITY OR BY A NON-ROLLABLE JOB, THE
- * SUBSYSTEM JOB STATE WILL BE SET TO *PWJS*, WAITING ON EVENT
- * *SSWE*.
- SSS10 ADD NC
- SSS10.1 STD JC
- SHN 7
- ADN JCIW
- CRD AA
- ADN TFSW-JCIW
- CRD CM
- LDD CM
- NJN SSS12 IF CONTROL POINT IS OCCUPIED
- SSS11 LJM SSS18 SCHEDULE JOB
- SSS12 STD EO STORE EJT ORDINAL FOR *EJA*
- RJM EJA CALCULATE EJT ENTRY ADDRESS
- ADN SCHE
- CRD CM
- LDD EP RESTORE EJT ORDINAL
- STD EO
- LDD AA+2
- ZJN SSS16 IF ROLLOUT ALLOWED
- LMN ORSI
- ZJN SSS16 IF ROLLOUT NOT INHIBITED
- LDM SISS
- LMC IFSI
- ZJP SSS2 IF IAF
- LDC SSSD+SSSDL*10000
- RJM IUT SET SUBSYSTEM TO *PWJS*
- UJP SSS9 TERMINATE
- SSS16 LDD JP
- SBD CM+4
- MJN SSS17 IF JOB AT CP HAS HIGHER PRIORITY
- LDD JC
- RJM IRR REQUEST ROLLOUT OF JOB
- SSS17 LJM SSS9 TERMINATE
- SSS18 RJM CFL COMMIT FIELD LENGTH
- * ASSIGN JOB IF SUFFICIENT CM.
- LDD AM
- SBD RM
- SHN 14
- LMD AM+1
- SBD RM+1
- SBD JM
- MJN SSS17 IF INSUFFICIENT AVAILABLE CM
- LDK /CPS/CFIN CLEAR EJT INTERLOCK
- RJM SCI
- RJM EJA CHECK FOR AN ERROR FLAG IN THE EJT ENTRY
- ADK PRFE
- CRD CM
- LDD CM+1
- LMN SSET
- NJN SSS19 IF NOT A SUBSYSTEM ABORT ERROR FLAG
- LDN BCSC PREVENT AN UPDATE OF THE *SSAT* TABLE
- STD SP
- SSS19 RJM ASJ ASSIGN JOB TO CONTROL POINT
- LJM SSSX RETURN
- * *UTEM* PARAMETERS FOR JSN CHANGE.
- SSSB VFD 1/0,5/JSNE,6/24D
- VFD 6/36D,6/0
- CON 0
- CON 0
- CON 0
- * *UTEM* PARAMETERS TO SET *PWJS*.
- SSSD VFD 1/0,5/SCHE,6/30D
- VFD 6/0,6/0
- VFD 6/0,6/0
- VFD 3/5,9/0
- CON SSWE SUBSYSTEM WAITING EVENT
- VFD 1/0,5/JSNE,6/5
- VFD 6/1,6/0
- CON 0
- CON 0
- CON PWJS
- SSSDL EQU */5-SSSD/5
- SCI SPACE 4,11
- ** SCI - SET/CLEAR EJT INTERLOCK.
- *
- * ENTRY (A) = INTERLOCK FUNCTION.
- *
- * EXIT (A) = 0 IF SUCCESSFUL.
- *
- * USES T0, T1, T4.
- *
- * CALLS EJA, SFI.
- *
- * MACROS DELAY, PAUSE.
- SCI3 SOD T4
- NJN SCI1 IF NOT TIMEOUT
- SCI4 LDN 1 INDICATE FAILURE
- SCI SUBR ENTRY/EXIT
- STD T1 SAVE INTERLOCK FUNCTION
- LDK 10D SET RETRY COUNTER
- STD T4
- SCI1 RJM EJA GET EJT ADDRESS
- RJM SFI SET/CLEAR INTERLOCK
- ZJN SCIX IF REQUEST SUCCESSFUL
- SBN 2
- PJN SCI4 IF ENTRY NOT IN USE
- LDD HN DELAY FOR 128*64 MICROSECONDS
- STD T0
- SCI2 DELAY
- PAUSE NE
- SOD T0
- PJN SCI2 IF MORE DELAY
- UJN SCI3 CHECK FOR TIMEOUT
- SPACE 4,10
- * COMMON DECKS.
- SUB$ EQU 1 ASSEMBLE *SUBSYST* MACRO CALLS
- *CALL COMSSSD
- AST$ SET 1 ASSEMBLE ALL FUNCTIONS OF *COMPAST*
- LIST X
- *CALL COMPAST
- LIST *
- *CALL COMPRSS
- SFI$ EQU 1 SELECT IMMEDIATE RETURN FROM *SFI*
- *CALL COMPSFI
- SPACE 4,10
- ** TSCI - SUBSYSTEM CPU PRIORITIES.
- * ENTRY = 1 WORD.
- * INDEXED BY SUBSYSTEM IDENTIFICATION NUMBER.
- *
- *T 12/ PR
- * PR CPU PRIORITY TO BE ASSIGNED TO SUBSYSTEM.
- TSCI INDEX
- LIST D
- .SUB HERE
- LIST *
- INDEX MXSI-LSSI
- SPACE 4,10
- * OVERFLOW CHECKS.
- USE OVERFLOW
- OVERFLOW O3SA,TJSC
- SPACE 4,10
- QUAL
- TTL 1SJ/3SB - SCHEDULE INPUT FILES TO EJT.
- TITLE
- IDENT 3SB,O3SB SCHEDULE INPUT FILES TO EJT.
- BASE M
- SST
- *COMMENT 1SJ - SCHEDULE INPUT FILES TO EJT.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- ORG O3SB
- QUAL 3SB
- QUAL$ SET 1
- 3SB SPACE 4,15
- ** SIE - SCHEDULE INPUT FILES TO EJT.
- *
- * SCHEDULE AS MANY INPUT FILES TO THE EJT AS POSSIBLE, UP TO A
- * LIMIT OF *TIOOL*. AN INPUT FILE QFT ENTRY IS CONSIDERED
- * ELIGIBLE FOR SCHEDULING ONLY IF THE FOLLOWING CONDITIONS ARE
- * MET -
- * 1. THE FILE TYPE IS INPUT.
- * 2. THE QFT ENTRY IS NOT ASSIGNED TO AN EJT ENTRY.
- * 3. SCHEDULING THE INPUT FILE TO THE EJT WOULD NOT
- * INCREASE THE SERVICE CLASS JOB COUNT ABOVE THE
- * ALLOWABLE MAXIMUM.
- * 4. THE QFT ENTRY TIME FIELD IS NON-ZERO.
- SIE SUBR ENTRY/EXIT
- RJM PRS PRESET *3SB*
- ZJN SIE2 IF QFT SCHEDULING SHOULD NOT BE PERFORMED
- RJM SIQ SCAN QFT
- LDD T7
- LMN TIOOL
- ZJN SIE2 IF *TIOO* TABLE IS EMPTY
- RJM CEE CREATE EJT ENTRIES
- * UPDATE THE JOB COUNTS IN THE JOB CONTROL AREA.
- SIE2 LDN MXJC INITIALIZE JCB INDEX
- STD T1
- SEI3 SOD T1 DECREMENT JCB INDEX
- ZJP SIE5 IF ALL JCB-S WERE UPDATED
- RJM RJC CALCULATE JCB ADDRESS
- ADN SVJT
- CRD BB
- ADN JCTT-SVJT
- CRD AA
- LDD AA
- SBD BB+3
- MJN SIE4 IF JOB COUNT WAS LESS THAN JOB LIMIT
- LDM TJCT,T1
- SBD BB+3
- PJN SIE4 IF NEW JOB COUNT NOT BELOW JOB LIMIT
- AOM SIEA INDICATE TO ISSUE EVENT
- SIE4 LDM TJCT,T1
- STD AA
- LDD AA+1
- ZJN SIE4.1 IF NO JOBS WAITING
- SOD AA+1 DECREMENT QFT TIME-OUT
- SIE4.1 LDD T1
- RJM RJC CALCULATE JCB ADDRESS
- ADN JCTT
- CWD AA UPDATE JOB COUNT
- UJN SEI3 CONTINUE UPDATING JOB COUNTS
- SIE5 LDC 0
- SIEA EQU *-1 (NONZERO IF TO ISSUE EVENT)
- ZJN SIE6 IF TO NOT ISSUE EVENT
- LDN ZERL ISSUE JOB COUNT BELOW SERVICE LIMIT EVENT
- CRD CM
- LDN SCFE
- STD CM+4
- MONITOR EATM
- SIE6 LJM SIEX RETURN
- CEE SPACE 4,15
- ** CEE - CREATE EJT ENTRIES.
- *
- * BUILD AN EJT ENTRY FOR EACH ENTRY IN THE *TIOO* TABLE.
- *
- * ENTRY (T7) = INDEX OF FIRST *TIOO* ENTRY.
- *
- * USES T1, T7, CM - CM+4, AA - AA+4, BB - BB+4, EJ - EJ+4,
- * EO, IO, SC.
- *
- * CALLS CET, EJA, IOA, IUT.
- *
- * MACROS MONITOR.
- CEE SUBR ENTRY/EXIT
- * GET THE ORDINAL OF THE NEXT AVAILABLE EJT SLOT.
- CEE1 LDN 0 GET EJT ENTRY
- STD CM+1
- STD EO
- LDD MA SET INITIAL EJT DATA
- CWM CEEA,ON
- LDN /CPS/PEJT
- STD CM+2
- LDM TIOO+2*TIOOL,T7 CHECK SERVICE CLASS
- LMN SYSC
- ZJN CEE1.1 IF SYSTEM JOB
- LMN SYSC&DSSC
- ZJN CEE1.1 IF DEADSTART SEQUENCING JOB
- LMN DSSC&SSSC
- NJN CEE1.2 IF NOT SUBSYSTEM
- CEE1.1 LDC 4000 SET SYSTEM ORIGIN FLAG
- RAD CM+2
- CEE1.2 MONITOR MTRM
- LDD CM+1
- ZJN CEE4 IF NO EJT ENTRY AVAILABLE
- * USE THE *UTEM* MONITOR FUNCTION TO SET THE QFT ENTRY
- * INTERLOCK AND VERIFY THE ENTRY IS STILL ACCEPTABLE FOR
- * SCHEDULING.
- CEE2 STD EO SAVE EJT ORDINAL
- CEE2.1 LDM TIOO,T7 GET QFT ORDINAL FROM *TIOO* TABLE
- STD IO
- LDM TIOO+2*TIOOL,T7 SAVE SERVICE CLASS
- STD SC
- LDC 0*10000+1S17D
- RJM IUT ISSUE *UTEM* MONITOR FUNCTION
- ZJN CEE5 IF INTERLOCK GOTTEN
- CEE3 SOM TJCT,SC DECREMENT JOB COUNT
- CEE4 AOD T7
- LMN TIOOL
- ZJN CEE4.1 IF *TIOO* SCAN COMPLETE
- LDD EO
- NJN CEE2.1 IF UNUSED EJT ENTRY PRESENT
- LJM CEE1 GET ANOTHER EJT ENTRY
- CEE4.1 LDD EO
- ZJN CEE4.2 IF NO EJT ENTRY TO RETURN
- STD CM+1 RETURN EJT ENTRY
- LDN /CPS/PEJT
- STD CM+2
- MONITOR MTRM
- CEE4.2 LJM CEEX RETURN
- CEE5 RJM IOA CALCULATE QFT ENTRY ADDRESS
- ADK JSNQ
- CRD EJ
- ADN ENTQ-JSNQ
- CRD AA
- ADN INSQ-ENTQ
- CRD CM
- ADN SCLQ-INSQ
- CRD BB
- LDD CM+3 SAVE ACCESS LEVEL LIMITS
- LPC 777
- STM CEEB
- * VERIFY ENTRY.
- LDD BB
- SHN -6
- LMD SC
- NJN CEE6 IF SERVICE CLASS CHANGED
- LDD EJ+4
- ERRNZ INQF CODE ASSUMES *INQF* = 0
- LPC 7002
- ZJN CEE7 IF *TYPE* AND *STAT* FIELDS ARE OK
- CEE6 LDC 0*10000+1S17D+1S16D CLEAR INTERLOCK
- RJM IUT ISSUE *UTEM* MONITOR FUNCTION
- LJM CEE3 CONTINUE PROCESSING *TIOO* TABLE
- * CREATE EJT ENTRY.
- CEE7 LDD BB
- LPN 17
- LMK IAOT
- STD T1
- ZJN CEE8 IF INTERACTIVE JOB
- LDN NICS&OLCS
- CEE8 LMN OLCS SET CONNECTION STATUS
- SHN 7
- LMK PRJS*2 SET JOB STATUS
- STD EJ+4
- LDN 0
- STD AA+2
- STD BB+3
- LDD T1
- ZJN CEE8.1 IF INTERACTIVE SERVICE CLASS
- LDD SC
- LMN SSSC
- NJN CEE9 IF NOT A SUBSYSTEM
- CEE8.1 LDC 4000 SET NO-RERUN FLAG
- RAD AA+2
- * CALCULATE INITIAL SCHEDULING PRIORITY.
- CEE9 LDM TEPB+3*MXJC,SC SAVE INITIAL PRIORITY FOR *CET*
- STD T1
- LDD SC
- SHN 14
- LMN EXQT
- RJM CET CALCULATE ENTRY TIME
- LDD T1 SAVE CALCULATED ENTRY TIME IN *SCHE* IMAGE
- STD AA+3
- LDD T2
- STD AA+4
- LDN AFFL+DNFL SET INITIAL CM FL
- STD BB+4
- CEEC LDN ** (SYSTEM SECURITY MODE)
- STD T1
- ZJN CEE10 IF UNSECURED SYSTEM
- LDM CEEB CHECK ACCESS LEVEL LIMITS
- SHN -6+22
- STD CM+4 LOWER ACCESS LEVEL LIMIT
- SHN -22+6
- LPN 7
- STD CM+3 UPPER ACCESS LEVEL LIMIT
- LDD BB SET ORIGIN TYPE
- LPN 17
- STD CM+2
- LDN /CPS/VJLS VALIDATE JOB LIMITS
- STD CM+1
- MONITOR VSAM
- LDD CM+1
- STD T1 SAVE RETURN STATUS
- CEE10 LDK ZERL
- CRD CM
- LDM CEEB SET ACCESS LEVEL LIMITS
- LPN 7
- STD CM+2
- LDM CEEB
- SCN 77
- SHN -3
- RAD CM+2
- LDD T1
- ZJN CEE11 IF LIMITS ARE VALID
- LDK SYET SET ERROR FLAG
- STD CM+1
- * WRITE EJT ENTRY TO CM.
- CEE11 RJM EJA CALCULATE EJT ENTRY ADDRESS
- ADN SCHE
- CWD AA
- ADN PRFE-SCHE
- CWD CM
- ADN SCLE-PRFE
- CWD BB
- SBN SCLE-JSNE
- CWD EJ
- * RETURN QFT ENTRY.
- LDD IO
- STD CM+1
- LDN /CPS/PQFT
- STD CM+2
- MONITOR MTRM
- STD EO CLEAR EJT ORDINAL
- LJM CEE4 CONTINUE PROCESSING *TIOO* TABLE
- CEEA VFD 24/4L****,36/1 INITIAL EJT DATA
- CEEB CON 0 ACCESS LEVEL LIMITS
- FLP SPACE 4,25
- ** FLP - FIND LOWEST PRIORITY JOB.
- *
- * SCAN THE *TIOO* TABLE TO FIND THE LOWEST PRIORITY JOB.
- *
- * ENTRY (A) = 0 IF THE LOWEST PRIORITY JOB OF THE ENTIRE
- * *TIOO* TABLE IS TO BE FOUND.
- * (A) .NE. 0 IF THE LOWEST PRIORITY JOB OF SERVICE CLASS
- * *SC* IS TO BE FOUND.
- * (SC) = SERVICE CLASS IF (A) .NE. 0.
- * (T7) = CURRENT *TIOO* INDEX.
- *
- * EXIT (A) = *TIOO* INDEX OF LOWEST PRIORITY JOB.
- * (A) = 7777 IF CALLER REQUESTED LOWEST PRIORITY JOB OF
- * A SERVICE CLASS BUT *TIOO* TABLE CONTAINS NO
- * ENTRIES FOR JOBS OF THE SPECIFIED SERVICE
- * CLASS; OR THE *TIOO* TABLE IS EMPTY.
- * (T4) = PRIORITY.
- * (T5) = *TIOO* INDEX.
- *
- * USES T3 - T5.
- FLP4 LDD T5
- FLP SUBR ENTRY/EXIT
- STM FLPA SET/CLEAR SERVICE CLASS FLAG
- LCN 0 INITIALIZE LOWEST PRIORITY
- STD T4
- STD T5 PRESET EXIT CONDITION
- LDD T7 INITIALIZE *TIOO* INDEX
- STD T3
- FLP1 LMN TIOOL
- ZJN FLP4 IF *TIOO* SCAN IS COMPLETE
- LDC **
- FLPA EQU *-1 (SERVICE CLASS FLAG)
- ZJN FLP2 IF ALL SERVICE CLASSES WILL BE CONSIDERED
- LDM TIOO+2*TIOOL,T3
- LMD SC
- NJN FLP3 IF WRONG SERVICE CLASS
- FLP2 LDM TIOO+1*TIOOL,T3
- SBD T4
- PJN FLP3 IF PRIORITY .GE. CURRENT LOWEST
- RAD T4 SET NEW LOWEST PRIORITY
- LDD T3 SAVE *TIOO* INDEX
- STD T5
- FLP3 AOD T3 INCREMENT *TIOO* INDEX
- UJN FLP1 CONTINUE SCAN
- IOA SPACE 4,10
- ** IOA - CALCULATE QFT ENTRY ADDRESS.
- *
- * ENTRY (IO) = QFT ORDINAL.
- *
- * EXIT (A) = QFT ADDRESS.
- *
- * MACROS CFI.
- IOA SUBR ENTRY/EXIT
- CFI QFT,IO CALCULATE ENTRY OFFSET
- ADC **
- IOAA EQU *-1 (IOQT FWA)
- UJN IOAX RETURN
- SIQ SPACE 4,20
- ** SIQ - SCAN QFT.
- *
- * SCAN THE QFT LOOKING FOR SCHEDULABLE INPUT FILES. BUILD
- * *TIOO* TABLE ENTRIES FOR THE *N* HIGHEST PRIORITY INPUT
- * FILES, WHERE *N* = MIN(*TP*,*TIOOL*). *TP* IS THE NUMBER OF
- * AVAILABLE EJT ENTRIES AND *TIOOL* IS AN ASSEMBLY CONSTANT.
- * IF AN INPUT QFT ENTRY CONTAINS A DESTINATION LID (*DLID*),
- * *1SJ* WILL ONLY SCHEDULE THE JOB IF THE *DLID* HAS THE
- * ATTRIBUTES *HOST* AND *ENABLED*.
- *
- * ENTRY (A) .LT. 0, ONLY SCHEDULE SYSTEM JOBS.
- * (TP) = NUMBER OF AVAILABLE EJT ENTRIES.
- * (IO) = LARGEST QFT ORDINAL.
- *
- * EXIT (T7) = CURRENT *TIOO* INDEX.
- *
- * USES EO, IO, SC, TP, AA - AA+4, BB - BB+4, CM - CM+4,
- * T1 - T7.
- *
- * CALLS CPR, FLP, IOA.
- *
- * MACROS CFI.
- SIQ SUBR ENTRY/EXIT
- PJN SIQ0 IF NOT EJT THRESHOLD
- LDC LMNI+SYSC
- UJN SIQ0.1 CONTINUE
- SIQ0 LDC UJNI+SIQ3.0-SIQE SET NORMAL SCHEDULING
- ERRNG 37-SIQ3.0+SIQE IF JUMP OUT OF RANGE
- SIQ0.1 STM SIQE
- LDN TIOOL INITIALIZE *TIOO* INDEX
- STD T7
- SBN 1 INITIALIZE INDEX OF LOWEST PRIORITY JOB
- STD T5
- LCN 0 INITIALIZE LOWEST *TIOO* ENTRY PRIORITY
- STD T4
- LDD IO
- SIQ1 CFI QFT,,IO GET QFT ENTRY OFFSET
- ADC **
- SIQA EQU *-1 (QFT FWA)
- ADK JSNQ
- CRD CM
- LDD CM
- NJN SIQ3 IF NOT AN EMPTY ENTRY
- SIQ2 SOD IO
- NJN SIQ1 IF QFT SCAN NOT COMPLETE
- UJN SIQX RETURN
- SIQ3 LDD CM+4
- ERRNZ INQF CODE ASSUMES *INQF* = 0
- LPC 7003
- NJN SIQ2 IF FILE NOT ELIGIBLE FOR SCHEDULING
- LDN 1 SET NOT ABORTED INPUT FILE
- STD EO
- RJM IOA CALCULATE QFT ENTRY ADDRESS
- ADN ENTQ
- CRD CM
- ADN INSQ-ENTQ READ DESTINATION LID
- CRD BB
- ADN SCLQ-INSQ
- CRD AA
- LDD AA GET SERVICE CLASS
- SHN -6
- STD SC
- SIQE UJN SIQ3.0 CONTINUE
- * LMN SYSC (EJT FULL, ONLY SCHEDULE SYSTEM JOBS)
- ZJN SIQ3.0 IF SYSTEM JOB
- LMN DSSC&SYSC
- ZJN SIQ3.0 IF DEADSTART SEQUENCING JOB
- LMN SSSC&DSSC
- NJN SIQ2 IF NOT A SUBSYSTEM
- SIQ3.0 LDD SC
- SBN DSSC
- NJN SIQ3.1 IF NOT DEADSTART SEQUENCING JOB
- LDN TIOOL-1 RESET *TIOO* INDEX
- STD T7
- ERRNZ LJMI-100
- LDD HN STORE *LJM* INSTRUCTION
- STM SIQC
- LDC SIQX
- STM SIQC+1
- LCN 0 SET PRIORITY TO MAXIMUM
- LJM SIQ8 BUILD *TIOO* ENTRY
- * THIS INPUT FILE IS SCHEDULABLE.
- * DETERMINE IF DESTINATION LID IS HOST LID.
- SIQ3.1 LDD BB+2 CHECK IF DLID PRESENT IN QFT
- SCN 77
- ADD BB+1
- ZJN SIQ4 IF NO DLID
- LDC ** INITIALIZE *THLD* TABLE INDEX
- SIQD EQU *-1 (2*NUMBER OF HOST LIDS)
- ZJP SIQ2 IF NO HOST LIDS PRESENT
- SBN 2
- STD T6
- SIQ3.2 LDD BB+1 CHECK NEXT LID
- LMM THLD,T6
- NJN SIQ3.3 IF NOT A MATCH
- LDD BB+2
- LMM THLD+1,T6
- SCN 77
- ZJN SIQ4 IF A MATCH
- SIQ3.3 LCN 2
- RAD T6
- PJN SIQ3.2 IF NOT END OF TABLE
- UJN SIQ5 CHECK NEXT QFT ENTRY
- SIQ4 LDD CM+3 SAVE ENTRY TIME
- STD T1
- LDD CM+4
- STD T2
- LDD SC
- RJM RJC
- ADK JCTT
- CRD BB
- LDD BB+1
- NJN SIQ5 IF JOBS WAITING FOR THIS SERVICE CLASS
- * CALCULATE QUEUE PRIORITY OF SELECTED INPUT FILE.
- LDD T2
- ZJN SIQ4.1 IF NOT POSSIBLE ABORTED INPUT FILE
- LMN 1 CHECK FOR ENTRY TIME OF 1
- NJN SIQ4.1 IF NOT ABORTED INPUT FILE
- LDD T1
- NJN SIQ4.1 IF NOT ABORTED INPUT FILE
- SOD EO SET ABORTED INPUT FILE
- SIQ4.1 LDD SC
- SHN 14
- LMK INQT
- RJM CPR CALCULATE QUEUE PRIORITY
- MJN SIQ5 IF NO JCB FOR SERVICE CLASS
- NJN SIQ6 IF NON-ZERO ENTRY TIME
- SIQ5 LJM SIQ2 CONTINUE QFT SCAN
- * CHECK JOB COUNT LIMIT.
- SIQ6 STD T2 SAVE CALCULATED PRIORITY
- LDD EO
- NJN SIQ6.1 IF NOT ABORTED INPUT FILE
- LCN 0 SET PRIORITY MAXIMUM
- STD T2
- UJN SIQ7 SKIP JOB COUNT CHECK
- SIQ6.1 LDM TJCT,SC
- SBM TJAM,SC
- MJN SIQ7 IF JOB COUNT LIMIT NOT REACHED
- LDD SC
- LMN DISC
- ZJN SIQ7 IF DETACHED JOB
- LDD AA
- LPN 17
- LMK IAOT
- ZJN SIQ7 IF INTERACTIVE JOB
- RJM FLP FIND LOWEST PRIORITY JOB OF SERVICE CLASS
- SHN 6
- MJN SIQ5 IF NO JOBS OF SERVICE CLASS IN *TIOO*
- LDD T4
- SBD T2
- PJN SIQ5 IF PRIORITY OF NEW JOB .LE. LOWEST
- LJM SIQ13 CREATE *TIOO* ENTRY FOR CURRENT QFT ENTRY
- * BUILD *TIOO* ENTRY.
- SIQ7 SOD T7 DECREMENT *TIOO* INDEX
- SOD TP DECREMENT AVAILABLE EJT ENTRY COUNT
- * LJM SIQ12 (IF NO NEW *TIOO* SLOTS SHOULD BE USED)
- SIQB EQU *-2
- LDD T2
- SIQ8 STM TIOO+1*TIOOL,T7
- LDD IO PLACE QFT ORDINAL IN *TIOO* ENTRY
- STM TIOO,T7
- LDD SC PLACE SERVICE CLASS IN *TIOO* ENTRY
- STM TIOO+2*TIOOL,T7
- LDD EO 0= ABORTED INPUT FILE, 1=NORMAL INPUT FILE
- RAM TJCT,SC INCREMENT JOB COUNT
- * LJM SIQX (IF DEADSTART SEQUENCING JOB FOUND)
- SIQC EQU *-2
- LDD T2
- SBD T4
- PJN SIQ9 IF JOB-S PRIORITY NOT NEW LOWEST OF *TIOO*
- LDD T7 SAVE INDEX OF NEW LOWEST PRIORITY JOB
- STD T5
- LDD T2 SAVE PRIORITY OF NEW LOWEST JOB
- STD T4
- SIQ9 LDD T7
- ZJN SIQ10 IF *TIOO* TABLE IS FULL
- LDD TP
- NJN SIQ11 IF MORE AVAILABLE EJT ENTRIES EXIST
- SIQ10 LDC SIQ12 PREVENT USE OF NEW *TIOO* SLOTS
- STM SIQB+1
- LDD HN STORE *LJM*
- STM SIQB
- SIQ11 LJM SIQ2 CONTINUE QFT SCAN
- * NO NEW *TIOO* SLOTS MAY BE USED. SEE IF THE CURRENT QFT
- * ENTRY HAS A HIGHER QUEUE PRIORITY THAN THE LOWEST PRIORITY
- * *TIOO* ENTRY. IF SO, REPLACE THAT JOB-S *TIOO* ENTRY WITH A
- * NEW ONE FOR THE CURRENT QFT ENTRY.
- SIQ12 LDD T4
- SBD T2
- PJN SIQ11 IF NEW JOB-S PRIORITY .LE. *TIOO* LOWEST
- SIQ13 LDM TIOO+2*TIOOL,T5 GET SERVICE CLASS OF CURRENT LOWEST
- STD T3
- SOM TJCT,T3 DECREMENT JOB COUNT FOR OLD *TIOO* LOWEST
- AOM TJCT,SC INCREMENT JOB COUNT FOR NEW JOB
- LDD IO SAVE QFT ORDINAL IN *TIOO* ENTRY
- STM TIOO,T5
- LDD T2 SAVE QUEUE PRIORITY IN *TIOO* ENTRY
- STM TIOO+1*TIOOL,T5
- LDD SC SAVE SERVICE CLASS IN *TIOO* ENTRY
- STM TIOO+2*TIOOL,T5
- * SCAN THE *TIOO* TABLE TO FIND THE NEW LOWEST PRIORITY JOB.
- LDN 0
- RJM FLP FIND LOWEST PRIORITY JOB
- UJN SIQ11 CONTINUE QFT SCAN
- SPACE 4,10
- * COMMON DECKS.
- CPR$ SET 1 ASSEMBLE ROUTINE *CPR* OF *COMPCPE*
- CET$ SET 1 ASSEMBLE ROUTINE *CET* OF *COMPCPE*
- IOQ$ SET 1 ENABLE ZERO ENTRY TIME CHECK
- LIST X
- *CALL COMPCPE
- LIST *
- ERRNG TJCT-* OVERFLOW INTO *TJCT*
- TITLE PRESET.
- USE TABLES
- PRS SPACE 4,10
- ** PRS - PRESET *3SB*.
- *
- * BUILDS THE *THLD* TABLE OF HOST-ENABLED LIDS. IF
- * DEADSTART SEQUENCING JOB IS ACTIVE, OR IF THE LDT
- * HAS NOT BEEN CREATED YET DUE TO A *CLDT* ABORT,
- * THEN NO *THLD* TABLE WILL BE CREATED, AND NO INPUT
- * FILES CONTAINING A DESTINATION LID IN THE QFT ENTRY
- * WILL BE SCHEDULED.
- *
- * EXIT (A) = RESPONSE FROM *SEJ*.
- *
- * USES IO, T6, T9, AA - AA+4, BB - BB+4, CM - CM+4,
- * T1 - T1+4.
- *
- * CALLS AST, SEJ.
- *
- * MACROS ISTORE, MONITOR.
- PRS8 LDC ** RETURN RESPONSE FROM *SEJ*
- PRSA EQU *-1
- PRS SUBR ENTRY/EXIT
- LDC IFSI+FECF*10000 CHECK *IAF* ACCESSIBILITY
- RJM AST GET *IAF* SSCT ENTRY
- SHN 21-13
- MJN PRS0 IF *IAF* ACCESSIBLE
- LDC UJNI+SEJ8-SEJB DISABLE SUSPENSION TIME-OUT
- STM SEJB
- ERRNG 37-SEJ8+SEJB JUMP OVERFLOW
- PRS0 LDN MXJC-1 INITIALIZE *TJCT* TABLE
- STD T1
- PRS0.1 LDN 0
- STM TJCT,T1
- SOD T1 DECREMENT TABLE INDEX
- PJN PRS0.1 IF NOT DONE
- RJM SEJ SCAN EJT
- STM PRSA SAVE RESPONSE
- SHN -14
- RAM PRSA-1
- LDK LIDP GET FWA OF LDT
- CRD T1
- LDD T1 GET PID COUNT
- SHN 14
- LMD T2
- CRD AA
- LDN 1 INITIALIZE LDT INDEX
- STD T6
- LDD AA+4 SAVE PID COUNT
- STD T3
- LDN 0 INITIALIZE *THLD* POINTER
- STD T9
- PRS1 SOD T3 DECREMENT PID COUNT
- PJN PRS2 IF MORE PIDS
- LJM PRS7 SET *QFT* FWA
- PRS2 LDD T1 READ FIRST WORD OF PID ENTRY
- SHN 14
- LMD T2
- ADD T6
- CRD AA
- ADN 1 SECOND WORD OF PID ENTRY
- CRD BB
- ADN 1 THIRD WORD OF PID ENTRY
- CRD CM
- LDD AA+1
- SHN 21-5
- MJN PRS3 IF HOST PID
- LDD BB+4 POINT TO NEXT PID ENTRY
- RAD T6
- UJN PRS1 CHECK NEXT PID
- PRS3 LDN 3-1 FWA-1 OF LID ENTRY
- RAD T6
- PRS4 SOD CM+4 DECREMENT LID SLOT COUNT
- MJP PRS5 IF ALL LID SLOTS CHECKED
- AOD T6 POINT TO NEXT LID ENTRY
- LDD T1 READ LID ENTRY
- SHN 14
- LMD T2
- ADD T6
- CRD AA
- LDD AA
- ZJN PRS4 IF HOLE IN LDT
- * ADD ONLY HOST LIDS THAT ARE ENABLED AND ARE NOT
- * LINKED OR STORE-AND-FORWARD TO THE HOST LID TABLE.
- LDD AA+2
- SHN 21-13
- PJN PRS4 IF LID NOT ENABLED
- SHN 21-10-21+13
- MJN PRS4 IF LID LINKED (LOOPBACK SET)
- SHN 21-12-21+10+22
- MJN PRS4 IF STOREF SET
- LDD AA ADD LID TO HOST LID TABLE
- STM THLD,T9
- LDD AA+1
- STM THLD+1,T9
- LDN 2 INCREMENT *THLD* INDEX
- RAD T9
- ADC -THLDL
- MJN PRS4 IF ROOM FOR MORE HOST LIDS
- LDN 0
- STD CM+2 SET NO ERROR FLAG
- LDC *
- STD CM+1 ADDRESS WHERE ERROR DETECTED
- MONITOR CHGM CONDITIONAL HANG FOR NO ROOM
- PRS5 LDD T9
- ZJN PRS7 IF NO HOST LIDS DEFINED
- STM SIQD SAVE LENGTH OF HOST LID TABLE
- PRS7 LDK QFTP PRESET QFT FWA
- CRD CM
- LDD CM
- RAM IOAA-1
- STM SIQA-1
- LDD CM+1
- STM IOAA
- STM SIQA
- SOD CM+2 PRESET QFT ORDINAL FOR BACKWARD SCAN
- STD IO
- LDK SSML SET SYSTEM SECURITY MODE
- CRD CM
- LDD CM
- LPN 7
- RAM CEEC
- LJM PRS8 RETURN
- SPACE 4,10
- * PRESET COMMON DECKS.
- *CALL COMPAST
- ERRNG THLD-* OVERFLOW INTO *THLD*
- EJECT
- * CODE OVERWRITTEN BY *PRS*.
- SEJ SPACE 4,25
- ** SEJ - SCAN EJT.
- *
- * SCAN THE EJT TO PERFORM THE FOLLOWING FUNCTIONS -
- *
- * 1. COUNT THE NUMBER OF EXECUTING JOBS IN EACH SERVICE
- * CLASS. JOBS IN TIMED/EVENT ROLLOUT WAITING TO
- * CHANGE INTO ANOTHER SERVICE CLASS ARE NOT COUNTED.
- * 2. DETERMINE IF THERE ARE ANY AVAILABLE EJT ENTRIES.
- * 3. PERFORM SUSPENSION TIME-OUT PROCESSING AS REQUIRED.
- * 4. CHECK FOR THE EXISTENCE OF THE DEADSTART SEQUENCING
- * JOB.
- *
- * ENTRY (SFJS) = LARGEST EJT ORDINAL.
- * (TM - TM+1) = SECONDS PORTION OF REAL-TIME CLOCK.
- *
- * EXIT (A) .LT. 0, IF TO SCHEDULE ONLY SYSTEM JOBS.
- * (A) = 0, IF DEADSTART SEQUENCING JOB.
- * (A) .GT. 0, SCHEDULE ANY JOB.
- * (TP) = NUMBER OF AVAILABLE EJT ENTRIES.
- *
- * USES CM - CM+4, AA - AA+4, BB - BB+4, EJ - EJ+4, EO, SC,
- * TP.
- *
- * CALLS EJA.
- *
- * MACROS CFI, MONITOR.
- SEJ10 LDN 1 ALLOW SCHEDULING
- SEJ SUBR ENTRY/EXIT
- LDN 0 INITIALIZE EMPTY EJT ENTRY COUNT
- STD TP
- LDM EJAA-1 PRESET EJT FWA
- STM SEJA-1
- STM SEJC-1
- LDM EJAA
- STM SEJA
- STM SEJC
- LDM SFJS PRESET EJT ORDINAL FOR BACKWARD SCAN
- STD EO
- SEJ1 CFI EJT,,EO GET EJT ENTRY OFFSET
- ADC **
- SEJA EQU *-1 (EJT FWA)
- ADK JSNE
- CRD EJ
- ADK SCHE-JSNE
- CRD AA
- ADK PRFE-SCHE
- CRD BB
- ADK SCLE-PRFE
- CRD CM
- LDD EJ
- NJN SEJ4 IF NOT AN EMPTY ENTRY
- AOD TP INCREMENT EMPTY ENTRY COUNT
- SEJ2 SOD EO DECREMENT EJT ORDINAL
- NJN SEJ1 IF EJT SCAN NOT COMPLETE
- LDD TP
- SBN /CPS/EJTR+1
- PJP SEJ10 IF NOT ABOVE THRESHOLD
- LDN 0
- STD CM+1 SELECT *EATM* ENTER EVENT OPTION
- STD CM+3 STORE EVENT DESCRIPTOR
- LDN EJJE
- STD CM+4
- MONITOR EATM
- LCN 1 FLAG EJT THRESHOLD
- SEJ3 LJM SEJX RETURN
- SEJ4 LDD CM
- SHN -6
- STD SC
- SBN MXSC
- PJN SEJ2 IF INVALID SERVICE CLASS
- ADN MXSC-DSSC
- ZJN SEJ3 IF DEADSTART SEQUENCING JOB
- IFNE DSSC,MXJC,1
- ADK DSSC-MXJC
- PJN SEJ6 IF NO JCB FOR SERVICE CLASS
- LDD EJ+4
- LPN 77
- LMN TOJS*2
- NJN SEJ5 IF NOT TIMED/EVENT
- LDD AA+4
- LMN SCFE
- ZJN SEJ6 IF WAITING FOR FULL SERVICE CLASS
- SEJ5 AOM TJCT,SC INCREMENT ACTIVE JOB COUNT
- * PERFORM SUSPENSION TIME-OUT PROCESSING IF *IAF* IS
- * ACCESSIBLE.
- SEJ6 LDD EJ+4
- * UJN SEJ8 (IF SUSPENSION TIME-OUT DISABLED)
- SEJB EQU *-1
- LPC 3776 MASK JOB/CONNECTION STATUS AND ADVANCE
- LMC SUJS*2+DTCS*200
- NJN SEJ8 IF NOT DETACHED SUSPENDED JOB OR ROLLING
- LDD AA+3
- SBD TM
- MJN SEJ7 IF SUSPENSION TIME-OUT
- NJN SEJ8 IF NOT SUSPENSION TIME-OUT
- LDD AA+4
- SBD TM+1
- PJN SEJ8 IF NOT SUSPENSION TIME-OUT
- * SET *STET* ERROR FLAG.
- SEJ7 LDD BB+1
- NJN SEJ9 IF ERROR FLAG ALREADY SET
- LDD EJ SAVE JSN FOR *CEFM*
- STD CM+3
- LDD EJ+1
- STD CM+4
- LDD EO SAVE EJT ORDINAL FOR *CEFM*
- STD CM+2
- LDC STET+4000
- STD CM+1
- MONITOR CEFM
- SEJ8 LJM SEJ2 CONTINUE EJT SCAN
- SEJ9 LDD EJ SET FORCED ROLLIN FLAG
- STM SEJD+3
- LDD EJ+1
- STM SEJD+4
- LDD EO
- CFI EJT,,EO GET EJT ADDRESS
- ADC **
- SEJC EQU *-1
- STD CM+4
- SHN -14
- STD CM+3
- LDN 2
- STD CM+1
- LDD MA
- CWM SEJD,CM+1
- MONITOR UTEM
- UJN SEJ8 CONTINUE EJT SCAN
- SEJD VFD 6/40+JSNE,6/24D,6/36D,42/0
- VFD 6/SCLE,6/1,6/52D,42/1
- ERRNG TJCT-* OVERFLOW INTO *TJCT*
- TABLES SPACE 4,10
- * *3SB* TABLE DEFINITIONS.
- TJCTL EQU MXJC*1 LENGTH OF *TJCT* TABLE
- TIOOL EQU 20 NUMBER OF *TIOO* TABLE ENTRIES
- THLDL EQU MXHLD*2 LENGTH OF *THLD* TABLE
- BEGIN BSSN TJAM-TJCTL-TIOOL*3-THLDL BEGINNING OF TABLES
- TIOO SPACE 4,10
- * TIOO - SCHEDULABLE QFT ENTRIES.
- * ENTRY = 3 WORDS.
- *
- *T 12/ IO,12/ QP,12/ SC
- * IO QFT ORDINAL
- * QP QUEUE PRIORITY.
- * SC SERVICE CLASS.
- TIOO BSSN TIOOL*3
- SPACE 4,10
- ** THLD - SCHEDULABLE HOST LID-S.
- * ENTRY = 2 WORDS.
- *
- *T 18/ LID, 6/ 0
- * LID MAINFRAME LOGICAL ID.
- THLD BSSN THLDL
- TJCT SPACE 4,10
- ** TJCT - JOB COUNTS.
- * ENTRY = 1 WORD.
- * INDEXED BY SERVICE CLASS.
- *
- *T 12/ CT
- *
- * CT NUMBER OF EXECUTING JOBS (JOBS ASSIGNED TO EJT)
- * IN SERVICE CLASS.
- TJCT BSSN TJCTL
- TTEND BSSN 0 END OF LAST TABLE
- END BSSN
- SPACE 4,10
- * OVERFLOW CHECKS.
- ERRNZ TJAM-TTEND TABLE OVERFLOW
- SPACE 4,10
- OVERFLOW O3SB,TJAM
- SPACE 4,10
- TTL 1SJ - JOB SCHEDULER.
- SPACE 4,10
- END
cdc/nos2.source/opl871/1sj.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator