Hi,

we (Willi Spiegl) have a machine, where depending on the the FreeDOS boot menu 
selection, keys on his german keyboard like {}[] are not recognized.

I remotely narrowed this down to the extended keyboard flag at 0040:0096 
getting cleared (to me randomly). Normally for Willis machine, the byte at 
0040:0096 contains value 10h, indicating the extended keyboard being present. 
Recent mKeyb versions make use of this flag [1]. Loading mKeyb with parameter 
/E indeed fixes the problem.

However, right after the kernel is loaded and the boot menu option was chosen, 
even before the first device driver is being loaded, the byte at 0040:0096 is 
set to zero depending on the boot option (is set to zero if boot option 3 is 
chosen), making mKeyb auto detection fail. Willi put as first device a test 
program [2] of mine indicating whether the extended flag is set.

I have no explanation why the byte at 0040:0096 gets changed. In the kernel 
source I found no obvious place where this byte gets written (and see no reason 
why it should).

It's hard for me to debug this without the machine being at my hands. Anyone 
with a clever idea how Willi may narrow this down further? 


[1] 
https://github.com/davidebreso/mkeyb/blob/518d24d578dcb094b7f74800cd982bb4e4b7178b/mkeyb.c#L233
[2] https://nextcloud.iww.rwth-aachen.de/index.php/s/LJBx5cdkbiFtksk

Bernd



_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to