unified some functions with fit. M.Z.
This commit is contained in:
52
tecs/sys_get_key.f
Normal file
52
tecs/sys_get_key.f
Normal file
@@ -0,0 +1,52 @@
|
||||
!!-----------------------------------------------------------------------------
|
||||
!!
|
||||
subroutine SYS_GET_KEY(KEY, TMO) !!
|
||||
!!
|
||||
!! read for keyboard with timeout, without echo
|
||||
!!
|
||||
character KEY*1 !!
|
||||
integer TMO !! timeout in seconds (<100)
|
||||
|
||||
character esc*1, csi*1, ss3*1
|
||||
|
||||
esc=char(27)
|
||||
csi=char(155)
|
||||
ss3=char(143)
|
||||
|
||||
call sys_get_raw_key(key, tmo)
|
||||
1 if (key .eq. esc) then
|
||||
call sys_get_raw_key(key, tmo)
|
||||
if (key .eq. 'O') then
|
||||
key=ss3
|
||||
goto 1
|
||||
elseif (key .eq. '[') then
|
||||
key=csi
|
||||
goto 1
|
||||
endif
|
||||
elseif (key .eq. csi) then
|
||||
call sys_get_raw_key(key, tmo)
|
||||
do while (key .ge. '0' .and. key .le. '9')
|
||||
call sys_get_raw_key(key, tmo)
|
||||
enddo
|
||||
key=' '
|
||||
elseif (key .eq. ss3) then
|
||||
call sys_get_raw_key(key, tmo)
|
||||
if (key .eq. 'm') then
|
||||
key='-'
|
||||
elseif (key .eq. 'l') then
|
||||
key='+'
|
||||
elseif (key .eq. 'n') then
|
||||
key='.'
|
||||
elseif (key .eq. 'M') then
|
||||
key=char(13)
|
||||
elseif (key .eq. 'S') then
|
||||
key='*'
|
||||
elseif (key .eq. 'R') then
|
||||
key='/'
|
||||
elseif (key .eq. 'Q') then
|
||||
key='='
|
||||
else
|
||||
key=' '
|
||||
endif
|
||||
endif
|
||||
end
|
||||
Reference in New Issue
Block a user