      SUBROUTINE ASREAD3(nzones,ixzone,iyzone,itypzone,izone,ipf)
      INCLUDE 'Parametres.f'
      integer ixzone(2,*),iyzone(2,*),itypzone(*),lescurseurs(20)
      data lescurseurs / 1, 2, 3, 4, 5, 6, 7, 8, 9, 2
     &                 ,11,12,13,14,15,16,17,18,19,20 /
C 
 9999 continue
      call getxycx11(iev,ixposcurs,iyposcurs
     &                  ,ixposcurs_root,iyposcurs_root)
c
c on bouge
c
      izone = 0
      if (iev.eq.-1) then
        do i=1,nzones
          if (ixposcurs.ge.ixzone(1,i)
     &   .and.ixposcurs.le.ixzone(2,i)
     &   .and.iyposcurs.ge.iyzone(1,i)
     &   .and.iyposcurs.le.iyzone(2,i)) izone = i
        enddo
        if (izone.eq.0) then
          if (icurseur_courant.ne.12) call change_curs(12)
        elseif(lescurseurs(iabs(itypzone(izone))).ne.icurseur_courant
     &    .and.itypzone(izone).ne.0) then
          call change_curs(lescurseurs(iabs(itypzone(izone))))
        endif
        ipf = -9999
c
c on clique
c
      elseif(iev.eq.251) then
        do i=1,nzones
          if (ixposcurs.ge.ixzone(1,i)
     &   .and.ixposcurs.le.ixzone(2,i)
     &   .and.iyposcurs.ge.iyzone(1,i)
     &   .and.iyposcurs.le.iyzone(2,i)) izone = i
        enddo
        ipf = -iev
c
c Double click
c
      elseif(iev.eq.261) then
        do i=1,nzones
          if (ixposcurs.ge.ixzone(1,i)
     &   .and.ixposcurs.le.ixzone(2,i)
     &   .and.iyposcurs.ge.iyzone(1,i)
     &   .and.iyposcurs.le.iyzone(2,i)) izone = i
        enddo
        ipf = -7777
c
c on clique un autre bouton (a faire)
c
      elseif(iev.eq.252.or.iev.eq.253) then
c
c souris a roulette
c
      elseif(iev.eq.254.or.iev.eq.255.or.iev.eq.264.or.iev.eq.265) then
        do i=1,nzones
          if (ixposcurs.ge.ixzone(1,i)
     &   .and.ixposcurs.le.ixzone(2,i)
     &   .and.iyposcurs.ge.iyzone(1,i)
     &   .and.iyposcurs.le.iyzone(2,i)) izone = i
        enddo
        ipf = -iev
c
c on tape (8 backspace, 9 tab, 13 return, 27 esc)
c
      elseif(iev.ge.32.and.iev.le.127
     &       .or.iev.eq.8.or.iev.eq.9.or.iev.eq.13.or.iev.eq.27) then
        do i=1,nzones
          if (ixposcurs.ge.ixzone(1,i)
     &   .and.ixposcurs.le.ixzone(2,i)
     &   .and.iyposcurs.ge.iyzone(1,i)
     &   .and.iyposcurs.le.iyzone(2,i)) izone = i
        enddo
        ipf = iev
c
c essai de ASCII 8bit
c
Cfj      elseif(iev.lt.0.and.iev.ge.-127) then
Cfj        ipf = 256-iev
c
c autres touches (fleches, pf, pgdown, ctrl, shift...)
c
      elseif(iev.gt.1000) then
        do i=1,nzones
          if (ixposcurs.ge.ixzone(1,i)
     &   .and.ixposcurs.le.ixzone(2,i)
     &   .and.iyposcurs.ge.iyzone(1,i)
     &   .and.iyposcurs.le.iyzone(2,i)) izone = i
        enddo
        ipf = iev
      else
cccc        print*,'iev autre',iev
        goto 9999
      endif
      end
