home *** CD-ROM | disk | FTP | other *** search
- SUBROUTINE GSGIN(X,Y,BCHAR,IERR)
- IMPLICIT NONE
- REAL X,Y,DUMMY
- INTEGER IERR
- INTEGER*1 IAND
- INTEGER*1 BCHAR
- C
- C THIS DIGLIB SUBROUTINE TRIES TO GET GRAPHIC INPUT (GIN) FROM
- C THE CURRENTLY SELECTED DEVICE. IF THE DEVICE IS NOT CAPABLE
- C OF GIN, IERR=-1. FOR GIN DEVICES, IERR=0 AND:
- C X = X POSITION OF CURSOR IN ABSOLUTE SCREEN CM.
- C Y = Y POSITION OF CURSOR IN ABSOLUTE SCREEN CM.
- C BCHAR = CHARACTER STUCK AT TERMINAL TO SIGNAL CURSOR HAS
- C BEEN POSITIONED (BYTE).
- C
- INCLUDE DIGLIB$KOM:GCDCHR.PRM
- INCLUDE DIGLIB$KOM:GCDPRM.PRM
- REAL*4 ARRAY(3)
- INTEGER*1 SPACE
- DATA SPACE /' '/
- C
- C SEE IF DEVICE SUPPORTS GIN
- C
- IF (IAND(IDVBTS,128) .EQ. 0) GO TO 900
- C
- C NOW ASK FOR GIN FROM DEVICE DRIVER
- C
- CALL GSDRVR(9,ARRAY,DUMMY)
- C
- C CONVERT ABSOLUTE CM. COORD. TO VIRTUAL CM. COORDINATES
- C
- CALL GSIRST(ARRAY(2),ARRAY(3),X,Y)
- C
- C GET CHARACTER AS 7 BIT ASCII
- C
- IF (ARRAY(1) .LT. 0.0 .OR. ARRAY(1) .GT. 127.0) GOTO 110
- BCHAR = CHAR(INT(ARRAY(1)))
- GOTO 120
- C ELSE
- 110 CONTINUE
- BCHAR = SPACE
- C ENDIF
- 120 CONTINUE
- IERR = 0
- RETURN
- C
- C DEVICE DOESN'T SUPPORT GIN
- C
- 900 IERR = -1
- RETURN
- END
-