*COMDECK CBPASS2CM
# DIRECTORY INFORMATION TABLE FOR SCHEMA ACCESS ROUTINES# 
      XREF ARRAY DITSC [24] S(1); 
        BEGIN 
*CALL DITDECLS
        END 
# DEFS #
      DEF LEVEL66 #50#;            # LEVEL NUMBER OF LEVEL-66 ITEM. # 
      DEF LEVEL88 #52#;            # LEVEL NUMBER OF LEVEL-88 ITEM. # 
  
  
      COMMON CBPS2CM; 
      BEGIN 
# SCRATCH ITEMS#
      ITEM NAME C(30);
      ITEM NAMEL; 
      ITEM NAMELC;
      ITEM KEYMESSAGE C(100)=" "; #BUFFER FOR KEY MESSAGE#
      ITEM ADDRESS; 
      ITEM INDEX; 
      ITEM LASTKEY; 
  
# ITEMS USED FOR OFFSETS INTO SCHEMA AND SUBSCHEMA# 
      ITEM AREAOFFSET;       #START OF AREA ENTRY IN SUBSCHEMA# 
      ITEM RECOFFSET;        #START OF RECORD ENTRY IN SUBSCHEMA# 
      ITEM SSITEMOFFSET;     #START OF ITEM ENTRY IN SUBSCHEMA# 
      ITEM SCITEMOFFSET;     #START OF ITEM ENTRY IN SCHEMA#
      ITEM KEYOFFSET;        #START OF KEY ENTRY FOR DC IN SUBSCHEMA# 
      ITEM DCOFFSET;         #START OF DATA-CONTROL ENTRY IN SUBSCHEMA# 
      ITEM CDTBLOFFSET;      #START OF COMP/DECOMP TABLE IN SUBSCHEMA  #
      ITEM RCOFFSET;         #OFFSET OF RECORD CODE IN DATA CONTROL#
      ITEM LASTDATACONT=0;   #ADDR LAST DC ENTRY PROCESSED IN SUBSCHEMA#
      BASED ARRAY DATACONT;; #USED TO READ DATA-CONT INTO SUBSCHEMA#
      ITEM SCRECADDR;        #WA OF SCHEMA RECORD#
  
# GENERAL ITEM DESCRIPTIONS#
      ITEM LEVELT;           #TEMP CELL CONTAINING SUBSCHEMA LEVEL NO#
      ITEM SCHEMAL=100;      #LENGTH OF SCHEMA BUFFER#
      ITEM SCNEXTPTR;        #USED FOR CHECKING SAME ORDER# 
      ITEM DBPINDEX;         #INDEX INTO DATA-BASE PROCEDURE TABLE# 
      ITEM SSTYPE;           #SUBSCHEMA ITEM TYPE#
      ITEM SCTYPE;           #SCHEMA ITEM TYPE# 
      ITEM RECMAPPING B;     #FLAG TO SHOW MAPPING FOR RECORD#
  
# ARRAY TO KEEP TRACK OF ITEM INFORMATION#
      ARRAY [50] P(3);
        BEGIN 
        ITEM IDENTICAL B(0,0,1);       #TRUE IF IDENTICAL#
        ITEM NOSYNC B(0,1,1);          #TRUE IF NO SUB ITEMS SYNCED#
        ITEM LEVEL (0,15,9);           #LEVEL NO. IN SUBSCHEMA# 
        ITEM SCPOINTER (0,24,18);      #CORRESPONDING ITEM ADDR IN SCH# 
        ITEM ITEMPTR (0,42,18);        #LOCATION OF ITEM IN SUBSCHEMA#
        ITEM SSBEGBIT (1,0,12);        #BEG BIT POSITION IN SUBSCHEMA#
        ITEM SSBEGWORD (1,12,18);      #BEG WORD POSITION IN SUBSCHEMA# 
        ITEM SCBEGBIT (1,30,12);       #BEG BIT POSITION IN SCHEMA# 
        ITEM SCBEGWORD (1,42,18);      #BEG WORD POSITION IN SCHEMA#
        ITEM SSOCCURS (2,0,18);        #TOTAL MAX OCCURS FOR SUBSCHEMA# 
        ITEM SCOCCURS (2,42,18);       #TOTAL MAX OCCURS FOR SCHEMA#
        END 
      ITEM CURRENT=0;        #INDEX INTO ABOVE ARRAY# 
  
# OMIT TABLE# 
# THE FOLLOWING FLAGS ARE SET IF THE OMIT CONDITION IS TRUE#
      ITEM OM$NOTIDENT B=FALSE;        #SBSCH AND SCH NOT IDENTICAL#
      ITEM OM$ITMDBP B=FALSE;          #ITEM LEVEL DATA BASE PROCS# 
      ITEM OM$DBP B=FALSE;
      ITEM OM$DATACONV B=FALSE;        #DATA CONVERSION#
      ITEM OM$CKDBP B=FALSE; #CHECK IS VALUE DB PROC SPECIFIED# 
      ITEM OM$OCCRDBI B=FALSE;         #OCCURS DB IDENTIFIER TIMES# 
      ITEM OM$LOGGING B=FALSE;         #LOGGING REQUIRED FOR SUBSCHEMA# 
  
  
# MANAGED MEMORY BASED ARRAYS#
  
  
# SCHEMA# 
      BASED ARRAY SCHEMA; 
      BEGIN 
      CONTROL NOLIST;        #SCCWDECLS,SCHDECLS# 
*CALL SCCWDECLS 
*CALL SCHDECLS
      CONTROL LIST; 
      END 
# SUBSCHEMA#
      BASED ARRAY SUBSCHEMA;
      BEGIN 
        ITEM SBWORD;
        ITEM SBHEADER U(0,0,12);
        ITEM SBWC U(0,12,12); 
      CONTROL NOLIST;        #SBCWDECLS,SUBDECLS,SBDCDECLS,SCDCDECLS# 
*CALL SBCWDECLS 
*CALL SUBDECLS
*CALL SBDCDECLS 
*CALL SCDCDECLS 
      CONTROL LIST; 
      END 
      BASED ARRAY REALMLST;;
  
# LIST OF DATA-BASE PROCEDURES BUILT BY CBDBPBD#
      BASED ARRAY DBPLST; 
        BEGIN 
        ITEM DBPWORD; 
        ITEM DBPENTRY U(0,0,42);
        ITEM DBPLOWER I(0,42,18); 
        END 
      ITEM DBPLSTL = -1;   #NO OF DBP S - 1 IN DBP LIST#
  
# RECORD ADDRESS TABLE# 
# CONTAINS SCHEMA RECORD ADDRESSES PAIRED WITH THE SUBSCHEMA# 
# RECORD ADDRESS# 
      BASED ARRAY RECADT; 
        BEGIN 
        ITEM SCRECADRS (0,0,21);
        ITEM SSRECADRS (0,42,18); 
        END 
        ITEM RECADTL;  # SIZE OF ABOVE ARRAY# 
  
      END 
