===============================================================================
ChangeLog for libkb -- a free, advanced and portable low-level keyboard library
===============================================================================

Changes in 1.01 (03 Jun 1998): public release
  + build changes: Autoconf + Automake + Libtool
  + added kb_handler_mediumraw_callback
  + emergency exit: also allow LControl-RMenu-C because LControl-RControl-C
    will cause a controller overflow on some new Windows95 keyboards
  + emergency exit: raise SIGBREAK if SIGINT-handler returns
  + djgpp v1: also use _go32_info_block.master_interrupt_controller_base
  + new compiler supported: Microsoft C 7.0 (16 bit)
  + use SEAL audio library in the tube demo
  - changed scancodes of Windows95 keys to match Linux MEDIUMRAW
  - fixed _kb_shift settings when using KB_FLAG_LINUX_VT_NO_KEY
  - djgpp v1: ignore KB_FLAG_DJGPP_NO_RM

Changes in 1.00 (23 Jul 1996): first production release
  + documentation updated
  + some cleanups

Changes in 0.92.4 (22 Jul 1996)
  + djgpp v2: use _go32_info_block.master_interrupt_controller_base
  + djgpp v2: tested PMODE/DJ 1.0

Changes in 0.92.3 (27 Jun 1996)
  + added kb_handler_callback
  - _kb_iswin() now returns the Windows version

Changes in 0.92.2 (03 Jun 1996)
  + djgpp v2: use ___djgpp_hw_exception for emergency exit
  + tube demo: split into 2 files, added support for Allegro library

Changes in 0.92.1 (29 May 1996)
  + Linux: use MEDIUMRAW on non Intel architectures

Changes in 0.91.9 (14 May 1996)
  + djgpp v2: do not catch SIGNOFP as this is used internally
  + added KB_FLAG_LINUX_VT_NO_KEY

Changes in 0.91.8 (04 May 1996)
  - Watcom C: fixed an error in DPMI memory locking
  + better color matching with the ncurses library
  + some changes in tube.c

Changes in 0.91.7 (26 Apr 1996)
  + some cleanups

Changes in 0.91.6 (24 Apr 1996)
  + added _kb_lock_module in kbmlock.h
  + lots of internal changes in kbmlock.c

Changes in 0.91.5 (23 Apr 1996)
  + Linux: a.out and ELF shared library targets should be working

Changes in 0.91.4 (21 Apr 1996)
  + created config directory
  + Linux: makefiles changed, added support for shared libraries
       (a.out and ELF, working but still considered experimental)

