Trailing-Edge
-
PDP-10 Archives
-
decuslib20-04
-
decus/20-0125/lphit.for
There is 1 other file named lphit.for in the archive. Click here to see a list.
SUBROUTINE LPHIT(DISNUM, X, Y)
C************************************************************
C
C THIS ROUTINE IS USED TO RETURN THE DISPLAY NUMBER
C AND USER (X, Y) OF THE NEXT L.P. HIT (I.E. A WAIT
C IS PERFORMED UNTIL A HIT IS DETECTED)
C
C POSSIBLE ERRORS:
C %LIGHT PEN IS NOT ENABLED
C ?INVALID REPLY TO LPHIT (RETURNS DISNUM = 0)
C
C WARNING:
C IF LPHIT IS PRECEDED BY A CALL TO LPOFF
C THE ROUTINE WILL ALWAYS RETURN WITH AN ERROR
C MESSAGE. (THIS COULD ALSO BE AVOIDED BY THE
C GIDUS COMMAND "LE")
C
C ROUTINES CALLED:
C SEND - SENDS A COMMAND TO THE GT40
C GET - RECEIVES A STATUS TRANSMISSION FROM THE GT40
C USERX - RETURNS USER X OF RASTER IX
C USERY - RETURNS USER Y OF RASTER IY
C ERROR - ERROR LOGGING ROUTINE
C
C************************************************************
IMPLICIT INTEGER (A - W, Z)
REAL USERX, USERY
ICMD = 9
IF(DISNUM .EQ. -1) ICMD = 16
100 CALL SEND(ICMD, 0, 0, 0)
CALL GET(STATUS, IX, IY, DISNUM)
IF(STATUS .EQ. "66) GO TO 100
IF(STATUS .NE. 0) GO TO 200
X = USERX(IX)
Y = USERY(IY)
RETURN
200 IF(STATUS .NE. 5) GO TO 300
CALL ERROR('%LIGHT PEN NOT ENABLED',0)
GO TO 400
300 CALL ERROR('%INVALID REPLY TO LPHIT, STATUS =',STATUS)
400 DISNUM = 0
X = 0.
Y = 0.
RETURN
END