*COMDECK CCL
          CTEXT  CCL MACROS, MICROS, EQUS, DEFINITIONS
 SC2      EQU    2
 NOS      EQU    1
 NOSBE    EQU    3
  
          IPARAMS 
 SCOP     IFC    EQ,/"OS.NAME"/SCOPE /, 
          IFC    EQ,/"OS.VER"/2.1 /,1 
 HOST     SET    SC2
          IFC    EQ,/"OS.VER"/3.4 /,1 
 HOST     SET    NOSBE
 SCOP     ENDIF 
  
          IFC    EQ,/"OS.NAME"/KRONOS/,1
 HOST     SET    NOS
  
 OSNOSBE  IFNE   HOST,SC2 
 CMUR     EQU    RA.CMU      CMU-AVAILABLE FLAG WORD. 
 CSMR     EQU    67B         ADDRESS IN LOW CORE OF CHARACTER SET FLAG
 OSNOSBE  ENDIF 
  
  
**        IP  -  INSTALLATION PARAMETERS
* 
*         THE IP. SYMBOLS DEFINE VALUES WHICH EACH INSTALLATION 
*         IS EXPECTED TO REVIEW AND REDEFINE IF NECESSARY 
*         ACCORDING TO THE NEEDS OF THAT SITE.
*         SEVERAL OF THE VALUES ARE DEFINED AS MICROS.  THE MICROS
*         ARE USED WITHIN ERROR MESSAGES TO PRINT THE ACTUAL
*         VALUES WHICH LIMIT VARIOUS ACTIONS.  SO THAT THE USAGE
*         OF THESE DEFINED VALUES ARE REPRESENTED IN THE REFERENCE
*         LISTINGS THE MICROS ARE ALSO USED TO DEFINE V. SYMBOLS
*         WHICH ARE USED WITHIN THE CODE
  
 IP.DPF   EQU    1           0= NO DEFAULT PROCEDURE FILE NAME PROVIDED 
 IP.DPFN  MICRO  1,,$PROCFIL$  DEFAULT PROCEDURE FILE NAME
 IP.ATT   EQU    1           0= DO NOT AUTOMATICALLY ATTACH(GET IN NOS) 
 IP.ID    MICRO  1,,$PUBLIC$  ID IF AUTOMATIC ATTACH (SCOPE2/NOSBE) 
  
 OSSC2    IFEQ   HOST,SC2 
 IP.RLD   EQU    0
 OSSC2    ELSE
 IP.RLD   EQU    1           USE LIB DIRECTORY TO FIND PROC 
 OSSC2    ENDIF 
  
 MCTDPF   MICCNT IP.DPFN
          ERRNG  7+33*IP.ATT-MCTDPF  IF NOT IP.ATT, 7 CHARACTER MAX.
  
*         NOTE - REDUCTION OF IP.EXP TO 50 AND IP.FP TO 25 WILL ALLOW 
*                CCL SIZE TO BE LESS THAN 10000B ON NOS FOR CCLBRWE.
* 
*         THE FOLLOWING VALUE LIMITS THE NUMBER OF OPERANDS OR OPERATORS
*         IN A CCL EXPRESSION.  IP.EXP MAY BE REDUCED TO ALLOW CCL
*         EXECUTION IN LESS MEMORY. 
  
 IP.EXP   CEQU   100         MAXIMUM OPERANDS OR OPERATORS IN EXPRESSION
  
*         THE FOLLOWING VALUE LIMITS THE MAXIMUM NUMBER OF FORMAL 
*         PARAMETERS.  STORAGE SPACE OF 10 WORDS PER POSSIBLE 
*         PARAMETER WILL BE GENERATED.
*         IP.FP MAY BE REDUCED TO ENABLE CCL EXECUTION IN LESS MEMORY 
  
 IP.FP    MICRO  1,,$50$     MAXIMUM NUMBER OF FORMAL PARAMETER 
  
  
*         THE NEXT TWO VALUES DEFINE A MAXIMUM CHARACTER LIMIT. 
*         THE VALUES MAY BE DECREASED BY DEFINITION, HOWEVER CODE 
*         CHANGES ARE NECESSARY TO ALLOW A VALUE GREATER THAN 10. 
  
 IP.FPC   MICRO  1,,$10$     MAXIMUM CHARACTERS IN FORMAL PAR.
 IP.LCS   MICRO  1,,$10$     MAXIMUM, LABEL CHAR. STRING
  
 IP.KCLO  EQU    0           SINGLE CHARACTER OPERATOR OPTION 
                             =0 ABORT ON SINGLE CHAR. OPERATOR
                             =1 ISSUE WARNING ON SINGLE CHAR. OPERATOR
 IP.NPV   MICRO  1,,$6$      NUMBER OF PATTERN/VALUES IN CHECKLIST
 IP.PNL   MICRO  1,,$50$     NESTING LIMIT FOR PROCEDURE
 IP.SCL   MICRO  1,,$150$ 
 IP.SCS   MICRO  1,,$40$     MAXIMUM, SPECIFICATION CHAR. STRING
  
*         IP.SDO WILL CAUSE THE GENERATION AND ASSEMBLY OF THE
*         SCREEN DIALOGUE OVERLAY ON NOS.  DEFAULT VALUE IS ONE.
*         A ZERO VALUE WILL CAUSE THE OVERLAY NOT TO BE 
*         GENERATED, WHICH WILL CAUSE THE SCREEN DIALOGUE CODE
*         TO BE REMOVED FROM CCLBRWE. 
  
 OSNOS    IFEQ   HOST,NOS 
 IP.LCL   EQU    0           1 = SDO OVERLAY IS ON A LOCAL FILE 
 IP.SDO   EQU    1           DEFAULT/GENERATE OVERLAY 
 OSNOS    ELSE
 IP.SDO   EQU    0           NO OVERLAY ON SC2 AND NBE
 OSNOS    ENDIF 
  
