COMPCVI 
COMMON
          CTEXT  COMPCVI - CONVERT VALIDATION INDICES.
 COMPCVI  SPACE  4
          BASE   MIXED
          IF     -DEF,QUAL$,1 
          QUAL   COMPCVI
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 COMPCVI  SPACE  4
***       COMPCVI - CONVERT VALIDATION INDICES. 
*         M. E. MADDEN.      74/10/02.
 COMPCVI  SPACE  4
***       COMPCVI DEFINES THE FORMULAE FOR CONVERTING FROM AN INDEX 
*         VALUE INTO THE ACTUAL LIMIT VALUE FOR THE FOLLOWING SYSTEM
*         RESOURCES OR ACTIVITIES THAT INSTALLATIONS MAY CONTROL -
*                DB   DEFERRED BATCH JOBS 
*                DT   DETACHED JOBS 
*                TL   TIME LIMIT (UNITS OF 10B) 
*                CM   FIELD LENGTH
*                PT   UNITS PLOTTED 
*                CP   CARDS PUNCHED 
*                LP   LINES PRINTED 
*                MS   MASS STORAGE PRUS 
*                DF   DAYFILE MESSAGES
*                CC   CONTROL STATEMENTS
*                EC   EXTENDED MEMORY FIELD LENGTH
*                SL   SRU LIMIT (UNITS OF 10B)
* 
* 
*         THE FORMULA WILL BE ASSEMBLED IF XXI$ IS DEFINED IN THE 
*         CALLING PROGRAM, WHERE XX IS ONE OF THE LIMIT NMEMONICS.
*         FOR EXAMPLE, THE DEFINITION OF MSI$ WILL CAUSE THE FORMULA
*         FOR THE NUMBER OF MASS STORAGE PRUS TO BE ASSEMBLED.
* 
*         INCLUDED WITHIN THIS COMMON DECK IS A PROCEDURE FOR 
*         CONVERTING THE INDEX VALUES INTO COUNTING LIMITS FOR THE
*         *ACLW* CONTROL POINT WORD.
*         THE SELECTION OF CLI$ WILL ASSEMBLE THIS FORMULA AS WELL AS 
*         THE FORMULAE FOR MS, DF, CC, AND DT.
* 
*         ALL FORMULAE HAVE THE FOLLOWING ENTRY/EXIT CONDITIONS.
* 
*         ENTRY  (A) = INDEX VALUE. 
* 
*         EXIT   (A) = LIMIT VALUE. 
* 
*         USES   CM - CM+4.  (*ECI* ONLY) 
* 
*         NOTE - THIS COMMON DECK REQUIRES THAT *COMSACC* AND *COMSMSC* 
*         ALSO BE PRESENT SO THAT LIMIT BASE CONSTANTS ARE AVAILABLE. 
 CLI      SPACE  4
**        CLI - CONVERT INDEX VALUES INTO COUNTING LIMITS.
* 
*         ENTRY  (A) = ADDRESS OF LIMIT INDICES.
* 
*         EXIT   COUNTING LIMITS WRITTEN INTO ADDRESS SUPPLIED ON ENTRY.
* 
*         USES   CM - CM+4, T1. 
* 
*         CALLS  CCI, DFI, MSI. 
  
  
 CLI      IF     DEF,CLI$ 
 CCI$     SET    1
 DFI$     SET    1
 DTI$     SET    1
 MSI$     SET    1
  
  
 CLI      SUBR               ENTRY/EXIT 
          STD    T1          SAVE ADDRESS OF INDEX WORD 
          STM    CLIA 
          LDM    4,T1        CONVERT MASS STORAGE 
          RJM    MSI
          STD    CM+4 
          SHN    -14
          STD    CM+3 
          LDM    3,T1        SET DETACH JOB INDEX 
          SCN    77 
          RAD    CM+3 
          LDM    4,T1        CONVERT CONTROL STATEMENTS 
          RJM    CCI
          STD    CM+2 
          LDM    3,T1        CONVERT DAYFILE MESSAGES 
          RJM    DFI
          STD    CM+1 
          LDK    EPRL        ERROR PROCESSING LIMIT 
          STD    CM 
          LDD    MA          WRITE CONVERTED VALUES 
          CWD    CM 
          CRM    **,ON
 CLIA     EQU    *-1
          LJM    CLIX        RETURN 
 CLI      ENDIF 
 CCI      SPACE  4
**        CCI - CONTROL STATEMENTS. 
* 
*         FORMULA IS -  (I * 100B) + KCCI 
* 
*         ENTRY  (A) = 6-BITS INDEX * 100 
  
 CCI      IF     DEF,CCI$ 
  
 CCI1     LCN    0
  
 CCI      SUBR               ENTRY/EXIT 
          SHN    -6 
          LMN    77 
          ZJN    CCI1        IF UNLIMITED 
          LMN    77 
          SHN    6
          ADC    KCCI 
          UJN    CCIX        RETURN 
  
 CCI      ENDIF 
 CMI      SPACE  4
