Gereon Ruetten <[EMAIL PROTECTED]> writes:

> "Eric W. Biederman" wrote:
>  
> > dosemu-0.99.13.eb1.1 is a preliminary patch of my ongoing
> > work to improve the keyboard code in dosemu.
> 
> 
> first of all, many thanks to Eric for taking time to solve
> the keyborad code problem.
> 
> I compiled the "eb" Version (with some little warnings, see below))
> 
> after installing and starting dosemu says "key_table -> sizemap = 97"
> (it doesn�t depend on running "local" or "over telnet")
> 
> When i try to use (Umlaute (german keyboard "ae,ue,oe,ss")) it WORKS !!!
> 
> GREAT !!!!
> 
> but :
> 
> Backspace didn�t work proper (it does without the patch)
> 
> A dos keyboard scan program says :
> 
> with patch :          without the patch :
> Scan    : 14          14
> AscII   : 0x7f                0x08
> KeyIdnt : \127                \270
> 

I haven't been able to reproduce this (yet), but I believe I know what
is going on.   It looks like the german keymap is messed :(
I now actually obey the keymap better. . .

I'm not certain why the us keyboard currently works, it's mapping
looks equally messed. 
Anyway in the user overloadable keymappings, this should fix the delete:

 #keytable de
 keytable keyb-user {
   0=
-     0,27,"1234567890",225,39,127,9,
+     0,27,"1234567890",225,39,8,9,
      "qwertzuiop",129,"+",13,0,"as",
      "dfghjkl",148,132,"^",0,"#yxcv",
      "bnm,.-",0,"*",0," ",0,0,0,0,0,0,
      0,0,0,0,0,0,0,0,0,0,"-",0,0,0,"+",0,
      0,0,0,0,0,0,"<",0,0,0,0,0,0,0,0,0,
      0
   shift 0=
-     0,27,"!",34,156,"$%&/()=?",96,127,9,
+     0,27,"!",34,156,"$%&/()=?",96,8,9,
      "QWERTZUIOP",154,"*",13,0,"AS",
      "DFGHJKL",153,142,248,0,39,"YXCV",
      "BNM;:_",0,"*",0," ",0,0,0,0,0,0,
      0,0,0,0,0,0,0,0,0,0,"-",0,0,0,"+",0,
      0,0,0,0,0,0,">",0,0,0,0,0,0,0,0,0,
      0
   alt 0=
      0,0,0,253,252,0,0,0,"{[]}",92,0,0,0,
      "@",0,0,0,0,0,0,0,0,0,0,"~",13,0,0,0,
      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,230,0,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
      0,0,0,0,0,0,"|",0,0,0,0,0,0,0,0,0,
      0
   numpad 0=
      "789-456+1230,"
 }



> and many other keys also reports other (false) dos scancodes as in the previous 
>version

Hmm. Hopefully it is problems in the keyboard mappings.
I have a regression test around for standard us keymappings.


> also the ibm-display codes (e.g. for norton commander) didn�t
> work (with the same dosemu.conf and without the patch -> no problem)

This may be due to a typo.  I'll look into it shortly.
I can just about reproduce that one.

The problem is either a logic but in src/env/video/terminal.c
function: set_char_set (It pretty simple. . .)
Or a bug in the mappings to unicode one of: 
src/base/translate/ibm_ascii.c
src/base/translate/cp437.c

Currently I map cp437_display to cp437_terminal.
for the ibm display.

I haven't yet run a regression check to make certain 
this results in the same display mappings as in src/env/video/terminal.h

I'm currently breaking my huge patch into a number of smaller ones.
So I can determine by backing out patches which patch introduced
the problem.

Once thats done I'll see what I can fix.

Eric


Thanks I'll clean these up as I break the patches up.
> 
> > Testers wanted.
> 
> tell me what to do, and i will try to help, because its important for me
> to get it work !
> 
> "Errors" while compiling the eb Version
> 
> serv_xlat.c: In function `init_scancode_translation_rules':
> serv_xlat.c:530: warning: unused variable `j'
Me.

> keymaps.c:22: warning: `is_a_console' declared `static' but never defined
> keymaps.c:23: warning: `open_a_console' declared `static' but never defined
> keymaps.c:24: warning: `getfd' declared `static' but never defined
> keymaps.c:25: warning: `dosemu_val' declared `static' but never defined
Temporarily commented out code to read the console keymap.

> keyb_slang.c:41: warning: type defaults to `int' in declaration of `pc_scancode_mode'
Oops. forgot a return type.

> keyb_clients.c: In function `paste_run':
> keyb_clients.c:49: warning: unused variable `ch'

> translate.c: In function `charset_to_unicode':
> translate.c:261: warning: comparison is always 1 due to limited range of data type
It doesn't like comparint unsigned values to >=0 but the code is clearer...

> translate.c: At top level:
> translate.c:298: warning: `get_ctext_char_set_piece' defined but not used
> translate.c:324: warning: `interpret_ctext_control' declared `static' but never 
>defined
Code for handling multi character set pasting in X.
Not yet completed.



Reply via email to