
      SUBROUTINE XAXIS( XTIC, IXTIT, IXLEN, IXSIZ, IXFMT )
      BYTE IXTIT(IXLEN)
      INTEGER FORM(3)
      COMMON /HWINDO/ SCRX,SCRY,IXORIG,IYORIG,IASCR,IBSCR,ICSCR,IDSCR
      COMMON /WORLD/ XMINW, XMAXW, YMINW, YMAXW
      COMMON /CHRSIZ/ ICHW(5), ICHH(5)
      IF(.NOT.( IXSIZ .GE. 1 .AND. IXSIZ .LE. 5 )) GO TO 32758
      IXS = IXSIZ
      GO TO 32759
32758 IXS = 0
32759 IF(.NOT.( XTIC .NE. 0. )) GO TO 32757
      IS = IASCR
      IY = ICSCR - ICHH(MAX0( IXS, 1 )) * 2
      LENTIC = SCRX / 4
      XVAL = XMINW
      IFORM = IFRMT( FORM, IXFMT )
      XMAX = AMAX1( XMINW, XMAXW )
      XMIN = AMIN1( XMINW, XMAXW )
      IW = ICHW(MAX0(IXS,1))
32756 IF(.NOT.( XVAL .LE. XMAX .AND. XVAL .GE. XMIN )) GO TO 32755
      IF(.NOT.( XVAL .EQ. XMINW )) GO TO 32753
      CALL LABELX( XVAL, FORM, IFORM, IS, IY, IW, IXS )
      GO TO 32754
32753 IS = ISCRX( XVAL )
      IF( IS .NE. IBSCR ) CALL DRXTIC(IS, ICSCR, LENTIC)
      CALL LABELX( XVAL, FORM, IFORM, IS, IY, IW, IXS )
32754 XVAL = XVAL + XTIC
      GO TO 32756
32755 CONTINUE
32757 IF(.NOT.( IXS .NE. 0 )) GO TO 32752
      CALL TRIMSP( IXTIT, IXLEN, IST, IEND )
      IXLN = IEND + 1 - IST
      IXL = IXLN * ICHW(IXS)
      IX = (IASCR + IBSCR - IXL) / 2
      IY = ICSCR - 4 * ICHH(IXS)
      CALL PLTSTR(IX, IY, IXTIT(IST), IXLN, 1, IXS)
32752 RETURN
      END
