This contains:

- The latest information on changes to Newkey since version 5.0 

- Information on how to upgrade version 4.0 macro files to version 5.0 
macro files

- Hints on using Newkey functions

- The latest information on software and hardware compatibility

RECENT CHANGES

Version 5.4

- A new macro function, {prtscrn}, that will invoke the "print screen" 
function has been added.  Use the macro editor to insert this function.  
Pressing the "print screen" key will NOT cause the {prtscrn} function to 
be inserted in the macro.

- Several new macro functions have been added to make it possible to 
test the screen:

   {ifescr row,col}TEXT{endife}

            - If the contents of the screen starting at row, 
              column equal "TEXT" then execute the macro function 
              immediately following.  "TEXT" can be any characters that can 
              be displayed on the screen.  For example: 

               {ifescr 0,75}READY{endife}<go123><nextmac>

              Assume the above is in a macro designed to be used by 
              Lotus 1-2-3.  When executed, Newkey would check row 0 
              column 75 of the screen for "READY" and if found, it 
              would execute the <go123> macro, otherwise it would skip 
              the <go123> macro.

   {ifnescr row,col}TEXT{endifne}

            - If the contents of the screen starting at row, 
              column do not equal "TEXT" then execute the macro function 
              immediately following.  For example:

               {ifnescr 0,75}READY{endifne}<go123><nextmac>

              Assume the above is in a macro designed to be used by 
              Lotus 1-2-3.  When executed, Newkey would check row 0 
              column 75 of the screen for "READY" and if not found, it 
              would execute the <go123> macro, otherwise it would skip 
              the <go123> macro.

   {ifefscr row,col}TEXT{endifef}

            - If "TEXT" is found anyplace on the screen execute the macro 
              function immediately following.  For example: 

               {ifefscr}READY{endifef}<go123><nextmac>

              Assume the above is in a macro designed to be used by Lotus 
              1-2-3.  When executed, Newkey would the full screen for 
              "READY" and if found, it would execute the <go123> macro, 
              otherwise it would skip the <go123> macro.  

   {ifnefscr row,col}TEXT{endifne}

            - If "TEXT" is not found anyplace on the screen execute the 
              macro function immediately following.  For example: 

               {ifnefscr}READY{endifnef}<go123><nextmac>

              Assume the above is in a macro designed to be used by 
              Lotus 1-2-3.  When executed, Newkey would check the full 
              screen for "READY" and if not found, it would execute the 
              <go123> macro, otherwise it would skip the <go123> macro.  

The if macro functions are probably the most difficult of Newkey's macro 
functions to use.  See EXAMPLE.KEY for some sample if macros that will work 
at the DOS prompt and demonstrate some of the powerful things that can be 
done..

   {cancel} - cancel all currently executing macros

   {return} - stop executing the current macro and return control to 
              the macro which called the current macro.  If the 
              current macro was not called by another macro then 
              the macro will stop just as if it had terminated 
              normally.

The {cancel} and {return} functions have been added to make working 
with the {ifescr} and {ifnescr} functions easier.  The if functions 
can be used to test the currently status of the program and delay 
macro execution until the program is ready to accept further 
keystrokes.  This is more convenient then trying to time how long it 
takes and then using the {wait} function (as long as the program 
displays some sort of indicator on the screen when it is done).  For 
working examples see the macros beginning with "if" in EXAMPLE.KEY.  

HINT:  To help determine what row and column a piece of text starts 
on, the "cUt" screen has been changed to display the row and column of 
the current cursor position.  Just pop up the Newkey menu (alt/), 
select "U", move the cursor to the start of the text you want 
to check for, note the row & column, and press ESC to cancel the cut.  
Then use the macro editor to insert the if function.

See EXAMPLE.KEY for sample macros illustrating the new functions.

Version 5.3

- This version more fully uses EMS memory to save you an additional
15K of memory below the 640K line.

- Menu macros have been changed so that they restart themselves after 
the menu option has been selected unless the menu option selected was 
defined with a 'y' in the 'exit' column or the menu's exit key was 
selected.  Previously the menu macro would always end after a menu 
option was selected.

Version 5.2 

This version sports an updated user interface.  The new interface 
functionally is very similar to earlier versions of 5.0, but with a 
more attractive face.  The menu and display macro edit screens have 
been slightly rearranged.  

Version 5.1

Newkey will now use EMS memory to store its macro and screen 
buffer.  EMS memory will be automatically used.  To prevent EMS 
usage use the "/noems" parameter when loading Newkey.  For example:

  newkey /3000 /noems

will load Newkey with a 3000 character macro buffer and prevent 
usage of EMS memory.

We have been receiving many requests for a very small version.  We 
have started development of NEWKEYVS for Newkey Very Small.  This 
version does not have the pop-up features and lacks many other 
macro functions.  Currently it requires only about 22k, 38k less 
than the largest version.  Newkeysm is still available, lacks the 
pop-up features, and weighs in at about 35k, 25k less than the 
largest version.

                        HINTS

