



      LOGICAL FUNCTION GVFDFN(INT1,INT2,IDIFF)














      IMPLICIT      NONE
      INTEGER       INT1, INT2, IDIFF





      GVFDFN=ABS(INT1-INT2).EQ.IDIFF





      RETURN
      END
      LOGICAL FUNCTION GVFEND(TEXT)











      IMPLICIT      NONE
      CHARACTER*(*) TEXT





      GVFEND=TEXT(1:4).EQ.'END '.OR.
     +       TEXT(1:5).EQ.'EXIT '.OR.
     +       TEXT(1:6).EQ.'FUCKOF'.OR.
     +       TEXT(1:5).EQ.'STOP '.OR.
     +       TEXT(1:5).EQ.'HALT '.OR.
     +       TEXT(1:6).EQ.'SCHEIS'.OR.
     +       TEXT(1:5).EQ.'SHIT '.OR.
     +       TEXT(1:5).EQ.'CACA '





      RETURN
      END
      LOGICAL FUNCTION GVFEVN(ICON)













      IMPLICIT      NONE
      INTEGER       ICON





      GVFEVN=(MOD(ICON,2).EQ.0)





      RETURN
      END
      LOGICAL FUNCTION GVFIBN(ICON1,ICON2,ICON3)













      IMPLICIT      NONE
      INTEGER       ICON1, ICON2, ICON3





      GVFIBN=(ICON1.GE.ICON2 .AND. ICON1.LE.ICON3) .OR.
     +       (ICON1.GE.ICON3 .AND. ICON1.LE.ICON2)





      RETURN
      END
      LOGICAL FUNCTION GVFIIN(ICON1,ICON2,ICON3)













      IMPLICIT      NONE
      INTEGER       ICON1, ICON2, ICON3





      GVFIIN=(ICON1.GT.ICON2 .AND. ICON1.LT.ICON3) .OR.
     +       (ICON1.GT.ICON3 .AND. ICON1.LT.ICON2)





      RETURN
      END
      LOGICAL FUNCTION GVFODD(ICON)













      IMPLICIT      NONE
      INTEGER       ICON





      GVFODD=(MOD(ICON,2).EQ.1)





      RETURN
      END
      LOGICAL FUNCTION GVFRIN(CON1,CON2,CON3)













      IMPLICIT      NONE
      REAL          CON1, CON2, CON3





      GVFRIN=(CON1.GE.CON2 .AND. CON1.LE.CON3) .OR.
     +       (CON1.GE.CON3 .AND. CON1.LE.CON2)





      RETURN
      END
      LOGICAL FUNCTION GVFYON(TEXTIN,HELPTXT)












      IMPLICIT      NONE
      INCLUDE       'BIGINC.INC'
      INTEGER       IERCNT, LENTXT, I, IERR, GVFLEN, GVFPOS
      CHARACTER*(*) TEXTIN, HELPTXT
      CHARACTER*1   YORNIN,TXTROW(100)
      CHARACTER*100 TXTOUT
      CHARACTER*6   YORNTX
      CHARACTER*80  LOCTXT, TEXT
      SAVE          YORNTX
      EQUIVALENCE   (TXTOUT,TXTROW(1))
      DATA YORNTX   /'Y/N ? '/







      CALL GVSSTX (TEXT,TEXTIN)



      IERCNT=0
   10 CONTINUE



      LENTXT=GVFLEN(TEXT)
      CALL GVSCTB (TXTROW,100)
      DO 20 I=1,LENTXT
         TXTROW(I)=TEXT(I:I)
   20 CONTINUE
      TXTROW(LENTXT+1)=' '
      IF (GVFPOS(TEXT,'Y/N').EQ.0) THEN
         DO 30 I=LENTXT+2,LENTXT+7
            TXTROW(I)=YORNTX(I-LENTXT-1:I-LENTXT-1)
   30    CONTINUE
         LENTXT=LENTXT+6
      END IF
   40 CONTINUE
      CALL IPROMPT (TXTOUT)



      CALL GETWORD (LOCTXT,IERR)
      IF (IERR.NE.0) THEN
         IF (WIFPAR(392).NE.0) THEN
            GVFYON=.TRUE.
            GOTO 998
         END IF
         IF (HELPTXT(1:1).NE.' ') THEN
            CALL GVSNL6 (1)
            CALL SHOWTEXT (HELPTXT)
            CALL GVSNL6 (1)
         END IF
         IERCNT=IERCNT+1
         IF (IERCNT.GT.5) THEN
            GVFYON=.FALSE.
            CALL FLUSHAHEAD
            GOTO 998
         END IF
         GOTO 40
      END IF



      YORNIN=LOCTXT(1:1)
      CALL GVSCUC (YORNIN)
      IF (YORNIN.NE.'N'.AND.YORNIN.NE.'Y') THEN
         IF (WIFPAR(392).NE.0) THEN
            GVFYON=.TRUE.
            GOTO 998
         END IF
         CALL FLUSHAHEAD
         CALL GVSTTE ('?M0732')
         GOTO 10
      END IF



      GVFYON=YORNIN.EQ.'Y'



 998  CONTINUE


      RETURN
      END
