*COMDECK CDCSCOMMN
  
*CALL SACSTDCLS 
  
*CALL CUGDFDCLS 
  
*CALL CDGDFDCLS 
*CALL     VERDFDCLS 
  
  
#***********************************************************************
*     CDCS MACROS 
* 
*     SET P<RSARBLK>. 
# 
      DEF SETRSARBLK #P<RSARBLK>=LOC(RSB)+DFRSBFIX
                                 +(RSFCAORD[0]-1)*DFARECON#;
# 
*     SET P<RSRECBLK>.
# 
      DEF SETRSRECBLK #P<RSRECBLK>=LOC(RSB)+RSFRECPT[0] 
                                   +(RSFCRORD[0]-1)*DFRECCON#;
  
  
  
  
      COMMON DB$CDCS; 
      BEGIN 
#***********************************************************************
*     CDCS GLOBAL ITEMS.
# 
  
# **** PRESET OF THESE COMMON ITEMS HAS BEEN MOVED TO DB$INT ****      #
  
      ITEM CDCSCID  C(10);   # FOR IDENTIFICATION IN A DUMP            #
  
      ITEM ACCNFLAG B;       # TRUE IF CDCS ACCOUNTING ACTIVE          #
                             #SET TRUE IF ACCOUNTING PARAMETER ON CC# 
      ITEM ATTACHSTATUS;     #STATUS OF LAST ATTACH OPERATION#
                             #  0  SUCCESSFUL#
                             #  1  BUSY OR ARCHIVED#
                             #  2  UNKNOWN# 
  
      ITEM BFNUMBER I;       # NUMBER OF BUFFERS FOR EACH OPEN         #
      ITEM FCADJUST I;       # FIT COUNT ADJUSTMENT                    #
      ITEM LOKSTATUS B;      #STATUS OF LAST CALL TO DB$LOK#
                             #  TRUE - RECORD LOCKED WITHOUT QUEUEING#
                             #  FALSE - RECORD NOT LOCKED, OR RECORD   #
                             #          LOCKED AFTER BEING QUEUED.     #
      ITEM PBCOUNT  I;       # PRIORITY BLOCK COUNT                    #
      ITEM RCBAC    I;       # COUNT OF ACTIVE USER RCB'S (LESS ONE)   #
      ITEM RCBIC    I;       # COUNT OF IDLE RCB'S                     #
      ITEM RPNUM I;          # RECOVERY POINT NUMBER                   #
      ITEM SCHDFLAG I;       # SCHEDULER FLAG                          #
                             #  0  NORMAL OPERATION#
                             # >0  SHCEDULER TO EXECUTE ONLY RCB #
                             #     WITH SCHDFLAG ADDRESS# 
                             # <0  SCHEDULER TO EXECUTE ONLY CURRENT# 
                             #     RCB AND THEN TO EXECUTE RCB WITH#
                             #     -SCHDFLAG ADDRESS# 
      ITEM SCHDCOUNT;        #COUNT OF SCHEDULED JOBS#
                             #  SINCE MONITOR WAS CALLED# 
      ITEM STATCOMP I;       # WORD WITH COMPLETE BIT SET              #
      ITEM STATBUSY I;       # WORD WITH COMPLETE BIT NOT SET          #
      ITEM SYSRECOVERY B;    # TRUE IF IN SYSTEM RECOVERY MODE         #
      ITEM TERMFLAG B;       # FLAG SET TRUE ON CDCS TERM COMMAND      #
      ITEM TIMESTAMP I;      # CDCS INTERNAL TIMER                     #
      ITEM CDCSCP I;         # TOTAL CURRENT ACCOUNTING FOR CP         #
      ITEM CDCSIO I;         # TOTAL CURRENT ACCOUNTING FOR IO         #
      ITEM CDCSRIO I;        # TOTAL REAL SYSTEM IO TIME               #
      ITEM CDCSRCP I;        # TOTAL REAL SYSTEM CP TIME               #
      ITEM IDLEALTP;         # POINTER TO IDLE AREA LOCK TABLES        #
      ITEM IDLERCBP;         # POINTER TO IDLE RUN-UNIT COMMAND BLOCKS #
      ARRAY RCBMTR (DFRCIR5);;  # MONITOR RCB                          #
  
      ITEM ACLID    C(10);   # FOR IDENTIFICATION IN A DUMP            #
  
#***********************************************************************
*     ACTIVE CAPSULE LIST 
# 
      BASED ARRAY ACL S(DFACLENSIZE); 
        BEGIN 
                                        # FIRST WORD OF ACL IS HEADER  #
        ITEM ACTOTLEN   U(0,9,18);      # TOTAL LENGTH OF CAPSULES     #
        ITEM ACMAXLEN   U(0,27,18);     # MAXIMUM CAPSULE LENGTH       #
        ITEM ACNUMCAP   U(0,45,15);     # NUMBER OF CAPSULES           #
  
        ITEM ACWORD0    U(0,0,60);      # FIRST WORD OF ENTRY          #
        ITEM ACCMLOC    U(0,0,18);      # LOCATION OF CAPSULE IN CM    #
                                        # (ZERO IF CAPSULE NOT IN CORE)#
        ITEM ACLENCAP   U(0,18,18);     # LENGTH OF CAPSULE            #
        ITEM ACWACAP    U(0,36,24);     # WORD ADDRESS OF CAPSULE IN MD#
        ITEM ACWORD1    U(1,0,60);      # SECOND WORD OF ENTRY         #
        ITEM ACTYPCAP   U(1,9,3);       # TYPE OF CAPSULE              #
                                        #   1 = KEY                    #
                                        #   2 = READ                   #
                                        #   3 = WRITE                  #
        ITEM ACNUMCLS   U(1,12,24);     # NUMBER TIMES CAPSULE EXECUTED#
        ITEM ACAGECAP   U(1,36,24);     # AGING FACTOR FOR CAPSULE     #
        END 