HINTS ON EXECUTING MACROS FROM BATCH FILES

Macros may be executed from batch files using the "newkeysp /ek=" 
function as described in the Users Guide.  The way this operates can be 
confusing.  Assume that you have a macro defined for <alta>.  To execute 
this macro in a batch file you would place the following statement:

      "newkeysp /ek=[alta]" 

in the batch file.  This will cause the key code associated with the 
alta key to be inserted in the keyboard buffer.  Now, the next time the 
keyboard buffer is read, alta will be found and the macro associated 
with it executed, just as if you had pressed the alta key yourself.

The confusing part of this is that the macro will only execute when the 
keyboard is read, but the keyboard is not read while DOS is processing a 
batch file.  What this means is that the macro will not execute until 
either:

     A. control is returned to the DOS command line or 
     B. a program is run in the batch file and the program reads the 
        keyboard.

If you wish to execute a macro to drive a program during a batch file 
then you should insert the macro into the buffer and then start the 
program.  For example, to start WordPerfect and execute a macro when 
Wordperfect starts up that will format your letter heading, record a 
macro (lets call it WPSTART) within WordPerfect to create the letter 
heading and place the following two statements in your batch file: 

        newkeysp /ek=[wpstart]
        wp

Now when the batch file is run, the <wpstart> macro will be inserted 
into the keyboard buffer and when WordPerfect starts it will read the 
keyboard and the <wpstart> macro will execute. 

HINTS ON USING MENU MACROS

If you wish to do more in a menu macro than allowed by the menu macro 
editor, then define another macro to contain the menu macro and put 
the extra macro functions before and after the invocation of the menu 
macro as desired.  For example:

{begdef alta}Extra stuff before<menumac>extra stuff after{enddef}

This will allow you to edit the menu macro, <menumac>, without losing 
any of the extra stuff.  

HINTS ON SENDING CONTROL CHARACTERS TO A PRINTER

To send control codes (x'01'-x'26') use <ctrla> - <ctrlz> in the 
<begprint><endprint> function.

IMPORTANT CONVERSION INFORMATION

All users will have to convert their macro files.  Users of
versions earlier than 4.0 will have to convert them more than once.
Pick the appropriate version you are at and follow all of the 
instructions that follow: 

Version 3.0 or earlier: 

Users with version 3.0 or earlier will have to send us a disk and 
self-addressed stamped disk mailer and we will put a copy of 
conv1to2 conversion progam on.  There was not space on the disk to 
accommodate everything we wished to put on it.

Version 4.0:

1.  Run the conv4to5 program and follow instructions.  

         COMPATIBILITY WITH OTHER SOFTWARE AND HARDWARE
CRUISE CONTROL

This advice has been passed on by a user of Cruise Control 
(you should look at Newkey's own cursor speedup feature, which I 
believe works as well as Cruise Control, although a bit 
differently of course). 

1.  Redefine Cruise Control's hot key by running "CRUISE/R" first.

2.  Turn off Newkey's extended buffer.

3. Turn off either Newkey's or Cruise control's screen saver 
feature.

DELL 310 COMPUTER

The 101/102 key keyboard and Phoenix 1.10 09 BIOS do not generate 
the correct code for <ctrl\>.  You will have to redefine the "edit 
macro being defined" key to something else using the "control 
<K>eys" selection from the Newkey pop-up or Newkeysp main menus.

The Phoenix 1.10 09 BIOS will hangup if Newkey is installed and the 
extended ascii character generated by pressing alt+2+4+0 on the 
numeric keypad is entered.

DESKMATE 3.0 (Tandy)

Deskmate will hang up on non-enhanced keyboards whenever Newkey 
tries to create a key and insert it in the buffer.  To solve this 
do the following:

1.  Use the "control Keys" option on the Newkeysp menu or Newkey 
pop-up menu to change the following control keys:

        dynamic display request <alt/>
        playback multi character <alt,>
        cancel macro <ctrldel>
        cut & paste playback <ctrlins>

to other values.  Make sure that the new values are not also keys 
created by Newkey by checking to see if they have an "@" or "*" 
next to them in "Appendix C - Extended Codes" in the Newkey users 
manual.

2.  Use the "ignore keys" option on the Newkeysp menu to ignore all 
keys.  Make these changes permanent when prompted.


DESKMATE/DESKTEAM 1.04 (Alternative Decision Systems)

There are several problems using Newkey together with Deskmate.  
Some of these problems can be resolved by changing some of Newkey's 
parameters.  Some of them are inherent to the way Deskmate works 
and will require changes in the Deskmate program in order to work. 

To use with Deskmate do the following: 

1.  Turn off the extended keyboard buffer.
2.  Load Newkey after loading Deskmate.

You may notice that Newkey's pop-ups will not work immediately 
after using the Deskmate pop-ups.  This happens because Deskmate 
apparently does not wait until a completely appropriate time to 
pop-up.  If this happens, just do a "DIR" or some other command 
first.  This will cause DOS to re-stabilize itself.

