KBEXT.PRG (Version 2.00-87/07)
------------------------------ 

Put KBEXT.PRG into the AUTO folder, or start it at any time from the
desktop (but only once a session). It will establish a memory 
resident extension to the keyboard interrupt handler, which allows
in addition to the NORMAL, SHIFT and CAPS-LOCK keyboard tables also
ALT and ALT-SHIFT keyboard tables to be used, thus allowing about
128 additional characters to be entered directly from the keyboard
pressing the ALT key. 
 
If you use KBEXT.PRG as it is, you will get the following keyboard 
layout (which is close to the US and GB
version of the ATARI keyboard for the non-ALT keys):

NORMAL:

F1 /F2 /F3 /F4 /F5 /F6 /F7 /F8 /F9 /F10/ 
 
Esc 1 2 3 4 5 6 7 8 9 0 - = `   Bsp  Help     Undo   (   )  /    *
Tab  q w e r t y u i o p [ ]    Del  Insrt Up  Clr   7   8  9    -
Ctrl  a s d f g h j k l ; '  Ret  #  Left Dwn Rght   4   5  6    +
Shft \ z x c v b n m , . /  Shft                     1   2  3  Ent
    Alt  -----Space-----  CpsL                         0    .

SHIFT (note that no digits appear with the cursor keys, which
means you need not release the SHIFT key to move the cursor!)
 
F11/F12/F13/F14/F15/F16/F17/F18/F19/F20/
                             
Esc ! @ # $ % ^ & * ( ) _ +    Bsp  Help     Undo   (   )  /    *
Tab  Q W E R T Y U I O P { }    Del  Insrt Up  Clr   7   8  9    -
Ctrl  A S D F G H J K L : "  Ret  ~  Left Dwn Rght   4   5  6    +
Shft | Z X C V B N M < > ?  Shft                     1   2  3  Ent
    Alt  -----Space-----  CpsL                         0    .

CAPS-LOCK: 
 
F1 /F2 /F3 /F4 /F5 /F6 /F7 /F8 /F9 /F10/ 
 
Esc 1 2 3 4 5 6 7 8 9 0 - = `   Bsp  Help     Undo   (   )  /    *
Tab  Q W E R T Y U I O P [ ]    Del  Insrt Up  Clr   7   8  9    -
Ctrl  A S D F G H J K L ; '  Ret  #  Left Dwn Rght   4   5  6    +
Shft \ Z X C V B N M , . /  Shft                     1   2  3  Ent
    Alt  -----Space-----  CpsL                         0    .

ALT: 
 
F1 /F2 /F3 /F4 /F5 /F6 /F7 /F8 /F9 /F10/ 
 
Esc                Bsp  SDump                    
Tab                 Del  LMous MUp RMs            
Ctrl              Ret    MLeft MDn MRgt           
Shft             Shft                            Ent
    Alt  -----Space-----  CpsL                             

SHIFT & ALT:
 
F11/F12/F13/F14/F15/F16/F17/F18/F19/F20/ 
 
Esc                Bsp  SDump                    
Tab                 Del  LMous Mup RMs            
Ctrl              Ret    Mleft Mdn Mrgt           
Shft             Shft                            Ent
    Alt  -----Space-----  CpsL                             

There are two ways to change the keyboard assignment:
 
1. Change the keyboard tables in KBEXT.ASM and reassemble the
   program. You may have to change some control statements
   to fit your assembler's requirements, but the program is
   written to make changes even to MEGAMAX-C-Inline-Assembler 
   not too hard (Use a minimal INIT.C here to save memory).
 
2. Use any PD keyboard-changing program, which allows to
   save a xxx.KBD file (check if it has 384 bytes), e.g.
   MOBZKEY.ACC, and make two files: DEFAULT.KBD for the 
   normal keyboard assignment, and ALT.KBD with the
   unshifted and shifted ALT keyboard assignments (don't
   change the caps-lock table here, you will need CAPS LOCK
   to type into the file-selector box, since MOBZKEY changes
   the keyboard assignment immediately!). 
 
   Put these two files into the \AUTO\ folder of your boot disk,
   if you use KBEXT at boot time, or into the \AUTO\ folder of
   your working disk containig KBEXT.PRG otherwise.
   From now on the tables in these datasets will be used, when KBEXT
   is run.
 
A third possibility would be to make the files DEFAULT.KBD
and ALT.KBD mentioned in (2)
by a separate program, a file monitor etc. 
The format of a KBD file is simply 3 times 128 bytes of the
keyboard tables (one byte per character) 
for normal, shifted and caps-lock. The key
numbers (hexadecimal) are:
 
3B /3C /3D /3E /3F /40 /41 /42 /43 /44 / 
 
01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 29  0E  62    61  63 64 65 66
0F  10 11 12 13 14 15 16 17 18 19 1A 1B    53  52 48 47  67 68 69 4A
[1D] 1E 1F 20 21 22 23 24 25 26 27 28   1C 2B  4B 50 4D  6A 6B 6C 4E
[2A](60)2C 2D 2E 2F 30 31 32 33 34 35 [36]               6D 6E 6F 72
   [38]  -------39------  [3A]                            70   71
 
Note that US keyboards don't have the key (60). You should assign
0 to all function keys, and to the positions that do not belong
to any key. Key number redefinitions with the ALT key are
automatically taken into account by KBEXT, after reading the ALT.KBD
file.
 
Enjoy,                Roland Waldi, WALDI @ DHDIHEP1.BITNET