*         THE VALUES OF IP.SYS AND IP.VER WILL BE STORED IN THE 
*         TABLE OF SYMBOLIC NAMES (SYS=IP.SYS , VER=IP.VER).
*         SYS IS INTENDED TO BE COMPARED TO VARIOUS NAMES WHICH 
*         REPRESENT SYSTEMS SO THAT THE HOST OPERATING SYSTEM 
*         CAN BE DETERMINED.  (SC2=2,SC3=3,NOSB=4,KR=5,NOS=6) 
*         IN THE FUTURE A MACRO WILL ALLOW SYS AND VER TO BE
*         DETERMINED DURING EXECUTION.
  
 OSSC2    IFEQ   HOST,SC2 
 IP.VER   MICRO  1,3,$"OS.LEV"$ 
 IP.VER   SET    "IP.VER" 
 OSSC2    ENDIF 
          IFEQ   HOST,NOSBE,1 
 IP.VER   SET    446
          IFEQ   HOST,SC2,1 
 IP.SYS   SET    2
          IFEQ   HOST,NOS,1 
 IP.SYS   SET    6
          IFEQ   HOST,NOSBE,1 
 IP.SYS   SET    4
  
 OSSC2    IFNE   HOST,SC2 
 IP.TAPO  EQU    1           PROCEDURE FROM TAPE OPTION 
                             =0 DO NOT SUPPORT TAPE RESIDENT PROCEDURE
                             (BEGIN WILL HANG IN RECALL)
                             =1 ALLOW BEGIN OF PROCEDURE FROM TAPE
*                            NOTE - SET TO 0 REDUCES CCL BY 700B
 OSSC2    ELSE
 IP.TAPO  EQU    0
 OSSC2    ENDIF 
  
*         THE VALUE IP.VCCL IS THE CCL DEVELOPMENT LEVEL (PRODUCT-PSR)
*         EXECUTE A DISPLAY,VERCCL. TO DETERMINE DEVELOPMENT LEVEL
  
 IP.VCCL  SET    55799       CCL DEVELOPEMENT LEVEL 
 IP.VCCL  SET    57890       CCL DEVELOPEMENT LEVEL 
 IP.VCCL  SET    57986       CCL DEVELOPEMENT LEVEL 
 IP.VCCL  SET    58002       CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    58106       CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    58208             CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    59074             CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    591               CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    592               CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    593               CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    594               CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    604               CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    606               CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    615               CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    617               CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    618               CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    619               CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    620               CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    621               CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    622               CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    623               CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    624               CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    625               CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    626               CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    627               CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    628               CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    629               CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    630         CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    631         CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    632         CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    633         CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    6701        CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    6781        CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    6782        CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    6881        CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    6882        CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    6883        CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    7001        CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    7002        CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    7003        CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    7161        CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    7391        CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    7501        CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    7971        CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    7972        CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    8511        CCL DEVELOPMENT LEVEL
 IP.VCCL  SET    8591        CCL DEVELOPMENT LEVEL
  
  
  
  
  
