C
C         N23DMP --- DUMPS SYMBOL TABLE.
C
      SUBROUTINE  N23DMP
C
          ARGUMENT TON$ (C/SLJ/)
      COMPILER (GEN=NOTRA)
      INCLUDE FORENV
      INCLUDE EXOTIC
       INCLUDE FORCR
      COMMON  /SYMZ/ SYM(1)
      DATA  ZZBLNK/' '/
      EXTERNAL SYMBRK
      DEFINE SBRK(I) = CORE(ABS(LOC(SYMBRK)+I))  @ ABS IS TEMP FIX
      INTEGER HDG(4) / 'DYNAMIC POOL 0',-1/
C
      S2(HDG(3)) = '@@@@@0'   @ RESET POOL NUMBER.
      H1(SYMBRK) = H1(SYMBRK)
      NSEG = S1(SBRK(0))+1
      BEGIN = SUBSCR(SYM,CRISYM)
      DO 200 SN=1,NSEG
      IF (SN.NE.1) BEGIN=SUBSCR(SYM,(H2(SBRK(SN-1))+3).AND.-3)
      END = SUBSCR(SYM,H1(SBRK(SN)))
      IF (SN.EQ.NSEG) END = SUBSCR(SYM,H2(CRSYM))
      WRITE (6,9000) SN, BEGIN, END
      DO 100 I=BEGIN,END,4
      ADDR = LOC(SYM(I))
          B1 = H1(SYM(I))
          B2 = H1(SYM(I+1))
          B3 = FLD(0,6,SYM(I+2))
          B4 = FLD(6,12,SYM(I+2))
          B5 = FLD(18,6,SYM(I+2))
          B6 = H1(SYM(I+3))
          WORD = SYM(I)
          DO 50 J=1,6
              IF (FLD(0,6,WORD).EQ.2**6-1) GO TO 90
   50         WORD = WORD * 2**6
   80 WRITE (6,9010) ADDR,SYM(I),B1,SYM(I),B2,SYM(I+1),B3,B4,B5,
     $                  SYM(I+2),B6,SYM(I+3)
          GO TO 100
   90 WRITE (6,9010) ADDR,ZZBLNK,B1,SYM(I),B2,SYM(I+1),B3,B4,B5,
     $                  SYM(I+2),B6,SYM(I+3)
  100     CONTINUE
  200 CONTINUE
C
      DO 300 SN=1,NSEG
      S2(HDG(3)) = S2(HDG(3))+1
      BEGIN = H1(SBRK(SN))
      IF (SN.EQ.NSEG) BEGIN = H2(CRSFNX)
C
  300 CALL SNAP (BEGIN,H2(SBRK(SN))-BEGIN+1,HDG)
C
      RETURN
C
 9000 FORMAT ('0SYMBOL TABLE SECTION',I2,' RANGE (',O6,',',O6,')'/)
 9010 FORMAT (' ',4X,O6,5X,A6,2(3X,O6,1X,O6),3X,O2,1X,O4,1X,O2,1X,O4,
     $        3X,O6,1X,O6)
      END
