COMSSRU 
COMMON
          CTEXT  COMSSRU - DEFINE SRU PARAMETERS. 
          SPACE  4
          BASE   D
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4
***       COMSSRU - SRU ACCOUNTING EQUIVALENCES.
*         R. E. SEABOLD.  74/12/03. 
*         D. D. SADLER    75/02/01. 
          SPACE  4
***              COMSSRU DEFINES THE RANGES AND DEFAULT VALUES FOR THE
*         PARAMETERS USED IN THE SYSTEM RESOURCE UNIT (SRU) FORMULA.
*         IT ALSO DEFINES THE INCREMENTS THAT ARE APPLIED TO THE IO 
*         ACCUMULATORS (MS, MT AND PF). 
          SPACE  4
***       SRU FORMULA.
* 
*         SRU = M1(CP + M2*IO + M3(CP+IO)CM + 
*                  M4(CP+IO)EC + MM*MP + AUC) + AD
* 
*             = M1(1 + M3*CM + M4*EC)CP + M1(M2 + M3*CM + M4*EC)IO +
*                  M1*MM*MP + M1*AUC + AD 
* 
*             = (M1 + M1*M3*CM + M1*M4*EC)CP +
*                  (M1*M2 + M1*M3*CM + M1*M4*EC)IO +
*                  M1*MM*MP + M1*AUC + AD 
* 
*             = CPM*CP + IOM*IO + M1*MM*MP + M1*AUC + AD. 
* 
* 
*                CP = (S0)*CP0 + (S1)*CP1 
*                IO = S2*MS + S3*MT + S4*PF +S5*OD
*                CM = (CM FL + 777B) / 1000B  (WORDS) 
*                EC = (EM FL) = (TRACKS) = (101*SLDE WORDS).
* 
*                AD = INCREMENTAL ADDER WHICH IS APPLIED TO THE SRU 
*                     VALUE DURING ACCOUNTING INITIALIZATION. 
*                MM = MULTIPLIER USED TO SCALE *MAP* USAGE. 
*                MP = ACCUMULATED *MAP* ACTIVITY FOR A USER.
*                AUC = ACCUMULATED APPLICATION ACTIVITY FOR A USER. 
* 
*                CPM = M1 + M1*M3*CM + M1*M4*EC 
*                IOM = M1*M2 + M1*M3*CM + M1*M4*EC
* 
* 
*         FIXED PARAMETERS -
* 
*         S0, S1, S2, S3, S4, S5 AND MM ARE FIXED PARAMETERS AND DO 
*         NOT VARY DURING SYSTEM EXECUTION. S0 AND S1 ARE SET TO ONE
*         OF THE FOLLOWING HARDWARE DETECTABLE CPU TYPE DEFAULT 
*         MULTIPLIERS AT DEAD START TIME - CP64, CP66, C173, C175,
*         C176, C815, C825, C835, C845, C855, C865, C875.  DIFFERENT
*         S0 AND S1 CPU MULTIPLIERS CAN BE SELECTED VIA THE 
*         *CPM* *IPRDECK* DIRECTIVE.
* 
*         VARIABLE PARAMETERS - 
* 
*         THE DEFAULT VALUES FOR M1, M2, M3, M4 AND AD ARE SET AT JOB 
*         INITIALIZATION.  THEY MAY BE RE-DEFINED UPON ENTRY OF A 
*         CHARGE/PROJECT NUMBER OR DURING EXECUTION OF AN APPLICATION 
*         PROGRAM.  THE VALUE AD IS APPLIED TO THE SRU AND AD 
*         ACCUMULATOR ONLY WHEN A SPECIFIC REQUEST TO DO SO IS MADE.
* 
*         NOTE - THE APPLICATION PROGRAM CAPABILITY TO INCREMENT THE AD 
*         ACCUMULATOR IS NOT CURRENTLY AVAILABLE.  THIS CAPABILITY WILL 
*         BE PROVIDED IN FUTURE SYSTEMS.
* 
*         THE AD INCREMENT VALUE PROVIDED AT THE BEGINNING OF ACCOUNT 
*         BLOCK IS INCREMENTED INTO THE SRU ACCUMULATOR AND NOT INTO
*         THE AD ACCUMULATOR. THUS, THE AD INCREMENT MAYBE USED AS AN 
*         OVERHEAD CHARGE AT THE BEGINNING OF AN ACCOUNT BLOCK. 
* 
*         CALCULATION - 
* 
*         THE MULTIPLIERS M1, M1*M2, M1*M3, M1*M4 AND M1*MM ARE 
*         MAINTAINED IN THE CONTROL POINT AREA.  WHEN A NEW CM OR ECS 
*         FIELD LENGTH IS SET, THE WORKING MULTIPLIERS CPM AND IOM ARE
*         CALCULATED AND SAVED IN THE CONTROL POINT AREA.  WHEN CP TIME 
*         IS INCREMENTED, CPM*CP IS CALCULATED AND THE RESULT IS ADDED
*         TO THE SRU ACCUMULATOR.  WHEN MS, MT OR PF IS INCREMENTED,
*         IO USAGE AND IOM*IO ARE CALCULATED AND THE LATTER IS ADDED
*         TO THE SRU ACCUMULATOR. 
*         IF MT$ IS DEFINED, ONLY MT INCREMENTS WILL
*         BE ASSEMBLED. 
 EXTR     SPACE  4,10 