*         THE SYMBOLS SD. ARE FOR SYSTEM DEPENDENT VALUES 
  
  
 OSSC2    IFEQ   HOST,SC2 
  
 SD.SPF    MICRO  1,,$ .CCL..$  SKIPPING PREFIX 
  
  
  
  
 OSSC2    ELSE
  
 SD.SPF   MICRO  1,,$..$     PREFIX FOR SKIPPED CONTROL CARDS 
  
 OSSC2    ENDIF 
  
 OSNOS    IFEQ   HOST,NOS 
  
 SD.TLE   EQU    TLET 
 SD.ARE   EQU    ARET 
 SD.PPE   EQU    PPET 
 SD.CPE   EQU    CPET 
 SD.PCE   EQU    PCET        MONITOR CALL ERROR 
 SD.ODE   EQU    ODET 
 SD.PSE   EQU    PSET 
 SD.ECE   EQU    ECET        ECS PARITY ERROR 
 SD.RSE   EQU    RSET        RECOVERED SUBSYSTEM (LEVEL 3)
 SD.TKE   EQU    TKET 
 SD.PEE   EQU    PEET        PPU ABORT ERROR
 SD.SYE   EQU    SYET        SYSTEM ABORT 
 SD.FSE   EQU    FSET        FORCED ERROR 
 SD.ORE   EQU    ORET        OVERRIDE ERROR 
 SD.SSE   EQU    SSET        SUBSYSTEM ABORT ERROR
 SD.SRE   EQU    SRET        SRU LIMIT ERROR
 SD.RCE   EQU    RCET        JOB HUNG IN AUTO RECALL
 SD.RRE   EQU    RRET        RERUN ERROR
 SD.OKE   EQU    OKET        OPERATOR KILL ERROR
 SD.FLE   EQU    FLET        FILE LIMIT ERROR 
 SD.SYO   EQU    SYOT 
 SD.BCO   EQU    BCOT 
 SD.EIO   EQU    EIOT 
 SD.RBO   EQU    RBOT        REMOTE BATCH ORIGIN
 SD.TXO   EQU    TXOT 
 SD.IAO   EQU    IAOT        INTERACTIVE ORIGIN 
 SD.IDE   EQU    IDET        IDLE DOWN
 SD.MXE   EQU    MXET        MAX NO. OF ERR FLAGS 
 SD.TIE   EQU    TIET        USER BREAK ONE 
 SD.TAE   EQU    TAET        USER BREAK TWO 
 SD.ITE   EQU    ITET        SCP INVALID TRANSFER ADDRESS 
 SD.MLE   EQU    MLET        MESSAGE LIMIT
 SD.SPE   EQU    SPET        RESERVED FOR INSTALLATION
 SD.DRE   EQU    DRET        DEADSTART - RERUN
 SD.SVE   EQU    SVET        SECURITY VIOLATION 
 SD.RAE   EQU    RAET        RECOVERY ABORT 
 SD.JSE   EQU    JSET        JOB STEP ABORT 
 SD.STE   EQU    STET        SUSPENSION TIMEOUT 
 SD.SLE   EQU    100B        SERVICE LIMIT ERROR NO LONGER DEFINED
 SD.SWE   EQU    SWET        SOFTWARE ERROR 
 SD.ESE   EQU    100B        DEFINED ON NOS/BE AND SC2
  
 OSNOS    ELSE
 OSNBE    IFEQ   HOST,NOSBE 
  
 SD.TLE   EQU    F.ERTL      CP TIME LIMIT
 SD.ARE   EQU    F.ERAR      ARITHMETIC ERROR, SENSED BY MTR
 SD.PPE   EQU    F.ERPP      PP ABORT (M.ABORT) REQUESTED BY PP 
 SD.CPE   EQU    F.ERCP      CPU ABORT(ABT IN RA+1)REQUESTED BY PROGRAM 
 SD.PCE   EQU    F.ERPCE     PP CALL ERR(GARBAGE IN RA+1)SENSED BY MTR
 SD.ODE   EQU    F.EROD      OPERATOR DROP
 SD.OKE   EQU    F.ERK       OPERATOR KILL
 SD.RRE   EQU    F.ERRN      OPERATOR RERUN (BATCH JOB ONLY)
 SD.ESE   EQU    F.EREX      EXIT S PROCESSING
 SD.MSE   EQU    F.ERMSL     MASS STORAGE LIMIT 
 SD.TKE   EQU    F.ERMSL     TRACK LIMIT (SAME AS MASS STORAGE LIMIT) 
 SD.RCE   EQU    F.ERHANG    JOB HUNG IN AUTO RECALL
 SD.PSE   EQU    100B        PROGRAM STOP 
  
 OSNBE    ELSE
  
 SD.RRE   EQU    100B        NOT DEFINED ON SC2 
 SD.OKE   EQU    100B        NOT DEFINED ON SC2 
  
 SD.TLE   EQU    1           TIME LIMIT 
 SD.ARE   EQU    2           ARITHMETIC ERROR 
 SD.PPE   EQU    3           PP ERROR 
 SD.CPE   EQU    4           CPU ABORT
 SD.PCE   EQU    5           PP CALL ERROR
 SD.ODE   EQU    6           DROP 
 SD.PSE   EQU    7           PROGRAM STOP 
 SD.ESE   EQU    11B         EXIT S PROCESSING
 SD.TKE   EQU    17B         TRACK LIMIT ERROR
 SD.RCE   EQU    100B        NOT DEFINED ON SCOPE 2 
 OSNBE    ENDIF 
 SD.PEE   EQU    100B        DEFINED ONLY ON NOS
 SD.SYE   EQU    100B        .. 
 SD.FSE   EQU    100B        .. 
 SD.ORE   EQU    100B        .. 
 SD.SSE   EQU    100B        .. 
 SD.SRE   EQU    100B        .. 
 SD.IDE   EQU    100B        .. 
 SD.MXE   EQU    100B        .. 
 SD.TIE   EQU    100B        .. 
 SD.TAE   EQU    100B        .. 
 SD.ITE   EQU    100B        .. 
 SD.MLE   EQU    100B        .. 
 SD.SPE   EQU    100B        .. 
 SD.DRE   EQU    100B        .. 
 SD.SVE   EQU    100B        .. 
 SD.RAE   EQU    100B        .. 
 SD.STE   EQU    100B        .. 
 SD.SLE   EQU    100B        .. 
 SD.FLE   EQU    100B        .. 
 SD.SWE   EQU    100B        .. 
 SD.RSE   EQU    100B        .. 
 SD.JSE   EQU    100B        .. 
 SD.ECE   EQU    100B        .. 
 SD.SYO   EQU    0           SYSTEM JOB 
 SD.BCO   EQU    1           BATCH JOB
 SD.EIO   EQU    2           REMOTE BATCH 
 SD.RBO   EQU    2           REMOTE BATCH ORIGIN
 SD.TXO   EQU    3           TERMINAL JOB 
 SD.IAO   EQU    3           INTERACTIVE ORIGIN 
  
 OSNOS    ENDIF 
  
  
*         THE NAMES OF THE WORK FILES OF CCL ARE DEFINED BELOW. 
*         IN SCOPE 2 THESE NAMES MAY BE CHANGED EASILY.  HOWEVER IN 
*         NOS/BE THE NAMES ARE SPECIAL CASED IN THE PP ROUTINE 1SI, 
*         INTERCOM, AND IN CHECKPOINT/RESTART.
  
 M.FNDAT  MICRO  1,,$ZZCCLAA$  FILE NAME, BASE NAME - DEFAULT DATA FILE 
 M.FNOCS  MICRO  1,,$ZZZZZC0$  FILE NAME, TO HOLD ORIGINAL CONTROL
                               STATEMENTS (NOT USED BY SCOPE 2) 
 M.FNPS1  MICRO  1,,$ZZZZZC1$  FILE NAME, PROC STACK ONE
 M.FNPS2  MICRO  1,,$ZZZZZC2$  FILE NAME, PROC STACK TWO
 M.FNIN   MICRO  1,,$ZZZZZIN$      INTERCOM DEFAULT INPUT LFN 
 M.FNOU   MICRO  1,,$ZZZZZOU$      INTERCOM DEFAULT OUTPUT LFN
 M.FNHLP  MICRO  1,,$ZZZZZC3$      FILE NAME, HELP TEXT FILE
 M.FNASN  MICRO  1,,$ZZZZZC4$      LFN FOR USE WITH ASSIGN FUNCTION 
  
  
  
