KBEXT.PRG (Version 2.02-87/09, 3.10-89/11, 4.10-89/11) ------------------------------------------------------ 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 more than 128 additional characters to be entered directly from the keyboard pressing the ALT key. For use with some programs using ALT+key combinations as control keys, use ALT+CTRL+key instead. KBEXT version 3.xx does the same, but all keyboard tables (incl. the non-ALT) override any other user- or program-defined table, i.e. XBIOS call 16 (keytbl) has no effect! The version 2.xx only initializes the TOS keyboard table to its own copies, using keytbl itself, which may be replaced or abandoned later by any other program. KBEXT version 4.xx is KBEXT 3.xx plus a screen saver, which disables the screen 10 minutes after the last mouse/keyboard/midi event. KBEXT version 4.02 adds a cold boot by pressing CTRL-ALT-rightSHIFT-DEL. KBEXT version 4.10 adds a warm boot by pressing CTRL-ALT-DEL. 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 ; +  , ? ) = y x 2  p K Bsp SDump ` a m o Tab  B U g    c G u Del LMous MUp RMs ! Y Ctrl   k  D F @ L M H J Ret  MLeft MDn MRgt   X Shft 4 0 1  ^ C $ f [ \ 3 Shft   Ent Alt -----Space----- CpsL i e SHIFT & ALT: F11/F12/F13/F14/F15/F16/F17/F18/F19/F20/ Esc - 9 ]  v * > z & ' w q  Bsp SDump . / h 6 Tab  V n T S   l  < O t Del LMous Mup RMs "   Z Ctrl  d E N b I A Q R S T Ret  Mleft Mdn Mrgt #   W Shft 5 7 8 { _ % P s r ( Shft  } ~ Ent Alt -----Space----- CpsL j | There are at least 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 and to provide basepage information). 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(4).PRG otherwise. From now on the tables in these datasets will be used, when KBEXT is run. 3. A third possibility would be to make the files DEFAULT.KBD and ALT.KBD mentioned in (2) by a separate program, e.g. 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 used by TOS with the ALT key are automatically taken into account by KBEXT, after reading the ALT.KBD file; so the numbers given above should be used for all 5 tables. 4. Finally, you can also patch the program code: you find all tables contiguous after "KBEXT/RW" in the order normal - shift - caps - alt - shift/alt. You can use your favourite disk-/file monitor to change these tables in KBEXT(4).PRG. The program may be freely used, copied and modified, totally at your own risk and responsibility, and only for non-profit use. Enjoy, Roland Waldi, BD05 @ DKAUNI2.BITNET