#***********************************************************************
*     APL--ACTIVE PROCEDURE LIST. 
# 
      ITEM APLL;             #LAST ENTRY IN APL#
      ITEM APLX;             #INDEX INTO APL# 
  
      BASED ARRAY APL S(DFAPLENSIZE); 
        BEGIN 
        ITEM APDBPLFN   U(0,0,42);      # PROCEDURE FILE LFN           #
        ITEM  APDBPSZ   U(0,42,18);     # NUMBER OF PROCS IN LIBRARY   #
        ITEM APERROR  B(1,0,1);        # APL ERROR FLAG                #
        ITEM APWAITCT  U(1,36,18);      # WAIT COUNT FOR PROC LIB      #
        ITEM APCOMP    B(1,59,1);       # APL COMPLETE BIT             #
        ITEM APWORD0    U(0,0,60);      # FIRST WORD OF ENTRY          #
        ITEM APDBPNAM   U(0,0,42);      # PROCEDURE NAME               #
        ITEM APWORD1    U(1,0,60);     # ENTIRE SECOND WORD            #
        ITEM APNUSERS   U(1,12,12);    # NUMBER OF USERS OF PROCEDURE  #
        ITEM APDBPAGE   U(1,24,18);    # AGE (ARTIFICIAL) OF PROCEDURE #
        ITEM APEPADD    U(1,42,18);    # ENTRY POINT OF PROCEDURE      #
        END 
#***********************************************************************
*     ASL--ACTIVE SUBSCHEMA LIST
# 
  
*CALL ASLDCLS 
#**********************************************************************#
*CALL CSTFXDCLS 
  
  
  
      ITEM FKLID    C(10);   # FOR IDENTIFICATION IN A DUMP            #
#***********************************************************************
*     FKL -- FILE KEY LIST
*              CONTAINS THE FILE PARAMETER TABLES 
*              AND THE PRIMARY AND ALTERNATE KEY VALUES 
# 
      BASED ARRAY FKL;
        BEGIN 
        ITEM FKLWORD    I(00,00,60);    # FILE KEY LIST FULL WORD      #
        ITEM FKLLENGTH  I(00,00,18);    # FILE KEY LIST LENGTH         #
                                        #   OR LENGTH OF EMPTY BLOCK   #
        ITEM FKLEMPTY   I(00,42,18);    # FILE KEY LIST NEXT EMPTY     #
        END 
#***********************************************************************
*     FPT -- FILE PARAMETER TABLE 
# 
      BASED ARRAY FPT;
        BEGIN 
        ITEM FPWORD0    U(00,00,60);    # FULL WORD DEFINITION         #
        ITEM FPFITRL    U(00,00,24);    # RECORD LENGTH                #
        ITEM FPFITFP    U(00,24,07);    # FILE POSITION                #
        ITEM FPCFPOS    B(00,31,01);    # CALL DB$FPOS BEFORE GET-NEXT #
        ITEM FPDECOL    B(00,32,01);    # KEY VALUE IS DECOLLATED      #
        ITEM FPFITES    U(00,33,09);    # FIT ERROR STATUS FIELD       #
        ITEM FPUFT      U(00,42,18);    # POINTER TO LAST UFT ASSIGNED #
  
        ITEM FPFITWSA   I(01,00,18);    # WORKING STORAGE ADDRESS      #
        ITEM FPFITMKL   U(01,18,09);    # MAJOR KEY LENGTH             #
        ITEM FPFITFNF   B(01,27,01);    # FIT FNF (FATAL/NONFATAL) FLAG#
                        #(01,28,02)#
        ITEM FPFITPD    U(01,30,03);    # FIT PD (PROCESSING DIRECTION)#
                        #(01,33,09)#
        ITEM FPFITKA    I(01,42,18);    # PRIMARY KEY ADDRESS          #
  
        ITEM FPFITKEYD  U(02,00,29);    # KEY DATA (GROUP ITEM)        #
        ITEM FPFITKWKP  U(02,00,16);    # CONCATENATION OF RKW/RKP     #
        ITEM FPFITRKW   U(02,00,12);    # RELATIVE KEY WORD LOCATION   #
        ITEM FPFITRKP   U(02,12,04);    # RELATIVE KEY POSITION        #
        ITEM FPFITKP    U(02,16,04);    # PRIMARY KEY POSITION         #
        ITEM FPFITKL    U(02,20,09);    # FIT KEY LENGTH               #
        ITEM FPFIATX    B(02,29,01);    # XFER FLAG FROM THE FIAT      #
        ITEM FPFTDX     U(02,30,02);    # -EOI- EXIT CODE FOR DB$FTDX  #
        ITEM FPFTEX     U(02,32,02);    # ERROR EXIT CODE FOR DB$FTEX  #
        ITEM FPFIPST    U(02,34,08);    # STATUS FROM PRIMARY PTREE    #
        ITEM FPFIAST    U(02,42,08);    # STATUS FROM ALTERNATE PTREE  #
        ITEM FPFIFP     U(02,50,07);    # FP FIELD FROM FIAT           #
                        #(02,57,03)#
  
        ITEM FPNRDS     U(03,00,30);    # NUMBER OF READ OPERATIONS    #
        ITEM FPNWRS     U(03,30,30);    # NUMBER OF WRITE OPERATIONS   #
        ITEM FPNRWS     U(04,00,30);    # NUMBER OF REWRITE OPERATIONS #
        ITEM FPNDLS     U(04,30,30);    # NUMBER OF DELETE OPERATIONS  #
        END 
  
#***********************************************************************
*     FTXX -- FIT EXIT ADDRESSES
# 
      ITEM FTDX2  I;                   # -EOI- EXIT ADDRESS FOR DB$MFP #
      ITEM FTEX2  I;                   # ERROR EXIT ADDRESS FOR DB$MFP #
      ITEM FTEX3  I;                   # ERROR EXIT ADDRESS FOR DB$MFP #
  
#***********************************************************************
*     MASTER DIRECTORY CONTROL WORDS. 
# 
      ARRAY MDCW[0:DFMDNUMCWM1] S(1);  # MASTER DIRECTORY CONTROL WDS#
  
        BEGIN                          # MDCW ARRAY # 
