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: MARGIN 
C      SOURCE: 92840 - 18010
C      RELOC:  92840 - 16001
C 
C 
C 
CC*********************************************************** 
C 
      SUBROUTINE XMARG(IND,IGCB,P1,P2,P3,P4,      
     1IP5), 92840-16001 REV.1819 780515 
      DIMENSION VAR(10),ICODE(3)
      EQUIVALENCE (VAR,CHRW),(VAR(2),CHRH),(V1X,VAR(3),G1X) 
      EQUIVALENCE (VAR(4),V1Y,G1Y),(VAR(5),V2X,G2X) 
      EQUIVALENCE (VAR(6),V2Y,G2Y),(AP,VAR(7))
      EQUIVALENCE (VAR(9),CP) 
      EQUIVALENCE (ICODE,ICSIZ),(ICODE(2),IG12),(ICODE(3),IADP) 
      DATA ICSIZ/7/ 
      DATA IG12/8/
      DATA IADP/11/ 
C 
C     THIS IS THE AGL FUNCTIONAL FOR THE MARGIN COMMAND.
C  THE CALLING SEQUENCE IS: 
C     CALL MARGIN(LEFT,RIGHT,BOTTOM,TOP[,UNITS])
C 
C     THE PARAMETERS REPRESENT CHARACTER SPACINGS OR GDUS(UNITS=1)
C 
CCCC
C     THIS CALL ESTABLISHES AN ADDRESS LINK BETWEEN THE GRAPGHICS 
C  PACKAGE AND THE CURRENT GCB AND ALSO CHECKS FOR A SUSPENDED GCB. 
C 
      ISUSP= 0
      CALL GCBIM(99,1,IGCB,ISUSP) 
      IF(ISUSP.NE.0)RETURN
      CALL GCBIM(ICODE,3,VAR,0,1) 
      IF(IP5.LT.0.OR.IP5.GT.1)GO TO 800 
      IF(IP5)100,10,100 
C 
C     CHARACTER SPACINGS- NOW CHECK TO SEE IF ANY OF THE
C  PARAMETERS ARE NEGATIVE AND IF SO VIEWPORT VALUE(V1,V2)
C  IS COMPUTED USING A 90 DEGREE ROTATION OF CHARACTER FROM NORMAL. 
C 
10    X1 = CHRW 
      IF(P1.LT.0)X1 = -CHRH 
      X2 = CHRW 
      IF(P2.LT.0)X2 = -CHRH 
      X3 = CHRH 
      IF(P3.LT.0)X3 = -CHRW 
      X4 = CHRH 
      IF(P4.LT.0)X4 = -CHRW 
C 
C     NOW COMPUTE VIEWPORT VALUES 
C 
90    V2X = (G2X - G1X -(X2 *P2))/AP
      V2Y = (G2Y - G1Y - (X4 * P4))/CP
      V1X = (X1 * P1)/AP
      V1Y =  (X3 * P3) /CP
      CALL VIEWP(IGCB, V1X,V2X,V1Y,V2Y) 
      RETURN
C 
C     GDU'S 
C 
100   X1 = AP 
      X2 = AP 
      X3 = CP 
      X4 = CP 
      GO TO 90
800   CALL PLTER(28)
      RETURN
      END 
      END$
                                                                                                                                                                                                    