Changes in 0.91.3 (19 Apr 1996)
  + Linux: some source rearrangements: split _kblinux.h into two files,
       re-introduced support for MEDIUMRAW (but don't activate it)
  + precompute all keycodes in mktables.c
  - corrected keycode for Shift-Tab
  + samples/keycodes.c prints the keynames by default

Changes in 0.91.2 (18 Apr 1996)
  + makefiles changed, added Makefile.lnx
  + added util/vt.c (internal test program)

Changes in 0.91.1 (09 Apr 1996)
  - Linux: be even more restrictive when switching VTs
  + Linux: pause and resume the alarm timer (KB_FLAG_EMERGENCY_SIGALRM)
      when switching VTs
  + Linux: 8.c: use TCSANOW instead of TCSAFLUSH

Changes in 0.90 (23 Mar 1996): final beta release
  + documentation updated
  + some cleanups

Changes in 0.63 (07 Mar 1996)
  + added KB_FLAG_EMERGENCY_SIGALRM
  + added samples/sigalrm.c

Changes in 0.62 (06 Mar 1996)
  + added memory locking for Watcom C32

Changes in 0.61 (05 Mar 1996)
  + djgpp v2: now works under Windows 3.1 (tracked down a Windows DPMI bug)
  + added keypress access functions that don't mess with interrupts
  + added KB_FLAG_DJGPP_NO_RM

Changes in 0.60 (24 Feb 1996)
  + complete rewrite of the memory locking scheme
  + added public include file kbmlock.h

Changes in 0.57 (23 Feb 1996)
  + Watcom: now also use MikMod in the tube demo
  + Watcom: tested PMODE/W 1.22 (has better support for signal handling)

Changes in 0.56 (21 Feb 1996)
  + djgpp v2: added MikMod sound support in the tube demo
  + djgpp v2: tested QEMM 7.04 + QDPMI 1.05 host

Changes in 0.55 (20 Feb 1996)
  - all test programs now use the key 'Q' instead of Esc to quit
    (this works better in Windows DOS boxes and with
     Linux escape sequences when using kb_os_getkey())
  + added kb_waitkey() and kb_os_waitkey()
  + added BogoMips in the tube demo

Changes in 0.54 (19 Feb 1996)
  + djgpp v2: added sound support (sb_lib) in the tube demo
  + Watcom: added sound support (VAT) in the tube demo
  + Watcom: improved int86 handling and BIOS access
  + added _kb_iswin()

Changes in 0.53 (18 Feb 1996)
  + new compiler supported: djgpp v2 + gcc 2.7.2
    (tested with CWSDPMI 0.90+ r1 and QEMM 7.01 + QDPMI 1.02 hosts)
  + added makefile.dj2, make_dj2.bat and make_emx.bat
  + some internal changes

Changes in 0.52 (14 Feb 1996)
  - Linux: be more restrictive when switching VTs
  + added KB_FLAG_xxx_DONE
  + changed access-macros so that they produce no valid lvalue any more
  + do not rely on _kb_shift internally as it is allowed to be modified
  + some changes in tube.c

Changes in 0.51 (13 Feb 1996)
  + Linux: there was a problem when using libkb in combination with
      svgalib and virtual terminal switching. svgalib seems to enable
      ISIG in the termios flags after the switch back to our console.
      termios settings are now saved and restored when switching.
  + Linux: tcsetattr: use TCSANOW instead of TCSAFLUSH

Changes in 0.50 (10 Feb 1996)
  + Linux: preliminary support for an a.out shared library (does not work yet)
  + added util/hardware.doc
  + added util/keys.h
  + some changes in util/mkdist.pl

Changes in 0.49 (06 Feb 1996): public release
  + documentation updated

Changes in 0.48 (30 Jan 1996)
  + introduced a directory structure
  + added MSDOS make-driver batch files

Changes in 0.47 (26 Jan 1996)
  - install functions now return 0 for ok and -1 for error
  + added cleanup functions
  + added 8.bat, a simple MSDOS textmode restorer

Changes in 0.46 (25 Jan 1996)
  + made tube.c work with Borland C, Watcom C and djgpp v1
  - fixed an annoying typo in _kb.h (Borland C - outportb)
  + added alarm() in simple.c

Changes in 0.45 (24 Jan 1996)
  - Linux: removed all MEDIUMRAW support, removed svgalib wrapper
  + added tube.c, a really nice graphics demo (Linux only)
  + added 8.c, the Linux emergency keyboard restorer

Changes in 0.44 (23 Jan 1996)
  + added KB_FLAG_REPEAT_OFF
  + added support for new Windows95 keyboard (3 new keys, untested)

Changes in 0.43 (22 Jan 1996)
  + Linux: changed default mode to RAW, added KB_FLAG_LINUX_MEDIUMRAW
  + some improvements in virtual terminal switching
  - added KB_SCAN_LAST_CONSOLE, changed value of KB_SCAN_PRINT

Changes in 0.42 (21 Jan 1996)
  + added a lot of keycodes for control and alt tables
  + added keycodes.c, a test program to examine the keycodes
  + added kb_init() which inits all internal tables
  + test program now shows the keycode and ASCII value of the last key pressed
  + documentation updated

Changes in 0.41 (18 Jan 1996)
  + added cheat-code example in kbtst.c
  + added kb_keypeek()
  + multiplexed three virtual scancodes into one

Changes in 0.40 (17 Jan 1996)
  + rethink of scope of the library: simplified tables
  + kbtables.c changed (mktables.c -> _kbtable.hh)
  + added kb_keycode(), kb_bios_keycode() and kb_os_keycode()
  + source code revised
  - extension .hh now means that the file was automatically generated
  - renamed kbsimple.c to simple.c
  - removed KB_FLAG_LOCALIZE and KB_FLAG_INIT_SHIFT_TOGGLES
  - this version introduces some incompatibilities with previous versions

Changes in 0.38 (16 Jan 1996)
  + made memory locking functions public, added kbmlock.c
  + kb_signal() is now public, some changes in signal code

Changes in 0.37 (14 Jan 1996)
  + added signal chaining functions
  + makefiles changed
  + added simple makefile.bcc, makefile.djg and makefile.wcc

Changes in 0.36 (09 Jan 1996): public release
  + Linux Makefile
  + documentation updated

Changes in 0.35 (08 Jan 1996)
  + improved signal handler processing
  + kb_signal_handler() is now public

Changes in 0.34 (07 Jan 1996)
  - removed reporting of unknown scancodes
  + added KB_SHIFT_UNKNOWN

Changes in 0.33 (06 Jan 1996)
  + added signal handlers
  + added KB_FLAG_SIGINT
  + added KB_FLAG_EMERGENCY_EXIT

Changes in 0.32 (04 Jan 1996)
  + all getch() stuff replaced by getkey()

Changes in 0.31 (03 Jan 1996)
  + standalone Linux version
  + test program now works under Linux (uses the ncurses library)
  + source code revised, lots of changes
  - scancodes changed again (now they should be ok)

Changes in 0.30 (03 Jan 1996)
  + first Linux version (sits on top of svgalib)
  + added kb_keyname (mkkbname.pl -> _kbname.hh)

Changes in 0.22 (02 Jan 1996)
  + added KB_SHIFT_OVERFLOW

Changes in 0.21 (01 Jan 1996): public release
  + source code revised
  + test program now has a user interface
  + added simple.c, a very simple usage example

Changes in 0.20 (22 Dec 1995)
  - prefixed scancodes changed to match Linux MEDIUMRAW conventions
  - public BIOS interface reduced to 2 functions

Changes in 0.13 (13 Dec 1995): public release
  + djgpp v1 (tested with djgpp v1.11m5 + gcc 2.5.7 + go32 v1.12m3)

Changes in 0.12 (12 Dec 1995)
  + KB_FLAG_INIT_SHIFT_TOGGLES
  + KB_FLAG_LOCALIZE (does not work yet)
  + constants for kb_bioskey()
  - kb_bios_getch() should now be compatible to getch()

Changes in 0.11 (11 Dec 1995)
  - scancodes changed (ALTGR and HOME were mapped to the same code)
  - kb_install() now expects a parameter
  - kb_inkey() now always returns getkey-scancode in bits 8-15
  + BIOS keyboard functions
  + source code revised, lots of changes

Changes in 0.10 (07 Dec 1995): first public release
  + Borland C (16 bit) and Watcom C (32 bit)