The following problems would require Deskmate changes.  If you 
encounter these problems we suggest you contact Alternative 
Decision Systems.  We have written them a letter trying to resolve 
these problems but have received no response.

1. Deskteam will not pop-up if using an enhanced keyboard.

Deskteam apparently waits until an interrupt 16h, ah=0, before 
checking to see if its hot key has been struck.  The BIOS on PCs 
with the enhanced keyboard, however, supports a new set of calls, 
where ah=10h and ah=11h which correspond to the old ah=0 and and 
ah=1 calls with the exception that they expose the scan codes on 
the separate keypads so that the duplicate keys can be 
distinquished from their counterparts on the home keypad.  If an 
program only uses these new calls, Deskteam never recognizes its 
hot key.  Newkey, as part of its processing always uses the new 
calls and as a result Deskteam will not pop up when Newkey is 
installed.  Even if Newkey was not installed, Deskteam would not 
pop up the program currently running used the new calls.  

HOMEBASE

This advice has been passed on by a user of Homebase.

1.  Turn off Newkey's extended buffer or instruct Homebase to not 
use its own buffer (set option k0 0).

2.  Turn off Homebase's Clock Display (set option -c0 0) or 
Newkey's CAP/NUM display.


MS-WORD

1.  Turn on the "shift status reset" option.  For a further 
explanation consult the Newkey manual.

2.  It may be necessary to turn off the extended buffer, depending 
on which version of MS-WORD is being used.

3.  Use the "ignore keys" option on the Newkeysp menu to ignore 
keys which MS-Word tries to create it self.

See section on PC-Write for related information.

PC-WRITE

1.  Turn on the "shift status reset" option.  For a further 
explanation consult the Newkey manual.

2.  You may want to use the "ignore keys" option on the Newkeysp 
menu to ignore keys which MS-Word tries to create it self.  

See PC-Write in the index of the User's guide for related 
information.  

TANDY 1000SX

There are minor incompatibilities with interpretation of the 
numeric and separated keypads.  Evidently these keys do not all 
produce the same key codes as the IBM PC.  The net effect is that 
many of these keys will be mistaken by Newkey for other keys.  An 
example might be that if had a macro assigned to <alt]>, it would 
be played back if you pressed <altnum.>.


WORDSTAR 4.0

Wordstar 4.0 works a little differently than Wordstar 3.3.  
If you feed keystrokes back too quickly to Wordstar 4.0 it will 
discard them, Wordstar 3.3 did not.  To get around this just make 
sure that slow typing mode is on when Newkey macros execute.  
Wordstar 4.0 also require the alternate fast key mode described 
earlier in this readme.

XYWRITE 3.53

This latest version of Xywrite works with Newkey without any 
apparent problems.

                FILES SUPPLIED WITH NEWKEY 5.4

Sample Macro Files

Several sample macro files are supplied with Newkey to illustrate 
its use and provide you with a starting point.  These files are 
described below.  

DEMO.KEY

This macro file is used to take you on a guided tour designed to 
illustrate Newkey's major features and requires 192k of memory.  To 
take the tour, issue the command "demo".  This macro file is an 
example of display macros.  

DVORAK.KEY - Dvorak keyboard customization

This file contains the macros necessary to redefine your keyboard 
to the Dvorak layout.  There is one minor problem in using the 
Dvorak layout with the Caps Lock feature.  Caps Lock will only lock 
the standard alphabet into shift mode.  Since the Dvorak layout 
uses some non-alphabetic keys, the Caps Lock feature will not 
automatically capitalize these keys, although normal shifting will.  

EXAMPLE.KEY - Example macros

MENU.KEY - Example menu macros

This macro file illustrates many Newkey functions.

Other files on the Newkey Disk

CONV4TO5.EXE - Program to convert version 4.0 files to version 5.0 
internal format files.  

DEMO.BAT - This batch file will give you a demonstration of Newkey.  
It requires 192k of memory.  

EXAMPLE.BAT - examples of how to use Newkeysp in batch mode.  

LOADNEW.BAT - illustrates how to load Newkey and a macro file from 
a batch file.

NEWKEY.EXE - This program actually replaces the keyboard 
interrupts (x'9' and x'16').  It is always present while other 
programs execute and unless called upon to translate, will be 
transparent.  

NEWKEYSM.EXE - This is the small version of Newkey.exe.  It lacks 
the pop-up features and is about 25k smaller.  

NEWKEYSP.EXE - This program provides several functions necessary to 
effectively use Newkey and is described further in the users manual.

NEWKEYVS.EXE - This is the very small version of Newkey.exe.  It 
lacks the pop-up features plus several other features and is about 
38k smaller.  

ORDER.FRM - Current Newkey prices and order form.

README - This file will contain any Newkey updates that may have 
come up since this manual was printed and information on using 
Newkey with other software.