*         THE FOLLOWING ARE VALUES WHICH MAY BE USED ANYWHERE 
*         WITHIN THE CCL ROUTINES.  THEY ARE GROUPED HERE FOR EASE
*         OF REFERENCE AND FUTURE CHANGES.
  
 V.CCC    EQU    80          CONTROL CARD CHARACTERS
 V.CCCPC  EQU    "IP.SCL"    SIZE OF CONTROL CARDS IN PROC
                                CAN BE USED TO RESTRICT THE LENGTH OF 
                               THE SOURCE CARDS OF THE PROCEDURE. 
                               (BOTH THE HEADER AND THE BODY) 
 V.CCCW   EQU    "IP.SCL"/10+1   CONTROL CARD BUFFER WORD LENGTH
 V.CCVIO  EQU    4           SIZE OF VAR IN/OUT STRING (40 - 6 BIT CHAR)
 V.EVXSL  EQU    IP.EXP      EXPRESSION PROCESSOR STACK LENGTH
 V.PNLMX  EQU    "IP.PNL"    PROCEDURE NESTING LIMIT, MAXIMUM 
 V.FPMAX  EQU    "IP.FP"     FORMAL PARAMETERS, MAXIMUM 
 V.FPC    EQU    "IP.FPC" 
 V.LCS    EQU    "IP.LCS" 
 V.MINCIO EQU    101B        MINIMUM CIO BUFFER (MS)
 V.MINTAP EQU    1001B       MINIMUM CIO BUFFER (TAPE)
 V.PRNL   EQU    7           LENGTH OF PROCEDURE NAME (CHARS.)
 V.PSIZ   EQU    80          PROMPT/TITLE/DESCRIPTION SIZE
 V.PVMAX  EQU    "IP.NPV"    MAXIMUM PATTERN/VALUES FOR PARAMETERS
 V.SBSIZ  EQU    V.CCCPC+10  SIZE OF ALL SCATTER BUFFERS
 V.SCS    EQU    "IP.SCS" 
 SDOVL    IFNE   IP.SDO,0 
 V.SLMAX  EQU    64                 MAXIMUM SCREEN LINES (NOT OVER 64)
 V.SHMAX  EQU    V.SLMAX/4-1        MAXIMUM SCREEN HELP LINES 
 V.SPMAX  EQU    V.SLMAX-V.SHMAX-7  MAXIMUM SCREEN PARAMETER LINES
 SDOVL    ENDIF 
  
  
  
          PURGMAC FIELD 
**        FIELD MACRO 
* 
*         DEFINES W.,S.,N. VALUES FOR A FIELD 
* 
  
          MACRO  FIELD,TAG,WP,LB,RB 
          IFC    NE,/WP//,1 
 W.TAG    EQU    WP 
 S.TAG    EQU    LB 
 N.TAG    EQU    LB-RB+1
          ENDM
  
  
**        EXTRACT OPDEF 
* 
*         EXTRACT FIELD, RIGHT JUSTIFY WITH ZERO FILL 
* 
*         EX.I   X.J,TAG
*         XI     IS THE DESTINATION REGISTER
*         XJ     CONTAINS THE FIELD 
*         TAG    NAME OF THE FIELD
  
 EXX,Q    OPDEF  I,J,TAG
          IFEQ   I,J,1
          ERR 
          IFEQ   S.TAG,59,8 
          IFEQ   N.TAG,60,3 
 N.TAG    EQU    N.TAG
          BX.I   X.J
          IFNE   0,0,3
          MX.I   N.TAG
          BX.I   X.I*X.J
          LX.I   N.TAG
          IFNE   0,0,4
          MX.I   59-S.TAG 
          BX.I   -X.I*X.J 
          IFNE   N.TAG-S.TAG,1,1
          AX.I   S.TAG-N.TAG+1
          ENDM
  
**************************************************************
* 
*         NAME -       OXX,X,Q
* 
*         PURPOSE -    TO REPLACE THE FIELD IDENTIFIED BY TAG 
*                      IN THE WORD X.J BY THE VALUE (RIGHT
*                      JUSTIFIED) IN X.K.  THE RESULT WILL BE 
*                      STORED IN X.I. 
* 
*         CALLING SEQUENCE -
* 
*         OX.I   X.J,X.K,TAG
* 
* 
*         INPUT -      X.J - WORD W.TAG 
*                      X.K - VALUE (RIGHT JUSTIFIED) TO BE
*                            STORED IN FIELD TAG. 
*                      TAG - THE NAME GIVEN TO A GROUP OF 
*                            BITS BY THE FIELD MACRO. 
* 
* 
*         OUTPUT -     X.I - WORD W.TAG WITH THE NEW VALUE
*                      X.J - WORD W.TAG WITH THE OLD VALUE
* 
***************************************************************** 
  
  
  
 OXX,X,Q  OPDEF  I,J,K,TAG
          IFEQ   I,J,1
          ERR    RESULT AND ADDRESS REGISTER MUST BE UNIQUE 
          IFEQ   I,K,1
          ERR    RESULT AND VALUE REGISTER MUST BE UNIQUE 
          IFEQ   N.TAG-S.TAG,1,4
          MX.I   -N.TAG 
          BX.K   -X.I*X.K 
          BX.I   X.I*X.J
          IFNE   0,0,6
          MX.I   N.TAG
          LX.K   S.TAG+1-N.TAG
          IFNE   S.TAG,59,1 
          LX.I   S.TAG+1
          BX.K   X.I*X.K
          BX.I   -X.I*X.J 
          BX.I   X.I+X.K
          ENDM
  
  
  
  
  
  
  