*CALL MDDCWDCLS 
        END                            # MDCW ARRAY # 
#********************************************************************** 
*     MASTER DIRECTORY PERMANENT FILE INFORMATION. ARRAY ITEMS
*     SET FROM CONTROL CARD OR DIR FILE PARAMETERS
# 
  
      ARRAY MDPFINF  [0:8]  S(1); 
      BEGIN 
*CALL MDPFDCLS
      END 
  
      ITEM OFTID   C(10);          # FOR IDENTIFICATION IN A DUMP      #
  
#***********************************************************************
*     OFT--OPEN FILE TABLE.  INDIVIDUAL LIST FOR EACH SAL ENTRY.
# 
      BASED ARRAY OFT;
        BEGIN 
        ITEM OFARID       U(00,00,12);  # AREA ID                      #
        ITEM OFUSERS      U(00,12,12);  # NUMBER OF USERS              #
        ITEM OFPRIOR      I(00,24,18);  # PRIOR OFT ENTRY IN CHAIN     #
        ITEM OFNEXT       I(00,42,18);  # NEXT OFT ENTRY IN CHAIN      #
  
        ITEM OFWORD1      U(01,00,60);  # FULL WORD.                   #
        ITEM OFSTATUS S:SACSTAT(1,0,3); # STATUS OF THIS OFT-- UP,     #
                                        # IDLING, IDLE, DOWNING, DOWN  #
                                        # OR ERRDOWN.                  #
                                        # BITS 3 TO 5 NOT USED.        #
        ITEM OFPFAERR     U(01,06,09);  # PF ERROR NUMBER FOR AREA FILE#
                                        # BITS 15 TO 23 NOT USED.      #
        ITEM OFERRCNT     U(01,24,18);  # CRM ERROR COUNT              #
        ITEM OFALT        I(01,42,18);  # POINTER TO AREA LOCK TABLE   #
  
        ITEM OFWORD2      U(02,00,60);  # FULL WORD.                   #
        ITEM OFVENAME     C(02,00,07);  # PRIMARY VERSION NAME         #
        ITEM OFRETCT      U(02,42,12);  # RETAIN COUNT FOR THIS FILE   #
        ITEM OFFLAGS      U(02,54,06);  # OFT FLAGS                    #
          ITEM OFPFABI    U(02,54,02);  # BUSY AND INDEX FLAGS         #
          ITEM OFPFABUSY  B(02,54,01);  # TRUE = FILE IS BUSY          #
          ITEM OFPFAINDEX B(02,55,01);  # TRUE = ATTACHING INDEX FILE  #
          ITEM OFDUMP     B(02,56,01);  # TRUE = DUMP IS IN PROGRESS   #
          ITEM OFLOAD     B(02,57,01);  # TRUE = LOAD IS IN PROGRESS   #
          ITEM OFDUMY     B(02,58,01);  # TRUE = DUMMY OFT, NO FILE    #
                                        # ATTACHED, NO ATTACH ISSUED.  #
          ITEM OFCOMP     B(02,59,01);  # TRUE = FILE IS ATTACHED      #
  
        ITEM OFWORD3      U(03,00,60);  # FULL WORD.                   #
        ITEM OFLOGRECF    U(03,00,06);  # LOGGING AND RECOVERY FLAGS.  #
                                        # BIT ZERO NOT USED.           #
          ITEM OFLGBR     B(03,01,01);  # TRUE = BEFORE IMAGE RECORDS  #
          ITEM OFLGAR     B(03,02,01);  # TRUE = AFTER IMAGE RECORDS   #
          ITEM OFLGBB     B(03,03,01);  # TRUE = BEFORE IMAGE BLOCKS   #
          ITEM OFRECV     B(03,04,01);  # TRUE = AUTOMATIC RECOVERY    #
                                        # SPECIFIED.                   #
          ITEM OFTRAN     B(03,05,01);  # TRUE = ONLY UPDATE WITHIN    #
                                        # BEGIN/COMMIT SEQUENCE.       #
        ITEM OFQFT        I(03,24,18);  # POINTER TO QRF TABLE FOR     #
                                        # SCHEMA                       #
        ITEM OFOPENS      U(03,42,12);  # COUNT OF USERS WITH FILE OPEN#
  
        ITEM OFWORD4       (04,00,60);  # FULL WORD.                   #
        ITEM OFPRIKEY     U(04,00,29);  # PRIMARY KEY DATA (GROUP)     #
        ITEM OFPRIKWKP    U(04,00,16);  # CONCATENATION OF RKW/RKP     #
        ITEM OFPRIRKW     U(04,00,12);  # RKW OF PRIMARY KEY           #
        ITEM OFPRIRKP     U(04,12,04);  # RKP OF PRIMARY KEY           #
        ITEM OFPRIKP      U(04,16,04);  # KP                           #
        ITEM OFPRIKL      U(04,20,09);  # KL OF PRIMARY KEY            #
                          #(04,29,31)#
  
        ITEM OFUFT       (05,00,60);    # OFT UFT                      #
        ITEM OFFIT       (06,00,60);    # OFT FIT                      #
        ITEM OFFITLFN   U(06,00,42);    # OFT FIT LFN                  #
        ITEM OFFITMRL   U(18,00,24);    # MAXIMUM RECORD LENGTH        #
        ITEM OFFITPD    U(23,03,03);    # PROCESSING DIRECTION         #
        ITEM OFFITMBL   U(25,00,24);    # MAX BLOCK LENGTH             #
        ITEM OFFITLGX   I(25,42,18);    # LOGGING EXIT ADDRESS         #
        ITEM OFFITDFLG  U(25,41,01);    # DEFERRED LOGGING FLAG        #
        ITEM OFFITXN    U(27,00,42);    # OFT FIT INDEX FILE LFN       #
        ITEM OFFITBZF   I(31,42,18);    # ADDRESS OF SEEK BUSY FET     #
        ITEM OFFITFSTT  I(33,42,18);    # FSTT POINTER                 #
        ITEM OFFITRKW   U(37,00,12);    # RELATIVE KEY POSITION        #
        ITEM OFFITRKP   U(37,12,04);    # RELATIVE KEY POSITION        #
        ITEM OFFITKL    U(37,20,09);    # FIT KEY LENGTH               #
        END 
