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: CLPON\CLPOF COMMANDS 
C      SOURCE: 92840 - 18012
C      RELOC:  92840 - 16001
C 
C 
C 
CC*********************************************************** 
C 
      SUBROUTINE XCLPN(IN,IGCB), 92840-16001 REV.1840 780811
C 
CCCC
C 
C        IN=1 INDICATES CLPON CALL   IN=2 INDICATES CLPOF CALL          EM1840
C 
      DIMENSION TFORM(10),ICODE(3)                                      EM1840
C         ICODE WILL CONTAIN THE INDICES INTO IGTBL                     EM1840
C         TFORM WILL RECIEVE THE INFORMATION REQUESTED FROM THE GCB     EM1840
C 
      REAL XPHYS,YPHYS                                                  EM1840
C         XPHYS AND YPHYS WILL RECIEVE THE CALCULATED LOGICAL POSITION  EM1840
C 
      EQUIVALENCE (TFORM(1),CPX),(TFORM(2),CPY),(TFORM(3),A),           EM1840
     1            (TFORM(4),B),(TFORM(5),C),(TFORM(6),D),               EM1840
     2            (TFORM(7),LOWRX),(TFORM(8),LOWRY),                    EM1840
     3            (TFORM(9),UPPRX),(TFORM(10),UPPRY)                    EM1840
C         CPX,CPY - THE CURRENT PEN POSITION IN MACHINE UNITS FROM GCB  EM1840
C         A,B,C,D - THE MU/NDC OR MU/WC TRANSFORM COEFFICIENTS FROM GCB EM1840
C 
C         THIS CALL ESTABLISHES AN ADDRESS LINK BETWEEN THE GRAPHICS
C         PACKAGE AND THE CURRENT GCB AND ALSO CHECKS FOR A 
C         SUSPENDED GCB.
      ISUSP= 0
      CALL GCBIM(99,1,IGCB,ISUSP) 
      IF(ISUSP.NE.0)RETURN
C 
      GO TO(100,200),IN 
C 
C 
C     TURN ON SOFT CLIPPING BY SETTING BIT 2 OF STATUS WORD = 1 
100   CALL GRSTS(2,77773B,4)
      RETURN
C 
C 
C 
C         TURN OFF SOFT CLIPPING BY SETTING BIT 2 OF STATUS WORD = 0    EM1840
 200  CALL GRSTS(2,77773B,0)
C 
C         IF THE CURRENT POSITION IS OUTSIDE SOFT CLIPPING BOUNDARIES,  EM1840
C         THE PHYSICAL PEN AND THE CP MAY NOT AGREE, SO MOVE THE        EM1840
C         PHYSICAL PEN TO AGREE WITH THE CP IN THIS CASE.               EM1840
C         SET THE INDICES TO THE GCB POINTER TABLE AND REQUEST THE DATA EM1840
C         POINTER 18 IS TO THE LOGICAL PEN (I.E. CP) INDEX. FUNCTION    EM1840
C         IADCD RETURNS POINTER TO MU/NDC OR MU/WC TRANSFORMS,          EM1840
C         DEPENDING ON CURRENT MODE, GDU OR UDU.  POINTER 10 IS TO      EM1840
C         THE SOFT CLIPPING BOUNDARIES INDEX.                           EM1840
      ICODE(3)=10                                                       EM1840
      ICODE(2)=IADCD(DUMMY)                                             EM1840
      ICODE(1)=18                                                       EM1840
      CALL GCBIM(ICODE,3,TFORM,0,1)                                     EM1840
C 
C         CHECK TO SEE IF THE CURRENT PEN POSITION IS OUTSIDE THE SOFT  EM1840
C         CLIPPING BOUNDARIES. IF IT ISN'T THE PHYSICAL PEN POSITION    EM1840
C         SHOULD BE FINE AS IS, SO DO NOTHING MORE.                     EM1840
C 
C         IF IT IS OUTSIDE, MAKE THE MOVE.                              EM1840
      IF (CPX.LT.LOWRX) GO TO 300                                       EM1840
      IF (CPX.GT.UPPRX) GO TO 300                                       EM1840
      IF (CPY.LT.LOWRY) GO TO 300                                       EM1840
      IF (CPY.GT.UPPRY) GO TO 300                                       EM1840
C 
C         IT IS INSIDE SO NO MOVE IS NECESSARY                          EM1840
      GO TO 500                                                         EM1840
C 
C         TRANSFORM FROM MACHINE UNITS TO NDC OR WC UNITS               EM1840
 300  XPHYS = (CPX-B)/A                                                 EM1840
      YPHYS = (CPY-D)/C                                                 EM1840
C 
C         MOVE PEN TO CALCULATED POSITION SO LOGICAL AND PHYSICAL MATCH EM1840
      CALL MOVE(IGCB,XPHYS,YPHYS)                                       EM1840
C 
 500  RETURN                                                            EM1840
      END 
      END$
                                                                                                                                                                    