SUBROUTINE WHERE(X,Y,IPEN) C C This subroutine returns the location of the pen or the C location of the lower left hand corner of the alpha C cursor. The variable IPEN is set to the proper value C if possible, else it is set to 3. C C Note: WHERE is not supported for a Tektronix 4025, C X,Y are returned as the screen center with IPEN = 3. C COMMON /PLTR/ ILun, IDev, IsTerm, IMode, IXMax, IYMax, 1 Cnvrsn, CMag, CnvMag, IX0, IY0, KSetNo, IFancy, IBfDv3, 1 CSize, DeltaH, DeltaV, Upsiln, CosUp, SinUp, WidAdj LOGICAL*1 ESCENQ(2), ESCAM(3), B(7) DIMENSION IB(7) DATA ESCENQ/"33,"5/, ESCAM/"33,'A','M'/ C C - READ IN THE RESPONSE AND GO TO THE PROPER SECTION. GO TO (100,100,1100,2200) IDev C C - TEKTRONIC 4010 & 4014. 100 NIN = 7 CALL TOUTIN(ESCENQ,2,B,NIN,"0) DO 1000 I=2,5 1000 IB(I) = B(I) IX = MOD( IB(2), 32 )*32 + MOD( IB(3), 32 ) IY = MOD( IB(4), 32 )*32 + MOD( IB(5), 32 ) IPEN = 3 IF( IDev .EQ. 1 ) GO TO 2100 IX = IX*4 IY = IY*4 GO TO 2100 C C - TEKTRONIX 4662. 1100 NIN = 7 CALL TOUTIN(ESCAM,3,B,NIN,"0) DO 2000 I=1,7 2000 IB(I) = B(I) IX = MOD(IB(1),32)*128+MOD(IB(3),32)*4+MOD(IB(5),32)/8 IY = MOD(IB(2),32)*128+MOD(IB(4),32)*4+MOD(IB(6),32)/8 IPEN = 3-MOD(IB(7),64)*0.25 C C - CONVERT TO SCALE INCHES RELATIVE TO THE RELOCATABLE ORIGIN. 2100 X = (IX-IX0)/CnvMag Y = (IY-IY0)/CnvMag CALL TOUTPT("37) IMode = 0 RETURN C C - TEKTRONIX 4025. 2200 X = ( IXMAX/2-IX0 )/CnvMag Y = ( IYMAX/2-IY0 )/CnvMag IPEN = 3 IMode = 0 RETURN END