delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/03/13/16:45:02

From: buers AT gmx DOT de (Dieter Buerssner)
Newsgroups: comp.os.msdos.djgpp
Subject: Re: bash 2.03 / german umlauts
Date: 13 Mar 2000 16:53:21 GMT
Lines: 42
Message-ID: <8aj6e1$3qe1t$1@fu-berlin.de>
References: <Pine DOT SUN DOT 3 DOT 91 DOT 1000313171151 DOT 25538B AT is>
NNTP-Posting-Host: pec-45-40.tnt3.s2.uunet.de (149.225.45.40)
Mime-Version: 1.0
X-Trace: fu-berlin.de 952966401 4012093 149.225.45.40 (16 [17104])
X-Posting-Agent: Hamster/1.3.13.0
User-Agent: Xnews/03.02.04
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

Eli Zaretskii wrote: 

>I see.  Then I think I know what happens.  The national keyboard support 
>works on the DOS level (it installs a TSR which hooks the DOS interrupt 
>and watches functions which read from the keyboard).  In contrast, Bash 
>uses the termios functions which in their DJGPP implementation read the 
>keyboard through BIOS.  Since the DJGPP implementation of termios 
>doesn't know about national keyboards, it simply doesn't know about 
>those special keys.

I have not looked into the termios code. But is there a reason,
that it uses the BIOS? Does it hook the keyboard interrupt directly?

With the following program:

#include <stdio.h>
#include <bios.h>

int main(void)
{
   unsigned int key;

   do
   {
     key = bioskey(0) & 0xff;
     printf("key 0x%2x: '%c'\n", key, key);
   }
   while (key != 'q');
   return 0;
}

When I type either a-Umlaut ("a, ä for those who can read it),
or Alt-132 I get

key 0x84: '"a' 

So it seems, that national keyboard support is available at the
BIOS level.

In bash, there will be a beep in either case and no screen output.
(And in gdb 4.18 as well)

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019