**        CMI - FIELD LENGTH. 
* 
*         FORMULA IS -  (I * 40B) + KCMI
* 
*         ENTRY  (A) = 6-BITS INDEX * 100 
  
 CMI      IF     DEF,CMI$ 
  
 CMI1     LDC    3777-MNFL   SET MAXIMUM FIELD LENGTH ALLOWED 
  
 CMI      SUBR               ENTRY/EXIT 
          SHN    -6 
          LPN    77 
          LMN    77 
          ZJN    CMI1        IF UNLIMITED 
          LMN    77 
          SHN    5
          ADC    KCMI 
          UJN    CMIX        RETURN 
  
 CMI      ENDIF 
 CPI      SPACE  4
**        CPI - CARDS PUNCHED.
* 
*         FORMULA IS -  (I * 100B) + KCPI 
* 
*         ENTRY  (A) = 6-BITS INDEX * 100 
  
 CPI      IF     DEF,CPI$ 
  
 CPI1     LCN    0
  
 CPI      SUBR               ENTRY/EXIT 
          LPN    77 
          LMN    77 
          ZJN    CPI1        IF UNLIMITED 
          LMN    77 
          SHN    6
          ADC    KCPI 
          UJN    CPIX        RETURN 
  
 CPI      ENDIF 
 DBI      SPACE  4
**        DBI - DEFERRED BATCH JOBS.
* 
*         FORMULA IS -  (2 ** I)
*         EXCEPTION - ENTRY OF ZERO RETURNS ZERO. 
* 
*         ENTRY  (A) = 3-BITS INDEX * 100 
  
 DBI      IF     DEF,DBI$ 
  
 DBI1     LCN    0
  
 DBI      SUBR               ENTRY/EXIT 
          SHN    -3 
          LPN    7
          ZJN    DBIX        IF INDEX EQUALS ZERO 
          LMN    7
          ZJN    DBI1        IF UNLIMITED 
          LMN    7
          ADD    TH 
          STM    DBIA 
          LDN    1
 DBIA     SHN    1           (SHIFT INDEX)
          UJN    DBIX        RETURN 
  
 DBI      ENDIF 
 DFI      SPACE  4
**        DFI - DAYFILE MESSAGES. 
* 
*         FORMULA IS -  (I * 100B) + KDFI 
* 
*         ENTRY  (A) = 6-BITS INDEX * 100 
  
 DFI      IF     DEF,DFI$ 
  
 DFI1     LCN    0
  
 DFI      SUBR               ENTRY/EXIT 
          LPN    77 
          LMN    77 
          ZJN    DFI1        IF UNLIMITED 
          LMN    77 
          SHN    6
          ADC    KDFI 
          UJN    DFIX        RETURN 
  
 DFI      ENDIF 
 DTI      SPACE  4,10 
**        DTI - NUMBER OF DETACHED JOBS.
* 
*         FORMULA IS - (I + KDTI).
* 
*         ENTRY  (A) = 6-BITS INDEX * 100B. 
  
  
 DTI      IF     DEF,DTI$ 
  
 DTI1     LCN    0
  
 DTI      SUBR               ENTRY/EXIT 
          SHN    -6 
          LMN    77 
          ZJN    DTI1        IF UNLIMITED 
          LMN    77 
          ADK    KDTI 
          UJN    DTIX        RETURN 
  
 DTI      ENDIF 
 ECI      SPACE  4
**        ECI - EXTENDED MEMORY FIELD LENGTH IN *UEBS* WORD BLOCKS. 
* 
*         FORMULA IS - (I * 20B) + KECI 
* 
*         ENTRY (A) = 6-BIT INDEX.
  
 ECI      IF     DEF,ECI$ 
  
 ECI1     LDC    3777 
  
 ECI      SUBR               ENTRY/EXIT 
          STD    T0 
          LDK    MEFL        GET USER EM SHIFT COUNT
          CRD    CM 
          LDD    CM+2 
          SHN    -11
          LMC    SHNI+77
          STM    ECIA 
          LDD    T0 
          LPN    77 
          LMN    77 
          ZJN    ECI1        IF UNLIMITED 
          LMN    77 
          SHN    4           I*20B
          ADC    KECI 
 ECIA     SHN    -0 
*         SHN    -UESC
          UJN    ECIX        RETURN 
  
 ECI      ENDIF 
 LPI      SPACE  4
**        LPI - LINES PRINTED.
* 
*         FORMULA IS -  (I * 2000B) + KLPI
* 
*         ENTRY  (A) = 6-BITS INDEX * 100 
  
 LPI      IF     DEF,LPI$ 
  
 LPI1     LCN    0
  
 LPI      SUBR               ENTRY/EXIT 
          LPN    77 
          LMN    77 
          ZJN    LPI1        IF UNLIMITED 
          LMN    77 
          SHN    12 
          ADC    KLPI 
          UJN    LPIX        RETURN 
  
 LPI      ENDIF 
 MSI      SPACE  4