#***********************************************************************
*     RCB (RUN UNIT COMMAND BLOCK) BASED ARRAY. 
*       RCB = -1 IF SCHEMA DOWN.
# 
      BASED ARRAY RCB;
        BEGIN 
        ITEM RCCONTA (0,0,18);         #CONTINUATION ADDRESS# 
        ITEM RCCT U(0,18,6);           #CONSTRAINT TYPE#
        ITEM RCPRIOR (0,24,18);        #PRIOR RCB ENTRY#
        ITEM RCNEXT (0,42,18);         #NEXT RCB ENTRY# 
        ITEM RCCONSTRA (1,0,18);       #CONSTRAINING ADDRESS# 
        ITEM RCFUNC U(1,18,6);         #FUNCTION BEING EXECUTED#
        ITEM RCTQT (1,24,18);          #TQT ASSOCIATED WITH RCB#
        ITEM RCMBA (1,42,18);          #CHAIN OF TEMP BUFFERS#
  
# WORD +2 OF EACH RCB IS RESERVED FOR FLAGS THAT MUST BE CHECKED FOR   #
# CLEANUP AND SPECIAL PROCESSING UPON TERMINATION OF THE RCB.          #
  
        ITEM RCFLAGWORD B(02,00,60);  # TRUE IF TERMINATION CLEANUP OR #
                                      # SPECIAL PROCESSING IS REQUIRED.#
                                      # THIS ITEM IS THE LOGICAL *OR*  #
                                      # OF ALL ITS OVERLAID FLAGS. ITS #
                                      # USE ***MUST*** BE RESTRICTED TO#
                                      # EITHER A TRUE/FALSE TEST OR AN #
                                      # ASSIGNMENT OF FALSE TO ALL ITS #
                                      # OVERLAID FLAGS.                #
  
          ITEM RCFLAGS  B(02,00,12);  # TRUE IF SPECIAL PROCESSING IS  #
                                      # REQUIRED UPON RCB TERMINATION. #
                                      # THIS ITEM IS THE LOGICAL *OR*  #
                                      # OR ALL ITS OVERLAID FLAGS. ITS #
                                      # USE ***MUST*** BE RESTRICTED TO#
                                      # EITHER A TRUE/FALSE TEST OR AN #
                                      # ASSIGNMENT OF FALSE TO ALL ITS #
                                      # OVERLAID FLAGS.                #
  
            ITEM RCMERP   B(02,00,01);  # TRUE IF PARAMETERS FOR       #
                                        # DB$DPII ARE SAVED IN A BLOCK #
                                        # ON THE RCMBA CHAIN.          #
            ITEM RCINVI   B(02,01,01);  # TRUE IF AN INITIAL INVOKE    #
                                        # OF THE SCHEMA IS INITIATED.  #
            ITEM RCSFSWP  B(02,02,01);  # TRUE IF CDCS INITIATED A SWAP#
                                        # OUT OF THE RUN-UNITS UCP.    #
            ITEM RCJLWTR  B(02,03,01);  # TRUE IF DB$RWTR HAS BEEN     #
                                        # INITIATED FOR THIS RCB       #
            ITEM RCJLRS   B(02,04,01);  # TRUE IF JOURNAL LOG RESERVATN#
                                        # IS IN EFFECT FOR THIS RCB    #
            ITEM RCRPTI   B(02,06,01);  # THE FETWTRI INTERLOCK IS IN  #
                                        # THE LOCKED STATE (FALSE).    #
  
          ITEM  RCOVCAPS B(DFRCOVOS,DFRCOVFB,DFRCOVLG);  # TRUE IF THIS#
                                                         # RCB LOCKED  #
                                                         # SOME OVCAPS.#
                                                         # THIS ITEM IS#
                                                         # MODIFIED BY #
                                                         # DB$OSUP.    #
  
        ITEM RCSTAKW I(03,00,60);  # WORD DEFINITION.                  #
                                   # PERMITS DB$RCBC TO CLEAR THE      #
                                   # ENTIRE WORD WHILE SETTING RCSTACKX#
  
        ITEM RCEREX  I(03,00,18);  # ADDRESS OF CDCS ERROR PROCEDURE   #
  
                             # THE FOLLOWING FLAGS ARE NOT INCLUDED IN #
                             # THE RCFLAGS BECAUSE THEY DO NOT REQUIRE #
                             # ANY ACTION FROM DB$RCBF.                #
  
          ITEM RCOSSWP  B(03,18,01);  # JOB IS SWAPPED OUT.            #
                                      # SWAP WAS INITIATED BY THE OS.  #
          ITEM RCWART   B(03,19,01);  # TRUE IF ART MUST BE WRITTEN    #
                                      # TO TRF BEFORE RELEASING LOCKS. #
          ITEM RCMLOK   B(03,20,01);  # MULTIPLE RECORD LOCKS WILL BE  #
                                      # PERMITTED ON AN AREA. (DB$CPRO)#
  
        ITEM RCQPOS I(03,21,09);   # POSITION IN THE RCB QUEUE         #
        ITEM RCMSSO U(03,30,12);   # SUBSCHEMA ITEM ORDINAL FOR ITEM   #
                                   # LEVEL ERROR.                      #
        ITEM RCSTACKX I(DFRCSTAK,42,18);  # STACK POINTER.  POINTS TO  #
                                   # CURRENT TOP ENTRY ON THE STACK.   #
                                   # THE STACK RANGES BETWEEN THE WORD #
                                   # OF THE RCB CONTAINING RCSTACKX AND#
                                   # THE DFRCIR0 WORD, EXCLUSIVE. A    #
                                   # VALUE OF THE DFRCIR0 WORD MEANS AN#
                                   # EMPTY STACK. A VALUE OF THE WORD  #
                                   # CONTAINING RCSTACKX MEANS STACK   #
                                   # OVERFLOW.                         #
  
