home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Hall of Fame
/
HallofFameCDROM.cdr
/
dos
/
newkey.lzh
/
NEWKEY.DOC
next >
Wrap
Text File
|
1985-04-21
|
42KB
|
1,141 lines
NEWKEY
A Keyboard Enhancer for
The IBM Personal Computer
Version 1.1
(C)Copyright Frank A. Bell, 1984
All rights reserved.
Frank A. Bell
20950 Smallwood
Birmingham, MI 48010
.pa
TABLE OF CONTENTS
INTRODUCTION ............................................. 1
GETTING STARTED........................................... 2
LOADING NEWKEY.......................................... 2
Newkey Parameters..................................... 2
DEFINING A KEY.......................................... 3
Space Considerations.................................. 3
Backspace Handling.................................... 4
SPECIAL KEY DEFINITION FEATURES........................... 4
NESTED KEY TRANSLATION.................................. 4
Recursion............................................. 4
TRANSLATION BYPASS...................................... 5
VARIABLE LENGTH FILL-IN-THE-BLANKS...................... 5
FIXED LENGTH FILL-IN-THE-BLANKS......................... 6
SPECIAL FEATURES.......................................... 7
SWITCHING NEWKEY OFF/ON................................. 7
TRANSLATION BYPASS...................................... 7
NEWKEY1 OVERVIEW.......................................... 8
INVOKING NEWKEY1........................................ 8
NEWKEY1 FUNCTIONS......................................... 8
DISPLAY DIRECTORY (/d).................................. 8
DISPLAY TRANSLATION OF KEY (/k)......................... 8
SAVE FILE (filename.ext/s).............................. 8
LOAD FILE (filename.ext/l).............................. 9
Special note to DOS 2.0 users......................... 9
MERGE FILE (filename.ext/m or filename.ext/m/o).........10
CLEAR CURRENT KEY DEFINITIONS (/c)......................10
SWITCH STATUS (/t)......................................10
UNLOAD AND RECLAIM MEMORY (DOS 1.1 only) (/u)...........10
MODIFYING NEWKEY..........................................11
MODIFICATIONS...........................................11
FIELDS WHICH MAY BE MODIFIED............................12
DESCRIPTION OF KEY TRANSLATION DISPLAY....................13
SAMPLE KEY DEFINITION FILES...............................14
ASM.KEY.................................................14
DVORAK.KEY..............................................14
TEST.KEY................................................14
WS.KEY..................................................15
GENERAL DOS KEYS COMMON TO MOST SAMPLE FILES............16
INFORMATION ABOUT THE FILES ON THE NEWKEY DISK............16
NEWKEY OVERVIEW...........................................17
NEWKEY REQUIREMENTS.....................................17
HOW DOES NEWKEY WORK?...................................17
NEWKEY'S LIMITATIONS....................................17
TIPS ON USING NEWKEY......................................18
USE YOUR AUTOEXEC.BAT FILE..............................18
SETTING THE DYNAMIC DEFINE AREA SIZE PARAMETER..........18
DO NOT FORGET TO SAVE YOUR KEY DEFINITIONS..............18
COMBINING KEY DEFINITION FILES..........................19
MULTIPLE KEY DEFINITION FILES...........................19
DISCLAIMER................................................20
PERMISSION TO COPY........................................20
THE USER-SUPPORTED CONCEPT................................21
PROBLEMS, SUGGESTIONS, ETC................................21
.pa
NEWKEY INTRODUCTION
PURPOSE
The Newkey keyboard enhancer simplifies the entry of common
keystroke sequences by allowing these sequences to be assigned to
any key desired. Once assigned to a particular key, whenever that
key is struck the predefined sequence of keystrokes will be
returned in place of the struck key. For example, the alt C key
might be defined as 'copy' and whenever alt C is struck the string
'copy' will be returned.
Newkey allows customization of software packages, ready
creation of boiler plate passages, keyboard redefinition and
other useful purposes. Several sample key definition files are
included with Newkey and will be described later.
Newkey provides many key translation features including:
- Ability to define any key
- Variable length "pauses" during key translation
- Fixed length "pauses" during key translation
- Nested key translation
- Translation bypass for native entry of defined key
- User defined dynamic define area length
Newkey1, the Newkey support program, provides many functions
including:
- Saving key definitions on disk
- Loading key definitions from disk
- Merging key definitions from disk
- Directory display of keys with translations
- Individual display of key translations
- Newkey on/off switch
- Clear current key definitions
- Unload and reclaim memory (DOS 1.1 only)
.pa
GETTING STARTED
LOADING NEWKEY
To load newkey type
newkey [/parameters]
and press the enter key. Within a second or two a full screen
will be displayed with the message;
NEWKEY loaded
at the bottom.
When you have received this message Newkey has been loaded.
At this stage Newkey is ready to use. You may wish to load a
predefined set of key translations. To do this refer to the
'Load File' section.
Newkey Parameters (optional)
Function: Change dynamic define area length.
Newkey comes with a default dynamic define area length which
will accept up to 300 characters of new key definitions. This
default may be changed at run time by specifying the parameter
'/xxxxx' when first invoking Newkey.
'xxxxx' is up to a 5 digit number specifying the number of
characters which Newkey will reserve for the dynamic define area.
Newkey will reserve twice this number of bytes in memory (each
character requires two bytes).
For example:
newkey /500
will reserve enough space for 500 characters of translation (1000
bytes of storage.) This parameter is especially valuable to DOS
2.0 users as described in the 'LOAD FILE' section in the 'NEWKEY1
OVERVIEW'.
The legal range for this number is 5 - 13,500.
.pa
DEFINING A KEY
To define a key follow these steps:
1. Press the alt = key.
This will cause the cursor to take on a block shape. As long as
you are in key definition mode the cursor will retain some sort of
block shape.
2. Press the key you wish to define.
Although it will appear to you as if nothing has happened, Newkey
will assume that this is the key to be defined.
3. Now enter the keystrokes you want the key to represent.
The system will continue to act on these keystrokes as if key
definition was not occurring. This enables you to monitor the
key definition to ensure that you are actually creating a
translation that will do what you wish.
4. When you have finished redefining the key press the alt =
key again.
The cursor will take on its normal shape and key definition is
done. Unless saved in a disk file ('Saving Key Definitions'), the
new key translation will be lost when the system is rebooted.
For example, to define alt c as 'copy' follow these steps:
1. Press alt =, the cursor will change to block form.
2. Press alt c, the key you wish to define.
3. Type in 'copy'.
4. Press alt =, the cursor will change back to its normal
shape.
Now press alt c and watch 'copy' be returned.
To undefine a key, merely define it without a definition
(alt =, key, alt =).
Space Considerations
Newkey comes with enough translation space for 300 characters.
If new key definitions total more than 300 characters in a
session, Newkey will display this message in reverse video:
*OUT OF MEMORY FOR DYNAMIC DEFINING - PRESS ESC TO CONTINUE*
If you receive this message all further new key definition will be
halted including the one you are in the middle of doing. At this
point the only way to get new key definition space is to save the
current key definitions and then reload them. This will
reinitialize the 300 free spaces for further key definition (DOS
1.1 only, DOS 2.0 users will need to increase the size of the
dynamic define area. Please refer to the special note in the
'LOAD FILE' section in the Newkey1 Overview.)
Should you wish to have more than 300 free spaces at the
beginning of the session refer to the parameters section in
'LOADING NEWKEY'.
Backspace handling
During key definition, Newkey treats the back cursor key as a
back space and delete. This allows you to make correct a mistake
during key definition without the correction becoming part of the
key definition.
SPECIAL KEY DEFINITION FEATURES
Many of these features are illustrated in the key definition
file, TEST.KEY described later.
NESTED KEY TRANSLATION
Newkey will translate keys within key definitions down to 8
levels. For example, assume the following keys have been
defined as follows:
alt 1 = level 1 alt 2
alt 2 = level 2 alt 3
alt 3 = level 3 alt 4
alt 4 = level 4 alt 5
alt 5 = level 5 alt 6
alt 6 = level 6 alt 7
alt 7 = level 7 alt 8
alt 8 = level 8 alt 9
alt 9 = level 9 alt 0
When alt 1 is pressed, Newkey will check each character returned
('L', 'e', 'v', 'e ', 'l',' ','1','alt 2') to see if they too have
been defined and if so, will return their translation. Newkey
will find that alt 2 has been defined and will check its
definition for further translation to a depth of 8 levels. At the
eighth level Newkey stops checking and returns that translation
without further checking. So in this case, Newkey will return
'level 1level 2level 3level 4level 5level 6level 7level 8alt 9'.
Translation continues to the eight level before it stops.
Recursion
If at any time newkey detects a recursive loop which would
result in an infinite translation loop (a=b, b=c, c=a for example)
it will display the following message in reverse video:
RECURSION DETECTED - TRANSLATION ENDED - PRESS ESC TO CONTINUE
Press the ESC key to continue. The key at which recursion was
detected will be returned untranslated.
TRANSLATION BYPASS
Newkey provides the ability to prevent further translation
within a key definition. If you have a character you wish to be
returned without any further translation follow these steps:
1. Before entering the key, press ctrl 2.
2. Press the key you wish to always be returned.
When Newkey encounters this key at this spot within the key
definition it will return it without further translation even if
the key is defined in the key definition file. For example,
suppose you wished to define a key to be 'ctrl k ctrl d' but
ctrl k was already defined as 'ctrl k ctrl q'. Follow these
steps:
1. Press alt = to start key definition.
2. Press alt k, the key you wish to define.
3. Press ctrl 2 to signal that the next key is not to be
translated.
4. Press ctrl k, the key you wish to be returned.
5. Press ctrl d
6. Press alt = to end key definition.
Now when you press alt k, ctrl k, not 'ctrl k ctrl q', plus ctrl d
will be returned. The no translate key only affects the next key
entered. To prevent translation of subsequent keys it will be
necessary to press the no translate key before entering each of
them.
Ctrl 2 may be changed to whatever you desire. Please refer
to the section 'Modifying Newkey'.
VARIABLE LENGTH FILL-IN-THE-BLANKS
Newkey provides you with the ability to define variable
length fill-in-the-blanks fields within key translations. When
one of these is encountered in a key translation, Newkey will stop
translation and wait for the user to enter any keystrokes he
wishes. Newkey will continue to accept keystrokes until the
return key is pressed when normal translation will continue. To
define a variable length fill-in-the-blanks field follow these
steps:
1. Press alt -. The cursor will change from a full block to
half block with its bottom missing.
2. Enter whatever keystrokes you wish.
3. Press alt -. The cursor will change back to a full block.
For example, suppose you frequently started a letter with 'My
dear John (Frank, Susan, etc.) it is now time' you might wish to
define one key to mean 'My dear xxxxxx it is now time.' To do
this you would follow these steps:
1. Press alt = to start key definition.
2. Press alt l, the key you wish to define.
3. Type 'My dear '.
4. Press alt - to start variable length field definition.
5. Type in any name, although it is not necessary to the
working of the key definition.
6. Press alt - to end variable length field definition.
7. Type in ' it is now time'.
8. Press alt = to end key definition.
Now if you were to press alt l, 'My dear ' would be displayed and
the system would wait for you to enter a name. Once you had
entered a name and pressed the return key the system would
continue with ' now is the time'.
Alt - and the return key as terminator may be changed to
whatever you desire. Please refer to the section 'Modifying
Newkey'.
FIXED LENGTH FILL-IN-THE-BLANKS
Newkey provides you with the ability to define fixed length
fill-in-the-blanks fields within key translations. When one of
these is encountered in a key translation, Newkey will stop
translation and wait for the user to enter a predefined number of
keystrokes. Newkey will accept keystrokes until the predefined
number is reached when normal translation will continue. To
define a fixed length fill-in-the-blanks field follow these
steps:
1. Press ctrl -. The cursor will change from a full block to
half block with its top missing.
2. Enter whatever keystrokes you wish.
3. Press ctrl -. The cursor will change back to a full block.
For example, suppose you frequently started a letter with
'Enclosed are the xx (some number) items per your request' you
might wish to define one key to mean 'Enclosed are the xx items
per your request.' To do this you would follow these steps:
1. Press alt = to start key definition.
2. Press alt l, the key you wish to define.
3. Type 'Enclosed are the '.
4. Press ctrl - to start fixed length field definition.
5. Type in any two digit number.
6. Press ctrl - to end fixed length field definition.
7. Type in ' items per your request'.
8. Press alt = to end key definition.
Now if you were to press alt l, 'Enclosed are the 'would be
displayed and the system would wait for you to enter any two
characters. Once you had entered the second character the system
would continue with ' items per your request.'
Ctrl - may be changed to whatever you desire. Please refer to
the section 'Modifying Newkey'.
SPECIAL NEWKEY FEATURES
Switching newkey off/on - CTRL 6
Newkey may be deactivated/activated by pressing ctrl 6. This
acts as a toggle switching Newkey from one status to another.
When deactivated Newkey is still resident in memory but it will
act as if the normal keyboard interrupt is in control.
Translation bypass - CTRL 2
Key translation may be bypassed by pressing ctrl 2 followed
by the key desired. This is the same procedure used to enter a no
translate key during key definition.
.pa
NEWKEY1 OVERVIEW
Newkey1 provides many features to complement Newkey functions.
INVOKING NEWKEY1
Newkey1 may be invoked in one of two ways:
1. Type Newkey1, press enter and a menu of options will be
displayed.
2. Type Newkey1 plus a parameter and Newkey1 will perform
the requested function and return to DOS. This option is
particularly useful in a batch file invoked at system
initialization.
NEWKEY1 FUNCTIONS
DISPLAY DIRECTORY (/d)
Select function #1 on the menu screen or else type in
'newkey1 /d' and press enter. Newkey1 will display a directory of
all keys that have been defined.
DISPLAY TRANSLATION OF KEY (/k)
Select function #2 on the menu screen or else type in
'newkey1 /k' and press enter. Newkey1 will display a screen
requesting you to enter the key you wish translated. If the key
has been defined to Newkey its translation will be displayed.
The translation will be one character every five spaces and its
end will be marked by a string of 'FFFF'. Each character will be
described by a string 1 to 4 characters in length. For more
information refer to 'Description of key translation display'.
SAVE FILE (filename.ext/s)
Select function #3 on the menu screen or else type in
'newkey1 file.key/s' and press enter. 'file.key' is the name of
the key definition file in which you wish to save your current key
definitions. It may be any legal file name. If you select
function #3, another screen will be displayed requesting a file
name. This function will save your current key definitions from
memory in a disk file which may later be reloaded by Newkey1 into
memory again.
.pa
LOAD FILE (filename.ext/l)
Select function #4 on the menu screen or else type in
'newkey1 file.key/l' and press enter. 'file.key' is the name of
the key definition file you wish to load into memory. If you
select function #4, another screen will be displayed requesting a
file name. This function will load the key definitions from a
disk file into memory where they can be used by Newkey. Any
previous key definitions in memory will be wiped out.
*** SPECIAL NOTE TO DOS 2.0 USERS ***
When I wrote the bulk of Newkey only DOS 1.1 was out and I
made some basic design decisions designed to use a minimum amount
of memory. One of these decisions involved loading the key
definition file from a program external to the resident portion of
Newkey and loading it right on top of the resident portion in
contiguous storage. Naturally this works fine under DOS 1.1 but
not DOS 2.0.
DOS 2.0 places a piece of storage after each piece of storage
made resident. It uses this to check for storage corruption,
however it prevents the key definition file from being loaded on
top of Newkey. Therefore, under DOS 2.0 the key definition file
is only loaded if there is enough space in the dynamic define area
(used for new key definitions) to hold the file's key definitions.
If there is enough space, the key definitions are loaded and
the remaining space used for the dynamic key definition area. If
there is not enough space the message:
FILE TOO BIG TO LOAD
is displayed.
If you receive this message it will be necessary to expand
the dynamic define area either through the run time parameter
(refer to parameter section in 'LOADING NEWKEY') or by actually
modifying the code (refer to 'Modifying Newkey') to a size large
enough to hold the file's key definitions plus whatever size you
actually want the dynamic define area to be.
To determine how much space must be reserved for a file's key
definitions follow this procedure:
1. Determine the size of the key definition file (use 'dir
filename.ext').
2. Subtract 760 from this file size. This result is the
number of bytes of key definitions which you need to reserve.
3. Divide by 2 to get the number of characters.
4. Add to this figure the number of characters you wish to
reserve for the dynamic define area.
5. Re-boot.
6. Invoke the new version of Newkey setting the run time
parameter appropriately.
7. Load the key definition file.
MERGE FILE (filename.ext/m or filename.ext/m/o)
This function will merge the key definitions from a disk file
into memory where they can be used by Newkey. The previous key
definitions in memory will be kept. If the same key is defined
both in memory and in the merge file, the in-memory definition
will be retained unless the overwrite option is specified.
To merge, select function #5 on the menu screen or else type
in 'newkey1 file.key/m' or 'newkey1 file.key/m/o' and press enter.
'file.key' is the name of the key definition file you wish to
merge into memory. The second form, ending in '/o', will invoke
the overwrite option. If you select function #5, another screen
will be displayed requesting a file name and whether you want to
use the overwrite option.
The same DOS 2.0 space considerations apply to this function
as to the load function described in the previous section.
CLEAR CURRENT KEY DEFINITIONS (/c)
Select function #6 on the menu screen or else type in
'newkey1 /c' and press enter. This function will clear all
current key definitions from memory.
SWITCH STATUS (/t)
Select function #7 on the menu screen or else type in
'newkey1 /t' and press enter. This function will switch newkey's
status from on to off or vice-versa. When Newkey's status is off,
Newkey is still resident but permits no normal Newkey functions
(translation, key definition) to occur.
If invoked through the menu the current status is displayed.
If invoked directly, Newkey1 will return a message indicating its
current status after the switch. This function is equivalent to
using ctrl 6 to switch Newkey's status.
UNLOAD AND RECLAIM MEMORY (DOS 1.1 only) (/u)
Select function #8 on the menu screen or else type in
'newkey1 /u' and press enter. This function will unload Newkey
completely from the system and free up its memory for reuse.
Caution must be exercised in using this feature. If another
program has been permanently loaded after Newkey then its storage
will also be freed. This function will only work under DOS 1.1.
.pa
MODIFYING NEWKEY
Almost every key and parameter Newkey uses may be changed.
The following should provide the information necessary to do this.
All of these changes are done using Debug. Follow these steps:
1. Type in 'copy newkey.exe newkey.alt' and press enter. This
will create an alternate version of newkey.exe.
2. Type in 'debug newkey.alt' and press enter. This will
invoke debug and load Newkey.alt.
3. Next enter the modifications as described below. Note that
when changing a keystroke it is necessary to change the scan
code as well as the ascii code.
4. Before modifying Newkey first check that you are actually
modifying the correct address by issuing a 'D address' command
and checking the dumped data against what you expect to find.
5. If the dumped data agrees with what you expect to find then
issue a 'F address l2 xx xx' where xxxx is the new data to be
entered.
6. Repeat steps 3 and 4 until all desired changes have been
made.
7. Type 'w' and press enter. This will write the changes to
disk.
8. Type 'q' and press enter. This will end the debug session.
9. Type in 'ren newkey.exe newkey.old' and press enter. This
will rename the old version of newkey.
10. Type in 'ren newkey.alt newkey.exe' and press enter. This
will rename the new version of newkey.
11. Load your new version of Newkey and test the changes. (DOS
2.0 users will have to re-boot.)
If problems develop, rename the new version back to
newkey.alt, rename the old version back to newkey.exe and reload
the old version. Then use debug to check your changes.
MODIFICATIONS
NOTE: The 8088 stores its data backwards, or in other words in
reverse order when working with 2 byte fields. These
modifications all involve changing 2 byte fields. Thus, once you
have decided what you are going to change, enter the last byte
first and the first byte last.
For example, suppose that you are going to change the size of
the dynamic define area from 300 characters to 256 characters.
First determine the hex equivalent of 256, x'0100', reverse the
'01' and '00' to get x'0001'. This is the order in which you
would enter the change using debug.
To modify the key codes you need to enter both the ascii code
and the scan code. The first byte (displayed by debug) is the
ascii code, the second, the scan code. These codes are documented
in the IBM Technical Reference Manual. The 'current data' fields
are listed in the order displayed by debug which is backwards due
to 8088 processing as described above.
FIELDS WHICH MAY BE MODIFIED
Dynamic define area length - changing the amount of dynamic define
area reserved for new key definitions. This figure should not
exceed 13,500 decimal, '346c' hex.
Address: 30d
Current data: x'2c01' Be careful to reverse order
Alt = - changing the define key initiator/terminator
Function: To change the key used to begin and end the key
definition process.
Address: 38f
Current data: x'0083' Be careful to reverse order
Alt - - changing the Newkey variable length fill-in-the-blanks key
initiator
Function: To change the key used to begin and end the
definition of the variable length fill-in-the-blanks fields
during key definition.
Address: 387
Current data: x'0082' Be careful to reverse order
CR - changing the end of the variable fill-in-the-blanks terminator
Function: To change the key used to end a variable length
fill-in-the-blanks pause during key translation.
Address: 38d
Current data: x'0d1c' Be careful to reverse order
Ctrl 6 - changing the Newkey toggle key
Function: To change the key used to turn Newkey off and on.
Address: 385
Current data: x'1e07' Be careful to reverse order
Ctrl - - changing the Newkey fixed length fill-in-the-blanks key
initiator
Function: To change the key used to begin and end the
definition of the fixed length fill-in-the-blanks fields
during key definition.
Address: 389
Current data: x'1f0c' Be careful to reverse order
Ctrl 2 - changing the no translate key indicator
Function: To change the key used to signal that the next key
entered during key definition is not to be translated.
Address: 38b
Current data: x'0003' Be careful to reverse order
DESCRIPTION OF KEY TRANSLATION DISPLAY
The Newkey1 directory and key translation display use four
character codes to describe characters. For the most part these
codes are self explanatory, but if there is any confusion about
their meaning the following should clarify matters.
^ - control prefix
~ - alt prefix
\ - capitalization prefix
F - followed by a number is a function key prefix
SPECIAL
CODE - DESCRIPTION
CR - return key (Carraige Return)
FILL - fixed length fill-in-the-blanks spot
NOTR - 'no translate' character, indicates that next character
will not be translated.
PAUS - variable fill-in-the-blanks spot
SPAC - space or blank
^END - control-end
^HOM - control-home
^PGD - control-pgdn
^PGU - control-pgup
^PSC - control-PrtSc
^<-- - control-<-- (cursor backwards)
^--> - control---> (cursor forwards)
UNK - unknown character, could not translate. This should not
happen.
.pa
SAMPLE KEY DEFINITION FILES
Several sample key definition files are supplied with Newkey
to illustrate its use and provide you with a starting point.
These files are described below. There are a general set of DOS
keys common to these files which are described at the end.
ASM.KEY - Assembler programmer's customization file
KEYS ACTION
---- ------
Alt a ';****.....****' (line of '*'s)
Alt b 'byte ptr '
Alt o 'offset '
Alt w 'word ptr '
I use Wordstar to do my programming so that these commands
are merged with my Wordstar file. In addition to these, I use F1
to set up my assembler environment under Wordstar. This involves
mainly setting appropriate tab stops and I have left F1 set up to
do this.
DVORAK.KEY - Dvorak keyboard customization
This file contains the key definitions necessary to redefine
your keyboard to the Dvorak layout. There is one minor problem
with 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.
For more information about the Dvorak layout consult the
article "Using IBM's Marvelous Keyboard" page 402 in the May 1983
issue of Byte magazine.
The general DOS definitions are not part of this file.
TEST.KEY - illustrates Newkey features
KEY ACTION
--- ------
F1 Illustrates the fixed length fill-in-the-blanks feature.
F2 Illustrates the variable length fill-in-the-blanks
feature.
F3 Illustrates the no translate feature.
Alt 1 Illustrates the nested definitions feature. Each key
thru returns 'levelx' plus whatever the next higher alt number
is defined as. These are defined as described in the
Alt 9 'Nested key translation' section earlier in the text.
WS.KEY - Wordstar customization file
Newkey may be used to customize the Wordstar environment. F1
creates a customized initial environment. Many of the commands
depend upon making sure that alt f is defined to be the active
Wordstar file you are using.
KEYS ACTION
---- ------
F1 Set help level to 0, toggle off justification,
toggle off auto-hypenation
F2 Save file (Ctrl KS), return to original cursor
position (Ctrl QP), copy file (defined by alt f) to
your a disk (Ctrl KO).
This will save your current file as defined by alt f
and then copy it to your a disk. This is a one step
procedure Wordstar users on a ram disk can use to
save their file on a floppy without leaving their
current position within Wordstar.
Alt F2 Save file and return to original cursor position.
F5 Underscore
Alt F5 Open underscore, accept input, close underscore
after return key is struck.
F6 Double strike
Alt F6 Open double strike, accept input, close double
strike after return key is struck.
Alt F9 Address a short envelope and leave me at position to
start receiver's address.
Alt F10 Type my address and end at spot to enter date.
Del Delete character directly above cursor.
Alt d Call up Wordstar document file (d, alt f, return)
Alt f Current file name. Used by F2, alt d, and alt n.
Alt n Call up Wordstar non-document file (n, alt f, return)
GENERAL DOS KEYS COMMON TO MOST KEY FILES:
Alt c 'copy '
Alt e 'erase '
Alt f Current file name. Used in other key translations.
Alt t 'dir '
INFORMATION ABOUT THE FILES ON THE NEWKEY DISK
LOADNEW.BAT - This is a sample batch file which will load Newkey
and the sample Wordstar key definition file, WS.KEY.
NEWKEY.DOC - This is the documentation file which contains this
document. It is only required when you want to print the
documentation.
NEWKEY.EXE - This is the program whick actually replaces IBM's
keyboard interrupt (x'16). This program remains resident while
other programs execute and unless called upon to translate will be
transparent.
NEWKEY1.EXE - This program provides several functions necessary to
effectively use Newkey and is described further in this document.
PRINTDOC.EXE - This program will print the document file,
NEWKEY.DOC and is only needed for that purpose.
All files ending in 'KEY' are sample key definition files and
are described elsewhere in this document.
.pa
NEWKEY OVERVIEW
NEWKEY REQUIREMENTS
Newkey requires PC-DOS 1.1 OR 2.0 and will run on either a
monochrome or color monitor. The base program requires
approximately 3.7K of memory plus an additional 2 bytes per
character of translation and reserved dynamic define area.
HOW DOES NEWKEY WORK?
The Newkey keyboard enhancer consists of two programs,
Newkey.exe and Newkey1.exe. Newkey.exe, when invoked will replace
the normal keyboard interrupt (x'16') of DOS. Just as the normal
keyboard interrupt, Newkey will read the keyboard buffer and
return the key to the requesting program, except that Newkey will
first check the key against its key definition file (where the key
translations are stored) and if it finds an entry for that key it
will return the corresponding translation.
Newkey1.exe, the companion program to newkey.exe, provides
several functions necessary to use Newkey.exe effectively (as
described in the 'Newkey1 Overview'. Newkey1 is loaded into high
memory so that key definition files may be freely loaded. This
raises a potential problem should there not be enough free space
between the top of Newkey and the bottom of Newkey1 to load a key
definition file. If this should happen results will be
unpredictable.
NEWKEY'S LIMITATIONS
Newkey allows redefinition of any key (except ctrl break,
ctrl 6, ctrl 2,and alt =). Newkey will handle up to approximately
27k of key definitions, but any key definition may be as long as
you wish up to this maximum. The 27k maximum includes a few bytes
for overhead and two bytes per character of translation. Results
are unpredictable should the 27k maximum be exceeded.
.pa
TIPS ON USING NEWKEY
USE YOUR AUTOEXEC.BAT FILE
Put the commands to load Newkey and your key definition file
in your autoexec.bat file. This will cause Newkey and your key
definitions to be automatically loaded whenever you boot. If you
have disks for different purposes, each disk could contain a copy
of Newkey, Newkey1 and your key definition files.
An example of the statements you would want to use can be
found in LOADNEW.BAT, a batch file supplied with Newkey. Use your
editor to copy these statements into your autoexec.bat file and
change the parameters as appropriate.
SETTING THE DYNAMIC DEFINE AREA SIZE PARAMETER
When you first install Newkey you will be actively defining
keys. This will require a lot more space in the dynamic define
area than you will normally use. During these early sessions set
the dynamic define area size parameter to a large number, 5000 for
example. This will enable you to define key definitions using up
to 5000 characters without running out of space.
Later, when you have finished creating your key definition
files, lower the number to a level which will support your normal
key definition needs during a session. Newkey uses 300 as a
default, but you can set the number as low as 5. Of course you
may set the define area size at any level you wish, but remember,
that area is not available to any other programs.
DOS 2.0 users must also allow enough space to load their key
definitions in addition to supporting their normal key definition
needs during a session (see Special Note to DOS 2.0 Users in LOAD
FILE section under NEWKEY1 FUNCTIONS.)
The dynamic define area size parameter is specified when you
load Newkey. For more information refer to the section Newkey
Parameters under LOADING NEWKEY.
DO NOT FORGET TO SAVE YOUR KEY DEFINITIONS
Do not forget to save your key definitions at the end of a
session. Unless you save the keys you have defined during the
current session they will be lost when you re-boot or turn off the
computer.
It is suggested that as soon as you have finished defining a
set of keys you wish to keep, that you save them immediately. It
is very easy to start a session defining new keys, proceed to use
them for the rest of the session, and then turn off the computer.
If this happens, you will have to redefine each key again. For
information on saving your key definitions refer to the SAVE FILE
section under NEWKEY1 FUNCTIONS.
COMBINING KEY DEFINITION FILES
Occasionally you may wish to combine two key definition
files. This may be done by loading one of the files into memory
using the LOAD FILE function, merging the second into memory using
the MERGE FILE function, and then saving the key definitions using
the SAVE FILE function. These functions are described under
NEWKEY1 FUNCTIONS.
MULTIPLE KEY DEFINITION FILES
You may wish to define multiple key definition files based
on function. This would allow you to easily build different key
definition files without redefining each function's keys for each
key definition file. They could also be used to create in-memory
key definitions at boot time without combining them all into one
key definition file.
For example, you could define a file for your word
processor, speadsheet, general DOS commands, etc. and then merge
various combinations of them together to create one file, or you
could merge each file in at boot time.
.pa
DISCLAIMER.
In no event will the author be liable to you for any damages,
including any lost profits, lost savings or other incidental or
consequential damages arising out of the use of or inability to
use these programs, even if the author has been advised of the
possibility of such damages, or for any claim by any other party.
PERMISSION TO COPY:
Individuals are granted permission by the author to freely
copy the Newkey programs and documentation for their own use or to
share with others, so long as no price or other consideration is
charged.
Computer clubs and other non-profit organizations are granted
permission by the author to freely copy the Newkey programs and
documentation and share it with their members, so long as:
1. No price or other consideration is charged. However, a
distribution cost may be charged for the cost of the diskette,
so long as it is not more than $10 total.
2. Club members are informed of the user-supported concept and
encouraged to support it with their donations.
3. The programs and documentation are not modified in any way and
are distributed together.
Companies are granted permission by the author to copy the
Newkey programs and documentation for use on other computers and
at other locations in the company, so long as:
1. The full registration fee of $30 has been paid for the
original copy of the program.
2. A usage fee of $25 is paid for each additional "building"
where Newkey will be used. Within any building for which the
usage fee has been paid, Newkey may be copied freely for use
on any computer in that building.
.pa
THE USER-SUPPORTED CONCEPT.
User-supported Software
You are encouraged to copy and share this program with others.
If after evaluating this program you find it to be useful,
I trust you to send a $30 payment.
Frank Bell
20950 Smallwood
Birmingham, MI 48010
User-supported software is an experiment in distributing computer
programs, based on these beliefs:
1. That the value and utility of software is best assessed by the
user on his/her own system.
2. That the creation of personal computer software can and should
be supported by the computing community.
3. That copying of programs should be encouraged, rather than
restricted.
Anyone may legally obtain an evaluation copy of the program
from a friend or computer club. After you have had a chance to
use and evaluate the program in your own environment, you are
trusted to either forward a payment to the author, or to
discontinue use of the program. In any case, you are encouraged
to copy the program for evaluation by others.
Free distribution of software and voluntary payment for its
use eliminates costs for advertising and copy protection schemes.
Users obtain quality software at greatly reduced cost. They can
try it out before buying, and do so at their own pace and in the
comfort of their own home or office. The best programs will
survive, based purely on their quality and usefulness.
Please join the experiment.
If you believe in these ideals, your contribution is
solicited to help make them work.
PROBLEMS, SUGGESTIONS, ETC.
If you should have any problems, suggestions or questions
please feel free to write me at the above address.
If you should have any problems, suggestions or questions
pl