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$