FTN,L 
C 
C 
C 
CC************************************************************
C (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978.  ALL RIGHTS    *
C RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- *
C PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH-  *
C OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.  *
CC************************************************************
C 
C 
C 
C      NAME: LABEL AXES OR GRID 
C      SOURCE: 92840 - 18033
C      RELOC:  92840 - 16001
C 
C 
C 
CC*********************************************************** 
C 
      SUBROUTINE LABAX(P12,STRT,BEGIN,I,J,
     1IGCB), 92840-16001 REV.1913 790129
      INTEGER FLTAX 
      DIMENSION USER(6),BEGIN(2),ICODE(2),IBUF(4) 
      DIMENSION IFBUF(3)
      EQUIVALENCE (USER(1),CHRW),(USER(2),CHRH) 
      EQUIVALENCE (USER(3 ),A),(USER(4 ),B),(USER(5 ),C),(USER(6 ),D) 
      EQUIVALENCE (IFBUF,FLTAX),(IFBUF(2),AXLAB)
      EQUIVALENCE (ICODE(2),ICD2),(ICODE,ICHR)
C 
      DATA IUXY,ICHR/27,7/
      DATA ICHR/7/
      DATA FLTAX/24402B/
      DATA LRGAB/31001B/
C 
C     THIS SUBROUTINE IS RESPONSIBLE FOR WRITING LABELS OUTSIDE 
C  THE CLIPPING BOUNDARY.  THE PARAMETERS IN THE CALLING
C  HAVE THE FOLLOWING MEANING:
C 
C     P12 = # X,Y TIC SPACING 
C     P56 = MAJOR TIC COUNT 
C     STRT2 = WINDOW BOUNDARY 
C     BEGIN = POINT TO BE LABELED                                       EM1913
C     I,J = USED TO INDICATE WHICH VALUE IN BEGIN IS X OR Y 
C     XP12 = ABSOLUTE VALUE OF P12
C     K = USED TO INDICATE WHETHER OR NOT WE ARE DRAWING A NEW AXES.
C 
C     CLIPPING IS TURNED OFF BY CALLING PROGRAM                         EM1913
C     SET LABEL DIRECTION TO 0. RADIANS AND RETRIEVE CODES FOR
C CURRENT CLIPPING LIMITS AND TRANSFORMATION CONSTANTS. 
C 
      CALL LDIR(IGCB,0.)
      ICD2 = IADCD(D) 
      CALL GCBIM(ICODE,2,USER,0,1)
      NBYTE = 0 
      N = 0 
      CALL GCBIM(26,1,N,0,1)
C 
C     PUT CHARACTER WIDTH AND HEIGHT INTO CURRENTS MODE 
C 
      CHRWX = CHRW/A
      CHRWY = CHRW/C
      CHRHX = CHRH/A
      CHRHY = CHRH/C
C 
      AXLAB = BEGIN 
C 
C  THERE DOESN'TSEEM TO BE ANY REAL NEED FOR THIS CODE (WHICH DOESN'T  EM1913 
C  WORK ANYWAY) WITH THE RE-WRITE OF AXES-LAXES-GRID-LGRID FOR 1913    EM1913 
C  SO COMMENT IT OUT                                                   EM1913 
C     CHECK FOR THE POSSIBLE EXISTENCE OF 0.
C 
C     XP = ABS(P12)                                                     EM1913
C     TESTX = ABS(BEGIN)                                                EM1913
C     PREX =  ABS( BEGIN - XP)                                          EM1913
C     POSTX = ABS( BEGIN + XP)                                          EM1913
C     IF(TESTX.LT.PREX.AND.TESTX.LT.POSTX)AXLAB = 0.                    EM1913
C END OF COMMENTED OUT CODE                                             EM1913
C 
C     CONVERT TO FLOATING PT. TO GET NUMBER OF BYTES
C 
2     CALL FLTAS(AXLAB,IBUF,NBYTE,N,0)
C 
C     FIND OUT LORGABILITY OF DEVICE
C 
5     CALL OUTPT(1,LRGAB,1) 
      CALL GCBIM(16,1,IBUF,1,1) 
      BYTE = NBYTE
      HFBYT = .5 * BYTE 
C 
C     MOVE PEN TO LABELLING POINT, AND SEE IF THIS IS X OR Y
C  AXIS LABELLING.
C 
C 
      CALL LORG(IGCB,8) 
      IF(I.EQ.2)GO TO 50
C 
C     X - AXIS
C 
C     IF P12 < 0 LABELLING IS PARALLEL TO AXIS, AND IS P12>0
C  LABELLING IS PERPINDICULAR TO AXIS.
C 
      IF(P12.LT.0)GO TO 25
      CALL LDIR(IGCB,1.57)
      YLAB =    (STRT - CHRWY)
      IF(IBUF.EQ.0)YLAB = STRT - (BYTE*CHRWY) 
      CALL MOVE(IGCB,BEGIN,YLAB)
      GO TO 40
C 
C     PARALLEL
C 
25    CALL LORG(IGCB,5) 
      XLAB = BEGIN
      YLAB =    (STRT - CHRHY)
      IF(IBUF.EQ.0)XLAB = XLAB - (HFBYT * CHRWX)
      CALL MOVE(IGCB,XLAB ,YLAB)
      GO TO 40
C 
C     Y - AXIS
C 
50    IF(P12.LT.0)GO TO 55
      XLAB =    (STRT - CHRWX)
      IF(IBUF.EQ.0)XLAB = STRT - (CHRWX * BYTE) 
      CALL MOVE(IGCB,XLAB,BEGIN)
      GO TO 40
55    CALL LDIR(IGCB,4.71)
      CALL LORG(IGCB,5) 
      YLAB = BEGIN
      XLAB =    (STRT - CHRHX)
      IF(IBUF.EQ.0)YLAB = YLAB + (HFBYT *CHRWY) 
      CALL MOVE( IGCB,XLAB,YLAB)
C 
C     OUTPUT LABEL
C 
40    CALL OUTPT(1,IFBUF,2) 
C 
C     DON'T NEED TO MOVE THE PEN BACK WHERE IT WAS FOR AXELS OR TICS    EM1913
C     OR TO TURN CLIPPING BACK ON                                       EM1913
      RETURN
      END 
      END$
                                                                                                                                      