# THE WORDS BETWEEN THE WORD CONTAINING RCSTACKX AND THE DFRCIR0 WORD, #
# EXCLUSIVE, CONSTITUTE THE STACK SPACE IN THE RCB WHICH IS USED BY    #
# DB$PUSH AND DB$POP.                                                  #
  
#     DB$ITC SAVES SALX AS THE FIRST ENTRY IN THE RCB PUSH-DOWN STACK. #
#     DB$SCHD RESTORES IT FROM THERE WHEN INITIATING AN INTERNAL TASK. #
  
        ITEM RCITSALX I(DFRCFS,00,60); #SAVE SALX FOR INTERNAL TASKS   #
  
        ITEM RCOFTLOC (DFRCIR0,0,18);  # EXPECTED OFT LOCATION         #
  
        ITEM RCIR (DFRCIR0,0,60);      #INPUT REQUEST PACKET# 
        ITEM RCIRDTCT I(DFRCIR0,18,18); # DEFERRED TERMINATION CONTROLS#
        ITEM RCIRDTMD B(DFRCIR0,18,01); # DEFER TERMINATIONS MODE      #
        ITEM RCIRDTAD U(DFRCIR0,19,17); # DEFERRED TERMINATION ADDRESS #
        ITEM RCIRSTAT U(DFRCIR0,36,6); #IR STATUS#
        ITEM RCIRUCPA (DFRCIR0,42,18); #IR UCP ADDRESS# 
        ITEM RCIRRUID (DFRCIR1,0,60);  #IR RUN UNIT ID# 
        ITEM RCIRVER C(DFRCIR2,00,04);  # INTERNAL REQUEST PACKET ID   #
        ITEM RCIRWC U(DFRCIR2,36,6);   #IR WORD COUNT#
        ITEM RCIRRC U(DFRCIR2,48,6);   #IR ERROR RETURN CODE# 
        ITEM RCIRES U(DFRCIR2,48,12);  #IR ERROR AND STATUS FIELD#
  
        ITEM RCPKEBUF  U(DFRCIR3,0,18); # ADDRESS ERROR BUFFER IN UCP  #
        ITEM RCPKERR   U(DFRCIR3,18,9); # 3-DIGIT ERROR NUMBER         #
        ITEM RCIRFUNC U(DFRCIR3,54,6); #IR FUNCTION#
  
        ITEM RCIRBIAS U(DFRCIR4,0,18); # SUB-CONTROL POINT RA (TAF)    #
        ITEM RCIRFL   U(DFRCIR4,18,18); # SUB-CONTROL POINT FL (TAF)   #
        ITEM RCIRTASK U(DFRCIR4,36,24); # TASK NUMBER (MUJ-TYPE JOB)   #
  
# THE FOLLOWING ITEMS DESCRIBE THE PARAMETERS FOR THE *INVOKE* AND THE #
# *VERSION* DML COMMANDS.  IN THE CASE OF THE *VERSION* COMMAND, ALL   #
# FIELDS EXCEPT FOR *RCPVENAM* ARE CLEARED.                            #
  
            ITEM RCINVID    C(DFRCIR5,0,10);
                                        # 10-CHARACTER USER ID         #
            ITEM RCINSCNM   C(DFRCIR6,0,30);
                                        # 30-CHARACTER SCHEMA NAME     #
            ITEM RCINSBNM   C(DFRCIR9,0,30);
                                        # 30-CHARACTER SUB-SCHEMA NAME #
            ITEM RCINSBCK    U(DFRCIR12,0,60);
                                        # SUBSCHEMA CHECKSUM           #
            ITEM RCPVENAM   C(DFRCIR13,0,07); 
                                        # REQUESTED VERSION NAME       #
  
# THE FOLLOWING ITEM IS USED DURING INVOKE OR VERSIONS PROCESSING.     #
# IT IS POSITIONED BEYOND THE REQUEST PACKET AND IS NOT PART OF IT.    #
  
            ITEM RCINOFCOMP I(DFRCLAST,0,60); 
                                        # OFT POINTER DURING ATTACHING #
  
