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:   SHOW 
C      SOURCE: 92840 - 18013
C      RELOC:  92840 - 16001
C 
C 
C 
CC*********************************************************** 
C 
      SUBROUTINE XSHOW(IN,IGCB,U3X,U4X,U3Y, 
     1U4Y), 92840-16001 REV.1819 780515 
      DIMENSION VAR(4)
      EQUIVALENCE (VAR,V1X) 
      EQUIVALENCE (VAR(2),V1Y),(VAR(3),V2X),(VAR(4),V2Y)
C 
C 
C     THIS MODULE IS RESPONSIBLE FOR PROCESSING THE AGL COMMAND 
C  SHOW.  SHOW ISOTROPICALLY SCALES USER UNITS U3-U4, GETTING 
C  THE BIGGEST POSSIBLE AREA IN THE REGION OF INTEREST (VIEWPORT) 
C  ON WHICH TO MAP USER UNITS.  ESSENTIALLY SHOW REDEFINES
C  USER UNITS U1-U2 AND DISCARDS U3-U4. 
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
C 
C 
C     GET CURRENT SOFT CLIP LIMITS
C 
      ICODE = 9 
      CALL GCBIM(ICODE,1,VAR,0,1) 
C 
C     LOOK FOR ERRORS 
C 
      IF(U3X.EQ.U4X.OR.U3Y.EQ.U4Y)GO TO 800 
C 
C     COMPUTE THE DELTA X AND Y FOR THE USER UNITS TO DETERMINE 
C MINIMUM SIDE. 
C 
      DXUDU = U4X - U3X 
      DYUDU = U4Y - U3Y 
      DXV = V2X - V1X 
      DYV = V2Y - V1Y 
      DX = ABS(DXV/DXUDU) 
      DY =     ABS(  DYV/DYUDU )
C 
C     NOW DETERMINE WHAT TO ASSIGN TO U1 - U2 
C 
C 
      U1X = U3X 
      U2X = U4X 
      U1Y = U3Y 
      U2Y = U4Y 
C 
C 
20    IF(DX.EQ.DY)GO TO 120 
C 
C            U3,U4 HIT TOP AND BOTTOM EDGES OF VIEW SURFACE 
C     SO ADJUST U3X AND U4X TO OBTAIN MAXIMUM SQUARE. 
C 
100   IF(DX.LT.DY)GO TO 110 
      TEMP=     (  ( ((DXV * DYUDU)/DYV) - DXUDU )/2. ) 
C 
C     SEE U3,U4 ARE REVERSED
C 
      U1X = U3X - TEMP
      U2X = U4X + TEMP
      GO TO 120 
C 
C            U3,U4 HIT LEFT AND RIGHT SIDES THERE ADJUST U3Y AND U4Y
C 
110   TEMP =    (  (((DYV * DXUDU)/DXV) - DYUDU )/2. )
      U1Y = U3Y - TEMP
      U2Y = U4Y + TEMP
C 
C     CALL WINDOW TO COMPUTE TRANSFORMATION CONSTANTS AND 
C  TO ESTABLISH USER UNITS = UDUS 
C 
120   CALL WINDW( IGCB,U1X,U2X,U1Y,U2Y) 
      RETURN
800   CALL PLTER(16)
      END 
      END$
                                                                                                                                                                                            