**        BR  -  BEGIN REVERT DATA RECORD 
* 
*         FOR EACH PROCEDURE CALL (BEGIN) THE BR RECORD WILL BE 
*         WRITTEN TO THE A CCL FILE.  THE DATA IS USED
*         BY REVERT DURING THE CORRESPONDING REVERT.
* 
  
 BRWC     SET    0           WORD POSITION WITHIN TABLE BR
 BRPFN    FIELD  BRWC,59,18  PREVIOUS FILE NAME(EITHER THE
                               JOB FILE OR A CCL Z FILE)
 BRLGTH   FIELD  BRWC,17,00  LENGTH OF BR RECORD
 BRWC     SET    BRWC+1 
 BRSR1    FIELD  BRWC,59,42  SAVED VALUE OF R1
 BRWC     SET    BRWC+1 
 BRSR2    FIELD  BRWC,59,42  SAVED VALUE OF R2
 BRWC     SET    BRWC+1 
 BRSR3    FIELD  BRWC,59,42  SAVED VALUE OF R3
 BRWC     SET    BRWC+1 
 BRSEF    FIELD  BRWC,59,42  SAVED ERROR FLAG 
 BRWC     SET    BRWC+1 
 BRPNL    FIELD  BRWC,59,42  PROCEDURE NESTING LEVEL
 BRWC     SET    BRWC+1 
 BRDSC    FIELD  BRWC,59,42  DAYFILE SKIPPED CARDS
 BRWC     SET    BRWC+1 
 BRFSC    FIELD  BRWC,59,36  STATEMENT COUNT FOR ENCSF
 BRPFP    FIELD  BRWC,23,00  PREVIOUS FILE POSITION 
  
 L.BR     EQU    BRWC+1 
  
  
*         USED TO EXTRACT PROCEDURE HEADER CHECKLIST ATTRIBUTES.
  
 CHATT    FIELD  00,59,48    CHECKLIST ATTRIBUTE IDENTIFIER 
  
  
**        CSF - ACCSF/ENCSF FIELD DEFINITIONS 
* 
*         USE TO ISOLATE STATEMENT COUNT INFORMATION
* 
  
 CSFESC   FIELD  00,59,36    STATEMENT COUNT REQUIRED BY ENCSF
 CSFASC   FIELD  00,23,00    STATEMENT COUNT FROM ACCSF CALL
  
  
**        FE  -  FET DEFINITIONS
* 
* 
  
 FELFN    FIELD  00,59,18    LFN OF FET 
 FEAT     FIELD  00,17,10    FET ABNORMAL TERMINATION CODE
 FEEC     FIELD  00,13,09    ERROR CODE 
 FEAI     FIELD  01,42,42    1 = ALLOW INTERCOM WORD (LFN+5) OF FET 
 FERA     FIELD  01,47,47    RANDOM ACCESS BIT
 FE128    FIELD  05,22,22    1 = INDICATES ASCII 128 CHARACTER SET
 FERI     FIELD  06,29,00    RECORD REQUEST/RETURN INFO 
  
  
  
**        FM  -  FILINFO MACRO
* 
*         THE FILINFO MACRO RETURNS INFORMATION ABOUT THE 
*         CURRENT STATUS, FILE TYPE AND DEVICE  OF A FILE.
* 
  
 FMWP     SET    0           WORD POSITION WITHIN TABLE FM
 FMLFN    FIELD  FMWP,59,18  LOGICAL FILE NAME
 FMWC     FIELD  FMWP,17,12  LENGTH OF FILINFO TABLE
 FMCPL    FIELD  FMWP,00,00  COMPLETE BIT 
  
 FMWP     SET    FMWP+1 
 FMDT     FIELD  FMWP,59,48  DEVICE TYPE
 FMSTS    FIELD  FMWP,47,06  STATUS BITS
 FMEOI    FIELD  FMWP,23,23  1=END OF INFORMATION 
 FMEOF    FIELD  FMWP,22,22  1=END OF FILE
 FMBOI    FIELD  FMWP,21,21  1=BEGINNING OF INFORMATION 
 FMLAB    FIELD  FMWP,20,20  1=LABELED
 FMNT     FIELD  FMWP,19,19  1=NINE TRACK TAPE
 FMMT     FIELD  FMWP,18,18  1=SEVEN TRACK TAPE 
 FMOPN    FIELD  FMWP,17,17  1=OPEN 
 FMTRM    FIELD  FMWP,16,16  1=TERMINAL (CONNECTED) 
 FMMS     FIELD  FMWP,15,15  1=DEVICE IS MASS STORAGE 
 FMEXO    FIELD  FMWP,12,12  1=EXECUTE ONLY (NOS) 
 FMRA     FIELD  FMWP,11,11  READ AND ALLOW APPEND
  
 OSNOS    IFEQ   HOST,NOS 
 FMRU     FIELD  FMWP,10,10  READ/UPDATE
 FMUP     FIELD  FMWP,09,09  UPDATE PERMISSION
 FMAP     FIELD  FMWP,08,08  APPEND PERMISSION
  
 OSNOS    ELSE
 FMRM     FIELD  FMWP,10,10  READ AND ALLOW MODIFY
 FMMD     FIELD  FMWP,09,09  MODIFY PERMISSION
 FMEN     FIELD  FMWP,08,08  EXTEND PERMISSION
 OSNOS    ENDIF 
  
 FMWR     FIELD  FMWP,07,07  WRITE  PERMISSION
 FMRD     FIELD  FMWP,06,06  READ   PERMISSION
 FMTYP    FIELD  FMWP,05,00  FILE TYPE - 0=LOCAL, 1=INPUT 
                             2=PRINT, 3=PUNCH, 4=PERMANENT
                             5=LOCKED COMMON, 6=PRIMARY, 7=LIBRARY, 
                             77=OTHER 
 FMWP     SET    FMWP+1 
 FMEQ     FIELD  FMWP,59,48  EQUIPMENT NUMBER 
 FMEST    FIELD  FMWP,59,48  EST ORDINAL
 FMWP     SET    FMWP+1 
 FMFS     FIELD  FMWP,59,36  FILE SIZE IN SECTORS 
 FMPOS    FIELD  FMWP,29,00  POSITION INFORMATION 
  
 L.FM     EQU    FMWP+2 
          ERRNG  L.FM-3      MINIMUM OF 3 WORDS 
  
