$STORAGE: 4
$DO66
      SUBROUTINE OHAF(KSTEP)
C                       PRINTS THE LEFT (KSTEP=1) OR RIGHT (KSTEP=-1)
C     PART OF UPPER-CASE 'O' FOR UPPER-CASE 'C','D','G','O' AND 'Q'.
C
      DIMENSION KLINE(30)
      COMMON /LINES/ LINE(132),LINEX(132)
	CHARACTER*1 LINE,LINEX
      COMMON /NUMBRS/ I2,I3,I4,I5,I6,I7
61    FORMAT(1X,132A1)
62    FORMAT(1H+,132A1)
      DATA KLINE/32480000,26540000,23570000,20600000,18620000,16640000,
     *     14660000,12680000,11334769, 9275371,8245672,7206073,6186274,
     *     5166475,4146676,4136776,3126877,2116978,2107078,2097178,
     *     1087279,1087279,1077379,  77380,  67480,  67480,  67480,
     *       67480,  67480,  67480/
      IF(KSTEP.EQ.1) K = 0
      IF(KSTEP.EQ.1) N = 17
      IF(KSTEP.EQ.-1) K = 31
      IF(KSTEP.EQ.-1) N = 30
      DO 20 I=1,N
      CALL BAXX(1,1)
      K = K + KSTEP
      KLK = KLINE(K)
      NA = KLK/I6
      NB = KLK/I4 - NA*I2
      NC = KLK/I2 - NB*I2 - NA*I4
      ND = KLK - NC*I2 - NB*I4 - NA*I6
      CALL FRNT(NA,NB)
      IF(NC.EQ.0) GO TO 10
      CALL FRNT(NC,ND)
10    WRITE(2,61) LINE
20    WRITE(2,62) LINEX
      RETURN
      END

