From: Robert Baer
X-Mailer: Mozilla 4.75 [en] (Win98; U)
Subject: Re: How does a computer keyboard generate ASCII code or signals?
Date: Wed, 18 Sep 2002 08:23:14 GMT
NNTP-Posting-Date: Wed, 18 Sep 2002 01:23:14 PDT
Organization: EarthLink Inc. -- http://www.EarthLink.net
"Dr. M Gani" wrote:
> Hello everyone. I am an old man, with a secret envy for you young
> people with the mesmerizing skills of cybernetic technology. The
> ignorant users like me need dumb ways of doing things, and you people
> have the exciting job of making complex designs behind the user
> I apologize to you all in case this sounds like an advertisement. As
> an economist and business consultant, I think that there is a large
> latent demand for easier-to-use computer keyboards. So if anyone has
> experience of designing keyboards, please discuss how the keyboard
> sends signals to the computer. If (as I suspect) this is too elmentary
> and boring stuff for this board, please advise me privately. Also,
> please let me know if you can design a new keyboard with, say, 56
> character keys, each of which will generate 4 different characters (eg
> with pressing the key, shift+key, specialkey1+key and
> specialkey2+key). I know I can press (alt+ASCII number) to generate
> any character, but I find this user-hostile. We old idiots would much
> rather shell out a few bucks to avoid learning complex things you
> enjoy, but we want the comfort you make possible by your magical
> machines!! I am sorry we cannot offer anything exciting other than the
> nasty thing known as money.
> All of you have fun.
> M Gani
As far as generating different "characters", that is already done on
most keys: a letter key modified by state of shift, by control, and by
the alt key for a possible 8 variations (each).
There is a rather old-fashioned 8-bit microcontroller (8048 if i
remember correctly) that is used in the keyboards that is used to scan
the keys (which are wired in a matrix to the controller).
The output is a serial stream representing the state of the keys (to a
point, ignore "unususal" cases where multiple letter keys are
Those 8 possible variations are reduced, both in the microcontroller
program (not available) as well as in the BIOS.
The BIOS has a lot of complex code that sorts this out and determines
if a given combo got pressed or got released and may ignore certain
events (the "unusual" cases and then some); converting the codes to
related one or two byte codes for the OS.
I still have an original copy of the first IBM tech reference manual
which includes schematics and BIOS listings of the first IBM PC/XT: 16K
soldered in the motherboard (IBM calls it a "feature") which can accept
a maximum of 64K.
Let me know via e-amil if any of that might be useful, but please do
not ask for too many pages, as it takes a long time for scanning.