*         FIELDS FOR GETGLS MACRO 
  
 GLNAME   FIELD  00,59,18    GLOBAL LIBRARY NAME SNVGLL TABLE 
 GLLAST   FIELD  00,53,36    LAST NAME IN LIST OF LIBRARIES +1
  
PG        SPACE  4,5
**        PG  -  PAGE PARAMETERS
* 
*         DEFINITIONS FOR THE MACROS GETPAGE AND SETPAGE
  
 PGJPD    FIELD  0,31,28     JOB PRINT DENSITY
 PGJPS    FIELD  0,27,20     JOB PAGE SIZE
 PGJPW    FIELD  0,19,12     JOB PAGE WIDTH 
 PGCB     FIELD  0,00,00     COMPLETION BIT 
 PGSPD    FIELD  1,31,28     SYSTEM PRINT DENSITY 
 PGSPS    FIELD  1,27,20     SYSTEM PAGE SIZE 
 PGSPW    FIELD  1,19,12     SYSTEM PAGE WIDTH
  
 JPD6     EQU    6           6 LPI PRINT DENSITY
 JPD8     EQU    8           8 LPI PRINT DENSITY
 JPSMAX   EQU    255         MAXIMUM PAGE SIZE
 JPSMIN   EQU    16          MINIMUM PAGE SIZE
 JPWMAX   EQU    255         MAXIMUM PRINT WIDTH
 JPWMIN   EQU    40          MINIMUM PRINT WIDTH
  
  
  
  
**        JC  -  JOB CONTROL
* 
*         DEFINITIONS FOR THE MACROS GETJCI AND SETJCI
  
 JCEFG    FIELD  0,59,54     ERROR FLAG, GLOBAL 
 JCR1G    FIELD  0,53,36     GLOBAL REGISTER 1
 JCDSC    FIELD  0,35,35     DAYFILE SKIPPED CARDS
 JCPNL    FIELD  0,33,24     PROCEDURE NESTING LEVEL
 JCEM     FIELD  0,23,12     ERROR MODE 
 JCSSW    FIELD  0,11,06     SENSE SWITCHES 
 JCCB     FIELD  0,00,00     COMPLETE BIT 
 JCEF     FIELD  1,59,54     ERROR FLAG 
 JCR3     FIELD  1,53,36     REGISTER 3 
 JCR2     FIELD  1,35,18     REGISTER 2 
 JCR1     FIELD  1,17,00     REGISTER 1 
  
  
  
  
**        LI  -  LIBRARY INFORMATION WORDS FOR LOADD
* 
*         LOADD RETURNS INFORMATION ABOUT THE PROCEDURE 
* 
  
 LIPRN    FIELD  00,59,18    PROCEDURE NAME 
 LISTS    FIELD  00,11,09    ERROR STATUS                                CL0118 
 LIFUNC   FIELD  00,08,00    FUNCTION CODE
 FUNCSP   EQU    404B        FUNCTION CODE TO SEARCH FOR PROCEDURE
 FUNCSSP  EQU    402B        FUNCTION CODE TO SEARCH SYSTEM LIBRARY 
 LIFND    FIELD  00,00,00    FOUND FLAG (SCOPE 2) 
 LILIB    FIELD  01,59,18    LIBRARY NAME (SCOPE 2) 
 LILILI   FIELD  01,47,30    LIBRARY LIST ADDRESS 
 LIDIRL   FIELD  01,29,18    DIRECTORY LENGTH 
 LIDIR    FIELD  01,17,00    DIRECTORY ADDRESS(RETURN INFOMATION) 
  
*         IN THE NOS NOSBE SYSTEM A LOADD CALL WILL RETURN A DIRECTORY
*         OF INFORMATION ABOUT THE LIBRARY IN WHICH THE PROCEDURE RESIDE
  
 LILFN    FIELD  00,58,18    LOCAL FILE NAME(BIT 59 ALWAYS SET) 
 LISYS    FIELD  00,59,48    MASK OF 7777B IF SYSTEM LIBRARY
 LIFF     FIELD  00,47,47    0=ZZZZZ04   1=ZZZZZ03
 LICPN    FIELD  01,59,18    CAPSULE NAME= PROCEDURE NAME 
 LIRES    FIELD  02,58,57    RESIDENCE FLAG, 0=RMS 1=CM  2=ECS
 LIPRU    FIELD  02,35,18    RELATIVE PRU OF PROCEDURE
  
  
 OSNBE    IFEQ   HOST,NOSBE 