**        EXTR - EXTRACT INTEGER AND FRACTION.
* 
*         EXTR   NUM
* 
*         THE INTEGER AND FRACTIONAL PORTIONS ARE EXTRACTED FROM THE
*         GIVEN NUMBER.  THE SIZE OF THE FRACTION IS DETERMINED AND A 
*         MULTIPLIER IS COMPUTED SO THAT THE NUMBER CAN BE REPRESENTED
*         AS AN INTEGER VALUE.
* 
*         ENTRY  NUM = ANY REAL NUMBER. 
* 
*         EXIT   IP (MICRO) = INTEGER PORTION.
*                FP (MICRO) = FRACTIONAL PORTION. 
*                DV (MICRO) = POWER OF 10 MULTIPLIER. 
* 
*         EXAMPLE 
*                      EXTR   1.32
*                IP = 1 
*                FP = 32
*                DV = 100 
*                INTEGER REPRESENTATION = IP*DV+FP = 1*100+32 = 132.
  
  
 EXTR     MACRO  NUM
          LOCAL  DP,IS,FS,NM,NS,CX,PT 
  
*         SEARCH FOR DECIMAL POINT. 
  
 DP       SET    0
 IS       SET    0
 FS       SET    0
 NM       MICRO  1,,*NUM* 
 NS       MICCNT NM 
  
          DUP    NS 
 DP       SET    DP+1 
 CX       MICRO  DP,1,*NUM* 
          IFC    EQ,*"CX"*.*
 FS       SET    NS-IS-1
          STOPDUP 
          ELSE
 IS       SET    IS+1 
          ENDIF 
          ENDD
  
*         COMPUTE POWER OF 10 MULTIPLIER. 
  
 PT       SET    1
          IFGT   FS,0 
          DUP    FS 
 PT       SET    PT*10
          ENDD
          ENDIF 
 DV       MICRO  1,,*PT*
  
*         EXTRACT INTEGER AND FRACTION. 
  
          IFGT   IS,0 
 IP       MICRO  1,IS,*NUM* 
          ELSE
 IP       MICRO  1,1,*0*
          ENDIF 
  
          IFGT   FS,0 
 FP       MICRO  DP+1,FS,*NUM*
          ELSE
 FP       MICRO  1,1,*0*
          ENDIF 
  
          ENDM
          SPACE  4
**        RANGE - DEFINE LOWER AND UPPER LIMITS.
* 
* TAG     RANGE  NUML,NUMU
* 
*         THE LOWER AND UPPER LIMITS ARE CONVERTED TO INTEGER FORMAT
*         AND EQUATED TO APPROPRIATE TAGS.  THE FRACTIONAL PORTIONS OF
*         THE LIMITS MUST CONTAIN THE SAME NUMBER OF DIGITS.  THE SIZE
*         OF THE FRACTION IS REPRESENTED AS A POWER OF 10.
* 
*         ENTRY  NUML = LOWER LIMIT - ANY REAL NUMBER.
*                NUMU = UPPER LIMIT - ANY REAL NUMBER.
* 
*         EXIT   TAG_L (MICRO) = LOWER LIMIT IN INTEGER FORMAT. 
*                TAG_U (MICRO) = UPPER LIMIT IN INTEGER FORMAT. 
*                TAG_D (MICRO) = POWER OF 10 MULTIPLIER.
* 
*         EXAMPLE 
*                TAG   RANGE   1.3,5.6
*                TAG_L = 13 
*                TAG_U = 56 
*                TAG_D = 10 
  
  
          MACRO  RANGE,TAG,NUML,NUMU
          LOCAL  DL,NL,DU,NU
  
*         EXTRACT INTEGER AND FRACTION FROM LOWER LIMIT.
  
          EXTR   NUML 
 DL       SET    "DV" 
 NL       SET    "IP"*"DV"+"FP" 
 TAG_L    MICRO  1,,*NL*
  
*         EXTRACT INTEGER AND FRACTION FROM UPPER LIMIT.
  
          EXTR   NUMU 
 DU       SET    "DV" 
 NU       SET    "IP"*"DV"+"FP" 
 TAG_U    MICRO  1,,*NU*
  
*         VALIDATE LIMITS.
  
          IFGT   NL,NU,1
          ERR    RANGE ERROR. 
          IFNE   DL,DU,1
          ERR    FORMAT ERROR.
 TAG_D    MICRO  1,,*DU*
  
          ENDM
          SPACE  4
