lynx-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

lynx-dev Lynx/32 Keyboard Mapping and Conagent


From: Lloyd G. Rasmussen
Subject: lynx-dev Lynx/32 Keyboard Mapping and Conagent
Date: Fri, 19 Feb 99 11:20:52 EST

Hi, Doug, Wayne and others.

I downloaded 2.8.2 dev 16 from the Japanese site,   
 http://jolt.ime.yamagata-cit.ac.jp/
After struggling to find a working lharc.exe to decompress the LZH 
format, changing some .htm to .html files, etc., I got it running.  I 
only tried it on local files, but it does call up Dial-up Networking 
as I would expect.  

With Vocal-Eyes not loaded, Wayne's 2.8.1 does not recognize alt-X as 
an abort  command.  I'm not really sure what was in the distributed 
keymap file for it, but it usually interprets alt-x as x, whether a 
screen reader is loaded or not.  If the screen reader is not loaded, I 
can detect this by the amount of disk activity, and by dial-up 
networking being started up.

The Japanese version, pretty much "out of the box" does respond to 
alt-X by aborting, even with the screen reader loaded.  It also 
includes a Keytest.exe program which shows you what key codes will be 
generated by various keystrokes, and in the case of alt-X, they are in 
agreement with Doug's PDCurses table.  So it appears that I could use 
this version to redefine a lot more keys so they won't conflict with 
DOS screen readers.  The objective is to make Lynx completely 
oblivious to keystrokes on the numeric pad, whether Numlock is on or 
off.  Hopefully, there would still be a way to use the "six-pack" and 
the cursor cross keys after all that remapping.  If I can't get that 
to work, there is always VI key entry for cursor movement.

These machinations are necessary because both builds of Lynx use the 
Microsoft console driver, and like many other 32-bit console 
applications, they appear to be called Conagent.exe.  Appended below 
is the answer I got after inquiring in the Microsoft Accessibility 
Group about the behavior of the conagent subsystem.  The responder no 
longer works for Microsoft.

Normally, DOS screen readers, being terminate and stay resident 
programs, handle the keyboard interrupt before passing it along to an 
underlying application.  In many cases, called "hotkeys" or 
screen reading keys, the screen reader uses the key and does not pass 
it back to the application, where processing it would cause 
unpredictable results.  Conagent and some other DOS programs upset the 
applecart by passing the keystroke on, even though the screen reader 
says not to.  It appears that Microsoft created this problem, but it 
has taken some 3 years for it to be identified, and it is unlikely to 
be fixed.  DOS screen reader development has also nearly stopped, and 
some of the products, such as JAWS, Screen Power and Provox are 
already unsupported freeware.  I hope that by passing along this 
information, we can find a way to at least make Lynx/32 viable for 
more blind Win95 users even as other options are being developed.

From: Steve Donie <address@hidden>
To: "'address@hidden'" <address@hidden>, address@hidden,
        Accessibility Inquiries <address@hidden>
Subject: RE: Conagent.exe and keyboard conflicts
Date: Tue, 29 Sep 1998 11:37:47 -0700
X-Mailer: Internet Mail Service (5.5.2232.9)
Status: R

Hi all,

Steve Donie from Microsoft here.

I just looked at the source for conagent. It's general purpose was described
to me as "It's a glue app used by the console subsystem.  Connects the DOS
console to the Win32 console."

The source for conagent (all assembly by the way) gives some clues as to
what is happening. Conagent does install a DOS keyboard hook. It does store
away the original interrupt vector. I haven't done a lot of assembly, but it
looks like it does it in standard way.

The keyboard hook itself calls the original interrupt vector, so that
shouldn't be the problem, but after calling the original, it continues by
sending the keys it gets on to DOS console. So that could be the problem. I
can think of one possibility for fixing this, but it would require someone
more well versed in DOS keyboard interrupts to verify. Even then, its
possible that it would require a coordinated fix to both conagent and screen
readers. 

I noticed that conagent doesn't check any kind of return value from calling
the original interrupt vector. Perhaps if some register were set (by the
screen reader keyboard hook) saying "ignore the keystroke, its been taken
care of", AND if we made a small patch to conagent to check that register
and not send the keystroke on, then it would work.

This is just a wild (but educated) guess as to what is going on. 

Steve

