*DECK     DMPUDI
          SUBROUTINE DMPUDI( UDI , N )
  
**        DMPUDI - PRINT ENTRIES IN *UDI* BEFORE THEY ARE REFORMATTED 
  
          IMPLICIT INTEGER(A-Z) 
          INTEGER UDI(N)
          COMMON/LINE/LINECM(2) 
  
          FIELD(X,P,L) = SHIFT(X,60-P) .A. .N.MASK(60-L)
          IH(X) = FIELD(X,0,18) 
          CA(X) = FIELD(X,18,18)
          CR(X) = FIELD(X,54,1) 
  
          DATA NN / 0 / 
  
          PRINT 1 
 1        FORMAT(///*  -- UDI SYMBOL DICTIONARY --*//)
 3        FORMAT(I6,4X) 
 2        FORMAT(/) 
 4        FORMAT(4X,Z6,2X,A7) 
 5        FORMAT(12H   -CLASS-   ,A7) 
  
          LINECM = LINECM(2)
          K = (N-2)/4 
          I = 3 
  
 10       J = I - 1 
          PRINT 3, J
          J = MIN0( N , I+2 ) 
  
          DO 20 K = I,J 
          IHV = SYM( IH( UDI(K) ) ) 
          CAV = CA( UDI(K) )
          IF( CR( UDI(K) ) .NE. 0 ) GO TO 15
          IF( SHIFT(CAV,42) .LT. 0 ) CAV = CAV .O. MASK(42) 
          PRINT 4,CAV,IHV 
          GO TO 20
 15       PRINT 5,IHV 
 20       CONTINUE
          PRINT 2 
  
          I = I + 3 
          IF( I .LE. N ) GO TO 10 
  
          IF( NN .NE. 0 ) RETURN
  
*         PRINT THE NAMES IN THE SYMBOL TABLE, 8 NAMES PER LINE 
  
          PRINT 25
 25       FORMAT(///*  -- SYMBOL TABLE NAMES --*//) 
          CALL GETNSYM( NN )
          J = 1 
  
 30       PRINT 31,J
 31       FORMAT(Z6)
          K = MIN0( J+8 , NN )
 40       IHV = SYM(J)
          PRINT 41, IHV 
 41       FORMAT(2X,A8) 
          J = J + 1 
          IF( J .LE. K ) GO TO 40 
  
          PRINT 2 
          IF( J .LT. NN ) GO TO 30
  
          LINECM = 0
          RETURN
  
          END 