***       DEFVL - DEFINE PARAMETER VALUE. 
* 
* TAG     DEFVL  NUM,R
* 
*         THE GIVEN VALUE IS CONVERTED TO INTEGER FORMAT AND EQUATED
*         TO THE ASSOCIATED TAG.  THE CONVERTED VALUE IS COMPARED TO
*         THE PREVIOUSLY DEFINED LOWER (TAG_L) AND UPPER (TAG_U)
*         LIMITS.  THE FRACTIONAL SIZE MUST BE THE SAME AS THAT 
*         DEFINED FOR THE LIMITS. 
* 
*         ENTRY  NUM = ANY REAL NUMBER. 
*                R = OMMITTED IF -
*                    TAG_L = LOWER LIMIT.  (SEE RANGE MACRO). 
*                    TAG_U = UPPER LIMIT. 
*                    TAG_D = POWER OF 10 MULTIPLIER.
*                R = RANGE VALUES TO CHECK AGAINST -
*                    R_L = LOWER LIMIT.  (SEE RANGE MACRO). 
*                    R_U = UPPER LIMIT. 
*                    R_D = POWER OF 10 MULTIPLIER.
* 
*         EXIT   TAG (EQUATE) = NUMBER IN INTEGER FORMAT. 
*                TAG_M (MICRO) = NUMBER IN MICRO FORMAT.
* 
          MACRO  DEFVL,TAG,NUM,R
  
*         EXTRACT INTEGER AND FRACTION. 
  
          EXTR   NUM
 TAG      EQU    "IP"*"DV"+"FP" 
 TAG_M    MICRO  1,,*NUM* 
 A        IFC    EQ,*R**
  
*         VALIDATE NUMBER.
  
 B        IFNE   TAG,0
          IFNE   "TAG_D","DV",1 
          ERR    FORMAT ERROR.
          IFLT   TAG,"TAG_L",1
          ERR    RANGE ERROR. 
          IFGT   TAG,"TAG_U",1
          ERR    RANGE ERROR. 
  
 B        ENDIF 
 A        ELSE
  
*         VALIDATE NUMBER.
  
          IFNE   TAG,0
          IFNE   "R_D","DV",1 
          ERR    FORMAT ERROR.
          IFLT   TAG,"R_L",1
          ERR    RANGE ERROR. 
          IFGT   TAG,"R_U",1
          ERR    RANGE ERROR. 
 A        ENDIF 
          ENDM
 CPRG     SPACE  4
***       DEFINE RANGES FOR SRU PARAMETERS. 
*         THE FOLLOWING RANGES DEFINE BOTH THE MAGNITUDE AND FORMAT OF
*         THE PARAMETERS.  THEY ARE DEFINED FOR VALIDATION PURPOSES AND 
*         CAN NOT BE TREATED AS INSTALLATION OPTIONS.  THEY MUST
*         REMAIN AS SHOWN.
  
  
 CPRG     RANGE  .1,50.0     CPU TIME MULTIPLIER RANGE
  
 SMRG     RANGE  .1,50.0     S2 THRU S5 MULTIPLIER RANGE
  
 M1SR     RANGE  .1,25.5     M1 MULTIPLIER RANGE
  
 M2SR     RANGE  .001,1.023  M2 MULTIPLIER RANGE
  
 M3SR     RANGE  .001,1.023  M3 MULTIPLIER RANGE
  
 M4SR     RANGE  .001,1.023  M4 MULTIPLIER RANGE
  
 ADSR     RANGE  1,100       ADDER RANGE
  
 MDSR     RANGE  .001,1.000  MINIMUM DISPLAY RANGE
  
 MCSR     RANGE  .001,10.000 MINIMUM CHARGE RANGE 
  
 ICRG     RANGE  0,63        INCREMENT RANGE
  
 IMPT     RANGE  0,4         MS PRUS TRANSFERRED INCREMENT RANGE
  
 IODT     RANGE  0,4         OD PRUS TRANSFERRED INCREMENT RANGE
  
 MPSR     RANGE  1,100       MAP MULTIPLIER RANGE 
 CPU      SPACE  4
 MT1      IF     -DEF,MT$ 
  
