$STORAGE: 4
$DO66
      SUBROUTINE PRNT(I)
C                       MANAGES THE PRINTING OF EACH CHARACTER.
C
      DIMENSION NSHIFT(89)
      COMMON /LINES/ LINE(132),LINEX(132)
	CHARACTER*1 LINE,LINEX
      COMMON /NUMBRS/ I2,I3,I4,I5,I6,I7
      COMMON /INIT/ NSYMB(2,89),NCHAR(3000),LMAX(89),LMIN(89)
61    FORMAT(1X,132A1)
62    FORMAT(1H+,132A1)
      DATA NSHIFT/10*0,2,12*0,2,7*0,25,0,25,5*0,25,12,25,7*0,25,
     *     14*0,9,12*0,8,0,0,10,8*0/
      CALL BAXX(2,2)
      IF(I.NE.89) GO TO 10
      CALL BAXX(50,2)
      RETURN
10    IF(I.EQ.16.OR.I.EQ.22.OR.I.EQ.36) CALL LEGL(25,0)
      IF(I.EQ.40) CALL LEGL(25,25)
      IF(I.EQ.12.OR.I.EQ.18.OR.I.EQ.38) CALL LEGL(0,0)
      IF(I.EQ.8.OR.I.EQ.20.OR.I.EQ.28.OR.I.EQ.42) CALL OHAV(1)
      IF(I.EQ.1.OR.I.EQ.9.OR.I.EQ.15.OR.I.EQ.17.OR.I.EQ.19.OR.I.EQ.21
     *     .OR.I.EQ.25.OR.I.EQ.29.OR.I.EQ.35.OR.I.EQ.39) CALL LEGU(7)
      IF(I.EQ.11.OR.I.EQ.37) CALL LEGU(4)
      IF(I.EQ.7.OR.I.EQ.27.OR.I.EQ.31.OR.I.EQ.41) CALL OHAF(1)
      IF(I.EQ.8.OR.I.EQ.12.OR.I.EQ.16) GO TO 70
      J = NSYMB(2,I) - (NSYMB(2,I)/I4)*I4 - 1
      JOUT = NSYMB(2,I+1) - (NSYMB(2,I+1)/I4)*I4
      NSI = NSHIFT(I)
20    NE = 0
      NG = 0
      CALL BAXX(1,1)
      J = J + 1
      IF(J.GE.JOUT) GO TO 70
      NCH = NCHAR(J)
      NA = NCH/I7
      NB = NCH/I5 - NA*I2
      NC = NCH/I3 - NB*I2 - NA*I4
      ND = NCH/10 - NC*I2 - NB*I4 - NA*I6
      NCHK = NCH - ND*10 - NC*I3 - NB*I5 - NA*I7
      IF(NA.LE.NB.AND.NB.LE.NC.AND.NC.LE.ND) GO TO 25
      NTEMP = NA
      NA = ND
      ND = NTEMP
      NTEMP = NB
      NB = NC
      NC = NTEMP
25    IF(NCHK.NE.1) GO TO 30
      J = J + 1
      NCH = NCHAR(J)
      NE = NCH/I7
      NF = NCH/I5 - NE*I2
      NG = NCH/I3 - NF*I2 - NE*I4
      NH = NCH/10 - NG*I2 - NF*I4 - NE*I6
      NCHK = NCH - NH*10 - NG*I3 - NF*I5 - NE*I7
      IF(NE.LE.NF.AND.NF.LE.NG.AND.NG.LE.NH) GO TO 30
      NTEMP = NE
      NE = NH
      NH = NTEMP
      NTEMP = NF
      NF = NG
      NG = NTEMP
30    IF(NCHK.EQ.0) NCHK = 1
      IF(NA.NE.0.OR.NB.NE.0) GO TO 40
      CALL BAXX(NCHK,2)
      GO TO 20
40    CALL FRNT(NA-NSI,NB-NSI)
      IF(NC.EQ.0) GO TO 50
      CALL FRNT(NC-NSI,ND-NSI)
      IF(NE.EQ.0) GO TO 50
      CALL FRNT(NE-NSI,NF-NSI)
      IF(NG.EQ.0) GO TO 50
      CALL FRNT(NG-NSI,NH-NSI)
50    DO 60 K=1,NCHK
      WRITE(2,61) LINE
60    WRITE(2,62) LINEX
      GO TO 20
70    IF(I.EQ.8.OR.I.EQ.26.OR.I.EQ.40) CALL OHAV(-1)
      IF(I.EQ.12.OR.I.EQ.16) CALL ACHN
      IF(I.EQ.7.OR.I.EQ.19) CALL OHAF(-1)
      CALL BAXX(2,2)
      RETURN
      END

