Notes about Prototype 4 of KEYB 2.0 ("TAURUS")
==============================================

This is the prototype 4 to KEYB 2.0 ("taurus") project.

Prototypes are functional snapshots of my current work that do not contain 
all the functionality of the future 2.0 project.

Prototypes started by replacing little by little xkeyb code. Prototype4 is
fairly mature, and most of the code is completely rewritten (it has small
contributions from xkeyb in the SHIFTs management and some non-resident code,
and some code from Matthias Paul to flush caches before reboot).

Prototype 4 does NOT work at all with KEY-style files (as xkeyb and
prototypes 1-3 did). It needs files in a format called KC format. You can
create your own KC files with a compiler tool, also included in the pack. The
compiler uses KEY-style files to create KC files. Later you use KC-style files
with KEYBP4. 

WARNING: P4 does NOT do any sanity check. If used with damaged KC files, or
non-KC files may look your PC or cause unstability.

Prototype 4 comes with a set of layouts (going beyond the "reduced pack" for
xkeyb) which are pre-compiled, and that you can direcly use. These have been
created and compiled by the kind effort of Henrique Peron, author of the
xkeyb packs.

From Prototype4, there are no features to miss from xkeyb (except in the rare
case in which you use the MuX API of xkeyb, which will not be supported), or
to remap SHIFT keys (to be added later, and not quite usual anyway) but for 
the contrary, it comes with a large deal of new features, and specially a 
quite more reduced size (around 1.5KB with standard KC files).

It is not yet guaranteed to work on a PC/XT class machine (but it will in 
future releases)


SOME COMMENTS AND FEATURES
--------------------------

* See the Fast Help to know more about KEYB2.

* It allows you to choose the degree of int9h management that you want. You
will rarely use full management, unless you create a layout that does not
depend on already loaded KEYB management routines. None is provided. By
default, no management is included. Most work is done through int15h/4Fh

* It does not yet support codepage changes, but it will in P5 (for the moment,
at least it doesn't refrain DISPLAY from performing the change).

* Source file is a single Pascal file with quite a lot of assembler code,
specially in the resident piece.

* The module has an improved module discardation system: most of the unused
code is unloaded to save space. This, jointly with the ussage of compiled
layouts, reduces typical resident size from 3.5Kb (in P3) to 1.5Kb (in P4).

* You can remap the decimal char, and you can enable/disable the driver with
Ctrl+Alt+F1 and Ctrl+Alt+F2

* You can include in XStrings a greater deal of functionality, specify
scancodes and chars, etc.

* Overloading is NOT yet supported. To switch layout, unload and reload
the driver.

* Character 8 removes a COMBI

* The driver is sensible to APL software (but in /9* mode or above)

* You can have localised versions of the program under recompilation. To do so,
rename your message file to .NLS extension, and recompile

FOR THE PROGRAMMER
------------------

* New TableLookUp procedure to look in the new tables

* There is a single StoreKey procedure, which is supposed to be the common
entry point to drop a key to the buffer (and in AT, it will turn to the very
short int16h/AH=5h)

* TranslateScancode is the single procedure for those special keys that need
to change their scancode (Alt+number, Ctrl+numpad, Fn keys, ...)

* Alt+NumPad effect now through commands

* KEYB command execution can be called from the KEYB API

* Tighter code discardation

* Information about the KEY file structure: see accompaining documentation and
compiler source header

* Information about the KC file structure: see compiler source header

* To build KEYB use TP7/BP7, and to build the compiler use BC++ 3.1