***       DEFINE FIXED MULTIPLIER VALUES FOR CPU TIME.
*         THE FOLLOWING PARAMETERS ARE INSTALLATION OPTIONS AND CAN BE
*         CHANGED BY THE CENTRAL SITE.  THEY MUST LIE WITHIN THE RANGE
*         PREVIOUSLY DEFINED AND MUST BE IN THE SAME FORMAT (NUMBER OF
*         DECIMAL PLACES) AS THE LIMITS. IN ALL CASES, A VALUE OF 0 
*         IS ACCEPTABLE.
* 
*         THESE MULTIPLIERS DEFINE THE VALUES TO BE USED
*         FOR THE S0 AND S1 MULTIPLIERS (CPU TIME ACTIVITY).
*         WHEN CPU MONITOR INITIALIZES, TWO PARAMETERS ARE
*         CHECKED TO DETERMINE WHICH MULTIPLIER TO USE FOR
*         S0 AND S1. THE FIRST IS THE IPRDECK PARAMETER 
*         AND SECOND, THE HARDWARE OPTION CONTROL BITS SET
*         AT SYSTEM DEAD START. 
* 
*         THE FORMAT OF THE IPRDECK ENTRY IS
* 
*                CPM,N = XX,N = XX. 
* 
*         WHERE N = 0 OR 1 FOR CPU0 OR CPU1 
*              XX = INDEX VALUE INTO TIPR TABLE IN CPUMTR PRESET. 
* 
* 
*         IF THERE IS NO IPRDECK ENTRY, THEN THE FOLLOWING
*         MULTIPLIERS ARE USED -
* 
*         CP64 - 6200, 6400, 6500, 6700 (CPU1), 
*                CYBER 71, CYBER 72, CYBER 73, CYBER 74 (CPU1). 
* 
*         CP66 - 6600, 6700 (CPU0), CYBER 74 (CPU0).
* 
*         C173 - CYBER 171, CYBER 172, CYBER 173, CYBER 174,
*                CYBER 170-720, CYBER 170-730.
* 
*         C175 - CYBER 175 (ALL MODELS).
*                CYBER 170-740, CYBER 170-750, CYBER 170-760. 
* 
*         C176 - CYBER 176 (ALL MODELS).
* 
*         C810 - CYBER 180-810. 
* 
*         C815 - CYBER 170-815. 
* 
*         C825 - CYBER 170-825. 
* 
*         C810 - CYBER 180-830. 
* 
*         C835 - CYBER 170-835. 
* 
*         C840 - CYBER 180-840. 
* 
*         C845 - CYBER 170-845. 
* 
*         C850 - CYBER 180-850. 
* 
*         C855 - CYBER 170-855. 
* 
*         C860 - CYBER 180-860. 
* 
*         C865 - CYBER 170-865. 
* 
*         C875 - CYBER 170-875. 
* 
*         C961 - CYBER 180-960-11.
* 
*         C963 - CYBER 180-960-31/32. 
* 
*         C990 - CYBER 180-990. 
* 
*         NOTE -
*         IF A MULTIPLIER IS DEFINED TO BE 0.0 OR 1.0, NO MULTIPLY IS 
*         PERFORMED.  A MULTIPLY BY 0.0 NEGATES CP ACCUMULATION AND 
*         PREVENTS TIME-SLICING.  A MULTIPLIER OF 1.0 IS REDUNDANT.  IN 
*         BOTH CASES, UNFACTORED CP TIME IS ACCUMULATED.
* 
*         ALSO, IF A NON INTEGER CP MULTIPLIER IS SELECTED, CP TIME ACCU
*         WILL BE INACCURATE BECAUSE THE LEAST SIGNIFICANT DIGITS AFTER 
*         MULTIPLICATION ARE LOST. HOWEVER, THE SRU ACCUMULATION IS NOT 
*         AFFECTED AT ALL IN THE SAME WAY.
  
  
**        TCPM - TABLE OF CPU MULTIPLIERS.
  
 CP62     DEFVL  1.0,CPRG    6200 
 CP64     DEFVL  1.0,CPRG    6400 
 CP65     DEFVL  1.0,CPRG    6500 
 CP66     DEFVL  1.0,CPRG    6600 
 CP67     DEFVL  1.0,CPRG    6700 
 CP71     DEFVL  1.0,CPRG    CYBER 71 
 CP72     DEFVL  1.0,CPRG    CYBER 72 
 CP73     DEFVL  1.0,CPRG    CYBER 73 
 CP74     DEFVL  1.0,CPRG    CYBER 74 
 C171     DEFVL  1.0,CPRG    CYBER 171
 C172     DEFVL  1.0,CPRG    CYBER 172
 C173     DEFVL  1.0,CPRG    CYBER 173
 C174     DEFVL  1.0,CPRG    CYBER 174
 C175     DEFVL  1.0,CPRG    CYBER 175
 C176     DEFVL  1.0,CPRG    CYBER 176
 C720     DEFVL  1.0,CPRG    CYBER 170-720
 C730     DEFVL  1.0,CPRG    CYBER 170-730
 C740     DEFVL  1.0,CPRG    CYBER 170-740
 C750     DEFVL  1.0,CPRG    CYBER 170-750
 C760     DEFVL  1.0,CPRG    CYBER 170-760
 C810     DEFVL  1.0,CPRG    CYBER 180-810
 C815     DEFVL  1.0,CPRG    CYBER 170-815
 C825     DEFVL  1.0,CPRG    CYBER 170-825
 C830     DEFVL  1.0,CPRG    CYBER 180-830
 C835     DEFVL  1.0,CPRG    CYBER 170-835
 C840     DEFVL  1.0,CPRG    CYBER 180-840
 C845     DEFVL  1.0,CPRG    CYBER 170-845
 C850     DEFVL  1.0,CPRG    CYBER 180-850
 C855     DEFVL  1.0,CPRG    CYBER 170-855
 C860     DEFVL  1.0,CPRG    CYBER 180-860
 C865     DEFVL  1.0,CPRG    CYBER 170-865
 C875     DEFVL  1.0,CPRG    CYBER 170-875
 C961     DEFVL  1.0,CPRG    CYBER 180-960-11 
 C963     DEFVL  1.0,CPRG    CYBER 180-960-31/32
 C990     DEFVL  1.0,CPRG    CYBER 180-990
 ICM1     DEFVL  1.0,CPRG    INSTALLATION DEFINED - 1 
 ICM2     DEFVL  2.0,CPRG    INSTALLATION DEFINED - 2 
 ICM3     DEFVL  3.0,CPRG    INSTALLATION DEFINED - 3 
 ICM4     DEFVL  4.0,CPRG    INSTALLATION DEFINED - 4 
 ICM5     DEFVL  5.0,CPRG    INSTALLATION DEFINED - 5 
  
  