#  THE FOLLOWING ITEMS DESCRIBE COMMON PARAMETERS FOR THE "OPEN",      #
# "CLOSE", "READ SEQUENTIAL", READ RANDOM", "WRITE SEQUENTIAL",        #
# "WRITE RANDOM", "REWRITE", DELETE", "START" SYMBIONTS                #
  
            ITEM RCPFITPF   U(DFRCIR5,0,60);
            ITEM RCPFITFW   U(DFRCIR5,0,60);
                                        # FIRST WORD OF FIT PARAMETERS #
            ITEM RCPFITNDX  B(DFRCIR5,0,1); 
                                        # INDEX-ONLY ACCESS FLAG       #
            ITEM RCPFITPM   B(DFRCIR5,1,1); 
                                        # PROCESSING MODE              #
            ITEM RCPFITPD   U(DFRCIR5,3,3); 
                                        # PROCESSING DIRECTION         #
            ITEM RCPFITRKP  U(DFRCIR5,12,4);
                                        # ALTERNATE KEY CHAR POSITON   #
            ITEM RCPFITKP   U(DFRCIR5,16,4);
                                        # PRIMARY KEY CHAR POSITION    #
            ITEM RCPFITKL   U(DFRCIR5,20,9);
                                        # PRIMARY KEY CHAR LENGTH      #
            ITEM RCPFITKT   U(DFRCIR5,30,3);
                                        # KEY TYPE                     #
            ITEM RCPFITMKL  U(DFRCIR5,33,9);
                                        # MAJOR KEY LENGTH (CHARS)     #
            ITEM RCPFITRKW  U(DFRCIR5,48,12); 
                                        # ALTERNATE KEY WORD LOCATION  #
            ITEM RCPFITMRL  U(DFRCIR6,0,24);
                                        # MAXIMUM RECORD LENGTH (CHARS)#
            ITEM RCPFITWS   U(DFRCIR6,42,18); 
                                        # WORKING STORAGE AREA         #
            ITEM RCPFITPTL  U(DFRCIR6,0,24);
                                        # PART TRANSFER LENGTH (OUTPUT)#
            ITEM RCPFITFP   U(DFRCIR6,24,7);
                                        # FILE POSITION (OUTPUT)       #
            ITEM RCPFITRC   U(DFRCIR6,31,29); 
                                        # RECORD COUNT (OUTPUT)        #
            ITEM RCPFITRL   U(DFRCIR7,0,24);
                                        # RECORD LENGTH (CHARS)        #
            ITEM RCPFITOF   U(DFRCIR7,25,2);
                                        # OPEN FLAGS                   #
            ITEM RCPFITRO   U(DFRCIR7,33,3);
                                        # RELATION OPERATOR            #
            ITEM RCPFITKNE  B(DFRCIR7,36,1);
                                        # KEY NOT EQUAL (OUTPUT)       #
            ITEM RCPFITKA   U(DFRCIR7,42,18); 
                                        # KEY ADDRESS                  #
            ITEM RCPFITPL   U(DFRCIR7,0,60);
                                        # LAST WORD OF FIT PARAMETERS  #
            ITEM RCPKRLFLG B(DFRCIR8,0,1);       #RETURN RL TO UCP# 
            ITEM RCPARORD (DFRCIR8,48,12);
                                        # AREA/RECORD ORDINAL          #
            ITEM RCPPAKORD  U(DFRCIR9,0,60);
                                        # PRIMARY/ALTERNATE KEY ORDINAL#
              ITEM RCPPAKNMF  B(DFRCIR9,0,1); 
                                        # TRUE IF KEY IN SCHEMA FORMAT #
              ITEM RCPSRCNT I(DFRCIR9,2,18);
                                        # NUMBER OF RECORDS TO SKIP   # 
              ITEM RCPPAKRO U(DFRCIR9,36,12); 
                                        # RECORD ORDINAL              # 
              ITEM RCPPAKIO U(DFRCIR9,48,12); 
                                        # ITEM ORDINAL                # 
            ITEM RCPNXLSF   U(DFRCIR10,0,60); 
                                        # NEXT/LAST FLAG               #
            ITEM RCPPAKEY   C(DFRCIR11,0,240);
            ITEM RCPPAKY2   U(DFRCIR11,0,60); 
                                        # PRIMARY/ALTERNATE KEY VALUE  #
  
  
# THE FOLLOWING ITEMS DESCRIBE THE "READ RELATION" PARAMETERS          #
#     THE ROOT FILE FIT PARAMETERS ARE AS DESCRIBED ABOVE              #
  
            ITEM RCPDNNUM  U(DFRCIR8,0,15); 
                                        # NUMBER OF DATA NAME ENTRIES  #
            ITEM RCPDNSZ   U(DFRCIR8,15,15);
                                        # TOTAL NUMBER WORDS FOR ALL   #
                                        # DATA NAME VALUE ENTRIES      #
            ITEM RCPDNPTR  U(DFRCIR8,30,18);
                                        # ADDRESS OF DATA NAME LIST    #
            ITEM RCPRELOR   U(DFRCIR8,48,12); 
                                        # RELATION ORDINAL             #
            ITEM RCPRLPAK   U(DFRCIR9,0,60);
                                        # PRIMARY/ALTERNATE KEY ORDINAL#
            ITEM RCPFITLS   U(DFRCIR10,0,60); 
                                        # ADDRESS OF FIT LIST          #
            ITEM RCPRLKEY   C(DFRCIR11,0,240);
                                        # PRIMARY/ALTERNATE KEY        #
                                        # NOTE--KEY FOR RELATION READ  #
                                        # OCCUPIES SAME LOCATION AS IN #
                                        # NORMAL READ                  #
# THE FOLLOWING ITEMS DESCRIBE THE "PRIVACY" PARAMETERS                #
  
            ITEM RCPPRTYPE  U(DFRCIR5,0,60);
                                        # PRIVACY ELEMENT TYPE         #
            ITEM RCPPREORD  U(DFRCIR6,0,60);
                                        # AREA/RECORD ORDINAL          #
            ITEM RCPPRIORD  U(DFRCIR7,0,60);
                                        # ITEM ORDINAL                 #
            ITEM RCPPROPTS  U(DFRCIR8,0,60);
                                        # PRIVACY OPTIONS              #
            ITEM RCPPRKEY   C(DFRCIR9,0,30);
                                        # PRIVACY KEY LITERAL          #
  
# THE FOLLOWING ITEMS DESCRIBE THE "RECOVERY POINT" PARAMETERS         #
  
            ITEM RCPRPNUM   U(DFRCIR5,0,60);
                                        # ADDRESS OF CELL FOR R.P. NUM #
            ITEM RCPRPTEXT  C(DFRCIR6,0,30);
                                        # RECOVERY POINT TEXT          #
# THE FOLLOWING ITEMS DESCRIBE THE "ELAPSED TIME "PARAMETERS           #
  
      ITEM RCTADD U(DFRCIR5,0,18);#ADDRESS TO RETURN TIME PARAMER#
      ITEM RCTTYP U(DFRCIR5,18,18);#TYPE OF TIME REQUEST# 
  
# THE FOLLOWING ITEMS DESCRIBE THE "DATABASE STATUS BLOCK"             #
#     PARAMETERS.                                                      #
  
            ITEM RCPDBSTLW   U(DFRCIR5,36,06);
                                        # DBST LENGTH IN WORDS         #
            ITEM RCPDBSTUCP  U(DFRCIR5,42,18);
                                        # DBST ADDRESS AT THE UCP      #
  