**        MSI - MASS STORAGE PRUS.
* 
*         FORMULA IS -  (I * 10000B) + KMSI 
* 
*         ENTRY  (A) = 6-BITS INDEX * 100 
  
 MSI      IF     DEF,MSI$ 
  
 MSI1     LCN    0
  
 MSI      SUBR               ENTRY/EXIT 
          LPN    77 
          LMN    77 
          ZJN    MSI1        IF UNLIMITED 
          LMN    77 
          SHN    14 
          ADC    KMSI 
          UJN    MSIX        RETURN 
  
 MSI      ENDIF 
 PTI      SPACE  4,10 
**        PTI - UNITS PLOTTED.
* 
*         FORMULA IS -  ( I * 2000B ) + KPTI
* 
*         ENTRY  (A) = 6-BITS INDEX * 100.
  
  
 PTI      IF     DEF,PTI$ 
  
 PTI1     LCN    0
  
 PTI      SUBR               ENTRY/EXIT 
          LPN    77 
          LMN    77 
          ZJN    PTI1        IF UNLIMITED 
          LMN    77 
          SHN    12 
          ADC    KPTI 
          UJN    PTIX        RETURN 
  
 PTI      ENDIF 
  
 SLI      SPACE  4
**        SLI - SRU LIMIT.
* 
*         FORMULA IS -  (I**2)*10B + KSLI 
* 
*         ENTRY  (A) = 6-BITS INDEX.
*                IF (A) .GE. 73B, SET UNLIMITED.
* 
*         EXIT   (A) = LIMIT VALUE/10B. 
*                    .LT. 0 IF UNLIMITED. 
* 
*         USES   T1, T2, T3.
  
 SLI      IF     DEF,SLI$ 
  
 SLI1     LCN    0
  
 SLI      SUBR               ENTRY/EXIT 
          LPN    77 
          SBN    73 
          PJN    SLI1        IF UNLIMITED 
          ADN    73 
          STD    T1 
          STD    T3 
          LDN    0
          STD    T2          INITIALIZE COLLECTOR 
 SLI2     LDD    T3 
          ZJN    SLI4        IF THROUGH SQUARING
          SHN    -1+22
          STD    T3 
          PJN    SLI3        IF NO SUM TO ADD TO COLLECTOR
          LDD    T1 
          RAD    T2 
 SLI3     LDD    T1 
          RAD    T1 
          UJN    SLI2        CHECK NEXT PLACE 
  
 SLI4     LDD    T2 
          SHN    3
          ADK    KSLI 
          UJN    SLIX        RETURN 
  
 SLI      ENDIF 
 TLI      SPACE  4
**        TLI - TIME LIMIT. 
* 
*         FORMULA IS -  (I * 100B) + KTLI 
* 
*         ENTRY  (A) = 6-BITS INDEX * 100 
* 
*         EXIT   (A) = LIMIT VALUE/10B. 
  
 TLI      IF     DEF,TLI$ 
  
 TLI1     LCN    0
  
 TLI      SUBR               ENTRY/EXIT 
          SHN    -6 
          LPN    77 
          LMN    77 
          ZJN    TLI1        IF UNLIMITED 
          LMN    77 
          SHN    6
          ADC    KTLI 
          UJN    TLIX        RETURN 
  
 TLI      ENDIF 
          SPACE  4
          BASE   *
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 CLI$     IF     DEF,CLI$ 
 CLI      EQU    /COMPCVI/CLI 
 CLI$     ENDIF 
 CCI$     IF     DEF,CCI$ 
 CCI      EQU    /COMPCVI/CCI 
 CCI$     ENDIF 
 CMI$     IF     DEF,CMI$ 
 CMI      EQU    /COMPCVI/CMI 
 CMI$     ENDIF 
 CPI$     IF     DEF,CPI$ 
 CPI      EQU    /COMPCVI/CPI 
 CPI$     ENDIF 
 DBI$     IF     DEF,DBI$ 
 DBI      EQU    /COMPCVI/DBI 
 DBI$     ENDIF 
 DFI$     IF     DEF,DFI$ 
 DFI      EQU    /COMPCVI/DFI 
 DFI$     ENDIF 
 DTI$     IF     DEF,DTI$ 
 DTI      EQU    /COMPCVI/DTI 
 DTI$     ENDIF 
 ECI$     IF     DEF,ECI$ 
 ECI      EQU    /COMPCVI/ECI 
 ECI$     ENDIF 
 LPI$     IF     DEF,LPI$ 
 LPI      EQU    /COMPCVI/LPI 
 LPI$     ENDIF 
 MSI$     IF     DEF,MSI$ 
 MSI      EQU    /COMPCVI/MSI 
 MSI$     ENDIF 
 PTI$     IF     DEF,PTI$ 
 PTI      EQU    /COMPCVI/PTI 
 PTI$     ENDIF 
 SLI$     IF     DEF,SLI$ 
 SLI      EQU    /COMPCVI/SLI 
 SLI$     ENDIF 
 TLI$     IF     DEF,TLI$ 
 TLI      EQU    /COMPCVI/TLI 
 TLI$     ENDIF 
 QUAL$    ENDIF 
          ENDX
