*DECK ADDSUBL 
USETEXT DNTEXT
          PROC  ADDSUBL((OFFSET),(INDEX),(FLAG)); 
*CALL ASMCOMM 
*CALL TABLETYP
*CALL USETAB
*CALL OPNAMES 
*CALL INSTDEFS
*CALL DNATVALS
  
          ARRAY  BUILDUSE[0]; 
              ITEM
              USEINDX  DINDEX,
              USEOP    DOC = [OPNAMES"USE$"], 
              USETABL  DTABLE = [TABLETYPE"USETAB$"]; 
          ARRAY  BUILDVFD[0:8]; 
              ITEM
              BITS    DNUM   = [,12,,18,,12,,18], 
              CONS    DCONS  = [,0,,0,,0,,0], 
              COUNT   DCOUNT = [8], 
              INDX    DINDEX, 
              OP      DOC    = [OPNAMES"VFD$"], 
              TABLE   DTABLE = [,TABLETYPE"NULL",,TABLETYPE"NULL",, 
                                 TABLETYPE"NULL",,TABLETYPE"USEORG$"],
              TEXT    DTEXT;
  
          ITEM  ADDR; 
          ITEM  FLAG  B;
          ITEM  INDEX;
          ITEM  LEV;
          ITEM  OFFSET; 
          ITEM  PARAM;
  
          XREF  PROC  INSTOUT;
          XREF  FUNC  VIRTUAL;
          CONTROL  EJECT; 
          BEGIN 
          IF  DN$MAJMSEC[VIRTUAL(TABLETYPE"DNAT$",INDEX)] EQ LINKMSEC 
          THEN
              BEGIN 
              USEINDX[0] = ADSUBBLK;
              INSTOUT(LOC(BUILDUSE),1); 
              TEXT[2] = DN$SUBMSEC[VIRTUAL(TABLETYPE"DNAT$",INDEX)];
              ADDR = DN$WORDOFF[VIRTUAL(TABLETYPE"DNAT$",INDEX)]; 
              TEXT[4] = OFFSET + ADDR;
              TEXT[6] = POS;
              INDX[7] = BLOCK;
              TEXT[8] = ORG;
              INSTOUT(LOC(BUILDVFD),9); 
              USEINDX[0] = BLOCK; 
              INSTOUT(LOC(BUILDUSE),1); 
              USEORG[ADSUBBLK] = USEORG[ADSUBBLK] + 1;
              END 
          RETURN; 
          END 
          TERM