-----Original Message-----
From: Lloyd G. Rasmussen [mailto:address@hidden
Sent: Thursday, September 24, 1998 6:25 AM
To: address@hidden; Accessibility Inquiries
Subject: Re: Conagent.exe and keyboard conflicts


I have heard this, too, but don't have firsthand experience.  
Microsoft FTP could have been written using their C compiler, some 
combination of C and assembler, etc.  Lynx/32 was compiled with 
Borland 4.52.  I am continuing to forward this thread to 
address@hidden


On Wed, 23 Sep 1998 19:53:31 -0400, 
Victor Tsaran  <address@hidden> wrote:

>One thing that is, however, very interesting. Microsoft's FTP client that 
>comes with WIndows95 does not have any such problems. Other 
>programs, written by ohter people, do. Perhaps there is a library from 
>within Microsoft C++ compiler that need to be called while compiling 
>executables.
>Good question to Microsoft!!!
>Best regards,
>Victor
>

LR Comment:  FTP is using Conagent.  It's just that this doesn't usually cause 
problems, unless you review the screen using ASAP, or perhaps Vocal-Eyes, 
without using the "revector check" or similar keyboard handling option.

                                                                       >
>On 22 Sep 98, at 11:41, Lloyd G. Rasmussen wrote:
>
>This is a recurring problem, and I would like to see Microsoft answer
>some of our questions.  I don't know what conagent does: provide
>network services, 32-bit console services, or what.  Vocal-Eyes
>thinks that all programs that use this service are called
>conagent.exe.
>
>I use Lynx/32, an MPEG Layer III encoder, and other programs in
>Win95 DOS boxes with Vocal-Eyes.  An advantage of V E is that you run
>separate copies of V E in each DOS box you start.  Thus it is no
>problem to turn on Revector Check for the DOS session that is
>running Lynx.  When you quit Lynx, you exit DOS, taking down that
>copy of Vocal-Eyes, which would otherwise misbehave because it is
>playing with the keyboard interrupt handler.  Revector Check does
>prevent review commands from being typed into Lynx, and also enables
>the use of the VE cursor without those arrows bleeding through to
>Lynx.  However, Vocal-Eyes hotkeys which are pressed while outside of
>screen review do go through to Lynx, causing unpredictable results.
>In Lynx, some keys can be remapped.  This is still being worked on
>by the developers of Lynx, but a good solution to key remapping does
>not yet exist.
>
>If you are running ASAP/ASAW all the time, you may end up with a
>messed-up DOS session after Lynx exits.  Janina Sajka at AFB uses
>this setup with ASAP, and she may be able to give you some
>pointers.  But I wish Microsoft would look at how keyboard handling
>is done by conagent.exe and explain to screen reader developers and
>other DOS/32 afficianados how to get clean keyboard behavior out of
>these programs.
>
>
>On Tue, 22 Sep 1998 09:28:49 -0400,
>on Blind-l, Joseph Norton   <address@hidden> wrote:
>
>>I have been trying to use several "console" applications running under Win
>>95 (including pkzip 2.50 Command-Line and lynx_w32).  These programs seem to
>>have one thing in common; they all employ a program under the Windows
>>directory called "conagent.exe".  Every time I try to use a program that
>>requires conagent, my keyboard commands to ASAP get processed by both ASAP
>>and the application.  For example:  When I am running the ftp program (that
>>comes with dial-up networking) if I use the num-pad commands for reviewing
>>the screen, ASAP will review the screen just fine, but, at the ftp> command
>>prompt, I then have a string of 7's 8's and 9's (or any other keyboard
>>command ASAP uses).  After I review the screen, I have to backspace to get
>>all those numbers out.  When I use lynx_w32, the same thing occurs.  I enter
>>commands on the Num-Pad to review the screen (or whatever) and these key
>>strokes get echoed back to lynx as well.  I have tried both ASAP's keyboard
>>interrupt handling methods.  They seem to work the first time lynx is run,
>>but, subsequently, it's as if I never used them.  I have to restart the
>>computer to get this method to work again.
>>
>>Any thoughts?
>>
>>Oh, well, at least I got realplayer working with Lynx_w32 anyway.
>>
>>--Joseph (Joe) Norton <address@hidden>
>>Dalton, Georgia, U.S.A.--The Carpet Capital of the World!
>>
>>This message transmitted on 100% recycled electrons.
>>
>
-- Lloyd Rasmussen
Senior Staff Engineer, Engineering Section
National Library Service for the  Blind and Physically Handicapped
Library of Congress          202-707-0535
(work)       address@hidden    http://www.loc.gov/nls/
(home) address@hidden http://home.sprynet.com/sprynet/lras/      

-- Lloyd Rasmussen
Senior Staff Engineer, Engineering Section
National Library Service for the  Blind and Physically Handicapped
Library of Congress          202-707-0535
(work)       address@hidden    http://www.loc.gov/nls/
(home) address@hidden http://home.sprynet.com/sprynet/lras/      

reply via email to

[Prev in Thread] Current Thread [Next in Thread]