SUBROUTINE ASKNR (X,RMIN,RMAX,DEFLT,QLO,QHI) C C Original version : R J Carpenter C C This version: J P Lamargot 10-Sep-82 C C+++ C Traduction des messages en francais C Gestion du curseur sur une VT 100 pour C - Ecriture des messages sur la 24eme ligne C - Saisie de la nouvelle reponse au meme endroit C que celle qui etait erronnee, apres effacement de celle-ci C--- C IMPLICIT LOGICAL*1 (Q) C+++ DIMENSION IAM(7) BYTE ASKSAV(3),ASKER2(36),ASKER3(36),ASKER4(34),ASKER5(34) COMMON /ASKCOM/ QS(8) COMMON /ASKER / ASKER2,ASKER3,ASKER4,ASKER5 COMMON /ASKINI/ IAM,ASKSAV C--- C C QL=QLO QH=QHI IF(QLO .AND. RMIN .GT. DEFLT) QL =.FALSE. IF(QHI .AND. RMAX .LT. DEFLT) QH =.FALSE. IF(QLO .AND. QHI .AND. RMAX .GE. RMIN) GOTO 10 QL=QLO .AND. QL QH=QHI .AND. QH C C 10 TYPE 11 C+++ 11 FORMAT(1H+,$' [Reel') C--- IF(QL .EQ. .FALSE. .AND. QH .EQ. .FALSE.) GOTO 40 C C IF (.NOT. QL ) GOTO 30 CALL ASKNLR(RMIN) C+++ DO 300 I = 1,8 ASKER2(25+I) = QS(I) C--- 300 CONTINUE C C C+++ 30 CONTINUE C--- IF( .NOT. QH) GOTO 40 CALL ASKNLR(RMAX) C+++ DO 310 I = 1,8 ASKER3(25+I) = QS(I) 310 CONTINUE C--- C C 40 TYPE 41 C+++ 41 FORMAT(1H+,$' Defaut:') C--- CALL ASKNLR(DEFLT) DO 320 I = 1,8 IF (QS(I).EQ.'*') QS(I) = 3 !Non-printing character 320 CONTINUE C C C+++ TYPE 51,QS 51 FORMAT(1H+,$8A1,$'] ? ') C--- C C C+++ 100 TYPE 60,ASKSAV 60 FORMAT(1H$,3A1) !Save cursor READ(5,111,ERR=150) IC,RIN C--- 111 FORMAT(Q,F12.0) GOTO 200 C C 150 CALL ASKERR(1) GOTO 100 C C 200 IF(IC .NE. 0) GOTO 210 X=DEFLT GOTO 999 C C 210 IF(.NOT. QL) GOTO 220 IF(RIN .GE. RMIN) GOTO 220 CALL ASKERR(2) GOTO 100 C C 220 IF(.NOT. QH) GOTO 900 IF(RIN .LE. RMAX) GOTO 900 CALL ASKERR(3) GOTO 100 C C 900 X=RIN C C 999 CONTINUE C C RETURN C C END