**        TIPRL - SIZE OF *TIPRL* TABLE IN *CPUMTR*.
* 
*         *TIPRL* IS USED BY *SET* TO ENSURE THE CPU INDEX
*         SPECIFIED ON THE *CPM* IPRDECK ENTRY IS WITHIN RANGE. 
  
  
 TIPRL    EQU    51B
 SNSR     SPACE  4
***       DEFINE FIXED MULTIPLIER VALUES FOR THE S2 THRU S5 MULTIPLIERS.
*         THE FOLLOWING PARAMETERS ARE INSTALLATION OPTIONS AND CAN BE
*         CHANGED BY THE CENTRAL SITE.  THEY MUST LIE WITHIN THE RANGE
*         PREVIOUSLY DEFINED AND MUST BE IN THE SAME FORMAT (NUMBER OF
*         DECIMAL PLACES) AS THE LIMITS. IN ALL CASES, A VALUE
*         OF ZERO (0) IS ACCEPTABLE.
  
  
 S2SR     DEFVL  1.0,SMRG    MS MULTIPLIER
  
 S3SR     DEFVL  1.0,SMRG    MT MULTIPLIER
  
 S4SR     DEFVL  1.0,SMRG    PF MULTIPLIER
  
 S5SR     DEFVL  1.0,SMRG    OD MULTIPLIER
 SRU      SPACE  4
***       DEFINE DEFAULT VALUES FOR VARIABLE MULTIPLIERS. 
*         THE FOLLOWING PARAMETERS ARE INSTALLATION OPTIONS AND CAN BE
*         CHANGED BY THE CENTRAL SITE.  THEY MUST LIE WITHIN THE RANGE
*         PREVIOUSLY DEFINED AND MUST BE IN THE SAME FORMAT (NUMBER OF
*         DECIMAL PLACES) AS THE LIMITS. IN ALL CASES, A VALUE
*         OF ZERO (0) IS ACCEPTABLE.
  
  
 M1SR     DEFVL  1.0         M1 MULTIPLIER  (OVERALL) 
  
 M2SR     DEFVL  0.100       M2 MULTIPLIER  (IO)
  
 M3SR     DEFVL  0.003       M3 MULTIPLIER  (CM)
  
 M4SR     DEFVL  0.003       M4 MULTIPLIER  (ECS) 
  
 ADSR     DEFVL  0           ADDER
  
 MPSR     DEFVL  1           MAP MULTIPLIER DEFAULT 
 SRU      SPACE  4,10 
***       DEFINE SRU DISPLAY CONTROLS.
*         THE FOLLOWING VALUES ARE INSTALLATION OPTIONS AND CAN BE
*         CHANGED BY THE CENTRAL SITE. THEY MUST FALL WITHIN THE
*         RANGE PREVIOUSLY DEFINED AND MUST BE IN THE SAME FORMAT 
*         AS THE LIMITS. IN ALL CASES A VALUE OF 0 (ZERO) IS
*         ACCEPTABLE. 
* 
*         THE FOLLOWING VALUE DEFINES THE MINIMUM CHARGE TO BE MADE 
*         AGAINST A CHARGE/PROJECT NUMBER. IF THE ACCUMULATED SRUS ARE
*         LESS THAN *MCSR*, THE A CHARGE OF *MCSR* IS DISPLAYED.
  
  
 MCSR     DEFVL  1.000       MINIMUM CHARGE 
  
*         THE FOLLOWING VALUE DEFINES THE MIMINUM VALUE TO BE DISPLAYED 
*         FOR EACH TELEX JOB STEP. IF THE ACCUMULATED SRUS FOR A JOB
*         STEP IS BELOW *MDSR*, THEN SRUS ARE NOT DISPLAYED.
  
 MDSR     DEFVL  .100        MINIMUM DISPLAY SRU
 AD       SPACE  4
***       DEFINE INCREMENTS FOR THE *ADDER* ACCUMULATOR.
*         THE FOLLOWING PARAMETERS ARE INSTALLATION OPTIONS AND CAN 
*         BE CHANGED BY THE CENTRAL SITE.  THEY MUST LIE WITHIN THE 
*         RANGE PREVIOUSLY DEFINED AND MUST BE IN THE SAME FORMAT AS
*         THE LIMITS. 
* 
*         THE FOLLOWING INCREMENTS ARE FOR EACH OPERATION 
  
 IAAC     DEFVL  1,ICRG      ACCFAM OPERATION 
  
 IACH     DEFVL  1,ICRG      CHARGE OPERATION 
  
 IARX     DEFVL  1,ICRG      RESEX OPERATION
 MS       SPACE  4