**        PNT - PROGRAM NAME TABLE ENTRY FORMAT (NOSBE) 
*         THIS TABLE HOLDS THE NAMES OF PROGRAMS AND
*         PROCEDURES ON A LIBRARY.  EACH ENTRY POINTS TO
*         BEGINNING OF THE PARTITION (PROC HEADER) FOR THAT NAME. 
  
  
 PNTNM    FIELD  00,59,18    NAME OF PROGRAM
 PNTPC    FIELD  00,16,16    NAME IS A PROCEDURE (NOT PROGRAM)
 PNTDA    FIELD  01,17,00    DISK ADDRESS OF ENTRY
 OSNBE    ENDIF 
  
**        PP  -  PROCEDURE PARAMETERS 
*         THE FORMAL PARAMETERS DEFINED IN THE PROCEDURE HEADER 
*         ARE ENTERED INTO THE PPT. 
* 
  
 PPFPN    FIELD  00,59,00    FORMAL PARAMETER NAME
 PPBSP    FIELD  01,59,59    1= BEGIN SPECIFICATION PROCESSED 
 PPLIT    FIELD  01,58,58    1= FORMAL PARAMETER WAS A LITERAL
 PPFPC    FIELD  01,57,54    NUMBER OF CHARACTERS IN PARAMETER NAME 
 PPHLP    FIELD  01,53,53    1 = HELP AVAILABLE 
 PPCPV    FIELD  01,52,52    1 = VALUE ON CALL
 PPDSO    FIELD  01,51,51    1 = USE DESCRIPTION STRING ONLY
 PPDC2    FIELD  01,50,42    NO, DEFAULT CHARACTERS, 2ND
 PPDO2    FIELD  01,41,30    OFFSET OF STRING, 2ND
 PPDES    FIELD  01,29,29    1 = DESCRIPTION STRING AVAILABLE 
 PPMTP    FIELD  01,29,29    1 = MENU TITLE OR PROMPT 
 PPEMF    FIELD  01,28,28    1 = EQUIVALENCE MODE 
 PPLCP    FIELD  01,27,21    LARGEST CHECKLIST PATTERN
 PPDC1    FIELD  01,20,12    NUMBER OF DEFAULT CHARACTERS, 1ST
 PPDO1    FIELD  01,11,00    OFFSET OF STRING, 1ST
 PPHPN    FIELD  02,59,59    1 = NOLIST FLAG FOR HELP 
 PPNDA    FIELD  02,58,47    N DEFAULT ATTRIBUTE PVT OFFSET 
 PPKAP    FIELD  02,46,46    *K ATTRIBUTE PROCESSED FLAG
 PPRAP    FIELD  02,45,45    *R ATTRIBUTE PROCESSED FLAG
*         FIELD  02,44,35    RESERVED FOR FUTURE USE. 
 PPHRC    FIELD  02,34,25    RECORD NUMBER OF HELP
 PPNO     FIELD  02,24,24    0=*N ONLY CHECKLIST PATTERN THIS PARAMETER 
 PPLV     FIELD  02,23,12    LENGTH OF PVT ENTRIES
 PPVAL    FIELD  02,11,00    PVT OFFSET OF 1ST PVT ENTRY
 LE.PPT   EQU    3           LENGTH OF PPT ENTRY
 L.PPT    EQU    LE.PPT*V.FPMAX 
  
  
  
**        FPS  -  FORMAL PARAMETER SPECIFICATION
* 
*         EACH ENTRY OF FPS IS FOUR WORDS (40 CHARACTERS).
*         THE FIRST AND SECOND(IF SPECIFIED) DEFAULT OF EACH
*         FORMAL PARAMETER IS OBTAINED FROM THE PROCEDURE HEADER
*         AND PLACED IN AN ENTRY IN FPS.  THE PPT ENTRY FOR THE FORMAL
*         PARAMETER POINTS TO THE APPROPRIATE ENTRY OF FPS. IF THE BEGIN
*         STATEMENT CONTAINS SPECIFICATIONS EACH ONE WILL OVERWRITE 
*         THE FIRST DEFAULT ENTRY WITHIN FPS FOR THAT FORMAL PARAMETER. 
* 
  
 LE.FPS   EQU    V.SCS/10    WORDS PER ENTRY
 L.FPS    EQU    LE.FPS*2*V.FPMAX  TWO ENTRIES PER FORMAL PAR.
 FPSRV    FIELD  00,59,00    REPLACEMENT VALUE - REPLACED INTO PROC BODY
 FPSCV    FIELD  00,59,00    VALUE FROM CALL PARAMETER
  
**        PVT    - PATTERN VALUE TABLE
*                  INTERACTIVE PROCESSING ENTERS PATTERNS AND VALUES
*                  FROM THE PROCEDURE CHECKLIST INTO THE PVT
* 
* 
 PVID     FIELD  00,59,24    IDENTIFIES TYPE OF PVT ENTRY 
 PVDND    FIELD  00,23,23    1 = DISPLAY NULL DEFAULT 
 PVMIN    FIELD  00,23,16    MINIMUM PART OF RANGE SPECIFICATION
 PVMAX    FIELD  00,15,08    MAXIMUM PART OF RANGE SPECIFICATION
 PVSIZ    FIELD  00,07,00    NUMBER OF CHARACTERS IN PVT ENTRY
 PVSTR    FIELD  01,59,00    1ST WORD OF PATTERN/VALUE STRING 
 LE.PVT   EQU    2
 L.PVT    EQU    "IP.NPV"*V.FPMAX*LE.PVT
  
  
  
