[comp.sys.atari.st] KBEXT doc

WALDI@DHDIHEP1.BITNET (07/29/87)

Date: 29 July 1987, 00:40:21 SET
From: Roland Waldi              phone (6221) 564334  WALDI    at DHDIHEP1
      Inst. fuer Hochenergiephysik
      Schroederstr. 90
      D-6900 Heidelberg
To:   INFO-ATA at SCORE.ST

This is a second try to post a PD program to the net. Now I will
send two separate files, hope this works.
Here is a program to extend the number of characters to be entered
directly from the keyboard, using the ALT key.
It should work with any program (e.g. editor), which
does not use ALT-key-combinations on its own, for instance it
works well with 1st-Word.

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):

---look into the KBEXT.TXT file for the details---

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.

A warning is in place: The program uses one TOS version dependent address.
it is well documented in the assembler source. If you use a very
old TOS or the new MEGA-ST-TOS, you will have to reassemble it with
this address changed. It's needed since one cannot call BIOS from within
an interrupt.

Enjoy,                Roland Waldi, WALDI @ DHDIHEP1.BITNET