# THE FOLLOWING ITEMS DESCRIBE THE PARAMETERS FOR THE *BEGIN*,         #
# *COMMIT*, *DROP*, *ASK*, *GETID*  DML COMMANDS.                      #
  
            ITEM RCPTID     C(DFRCIR5,0,10);
                                       # TRANSACTION ID (BEGIN)        #
            ITEM RCPRID     C(DFRCIR5,0,10);
                                       # RESTART ID (ASK)              #
            ITEM RCPRIDLOC  I(DFRCIR5,42,18); 
                                       # ADDRESS CELL FOR RID (GETID)  #
            ITEM RCPTIDLOC  I(DFRCIR6,42,18); 
                                       # ADDRESS CELL FOR TID (ASK)    #
  
# THE FOLLOWING ITEMS DESCRIBE THE PARAMETERS FOR THE *LOCK AREA*      #
# DML COMMAND WITH THE PROTECTED/EXCLUSIVE MODE OPTIONS.               #
  
            ITEM RCPRELNAM  C(DFRCIR5,0,30);
                                       # REALM NAME (BLANK FILL)       #
            ITEM RCPLOKMOD  C(DFRCIR8,0,10);
                                       # LOCK MODE                     #
  
# THE FOLLOWING ITEM DESCRIBES THE PARAMETER FOR THE "SET/RESET        #
# IMMEDIATE RETURN" REQUEST.                                           #
  
            ITEM RCPIMRTN   B(DFRCIR5,59,01); 
                                       # IMMEDIATE RETURN FLAG.        #
  
        END 
#***********************************************************************
*     RSB (RUN UNIT STATUS BLOCK) BASED ARRAY.
# 
*CALL RSBFXDCLS 
*CALL RSBARDCLS 
*CALL RSBRCDCLS 
#***********************************************************************
*     SALL -- SCHEMA ACCESS LIST
# 
      ITEM SALL;             #LAST ENTRY IN SAL#
      ITEM SALX;             #INDEX INTO SAL# 
  
*CALL SALDCLS 
#***********************************************************************
*     TQT--TASK QUEUE TABLE 
# 
      ITEM TQTMTR;           #ADDRESS OF MONITOR TQT# 
      ITEM TQTCHAIN = 0;     #FIRST ENTRY IN TQT CHAIN# 
  
      BASED ARRAY TQT;
        BEGIN 
        ITEM TQWORD00 U(00,00,60);      # ENTIRE WORD                  #
        ITEM TQPRIOR (0,24,18);        #PRIOR TQT ENTRY ADDRESS#
        ITEM TQNEXT (0,42,18);         #NEXT TQT ENTRY ADDRESS# 
        ITEM TQSCWSAL I(00,00,24);     # SCHEMA RECORD WSA CHAR LENGTH #
        ITEM TQSBWSA (1,0,18);         # SUBSCHEMA RECORD WSA          #
        ITEM TQIMRTN B(01,18,01);      # IMMEDIATE RETURN FLAG.        #
                                       # TRUE = RETURN.                #
                                       # BITS 19-23 UNUSED.            #
        ITEM TQMFPBUF (1,24,18);       # READ RELATION BUFFER          #
        ITEM TQSCWSA (1,42,18);        # SCHEMA RECORD WSA             #
        ITEM TQDBSTLW  U(02,00,06);    # WORD LENGTH OF THE DBST       #
        ITEM TQDBSTUCP U(02,06,18);    # ADDRESS OF THE UCP-SIDE DBST  #
        ITEM TQDBSTSCP U(02,24,18);    # ADDRESS OF THE SCP-SIDE DBST  #
        ITEM TQRCB  I(2,42,18);        # RCB ADDRESS OR CONTINUATION   #
                                       # ADDRESS FOR INACTIVE USER     #
                                       #   GR 0 - ADDRESS OF RCB       #
                                       #   EQ 0 - NO RCB               #
                                       #   LS 0 - -1 * ADDRESS AT WHICH#
                                       #          THE INACTIVE USER    #
                                       #          SHOULD BE CONTINUED  #
                                       #          (SEE DB$TSCH).       #
        ITEM TQSALX  U(03,00,12);      # INDEX IN SAL                  #
        ITEM TQARTX  U(03,12,06);      # INDEX IN ART                  #
        ITEM TQFLAGS U(03,18,06);      # TQT FLAGS                     #
        ITEM TQLTCF  B(03,18,01);      # TRUE IF LONG TERM CONNECTION  #
        ITEM TQCOUNTED B(03,19,01);    # TRUE IF TQT HAS BEEN COUNTED  #
        ITEM TQTERM  B(03,20,01);      # TRUE IF TERMINATING RUN-UNIT  #
                                       # (SET BY DB$TRU PROCESSING)    #
                     #(03,21,01)# 
        ITEM TQSWPF  B(03,22,01);      # TRUE IF TABLES SWAPPED OUT    #
        ITEM TQNRR   B(03,23,01);      # TRUE IF NO RERUN BIT IS SET   #
        ITEM TQRSBSIZE (3,24,18);      #RSB SIZE# 
        ITEM TQRSB (3,42,18);          #RSB ADDRESS#
        ITEM TQASL    U(04,00,18);     # ASL POINTER                   #
        ITEM TQALT    U(04,18,18);     # ADDRESS ALT ENTRY IF WAITING  #
                                       #FOR LOCK# 
        ITEM TQTASK   U(04,36,24);     # TASK NUMBER (MUJ-TYPE USER)   #
        ITEM TQACNSAC U(05,00,06);     # NOS ACCOUNTING TABLE CODE     #
        ITEM TQACCP (5,0,60);          #CPA TIME# 
        ITEM TQACCPB (6,0,60);         #CPB TIME# 
        ITEM TQACNSMS U(06,10,10);     # NOS MASS STORAGE (I/O) UNITS  #
       ITEM  TQACIO   U(7,0,60) ;  #  I/O TIME                         #
       ITEM  TQACCM   U(8,0,60) ;  #  CM FIELD LENGTH                  #
       ITEM  TQACECS  U(9,0,60) ;  #  ECS                              #
       ITEM  TQACPP   U(10,0,60);  #  PP TIME                          #
       ITEM  TQACUMCP U(11,0,60);  #  ACCUMULATIVE CP TIME             #
       ITEM  TQACUMIO U(12,0,60);  #  ACCUMULATIVE IO TIME             #
        ITEM TQSFBUF C(13,0,20);       # SUBSYSTEM CALL BUFFER, 2 WORDS#
        ITEM TQSFRC  U(13, 0, 6);      # RETURN CODE FROM SFCALL       #
        ITEM TQRUID (14,00,60);        # RUN UNIT ID (2ND WD OF SFBUF) #
        ITEM TQRSTID C(15,00,10);      # RESTART IDENTIFIER            #
        ITEM TQPRNAME C(16,00,10);     # PROGRAM NAME FROM INVOKE      #
        ITEM TQVENAME C(17,00,07);     # VERSION NAME                  #
        END 
