Xref: news2.mv.net comp.os.msdos.djgpp:2758 From: "Markus F.X.J. Oberhumer" Newsgroups: comp.os.msdos.djgpp Subject: ANNOUNCE: libkb -- a low-level keyboard library Date: Mon, 15 Apr 1996 20:17:49 -0700 Organization: Johannes Kepler University Linz Lines: 125 Message-ID: <3173115D.2069@jk.uni-linz.ac.at> NNTP-Posting-Host: pc10.edu.uni-linz.ac.at Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp =============================================================================== Markus F.X.J. Oberhumer Subject: ANNOUNCE: libkb -- a low-level keyboard library =============================================================================== Hello, I'm proud to announce the availability of libkb 0.90, a free, advanced and portable low-level keyboard library ideal for games and all applications that want total control over the keyboard. - Allows access to ALL keys and ALL key combinations. - Also handles Pause key and Control-Break. - Practical kbhit()/getkey() like interface for textual input. - Intelligent signal handling and emercency-exit feature to achieve a maximum of robustness. - Easy to use. Written entirely in C without assembler code. - Comes with full source, example programs and documentation. - libkb is known to run on the following platforms: Linux 1.2.x with gcc MSDOS with Borland C v3.1/v4.0 (16 bit) MSDOS with djgpp v1 + gcc (32 bit) MSDOS with djgpp v2 + gcc (32 bit) MSDOS with Watcom C v10.5 (32 bit) Have fun, Markus Availability ------------ The latest version of libkb should always be available at the following sites (and their mirrors): primary MSDOS sites: ftp://x2ftp.oulu.fi/pub/msdos/programming/libs/libkb090.zip ftp://ftp.coast.net/SimTel/msdos/c/libkb090.zip primary Linux sites: ftp://tsx-11.mit.edu/pub/linux/sources/libs/libkb-0.90.tar.gz ftp://sunsite.unc.edu/pub/Linux/libs/libkb-0.90.tar.gz Note that all distributions contain the same files. They are just packed with different archivers, zip and tar+gzip respectively. From the documentation: ----------------------- libkb is a free, advanced and portable low-level keyboard library for MSDOS and Linux. It has the following highlights: - it's advanced Allows access to ALL keys and ALL combinations of them. You can individually test left and right Shift and Control, Alt and AltGr, cursor keys, the keypad and everything else you always wanted. Also handles Pause key and Control-Break. Supports virtual terminal switching under Linux. Ideal for games and all applications that want total control over the keyboard. - it's practical Builtin kbhit()/getkey() like interface that allows you to easily read the keyboard for text input, highscore names or cheat codes. - it's portable Works under MSDOS and Linux. Written entirely in C without assembler code. Supports Borland C v3.1 and 4.0 (16 bit), Watcom C v10.5 (32 bit), djgpp v1 + v2 (32 bit) and Linux gcc. Should port very easy to Microsoft C and other MSDOS compilers. - it's safe The library tries to remove its keyboard handler when a program terminates or crashes. For this purpose it installs some intelligent signal handlers and uses the atexit() function to achieve a maximum of robustness. Support for an emergency-exit key sequence is provided - this is really useful during development. Interrupt handler memory in virtual memory environments is locked. - it's easy to use The core interface consists of only a handful of functions and variables. Care has been taken not to pollute the global namespace. Example programs are included as well. - it's free Comes with full source code and documentation. And yes, you can use it in your commercial applications (no GPL restrictions). And the following restrictions: - it's beta This means that there may be bugs. Also, I've only access to German keyboards with 102 keys, and the library has not been tested in a continuous 10 hour arcade game session yet. - it's americanized As the library hooks the keyboard interrupt, individual keys read with kb_getkey() return hardcoded ASCII values for the scancodes. These are valid for American keyboards only, e.g. on a German keyboard Y and Z seem exchanged. In the beginning I had planned to include support for local key mappings, but this soon started to become too complex. Most advanced games suffer this problem. - it's software Unfortunately the keyboard controller hardware was not designed with heavy action in mind. This means that there are various key combinations that cannot be pressed at the same time - the keyboard controller just won't handle them. Nevertheless libkb makes all information the hardware is able to generate available to an application and the test program shows you when an 'overflow' occurs so that you can setup safe default keys for your games.