COMPCSC 
COMMON
          CTEXT  COMPCSC - CHANGE JOB SERVICE CLASS.
          SPACE  4,10 
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   COMPCSC
 QUAL$    ENDIF 
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4,10 
***       COMPCSC - CHANGE JOB SERVICE CLASS. 
* 
*         J. L. LARSON.      81/04/30.
          SPACE  4,10 
**        *COMPCSC* CHANGES THE SERVICE CLASS OF A JOB IN THE EJT.
* 
*         IF *CSC$* IS DEFINED, IT IS ASSUMED THAT THE SERVICE CLASS
*         HAS ALREADY BEEN VALIDATED AND THAT THE JOB BEING CHANGED 
*         IS NOT A SUBSYSTEM. 
* 
*         XREF   COMPAST, COMPGFP, COMPRJC, COMPCPS, COMSEJT, COMSSSJ.
 CSC      SPACE  4,15 
**        CSC - CHANGE JOB SERVICE CLASS. 
* 
*         ENTRY  (A) = NEW SERVICE CLASS. 
* 
*         EXIT   (A) .GE. 0, IF ILLEGAL SERVICE CLASS.
* 
*         USES   CM - CM+4, CN - CN+4, T4, T5.
* 
*         CALLS  DFM, RJC, UJS. 
* 
*         MACROS CFI, MONITOR, SFA. 
  
  
 CSC      SUBR               ENTRY/EXIT 
          STD    T5          SAVE NEW SERVICE CLASS 
 CSC$     IF     -DEF,CSC$
          STM    CSCB+4 
          SBN    MXJC 
          PJN    CSCX        IF ILLEGAL SERVICE CLASS 
 CSC$     ENDIF 
          LDD    CP          RETRIEVE CURRENT SERVICE CLASS 
          ADN    TFSW 
          CRD    CM 
          LDD    CM 
 CSC$     IF     -DEF,CSC$
          STM    UJSC 
 CSC$     ENDIF 
          SFA    EJT         GET ADDRESS OF EJT ENTRY 
          ADK    JSNE 
          CRM    CSCC,ON     READ CURRENT JSN 
          ADN    SCLE-JSNE-1
          CRD    CM 
          LDD    CM 
          SHN    -6 
 CSC$     IF     -DEF,CSC$
          STM    UJSA 
          LMC    7700        SET FIELD NON-ZERO 
 CSC$     ENDIF 
          STM    CSCC+4      SAVE OLD SERVICE CLASS 
          LCN    0
          STM    CSCC+2 
          STM    CSCC+3 
 CSC$     IF     -DEF,CSC$
          LDM    TUSC,T5     CHECK IF CHANGE ALLOWED
          NJP    CSCX        IF SERVICE CLASS CHANGE NOT ALLOWED
 CSC$     ENDIF 
          LDD    T5          GET NEW SERVICE CLASS
          RJM    RJC
          ZJP    CSCX        IF NO JCB FOR SERVICE CLASS
          ADK    JCTT        READ JOBS WAITING INDICATOR
          CRD    CN 
          LDN    0           CLEAR JOBS WAITING INDICATOR 
          STD    CN+1 
          LDD    T5 
          RJM    RJC
          ADK    JCTT 
          CWD    CN 
          LDM    CSCA,T5     GET NEW SERVICE CLASS CHARACTER
          STM    CSCD+3 
 CSC$     IF     -DEF,CSC$
          LDM    UJSC 
          SFA    EJT         GET FWA OF EJT ENTRY 
          STD    CM+4 
          SHN    -14
          STD    CM+3 
          LDN    1           SET NUMBER OF REQUESTS FOR *UTEM*
          STD    CM+1 
          LDD    MA          WRITE REQUEST TO MESSAGE BUFFER
          CWM    CSCB,CM+1
          MONITOR  UTEM      CHANGE SERVICE CLASS IN EJT ENTRY
 CSC$     ENDIF 
  
*         SET CPU SCHEDULING PARAMETERS FOR NEW SERVICE CLASS.
  
          LDN    ZERL 
          CRD    CM 
          LDN    SSPS        SET CPU SCHEDULING PARAMETERS
          STD    CM+1 
          LDD    T5          SET JCB OFFSET 
          CFI    JCB
          STD    CM+4 
          MONITOR  SJCM 
  
*         DETERMINE IF FORMERLY A SUBSYSTEM.
  
 CSC$     IF     -DEF,CSC$
          RJM    UJS         UPDATE JSN AND SUBSYSTEM TABLES
 CSC$     ENDIF 
  
*         GET ACCUMULATED SRU-S FOR *ACSC* MESSAGE. 
  
          LDN    ACTWL
          STD    T4 
          LDD    CP          GET CONVERTED SRU-S FOR MESSAGE
          ADN    ACTW 
          CRM    CSCE,T4
          LDD    MA 
          CWM    CSCE,T4
          LDN    ABVF 
          STD    CM+1 
          MONITOR  ACTM 
          LDD    MA          SET SRU-S INTO MESSAGE 
          CRM    CSCD+10,ON 
          LDM    CSCD+10
          NJN    CSC5        IF SRU ACCUMULATOR NONZERO 
          LDD    MA 
          CWM    CSCG,ON     FORMAT CORRECT MESSAGE 
          SBN    1
          CRM    CSCD+10,ON 
  