#***********************************************************************
*     UFT--USER FILE TABLE
# 
      BASED ARRAY UFT;
        BEGIN 
        ITEM UFWORD     I(00,00,60);    # UFT WORD                     #
        ITEM UFTQT      I(00,00,18);    # TQT LOC WITH VALID POSITION  #
                        #(00,18,06)#
        ITEM UFPRIOR    I(00,24,18);    # PRIOR UFT IN CHAIN           #
        ITEM UFNEXT     I(00,42,18);    # NEXT UFT IN CHAIN            #
  
        ITEM UFFIT      I(01,00,60);    # UFT FIT                      #
        ITEM UFFITLFN   C(01,00,07);    # UFT FIT LFN                  #
        ITEM UFFITSTAT  I(01,42,18);    # UFT FIT CODE AND STATUS FIELD#
        ITEM UFFITFWB   I(02,42,18);    # FIRST WORD BUFFER            #
        ITEM UFFITFP    U(11,26,07);    # FILE POSITION                #
        ITEM UFFITRL    U(12,00,24);    # RECORD LENGTH                #
        ITEM UFFITOF    U(12,25,02);    # FIT OF FIELD                 #
        ITEM UFFITFO    U(12,39,03);    # FILE ORGANIZATION            #
        ITEM UFFITMRL   U(13,00,24);    # MAXIMUM RECORD LENGTH        #
        ITEM UFFITDX    I(13,42,18);    # FIT DX FIELD                 #
        ITEM UFFITBFF   B(14,24,01);    # BAD FILE FLAG                #
        ITEM UFFITESEX  U(14,33,27);    #     GROUP FIELD              #
        ITEM UFFITES    U(14,33,09);    # FIT ERROR STATUS FIELD       #
        ITEM UFFITEX    I(14,42,18);    # FIT EX FIELD                 #
        ITEM UFFITWSA   I(16,42,18);    # WORKING STORAGE ADDRESS      #
        ITEM UFFITHRL   I(17,42,18);    # ADDRESS OF DA HASHING ROUTINE#
        ITEM UFFITMKL   U(17,33,09);    # MAJOR KEY LENGTH             #
        ITEM UFFITFNF   B(18,00,01);    # FIT FNF (FATAL/NONFATAL) FLAG#
        ITEM UFFITOC    U(18,01,02);    # FIT OC (OPEN/CLOSE) FIELD    #
        ITEM UFFITPD    U(18,03,03);    # PROCESSING DIRECTION         #
        ITEM UFFITBFS   I(18,42,18);    # BUFFER SIZE FOR OPEN         #
        ITEM UFFITPTL   U(19,00,24);    # INDEX FILE PROCESSING        #
                                        # NUMBER OF PRIMARY KEYS       #
                                        # RETURNED                     #
        ITEM UFFITRC    U(19,30,30);    # FIT RC (RECORD COUNT) FIELD  #
        ITEM UFFITMBL   U(20,00,24);    # BLOCK LENGTH IN CHARACTERS   #
        ITEM UFFITPM    B(21,01,01);    # PROCESSING MODE              #
        ITEM UFFITDCT   I(21,12,18);    # DISPLAY TO COLLATING TABLE   #
        ITEM UFFITWD26  I(23,00,60);    # WORD ZEROED BEFORE OPENING   #
        ITEM UFFITWD27  I(24,00,60);    # WORD ZEROED BEFORE OPENING   #
        ITEM UFFITNDX   B(25,00,01);    # FIT NDX (0=DATA,1=INDEX) FLAG#
        ITEM UFFITKNE   B(25,01,01);    # KEY NOT EQUAL                #
        ITEM UFFITKA    I(25,42,18);    # PRIMARY KEY ADDRESS          #
        ITEM UFFITBZF   I(26,42,18);    # ADDRESS OF SEEK BUSY FET     #
        ITEM UFFITFIAT  I(28,24,18);    # FIAT POINTER                 #
        ITEM UFFITFSTT  I(28,42,18);    # FSTT POINTER                 #
        ITEM UFFITWD34  I(29,00,60);    # WORD ZEROED BEFORE OPENING   #
        ITEM UFFITKEYD  U(32,00,29);    # KEY DATA  (GROUP ITEM)       #
        ITEM UFFITKWKP  U(32,00,16);    # CONCATENATION OF RKW/RKP     #
        ITEM UFFITRKW   U(32,00,12);    # RELATIVE KEY WORD LOCATION   #
        ITEM UFFITRKP   U(32,12,04);    # RELATIVE KEY POSITION        #
        ITEM UFFITKP    U(32,16,04);    # PRIMARY KEY POSITION         #
        ITEM UFFITKL    U(32,20,09);    # FIT KEY LENGTH               #
        ITEM UFFITKT    U(33,30,03);    # PRIMARY KEY TYPE             #
        ITEM UFFITREL   U(33,33,03);    # RELATION OPERATOR            #
        ITEM UFFITCPA   I(33,42,18);    # FIT CPA (COMPRESSION ADDRESS)#
        ITEM UFFITDCA   I(34,42,18);    # FIT DCA (DECOMPRESSION ADDRS)#
        END 
  
  
*CALL     VENLDCLS
      END 
