WSKEY: WordStar Function Key and Numeric Keypad Implementation

                   Dr. William C. Parke
                        April, 1984

WSKEY  is a machine language module which can by attached to  the
back of MicroPro's WordStar for CP/M-80.   When in place, it will
translate  the  function  and  numeric keypad key  codes  on  the
Heath/Zenith  H/Z-19,29,89,90,   and  100  series  terminals  and
computers   into  user  defined  commands  and  strings   to   be
interpreted by WordStar.

If  you  have the latest CP/M-80 WordStar  from  Zenith  (Version
3.3),  your  arrow  keys  already work,  and  the  function  keys
generate  the  most often used  control  keys.   However,  simply
having a single control code generated by a function key is not a
great savings of keystrokes!  It would be far more useful to have
specific  multistroke  WordStar functions generated by  a  single
function key.   With WSKEY,  you can do that. Moreover, it is not
an  internal  patch in WordStar,  so that it will not affect  any
special  configurations or installations you  have  made.   WSKEY
hides  on  the  backend of WordStar on disk.   When  WordStar  is
loaded,  WSKEY  gets  control first,  relocates  a  function  and
numeric  key  interceptor just under BDOS in  high  memory,  then
transfers  control to WordStar.   At this point,  WordStar begins
completely  ignorant  of  any  change  made.    However,  console
character  requests made to BDOS are now check for  function  key
action.    WSKEY   translates  these  requests  to  your   custom
configuration for these functions.   On exit from WordStar,  BDOS
is returned to its original form and the 25th line display of the
key functions is turned off as part of the warm boot sequence.

The  choice for the numeric keypad functions are taken  from  the
very  well-thought out conventions adopted by Pat Swayne (at  the
National  HUG office) which he used in his program KEYMAP.   With
KEYMAP,  you  can  configure  the  keys  interactively  from  the
operating  system before entering any  particular  program.   Pat
uses the HOME key as a function "shift" key,  so that each of the
function  and numeric keypad keys can be given a double  purpose.
The  keypad  itself  is reserved for screen  operations  (cursor,
line, page moves and FIND operations corresponding to the ^Q menu
options in WordStar).   If you will need interactive reprograming
of the function keys, I strongly recommend Pat's KEYMAP.

The special advantage of WSKEY is its small size (only 512  bytes
take  from WordStar's available space) and the fact that it loads
and unloads automatically when WordStar is used.  It can be  used
to configure the function and keypad keys on the H-19,  Z-29,  H-
89, and the Z-100 (under 8085 control) to generate any meaningful
command string or often-used text line in WordStar.

You  may examine the function key and numeric keypad  definitions
in the file WSKEY.DEF.   These definitions may be changed to your
own commands using the patch table below.

Also, on this disk, there are a series of SUB and HEX files which
are  ready to automatically patch your version of  WordStar.  The
names  taken  for  these  files,  WSKExxyy.,  correspond  to  the
WordStar version and the terminal or computer you wish to use  as
the table below shows:

                        WordStar Version
                        3.0          3.3

    H-19, H/Z-89,90     WSKE3019.    WSKE3319.
    H/Z-29, Z-100s      WSKE3029.    WSKE3329.

Below  is  the  procedure  for adding  WSKEY  to  your  WordStar.

         1.   Pick  the appropriate version of WSKExxyy.SUB  for
              your computer and WordStar version. Substitute the
              value of xxyy in the steps below.

         2.   Copy to one disk the following files:

              WS.COM (Initialized, but without function keys)
              WSKExxyy.SUB
              WSKExxyy.HEX

              DDT.COM (from Digital Research distribution disk)
              EX.COM (an enhanced SUBMIT; contained herein)

         3.   From this disk, type: EX WSKExxyy.

Your new version of WordStar, WSK.COM should now be ready to use.
The  twenty-fifth  line will define the double functions of  each
function key.  The numeric keypad which principly controls cursor
and page moves, is logically and functionally laid out.  However,
you  may  wish  to  make a hard copy of  the  file  WSKEY.DEF  as
reference.

If  you wish to redefine the command or ASCII string sent when  a
function key is pressed while in WordStar,  patch WSK.COM at  the
locations  given  below  with your own command string,  up  to  6
characters for f1 to f7,  12 characters for f8.   The same number
of characters can be used for the alternate functions.   End each
string with the high-order bit (parity bit) set.

WordStar 3.0 Function Strings:

Functions      Addresses       Functions      Addresses

f1 ^f1         3FEC  403E       f5 ^f5        4004  4056
f2 ^f2         3FF2  4044       f6 ^f6        400A  405C
f3 ^f3         3FF8  404A       f7 ^f7        4010  4062
f4 ^f4         3FFE  4050       f8 ^f8        4016  4068

The twenty-fifth line display string begins at 4195.


WordStar 3.3 Function Strings:

Functions      Addresses       Functions      Addresses

f1 ^f1         46EC  473E       f5 ^f5        4704  4756
f2 ^f2         46F2  4744       f6 ^f6        470A  475C
f3 ^f3         46F8  474A       f7 ^f7        4710  4762
f4 ^f4         46FE  4750       f8 ^f8        4716  4768

The twenty-fifth line display string begins at 4895.