Mail Archives: djgpp/1996/04/16/03:25:39
Xref: | news2.mv.net comp.os.msdos.djgpp:2758
|
From: | "Markus F.X.J. Oberhumer" <markus DOT oberhumer AT jk DOT uni-linz DOT ac DOT at>
|
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
|
To: | djgpp AT delorie DOT com
|
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp
|
===============================================================================
Markus F.X.J. Oberhumer <markus DOT oberhumer AT jk DOT uni-linz DOT ac DOT at>
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.
- Raw text -