**        RA  -  REFERENCE ADDRESS
*         REFERENCES TO THE JOB COMMUNICATION AREA USE RA 
* 
  
 RASS     FIELD  00,11,06    SENSE SWITCHES 
 RAPAR    FIELD  02,59,18    START OF PARAMETER LIST
 RAJOT    FIELD  54,35,24    JOB ORIGIN TYPE
 RAVRB    FIELD  52,59,18    VERB 
 RAPC     FIELD  52,17,00    PARAMETER COUNT
 W.RACS   EQU    70B         CONTROL STATEMENT
  
**        RPV - REPRIEVE PARAMETER BLOCK FIELDS 
* 
* 
  
 RPVEC    FIELD  03,11,00    REPRIEVE ERROR CODES 
  
  
**        SB - SCATTER BUFFER FIELDS
* 
*         USED TO DEFINE SCATTER BUFFER HEADER
* 
  
 SBTOT    FIELD  00,35,18    TOTAL CHARS IN SCATTER BUFFER
 SBCUR    FIELD  00,17,00    CURRENT CHAR OPERATING ON
  
  
**        SNV  -  SYMBOLIC NAME VALUE 
* 
*         ENTRIES OF THE TABLES OF SYMBOLIC NAMES (SNVT AND SNVFIL) 
*         MUST CONTAIN THE NAME IN THE UPPER 42 BITS (7 CHAR.) LEFT 
*         JUSTIFIED, ZERO FILL.  IF SNVOFF IS CLEAR THEN THE VALUE IS 
*         IN SNVVAL,  IF SNVOFF IS SET THEN THE FIELD SNVVAL CONTAINS 
*         THE OFFSET OF THE ENTRY IN SNVWRD WHICH CONTAINS THE VALUE. 
  
 SNVNAM   FIELD  ,59,18      SYMBOLIC NAME
 SNVOFF   FIELD  ,17,17      FLAG, 1= SNVVAL IS OFFSET TO  SNVWRD ENTRY 
 SNVVAL   FIELD  ,16,00      VALUE
  
  
**        TST  -  FIELD DEFINITIONS FOR TSTATUS MACRO 
* 
* 
*         CCL USES THE TSTATUS MACRO TO DETERMINE THE VALUES
*                FOR THE FOLLOWING SYMBOLS. 
* 
*         CS  -  CONNECTION STATUS. 
*                0 - NOT INTERACTIVE (*NICS*).
*                1 - DETACHED (*DTCS*). 
*                2 - ONLINE (*OLCS*). 
* 
*         CSET - TERMINAL CHARACTER SET.
*                0 - 6-BIT UPPER CASE ONLY (*NORMAL*).
*                1 - 6/12-BIT UPPER/LOWER CASE (*ASCII*). 
* 
*         NWK -  NETWORK CONNECTION.
*                0 - NOT CONNECTED TO NAM (*NONE*). 
*                1 - TERMINAL CONNECTED TO NAM/CCP (*CCP*). 
*                2 - TERMINAL CONNECTED TO NAM/CDCNET (*CDCNET*). 
* 
*         TN  -  NETWORK TERMINAL NAME. 
  
 TSTNT    FIELD  01,56,54    NETWORK TYPE 
 TSTCS    FIELD  01,51,48    CONNECTION STATUS
 TSTTC    FIELD  01,02,02    TERMINAL CHARACTER SET 
 TSTTN    FIELD  02,59,18    NETWORK TERMINAL NAME
  
  
*         THE SYSTEMS NOS AND NOS/BE PROVIDE OPTIONS TO CONTROL THE 
*         DESTINATIONS OF A DAYFILE MESSAGE.  THE SELECTION OF THE
*         OPTION SHOULD CONSIDER THAT IF A CCL VERB IS EXECUTED WITHIN
*         A PROCEDURE WHICH WAS INITIATED BY A USER AT AN INTERCOM
*         TERMINAL, THE USER DOES NOT NEED TO SEE ALL MESSAGES FROM CCL.
*         SPECIFICALLY, CONTINUATION CARDS OF A CCL STATEMENT SHOULD
*         GO TO THE SYSTEM AND JOB DAYFILES BUT NOT TO THE TERMINAL.
*         ERROR MESSAGES SHOULD GO TO THE JOB DAYFILE AND TO THE
*         TERMINAL.  SKIPPED STATEMENTS, (WHEN DISPLAYED BECAUSE DSC=1) 
*         SHOULD GO TO THE JOB DAYFILE BUT NOT TO THE TERMINAL. 
*         WHEN THE VERBS ENDIF, ELSE, ENDW TERMINATE SKIPPING,
*         THE STATEMENT SHOULD BE SENT TO THE SYSTEM AND JOB DAYFILES 
*         BUT NOT TO THE TERMINAL.
  
 MOSJDT   EQU    0           SYSTEM AND JOB DAYFILES AND TO TERMINAL
 MOJDT    EQU    3           JOB DAYFILE AND TO TERMINAL
 MOSJD    EQU    6           SYSTEM AND JOB DAYFILE BUT NOT TERMINAL
 MOJD     EQU    7           JOB DAYFILE BUT NOT TERMINAL 
  
