*DECK DEFBLOCK
USETEXT CCTTEXT 
          FUNC  DEFBLOCK(NAME,GLFLAG,POOL); 
*CALL USETAB
 #
       ITEMS COMMON TO MORE THAN ONE OVERLAY IN THE CGEN PHASE ARE
       PLACED HERE
 #
  
*CALL IDBLOCK 
  
          XDEF BEGIN
          ITEM  CODEBLK;
              ITEM DECLCT  I;      #PROCTAB AND GSTART - DECLARATIVE CT#
              ITEM SGIXBLK I;      #PROCTAB AND GBRANCH - INDEX BLK NO #
              ITEM SGPTRDNATIX I;  #PROCTAB AND GBRANCH - SEGMENT PTR  #
              ITEM LASTPNAT I;     # PROCTAB AND VALFUNC - SEC 100 PNAT#
              ITEM  USEID; #FREE USE TABLE FROM ASSEMBLER#
              END 
 #     END OF COMMON ITEMS# 
          ITEM J; 
          ITEM  GLFLAG  B;
          ITEM  I;
          ITEM  NAME  C(7); 
          ITEM  NAMEINC = 1; #A#
          ITEM  POOL  B;
          XREF  PROC  CBLIST; 
          XREF  FUNC CMM$AGR; 
          XREF  FUNC  CMM$ALV;
          XREF  PROC  CMM$GLV;
          XDEF  PROC  INITBLK;
          PROC  INITBLK;
          BEGIN 
          BLOCKCNT = 0; 
          USESIZE = 25; 
          USEID = CMM$AGR(0); 
          I = CMM$ALV(USESIZE*USEENTSIZE,1,3,USEID, 
                      P<USETAB>, 0);
          END 
  
          XDEF  ITEM  LITBLK  I;       # INDEX TO USETAB FOR LITERALS  #
  
          BEGIN 
          BLOCKCNT = BLOCKCNT + 1;
          IF  BLOCKCNT GR USESIZE 
          THEN
              BEGIN 
              CMM$GLV(USETAB,USEENTSIZE*10);
              USESIZE = USESIZE + 10; 
              END 
          IF  NAME EQ "       " 
          THEN
              BEGIN 
              FOR I = 1 STEP 1 WHILE C<I>CCTPROGRAMID[0] NQ " " 
                  DO  TEST; 
              IF  I GR 6 THEN  I = 6; 
              NAME = CCTPROGRAMID[0]; 
              C<I>NAME = NAMEINC; 
              NAMEINC = NAMEINC + 1;
              END 
          IF GLFLAG 
          THEN
              BEGIN 
              FOR J = 6 STEP -1 WHILE J GQ 0 DO 
                  IF C<J>NAME EQ " " THEN 
                  B<J*6,6>NAME = 0; 
              END 
          DEFBLOCK = BLOCKCNT;
          USEWORD1[BLOCKCNT] = 0; 
          USEWORD2[BLOCKCNT] = 0; 
          USEWORD3[BLOCKCNT] = 0; 
          USEWORD4[BLOCKCNT] = 0; 
          USEWORD5[BLOCKCNT] = 0; 
          GLOBAL[BLOCKCNT] = GLFLAG;
          USENAME[BLOCKCNT] = NAME; 
          USEPOOL[BLOCKCNT] = POOL; 
          RETURN; 
          END 
          TERM