***       DEFINE INCREMENTS FOR THE *MS* IO ACCUMULATOR.
*         THE FOLLOWING PARAMETERS ARE INSTALLATION OPTIONS AND CAN BE
*         CHANGED BY THE CENTRAL SITE.  THEY MUST LIE WITHIN THE RANGE
*         PREVIOUSLY DEFINED AND MUST BE IN THE SAME FORMAT 
*         AS THE LIMITS.
* 
*         THE FORMULA FOR CALCULATING THE MS INCREMENT IS - 
* 
*         MS INCREMENT = OPERATION CHARGE + PENALTY + 
*                            PRUS TRANSFERRED * (2**IMPT) 
  
  
*         THE FOLLOWING OPERATION CHARGES ARE APPLIED FOR THE 
*         DEFINED FUNCTIONS.
  
  
 IMLL     DEFVL  1,ICRG      LIBRARY LOAD    (LDR)
 IMCS     DEFVL  1,ICRG      CONTROL STATEMENT (1AJ)
 IMMS     DEFVL  1,ICRG      DAYFILE MESSAGE (1MA)
  
 IMRD     DEFVL  2,ICRG      READ (CIO) 
 IMWT     DEFVL  2,ICRG      WRITE (CIO)
 IMSK     DEFVL  2,ICRG      SKIP (CIO) 
 IMOP     DEFVL  1,ICRG      OPEN (CIO) 
 IMCL     DEFVL  1,ICRG      CLOSE (CIO)
 IMRU     DEFVL  1,ICRG      RETURN/UNLOAD/EVICT (CIO)
  
  
