home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPM
/
TERM
/
QK21.LBR
/
QK21.DQC
/
QK21.DOC
Wrap
Text File
|
2000-06-30
|
9KB
|
221 lines
Q W I K K E Y
A Keyboard Redefinition Program
V2.1 24-MAR-1985
Copyright (c) 1984, 1985 by Anton R. Fleig
QwikKey may be used for non-commercial purposes only.
No commercial use of QwikKey may be made without the
author's express written permission.
1.0 INTRODUCTION
QwikKey allows the user to assign a character strings to keys.
When a key having a string defined in this way is struck, the
defined string, rather than the character normally associated
with the key, is delivered to the program running at the time.
Key definitions may be loaded from files containing previously
saved definitions, or they may be defined on-the-fly, even while
a program is running. Both normal keys (i.e. keys generating a
single character) and keys generating escape sequences are
supported.
The maximum length of the defined string is 31 minus the length
of the character or string normally generated by the key in
question. Thirty-one different keys may be defined.
2.0 OPERATION
2.1 The First Time
QwikKey V2.0 should be invoked for the first time with the
command "QK". QwikKey will prompt for an "attention/termination
character" and an "escape sequence lead-in character".
The attention/termination character is used to gain the attention
of QwikKey in order to enter a new key definition. The same
character is used to terminate the definition string. Thus, this
character should be one that is seldom if ever used, both from
the keyboard, and in key definition strings.
The escape sequence lead-in character is the first character
generated by keys which generate escape sequences rather than
single characters. This is almost always the ESCAPE character
(ASCII 27 decimal).
After the attention and lead-in characters are entered, QwikKey
loads itself below the CCP (Console Command Processor), and
returns control to CP/M. The message "QwikKey loaded." will
appear at each warm boot to remind you that QwikKey is indeed
active.
At this point, striking the attention character key will cause
QwikKey to respond with the following prompt:
Key:
Now strike the key you wish to define. The character normally
generated by the key will be displayed, followed by an equals
sign. Suppose for example, you wished to define the control-K
key. The following would appear after striking CTRL-K:
Key: ^K =
Now enter the definition string, followed by the attention
character again. Suppose we wished to define ^K as "PIP
A:=B:*.*[V]". The following would be displayed just before we
hit the attention character to terminate the definition:
Key: ^K = PIP A:=B:*.*[V]
Upon entry of the termination character, the key definition
dialogue is erased. Note that characters overwritten by the
definition dialogue are not rewritten, but replaced on the screen
with spaces.
At this point, the key has been defined, and striking the defined
key will result in the definition string being delivered to the
current program (perhaps the CCP).
2.2 Saving Definitions
The following command will save your current definitions for
later recall in the file KEYDEF.DAT. It can only be issued at
the CCP prompt level (e.g. A>).
A>QK SAVE KEYDEF.DAT
If the filename is omitted in the above example, the definitions
will be saved in the file QWIKKEY.DEF. SAVE may be abbreviated
to the single character "S".
Note that the attention/termination character and the escape
sequence lead-in character are also saved in the definition file.
2.3 Loading Previously Saved Definitions
The following command will load previously saved commands from
KEYDEF.DAT into QwikKey's definition table in memory, replacing
any current definitions. It can only be issued at the CCP prompt
level (e.g. A>).
A>QK LOAD KEYDEF.DAT
If the filename is omitted in the above example, the definitions
will be read from the file QWIKKEY.DEF. LOAD may be abbreviated
to the single character "L".
Note that the attention/termination character and the escape
sequence lead-in character are also read from the definition
file.
2.4 Removing QwikKey
QwikKey can be removed from memory with the following command.
A>QK REMOVE
The word "remove" in the above command can be abbreviated with
the single character "R".
3.0 ADVANCED TOPICS
The following topics are intended for those familiar with DDT and
the attendant risks in its use.
3.1 Creating Definitions Containing Non-keyboard Characters
Definitions may be created containing characters not generated by
any key on the computer's keyboard through direct modification of
the key definition file(s). This might be useful to add a DELETE
key to a computer having only a BACKSPACE key, for example.
In order to do this, the structure of the key definition file
must be understood. The key definition file consists of 32
logical records of 32 bytes each. The first record's first two
bytes are the attention character and the lead-in character,
respectively. The third byte contains a warm boot flag (see
section 3.2). The remainder of the first record is currently
unused and uninitialized. The remaining 31 records contain
definition strings in the following format:
[Key string] 0 [Definition string] 0
The key string is the keyboard generated character(s). Both the
key string and the definition string are null-terminated, as
shown above.
The following is an example of the sequence of commands used to
define CTRL-D to be DELETE, assuming the keyboard being used
cannot generate the DELETE character.
A>DDT QWIKKEY.DEF Default definition file
DDT VERS 2.2
NEXT PC
0500 0100
-S100 First record
0100 2B 0B Make ^K attn char
0101 1B . Quit now (note lead-in char)
-S120 First definition
0120 56 08 Key string is BS char
0121 1A 00 Null terminate
0122 09 7F Delete char is definition
0123 AC 00 Null terminate
-G0 Mods done
A>SAVE 5 QWIKKEY.DEF Save on disk
3.2 Disabling the Warm Boot Message
The third byte in the key definition file, if non-zero, (the
default) causes the "QwikKey loaded." message to be displayed on
each warm boot. Setting this byte to zero will disable this
feature.
4.0 MISCELLANEOUS
QwikKey occupies the memory space just below CP/M's Console
Command Processor (CCP). In order to accomplish this, several
pointers within the system are modified as QwikKey is installed
(notably the WBOOT, CONST, and CONIN vectors in the BIOS jump
table, and the BDOS vector at location 5). It is possible that
QwikKey could interact detrimentally with other programs,
especially any that attempt similar modifications. Should this
circumstance occur, you may want to remove QwikKey while the
other program is executing. The REMOVE command may be used for
this.