mroz@hudson.steinmetz (peter a mroz) (12/30/87)
I just put the latest posting of mskermit together (parts 2 and 3 were a uuencoded file). Following are some observations; if anyone has found out more new features please post or email me. 1. The mode line is now toggled with the numeric keypad "-" key. Previously the "+" key was used. 2. The mode can be switched with ALT-- (hold down the ALT key and hit "-"). The mode switches between VT102, VT52, HEATH-19, and Tektronix 4010. 3. The Tektronix emulation is impressively fast. However, GIN mode doesn't seem to work properly. There must be some way to set the GIN terminator but I haven't found it. For those of you who don't know it, GIN mode is Graphics INput mode, where a graphics cursor allows one to pick points on the screen. 4. Hitting ALT-= clears the screen. Very convenient feature. 5. The version is 2.29C, not 2.30 as advertised (I think!) 6. If there is enough memory the graphics screen is saved. VERY NICE feature. 7. Seems to pick up the type of graphics adapter automatically. I haven't tested this on a Hercules though . . . 8. My take file that redefined ALTed keys gets the message Notice this form of set key is obsolete Here's a few lines from the take file: Comment Meta-letter and Meta-Ctrl-letter, USA-keyboard set key scan 2078 \033a set key scan 3102 \033\001 set key scan 2096 \033b set key scan 3120 \033\002 If anyone knows of any new features or how to set keys please post or email me.
windley@iris.ucdavis.edu (Phil Windley) (12/30/87)
In article <8331@steinmetz.steinmetz.UUCP> mroz@hudson.steinmetz () writes: > > 7. Seems to pick up the type of graphics adapter > automatically. I haven't tested this on a Hercules though . . . > It works with Hercules as well. > >If anyone knows of any new features or how to set keys please post or >email me. Here's a few lines from my mskermit.ini file that sets some keys: set key \338 \Kkp0 set key \335 \Kkp1 set key \336 \Kkp2 ... I found these out mainly by a combination of experimenting and accident. I'm still trying to figure out how to write scripts, etc. Is there documentation for this beast somewhere? Phil Windley Robotics Research Lab University of California, Davis
akk2@ur-tut.UUCP (Atul Kacker) (12/31/87)
Here is the relevant section from the Kermit docs on remapping keys. For
those of you with ftp or BITNET access, the full docs can be obtained from
Columbia Univ. They are approx 300K in size and there's no way I am going
to post them here. (Neither should anyone else, actually). I am sorry, I
will **NOT** mail them to anyone.
---------------------------------------------------------------------------
SET KEY
Syntax: SET KEY {[key-specifier [key-definition]], ON, OFF, CLEAR}
WARNING: The format and functions of this command have changed substan-
tially since version 2.29B and earlier. The changes were made in order
to allow key redefinition to work on a wider variety of systems and
keyboards without customization of the program source code for each
configuration. See section 1.10 for further details.
The SET KEY command is one of the most useful -- and confusing -- features of
MS-Kermit. Typical uses:
- You're used to having the ESC key in the upper left corner of the
keyboard, but your new PC keyboard has an accent grave ("`") there.
You can use SET KEY to make the accent key transmit an ESC, and you
can assign accent grave to some other key.
- You send a lot of electronic mail, and always sign it the same way.
You can put your "signature" on a single key to save yourself a lot
of repetitive typing.
- You must set up your PC's function keys or numeric keypad to work
properly with a host application.
The SET KEY command does these things and more, and SHOW KEY gives us assis-
tance. A key can be defined to:
- send a single character other than what it would normally send,
- send a string of multiple characters,
- invoke a CONNECT-mode Kermit action verb,
- send itself again.
SET KEY specifies that when the designated key is struck during terminal emula-
tion, the specified character or string is sent or the specified Kermit action
verb is performed. Key definitions operate only during CONNECT, not at
Kermit-MS> or DOS command level.
The key-specifier is the identification of the key expressed in system-depend-
ent terms. This can be a letter, such as Q for the key which emits an upper
case Q, or the numeric ASCII value of the letter in backslash notation (e.g.
"\81"), or else the numerical "scan code" observed by the system when the key
is pressed (e.g. "\3856" for Ctrl-Alt-Q on an IBM PC). Material printed on
keycaps is not necessarily a guide to what the key-specifier should be. When
the word CLEAR is used in place of a key-specifier, all key definitions are
cleared and then any built-in definitions are restored.
A string definition is one or more characters, including 8-bit values expressed
in backslash form, such as
SET KEY \315 top \13 list\13 IBM F1 key sends "top <cr> list<cr>"
SET KEY S L S key sends upper case L
SET KEY T \27[m T key sends three bytes ESC [ m
The string begins with the first non-spacing character following the key iden-
tification and continues until the end of line, exclusive of any trailing
spaces. If a semicolon comment is used and the definition is given in a TAKE
file, the line ends at the last non-spacing character before the semicolon.
Curly braces, {...}, can be use to delimit the string in case you want the
definition to include trailing spaces. All text after the closing bracket is
ignored.
SET KEY \315 {login } this extra text is ignored
This manual does not contain a list of all the scan codes for all the keys on
all the keyboards on all the PCs supported by MS-Kermit -- that would be a
manual in itself. Rather, in order to obtain the key-specifier for the SET KEY
command, you must type a SHOW KEY command and press the desired key or key com-
bination. This will report a scan code that you can use as the key specifier
in a SET KEY command. To do this for many keys is a laborious process, so you
should collect all your SET KEY commands into a file, which you can TAKE, or
put them in your MSKERMIT.INI file.
If you enter SET KEY by itself, with no key specifier, the command will prompt
you to press the selected key and again for the definition string. Certain
characters, like ESC and CR, may not be entered literally into the string, but
can be included by inserting escape codes of the form \nnn, a backslash fol-
lowed by a 1- to 4-digit number corresponding to the ASCII value of the desired
character. Where an ASCII digit follows directly after a backslash number,
confusion can be avoided by placing curly braces {} around the backslashed num-
ber; thus, \{27}5 represents the two ASCII characters ESC 5.
Here is an example of the use of SET KEY to assign ESC (ASCII 27) to the accent
grave key. First the user gets the key-specifier for the key:
Kermit-MS>show key
Push key to be shown (? shows all): `
ASCII char: ` \96 decimal is defined as
Self, no translation.
Free space: 145 keys and 96 string definitions, 894 string characters.
The free space report says that 145 more keys may be redefined, and up to 96 of
them may have multi-character strings assigned to them (as opposed to single
characters), and that there are 984 bytes left for these strings, in total.
Confident that there is enough space left for a new key definition, the user
proceeds:
Kermit-MS>set key
Push key to be defined: `
Enter new definition: \27
Once a key definition is constructed and tested, it may be entered on a single
line in a command file (such as MSKERMIT.INI):
set key \96 \27
To prevent accidents, SET KEY shows the current definition before asking for a
new one; enter a Control-C to keep the current definition, or a carriage return
to undefine the key, or a query mark (?) to see available choices.
A more exact definition of SET KEY follows these construction rules:
SET KEY [<key-ident><whitespace><definition>]
where
<key-ident> is:
- a single ordinary printable ASCII character, or
- the numerical equivalent of an ASCII character (ESC is \27), or
- a scan code written as a backslashed number (e.g. \3856 for
Ctrl-Alt-Q), or
- keyword SCAN followed by a backslashed scan code number
(obsolete), or
- keyword CLEAR which removes all current key definitions and then
restores any built-in definitions.
- ? (a question mark), which displays a help message.
Scan codes, non-printing ASCII characters, 8-bit characters, and other bi-
nary codes are written in backslash form (see Table 1-1 for ASCII codes):
\123 a decimal number (decimal is the default number base)
\d789 a decimal number (also \D)
\o177 an octal number (also \O)
\x0d a hexadecimal number (also \X)
\{b###} braces around material following the slash, where the
numerical base letter b is d, o, x, or absent.
<whitespace> is one or more spaces and or tabs.
<definition> is:
missing altogether which "undefines" a key.
\number (a number in backslash notation between 0 and 255 decimal)
- assigns a character with the corresponding 8-bit value.
\Kverb for a Kermit action verb; upper or lower case K is OK.
\{Kverb} Same. Verb is the name of an action verb.
text a string with allowed embedded whitespace and embedded bi-
nary chars as above. This kind of string may not commence
with sequences \K or \{K. The string begins with the first
non-whitespace character and ends at the end of the line
(exclusive of trailing spaces and comments).
{text} string confined to material within but excluding the
braces. Note, where the number of opening braces exceeds
the number of closing braces the end of line terminates the
string:
{ab{}{{c}d ==> ab{}{{c}d
but
{ab}{{c}d ==> ab
? Displays help message and lists all action verbs.
Control-C Quits the Set Key command without making changes.
Curly braces can be used to separate backslash numbers from regular ASCII text,
such as when we want to send the two bytes ESC 8 (ESC is decimal 27):
SET KEY T \{27}8 T key sends ESC 8
SET KEY L {words \{27}8 more words} trailing junk to be ignored
If a string begins with a left curly brace then Kermit counts them and ends the
string on the matching right curly brace (or end of line); the SET KEY L ex-
ample above relies on brace matching to omit the trailing comment. The outer
curly brace delimiters are not sent but the inner ones are; for example:
SET KEY U {a {b}\{27}8} sends the 7 bytes "a {b}ESC8"
SET KEY U a{ {b}\{27}8} sends the 9 bytes "a{ {b}ESC8}"
SET KEY U a{ {b}\{{27}}8} sends the 15 bytes "a{ {b}\{{27}}8}"
A definition is removed, that is a key is defined as itself, by giving an empty
definition:
SET KEY q q key sends q again
SET KEY \331 IBM left arrow key is undefined.
The keyboard can be restored to its startup state, that is all redefinitions
removed and all built-in defitions restored, by using the keyword CLEAR in
place of the key identification:
SET KEY CLEAR
Undefined keys which do not send ASCII characters are trapped by the keyboard
translator and are rejected; a beep results from using an undefined non-ASCII
key.
SET KEY OFF disables the key definition mechanism entirely, but leaves the cur-
rent definitions in place. SET KEY OFF also directs MS-Kermit to read keycodes
from DOS, rather than BIOS, so that console drivers like ANSI.SYS that operate
at the DOS level, may be used during Kermit CONNECT sessions. This would also
apply to any special keyboards that come with DOS-level drivers. SET KEY ON
turns key definition back on, and returns Kermit to processing keystrokes at
the BIOS level.
Kermit Action Verbs:
An action verb is the shorthand expression for a named Kermit procedure, such
as "generate the proper sequence for a left arrow," "show status," "send a
BREAK," and others; verbs are complex actions and each verb has a name. In a
key definition the verb name is preceeded by backslash K (\K) to avoid being
confused with a string. Verbs and strings cannot be used together on a key.
SET KEY \331 \Klfarr
SET KEY \2349 \Kexit
makes the IBM keyboard left arrow key execute the verb named lfarr which sends
the proper escape sequence for a VT102 left arrow key (which changes depending
on the internal state of the VT102). The leading \K identifies the definition
as a Kermit verb, so no string can start as \K or as \{K in upper or lower case
(use \92K). The second example has Alt-X invoking the Leave-Connect-Mode verb
"exit" (same as Kermit escape character "^]" followed by C).
Each system has its own list of verbs and predefined keys. Table 1-3 shows
those available for the IBM PC family (there are also some additional verbs for
reassigning Heath or VT100 function keys, see section 1.15.1). The SET KEY
command shows the list of available verbs when a query mark (?) is given as a
definition. SHOW KEY displays all currently defined keys or individually
selected ones; SHOW KEY can be executed only interactively.
-------------------------------------------------------------------------------
Verb Meaning
\Kupscn Roll up (back) to previous screen
\Kdnscn Roll down (forward) to next screen
\Khomscn Roll up to top of screen memory
\Kendscn Roll down to end of screen memory (current position)
\Kupone Roll screen up one line
\Kdnone Roll screen down one line
\Kprtscn Print the current screen
\Kdump Append the current screen to dump file
\Klogoff Turn off session logging
\Klogon Turn on session logging
\Ktermtype Toggle terminal type
\Kreset Reset terminal emulator to initial state
\Kmodeline Toggle modeline off/on
\Kbreak Send a BREAK signal
\Klbreak Send a "long BREAK" signal
\Khangup Drop DTR so modem will hang up phone
\Knull Send a null (ASCII 0)
\Kdos "Push" to DOS
\Khelp Display CONNECT help message
\Kstatus Display STATUS message
\Kexit Escape back from CONNECT mode
\Kgold,\Kpf1 VT102 keypad function key PF1
\Kpf2..\Kpf4 VT102 keypad function keys
\Kp0..\Kp9 VT102 keypad numeric keys
\Kdot,\Kminus,\Kcoma,\Kenter Other VT102 keypad keys
\Kuparr,\Kdnarr,\Klfarr,\Krtarr VT102 cursor (arrow) keys
Table 1-3: Kermit-MS Verbs for the IBM PC Family
-------------------------------------------------------------------------------
Some systems have preset key definitions when Kermit first begins (those for
the IBM PC are shown in section 1.15.1). You can find out what they are on
your system by typing SHOW KEY, and then question mark on the next line. You
may supplement or change the predefined keys with SET KEY commands typed inter-
actively or in MSKERMIT.INI or other command files.
The MS-Kermit CONNECT command may be used in conjunction with certain console
drivers that do their own key redefinitions. Since MS-Kermit intercepts
keystrokes at the BIOS level, drivers like ANSI.SYS which work at the DOS level
will have no effect during CONNECT, even though they work at MS-Kermit command
level. Other drivers, like SuperKey and ProKey, work at the BIOS level, and
their key assignments will remain effective during Kermit terminal sessions,
and additional Kermit SET KEY assignments may be made "on top" of them.
--
-------------------------------------------------------------------------------
Atul Kacker | Internet: akk2@tut.cc.rochester.edu
| UUCP: {ames,cmcl2,decvax,rutgers}!rochester!ur-tut!akk2
-------------------------------------------------------------------------------
msa@clinet.FI (Markku Savela) (01/07/88)
Thank's for the kermit 2.29C -- it's nice. Surprisingly the communication portion worked (using BIOS) quite nicely with my very non-compatible MS-DOS machine (it has interrupt driven INT14-interface, so it works even with 9600). (For those few who want to know: the machine is Nokia MikroMikko 2, with Intel 80186, etc) Unfortunately, the display update is not so perfect. But, I use it only for transfering files with long packets. I only wish it had had a command to *force* it to use the BIOS (I assume it means INT14). I have another machine, which is an AT-compatible. And I have a modified PC-IP/Telnet, that catches INT14. If I could force the Kermit to INT14, I could run this on top of TELNET-connection... (I want to go from PC to VAX/VMS with TELNET and call out from there with a modem -- strange, but it would have some uses for me...) -- Markku Savela, UUCP: msa@clinet.fi