If capturing the cursor keys is the problem and you are using REFLECTION
clients, you might want to try remapping the keyboard (with REFLECTION
commands) at the start of the application, and then mapping the keyboard
back to the "default" values just before the application terminates.
I use this approach in a screen oriented editor I wrote (sort of a subset
of EMACS). I remap the cursor keys, insert/delete keys, home/end, page
up/down, etc. to non-printing characters (in the range 160+). The program
operates with echo-of, (FCONTROL 13), so the application has to echo the
input itself. When the system is really busy, there can be lost
characters, but most of the time it works just fine with the average
typist.
I think the REFLECTION Command Language for setting the cursor keys is
something like:
keymap cpleft to "^(160)"
keymap cpright to "^(161)"
keymap cpup to "^(162)"
keymap cpdown to "^(163)"
To get a list of the current key mapping, use simply:
keymap
Depending upon what else you need to do (and which control characters
you need to have passed through), you may need to use FCONTROL 27 (binary
transfers), FCONTROL 25 (define line termination characters), and
FCONTROL 41 (set unedited terminal mode).
John
--------------------------------------------------------------
John Korb email: [log in to unmask]
Innovative Software Solutions, Inc.
The thoughts, comments, and opinions expressed herein are mine
and do not reflect those of my employer(s), or anyone else.
|