*         ISSUE ACCOUNTING MESSAGES.
  
 CSC5     LDC    CDON+CSCD   ISSUE MESSAGE TO USER DAYFILE ONLY 
          RJM    DFM
          LDC    AJNN+CSCC   ISSUE MESSAGE TO ACCOUNT FILE WITH OLD JSN 
          RJM    DFM
  
*         RESET PARAMETERS. 
  
          LDC    2R          CLEAR JSN
          STM    CSCD+5 
          STM    CSCD+6 
          LCN    1           SET *NO ERROR* STATUS
          LJM    CSCX        RETURN 
  
  
 CSCA     BSS    0           TABLE OF SERVICE CLASS CHARACTERS
 .1       SET    1
 .A       DUP    MXJC 
 .2       MICRO  .1,1,$"NMDS"$
          CON    2H ".2"
 .1       SET    .1+1 
 .A       ENDD
  
 CSCB     VFD    1/0,5/SCLE,6/6,6/54D,36/,6/**
 CSCC     BSS    5           CURRENT JSN AND SERVICE CLASS
 CSCD     DATA   C*ACSC,  S,     , 000000.000UNTS.* 
  
 CSCE     BSS    ACTWL*5     BUFFER FOR CPA ACCUMULATOR WORDS 
 CSCG     DATA   C*    0.000*  DISPLAY FORMAT ZERO
 CSC$     IF     -DEF,CSC$
 TUSC     SPACE  4,10 
**        TUSC - TABLE OF UNALLOWABLE SERVICE CLASS CHANGES.
* 
*         TABLE IS INDEXED BY SERVICE CLASS.
* 
*T        12/ ST
*         ST = STATUS OF CHANGE.
*                0 = CHANGE ALLOWED.
*                1 = CHANGE NOT ALLOWED.
  
 TUSC     INDEX 
          INDEX  SSSC,1      SUBSYSTEM
          INDEX  DSSC,1      DEADSTART SEQUENCING 
          INDEX  MXSC        MAXIMUM NUMBER OF SERVICE CLASSES
 UJS      SPACE  4,10 
**        UJS - UPDATE JSN AND SUBSYSTEM TABLES.
* 
*         USES   T1 - T5, CM - CM+4.
* 
*         CALLS  AST. 
* 
*         MACROS MONITOR, SFA.
  
  
 UJS      SUBR               ENTRY/EXIT 
  
*         DETERMINE IF FORMERLY A SUBSYSTEM.
  
          LDC    **          CHECK IF FORMERLY A SUBSYSTEM
 UJSA     EQU    *-1         (FORMER SERVICE CLASS) 
          LMN    SSSC 
          NJN    UJSX        IF NOT FORMERLY A SUBSYSTEM
  
*         ALTER SSAT/SSCT TABLES. 
  
          LDD    CP          GET SUBSYSTEM ID 
          ADN    JCIW 
          CRD    CM 
          LDD    CM+2        SAVE SUBSYSTEM ID
          STD    T5 
          LDN    ZERL        CLEAR SSID FIELD 
          CRD    CM 
          LDK    SSIS        SET SUBFUNCTION CODE 
          STD    CM+1 
          MONITOR  SJCM      SELECT JOB CONTROL PARAMETERS
          LDN    CSCF        CLEAR SUBSYSTEM ACCESS FLAG
          SHN    14 
          LMD    T5 
          RJM    AST         ACCESS SUBSYSTEM TABLES
          LDN    CEAF        RELEASE EJT ASSIGNMENT 
          SHN    14 
          LMD    T5 
          RJM    AST         ACCESS SUBSYSTEM TABLES
  
*         CHANGE FORMER SUBSYSTEM-S JSN.
  
          LDN    ZERL        CLEAR PARAMETERS 
          CRD    CM 
          CRD    T1 
          LDN    1           DO NOT REQUEST A QFT ENTRY 
          STD    CM+1 
          MONITOR  RJSM      REQUEST JOB SEQUENCE NUMBER
*         LDN    0           CLEAR *UTEM* PARAMETER BYTE
          STD    CM+2 
          STD    T3 
          LDD    CM+3        PUT JSN IN DAYFILE MESSAGE 
          STM    CSCD+5 
          STD    T4 
          LDD    CM+4 
          STM    CSCD+6 
          STD    T5 
          LDK    JSNE*100+24D  SET WORD OFFSET AND FIELD SIZE 
          STD    T1 
          LDC    36D*100     SET BEGINNING BIT POSITION 
          STD    T2 
          LDC    **          EJT ORDINAL
 UJSC     EQU    *-1
          SFA    EJT         GET EJT ADDRESS
          STD    CM+4 
          SHN    -14
          STD    CM+3 
          LDN    1           SET NUMBER OF REQUESTS 
          STD    CM+1 
          LDD    MA 
          CWD    T1 
          MONITOR  UTEM      UPDATE EJT ENTRY WITH JSN
          LJM    UJSX        RETURN 
 CSC$     ENDIF 
          SPACE  4,10 
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 CSC      EQU    /COMPCSC/CSC 
 QUAL$    ENDIF 
          ENDX