*         REWIND IS A FREE FUNCTION (ALSO SKIP BACKWARD WITH SKIP 
*         COUNT = 777777B, WHICH IS TREATED SIMILAR TO REWIND). 
*         *CLOSE/RETURN* AND *CLOSE/UNLOAD* FUNCTIONS INCUR AN
*         OPERATION CHARGE OF *IMCL* + *IMRU*.
  
  
*         AN ADDITIONAL PENALTY OF *IMRL* IF ADDED FOR EACH 
*         RANDOM REPOSITIONING OPERATION FOR A READ-WITH-LIST 
*         FUNCTION (*READLS*/*RPHRLS*), IF THE RANDOM ADDRESS 
*         SPECIFIED BY THE NEXT LIST ENTRY IF LESS THAN THE PRIOR 
*         RANDOM ADDRESS (REQUIRES BACKWARD REPOSITIONING)
*         OR EXCEEDS *IMPL* PRUS FORWARD FROM THE PREVIOUS POSITION.
  
 IMRL     DEFVL  3,ICRG      READ WITH LIST (CIO) 
 IMPL     EQU    128         POSITION INTERVAL (CIO)
  
  
*         INCREMENTS FOR CIO PRU TRANSFER OPERATIONS ARE
*         (PRUS TRANSFERRED * (2**IMPT)). 
  
 IMPT     DEFVL  2           PRUS TRANSFERRED INCREMENT (CIO) 
  
*         PRUS TRANSFERRED ARE ACCUMULATED FOR ALL OPERATIONS 
*         REQUIRING A DATA TRANSFER, INCLUDING *CIO* READ, WRITE, 
*         AND SKIP (EXCEPT BACKSPACE PRU AND SKIPEI), AND RANDOM
*         FILE DIRECTORY POSITIONING AND TRANSFER FOR *CIO* OPEN
*         AND CLOSE OPERATIONS.  SKIP BACKWARD TO EOR/EOF (AND
*         RANDOM OPEN DIRECTORY POSITIONING) CHARGES FOR PRUS THAT
*         ARE SKIPPED BACKWARDS, BUT NOT FOR THE EXCESS PRUS READ 
*         TO DETERMINE EOR AND EOF BOUNDARIES.
 OD       SPACE  4
***       DEFINE INCREMENTS FOR THE *OD* IO ACCUMULATOR.
*         THE FOLLOWING PARAMETERS ARE INSTALLATION OPTIONS AND CAN BE
*         CHANGED BY THE CENTRAL SITE.  THEY MUST LIE WITHIN THE RANGE
*         PREVIOUSLY DEFINED AND MUST BE IN THE SAME FORMAT 
*         AS THE LIMITS.
* 
*         THE FORMULA FOR CALCULATING THE OD INCREMENT IS - 
* 
*         OD INCREMENT = OPERATION CHARGE + 
*                            PRUS TRANSFERRED * (2**IODT) 
  
  
*         THE FOLLOWING OPERATION CHARGES ARE APPLIED FOR THE 
*         DEFINED FUNCTIONS.
  
  
 IORD     DEFVL  2,ICRG      READ (CIO) 
 IOWT     DEFVL  2,ICRG      WRITE (CIO)
 IOSK     DEFVL  2,ICRG      SKIP (CIO) 
 IOOP     DEFVL  1,ICRG      OPEN (CIO) 
 IOCL     DEFVL  1,ICRG      CLOSE (CIO)
 IORU     DEFVL  1,ICRG      RETURN/UNLOAD/EVICT (CIO)
  
  
*         REWIND IS A FREE FUNCTION (ALSO SKIP BACKWARD WITH SKIP 
*         COUNT = 777777B, WHICH IS TREATED SIMILAR TO REWIND). 
*         *CLOSE/RETURN* AND *CLOSE/UNLOAD* FUNCTIONS INCUR AN
*         OPERATION CHARGE OF *IOCL* + *IORU*.
  
  
*         INCREMENTS FOR CIO PRU TRANSFER OPERATIONS ARE
*         (PRUS TRANSFERRED * (2**IODT)). 
  
 IODT     DEFVL  2           PRUS TRANSFERRED INCREMENT (CIO) 
  
*         PRUS TRANSFERRED ARE ACCUMULATED FOR ALL OPERATIONS 
*         REQUIRING A DATA TRANSFER, INCLUDING *CIO* READ, WRITE, 
*         AND SKIP (EXCEPT BACKSPACE PRU AND SKIPEI), AND RANDOM
*         FILE DIRECTORY POSITIONING AND TRANSFER FOR *CIO* OPEN
*         AND CLOSE OPERATIONS.  SKIP BACKWARD TO EOR/EOF (AND
*         RANDOM OPEN DIRECTORY POSITIONING) CHARGES FOR PRUS THAT
*         ARE SKIPPED BACKWARDS, BUT NOT FOR THE EXCESS PRUS READ 
*         TO DETERMINE EOR AND EOF BOUNDARIES.
 MT       SPACE 4 
 MT1      ENDIF 
  
***       DEFINE INCREMENTS FOR THE *MT* IO ACCUMULATOR.
*         THE FOLLOWING PARAMETERS ARE INSTALLATION OPTIONS AND CAN BE
*         CHANGED BY THE CENTRAL SITE.  THEY MUST LIE WITHIN THE RANGE
*         PREVIOUSLY DEFINED AND MUST BE IN THE SAME FORMAT 
*         AS THE LIMITS.
* 
*         THE FOLLOWING INCREMENTS ARE FOR EACH PRU PROCESSED OR
*         FOR EACH OPERATION. 
  
  
 ITRW     DEFVL  4,ICRG      READ/WRITE   (CIO/1MT) 
 ITRL     DEFVL  5,ICRG      READ L TAPE  (CIO/1MT) 
 ITPO     DEFVL  2,ICRG      POSITION     (CIO/1MT) 
 ITCL     DEFVL  1,ICRG      OPEN/CLOSE   (CIO/1MT) 
 ITWL     DEFVL  6,ICRG      WRITE L TAPE (CIO/1MT) 
 PF       SPACE  4
 MT2      IF     -DEF,MT$ 
  
***       DEFINE INCREMENTS FOR THE *PF* IO ACCUMULATOR.
*         THE FOLLOWING PARAMETERS ARE INSTALLATION OPTIONS AND CAN BE
*         CHANGED BY THE CENTRAL SITE.  THEY MUST LIE WITHIN THE RANGE
*         PREVIOUSLY DEFINED AND MUST BE IN THE SAME FORMAT 
*         AS THE LIMITS. THE INCREMENTS ARE FOR EACH OPERATION. 
  
  
*         PFM FUNCTIONS.
  
 IPSV     DEFVL  1,ICRG      SAVE 
 IPRP     DEFVL  1,ICRG      REPLACE
 IPGT     DEFVL  1,ICRG      GET
 IPAP     DEFVL  20,ICRG     APPEND 
 IPDF     DEFVL  4,ICRG      DEFINE 
 IPAT     DEFVL  4,ICRG      ATTACH 
 IPPM     DEFVL  1,ICRG      PERMIT 
 IPCG     DEFVL  1,ICRG      CHANGE 
 IPPG     DEFVL  1,ICRG      PURGE
 IPCT     DEFVL  1,ICRG      CATLIST
 IPUA     DEFVL  1,ICRG      UATTACH
 IPSA     DEFVL  1,ICRG      SETASA 
 IPAF     DEFVL  1,ICRG      SETAF
 IPSD     DEFVL  1,ICRG      SETDA
 IPDD     DEFVL  1,ICRG      DROPDS 
 IPAN     DEFVL  1,ICRG      ASSIGNPF 
 IPAC     DEFVL  1,ICRG      SETPFAC
 IPAL     DEFVL  1,ICRG      SETPFAL
 IPUG     DEFVL  1,ICRG      UGET 
 IPUR     DEFVL  1,ICRG      UREPLACE 
 IPDI     DEFVL  1,ICRG      DROPIDS
 IPDP     DEFVL  1,ICRG      DELPFC 
 IPRS     DEFVL  1,ICRG      RPFSTAT
 IPSP     DEFVL  1,ICRG      STAGEPF
  
  
*         CHARGES MADE ON ALL PFM FUNCTIONS.
  
 IPCS     DEFVL  4,ICRG      CATALOG SEARCH 
 IPCE     DEFVL  0,ICRG      CATALOG ENTRY RETURNED 
 IPVA     DEFVL  1,ICRG      VALIDUX ACCESS 
 IPPA     DEFVL  1,ICRG      PERMIT FILE ACCESS 
 IPAD     DEFVL  1,ICRG      ALTERNATE DEVICE ACCESS
  
  
*         INDIRECT FILE DEVICE TRANSFER CHARGES.
  
 IPPR     DEFVL  4,ICRG      INCREMENT APPLIED AT PRU TRANSFER INTERVAL 
 IPPN     DEFVL  10,ICRG     INTERVAL (IN PRUS) FOR APPLYING INCREMENT
 CHARGE   SPACE  4
***       CHARGE CONTROL CONVERSION PARAMETERS. 
*         THESE PARAMETERS ARE INSTALLATION OPTIONS AND CAN BE
*         CHANGED BY THE CENTRAL SITE.
*         THE FOLLOWING VALUES ARE USED TO COVERT THE SRU 
*         INDICES IN PROFILO TO THE SRU MULTIPLIER VALUES.
*         THESE VALUES MUST FALL WITHIN THE APPROPRIATE 
*         PREDEFINED MULTIPLIER RANGE AND MUST BE OF THE SAME 
*         FORMAT (NUMBER OF DECIMAL PLACES) AS THE PREDEFINED 
*         RANGES. 
* 
 CHARGE   SPACE  4
***       THE FOLLOWING ALGORITHM IS USED TO CONVERT THE
*         PROFILO SRU INDICES TO THE SRU MULTIPLIER.
* 
*         MI = I(MISU-MISL)/64 + MISL 
* 
*         MISU = UPPER BOUND. 
*         MISL = LOWER BOUND. 
*         I = PROFILO INDEX.
* 
*         EXAMPLE - 
*         M2SL = .O50.
*         M2SU = .150.
*         I = 32. 
*         M2 = 32(.150-.050)/64 + .050
*            = 3.200/64 + .050
*            = .050 +.050 
*            = .100 
* 
*         TWO EXCEPTIONS EXIST -
*         1.) IF THE INDEX IS 77B, THEN THE DEFAULT SRU MULTIPLIER
*             VALUE IS USED ( M1SR, M2SR, ETC.) 
*         2.) IF THE INDEX IS 0, THEN THE SRU MULTIPLIER IS 
*             ZERO. 
* 
*         TO DETERMINE THE INDICES FOR THE APPROPRIATE
*         MULTIPLIERS, FIRST ASSIGN A RANGE THAT COVERS ALL 
*         OF THE VALUES FOR A MULTIPLIER. AND SECOND, 
*         SOLVE THE ABOVE EQUATION FOR I OR - 
* 
*         I = 64(MI - MISL)/(MISU - MISL) 
*         MI = MULTIPLIER VALUE.
*         MISU = UPPER BOUND OF CONVERSION RANGE. 
*         MISL = LOWER BOUND OF CONVERSION RANGE. 
* 
*         EXAMPLE - 
*         M2 = .100 
*         M2SL = .050 
*         M2SU = .150 
*         I = 64(.100 - .050)/(.150 - .050) 
*           = 64(.050)/(.100) 
*           = 64*.5 
*           = 32
* 
*         NOTE - WHEN THE SRU INDICES ARE ENTERED INTO PROFILE, THE SRU 
*         MULTIPLIERS ARE DISPLAYED.
  
  
 M1SL     DEFVL  0.5,M1SR    M1 LOWER BOUND 
 M1SU     DEFVL  1.5,M1SR    M1 UPPER BOUND 
  
 M2SL     DEFVL  .050,M2SR   M2 LOWER BOUND 
 M2SU     DEFVL  .150,M2SR   M2 UPPER BOUND 
  
 M3SL     DEFVL  .001,M3SR   M3 LOWER BOUND 
 M3SU     DEFVL  .064,M3SR   M3 UPPER BOUND 
  
 M4SL     DEFVL  .001,M4SR   M4 LOWER BOUND 
 M4SU     DEFVL  .064,M4SR   M4 UPPER BOUND 
  
 MASL     DEFVL  1,ADSR      ADDER LOWER BOUND
 MASU     DEFVL  64,ADSR     ADDER UPPER BOUND
  
 MT2      ENDIF 
 FSE      SPACE  4,15 
***       FULL SCREEN EDITOR ACCOUNTING PARAMETERS. 
* 
*         THE *IFCO* PARAMETER DEFINES THE ESTIMATED NUMBER OF *CP* 
*         MILLISECONDS TO BE CHARGED FOR EACH WORD OF TERMINAL OUTPUT 
*         PRODUCED BY THE *SMFEX* SUBSYSTEM.  THIS ESTIMATE WILL BE 
*         USED BY FSE TO INCLUDE THE PROCESSING DONE BY *SMFEX*,
*         WHICH FSE CAN NOT DETERMINE DIRECTLY. 
  
 IFCO     RANGE  .001,1.000  FSE MSEC CP PER OUTPUT WORD RANGE
 IFCO     DEFVL  .100        FSE CP MSEC PER OUTPUT WORD
  
  
          BASE   *
          ENDX
