Hi all, wow this topic is quite interesting and i agree with you guys, also i got something that might help the OP even though am not very sure if it'll fits well into this context but i'll give it a trial.
I do not know which part in my computer does this translation ( is it the CPU or ....????) |
well looking at basic input output there is infact a section of the hardware available solely for this functionality , the BIOS houses a storage location{bios data area} which includes a ROM that store a lot of info including ASCI codes {+ others} and their corresponding scan codes{sc} from the keyboard and some extended keys{f1,fn,...}, it also store addresses to available ports, video mode currently in use, list of installed hardware e.t.c
This data area also houses some writable buffers such as video buffers, keyboard buffer{typhd buff}
so AFiK when you press a key on the keyboard there are a series of action that must occur
1. The keyboard sends a message{a scan code} to its local address port .
2. This message activates an interrupt routine of high priority which the cpu responds to
with a bios function call that retrieves the scan code from the port .
3. the code is used for lookup to retrieve it's corresponding asci symbol mostly stored in
hex/bin format.
4. Both the code and the asci value are then stored in the keyboard buffer awaiting
to be retrieved by the running application .
Note that some hardware might also allow you to change the software controlling the BIOS through upgrades...
hope that makes sense <>:)