home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-01-20 | 331.3 KB | 6,695 lines |
-
- MS-DOS KERMIT USER GUIDE
-
-
- FOR THE IBM PC FAMILY, COMPATIBLES, AND OTHER MS-DOS SYSTEMS
-
-
- VERSION 2.32
-
-
- C. Gianone, F. da Cruz
-
- Columbia University Center for Computing Activities
- New York, New York 10027
-
-
- J.R. Doupnik
-
- CASS and EE, Utah State University, Logan, UT 84322
-
-
- December 11, 1988
-
-
-
- Copyright (C) 1981,1988
- Trustees of Columbia University in the City of New York
-
- Permission is granted to any individual or institution to use, copy,
- or redistribute this document so long as it is not sold for profit, and
- provided this copyright notice is retained.
- 1. MS-DOS KERMIT
-
- --------
- This document is formatted as an ordinary, plain text ASCII disk file, from
- SCRIBE text formatter source. Typeset copies are available from Columbia
- University.
- --------
-
- Program: Joe R. Doupnik (Utah State University), with contributions by
- James Harvey (Indiana/Purdue University), James Sturdevant
- (A.C. Nielson Company), and many others. Originally by Daphne
- Tzoar and Jeff Damens (Columbia University). See History.
-
- Language: Microsoft Macro Assembler (MASM)
-
- Version: 2.32
-
- Released: December 11, 1988.
-
- Documentation: Christine Gianone, Frank da Cruz (Columbia University),
- Joe R. Doupnik (Utah State University)
-
- Dedicated To: Peppi
-
-
- Kermit-MS Capabilities At A Glance:
-
- Local operation: Yes
- Remote operation: Yes
- Transfers text files: Yes
- Transfers binary files: Yes
- Wildcard send: Yes
- File transfer interruption: Yes
- Filename collision avoidance: Yes
- Can time out: Yes
- 8th-bit prefixing: Yes
- Repeat count compression: Yes
- Alternate block check types: Yes
- Terminal emulation: VT102, H19, VT52, Tektronix 4010
- Communication settings: Speed, Parity, Flow Control, Echo
- Transmit BREAK: Yes (and Long BREAK)
- IBM mainframe communication: Yes
- Transaction logging: Yes
- Session logging (raw download): Yes
- Raw upload: Yes
- Act as server: Yes
- Talk to server: Yes
- Advanced server functions: Yes
- Advanced commands for servers: Yes
- Local file management: Yes
- Command/init files: Yes
- Command macros: Yes
- Extended-length packets: Yes
- Local area networks: Yes (NetBIOS and other support)
- MS-Windows compatibility: Yes
- Attribute packets: Yes
- Sliding windows: No
-
- MS-DOS Kermit, or "Kermit-MS" (or MS-Kermit), is a program that implements the
- Kermit file transfer protocol for the entire IBM PC family, including the PS/2
- series, IBM compatibles, and several other machines based on the Intel 8086
- processor series (8088, 80286, 80386, etc) and the DOS operating system family
- (PC-DOS or MS-DOS, henceforth referred to collectively as MS-DOS or simply
- DOS).
-
- It is assumed you are acquainted with your PC and with DOS, and that you are
- familiar with the general ideas of data communication and Kermit file transfer.
- A very brief overview is given here, but for details consult the early chapters
- of the Kermit User Guide (of which this document is a chapter), or the book
- Kermit, A File Transfer Protocol, by Frank da Cruz, Digital Press (1987), order
- number EY-6705E-DP (phone 1-800-343-8321), which also includes background
- tutorials on computers, file systems, and data communication (including modems,
- cabling, etc). For further information about Kermit documentation, updates,
- lists of current available versions, and ordering information, write to:
- Kermit Distribution
- Columbia University Center for Computing Activities
- 612 West 115th Street
- New York, NY 10025 (USA)
-
-
- 1.1. System Requirements
-
- Kermit-MS version 2.32 runs in as little as 100K of memory, but will occupy up
- to 160K or so if it can be found for extra screen rollback memory, macro
- definitions, etc. Versions not using screen rollback memory will not require
- the additional space. It will also try to leave 24 Kbytes free for a second
- copy of COMMAND.COM which is needed for execution of certain commands.
-
- On the IBM PC family, Kermit-MS 2.32 performs almost complete emulation of the
- DEC VT-102 and Heath/Zenith-19 terminals at speeds up to 19,200 baud or
- greater, lacking only the VT102's smooth scrolling and (on most display boards)
- 132 column features. And as of version 2.30, Kermit-MS also performs Tektronix
- 4010/4014 graphics terminal emulation on IBM PC family systems equipped with
- CGA, EGA, or other graphics adapters, with either color or monochrome monitors.
-
- Much of Kermit's speed is accomplished by direct writes to screen memory, but
- this is done in a "TopView-aware" manner to allow successful operation in win-
- dowing environments like MS-Windows, DesqView, and TopView itself. Speed is
- also due to direct access of the serial port 8250 UART (Universal Asynchronous
- Receiver/Transmitter) chip, with buffered, interrupt-driven receipt of charac-
- ters and selectable XON/XOFF flow control. Full speed 9600 baud operation is
- possible on 4.77Mhz systems without flow control, but flow control is required
- on these systems for 19,200 baud or higher rates. The IBM PC version should
- also run on near-clones like the DG/1 that differ from true PCs only in their
- choice of UART; non-8250 UARTs are detected automatically, and slower
- non-interrupt driven Bios serial port i/o is used, in which case the top speed
- is in the 1200 baud range.
-
- Kermit-MS 2.32 runs on the entire IBM PC family (the PC, XT, AT, PCjr, Portable
- PC, PC Convertible, PS/2) and compatibles (Compaq, VAXmate, Z150, etc), and
- there are also specially tailored versions for non-IBM-compatibles like the DEC
- Rainbow, HP-110, HP-150, HP Portable Plus, Grid Compass II, Victor 9000, and
- others, plus a "generic DOS" version that should run (slowly) on any 8086-based
- MS-DOS machine. This document concentrates on the IBM version; some of the
- system-dependent capabilities described here may be lacking in the non-IBM ver-
- sions. See section 1.11 for features of different systems.
-
- KERMIT.EXE for the IBM PC family occupies about 102K of disk storage (the
- figure will vary for other versions). This can be reduced by about 15K if you
- run it through EXEPACK. MS-Kermit is not distributed in packed form, because
- problems have been reported on certain systems when this is done. So if you
- decide to pack it, make sure to keep an unpacked version available to fall back
- to in case of problems.
-
-
- 1.2. History
-
- Over the years, MS-Kermit has grown from a Kermit file transfer program that
- embodied a simple terminal emulator into a complex and powerful communication
- program that includes the Kermit file transfer protocol. As a result, the bulk
- of this manual is devoted to the communication features, rather than Kermit
- protocol operation. Skip ahead to the next section if you're not interested in
- the history of MS-Kermit.
-
- MS-DOS Kermit (like the Kermit file transfer protocol itself) is a product of
- the Systems Group of the Columbia University Center for Computing Activities,
- and it was one of the four original Kermit programs (with the CP/M, DEC-20, and
- IBM mainframe versions). It was initially written for the IBM PC with DOS 1.1
- by Daphne Tzoar in 1981-1982, based largely on Bill Catchings's original CP/M
- 8080 assembler version. PC-Kermit (as it was called then) provided basic Ker-
- mit file transfer and VT52 emulation. Joellen Windsor of the University of
- Arizona added conditional assembly support for the Heath/Zenith-100 shortly
- thereafter, and soon after that Dave King of Carnegie-Mellon University added
- Heath-19 terminal emulation, and some patches to let the program run under the
- new DOS version, 2.0. During this era, the program version numbers went from
- 1.0 to 1.20.
-
- With the appearance in the marketplace of many new MS-DOS machines that were
- not compatible with the IBM PC, it became apparent that conditionally assembled
- code supporting each of these machines within a single monolithic source file
- was not the best way to organize the program. Therefore Daphne, along with
- Jeff Damens of Columbia, undertook to reorganize the program in a modular way,
- isolating system dependencies into separate files. The result was version
- 2.26, released in July 1984. It included support for the DEC Rainbow, the
- HP-150, the Wang PC, and generic MS-DOS, as well as for the IBM PC family and
- the H/Z-100. It also included many new features, like 8th-bit prefixing (code
- contributed by The Source Telecomputing), alternate block check selection,
- byte-count compression, server/client operation, access to local file and DOS
- operations, command macros, initialization and command files, screen rollback,
- key redefinition, and more. For the 2.26 release, the executable Kermit
- programs were encoded printably as ".BOO" files, designed by Bill Catchings as
- part of this effort, for network and electronic-mail distribution.
-
- Release 2.27 was produced by Daphne and Jeff in December 1984. Unlike 2.26, it
- ran correctly on the new PC/AT under DOS 3.0, and included support for the NEC
- APC from Ron Blanford of Seattle, WA, and Ian Gibbons of the University of
- Hawaii, and for the TI Professional from Joe Smith of the Colorado School of
- Mines, plus some bug fixes and reorganization. 2.27 is the last version that
- runs under pre-2.0 versions of DOS.
-
- Version 2.28 (Daphne, Jeff, June 1985) added dynamic memory allocation to
- reduce disk storage for the .EXE file, and to allow the program to adjust it-
- self to the PC's memory size, plus the inevitable bug fixes (many of them con-
- tributed by Edgar Butt of the University of Maryland and Gregg Small of the
- University of California at Berkeley). During this period, support for ad-
- ditional MS-DOS systems was added by various people.
-
- In December 1985, a tape showed up at Columbia sent by Prof. Joe R. Doupnik of
- the Center for Atmospheric and Space Studies and EE Department at Utah State
- University. This tape contained version 2.28 modified to fully support the DOS
- 2.0 file system, and to which many new features had been added, notably the
- ability of the MS-DOS Kermit server to process various REMOTE commands (DIR,
- CWD, SPACE, etc). And at about the same time, a tape arrived from James Harvey
- of Indiana/Purdue University, who had changed Kermit's CONNECT command to emu-
- late the popular DEC VT100 terminal. James's material was sent to Joe, who
- then laboriously fitted the VT100 emulation into his own code, keeping the VT52
- and H19 emulation alive as options, and upgrading the VT100 emulation to VT102
- by adding features such as line and character insertion and deletion. The
- result was version 2.29, released in May 1986.
-
- Soon after the release of 2.29, some disks were sent in by James Sturdevant of
- the A.C. Nielson Company, containing a full implementation of the Kermit script
- facility, as described in the Kermit book. This material was sent to Joe, who
- had by now become keeper of MS-DOS Kermit and had already begun work on version
- 2.30 by adding support for extended-length packets. Joe had been carrying on
- voluminous network correspondence (Thanks, BITNET!) with Columbia and with
- MS-DOS Kermit users and testers all over the world, giving birth to many new
- features, including Tektronix graphics terminal emulation, support for opera-
- tion over local area networks, support for 8-bit ASCII terminal connections and
- international character sets, ANSI printer control, and a redesigned, more
- powerful, more portable key redefinition mechanism.
-
- Version 2.30 was formally released on January 1, 1988, after many "alpha" and
- "beta" tests. Among the many contributors to this version were Brian Holley
- and Joe Smith for the Tektronix emulation, Robert Goeke for the NEC AP3 sup-
- port, Brian Peterson and Andreas Stumpf for the Victor 9000, Bob Babcock and
- Joe White for the Sanyos, Christopher Lent for the Wang PC, Jack Bryans for an
- Intel iRMX version, Jim Noble for the Grid Compass, Geoff Mulligan and others
- for the Zenith 100, and David Knoell for the special Rainbow edition. And
- thanks to Gisbert Selke, Jack Bryans, and others for proofreading drafts of
- this manual, with apologies to anyone we neglected to mention.
-
- Work on version 2.31 began within weeks of the release of 2.30. The major new
- features were an improved command interface, a fully capable script programming
- language, and inclusion of file attributes packets to send the time, date and
- size of files along with the data. Support for Ungermann-Bass Net One LAN was
- also added, thanks to contributions from Henrik Levkowetz and Renne Rehmann.
- These changes led to a fairly thorough revision of the interior while providing
- the familiar commands and new features. Meanwhile, Horofumi Fujii and Akihiro
- Shirahasi of the National Laboratory for High-Energy Physics (KEK) in Japan
- adapted 2.31 to the NEC PC-9801, and for this machine added support for
- Japanese Kana and Kanji character sets.
-
- Version 2.32 was issued by Joe in December 1988. It included the usual bug
- fixes, plus several new script programming features, and improved support for
- international use, allowing for languages like Hebrew and Arabic that print
- right to left, adapted from work by Baruch Cochavy, IIT, Technion, Haifa, Is-
- rael. Thanks also to Glenn Trewitt, Mark Zinzow, and Ken Ridley for valuable
- suggestions and contributions to this release.
-
- Like all Kermit programs, MS-DOS Kermit may be freely copied and shared, so
- long as it is not done for profit.
-
-
- 1.3. Using MS-Kermit
-
- MS-DOS Kermit performs two major functions, terminal emulation and file trans-
- fer. File transfer can be done using either the Kermit file transfer protocol,
- or else (without error checking), ASCII or XON/XOFF capture and transmission
- methods. To use Kermit for "raw" uploading or downloading of files, see the
- descriptions of the TRANSMIT and LOG SESSION commands.
-
- Before you can transfer files with another system using Kermit protocol, you
- must first connect to it as a terminal, login if necessary, and start up a Ker-
- mit program there. Kermit's CONNECT command lets you do this by making your PC
- act like a terminal. After setting things up on the other computer, you must
- return to the PC and tell it what to do. Returning to the PC is accomplished
- by typing a special sequence of characters, called the "escape sequence."
-
- The following example shows this process; the other computer is a Unix system,
- but the method is the same with most others. The parts you type are underlined
- (if this document was printed on a printer that can underline), and when you
- type a command, you terminate it with a carriage return, which you can't see in
- the example. The mysterious "^]c" is MS-Kermit's escape sequence, which you
- enter by holding down the Control (Ctrl) key and pressing "]" (right square
- bracket), and then typing the letter C. The example assumes the MS-Kermit
- program is stored on disk as KERMIT.EXE.
-
- Program Dialog: Explanation:
-
- A>kermit
- IBM PC Kermit-MS V2.32 11 Dec 1988
- Type ? or HELP for help
-
- Kermit-MS>set speed 1200 Set the right baud rate.
- Kermit-MS>connect Connect as a terminal.
- ATDT7654321 Dial the modem if necessary.
- CONNECT 1200 The modem tells you you're connected.
-
- Now you're talking to the Unix system.
- Type a carriage return to get its attention.
-
- Login: max Login to the host.
- password: (Passwords normally don't echo.)
- % kermit Run Kermit on the host.
- C-Kermit>receive Tell it to receive a file.
- ^]c Escape back to the PC.
- Kermit-MS>send autoexec.bat Send a file.
-
- (The file is transferred...)
-
- Kermit-MS> Transfer complete, prompt reappears.
-
- In this example, the user types "kermit", and sees the program's herald and its
- prompt, "Kermit-MS>". Then she sets the appropriate communication speed ("baud
- rate"), connects as a terminal, issues a dialing command to a Hayes-like modem
- (you would skip this step if you had a direct connection), logs in to her ID on
- the Unix system which she has dialed, starts "C-Kermit" on the Unix system,
- tells it to receive a file, escapes back to the PC, and tells MS-Kermit to send
- a file. After the file is transferred, the user would normally connect back to
- the Unix system, exit from the Kermit program there, and log out:
-
- Kermit-MS>connect Connect again.
- C-Kermit>exit
- % ^D Logout from Unix by typing Ctrl-D.
- ^]c Escape back to the PC.
- Kermit-MS>exit Return to DOS.
-
- To transfer a file in the other direction, simply exchange the "send" and
- "receive" commands above. That's the easiest and quickest way to use Kermit.
- If this simple scenario does not work for you, issue the MS-Kermit SHOW COM-
- MUNICATIONS command and look for any obvious incorrect settings (port, speed,
- parity), fix them with SET commands (described in Section 1.6.10), and try
- again. (IBM mainframe linemode connections have so many "different" settings,
- there's a special command to do them all at once, "do ibm", which you would
- type as the first Kermit-MS command above.) If that doesn't help, read on.
- Many problems can crop up when you attempt to connect two unlike systems over a
- possibly hostile communication medium. And if you intend to be a frequent user
- of Kermit, there are many options you can take advantage of to adapt MS-Kermit
- to different systems, improve its performance, and automate common tasks.
-
-
- 1.4. The MS-DOS File System
-
- The features of the MS-DOS file system of greatest interest to Kermit users are
- the form of the file specifications, and the formats of the files themselves.
-
-
- 1.4.1. File Specifications
-
- MS-DOS file specifications (in version 2.0 or later of DOS) are of the form
-
- DEVICE:\PATHNAME\NAME.TYPE
-
- where the DEVICE is a single character identifier (for instance, A for the
- first floppy disk, C for the first fixed disk, D for a RAM disk emulator) fol-
- lowed by a colon (":"), PATHNAME is up to 63 characters of identifier(s) (up to
- 8 characters each) surrounded by backslashes ("\"), NAME is an identifier of up
- to 8 characters, and TYPE is an identifier of up to 3 characters in length.
- Device and pathname may be omitted. The first backslash in the pathname may be
- omitted if the specified path is relative to the current directory. In the
- path field, "." means the current directory, ".." means the parent directory.
- Some DOS implementations (like Wang) may use slash ("/") rather than backslash
- as a directory separator.
-
- Pathname is normally omitted, but can be specified in all Kermit-MS commands
- (as of version 2.29). Device and directory pathnames, when omitted, default to
- either the user's current disk and directory, or to the current directory
- search path as specified in the DOS PATH environment variable, depending on the
- context in which the file name appears.
-
- When this document says that a file is searched for "in the current
- path," it means that Kermit-MS looks on the current disk and directory
- first, and if the file is not found, then the directories listed in the
- PATH environment variable are searched. If the PATH environment vari-
- able is empty, Kermit looks only at the current disk and directory.
-
- NAME.TYPE is sufficient to specify a file on the current disk and directory,
- and only this information is sent along by Kermit-MS with an outgoing file.
-
- The device, path, name, and type fields may contain uppercase letters, digits,
- and the special characters "-" (dash), "_" (underscore), "$" (dollar sign), "&"
- (ampersand), "#" (number sign), "@" (at sign), "!" (exclamation mark), "'"
- (single quote), "()" (parentheses), "{}" (curly braces), "^" (caret or
- circumflex), "~" (tilde), and "`" (accent grave). Normally, you should confine
- your filenames to letters and digits for maximum transportability to non-DOS
- systems. When you type lowercase letters in filenames, they are converted
- automatically to uppercase. There are no imbedded or trailing spaces. Other
- characters may not be included; there is no mechanism for "quoting" otherwise
- illegal characters in filenames. The fields of the file specification are set
- off from one another by the punctuation indicated above.
-
- The name field is the primary identifier for the file. The type, also called
- the extension or suffix, is an indicator which, by convention, tells what kind
- of file we have. For instance FOO.BAS is the source of a BASIC program named
- FOO; FOO.OBJ might be the relocatable object module produced by compiling
- FOO.BAS; FOO.EXE could be an executable program produced by loading FOO.OBJ,
- and so forth. .EXE and .COM are the normal suffixes for executable programs.
-
- MS-DOS allows a group of files to be specified in a single file specification
- by including the special "wildcard" characters, "*" and "?". A "*" matches any
- string of characters from the current position to the end of the field, includ-
- ing no characters at all; a "?" matches any single character. Here are some
- examples:
-
- *.BAS All files of type BAS (BASIC source files) in the current directory.
-
- FOO.* Files of all types with name FOO.
-
- F*.* All files whose names start with F.
-
- *.? All files whose types are exactly one character long, or have no type
- at all.
-
- Wildcard notation is used on many computer systems in similar ways, and it is
- the mechanism most commonly used to instruct Kermit to send a group of files.
-
- Users of Kermit-MS should bear in mind that other (non-MS-DOS) systems may use
- different wildcard characters. For instance VMS and the DEC-20 use "%" instead
- of "?" as the single character wildcard; when using Kermit-MS to request a
- wildcard file group from a Kermit-20 server, the DOS "?" must be replaced by
- the DEC-20 "%".
- 1.4.2. File Formats
-
- MS-DOS systems store files as streams of 8-bit bytes, with no particular dis-
- tinction among text, program code, and binary files. ASCII text files consist
- of lines separated by carriage-return-linefeed sequences (CRLFs), and this con-
- forms exactly to the way Kermit represents text files during transmission, so
- Kermit-MS has no need for a SET FILE TYPE BINARY command. But since a non-
- MS-DOS receiving system might need to make distinctions as to file type, you
- will probably have to issue SET FILE TYPE commands there if you are sending it
- non-text files. In transmitting files between Kermit-MS programs, regardless
- of file contents, the receiving MS-DOS system is equally capable of processing
- text, code, and data, and in fact requires no knowledge of how the bytes in the
- file are to be used.
-
- MS-DOS (unlike CP/M) knows the exact end of a file because it keeps a byte
- count in the directory, so one would expect no particular confusion in this
- regard. However, certain MS-DOS programs continue to use the CP/M convention
- of terminating a text file with a Control-Z character, and won't operate cor-
- rectly unless this terminating byte is present. Therefore, you should be aware
- of a special SET EOF option for both incoming and outbound files, described
- later.
-
- Non-MS-DOS systems may be confused by nonstandard ASCII files sent by
- Kermit-MS:
-
- - Files containing any of the 8-bit "extended ASCII" characters may
- need conversion (or translation) to 7-bit ASCII.
-
- - Files produced by word processing programs like Word Perfect or Word
- Star may contain special binary formatting codes, and could need con-
- version to conventional 7-bit ASCII format prior to transmission,
- using an "export" procedure.
-
- - Files created by word processors that store formatting data at the
- end of the file, after the Control-Z and before physical end, may re-
- quire special processing via SET EOF to strip the formatting data,
- lest they confuse non-MS-DOS recipients.
-
- - Spreadsheet or database files usually need special formatting to be
- meaningful to non-MS-DOS recipients (though they can be transmitted
- between MS-DOS systems with Kermit-MS). Such programs usually come
- with an "export" procedure to convert their files to plain ASCII
- text.
-
- - BASIC programs are normally saved in a binary "tokenized" form. Use
- BASIC's ",a" SAVE option to save them as regular ASCII text, as in
-
- save"foofa",a
-
- In general, when attempting to transfer non-text files between MS-DOS and a
- different kind of system, consult the Kermit manual for that system.
-
-
- 1.5. Program Setup and Invocation
-
- The MS-DOS Kermit program can be run from any disk without any special instal-
- lation procedure. On hard disk systems, it is convenient to store the program
- in one of the directories listed in your DOS PATH, and it is often desirable to
- customize Kermit's operation to your communications and computing environment
- by creating an initialization file.
-
- Kermit-MS can be run interactively, from a batch file, as an "external" DOS
- command, or from redirected standard input. Commands consist of one or more
- fields, separated by "whitespace" -- one or more spaces or tabs.
-
- Upon initial startup, the program executes any commands found in the file
- MSKERMIT.INI on the current disk, or (if not found on the current disk) in the
- first directory containing a file by that name, from the list in your DOS PATH
- environment variable. The Kermit initialization file may contain command macro
- definitions, communications settings for one or more ports, or any other
- Kermit-MS commands, and you may create it using any text editor capable of
- saving files in plain ASCII text format. Here is a sample:
-
- comment -- MSKERMIT.INI, MS-DOS Kermit initialization file
-
- comment -- Don't overwrite my files!
- set warning on
-
- comment -- Define macros for the systems I use...
- define unix set local-echo off,set par non,set flow xon,set timer off
- def ibm set par odd,set loc on,set hands xon,set flo none,set tim on
- def modem set port 2, set speed 1200
-
- comment -- Define macros for quickly adapting to varying
- def noisy set block-check 3, set receive packet 40, set retry 20
- def normal set block-check 1, set rec pack 94, set retry 5
- def clean set block-check 2, set rec pack 500, set retry 5
-
- comment -- I always start out by connecting to my UNIX system...
- set port 1
- set speed 4800
- do unix
- connect
-
- A different file may be substituted for MSKERMIT.INI by using "-f filename" on
- the DOS command line, e.g.
-
- kermit -f monday.ini
-
- The meanings of these commands will emerge below. For now, just note how you
- can use command files (and "macro definitions") to easily adapt MS-Kermit to
- widely differing communication environments. A more advanced initialization
- file is shown in section 1.9.
-
-
- Interactive Operation:
-
- To run Kermit-MS interactively, invoke the program from DOS command level by
- typing its name, normally "kermit" (this means the program should be stored in
- your path with the name KERMIT.EXE). When you see the program's prompt,
-
- Kermit-MS>
-
- you may type Kermit commands repeatedly until you are ready to exit the
- program, as in the following example (which assumes there's already a Kermit
- "server" set up on the other end):
-
- A>
- A>kermit
-
- IBM PC Kermit-MS V2.32 11 Dec 1988
- Type ? or HELP for help
-
- Kermit-MS>set speed 19200
- Kermit-MS>send foo.*
-
- The files are sent.
-
- Kermit-MS>get fot.*
-
- The requested files are received.
-
- Kermit-MS>exit
- A>
-
- Interactive commands are described in Section 1.6.
-
-
- Command Line Invocation:
-
- Kermit-MS may be invoked with command line arguments from DOS command level,
- for instance:
-
- A>kermit send peter.amy
-
- or
-
- A>kermit set port 1, set speed 9600, connect
-
- In this case, help and completion are not available (because the program that
- provides them won't start running until after you type the entire command
- line), and Kermit-MS will exit back to DOS after completing the specified com-
- mand or commands. Therefore, when invoked with command line arguments,
- Kermit-MS will behave as if it were an external DOS command, like MODE. Note
- that several commands may be given on the command line, separated by commas.
- This can't be done interactively or from TAKE command files.
-
- Two special Kermit commands can be given on the DOS command line. First is the
- keyword STAY which prevents Kermit from exiting naturally when the last command
- has completed (unless, of course, EXIT or QUIT was among the commands). The
- second command is
-
- -F filename
-
- This means use the indicated filename as the initialization file rather than
- MSKERMIT.INI. The PATH will be searched for this file, if necessary. A space
- or tab must separate -F from the filename, and the F may be in upper or lower
- case. Example:
-
- kermit -f tuesday.ini, set port 2, do ibm, stay
-
- You can run Kermit with no initialization file at all by using the command
-
- kermit -f nul
-
- If -F is the only command line option, STAY is implied.
-
-
- Redirected Input and Output
-
- Kermit-MS also can be operated by redirecting input to it from a file, as in:
-
- C>kermit < myscript.txt > myscript.log
-
- or from a DOS "pipe", as in
-
- C>sort < sends.txt | kermit
-
- The file MYSCRIPT.TXT contains Kermit commands as if they were typed manually.
- The DOS symbol "<" means that Kermit should read from the following file rather
- from the keyboard.
-
- Kermit knows this is occurring and takes special steps to avoid the real
- keyboard and to quit when the file has been completely examined. The filename
- can also be the name of a device, such as COM1, to converse on the same or dif-
- ferent line as file transfer traffic. Information destined for the screen
- still goes to the screen unless the phrase "> filespec" is added to the command
- line above to send the normal screen output to a file or device (device COM1
- also works). Note that the terminal emulation screen cannot be redirected.
- Batch Operation:
-
- Like many other MS-DOS programs, Kermit-MS may be operated under DOS batch with
- command line arguments. If you invoke it without command line arguments, it
- will run interactively, reading commands from the keyboard and not the batch
- file. When it exits, batch processing will continue to the end of the batch
- file.
-
- Kermit-MS returns the "errorlevel" parameter used as program exit status.
- Present values are in the range 0 to 7 with three areas yielding success or
- failure reports for the entire Kermit session. The errorlevel values are:
- errorlevel Kermit session status
- 0 entirely successful operation
- 1 a Send command completed unsuccessfully
- 2 a Receive or GET command completed unsuccessfully
- 4 a REMOTE command completed unsuccessfully
- 3,5,6,7 combinations (addition) of the above conditions
-
- Note that failures are remembered for the whole session and are not canceled by
- a following successful operation of the same type. Thus, sending several files
- individually yields an errorlevel of 0 only if all the files were sent success-
- fully. The "errorlevel" parameter also applies to script commands where OUTPUT
- corresponds to SEND and INPUT to RECEIVE. An example of Batch invocation of
- Kermit is shown in Figure 1-4.
-
- You may also force Kermit to return any desired errorlevel, using the SET
- ERRORLEVEL command. DOS batch parameters may be passed along to Kermit; see
- section 1.7 for details.
-
-
- Remote Operation:
-
- The MS-DOS CTTY command allows an MS-DOS system to be used from a terminal con-
- nected to its communication port. Such sessions must be conducted with great
- care, since many programs assume that they are running on the real console, and
- explicitly reference screen memory or the physical keyboard. Kermit can be
- used in this manner too, but before you give it any file transfer commands, you
- must inform it that it is running in "remote mode" rather than its normal
- "local mode." Use the SET REMOTE ON command for this purpose, to prevent the
- file transfer display from being sent out the port.
-
-
- RAM Disk Operation:
-
- If you invoke Kermit frequently, and you have sufficient memory on your PC, you
- may find it convenient to copy Kermit and its initialization file to a RAM disk
- when you start your system. This allows Kermit to be started and used quickly
- and silently, with no mechanical disk operations.
-
- For instance, if you're using IBM's VDISK facility to create the RAM disk, you
- might put statements like this in your CONFIG.SYS file:
-
- DEVICE=VDISK.SYS 384 512 128 /e
-
- This assumes you have 384K of extended (/e) memory installed and VDISK.SYS is
- in the root directory of the boot disk. It creates a 384K RAM disk with 512B
- sector size and space for 128 directories in the extended memory, assigning it
- the disk letter of your first unused disk. And then in your AUTOEXEC.BAT file
- (assuming the RAM disk is disk D:)...
-
- COPY KERMIT.EXE D: >NUL
- COPY MSKERMIT.INI D: >NUL
- COPY COMMAND.COM D: >NUL
- SET COMSPEC=D:\COMMAND.COM
- PATH D:\; ...
-
- The PATH command allows DOS to find KERMIT.EXE, and Kermit to find MSKERMIT.INI
- and COMMAND.COM, on the RAM disk. If you use Kermit transfer files to your RAM
- disk, remember to copy those files to a real disk before you turn off the sys-
- tem.
-
-
- Use of MS-Kermit in Windowing and Multiprocessing Environments:
-
- Kermit-MS can operate within windowing environments like such as TopView,
- DESqview, and MS-Windows. It runs in an active window under MS-Windows, ac-
- cepts cut and paste material, talks with mice, and shrinks to an icon (a boxed
- "KER"). An MS-Windows .PIF file can be constructed for Kermit using the
- PIFEDIT program, supplied with Windows. Memory requirements should be listed
- as 102 to 160KB. It should state that Kermit does not modify the screen,
- keyboard, memory, COM1, or COM2 (not true but it satisfies Windows). Program
- switch and exchange should be marked as Text, and Close Window on Exit should
- be checked. This configuration will let you run Kermit with all the Windows
- features, but slowly. To run at full speed under Windows, tell PIFEDIT that
- Kermit modifies the screen. Then you lose the Windows features (cutting, past-
- ing, running the clock at the same time, etc), but you still get back to the
- Windows interface when you EXIT Kermit.
-
- MS-Kermit has also been reported to operate successfully under Concurrent DOS.
- However, since it does not interact explicitly with the Concurrent DOS
- time-slice scheduler, Kermit will tend use a lot of CPU cycles.
-
-
- Local Area Network Operation:
-
- MS-Kermit is capable of using a serial port on another local area network (LAN)
- node, so long as that node is running an asynchronous communication server and
- you have installed a device driver on your own PC that makes COM1 or other com-
- munication port i/o use the network server. This type of connection works be-
- cause MS-Kermit 2.30 and later releases on IBM PCs check the selected port to
- see if it's a real 8250 UART chip, and if it isn't, Kermit uses only Bios calls
- for port i/o, and the network routes these through your network device driver.
- It may be desirable to give the command SET PORT BIOSn (n is a digit 1-4) to
- actively select the Bios port rather than a real hardware device. This style
- of operation should be transparent to Kermit, but not all asynchronous com-
- munications servers utilize this technique.
-
- As of version 2.30, the IBM PC version of Kermit can also communicate directly
- with another PC on a local area network through the IBM NetBIOS emulator dis-
- tributed with the LAN. In essence, the LAN substitutes for the serial port,
- modem, and other wiring. Kermit running on one user machine can transfer files
- with another Kermit also on the network much as if they were connected by
- modems, and Kermit can talk with some larger machines the same way. The impor-
- tant network command is
-
- SET PORT NETBIOS nodename
-
- for NetBios, or
-
- SET PORT UB-NET1 nodename
-
- for Ungermann-Bass Net-One NETCI. For details, see the description of the SET
- PORT and SERVER commands, and (if you're interested) Section 1.18.1 for a tech-
- nical description.
-
- Kermit can even communicate with some other computers, such as Unix systems,
- which accept logins via this remote pathway. The initial startup is the same
- as calling a mainframe and logging in except the command SET PORT NET nodename
- is used instead of SET PORT COM1. A connection is established with the first
- use of the communications circuit, such as CONNECT, REMOTE DIR, SEND, or other
- file transfer command, and terminated with the HANGUP command.
-
-
- 1.6. Kermit-MS Commands
-
- MS-DOS Kermit has the following commands:
-
- -F specify alternate init file name on DOS command line.
- ASK user to type text, in response to a prompt.
- ASSIGN the value of one variable to another.
- BYE to remote server, exit from MS-Kermit.
- CLEAR serial port buffer.
- CLOSE log files and stop logging remote session.
- COMMENT For including comments in command files.
- CONNECT as terminal to remote system (C).
- CWD or CD change local working directory.
- DEFINE a macro of Kermit-MS commands.
- DELETE local files.
- DIRECTORY listing of local files.
- DISABLE server recognition of selected commands.
- DO a command macro.
- ECHO a line of text on the screen.
- ENABLE server recognition of selected commands.
- EXIT from Kermit-MS.
- FINISH Shut down a remote Kermit server.
- GET remote files from server.
- GOTO jump to labeled line in script file.
- HANGUP the phone or network connection.
- HELP about Kermit-MS.
- IF decision-making in Take or Macro scripts.
- INPUT specified string from serial port, for scripts.
- LOG remote terminal session, transactions, or packets.
- LOGOUT remote server, don't exit from Kermit-MS.
- MAIL send file to remote Mailer via Kermit.
- OUTPUT string out serial port, for scripts.
- PAUSE between commands.
- POP exit Take file or Macro.
- PUSH to MS-DOS command level.
- QUIT from Kermit-MS (same as EXIT).
- RECEIVE files from remote Kermit (R).
- REINPUT reread script Input buffer.
- REMOTE Prefix for remote file management commands.
- RUN an MS-DOS program or command.
- SEND files to remote Kermit (S).
- SERVER mode of remote operation.
- SET various parameters.
- SHOW various parameters.
- SPACE inquiry (about disk space).
- STATUS inquiry (about settings).
- STAY stay within Kermit after DOS command line invocation.
- STOP exit all Take files or Macros.
- TAKE commands from a file.
- TRANSMIT a file "raw" (no error checking).
- TYPE a local file on the screen.
- VERSION display Kermit-MS program version number.
- WAIT for the specified modem signal to appear.
-
- Not all of these commands are necessarily available on all MS-DOS systems, and
- some of the commands may work somewhat differently between DOS versions.
-
- A command keyword, such as SEND, RECEIVE, HELP, etc, may be abbreviated, so
- long as you have typed enough letters to distinguish it from other keywords
- that are valid in that position. For instance, you can type CLE for CLEAR and
- CLO for CLOSE. Several common commands also have special non-unique abbrevia-
- tions, like C for CONNECT, S for SEND, and R for RECEIVE. Kermit will notify
- you if you have typed a word with too few letters.
-
- During interactive operation, you may edit the command you're currently typing
- using BACKSPACE to erase the character most recently typed, Ctrl-W to delete
- the most recent field, or Ctrl-U to delete the entire command. The editing
- characters may be used in any combination until the command is finally entered
- by typing RETURN (Carriage Return, Enter) or Ctrl-L.
-
- You may use the help ("?") and keyword completion (ESC) features freely while
- typing Kermit-MS commands. A question mark typed at almost any point in a com-
- mand produces a brief description, or "menu", of what is expected or possible
- at that point. ESC typed at any point, except in a local filename, will cause
- the current field to be filled out if what you have typed so far is sufficient
- to identify it, and will leave you in position to type the next field (or to
- type a "?" to find out what the next field is); otherwise, the program will
- beep at you and wait for you to type more characters.
-
- As of version 2.31, Kermit-MS recognizes full 8-bit character inputs, with only
- NUL, ESC, DEL/BS, Ctrl-W (delete word), Ctrl-U (delete line), and Ctrl-C being
- special. This is to enhance support for various languages and keyboards. The
- SET KEY and SHOW KEY commands can prompt for keyboard input and understand
- 8-bit characters but only at their interactive prompt. The SET KEY, INPUT, and
- OUTPUT commands accept "backslash number format" on the main Kermit command
- line. Thus, national characters which are full 8-bit codes can be expressed on
- command lines in backslash number form (\ddd), provided the Kermit command it-
- self can understand the form. Most commands that want numbers or single
- characters as operands understand this notation. To enter characters in back-
- slash number format, type a backslash ("\") followed by a number corresponding
- to the ASCII code for the character. MS-Kermit accepts many different back-
- slash codes in different contexts. These are summarized in Table 1-1; letters
- following the backslach may be either upper or lower case.
-
- -------------------------------------------------------------------------------
-
-
- \123 (up to 3 decimal digits) - A decimal number
- \d123 (up to 3 decimal digits) - A decimal number
- \o123 (up to 3 octal digits) - An octal (base 8) number
- \x123 (up to 3 hexadecimal digits) - a hexadecimal (base 16) number
- \{ } For grouping, e.g. \{12}6 = Ctrl-L 6, not ~
- \; Include a semicolon in a TAKE-file command or macro definition.
- \% Introduce a Kermit variable, \%1, \%2, ..., \%a, \%b, ... \%z
- \K A Kermit connect-mode verb like \Kexit (see Table 1-6)
- \B Send a BREAK (OUTPUT command only)
- \255 Shorthand for CRLF or LFCR (INPUT command only)
- \CD Carrier Detect RS-232 signal (WAIT command only)
- \DSR Data Set Ready RS-232 signal (WAIT command only)
- \CTS Clear to Send RS-232 signal (WAIT command only)
-
- Table 1-1: MS-DOS Kermit Backslash Codes
-
- -------------------------------------------------------------------------------
-
- Table 1-2 shows all of the 7-bit ASCII codes in decimal. Most Kermit commands
- understand backslash-ASCII codes, both imbedded within character strings, and
- alone, as when a single character or number is to be specified.
-
- -------------------------------------------------------------------------------
-
-
- Dec Name Ctrl Dec Char Dec Char Dec Char
-
- 0 NUL ^@ | 32 SP | 64 @ | 96 `
- 1 SOH ^A | 33 ! | 65 A | 97 a
- 2 STX ^B | 34 " | 66 B | 98 b
- 3 ETX ^C | 35 # | 67 C | 99 c
- 4 EOT ^D | 36 $ | 68 D | 100 d
- 5 ENQ ^E | 37 % | 69 E | 101 e
- 6 ACK ^F | 38 & | 70 F | 102 f
- 7 BEL ^G beep | 39 ' | 71 G | 103 g
- 8 BS ^H backspace | 40 ( | 72 H | 104 h
- 9 HT ^I tab | 41 ) | 73 I | 105 i
- 10 LF ^J linefeed | 42 * | 74 J | 106 j
- 11 VT ^K | 43 + | 75 K | 107 k
- 12 FF ^L formfeed | 44 , | 76 L | 108 l
- 13 CR ^M return | 45 - | 77 M | 109 m
- 14 SO ^N shift out | 46 . | 78 N | 110 n
- 15 SI ^O shift in | 47 / | 79 O | 111 o
- 16 DLE ^P | 48 0 | 80 P | 112 p
- 17 DC1 ^Q XON | 49 1 | 81 Q | 113 q
- 18 DC2 ^R | 50 2 | 82 R | 114 r
- 19 DC3 ^S XOFF | 51 3 | 83 S | 115 s
- 20 DC4 ^T | 52 4 | 84 T | 116 t
- 21 NAK ^U | 53 5 | 85 U | 117 u
- 23 ETB ^W | 54 6 | 86 V | 118 v
- 22 SYN ^V | 55 7 | 87 W | 119 w
- 24 CAN ^X | 56 8 | 88 X | 120 x
- 25 EM ^Y | 57 9 | 89 Y | 121 y
- 26 SUB ^Z | 58 : | 90 Z | 122 z
- 27 ESC ^[ escape | 59 ; | 91 [ | 123 {
- 28 FS ^\ | 60 < | 92 \ | 124 |
- 29 GS ^] | 61 = | 93 ] | 125 }
- 30 RS ^^ | 62 > | 94 ^ | 126 ~
- 31 US ^_ | 63 ? | 95 _ | 127 RUBOUT,DELETE
-
- Table 1-2: The US ASCII Character Set (ANSI X3.4-1977)
-
- -------------------------------------------------------------------------------
-
- Some Kermit-MS commands like GET, SHOW KEY, and SET KEY, may prompt for ad-
- ditional information on subsequent lines. If you have reached one of these
- prompts and then wish to cancel the command, you may type Control-C to get back
- to the main Kermit-MS> prompt.
-
-
- Summary of Kermit-MS command editing characters:
-
- SPACE Separates fields within the command.
-
- TAB Same as Space, and echoes as Space. You may also use Ctrl-I for
- Tab.
-
- BACKSPACE
- Deletes the character most recently typed. May be typed repeatedly
- to delete all the way back to the prompt. You may also use DELETE,
- RUBOUT, Ctrl-H, or equivalent keys.
-
- Ctrl-W Deletes the most recent "word", or field, on the command line. May
- be typed repeatedly.
-
- Ctrl-U Deletes the entire command line, back to the prompt.
-
- Ctrl-C Cancels the current command and returns to the "Kermit-MS>" prompt.
- Also, terminates execution of a TAKE command file.
-
- ESC If enough characters have been supplied in the current keyword to
- identify it uniquely the remainder of the field is supplied and the
- cursor is positioned to the next field of the command. Otherwise,
- a beep is sounded. ESC does not provide filename completion.
-
- ? Displays a brief message describing what may be typed in the cur-
- rent command field. Also, wildcard character for matching any
- single character in all but the first position of a filename.
-
- # Wildcard character for matching single characters in filenames.
- Equivalent to MS-DOS "?", but used in the first position of a
- filename only, so that "?" may be used to get help at the beginning
- of a filename field.
-
- ENTER Enters the command. On most keyboards, you may also use RETURN or
- Ctrl-M.
-
- Ctrl-L Clears the screen and enters the command.
-
- Liberal use of "?" allows you to feel your way through the commands and their
- fields. This feature is sometimes called "menu on demand" or "context sen-
- sitive help" -- unlike systems that force you to negotiate menus at every turn,
- menu-on-demand provides help only when it is needed.
-
- Command reading is done through DOS calls and Kermit key redefinition does not
- apply at Kermit-MS command level. But ANSI.SYS or other external console
- drivers can be used for this purpose, for instance to assign ESC to the PC's
- backquote key (ANSI.SYS is the IBM-supplied extended screen and keyboard device
- driver, described in the IBM DOS Technical Reference Manual). Other console
- drivers available include ProKey, SuperKey, NANSI.SYS (a public-domain replace-
- ment for ANSI.SYS), and FANSICONSOLE.
-
- The notation used in command descriptions is as follows:
-
- [square brackets]
- An optional field. This field may be omitted.
-
- {curly braces}
- A list of alternatives, separated by commas. Choose one of the
- items from the list.
-
- italics Shows parameters, such as numbers or filenames, are shown in
- italics (providing the printer is capable of printing italics).
- You substitute the actual number or filename.
-
- underlining
- In dialog examples, the characters you should type are underlined
- (on printers that can show it) to distinguish them from computer
- typeout.
-
- hh:mm:ss
- A time of day, in 24-hour notation (10:00:00 is 10 AM; 23:30:00 is
- 11:30 PM), which may not be more than 12 hours later than the cur-
- rent time.
-
- The following sections describe all the MS-DOS Kermit commands. Since some
- command descriptions may contain references to other commands that haven't been
- explained yet, you might find that this manual makes more sense on a second
- reading.
-
-
- 1.6.1. Program Management Commands
-
- "Program management" is a rubric for Kermit-MS commands like TAKE, EXIT, HELP,
- COMMENT, ECHO, and VERSION, that don't fall into any other category.
-
- HELP displays a one screen introduction to frequently used Kermit commands and
- their editing keys, and suggests using the question mark command to see the
- terse list of primary level Kermit commands.
-
- VERSION displays the MS-Kermit program version number, which you should know in
- case you are reporting bugs or seeking technical assistance.
-
- Other program management commands require a bit more explanation.
- The EXIT Command
-
- Syntax: EXIT or QUIT
-
- EXIT and QUIT are synonyms for each other. They cause MS-Kermit to return con-
- trol to DOS or whatever program invoked MS-Kermit. The specific actions taken
- are:
-
- - Close any open log or other files.
- - Close any open network connection.
- - Release all memory claimed by the program.
- - Return interrupts for the currently selected communication device to
- their original owner.
- - Terminate execution.
-
- The serial port RS-232 signals are left alone upon EXIT, so that modem connec-
- tions are not broken. Kermit-MS may be restarted with the connection intact.
- Use HANGUP to explicitly break a modem connection; and use SHOW MODEM or SHOW
- COMMUNICATIONS to view the status of modem signals CD (Carrier Detect), Data
- Set (modem) Ready (DSR), and Clear To Send (CTS).
-
-
- The STAY Command
-
- Syntax: STAY
-
- The STAY command, if included among command line arguments, instructs MS-Kermit
- not to exit upon completion but rather to enter interactive mode, unless EXIT
- or QUIT was among the command arguments. STAY has no effect when entered in-
- teractively or from a TAKE file.
-
-
- The PUSH Command
-
- Syntax: PUSH
-
- PUSH is similar to EXIT, except it leaves MS-Kermit intact by invoking an
- MS-DOS command processor "under" Kermit-MS, either COMMAND.COM or whatever
- shell you have specified with COMSPEC (or SHELL, depending on the system) in
- your CONFIG.SYS file. You can return to Kermit-MS by typing the MS-DOS EXIT
- command, and you will find Kermit-MS as you left it, with all settings and the
- terminal emulation screen intact. The same function is invoked by the CONNECT
- escape-level command P. Example:
-
- Kermit-MS>push Push to DOS.
- Command v. 3.30 COMMAND.COM program herald.
-
- C>diskcopy a: b: Run a DOS program.
-
- DISKCOPY dialog here...
-
- C>dir b: More DOS commands...
-
- DOS session continues...
-
- C>exit When done, type DOS EXIT command.
- Kermit-MS> Back at Kermit.
-
-
- The TAKE Command
-
- Syntax: TAKE filespec
-
- The TAKE command gives you way a to collect MS-Kermit commands into a single
- file, so that you can execute many commands by typing a single (TAKE) command.
- TAKE instructs MS-Kermit to execute commands from the file that you specify.
- The current directory is searched for the file first, and then any directories
- listed in the PATH environment variable. The command file may include any
- valid Kermit-MS commands, including TAKE, but it cannot include characters to
- be sent to a remote host after a CONNECT command (use scripts for that,
- described below). Execution of a TAKE file may be cancelled by typing
- Control-C at the keyboard.
-
- An implicit TAKE command is executed upon the initialization file, MSKERMIT.INI
- (or another file specified in the "-f" command-line argument), whenever you
- start MS-Kermit. The MSKERMIT.INI file contains any commands you want to be
- executed each time you run Kermit. A sample is shown above, and a more am-
- bitious example is shown in section 1.9.
-
- Commands within TAKE files, unlike interactive commands, may include trailing
- comments, preceded by semicolons:
-
- set port 2 ; Select the modem port.
- set speed 1200 ; Set the baud rate for the modem.
- connect ; Conduct a terminal session.
- hangup ; Hang up the phone after escaping back.
-
- Note the HANGUP command after CONNECT. The HANGUP command is not executed un-
- til after you escape back from your CONNECT session. If this file were called
- MODEM.CMD, the following TAKE command would execute it:
-
- Kermit-MS>take modem.cmd
-
- This directs MS-Kermit to find the MODEM.CMD file, open it, execute the com-
- mands in it, close it, and return to the MS-Kermit> prompt when done. This
- process can take a while on floppy-disk based systems.
-
- Since TAKE file processing discards all characters from a line beginning with
- the first semicolon, it is normally not possible to include semicolons as part
- of the commands themselves, e.g.
-
- get dska:foo.bar;6
-
- To get around this restriction, you may precede such semicolons with a back-
- slash:
-
- get dska:foo.bar\;6
-
- Commands from the TAKE file will normally not be displayed on your screen
- during execution. If you want to see them as they are executing, you can SET
- TAKE-ECHO ON (for instance, at the beginning or end of your MSKERMIT.INI file).
- With the echoing ON, comments are also displayed for reference, but the semi-
- colon is not shown.
-
- TAKE files may be nested to a reasonable level. A command file that was in-
- voked by another command file normally returns to its invoking command file,
- rather than to the MS-Kermit> prompt, when the end of the command file is
- reached.
-
- TAKE files have two commands to quit processing before the end of the file is
- reached. The POP command exits the current TAKE file (or macro) and returns
- control to the previously executing TAKE or macro, where one is invoked within
- another. The STOP command exits all TAKE files and macros and returns directly
- to the Kermit prompt.
-
- In TAKE files (and macro definitions, which are discussed later), long commands
- may be continued on subsequent lines by terminating each continued line with a
- hyphen (minus sign). If a line needs to terminate with a real minus sign it
- may be expressed numerically as \45 or can be extented with extra spaces. The
- overall command length is normally 127 bytes (a beep sounds near this limit).
-
- An explicit question mark ("?") in a TAKE file will cause a help message to be
- displayed and the rest of the line will be read as another command. If you
- need to include a question mark in a command, use the ASCII backslash notation
- "\63".
-
-
- The -F Command
-
- Syntax: -F filespec
-
- The "-f" command is effective only on the DOS command line. It instructs
- MS-Kermit to use the specified file as its initialization file, rather than
- MSKERMIT.INI. Unlike other command-line arguments, "-f" does not, of itself,
- cause MS-Kermit to exit upon completion. Example:
-
- C>kermit -f sunday.ini
- Kermit-MS>
-
- The -F command line option allows different MS-Kermit initialization files to
- coexist. You can create batch commands to invoke Kermit in different ways, for
- instance MONDAY.BAT might contain "kermit -f monday.ini", TUESDAY.BAT "kermit
- -f tuesday.ini", etc.
-
-
- The ECHO Command
-
- Syntax: ECHO [string]
-
- The ECHO command writes the string to the screen, without adding a carriage
- return or line feed. ECHO may be used to report progress during execution of a
- TAKE command file, or to issue prompts during the execution of a script.
-
- ECHO Part one completed...\13
-
- The number at the end is a "backslash codes" for ASCII control characters, in
- this case carriage return (\13). Since the ECHO command interprets backslash
- codes, ANSI.SYS and similar console drivers can be programmed through this com-
- mand by embedding ANSI escape sequences (see section 1.17.3) in the echo
- string. The ECHO command always outputs a linefeed before the string.
-
-
- The COMMENT Command
-
- Syntax: COMMENT text
-
- The COMMENT command lets you add comments to a TAKE command file. The word
- COMMENT (or any unique prefix thereof) must appear as the first word on the
- line. The COMMENT command may also be entered interactively. It has no effect
- at all. Example:
-
- COMMENT - MS-Kermit command file to connect port 2 to an IBM mainframe
- set port 2
- set speed 4800 ; Transmission rate is 4800
- do ibm ; Set parameters for IBM linemode
- connect ; Be a terminal
-
- Question marks can be included in comments without invoking the help function.
-
-
- 1.6.2. Local File Management Commands
-
- These commands are executed on your local PC, and generally invoke DOS ser-
- vices. This allows you to perform common DOS functions without leaving Kermit.
- All file specifications may include device and/or directory fields. The local
- file management commands are:
-
- CWD path
- Changes the current working directory to the given path. All
- references to local file names without explicit paths will refer to
- that path. A drive letter may be included to also change disk drives.
- This command affects Kermit and any inferior programs that you RUN or
- PUSH to, but your previous disk and directory are restored when you
- exit from Kermit. For consistency with DOS, you may also type CD.
-
- DELETE filespec
- Deletes the specified file or files. As in DOS, the names of the
- deleted files are not listed, only the message "file(s) deleted" or
- "file(s) not found", and if you give the command "delete *.*",
- Kermit-MS will prompt "Are you sure?" since DOS is doing the work.
-
- DIRECTORY [filespec]
- Lists the names, sizes, and creation dates of files that match the
- given file specification. If no filespec is given, the command is
- equivalent to DIR *.*. Normal DOS switches are effective.
-
- SPACE Tells how much space is available on the current disk.
-
- RUN command
- Passes the command line to COMMAND.COM for execution. Any legal DOS
- operation is permitted: running a program (perhaps with command line
- arguments or i/o redirection), executing a DOS command, or executing a
- batch file. Kermit is suspended while the command is executed and
- automatically resumes afterward. The command will be executed directly
- by COMMAND.COM so follow the rules of DOS. Example:
-
- Kermit-MS>run more < xmas.txt
-
-
-
- TYPE filespec
- Displays the specified local file on the screen. Automatic pause is
- not available at the end of a page (but see above example for how to
- accomplish this). On most systems, Ctrl-S can be typed to stop scroll-
- ing and Ctrl-Q to continue scrolling.
-
- In most cases when you issue a local command, Kermit attempts to run the equiv-
- alent DOS command. If you get a message like "?Unable to execute program", it
- means that Kermit could not find COMMAND.COM, or that there was not enough
- memory left to load it. To ensure that Kermit can find COMMAND.COM, you should
- include a PATH statement in your AUTOEXEC.BAT file, which includes the device
- and directory where COMMAND.COM resides.
-
- You can add your own local commands by defining macros for them. For example:
-
- define edit run epsilon \%1
- define more run more < \%1
- define rename run ren \%1 \%2
-
- Then you can use these commands at Kermit-MS prompt level: "edit foo.bar",
- "more oofa.txt", "rename old.txt new.txt". However, you cannot redefine
- built-in commands, for example:
-
- define send receive \%1
-
- See Section 1.7 for further information about macros.
- 1.6.3. COMMANDS FOR TERMINAL CONNECTION
-
- The CONNECT command connects your PC as a terminal to the remote system so that
- you may conduct a session there, and the HANGUP command may be used to discon-
- nect your modem (if you have one) from the remote system. There is presently
- no built-in DIAL command. Modems may be dialed "manually" during CONNECT, or
- you can construct your own DIAL command by using scripts, which are described
- in detail in subsequent sections.
-
- For completeness, the descriptions below contain copious reference to the SET
- commands, which let you modify all sorts of terminal and communication
- parameters (the SET commands are described in a later section). MS-Kermit is
- initially set up with the following parameters, so that you only need to issue
- SET commands for those that need to be changed:
-
- PORT 1 (in most cases, e.g. COM1 on the IBM PC family)
- TERMINAL VT102(*) emulation (IBM PC, DEC Rainbow)
- SPEED Whatever the serial card is currently set to.
- PARITY None
- FLOW-CONTROL XON/XOFF
- HANDSHAKE None
- LOCAL-ECHO Off
- DISPLAY 7-bit characters
- INPUT TRANSLATION Off
- ESCAPE Control-Rightbracket
-
- (*) The VT102 terminal is compatible with the VT100, but includes a few ad-
- ditional functions.
-
-
- The CONNECT Command
-
- Syntax: CONNECT -or- C
-
- The CONNECT command establishes an interactive terminal connection to the
- remote system using the currently selected communications port (SET PORT COM1
- or COM2, COM1 is the default) with all settings currently in effect for that
- port, emulating the currently selected type of terminal.
-
- During CONNECT, the characters you type are sent out the communication port,
- and the characters that arrive at the port are displayed on the screen or in-
- terpreted by the selected terminal emulator. If you SET LOCAL-ECHO ON,
- MS-Kermit itself will display the characters you type on the screen.
-
- Before you issue the CONNECT command, be sure to set the correct communication
- speed (SET SPEED) and any other necessary communication parameters (e.g. SET
- PARITY, SET LOCAL-ECHO). If you have SET DEBUG ON, then (on most DOS systems,
- particularly the IBM PC), received control characters will be displayed in spe-
- cial notation and no particular terminal will be emulated.
-
- By default, 7-bit ASCII characters are displayed on the screen. If you SET
- DISPLAY 8, then 8-bit characters will be used (useful for "national" character
- sets). Character translation will be done according to any SET TRANSLATION IN-
- PUT and SET KEY commands you have issued. In addition, characters that are
- sent to the screen will also be recorded in a disk file or on a printer if you
- have issued a LOG SESSION command.
-
- The CONNECT command turns your PC into a terminal to the other computer. To
- get back to the PC, type the escape character followed by the letter C (for
- "Close connection"). On most MS-DOS systems the escape character is Ctrl-]
- (Control-Rightbracket). That means, hold down the Ctrl key, press "]", and
- then type the letter C.
-
- Kermit-MS>connect Connect to remote system.
-
- Conduct terminal session here...
-
- ^]c Escape back to PC.
- Kermit-MS> Prompt reappears.
-
- This is called "escaping back". You can use the SET ESCAPE command to change
- the escape character to something besides "^]", or you can assign the escaping-
- back operation to a single key or key combination with SET KEY (on the IBM PC
- the default for this is Alt-X).
-
- You can include the CONNECT command in a TAKE command file, but not "bare" text
- to be sent to the remote system during CONNECT (use scripts for that, see Sec-
- tion 1.8). When a TAKE file includes a CONNECT command, no further commands
- will be executed from the file until after you escape back. A curious side ef-
- fect of allowing Kermit to accept input redirected from a file or device is
- that Connect mode will read characters from that file or device; not really
- that useful but it works if you happen to need it.
-
- When you CONNECT, the program attempts to raise the DTR and RTS RS-232 signals
- (see Table 1-3), and it takes no specific action to lower them unless you ex-
- plicitly issue the HANGUP command; thus you can EXIT from Kermit-MS and restart
- it without dropping a dialup connection. While CONNECTed, you can communicate
- directly with an autodialer or "smart modem" to control the communications
- line, hang it up, and the like, for instance, by typing AT commands to a Hayes-
- like modem.
-
- Kermit-MS>set speed 2400 (See Section 1.6.10)
- Kermit-MS>connect
- AT Now you're talking to the modem.
- OK Your modem responds
- ATDT8765432 Type the modem's dialing command.
- RINGING
- CONNECT 2400
- Welcome to ... Now you're talking to the host computer.
- Please login:
-
- MS-Kermit makes no attempt to monitor the modem's Carrier Detect (CD) or Data
- Set Ready (DSR) signals (see Table 1-3), and will take no notice if they drop.
- Thus it is not possible to automatically terminate a session if the connection
- is broken. However, you may query or test the status of these modem signals
- yourself using Kermit's SHOW MODEM, SHOW COMMUNICATIONS, and WAIT commands.
-
- -------------------------------------------------------------------------------
-
-
- Signal DB25 DB9 Description
- FG 1 - Frame (protective) ground
- TD 2 3 Transmitted data (from PC to modem)
- RD 3 2 Received data (by PC from modem)
- RTS 4 7 Request to Send (by PC)
- CTS 5 8 Clear to Send (by modem)
- DSR 6 6 Dataset Ready (Modem is turned on)
- SG 7 5 Signal Ground
- CD 8 1 Carrier Detect (Modem is communicating with remote modem)
- DTR 20 4 Data Terminal Ready (PC is online)
- RI 22 9 Ring Indicate (Modem tells PC phone is ringing)
-
- Table 1-3: RS-232-C Modem Signals
-
- -------------------------------------------------------------------------------
-
- When using Kermit to connect two PCs "back to back," SET LOCAL-ECHO ON so that
- when you CONNECT to the other PC to send messages to its operator, you can see
- what you are typing. You should also SET TERMINAL NEWLINE ON, so that that a
- linefeed will be automatically supplied for each carriage return you type.
-
-
- The HANGUP Command
-
- On serial port connections, the HANGUP command attempts to momentarily lower
- the modem signals DTR and RTS (Table 1-3). It may be used to hang up the phone
- when dialed up through a modem, or to get the attention of port contention
- units or terminal concentrators that operate in this manner. On direct connec-
- tions, it will probably have no effect. On local area network connections, the
- network session is fully terminated. HANGUP affects only the currently
- selected port.
-
-
- TERMINAL EMULATION
-
- The IBM PC version of Kermit-MS emulates the DEC VT102 terminal by default, and
- may also be instructed to emulate the DEC VT52, the Heath/Zenith-19, the
- Tektronix 4010 graphics terminal, or no terminal at all, selectable with the
- SET TERMINAL command (or you may "toggle" among the different emulations by
- typing the Alt-Minus key). Emulation of each of these terminals is nearly com-
- plete. VT102 emulation lacks only smooth scroll and 132 column mode (132
- column mode is supported for a number of popular EGA and VGA boards). Double-
- height, double-width characters are supported, but simulated using ordinary
- characters.
-
- The IBM PC's 40-column (large character) screen mode may be used during CONNECT
- (but you may also have to inform the remote host that your screen width is 40).
- This can provide improved readability to visually impaired persons. To use
- 40-column mode, enter the DOS command "MODE 40" (or CO40 or BW40). Other
- screen sizes are also sensed and used automatically, provided you have set them
- from DOS, before starting Kermit.
-
- On color monitors, the foreground and background colors may be set using SET
- TERMINAL COLOR, and inverse/normal video display may also be selected, along
- with many other terminal parameters. A complete list of the commands, default
- key configurations, and escape sequences accepted by the IBM PC Kermit terminal
- emulator is given in section 1.17.1. Non-IBM-compatible PCs have different
- terminal emulation options. See section 1.11.
-
-
- Escape-Level Commands
-
- The escape character, normally Control-], is used to regain the attention of
- Kermit-MS during CONNECT (you can change the escape character using SET
- ESCAPE). When you type the escape character, Kermit-MS waits for you to follow
- it with a single character command. For instance, the single character command
- "?" produces a list of available single character commands. This command is
- executed immediately; it may not be edited, and the program does not wait for a
- carriage return to confirm it. Table 1-4 shows CONNECT escape-level commands
- available in Kermit-MS. Typing any other character (except the space bar,
- which is the "null command") after the escape character will cause Kermit-MS to
- beep, but will do no harm. These actions are also Kermit action verbs and can
- be assigned to single keys. See SET KEY for details.
-
-
- The Mode Line
-
- When you first issue the CONNECT command, a message (on some systems, an in-
- verse video "mode line") will display the most important facts about the con-
- nection you've just established, so that you can quickly diagnose any problems.
- Here's what the IBM PC mode line looks like:
-
- Esc-chr:^] help:^]? port:1 speed:9600 parity:odd echo:rem VT102 .... PRN
-
- This shows that the escape character is Ctrl-Rightbracket, that you would type
- Ctrl-rightbracket followed by question mark ("^]?") to get help during CONNECT,
- that you are connected on port 1 at 9600 baud with odd parity and remote echo,
- and that a VT102 terminal is being emulated. The four dots represent the
- VT102s LEDs (they turn into the digits 1,2,3,4 when "lit") and PRN will show up
- if the printer is activated (e.g. by Ctrl-PrintScreen).
-
- -------------------------------------------------------------------------------
-
-
- ? Help -- Lists the available single-character commands.
- 0 (the digit zero) Transmit a NUL (ASCII 0).
- B Transmit a BREAK signal.
- L Transmit a Long BREAK signal (on some systems).
- C Close the connection and return to Kermit-MS prompt level.
- H Hangup the phone by lowering DTR and CTS momentarily.
- F File the current screen in the screen dump file.
- M Toggle the mode line, i.e. turn it off if it is on or vice versa.
- P Push to DOS; get back to CONNECT by typing EXIT.
- Q Temporarily quit logging the remote session.
- R Resume logging the remote session.
- S Show the status of the connection.
- ^] (or whatever you have set the escape character to be)
- Typing the escape character twice sends one copy of it to the connected
- host.
-
- Table 1-4: Kermit-MS Single-Character CONNECT Escape Commands
-
- -------------------------------------------------------------------------------
-
- The mode line may be turned on and off using SET MODE, or the CONNECT escape
- character followed by the letter M.
-
-
- Screen Rollback
-
- On the IBM PC and some other systems (see Table 1-7), Kermit-MS provides
- several pages of screen memory which let you recall earlier terminal screens.
- These may be scrolled up and down using keys as shown in Table 1-8. For in-
- stance, the IBM PC uses PgUp (previous screen), PgDn (next screen), Ctrl-PgUp
- and Ctrl-PgDn (one line at a time), Home (top of screen memory), and End
- (bottom of screen memory). Lines that scroll off the top of the screen are
- saved. When an application clears the screen using a recognized screen-clear
- sequence (ESC [ 2 J), the whole screen is saved. The screen scrolling func-
- tions may be assigned to different keys with the SET KEY command.
-
- If you have rolled the screen back and a new character must be displayed, it
- will normally appear at the current cursor position on the old screen. This is
- useful when you are trying to copy something from a previous screen. If you
- wish new characters to appear in their proper place on the "newest" screen, you
- can SET TERMINAL ROLL ON.
-
- The number of lines in the roll back buffer depends on the machine, 10 full
- screens for IBM PCs and DEC Rainbows, and on the amount of memory available in
- the machine. Each screen needs 4KB on IBM PCs. Denser displays receive fewer
- roll back lines.
-
-
- Screen Dump
-
- The screen dump feature writes the contents of the current screen to a file
- (KERMIT.SCN unless another file was selected by the SET DUMP command) when the
- CONNECT escape-level command F is typed. The screen dump file is appended to
- on each successive screen dump, with each screen separated by a formfeed
- (Ctrl-L). This feature may be used in conjunction with screen rollback -- a
- handy way to recapture screenfuls of laboriously typed-in text after a remote
- host has crashed without saving your work. The corresponding action verb is
- "dump". Screen dump does not function when in Tektronix graphics mode; instead
- one of many graphics screen capture programs may be used independently commonly
- via the DOS Shift PrtSc key combination or by LOGging the incoming byte stream.
-
- A screen dump differs from a session log in two ways. First, each desired
- screen must be manually filed, and second, the screen dump file has been
- stripped of any escape sequences, whereas the session log records them (see LOG
- SESSION).
-
-
- Printer Control
-
- During terminal emulation, a locally attached printer may be controlled in the
- normal manner, on most systems. Pushing the "Print Screen" key (shifted on
- some systems) will cause the current contents of the screen to be printed by
- DOS; holding down Ctrl while depressing Print Screen will alternately start and
- stop the spooling of incoming characters to the printer. On the IBM PC, the
- mode line will show PRN when the printer is activated in this manner. ^P or ^N
- are sent to the host during terminal emulation and do not toggle printing as
- they do when you're talking directly to DOS. CTRL-Print-Screen can be simu-
- lated with the Kermit-MS LOG PRN and CLOSE commands. VT102 (ANSI) style
- host-controlled transparent printing is also supported on the IBM PC. See sec-
- tion 1.18.6 for technical information about MS-Kermit's printer control.
-
- Unix users may use the following shell script to print files on a locally at-
- tached printer:
-
- #!/bin/sh
- # pcprint
- # usage: pcprint file(s)
- # or <any UNIX process that writes to standard output> | pcprint
- #
- echo -n '<ESC>[5i'
- if [ $# -eq 0 ]; then
- cat
- else
- cat $*
- fi
- echo -n '<ESC>[4i'
-
- Note that "<ESC>" above should be replaced by a real Escape, ASCII character
- 27.
-
-
- Graphics
-
- MS-Kermit on the IBM PC, compatibles, and several other systems, is capable of
- emulating a Tektronix 4010 graphics terminal, for use with host-based software
- that can generate Tektronix control codes. When you enter Tektronix emulation,
- your cursor will disappear. Don't be alarmed, this is how Tektronix terminals
- behave.
-
- The Tektronix emulator implements a mixture of Tek 4010 and 4014 features to
- draw characters, lines, and dots in graphics mode. These Tektronix terminals
- have a graphics display 780 dots high by 1024 dots wide. They use storage tube
- technology whereby a dot stays illuminated until the full screen is erased.
- They also lack cursor keys. Kermit's Tek emulator maps the 1024 by 780 dot
- display to the PC's current screen dimensions, say 640 across by 200 or 350
- dots high, and retains limited use of the cursor keys. It automatically senses
- the active display adapter (EGA, CGA, Hercules, Mono, and AT&T/Olivetti style
- 640x400) and retains screen coloring (EGA) and the current graphics image (EGA
- and Hercules) if the adapter has sufficient memory. Automatic sensing can be
- manually overriden to select a particular display mode, such as VGA (640x480),
- by SET TERMINAL GRAPHICS <display type>. Pure monochrome systems, of course,
- lack a graphics capability; in this case Kermit approximates the graphic image
- by writing dots as plus signs.
-
- Tektronix graphics mode is entered two different ways, automatically and volun-
- tarily:
-
- 1. Automatically (which you can prevent via the Kermit command DISABLE
- TEK). While emulating a VT102, VT52, or Heath-19, reception of the
- byte pair ESCAPE Control-L causes the PC to change to graphics mode,
- clear the screen, and obey new input as Tektronix commands. A
- second automatic entry is reception of the escape sequence
- "ESC [ ? 3 8 h" which does the same as above except the screen is
- not cleared. Automatic mode is exited by either reception of
- Control-X or "ESC [ ? 3 8 l" (lower case L), or by toggling the ter-
- minal type (ALT minus, Kermit verb\KTermtype) to VT102, or something
- other than TEK. (These "ESC [ ? 3 8 h/l" sequences derive from the
- DEC VT340 terminal.)
-
- 2. Voluntary mode is when terminal type TEK4010 is selected by the Ker-
- mit command SET TERMINAL TEK4010 or by toggling to it using
- Alt-Minus. It is exited by SET TERMINAL another-kind or by toggling
- to another kind. ENABLE or DISABLE TEK and the exit-Tek-mode escape
- sequences are not applicable to voluntary mode.
-
- Here are several common questions about Tek mode, and their answers:
-
- 1. "How do I escape from graphics mode back to being a regular
- terminal?" Within CONNECT mode, you can type the \KTermtype key,
- which is assigned by default to Alt-Minus. Repeated pressing of
- this key "toggles" among Kermit's terminal types, VT102, VT52,
- Heath-19, and Tektronix. You can also escape back to Kermit-MS com-
- mand level and issue an explicit SET TERMINAL command to change the
- terminal type.
-
- 2. "How can I return to the graphics screen without erasing it?" The
- graphics screen is preserved if your graphics adapter has sufficient
- memory (see Table 1-5). In this case, both your text and graphics
- screens will be preserved when you toggle back and forth between a
- character terminal (e.g. VT102) and Tektronix.
-
- 3. "How do I erase the graphics screen?" You can type the \KReset key,
- which is normally assigned to Alt-=. The screen also clears if the
- host sends a Control-L or ESC Control-L.
-
- 4. "How do I print or save the graphics screen?" Kermit does not cur-
- rently provide a way to do this, but you can load drivers like
- GRAPHICS.COM alongside Kermit for this purpose.
-
- While acting as a Tek terminal Kermit uses the keyboard translation appropriate
- to the VT102 terminal. However, received escape sequences are interpreted by
- the Tek emulator and VT102 escape codes are inoperative. The Tek emulator ab-
- sorbs the ESCAPE and following character and treats any additional unknown
- items as ordinary text.
-
- The emulator can display text characters from a built-in 8-by-8 dot font for
- characters Space through DELete (no control codes nor special characters).
- Tabs are converted to single spaces. Only the low 7 bits of the character are
- used.
-
- While in Tek mode the emulator behaves as a simple TTY device for ordinary text
- and as a line or dot drawing Tektronix device for commands listed in Table
- 1-10. The screen resolution is governed by the kind of active display adapter
- and monitor in the PC (Table 1-5). Kermit senses this automatically when
- graphics mode is entered. Graphics are saved on page one of screen memory.
- Coloring is determined by the current terminal status, either the default
- screen or that overridden by the command SET TERMINAL COLOR.
-
- The technical details of Tektronix emulation are presented in section 1.17.7.
-
- -------------------------------------------------------------------------------
-
- Display Adapter Display Mode Screen Resolution and Coloring
- VGA Hi res color 18 640x480, graphics saved (407 lines),
-
- 16 colors.
- VGA Monochrome 17 640x480, graphics saved (407 lines)
- EGA w/256KB Hi res color 16 dec 640x350, graphics saved, 16 colors.
- Med res color 14 640x200, graphics saved, 8 colors.
- Monochrome 15 640x350, graphics saved, b/w.
- EGA w/64KB Hi res color 16 640x350, graphics not saved,
- 4 colors of red, white, blue, black.
- Med res color 14 640x200, graphics saved, 8 colors.
- Monochrome 15 640x350, graphics not saved.
- CGA Color 6 640x200, graphics not saved, b/w.
- Hercules Monochrome none 720x348, graphics saved if memory.
- Monochrome Monochrome 7 80 by 25 text, graphics not saved.
- AT&T/Olivetti any 72 640x400, grahics not saved, b/w.
- DEC VAXMATE any 208 640x400, graphics not saved, b/w.
- TOSHIBA T3100 any 116 640x400, graphics not saved, b/w.
-
- Table 1-5: Adapters Supported by IBM PC MS-Kermit for Tektronix Emulation
-
- -------------------------------------------------------------------------------
- 1.6.4. COMMANDS FOR FILE TRANSFER
-
- MS-Kermit's SEND, GET, and RECEIVE invoke the Kermit file transfer protocol for
- error-checked transmission of files between MS-Kermit and another Kermit
- program on the other end of the connection. There are also commands for "raw"
- transfer of files (no error checking) with systems that don't have Kermit
- programs: LOG SESSION (for capturing text files on your PC) and TRANSMIT (for
- uploading text files to the remote system). The LOG TRANSACTION command opens
- a file to record the status, time, date, names, sizes of each file transfer.
-
- During file transfer, MS-Kermit normally displays its progress on the screen as
- shown in Figure 1-1. The items in the right-hand column are updated more or
- less at random. The percent done is always filled in when sending files, and
- when receiving if the other Kermit sends the file's size in a special
- file-attribute packet. The number of retries indicates how many times Kermit
- had to correct transmission errors. Several other file transfer display format
- options are also available; see SET DISPLAY.
-
- -------------------------------------------------------------------------------
-
-
- Kermit-MS: V2.32 11 Dec 1988
-
- File name: FOT.
- KBytes transferred: 7
- Percent transferred: 52%
- Sending: In progress
-
- Number of packets: 74
- Packet length: 93
- Number of retries: 2
- Last error: None
- Last warning: None
-
- Figure 1-1: MS-Kermit File Transfer Display Screen
-
- -------------------------------------------------------------------------------
-
- Although MS-Kermit makes no distinction between text and binary files, most
- other Kermit programs do. Therefore, before you attempt to transfer binary
- files with another type of system (say, a VAX, or an IBM mainframe), be sure to
- give the appropriate command -- usually SET FILE TYPE BINARY -- to the Kermit
- on the remote end. Kermit-MS itself neither has nor needs the command SET FILE
- TYPE, because the MS-DOS format for text files is exactly the same as Kermit's
- text-file transfer format, which means that MS-Kermit never needs to convert
- file data, no matter whether it be text or binary.
-
- File transfers involving floppy disks will be slow and noisy. Hard disks are
- much faster (and quieter), and RAM disks faster still (and totally silent).
- But if you store new files on a RAM disk, be sure to move them to a real disk
- before turning off your PC.
-
- Before attempting to transfer files to the PC, make sure you have enough room
- on the selected device. Kermit does not provide a way for you to change disks
- during a file transfer. However, the Kermit protocol will help you out a lit-
- tle bit by attempting to prevent transfer of files that are too big to fit in
- the available space. As of version 2.31, MS-Kermit supports "file attributes"
- exchange, and if the other Kermit supports this option too, then the receiving
- program will check free disk space before letting the transfer proceed.
- MS-Kermit allows a margin of 6 percent inflation upon reception, because file
- construction differs markedly between systems. A multiple-file transfer can
- even skip automatically past files that are too big, allowing the little ones
- to pass though.
-
- Other attributes exchanged by MS-Kermit include the file's creation date and
- time, and the system of origin. When two Kermit programs both have attribute
- capability, then files will be stored with the same timestamp on the receiving
- system as they had on the sending system.
-
- Since exchange of attributes is a new feature to MS-Kermit, and a relatively
- scarce one elsewhere, it is possible that two Kermit programs might misun-
- derstand each other because of differing interpretations by the programmers,
- and this could prevent otherwise normal file transfers from taking place. An
- escape clause is provided by the command SET ATTRIBUTES OFF, which makes
- MS-Kermit forget that it has attribute capability.
-
- You may record the progress of a file transfer in a log file by issuing the
- command LOG TRANSACTIONS.
-
-
- The SEND Command
-
- Syntax: SEND filespec1 [filespec2]
-
- The SEND command causes a file or file group to be sent from the local MS-DOS
- system to the Kermit on the remote system. The remote Kermit may be running in
- server or interactive mode; in the latter case, you should already have given
- it a RECEIVE command and escaped back to your PC. S is a special non-unique
- abbreviation for SEND.
-
- filespec1 may contain the wildcard characters "*" to match zero or more
- characters within a field, and/or "#" (first position) or "?" (elsewhere) to
- match any single character (a question mark in first position gives you a help
- message). If filespec1 contains wildcard characters then all matching files
- will be sent, in the same order that MS-DOS would show them in a directory
- listing. If filespec1 specifies a single file, you may direct Kermit-MS to
- send that file with a different name, given in filespec2, as in:
-
- Kermit-MS>send foo.bar framus.widget
-
- filespec2 begins with the first nonblank character after filespec1 and ends
- with the carriage return; thus it may contain blanks or other unusual charac-
- ters that may be appropriate on the target machine. The alphabetic case of
- text in filespec2 is preserved in transmission, so if case matters on the tar-
- get system, be sure to type filespec2 appropriately.
-
- If the SEND command is specified by itself on the command line, then you will
- be prompted separately for the name of the file to send, and the name to send
- it under:
-
- Kermit-MS>send
- Local Source File: c:\stuff\xcom1.txt
- Remote Destination File: com1.txt
-
- If a file can't be opened for read access, the message "Unable to find file"
- will be shown or else the standard MS-DOS recovery procedures will take place:
-
- Not ready error reading drive A
- Abort, Retry, Ignore?
-
- Kermit remains active even if you select "Abort" (DOS's word, not ours).
-
- Files will be sent with their MS-DOS filename and filetype (for instance
- FOO.TXT, no device or pathname). Special characters in the file name are not
- converted. If there is no filetype, then only the name will be sent, without
- the terminating dot. Each file is sent as is, with no conversions done on the
- data, except for possibly stopping at a terminating Control-Z character (see
- the SET EOF command).
-
- Once you give Kermit-MS the SEND command, the name of each file will be dis-
- played on your screen as the transfer begins. Packet, retry, and other counts
- will be displayed along with informational messages during the transfer, in the
- style specified by SET DISPLAY. If the file is successfully transferred, you
- will see "Complete", otherwise there will be an error message. When the
- specified operation is done, the program will sound a beep.
-
- Several single-character commands may be given while a file transfer is in
- progress:
-
- ^X (Control-X) Stop sending the current file and go on to the next one, if
- any.
-
- ^Z Stop sending this file, and don't send any further files.
-
- ^C Return to Kermit-MS command level immediately without sending any kind of
- notification to the remote system. (^Z or even ^E is preferable.)
-
- ^E Like ^C, but send an Error packet to the remote Kermit in an attempt to
- bring it back to server or interactive command level.
-
- CR Simulate a timeout: resend the current packet, or NAK the expected one.
-
- Control-X, Control-Z, and Control-E send the proper protocol messages to the
- remote Kermit to bring it gracefully to the desired state. Control-C leaves
- the remote Kermit in whatever state it happens to be in, possibly retransmit-
- ting its last packet over and over, up to its retry limit. You should only
- have to use Control-C in dire emergencies (the remote Kermit is stuck, the
- remote system crashed, etc), or at those times when you realize that you have
- given a file transfer command to Kermit-MS without first having told the remote
- Kermit about it.
-
- MS-Kermit does not have a built-in mechanism for sending an entire directory
- structure, but this may still be done using command files. A program called
- XSEND, distributed along with MS-Kermit, will construct such a command file
- automatically.
-
-
- The RECEIVE Command
-
- Syntax: RECEIVE [filespec]
-
- The RECEIVE command tells Kermit-MS to receive a file or file group from the
- other system. The file is stored under the name it was transmitted with, ex-
- cept that any illegal characters are translated to X's. Kermit-MS passively
- waits for the file to arrive; this command is not to be used when talking to a
- Kermit server (use GET for that). You should already have issued a SEND com-
- mand to the remote Kermit and escaped back to Kermit-MS before issuing the
- RECEIVE command. The RECEIVE command is intended for situations where the file
- name and sending operation originates at the other side; GET originates the re-
- quest from our side and asks the server to perform the operation. R is a spe-
- cial non-unique abbreviation for RECEIVE.
-
- If the optional filespec is provided, incoming files will be stored under that
- name. If the filespec is really just a path then files are stored where the
- path indicates. If it is an actual filename the first incoming file is renamed
- and any additional files either overwrite the first (if FILE WARNING is OFF) or
- are renamed slightly from the filespec (digits are added to the end of the main
- filename part before the dot and extension) if FILE WARNING is ON (the
- default). The filespec may include any combination of the following fields:
-
- Device designator
- Store the file on the designated device, in the current directory for
- that device. If no device designator is given, store it on the current
- default device.
-
- Directory path
- Store the file in the designated directory on the current disk. If no
- path given, store the file in the current directory.
-
- File name
- Store the file under the name given. If no name is given, store it under
- the name it was sent under, converted, if necessary, to suit DOS conven-
- tions, and modified, if SET WARNING ON, to avoid overwriting any file of
- the same name in the same directory.
-
- If an incoming file does not arrive in its entirety, Kermit-MS will normally
- discard it and it will not appear in your directory. You may change this be-
- havior by using the command SET INCOMPLETE KEEP, which will cause as much of
- the file as arrived to be saved on the disk.
-
- The same single-character commands are available as during SEND:
-
- ^X Request that the remote Kermit stop sending the current file, and proceed
- to the next one immediately. Since this is an optional feature of the
- Kermit protocol, the remote Kermit might not honor the request.
-
- ^Z Request that the remote Kermit terminate the entire transfer; this is
- also an optional feature that may or may not be supported by the remote
- Kermit.
-
- ^C, ^E, and CR operate in the same way as they do during SEND. In this case,
- ^E should always do what ^Z is supposed to do.
-
- If WARNING is OFF and you type ^X or ^Z to interrupt the transfer, you'll ei-
- ther get a partial new file, or else both the old and the new file of that name
- will be lost, depending on SET INCOMPLETE. In any case, when WARNING is off,
- old files with the same name as incoming files will not survive.
-
- Caution: If an incoming file's name (the part before the dot) corresponds to an
- MS-DOS device name, such as NUL, COM1, CON, AUX, or PRN, output will go to that
- device, rather than to a file with that name. This is a feature of MS-DOS.
-
-
- 1.6.5. Hints for Transferring Large Files
-
- During a prolonged file transfer session, things can go wrong that are beyond
- Kermit's control. The longer the session, the greater the probability it will
- be fatally interrupted. But you can take a few precautions:
-
- - Make sure there is sufficient disk space at the receiving end. If
- possible, first run a disk utility (such as CHKDSK) to clean out any
- bad disk blocks.
-
- - If you are using a telephone connection, make sure your session won't
- be interrupted by call waiting, people picking up other extensions,
- etc.
-
- - Don't attempt to transfer a single file of many megabytes over a
- telephone connection. The longer the call, the greater the chance of
- disconnection (carrier loss). Although it's a bother, it may save
- time in the long run to break the file up into smaller pieces, trans-
- fer the pieces, and then recombine on the other end.
-
- - SET INCOMPLETE KEEP on the receiving end, so that if the transfer
- fails, then the partial file will be retained. Then chop the part
- that wasn't transferred into a separate file, reconnect, and send it.
- Then join the pieces together.
-
- Consider moving truly massive amounts of data on magnetic media. "Never under-
- stimate the bandwidth of a station wagon full of magnetic tapes!" (or
- diskettes).
-
-
- 1.6.6. Commands for Raw Uploading and Downloading
-
- MS-Kermit can be used to send files to, or capture files from, remote systems
- that do not have Kermit programs available. No error checking or correction is
- done, so the results can very likely contain corrupted characters, spurts of
- noise, gaps, or extraneous system messages or prompts. The command for upload-
- ing is TRANSMIT, and for downloading LOG SESSION.
-
- To minimize loss of data during these operations, be sure to SET the
- FLOW-CONTROL and HANDSHAKE parameters to match the characteristics of the sys-
- tem on the other end.
-
-
- The TRANSMIT Command
-
- Syntax: TRANSMIT filespec [prompt-character]
-
- The TRANSMIT command provides a basic raw upload (export) facility to send
- straight ASCII text files to the host without packets, error checking, or
- retransmissions, but using all the currently selected communication parameters
- for flow control, parity, etc. Information is read from the disk file a line
- at a time, sent out the serial port, and the command waits for a single charac-
- ter prompt (normally linefeed) from the host before sending the next file line.
- A disk file line ends with carriage-return-linefeed (CRLF), but only the car-
- riage return is sent, just as you only type carriage return at the end of a
- line, not CR and LF. Most remote systems will echo the CR and then also supply
- a LF, which indicates that they have processed the line and are ready for
- another one. Setting the prompt to binary zero, \0, makes the TRANSMIT command
- proceed without waiting for a prompt. Pressing the local Return key simulates
- arrival of a prompt character.
-
- Typically, before using this command to upload a file, you would start a text
- editor (preferably a line-oriented, rather than full-screen, editor) on the
- remote host and put it into text insertion mode. When the file has been com-
- pletely transmitted, you would manually enter the required sequence for getting
- the editor out of text insertion mode, and then make any necessary corrections
- by hand. Here's an example for VAX/VMS:
-
- Kermit-MS>set flow xon/xoff Set flow control to match VAX/VMS.
- Kermit-MS>connect Connect to VAX.
- $ edt foo.txt Start the EDT editor.
- *i Put it into "insert" mode.
- ^]c Escape back to Kermit-MS.
- Kermit-MS>transmit foo.txt Upload the file a line at a time.
- ... The lines are displayed on your screen.
- Kermit-MS>connect When done, connect back to the VAX.
- ^Z Type Ctrl-Z to exit EDT insert mode.
- *exit Exit from EDT to save the file.
- $
-
- If transmission appears to be stuck, you can wake it up by typing a carriage
- return on the keyboard. You can cancel the TRANSMIT command by typing a
- Control-C. Control-Z's or other control characters in the file may have ad-
- verse effects on the host. For this reason, you should use TRANSMIT only for
- files that contain 7-bit printing ASCII characters, spaces, tabs, carriage
- returns, linefeeds, and possibly formfeeds.
-
-
- The LOG SESSION Command
-
- Syntax: LOG SESSION [filespec]
-
- The LOG SESSION command lets you copy the characters that appear on your screen
- during CONNECT into the specified file on the PC. You can use this command to
- download files by displaying (usually with a command like TYPE) the file on the
- remote system while logging is in effect. Example:
-
- Kermit-MS>set flow xon/xoff Set flow control to match VAX/VMS.
- Kermit-MS>connect Connect to the VAX.
- $ type foo.bar Give this command, but don't type CR yet.
- ^]c Escape back.
- Kermit-MS>log session foo.bar
- Kermit-MS>connect Connect back.
- Now type the carriage return.
- This is the file FOO.BAR. The file is displayed on your screen
- Blah blah ... and captured into PC file FOO.BAR.
- $ The prompt is captured too.
- ^]c When done, escape back
- Kermit-MS>close session and close the log file.
-
- The PC file FOO.BAR now contains a (possibly mutilated) copy of the remote
- computer's FOO.BAR file. It probably has the remote system's prompt at the
- end, which you can edit out. The session log can also be used to record
- typescripts, editing sessions, Tektronix graphics output, or any other output
- from, or dialog with, the remote computer.
-
- During terminal emulation, the LOG command records all the characters that ar-
- rive from the remote host in the specified file, including escape sequences,
- with any input character translations applied according to SET TRANSLATION IN-
- PUT. If you have SET LOCAL-ECHO ON, the characters you type will also be
- recorded. Logging may be suspended and resumed within a terminal session with
- the CONNECT escape-level commands Q and R. The log file will be composed of
- 7-bit ASCII bytes if (a) PARITY is other than NONE, or (b) DISPLAY is SET to 7.
- If DISPLAY is 8 and PARITY is NONE, or if DEBUG is ON, then the log will con-
- tain 8-bit bytes.
-
- You may LOG SESSION PRN to cause the logging information to be printed directly
- on your printer. Any escape sequences that are sent to the screen are also
- sent to the printer.
-
- If you want to record information without imbedded escape sequences, use the
- screen dump feature, invoked by the CONNECT escape-level command F, which is
- described under the CONNECT command.
-
- A session log cannot be played back directly on the PC from the log file. To
- relive the session, you must transfer it to the remote system and display it in
- "binary mode" (e.g. cat in Unix) while CONNECTed.
-
-
- 1.6.7. Kermit Server Commands
-
- Kermit-MS can act as a Kermit server, and can also interact with other Kermit
- servers. Normally, the remote Kermit is put into server mode. Then the local
- Kermit becomes a "client", and may issue repeated commands to the server with-
- out having to connect and escape back repeatedly. Servers can not only trans-
- fer files, but can also provide a variety of file management functions. The
- SERVER command puts MS-Kermit into server mode, and the DISABLE and ENABLE com-
- mands modify the behavior of the server.
-
- Kermit servers respond only to information sent as Kermit protocol packets and
- not to ordinary CONNECT-mode commands. When MS-Kermit is the client, it uses
- the SEND command (described above) to send files to a server, the GET command
- (not RECEIVE) to get files from a server, the REMOTE commands to invoke the
- file management functions of the server, and the BYE, FINISH, or LOGOUT com-
- mands to shut down the server. The MS-Kermit server can also be returned to
- interactive mode by typing Ctrl-C or Ctrl-Break on the PC's console keyboard;
- if the SERVER command was issued from a command file, execution of the command
- file will resume with the next command after SERVER.
-
-
- The SERVER Command
-
- Syntax: SERVER [timeout]
-
- Kermit-MS is capable of acting as a full-fledged Kermit server for users coming
- in through one of the communication ports or a local area network. To put
- Kermit-MS into server mode, first issue any desired SET commands to select and
- configure the desired port, then DISABLE any undesired functions, and then type
- the SERVER command. Kermit-MS will await all further instructions from the
- client Kermit on the other end of the connection, which may be hardwired, or
- connected through a network or autoanswer modem.
-
- In the following example, a Kermit server is set up for dialing in:
-
- Kermit-MS>set port 1
- Kermit-MS>set speed 1200
- Kermit-MS>hangup
- Kermit-MS>connect
- ATS0=1
- OK
- ^]c
- Kermit-MS>set server timeout 0
- Kermit-MS>set warning on
- Kermit-MS>disable all
- Kermit-MS>server
-
- Before putting Kermit in server mode in this case it was necessary to connect
- to the modem (in this example, a Hayes) and put it into autoanswer mode by
- typing the ATS0=1 command. Since Kermit packets typically start with a
- Control-A character check the modem's manual to ensure that character is not a
- modem command signal; some brands regard Control-A as a hangup request!
-
- Note the command SET SERVER TIMEOUT 0. This disables the MS-Kermit server's
- normal behavior of timing out periodically and sending a NAK packet while wait-
- ing for a connection. This might be necessary with certain modems or PBXs that
- can be taken out of answer mode if they receive any characters from the PC be-
- fore a call is received.
-
- An optional timeout value can be specified to exit server mode automatically at
- a certain time. The timeout can be expressed as a number, meaning seconds from
- now, or as the hh:mm:ss form, in 24-hour time of day. Both forms recognize
- times greater than 12 hours from now as being in the past. For instance, if
- you want to run a Kermit server for an hour, and then have it exit so that
- another program can run, use a command file like:
-
- set port 1 ; Use COM1
- set speed 2400 ; at 2400 bps.
- disable all ; Only allow file transfers in current directory.
- server 3600 ; Be a server for 3600 seconds = 1 hour.
- exit ; Exit when done.
-
- MS-Kermit 2.32 server mode supports the following requests:
-
- SEND REMOTE CWD (CD) REMOTE MESSAGE
- GET REMOTE DELETE REMOTE SEND
- FINISH REMOTE DIRECTORY REMOTE SPACE
- BYE REMOTE HELP REMOTE TYPE
- LOGOUT REMOTE HOST REMOTE WHO
- REMOTE LOGIN
-
- REMOTE CWD (CD) can be used to change both directories and devices. The REMOTE
- MESSAGE command accepts a one line message on the command line which will be
- displayed on the operator's console. An MS-Kermit Server can DISABLE recog-
- nition of selected REMOTE commands to help reduce accidents.
-
- CAUTION: The method used for most of the REMOTE commands is to invoke a
- task with the user's command line, redirect standard output to a tem-
- porary file, $KERMIT$.TMP, send that file back to the remote end, and
- then delete the file. Sufficient space must be available to store this
- file. To service DOS commands or user tasks COMMAND.COM must be lo-
- cated on the DOS PATH.
-
- FURTHER CAUTION: Any of these DOS tasks or programs may encounter an
- error, and in that case, DOS will generally put the familiar "Abort,
- Retry, Ignore?" message on the server's screen, and will wait for an
- answer from the keyboard. This will hang the server until a human
- comes to the keyboard and gives a response. The same thing will happen
- when any program is invoked that interacts with the real console. DIS-
- ABLE ALL seems to avoid most unpleasant situations of this kind.
-
- For local network operation with NetBios, the SET PORT NET command (with no
- node name) must be issued before the SERVER command. MS-Kermit then becomes a
- network-wide server, and other client Kermits can start a network session with
- it by using the name of the Kermit Server, which is shown on the server's
- screen when SET PORT NET is given. The Kermit Server accepts connections from
- other Kermits, but only one at a time. There may be many Kermit Servers active
- on the network simultaneously because each has a unique node name. Operations
- are exactly the same as with serial port usage and the session (equivalent to a
- dialed phone connection) is maintained between the pair until too many timeouts
- occur, or the client Kermit issues a HANGUP command, exits to DOS, or SETs PORT
- NET to another node. In the latter cases, the server remains available for use
- by other client Kermits. If a client Kermit issues the BYE or FINISH command,
- the network server is shut down (unless it was started with FIN disabled).
-
-
- The DISABLE and ENABLE Commands
-
- For security purposes, it may be desirable to leave your PC in Kermit server
- mode so that it can be dialed in to, but with certain functions unavailable to
- those who dial in. The DISABLE and ENABLE commands provide this control.
-
- The DISABLE and ENABLE commands affect the following functions, with the effect
- of DISABLEs noted:
-
- CWD (CD) Changing of directories, disabled entirely.
- DEL Deletion of files confined to current directory.
- DIR Production of directory listings confined to current directory.
- FIN Shutting down the server (applies also to BYE) disabled entirely.
- GET Getting files from the server confined to current directory.
- HOST Execution of all REMOTE HOST (DOS) commands disabled entirely.
- SEND Forces files sent to server into current directory.
- SPACE Asking the server for a disk space report, disabled.
- TYPE REMOTE TYPE files confined to current directory.
- ALL All of the above.
- TEK Automatic invocation of Tektronix graphics mode by host commands.
- This function is not related to server mode, and is not included in
- the ALL term.
-
- For reasons which should be obvious, the Kermit server does not provide a
- REMOTE ENABLE command!
-
-
- The GET Command
-
- Syntax: GET remote-filespec
-
- The GET command requests a Kermit server to send the file or file group
- specified by remote-filespec. This command can be used only when Kermit-MS has
- a Kermit server active on the other end of the connection. This usually means
- that you have CONNECTed to the other system, logged in, run Kermit there,
- issued the SERVER command, and escaped back (e.g. "^]C") to the local
- Kermit-MS. In the case of LAN operation, a Kermit server must be running some-
- where on the network. If the remote Kermit does not have a SERVER command,
- then you should use SEND and RECEIVE as described above.
-
- You may use the GET command in a special way to specify a different name for
- storing the incoming file. Just type GET alone on a line, and you will be
- prompted separately for the remote filespec and the local filespec:
-
- Kermit-MS>get
- Remote Source File: com1 txt
- Local Destination File: a:xcom1.txt
-
- The local file name may contain a device field, and/or a directory specifica-
- tion. Device and directory specifications in the local destination file name
- work the same way as in the RECEIVE command. The multiline GET command is
- provided so that the distinction between the two files is always clear, which
- would not otherwise be the case if the foreign filename had spaces in it.
-
- The remote filespec is any string that can be a legal file specification for
- the remote system; it is not parsed or validated locally. It can contain
- whatever wildcard or file-group notation is valid on the remote system, includ-
- ing spaces. If the string needs to begin with a question mark (?) then use a
- sharp sign (#) instead to avoid Kermit's help message; it will be transmitted
- as a question mark.
-
- Once the file transfer begins, the GET command behaves exactly like the RECEIVE
- command.
-
- Warning: If the remote filespec is to contain a semicolon, and the GET command
- is being issued from a TAKE command file, you must prefix the semicolon with a
- backslash. Otherwise, all characters beginning with the semicolon will be ig-
- nored:
-
- get me.home\;2
-
-
- 1.6.8. Commands for Controlling Remote Kermit Servers
-
- The BYE, FINISH, and LOGOUT commands allow you to shut down a remote Kermit
- server:
-
- BYE When communicating with a remote Kermit server, use the BYE command to
- shut down the server, log out its job, and exit locally from Kermit-MS
- to DOS. On local area networks, BYE also terminates the network ses-
- sion.
-
- FINISH Like BYE, FINISH shuts down the remote server. However, FINISH does
- not log out the server's job. You are left at Kermit-MS prompt level
- so that you can connect back to the job on the remote system. On local
- area nets, FINISH shuts down the MS-Kermit server, but in a way that
- allows it to be restarted as if no interruption had occurred.
-
- LOGOUT The LOGOUT command is identical to the BYE command, except you will
- remain at Kermit-MS prompt level, rather than exit to DOS, so that you
- can establish or use another connection without having to restart
- MS-Kermit.
-
-
- The REMOTE Commands
-
- The REMOTE keyword is a prefix for a number of commands. It indicates that the
- command is to be performed by a remote Kermit server. Not all Kermit servers
- are capable of executing all of these commands, and some Kermit servers may be
- able to perform functions for which Kermit-MS does not yet have the correspond-
- ing commands. In case you send a command the server cannot execute, it will
- send back a message stating that the command is unknown to it. If the remote
- server can execute the command, it will send the results, if any, to your
- screen.
-
- Here are the REMOTE commands that Kermit-MS may issue:
-
- REMOTE CWD [directory]
- (Also REMOTE CD) Ask the server to Change your Working Directory on the
- remote host, that is, the default source and destination area for file
- transfer and management. You will be prompted for a password, which
- will not echo as you type it. If you do not supply a password (i.e.
- you type only a carriage return), the server will attempt to access the
- specified directory without a password. If you do not supply a direc-
- tory name, your default or login directory on the remote system will be
- assumed and you will not be prompted for a password.
-
- REMOTE DELETE filespec
- Ask the server to delete the specified file or files on the remote sys-
- tem. In response, the server may display a list of the files that were
- or were not successfully deleted.
-
- REMOTE DIRECTORY [filespec]
- Ask the server to display a directory listing of the specified files.
- If no files are specified, then the list should include all files in
- the current working directory.
-
- REMOTE HELP
- Ask the server to list the services it provides.
-
- REMOTE HOST [command]
- Ask the server to send the command to the remote system's command
- processor for execution.
-
- REMOTE KERMIT command
- Send the command to the remote Kermit for interpretation as a Kermit
- command in the remote Kermit server's own command syntax.
-
- REMOTE LOGIN user
- Password and account are always solicted via prompts. A carriage
- return response corresponds to an empty entry. REMOTE LOGIN applies
- only to a remote Kermit server and not to a remote operating system; an
- MS Kermit server does not understand the command.
-
- REMOTE MESSAGE text
- Send the one line text message to be displayed on the Server's screen.
-
- REMOTE SPACE [directory]
- Ask the server to provide a brief summary of disk usage in the
- specified area on the remote host or, if none specified, the default or
- current area.
-
- REMOTE TYPE filespec
- Ask the server to display the contents of the specified remote file or
- files on your screen.
-
- REMOTE WHO [who-spec]
- Ask the server to list actively logged on users; optional who-spec
- qualifies the list and uses the syntax of the server system.
-
-
- The Mail Command
-
- Syntax: MAIL filespec address
-
- The MAIL command is a very close relative of Kermit's SEND command. Mail sends
- a file, or file group, to a Kermit server with instructions (in an Attribute
- packet) to submit the file(s) to the host's Mailer utility rather than store
- them on disk. To round out a mail request a field following the filename is
- required, and into it we place the address to which the files are to be mailed.
- Mail addresses vary substantially, but several common forms are "username",
- "username@host", and "host::username". The MAIL command will work only if the
- Kermit server understands it, otherwise the mail request will be rejected be-
- fore any files are sent. Kermit-MS can send mail but it cannot receive it, be-
- cause MS-DOS does not have a mail facility. When sending, there is no way to
- transmit any fields other than the recipient's address and the message body;
- fields like subject and cc are not supported.
-
-
- 1.6.9. The LOG and CLOSE Commands
-
- Syntax: LOG {PACKET, SESSION, TRANSACTION} [filespec]
- CLOSE {PACKET, SESSION, TRANSACTION}
-
- The LOG command tells MS-Kermit to record the terminal session, file transfer
- transactions, or the file transfer protocol packets themselves in a log file.
- If the log file already exists then new material is appended to it. Open log
- files may be closed (and the associated logging disabled) using the CLOSE com-
- mand. Open log files are also closed when you EXIT from Kermit.
-
- LOG SESSION is used to record your terminal emulation typescript. It was
- described above, in the section on file transfer.
-
-
- The LOG TRANSACTION Command
-
- Syntax: LOG TRANSACTION [filespec]
-
- The Transaction log is a file recording a pair of text lines describing each
- file transfer (SEND, GET, RECEIVE, or some REMOTE commands). The lines indicate
- the local filename (and remote name if different), the time and date of the
- start of the transfer, the number of bytes transferred, and the status of the
- transfer. New entries are always appended to old to prevent loss of records.
- The default filename is TRANSACT.LOG. The command SHOW LOGGING displays the
- current names and which logs are active. The command CLOSE TRANSACTION will
- voluntarily terminate this class of log; otherwise, it will be closed automati-
- cally when Kermit exits.
-
-
- The LOG PACKETS Command
-
- Syntax: LOG PACKETS [filespec]
-
- The packet log is for diagnostic purposes and records each Kermit protocol
- packet sent and received in printable format. Control characters are written
- as caret-letter and characters with the high bit set are shown as their 7-bit
- part preceeded by a tilde. The default filename is PACKET.LOG. If you ex-
- perience difficulty with file transfers the packet log is valuable in discover-
- ing who said what to whom, even though a copy of the Kermit book is needed to
- unravel the meaning of each character in a packet.
- 1.6.10. The SET Command
-
- Syntax: SET parameter [parameter] value
-
- The SET command establishes or modifies parameters for file transfer or ter-
- minal connection. You can examine their values with the SHOW or STATUS com-
- mands. The following SET commands are available in Kermit-MS:
-
- ALARM Set alarm clock time, for IF ALARM testing
- ATTRIBUTES Controls whether MS-Kermit uses Attribute packets
- BAUD Communications port line speed (synonym for SPEED)
- BELL Whether to beep at the end of a transaction
- BLOCK-CHECK-TYPE Level of error checking for file transfer
- COUNT Variable for TAKE file and macro IF COUNT testing
- DEBUG Display packet contents during file transfer
- DEFAULT-DISK Default disk drive for file i/o
- DELAY Wait number seconds before Sending a file
- DESTINATION Default destination device for incoming files
- DISPLAY For selecting the type of file transfer display
- DUMP Screen dump file (or device) name
- END-OF-LINE Packet termination character
- EOF Method for determining or marking end of file
- ERRORLEVEL Value returned to DOS Batch files
- ESCAPE Escape character for CONNECT
- FLOW-CONTROL Enable or disable XON/XOFF
- HANDSHAKE Half-duplex line turnaround option
- INCOMPLETE What to do with an incompletely received file
- INPUT Behavior of INPUT command for scripts
- KEY Specify key redefinitions
- LOCAL-ECHO Specify which computer does the echoing during CONNECT
- MODE-LINE Whether to display a mode line during terminal emulation
- PARITY Character parity to use
- PORT Select a communications port
- PROMPT Change the "Kermit-MS>" prompt to something else
- RECEIVE Request remote Kermit to use specified parameters
- REMOTE For running Kermit-MS interactively from back port
- RETRY Packet retransmission threshold
- SEND Use the specified parameters during file transfer
- SERVER Parameters for server mode (command wait timeout)
- SPEED Communications port line speed (synonym for BAUD)
- TAKE-ECHO Control echoing of commands from TAKE files
- TERMINAL Emulation and parameters
- TIMER Enable/disable timeouts during file transfer
- TRANSLATION Enable/disable/specify conversion of arriving characters
- WARNING Specify how to handle filename collisions
-
- The SET commands are now described in detail, in alphabetical order.
-
-
- SET ALARM
-
- Syntax: SET ALARM {seconds, hh:mm:ss}
-
- The alarm is a timer, like an alarm clock, available for testing by IF ALARM
- statements. The alarm time is given as seconds from the present or as a
- 24-hour specific time of day. Both need to be within 12 hours of the present
- to avoid being mistaken for times in the past. SHOW SCRIPT displays the cur-
- rent alarm setting.
-
-
- SET ATTRIBUTES
-
- Syntax: SET ATTRIBUTES {ON, OFF}
-
- Disables or enables use of Kermit file Attribute protocol packets, which con-
- tain the size, time, and date of files transferred using the Kermit protocol.
- This command is a safety feature so that a small misunderstanding with another
- Kermit cannot block transfers. SHOW FILE tells whether attributes are on or
- off; they are normally ON.
-
-
- SET BAUD
-
- Syntax: SET BAUD number
-
- Synonym for SET SPEED (q.v.).
-
-
- SET BELL
-
- Syntax: SET BELL {ON, OFF}
-
- Specifies whether the bell (beeper) should sound upon completion of a file
- transfer operation. Normally ON.
-
-
- SET BLOCK-CHECK-TYPE
-
- Syntax: SET BLOCK-CHECK-TYPE {1, 2, 3}
-
- Selects the error detection method: a 1-character 6-bit checksum (the normal
- case), a 2-character 12-bit checksum, or a 3-character 16-bit cyclic redundancy
- check (CRC). If the other Kermit program is not capable of type 2 or 3 check-
- ing methods, automatic fallback to type 1 will occur. The more secure type 2
- and 3 block checks take essentially no more execution time than the simple 1
- character checksum. SET BLOCK 3 is a stronger check than SET BLOCK 2. SET
- BLOCK 2 or 3 is recommended for use with long packets (see below), noisy com-
- munication lines, binary (8-bit data) files, and text files containing critical
- data (budgets, grades, etc).
-
-
- SET COUNT
-
- Syntax: SET COUNT number
-
- Set the value of the script COUNT variable to be between 0 and 65535. COUNT is
- used with IF COUNT to construct counted loops in script TAKE files and macros.
- Each active TAKE file or macro uses a private version of COUNT. The default
- value is zero, and the SHOW SCRIPT command displays the current value
- (meaningful only when given within a TAKE file or macro).
-
-
- SET DEBUG
-
- Syntax: SET DEBUG {PACKET, SESSION, ON, OFF}
-
- With DEBUG PACKET, Kermit will display the actual packets on your screen during
- file transfer. With the normal file transfer display, regular-length packets
- sent and received are displayed in fixed-size slots. The display of
- extended-length packets, however (see SET RECEIVE PACKET-LENGTH), tends to
- overlap. If this bothers you, then also SET DISPLAY SERIAL, or LOG the packets
- rather than displaying them.
-
- With DEBUG SESSION, during terminal emulation (on the IBM PC, Rainbow, and a
- few others), control characters are displayed in uparrow ("^") notation and
- characters with the 8th bit set are preceded by the tilde ("~") sign, and your
- session log (if any) will record 8-bit bytes, rather than 7-bit ASCII, regard-
- less of SET DISPLAY or SET PARITY. Character translation (SET TRANSLATION
- INPUT) is not done during session debugging. The effect of SET DEBUG SESSION
- during terminal connection can be disconcerting, but it gives you a convenient
- line monitor equivalent to a specialized device that costs several thousand
- dollars, and it can prove very handy for tracking down data communication
- problems.
-
- SET DEBUG ON turns on both SESSION and PACKET debugging, and SET DEBUG OFF
- turns them both off.
-
-
- SET DEFAULT-DISK
-
- Syntax: SET DEFAULT-DISK x:[directory]
-
- Specify the default disk drive to use for file transfer, directory listings,
- and so forth. Equivalent to typing the DOS command for changing disks (A:, B:,
- etc). Affects Kermit and all inferior processes, but when you exit from Ker-
- mit, you will still have the same default disk as when you entered. As a con-
- venience, a directory may be specified with or without the drive to change one
- or the other or both. This command is a synonym for CWD (CD).
-
-
- SET DELAY
-
- Syntax: SET DELAY number
-
- Wait the specified number of seconds before starting a file transfer. Intended
- for use when the other side needs appreciable time to become ready, such as
- rearranging cables, changing programs, etc., or when MS-DOS Kermit is the
- remote Kermit (e.g. after CTTY COM1, SET REMOTE ON). The number is 0 to 63
- seconds, normally 0.
-
-
- SET DESTINATION
-
- Syntax: SET DESTINATION {DISK, PRINTER, SCREEN}
-
- SET DESTINATION PRINTER will cause incoming files to be sent directly to the
- printer; SCREEN will send output normally destined for the disk to the screen.
- The normal destination is DISK. SET DESTINATION affects only files transferred
- with SEND, GET, or RECEIVE; it cannot be used to reroute the output from REMOTE
- server commands.
-
-
- SET DISPLAY
-
- Syntax: SET DISPLAY {QUIET, REGULAR, SERIAL, 7-BIT, 8-BIT}
-
- During file transfer, MS-DOS Kermit's regular display is a formatted screen
- whose fields are randomly updated with file names, packet numbers, error
- counts, percent done, error messages, and so forth, as shown in Figure 1-1.
-
- If you wish to run Kermit-MS interactively through the back port, for instance
- after the operator has done CTTY COM1, you must give the command SET REMOTE ON
- (which, currently at least, is equivalent to SET DISPLAY QUIET); this sup-
- presses the file transfer display screen, so that the display won't interfere
- with the file transfer itself. You can also use this command to suppress the
- display in local mode, in case you are using a system that allows you to do
- other work while file transfer proceeds in the background.
-
- If you have your PC connected to a speaking device (a common practice for
- visually impaired people), or you are logging the display screen to a printer
- (using DOS ^P or kermit > prn), the random nature of the regular display will
- make the results of little use. SET DISPLAY SERIAL is provided for this pur-
- pose; it causes the program to report progress "serially" on the screen. In
- serial mode, error messages are preceeded with the word "Error" and repeat mes-
- sages with the word "Retry". Packets are numbered as dots with every tenth be-
- ing a plus sign. The packet display is automatically broken across lines at
- every 70th packet. The serial display makes much more sense when spoken than
- does the regular display.
-
- The serial display does not show the percent and kilobytes transferred. It is
- the default display style for generic MS-DOS Kermit; REGULAR is the default for
- all others.
-
- The last two parameters, 7-BIT and 8-BIT, control the size of characters sent
- to the screen during terminal emulation. 7-BIT is the default and includes all
- ASCII characters. 8-BIT is useful with national and line drawing characters.
-
-
- SET DUMP
-
- Syntax: SET DUMP filespec
-
- On those systems that support this feature, change the file or device name of
- the screen dump file. The normal file name is KERMIT.SCN. See the section on
- terminal emulation for details about screen dumps. If the specified file al-
- ready exists then new material is appended to old. If you want to start a new
- screen dump file, delete the old one first.
-
-
- SET END-OF-LINE
-
- Syntax: SET END-OF-LINE number
-
- If the remote system needs packets to be terminated by anything other than car-
- riage return, specify the decimal value, 0-31, of the desired ASCII character.
- Equivalent to SET SEND END-OF-LINE (SET END-OF-LINE is kept only for historical
- reasons, and the parameter really should be called END-OF-PACKET anyway.)
-
-
- SET EOF
-
- Syntax: SET EOF {CTRL-Z, NOCTRL-Z}
-
- Controls how the end of file is handled. CTRL-Z specifies a Control-Z charac-
- ter should be appended to the end of an incoming file. Certain MS-DOS text
- editors and other applications require files to be in this format. For out-
- bound files, treat the first Control-Z as the end of the local file, and do not
- send it or any subsequent characters. NOCTRL-Z is the default; incoming files
- are stored, and MS-DOS files are sent, exactly as is, in their entirety. Use
- SHOW FILE to see the current SET EOF status.
-
-
- SET ERRORLEVEL
-
- Syntax: SET ERRORLEVEL number
-
- Forces the DOS "errorlevel" variable to a given value. This is used in scripts
- when other controls or tests determine that the cumulative errorlevel reported
- to DOS Batch when Kermit exits needs to be modified. The number can be 0 to
- 255 decimal.
-
-
- SET ESCAPE
-
- Syntax: SET ESCAPE character
-
- Specify the control character you want to use to "escape" from remote connec-
- tions back to Kermit-MS. On most systems the default is "^]" (Control-
- Rightbracket), which was chosen because it is a character you would otherwise
- rarely type.
-
- The character is entered literally after SET ESCAPE or in backslash number form
- (\29), and should be chosen from the ASCII control range. It is not possible
- to use non-ASCII characters (like function keys) for this purpose (but see SET
- KEY for a way around this restriction).
-
-
- SET FLOW-CONTROL
-
- Syntax: SET FLOW-CONTROL {XON/XOFF, NONE}
-
- Specify the full duplex flow control to be done on the currently selected port.
- The options are XON/XOFF and NONE. The specified type of flow control will be
- done during both terminal emulation and file transfer. By default, XON/XOFF
- flow control is selected. XON/XOFF should not be used on half-duplex (local
- echo) connections, or when the other system does not support it. If XON/XOFF
- is used, HANDSHAKE should be set to NONE.
-
-
- SET HANDSHAKE
-
- Syntax: SET HANDSHAKE {CODE number, BELL, CR, LF, NONE, XOFF, XON}
-
- Specify any half-duplex line turnaround handshake character to be used during
- file transfer on the currently selected port. The CODE number form allows any
- ASCII character to be specified by its decimal ASCII code. Handshake is NONE
- by default; if set to other than NONE, then FLOW-CONTROL should be set to NONE.
- In operation the handshake character is sought at the end of each received
- packet, following the normal END-OF-LINE character, but is not sent for out-
- going packets.
-
-
- SET INCOMPLETE
-
- Syntax: SET INCOMPLETE {DISCARD, KEEP}
-
- Specifies what to do with files that arrive incompletely: discard them or keep
- them. They are normally discarded.
-
-
- SET INPUT
-
- Syntax: SET INPUT {CASE, DEFAULT-TIMEOUT, ECHO, TIMEOUT-ACTION}
-
- This command is described in Section 1.8, SCRIPTS.
-
-
- SET KEY
-
- Syntax: SET KEY key-specifier [key-definition]
- Also: SET KEY {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.12 for further details.
-
- Typical uses of SET KEY:
-
- - 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.
-
- - You have trouble with Kermit's 2-character escape sequences (like
- Ctrl-] C), and you want to assign these functions to single keys,
- like F10.
-
- 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 produces an up-
- percase 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-Shift-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 directory\13 IBM F1 key sends "directory<cr>"
- SET KEY S X S key sends upper case X (a mean trick)
- SET KEY T \27[m T key sends three bytes: ESC [ m
- SET KEY \2336 {del }xxx Alt-D sends "del "
- SET KEY \324 \Kexit F10 escapes back to Kermit-MS> prompt.
-
- 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.
-
- 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 then press the desired key or key
- combination. 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 and 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: 129 key and 100 string definitions, 837 string characters.
-
- The free space report says that 129 more keys may be redefined, and up to 100
- of them may have multi-character strings assigned to them (as opposed to single
- characters), and that there are 837 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.
-
- 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 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 keyboard
- replacements 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-6 shows
- those available for the IBM PC family (there are also some additional verbs for
- reassigning Heath or VT100 function keys, see section 1.17.2). 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
- \Kholdscrn Toggle hold screen mode
- \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
- \Kterminals Invoke user-defined macro TERMINALS, if any
- \Kterminalr Invoke user-defined macro TERMINALR, if any
- \Kexit Escape back from CONNECT mode
- \Kgold,\Kpf1 VT102 keypad function key PF1
- \Kpf2..\Kpf4 VT102 keypad function keys
- \Kkp0..\Kkp9 VT102 keypad numeric keys
- \Kkpdot,\Kkpminus,\Kkpcoma,\Kkpenter Other VT102 keypad keys
- \Kuparr,\Kdnarr,\Klfarr,\Krtarr VT102 cursor (arrow) keys
-
- Table 1-6: 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.17.2). 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.
-
-
- SET LOCAL-ECHO
-
- Syntax: SET LOCAL-ECHO {ON, OFF}
-
- Specify how characters are echoed during terminal emulation on the currently
- selected port. ON specifies that characters are to be echoed by Kermit-MS
- (because neither the remote computer nor the communications circuitry has been
- requested to echo), and is appropriate for half-duplex connections. LOCAL-ECHO
- is OFF by default, for full-duplex, remote echo operation.
-
-
- SET MODE-LINE
-
- Syntax: SET MODE-LINE {ON, OFF}
-
- On systems, like the IBM PC family, which are capable of displaying a status,
- or "mode" line on the 25th (or bottom) line during terminal connection, disable
- or enable this function. This command has no effect on systems that do not
- display a mode line during connect.
-
- The mode line shows several important facts about the connection, like which
- port is being used, the transmission speed and parity, the current escape
- character, etc. When the mode line is enabled, it may be turned on and off
- using the CONNECT escape-level command M or the Kermit verb "modeline".
-
- The mode line occupies the 25th line of those systems that have such a thing,
- and is not affected by scrolling (on some systems that have large screens, the
- mode line should appear on whatever the bottom line is, e.g. the 43rd). When
- emulating a VT102 or Heath-19, Kermit will allow the host to address the 25th
- line directly using cursor positioning commands. If this happens, Kermit will
- remove its mode line and relinquish control of the 25th line to the host (as if
- you had typed SET MODE OFF). When the Tektronix, or no terminal at all, is be-
- ing emulated, the 25th line (if any) is available for scrolling. If the mode
- line is disabled by an application or by the command SET MODE OFF then the only
- way to revive Kermit's mode line display is to give the command SET MODE ON.
-
-
- SET PARITY
-
- Syntax: SET PARITY {EVEN, ODD, MARK, SPACE, NONE}
-
- Specify the character parity to be used on the currently selected port. You
- will need to SET PARITY to ODD, EVEN, MARK, or possibly SPACE when communicat-
- ing with a system, or over a network, or through modems, concentrators, mul-
- tiplexers, or front ends that require or impose character parity on the com-
- munication line. For instance, most IBM mainframe computers use EVEN or MARK
- parity; Telenet normally uses MARK parity. If you neglect to SET PARITY when
- the communications equipment requires it, the symptom may be that terminal
- emulation works (well or maybe only partially), but file transfer or script IN-
- PUT commands do not work at all.
-
- NONE means that no parity processing is done, and the 8th bit of each character
- can be used for data when transmitting binary files. This is the normal case.
- If parity is other than none, then there will be 7 data bits (use of parity
- with 8 data bits is not supported).
-
- If you have set parity to ODD, EVEN, MARK, or SPACE, then Kermit-MS will re-
- quest that binary files be transferred using 8th-bit-prefixing. If the other
- Kermit knows how to do 8th-bit-prefixing (this is an optional feature of the
- Kermit protocol, and some implementations of Kermit don't have it), then 8-bit
- binary files can be transmitted successfully. If NONE is specified, 8th-bit-
- prefixing will not be requested. Note that there is no advantage to using
- parity. It reduces Kermit's file transfer efficiency without providing ad-
- ditional error detection. The SET PARITY command is provided only to allow
- Kermit to adapt to conditions where parity is required, or 8-bit transmission
- is otherwise thwarted.
-
- If parity is in use, then the display during terminal emulation, as well as any
- session log, will be 7-bit ASCII, unless you have SET DEBUG ON (q.v.).
-
- There may be situations in which you require 7-bit ASCII with no parity during
- terminal emulation, but still want to force 8th bit prefixing during file
- transfer. To accomplish this, SET PARITY SPACE.
-
- The INPUT and TRANSMIT commands use 7 or 8 bits if parity is NONE, according to
- the SET DISPLAY command, and this may upset recognition of received characters
- when the host unexpectedly sends them with its own parity.
-
- WARNING: The SET PARITY command has no effect on a port used for printing.
- This is because printing is done by DOS, not Kermit. Since Kermit clears
- hardware parity on COM1 at startup, it is not recommended that COM1 be used for
- a serial printer, unless the printer works with no parity.
- SET PORT
-
- Syntax: SET PORT {number, COMn, BIOSn, NET [nodename], UB-NET1 [nodename]}
-
- On machines with more than one communications port, select the port to use for
- file transfer and CONNECT. This command lets you use a different asynchronous
- adapter, or switch between two or more simultaneous remote sessions. Sub-
- sequent SET SPEED, PARITY, HANDSHAKE, FLOW, and LOCAL-ECHO commands will apply
- to this port only -- each port remembers its own parameters, so that you may
- set them for each port and then switch between ports conveniently with the SET
- PORT command.
-
- SET PORT 1 selects COM1, SET PORT 2 selects COM2. All versions default to port
- 1, except for the IBM PCjr, which uses port 2 if its internal modem is in-
- stalled. Additionally, COM3 and COM4 are supported for IBM PC/AT's and PS/2's,
- as explained in Section 1.18.3.
-
- SET PORT BIOSn, on machines which support it, instructs Kermit to do serial
- port input and output by Bios calls rather than going directly to the hardware
- (n is a digit between 1 and 4). The most important use is allowing selected
- network packages to intercept such Bios calls and relay the characters across
- the network.
-
- In "generic" MS-DOS Kermit, the following alternate forms allow you to experi-
- ment with device names or numbers until you find the communication port:
-
- SET PORT {DEVICE, FILE-HANDLE}
-
- Just type a carriage return after either of these commands, and you will be
- prompted for a device name or a numeric port-handle. Keep trying till you find
- one that works. File-handle 3, the system auxillary device, is conventional on
- many machines, as are device names COM1, COM2, and AUX.
-
- MS-Kermit for the IBM PC family is able to operate over local area networks
- through the NetBIOS interface. The command
-
- SET PORT NET [nodename]
-
- redirects communications the LAN board installed in the local computer and the
- associated NetBIOS emulator software, if active, rather than the serial port or
- the COM device driver. It installs a unique Kermit node name in the local LAN,
- so that other nodes can refer to it when files are transferred or terminal
- emulation is done. This name is displayed when you give the SET PORT NET com-
- mand. The server should use SET PORT NET, and the client should use SET PORT
- NAME nodename, specifying the server's name, e.g. mskermit.K. Note that al-
- phabetic case is significant in node names!
-
- Both the regular serial port and a network connection can be kept alive simul-
- taneously; clearly, only one can be used at a time under MS-DOS. MS-DOS 3.x is
- not required for Kermit network usage, but most LANS do need DOS 3.1 or later
- for conventional file server work. Kermit needs only the NetBIOS emulator net-
- work software.
-
- SET PORT UB-NET1 is implemented on the IBM PC version of Kermit to allow con-
- nection to Ungermann-Bass Net One LAN NETCI interface and behaves similarly to
- the NetBIOS method.
-
-
- SET PROMPT
-
- Syntax: SET PROMPT [string]
-
- This command allows you to change the MS-DOS Kermit program's prompt. The
- string may be enclosed in curly braces. Control characters like ESC can be in-
- cluded as backslashed numbers like "\27". ANSI.SYS and similar console drivers
- can be programmed through this command to get a boldface, inverse, and/or
- blinking prompt. The prompt string must be less than 128 characters. If the
- string is omitted (missing) Kermit's original prompt of "Kermit-MS>" is res-
- tored.
-
-
- SET RECEIVE
-
- Syntax: SET RECEIVE parameter value
-
- This command lets you modify the ways in which MS-Kermit asks the other Kermit
- to behave. That is, it controls the file transfer protocol options for packets
- sent to MS-Kermit by the other Kermit. The parameters and values you specify
- in the SET RECEIVE command are sent to the other Kermit during initial negotia-
- tions. Numbers may be specified as ordinary decimal numbers (74), or in back-
- slash notation (\x03F).
-
- END-OF-LINE number
- The ASCII value of terminating character to look for on incoming pack-
- ets. Normally carriage return. Use this command if the other Kermit
- is terminating its packets with some other control character.
-
- PACKET-LENGTH number
- Ask the remote Kermit to use the specified maximum length for packets
- that it sends to Kermit-MS. The normal length is 94 bytes. Use this
- command to shorten packets if the communication line is noisy or ter-
- minal buffers somewhere along the path are too small. Shorter packets
- decrease the probability that a particular packet will be corrupted,
- and will reduce the retransmission overhead when corruption occurs, but
- will increase the file transfer throughput.
-
- If a length greater than 94 is specified, a protocol option called
- "long packets" will be used, provided the other Kermit also supports
- it. Kermit-MS can receive extended-length packets up to 1000 bytes
- long. Long Packets can improve efficiency by reducing the per-packet
- overhead for a file, but they will not be used unless you issue this
- command. Before using this option, ensure that the equipment on the
- communications pathway can absorb a long packet, and that the connec-
- tion is clean (retransmission of long packets is expensive!). You
- should also SET BLOCK-CHECK 2 or 3 for more reliable error checking.
-
- PADCHAR number
- Ask the remote Kermit to use the given control character (expressed as
- a decimal number 0-31, or 127) for interpacket padding. Kermit-MS
- should never require any padding.
-
- PADDING number
- Ask the remote Kermit to insert the given number of padding characters
- before each packet it sends. MS-Kermit never needs padding, but this
- mechanism might be required to keep some intervening communication
- equipment happy.
-
- START-OF-PACKET number
- If the remote Kermit will be marking the beginning of packets with a
- control character other than Control-A, use this command to tell
- Kermit-MS about it (the number should be the decimal ASCII value of a
- control character). This will be necessary only if the hosts or com-
- munication equipment involved cannot pass a Control-A through as data,
- or if some piece of communication equipment is echoing packets back at
- you.
-
- TIMEOUT number
- Ask the remote Kermit to time out and retransmit after the given number
- of seconds if a packet expected from Kermit-MS has not arrived. Use
- this command to change the other Kermit's normal timeout interval.
-
-
- SET REMOTE
-
- Syntax: SET REMOTE {ON, OFF}
-
- SET REMOTE ON removes the file transfer display (as if you had given the com-
- mand SET DISPLAY QUIET). It should be used when you are running Kermit-MS in
- remote mode when coming in from another PC through the Kermit-MS's "back port",
- to which the console has been reassigned using the DOS CTTY command, e.g.
-
- CTTY COM1
-
- It is necessary to issue the SET REMOTE ON command because (a) Kermit-MS has no
- way of knowing that its console has been redirected, and (b) when the console
- is the same as the port, the file transfer display will interfere with the file
- transfer itself. SET REMOTE OFF returns the file transfer display to its
- preferred style (REGULAR or SERIAL). When you SET REMOTE ON, you might also
- want to SET DELAY 5 or thereabouts, to allow yourself time to escape back to
- the local system before MS-Kermit starts sending packets.
-
- On the IBM PC, CTTY CON returns control to the normal keyboard and screen
- (other systems may use other device names, e.g. SCRN). See section 1.18.4 for
- further details about remote operation.
-
- If you are using a port other than COM1 on the remote MS-Kermit, you must give
- it an appropriate SET PORT command.
-
- WARNING: During CTTY console redirection, many programs still output to the
- real screen and require input from the real keyboard and will hang the system
- until keyboard requests are satisfied.
-
-
- SET RETRY
-
- Syntax: SET RETRY number
-
- Sets the number of times a packet is retransmitted before the protocol gives
- up. The number of retries can be between 1 and 63, and is 5 by default. This
- is an especially useful parameter when the communications line is noisy or the
- remote host is very busy. The initial packet of a file exchange is given three
- times as many retries to allow both systems to become ready.
-
-
- SET SEND
-
- Syntax: SET SEND parameter value
-
- The SET SEND command is used primarily to override negotiated protocol options,
- or to establish them before they are negotiated.
-
- END-OF-LINE number
- ASCII value of packet terminator to put on outbound packets. Normally
- carriage return. Use this command if the other Kermit needs its pack-
- ets terminated with a nonstandard control character.
-
- PACKET-LENGTH number
- Use this as the maximum length for outbound packets, regardless of what
- the other Kermit asks for. Normally, you would use this command only
- to send shorter packets than the other Kermit requests, because you
- know something the other Kermit doesn't know, e.g. there's a device on
- the communication path with small buffers.
-
- PADCHAR number
- Use the specified control character for interpacket padding. Some
- hosts may require some padding characters (normally NUL or DEL) before
- a packet, and certain front ends or other communication equipment may
- need certain control characters to put them in the right modes. The
- number is the ASCII decimal value of the padding character, (0 - 31, or
- 127).
-
- PADDING number
- How many copies of the pad character to send before each packet, nor-
- mally zero.
-
- PAUSE number
- How many milliseconds to pause before sending each packet, 0-127, nor-
- mally zero. This may help half-duplex or slow systems prepare for
- reception of our packet. Padding characters are sent only after the
- time limit expires.
-
- QUOTE number
- Use the indicated printable character for prefixing (quoting) control
- characters and other prefix characters. The only reason to change this
- would be for sending a very long file that contains very many "#"
- characters (the normal control prefix) as data.
-
- START-OF-PACKET number
- Mark the beginning of outbound packets with some control character
- other than Control-A. This will be necessary if the remote host or the
- communication channel cannot accept a Control-A as data, or if it
- echoes back your packets. The remote host must have been given the
- corresponding SET RECEIVE START-OF-PACKET command.
-
- TIMEOUT number
- Change Kermit-MS's normal timeout interval; this command is effective
- only if TIMER is set to be ON; it is normally ON, with a default inter-
- val of 13 seconds.
-
-
- SET SERVER
-
- Syntax: SET SERVER TIMEOUT seconds
-
- Specify how often the MS-DOS Kermit server should send NAK packets while wait-
- ing for commands. These NAK packets are used to recover from deadlocks that
- might occur when the other Kermit sends an initial packet which is lost, but
- does not have the capability to time out and retransmit it. These NAKs can be
- supressed entirely by specifying a value of zero. This may be necessary to
- avoid interfering with certain modems or PBXs that go into originate mode when
- they receive input from the PC, when in fact you want the device to be in
- answer mode.
-
-
- SET SPEED
-
- Syntax: SET SPEED rate
-
- Set the transmission speed (in bits per second, commonly called baud) of the
- currently selected terminal communications port to 300, 1200, 1800, 2400, 4800,
- 9600, or other common speed, and on the IBM PC family, higher speeds including
- 19200, 38400, 57600, and 115200. Both connected systems, as well as any inter-
- vening communication equipment, must be able to support the specified transmis-
- sion speed, and both systems should be set to the same speed.
-
- Some implementations do not support the SET SPEED command. But Kermit-MS
- leaves the current communication port settings alone unless you issue explicit
- SET commands to change them, so you may use MODE or other DOS programs to es-
- tablish the desired settings before running Kermit.
-
- On certain systems, when you first run Kermit after powering the system up, you
- may get a message "Unrecognized baud rate". This means that Kermit tried to
- read the baud rate from the port and none was set. Simply use SET SPEED (if
- available) or the DOS MODE command to set the desired baud rate.
-
- SET BAUD is a synonym for SET SPEED.
-
-
- SET TAKE-ECHO
-
- Syntax: SET TAKE-ECHO {ON, OFF}
-
- Specifies whether screen display should occur during implicit or explicit TAKE
- operations on MSKERMIT.INI or other Kermit-MS command files, and during evalua-
- tion of macro definitions by the DO command. Handy for finding errors in TAKE
- files or macro definitions.
-
-
- SET TERMINAL
-
- Syntax: SET TERMINAL {type, parameter [value]}
-
- This command controls most aspects of terminal emulation. Most of the
- parameters are only settable (or meaningful) on the IBM PC family and com-
- patibles. (Programmers who are proficient on other MS-DOS systems are invited
- to fill in these functions for those systems and send the results back to
- Columbia.) On other systems, built-in setup modes or DOS commands can be used
- to accomplish the same functions.
-
- The first group of parameters tells which kind of terminal to emulate. When
- Kermit-MS uses its built-in software for emulation, incoming characters are ex-
- amined for screen control commands (escape sequences) specific to that ter-
- minal, and if encountered, the commands are executed on the PC screen.
-
- NONE Act as a dumb terminal. All incoming characters will be sent to the
- screen "bare", as-is, through DOS. If you have loaded a device driver
- into DOS for the CON device, such as ANSI.SYS, then that driver will be
- able to interpret the codes itself. Many non-IBM systems have their
- own screen control code interpreter built into DOS or firmware, or
- available as a loadable device driver.
-
- VT52 The DEC VT-52 terminal.
-
- HEATH The Heath/Zenith-19 terminal (H19), which supports all the VT52 com-
- mands, plus line and character insert/delete editing functions, an ANSI
- mode, and a 25th line.
-
- VT102 The DEC VT102 (ANSI) terminal, which is the same as the VT100 but also
- supports line/character insert/delete editing functions and ANSI
- printer controls.
-
- TEK4010 A Tektronix 4010 graphics terminal. Currently only available on IBM,
- TI, and Victor PCs. On the IBM family, Kermit automatically senses and
- adapts to the CGA, EGA, Monochrome, Hercules, or ATT style board.
-
- On the IBM family, you may "toggle" among the supported terminal emulations by
- typing Alt-Minus.
-
- The specific escape sequences supported by Kermit for each of these terminal
- types are listed in section 1.17.1. Note that when a Kermit program includes
- Tektronix emulation, this can be invoked automatically while in character mode
- (VT102, VT52, or Heath emulation) when the emulator receives certain escape se-
- quences. This can be turned off using the DISABLE TEK command.
-
- The remaining SET TERMINAL commands specify setup options for the selected ter-
- minal:
-
- CHARACTER-SET {UK, US, ALTERNATE-ROM}
- UK displays "#" (ASCII 35, number sign) as a pound sterling sign, US
- displays "#" as "#". ALTERNATE-ROM maps accent grave and the lowercase
- letters to be national characters in the IBM video adapter. That is,
- character codes of 60h to 7Ah (accent grave, lower case a-z) are mapped
- to codes 80h to 9Ah. The SET TERMINAL CHARACTER-SET command applies
- only during VT100/102 emulation.
-
- CLEAR-SCREEN
- Clears the screen, so that a subsequent CONNECT command shows a blank
- screen. The action taken is identical to Kermit's \Kreset verb.
-
- COLOR number [, number [, number]]
- Several numbers, applied in left to right sequence, separated by commas
- or spaces:
-
- 0 Reset the colors to normal intensity white characters on a black
- background and use the "no-snow" mode on the IBM Color Graphics
- Adapter (CGA).
- 1 High intensity foreground
- 10 Request fast screen updating for use on the IBM Mono, EGA, or VGA
- (usually sensed and set internally by Kermit), and some non-IBM
- CGAs.
- 3x Foreground color
- 4x Background color
-
- where x is a single digit from 0 to 7, which is the sum of the desired
- colors:
-
- 1 Red
- 2 Green
- 4 Blue
-
- Example: "SET TERMINAL COLOR 0 1 37 44" on an IBM CGA would produce
- bold white characters on a blue field with no snow. The snow removal
- business has to do with whether the program should synchronize with
- vertical retrace when updating screen memory. This is necessary with
- certain color adaptors (like the CGA) and unnecessary for others (like
- the EGA).
-
- CURSOR-STYLE {BLOCK, UNDERLINE}
- Sets the cursor rendition to your preference. Note that on some early
- IBM PCs and compatibles, the cursor may not be restored correctly after
- escaping back from CONNECT because of a bug in the early IBM BIOS.
-
- DIRECTION {LEFT-TO-RIGHT, RIGHT-TO-LEFT}
- Controls the direction of screen display during CONNECT. You may use
- Right-to-Left for Hebrew or Arabic, provided you have the appropriate
- character sets loaded.
-
- KEYCLICK {ON, OFF}
- Turns electronic keyclick ON or OFF. If your keyboard has a mechanical
- clicker (as IBM boards do), you may not notice the effect of this com-
- mand.
-
- GRAPHICS {AUTO-SENSING, CGA, EGA, VGA, HERCULES, ATT}
- Manually selects the kind of display adapter for Tektronix graphics.
- AUTO-SENSING is the default, VGA means 640x480x16 colors, and ATT en-
- compasses the ATT 6300 series, Olivetti M24/M28, DEC VAXmate II, and
- the Toshiba T3100 in 640x400 b/w (see Table 1-5).
-
- MARGIN-BELL {ON, OFF}
- Controls whether the bell should be sounded when the cursor passes
- column 72 near the right screen margin; wider displays set the bell 8
- columns from the right edge.
-
- NEWLINE-MODE {ON, OFF}
- ON sends a carriage-return-linefeed combination (CRLF) when you type
- carriage return (CR) during terminal emulation. OFF (default) just
- sends a CR when you type CR. Useful in conjunction with SET LOCAL-ECHO
- ON when CONNECTing two PC's back-to-back.
-
- ROLL {ON, OFF}
- ON unrolls the screen to the bottom before adding new material if the
- screen had been rolled back, e.g. by Ctrl-PgUp. ROLL OFF (the default)
- displays new material on the current screen, possibly overwriting old
- material.
-
- SCREEN-BACKGROUND {NORMAL, REVERSE}
- NORMAL means dark background, light characters. REVERSE means light
- background, dark characters.
-
- TAB {AT n, CLEAR AT n, CLEAR ALL}
- Sets tab stops or clears one or all tab stops; n is the numeric posi-
- tion of the tab to be set or cleared. By default, tabs are every 8
- spaces, at positions 9, 17, 25, etc. Only meaningful when emulating a
- terminal that has settable tabs (the VT52 doesn't really but the
- emulator can set them anyway). More than one tabstop may be specified
- by separating column numbers with commas, spaces, or tabs. You may
- also use the notation "m:n" to specify regularly spaced tabs across the
- screen, where m is the initial tab position, and n is the spacing be-
- tween tabs. 132 columns are supported.
-
- WRAP {ON, OFF}
- ON automatically breaks screen lines (by inserting a CRLF) when they
- reach the right margin. OFF disables wrapping -- if a line is too
- long, the excess characters go off the screen. WRAP is OFF by default,
- since most hosts format lines to fit on your screen.
-
-
- SET TIMER
-
- Syntax: SET TIMER {ON, OFF}
-
- This command enables or disables the timer that is used during file transfer to
- break deadlocks that occur when expected packets do not arrive. By default,
- the timer is ON. If the other Kermit is providing timeouts, you can safely
- turn the timer OFF to avoid unnecessary retransmissions that occur when two
- timers go off simultaneously.
-
-
- SET TRANSLATION
-
- Syntax: SET TRANSLATION INPUT {ON, OFF, char1 char2}
-
- This command provides multi-language support (and perhaps other special
- effects) during CONNECT, and during execution of the INPUT, OUTPUT, PAUSE, and
- TRANSMIT script commands, but not during file transfer or at MS-Kermit command
- level. A character that arrives at the communication port (char1) will be
- translated to another character (char2) before display on the screen. As many
- as 256 characters may have translations specified concurrently. But to see
- characters with ASCII values higher than 127, you must also SET DISPLAY 8 and
- SET PARITY NONE.
-
- SET TRANSLATION INPUT ON enables translation (the keyword INPUT is required to
- allow future translation mechanisms). OFF disables the translation and is the
- default. So even if you have set up a translation table, you must SET TRANS-
- LATION INPUT ON before it will take effect. SHOW TRANSLATION tells whether
- translation is OFF or ON, and displays any current table entries.
-
- Translation table entries are made by specifying byte pairs in ASCII or numeric
- backslash form:
-
- SET TRANS INPUT \3 \13
-
- converts incoming ASCII ETX characters (decimal 3) to ASCII CR (decimal 13).
- 8-bit values are allowed, and refer to characters in the "upper half" of the
- PC's character set, either the ROM characters supplied with the PC or else sub-
- stitutions provided by a special device driver.
-
- A more practical example shows how the user of a German PC could use the SET
- TRANSLATION and SET KEY commands to make the PC's umlaut-a key (key code 132)
- send a left curly brace ("{", ASCII 123), and to display incoming curly braces
- as umlaut-a's:
-
- SET KEY \d132 \d123
- SET TRANS INP { \d132
-
- (This example applies to the IBM PC German keyboard, and assumes the German
- keyboard driver, KEYBGR, has been loaded. This is usually done in
- AUTOEXEC.BAT.)
-
-
- SET WARNING
-
- Syntax: SET WARNING {ON, OFF}
-
- Specify what to do when an incoming file is about to be stored under the same
- name as an existing file in the target device and directory. If ON, Kermit
- will warn you when an incoming file has the same name as an existing file, and
- automatically rename the incoming file (as indicated in the warning message) so
- as not to destroy (overwrite) any existing one. If OFF, the pre-existing file
- is destroyed, even if the incoming file does not arrive completely. WARNING is
- ON by default as a safety measure, and the current setting may be observed in
- the SHOW FILE display.
-
- The new name is formed by adding numbers to the part of the name before the
- dot. For instance, ABC.TXT becomes ABC00001.TXT, ABC00001.TXT becomes
- ABC00002.TXT, etc. If the name already has eight characters, then digits
- replace the rightmost characters.
-
-
- 1.6.11. The STATUS and SHOW Commands
-
- The values of MS-Kermit options that can be SET, DEFINEd, ENABLEd, or DISABLEd
- can be displayed using the STATUS or SHOW commands.
-
-
- The STATUS Command
-
- Syntax: STATUS
-
- The STATUS command displays the values of the current SET options on a single
- screen. There are no operands for the STATUS command. Use the SHOW command to
- see logically-grouped settings, e.g. SHOW COMMUNICATIONS, SHOW TERMINAL.
-
-
- The SHOW Command
-
- Syntax: SHOW option
-
- The SHOW command is used for displaying communication parameters, protocol set-
- tings, macro definitions, key redefinitions, file transfer statistics, trans-
- lations, and other common groupings.
-
- SHOW COMMUNICATIONS
- displays the settings of the current serial port (port, speed, parity,
- echo, etc) and the status of modem signals Carrier Detect, Data Set
- (modem) Ready, and Clear To Send.
-
- SHOW FILE
- displays the file transfer control settings, such as the current path,
- file discard, attributes packets on/off, warning, end-of-file conven-
- tion, etc.
-
- SHOW KEY
- allows you to determine a key's identification code and what it will
- send in CONNECT mode, most useful for obtaining the identification of a
- key when SET KEY commands will be placed in a TAKE file. This command
- can be done only interactively (use a ? to see all defined keys).
- Refer to the SET KEY description for details.
-
- SHOW LOGGING
- Displays the names of the session, packet, and transaction logs, and
- tells whether logging is in effect.
-
- SHOW MACROS [macroname]
- displays the definitions of all currently defined macros, as well as
- the amount of space left for new macro definitions. A macro name, or
- abbreviation, can be included to restrict the list, e.g. SHOW MACRO IBM
- will display the definition of the IBM macro, and SHOW MACRO X will
- list the definitions of all macros whose names begin with X.
-
- SHOW MODEM
- displays the status of the modem signals DSR (dataset ready, modem
- tells the PC that it is turned on and in data mode), CTS (clear to
- send, modem grants the PC permission to send data), and CD (carrier
- detect, local modem tells the PC that it is connected to the remote
- modem). The results may be misleading if your asynchronous adapter, or
- the connector or cable that is attached to it, is strapped to supply
- these modem signals itself.
-
- SHOW PROTOCOL
- displays the values of the Kermit protocol-related parameters, includ-
- ing all the SET SEND and SET RECEIVE parameters, plus whether the
- timer, attribute packets, and logging are enabled.
-
- SHOW SCRIPTS
- displays the script-related variables.
-
- SHOW SERVER
- displays which server functions are enabled and disabled.
-
- SHOW STATISTICS
- displays counts of characters sent and received during file transfers,
- for both the most recent transfer and the entire session, and an es-
- timate of the average baud rate while sending and listening.
-
- SHOW TERMINAL
- displays the terminal settings, which terminal is being emulated, the
- tab stops, etc.
-
- SHOW TRANSLATION
- displays the entries in the 256 byte input translation table. Values
- are expressed numerically to avoid confusion with different display
- adapters, and the command shows only entries for which input and output
- codes differ.
-
-
- 1.7. Macros
-
- Like TAKE files, macros provide a way of collecting many commands into a single
- command. The difference between a macro and a TAKE file is that Kermit keeps
- all its macro definitions in memory, and can execute them as many times as you
- like, without having to look them up on disk, whereas every time you issue a
- TAKE command, Kermit has to access a disk. But... you can have as many TAKE
- command files as you like, and they can be as long as you want, whereas
- MS-Kermit's memory for storing macro definitions is limited. You can put macro
- definitions and DO commands for them in TAKE files, or for that matter, you can
- put TAKE commands in macro definitions. There is a limit of 25 simultaneously
- active TAKE files plus active macros; a TAKE file or macro remains active if
- the last item invokes another TAKE or macro command. Active here means Kermit
- is reading commands from them, not just storing them for later.
-
-
- The DEFINE Command
-
- Syntax: DEFINE macro-name [command [, command [, ...]]]
-
- Kermit-MS command macros are constructed with the DEFINE command. Any
- Kermit-MS commands may be included. Example:
-
- define telenet set parity mark, set speed 1200, connect
-
- A macro can be undefined by typing an empty DEFINE command for it, like
-
- define telenet
-
- A macro definition may be up to 255 character long. This example shows a long
- definition in which lines are continued with hyphenation:
-
- define setup set port 1, set speed 19200, set parity even,-
- set flow none, set handshake xon, set local-echo on,-
- set timer on, set terminal color 1 31 45,-
- set warning on, set incomplete keep, connect
-
- Longer definitions can be accomplished by "chaining." Example:
-
- define setup set port 1, set speed 19200, set par even, do setup2
- define setup2 set flo no, set handsh xon, set local on, do setup3
- define setup3 set timer on, set terminal color 1 31 45, do setup4
- define setup4 set warning on, set incomplete keep, connect
-
- DO SETUP or just SETUP will invoke all of these commands. Commas are used to
- separate commands in macro definitions; carriage returns (\13) cannot be used.
- When control or other special characters are needed in a macro they may be ex-
- pressed in backslash number form, \nnn.
-
- The SHOW MACROS command displays the values of currently defined macros, and
- tells how much space is left for further definitions.
-
- The definition of the macro is entered literally; variables are not evaluated
- (see ASSIGN, below).
-
-
- The DO Command
-
- Syntax: [DO] macro-name [parameters...]
-
- A Kermit-MS macro is invoked using the DO command. For instance, Kermit-MS
- comes with a predefined macro to allow convenient setup for IBM mainframe
- line-mode communications; to invoke it, you would type DO IBM. The IBM macro
- is defined as "set timer on, set local-echo on, set parity mark, handshake xon,
- set flow none". You can use the DEFINE command to redefine this macro or
- remove the definition altogether.
-
- There is no automatic way to undo the effect of a macro. If you need to ac-
- complish this effect, you should define another macro for that purpose. For
- instance, to undo the effect of "do ibm" so that you could connect to, say, a
- DEC VAX, you could:
-
- def vax set parity none, set handshake none, set flow xon/xoff,-
- set timer off, set local-echo off
-
- Then you can "do ibm" whenever you want to use the IBM system, and "do vax"
- whenever you want to use the VAX.
-
- If you wish to view the macro expansion whenever you issue a DO command, you
- can SET TAKE-ECHO ON.
-
- As a convenience the word DO may be omitted. However, when question-mark help
- is sought at the Kermit prompt, only the main keyword help table will be shown.
- If you want to see the available macros, type "do ?" or SHOW MACROS. Use of DO
- is recommended for overall clarity unless a favorite macro is executed fre-
- quently.
-
-
- Variables
-
- Macros can use substitution variables similar to those of DOS Batch. The name
- of a substitution variable is of the form "\%character", where the single
- character is a digit or a letter or other 8-bit character whose ASCII value is
- 48 decimal or larger; upper and lower case letters are considered to be the
- same character. A substitution variable is defined as a string of text by the
- DEFINE command (the variables are in fact macros) and Kermit replaces occur-
- rences of the variable name with that text, hence the word "substitution". For
- example,
-
- Kermit-MS>define \%a this is substituted material
- Kermit-MS>echo I wonder if \%a or not.
-
- yields the display:
-
- I wonder if this is substituted material or not.
-
- Another example:
-
- Kermit-MS>define \%c set port 1,set speed 9600,set parity even,connect
-
- Then
-
- Kermit-MS>\%c
-
- is equivalent to
-
- Kermit-MS>set port com1
- Kermit-MS>set speed 9600
- Kermit-MS>set parity even
- Kermit-MS>connect
-
- The special subset of substitution variables, \%1 .. \%9, is similar to the DOS
- Batch variable set %1 .. %9. The DO command can accept arguments after the
- macro name and the individual words in the arguments become the definitions of
- \%1, etc, for up to nine words, in order. For example, given the following
- definition:
-
- def dial ATDT\%1\13,input 30 CONNECT,connect,in Login:,out \%2\13
-
- the following command can be used to dial any phone number:
-
- Kermit-MS>do dial 555-1212 myname
-
- The word DO may be omitted, as in:
-
- Kermit-MS>dial 555-1212 myname
-
- This command automatically assigns the value "555-1212" to variable the \%1 and
- "myname" to \%2, and uses these values while dialing the phone and logging into
- the host system. If fewer than nine words are seen the remaining variables are
- not changed. For example, if the line above was busy, you could dial a dif-
- ferent number and omit the username because it will be remembered from last
- time.
-
- If it is desired to assign multiple words to a single variable, they can be
- grouped in braces, for example
-
- Kermit-MS>dial {212 555 1212} myname
-
- Substitution variables can reference other substitution variables in their
- definitions. Care is needed to prevent circular definitions, but even those
- are detected by Kermit. Subtle circular executions could cause Kermit to go
- into an endless loop; if you think this is happening, type a Control-C to in-
- terrupt the process. To clarify matters, the definition string of a variable
- is substituted for the variable's name when the name is observed in a left to
- right scan of a command. For example,
-
- Kermit-MS>define \%a echo This is \%b example: \%b.
- Kermit-MS>define \%b a mac\%c expansion
- Kermit-MS>define \%c ro string
- Kermit-MS>\%a
-
- displays:
-
- This is a macro string expansion example: a macro string expansion.
-
- If this example is entered manually then when the final \%a is typed the com-
- mand line is immediately replaced with the fully expanded command and more in-
- put is solicited (such as a carriage return). Try it. Check the variable
- definitions with the SHOW MACRO command.
-
- A variable can be undefined (deleted) by defining it as an empty string:
-
- Kermit-MS>define \%c
-
- DOS batch file arguments may be transformed into Kermit variables. Suppose
- file TEST.BAT holds the line:
-
- Kermit define \%%1 %1, define \%%a %2, stay
-
- Invoking the Batch file by:
-
- C>test one two
-
- results in creating Kermit variables \%1 with definition of "one" and \%a with
- definition "two". The doubled percent symbols in the Batch file are needed to
- compensate for one of them being consumed by the DOS Batch processor. %1 is
- the first Batch argument word, %2 is the second word. The syntax \%%1 is con-
- verted by Batch to be \%1 when seen by Kermit, without further substitution by
- Batch.
-
-
- The ASSIGN Command
-
- Syntax: ASSIGN
-
- The DEFINE command does not evaluate the definition. For instance, the command
-
- define \%a \%1
-
- simply defines the variable \%a to be "\%1", not the current value of \%1 -- if
- \%1 changes, then so does \%a. To copy the value of one variable to another,
- use the ASSIGN command:
-
- assign \%a \%1
-
- This copies the value of \%1 to \%a, so that if \%1 changes, \%a will retain
- the previous value. Example:
-
- Kermit-MS>define \%a foo
- Kermit-MS>define \%b \%a
- Kermit-MS>echo \%a \%b
- foo foo
- Kermit-MS>assign \%c \%a
- Kermit-MS>define \%a new
- Kermit-MS>echo \%a \%b
- new new
- Kermit-MS>echo \%a \%c
- new foo
-
-
- 1.8. SCRIPTS
-
- A script is a file or a macro containing Kermit commands to be executed. What
- distinguishes a script from ordinary TAKE files or macros is the presence of
- INPUT, REINPUT, OUTPUT, PAUSE, ECHO, ASK, CLEAR, IF, GOTO, and WAIT commands to
- automatically detect and respond to information flowing though the serial port,
- actions which otherwise would be performed by the user during CONNECT. The
- login sequence of a host computer is a classical example.
-
- It is a common, but incorrect, assumption that text to be sent to the remote
- computer can be included in a TAKE file after the CONNECT command:
-
- set speed 9600 ; MS-Kermit command
- connect ; MS-Kermit command
- run kermit ; Text to be sent to other system
- send foo.bar ; Text to be sent to other system
- ^]c ; Escape sequence to get back to MS-Kermit
- receive ; MS-Kermit command
-
- The reason this doesn't work is that during CONNECT, MS-Kermit always reads
- from the real keyboard, and not from the take file. Even if this technique did
- work, it would still run into synchronization problems. But these can be
- avoided when there is a way to coordinate the commands that we send with the
- remote system's responses. Kermit's script commands provide this ability.
- They may be freely intermixed in a TAKE file or macro with any other Kermit
- commands to achieve any desired effect. The OUTPUT command sends the specified
- characters as if the user had typed them; the INPUT command reads the responses
- and compares them with specified character strings, just as the user would do.
-
- The script commands include INPUT, REINPUT, OUTPUT, PAUSE, WAIT, ECHO, IF, ASK,
- and GOTO. These commands may be interrupted by typing Ctrl-C at the keyboard.
- The INPUT, REINPUT, PAUSE, and WAIT commands accept a following number as a
- timeout value. The number is interpreted as seconds from the present or, if
- given in hh:mm:ss form, as a specific time of day. In either case, the timeout
- interval must be within 12 hours of the present to avoid it being considered as
- in the past (expired).
-
- HINT: It is recommended that a console driver such as ANSI.SYS be loaded
- during executing of a script. This is because Kermit's terminal emulator is
- active only during the CONNECT command, and any PC/host interactions that occur
- during script execution may appear fractured on the screen. This is par-
- ticularly true of full-screen login applications, like through an IBM 3270
- protocol converter.
-
-
- The CLEAR Command
-
- Syntax: CLEAR
-
- The CLEAR command empties the buffers of the serial port to forget any earlier
- material. This gets the INPUT command off to a clean start. (This command was
- called CLRINP in 2.29B and earlier, and CLEAR was used to erase macro and key
- definition memory).
-
-
- The ECHO Command
-
- Syntax: ECHO text
-
- The ECHO command is useful for reporting progress of a script, or prompting the
- user for interactive input. The text is displayed on the screen, and may in-
- clude backslash notation for control or 8-bit characters. An implied linefeed
- is included at the beginning of the text.
-
-
- SET INPUT
-
- Syntax: SET INPUT {CASE, DEFAULT-TIMEOUT, ECHO, TIMEOUT-ACTION}
-
- The SET INPUT command controls the behavior of the script INPUT command:
-
- SET INPUT CASE {IGNORE, OBSERVE}
- Says whether or not to distinguish upper and lower case letters when doing
- a matchup in the INPUT command. OBSERVE causes upper and lower case let-
- ters to be distinguished. The default is to IGNORE case distinctions.
-
- SET INPUT DEFAULT-TIMEOUT seconds
- Changes the default waiting time from one second to this new value. The
- value is used when an INPUT command has no timeout specified.
-
- SET INPUT ECHO {ON, OFF}
- Show on the screen characters read from the serial port during the script
- operation, or not. Default is ON, show them.
-
- SET INPUT TIMEOUT-ACTION {PROCEED, QUIT}
- Determines whether or not the current macro or TAKE command file is to be
- continued or exited if a timeout occurs. PROCEED is the default and means
- that timeouts are ignored. QUIT causes the current script file to be
- exited and control passed to either the next higher level script file (if
- there is one) or to Kermit's main prompt.
-
- The SHOW SCRIPTS command displays the SET INPUT values.
-
-
- The INPUT command
-
- Syntax: INPUT [timeout] {search-string, @filespec}
-
- INPUT is the most powerful of the script commands. It reads characters from
- the serial port continuously until one of two things occurs: the received
- characters match the search string or the time limit expires. Matching strings
- is the normal use, as in:
-
- Kermit-MS>input 5 Login please:
-
- to recognize the phrase "Login please:", or else time out after waiting for 5
- seconds. A special binary character \255 or \o377 or \xFF stands for the com-
- bination carriage return and a line feed, in either order, to simplify pattern
- matching. The command reports a testable status of SUCCESS or FAILURE and sets
- the DOS ERRORLEVEL parameter to 2 if it fails to match within the timeout in-
- terval. Characters are stored in a 128 byte buffer for later examination by
- REINPUT, discussed below.
-
- Beware of characters arriving with parity set because the pattern matching con-
- siders all 8 bits of a byte unless the local parity is other than NONE and SET
- DISPLAY is 7-BITS. Arriving characters are modified by first removing the
- parity bit, if parity is other than NONE, then they are passed through the SET
- TRANSLATION INPUT converter, the high bit is again suppressed if SET DISPLAY is
- 7-BITs, the result is logged and stored for pattern matching.
-
-
- The REINPUT command
-
- Syntax: REINPUT [timeout] {search-string, @filespec}
-
- The REINPUT command is like INPUT except that characters are read from the 128
- byte serial port history buffer rather than always seeking fresh input from the
- port. The purpose is to permit the current text to be examined several times,
- looking for different match strings. A common case is reading the results of a
- connection message from a modem which might be "CONNECT 1200" or "CONNECT
- 2400", depending on the other modem. If the history buffer has less than 128
- bytes then fresh input may be requested while seeking a match, until the buffer
- is full. REINPUT match searches begin at the start of the buffer whereas INPUT
- searches never go back over examined characters. REINPUT sets the testable
- status of SUCCESS or FAILURE and DOS ERRORLEVEL, just as for INPUT.
-
- When a script fails because an INPUT or REINPUT command did not encounter the
- desired string within the timeout interval the message "?Timeout" is displayed.
-
-
- The OUTPUT command
-
- Syntax: OUTPUT {string, @filespec}
-
- The OUTPUT command writes the indicated character string to the serial port as
- ordinary text. The string may contain control or other special binary charac-
- ters by representing them in backslash form. Carriage Return (CR), for ex-
- ample, is \13 decimal, \o15 octal, or \x0D hexadecimal. The string may use
- 8-bit characters if the communications parity is type NONE. A special notation
- is also provided, \b or \B, which causes a BREAK signal to be transmitted.
-
- The string to be transmitted starts with the first non-spacing character after
- the OUTPUT command and ends at either the end of line or, if executed within a
- TAKE file, at a semicolon (if you need to output a semicolon from within a TAKE
- file, use backslash notation, e.g. "\59"). Indirectly obtained strings, the
- @filespec form, read the first line of the file up to but not including the ex-
- plicit carriage return.
-
- As a convenience, text arriving at the serial port during the OUTPUT command is
- shown on the screen if SET INPUT-ECHO is ON, and stored in a 128-byte internal
- buffer for rereading by subsequent (RE)INPUT commands.
-
- The INPUT, REINPUT, and OUTPUT commands have a special syntax to replace the
- normal string with text obtained from a file or device:
-
- OUTPUT @filespec
- INPUT @filespec
-
- Both forms read one line of text from the file or device and use it as the
- desired string. A common use is to wait for a password prompt and then read
- the password from the console keyboard. A string starts with the first
- non-spacing character and ends at either the end of line or, if executed within
- a TAKE file, at a semicolon. Indirectly obtained strings, the @filespec form,
- read the first line of the file up to but not including the explicit carriage
- return. Note if a trailing carriage return is needed it must be expressed
- numerically, such as \13 decimal. Example:
-
- input 7 Password:
- echo Please type your password:
- output @con
- output \13
- echo \13\10Thank you!
-
- In this example, a TAKE file requests the user to type in the password inter-
- actively, so that it does not have to be stored on disk as part of the TAKE
- file.
- The PAUSE command
-
- Syntax: PAUSE [{number, hh:mm:ss}]
-
- PAUSE turns on the DTR signal, and then waits one or more seconds, or until the
- specified time of day. Pauses are frequently necessary to avoid overdriving
- the host and to let a modem proceed through a dialing sequence without inter-
- ruptions from Kermit. The default waiting time is set by SET INPUT DEFAULT-
- TIMEOUT and is normally one second. The optional integer number selects the
- number of seconds to pause for this command, and the hh:mm:ss selects a
- specific time of day. An explicit value of zero produces a pause of just a few
- milliseconds which can be useful in some situations.
-
- Text arriving during the PAUSE interval is shown on the screen, if SET
- INPUT-ECHO is ON, and stored in a 128-byte internal buffer for rereading by a
- following INPUT command.
-
- PAUSE is interrupted if there is any activity on the keyboard. Thus PAUSE can
- be useful for operations like:
-
- echo "Type any key when ready..."
- pause 9999
-
- PAUSE is useful in scripts that are to be executed at some future time. For
- instance, if you want your PC to dial up another computer and transfer some
- files at 9:30pm, when the phone rates are lower, you can put the command
-
- PAUSE 21:30:00
-
- in your script file. Note that you cannot specify a time more than 12 hours in
- the future. If you need to pause until a specific time that is more than 12
- hours away, you can use multiple PAUSE statements:
-
- PAUSE 21:30:00 ; Pause until 9:30pm tonight
- PAUSE 9:30:00 ; Pause until 9:30am tomorrow morning
-
- Because PAUSE turns on the DTR signal, it can be useful in scripts where DTR
- must be asserted for a second or two to wake up the device your PC is connected
- to, before you can send any characters to it:
-
- pause 1 ; Assert DTR and pause for 1 second
- output \13 ; Send a carriage return
-
-
- The WAIT Command
-
- Syntax: WAIT [{number, hh:mm:ss}] [\CD] [\CTS] [\DSR]
-
- WAIT performs a timed PAUSE, as above, but also examines the modem control sig-
- nals Carrier Detect (\CD), Clear To Send (\CTS), and/or Data Set (modem) Ready
- (\DSR). If all of the signals specified in the WAIT statement are ON, or be-
- come ON before the timeout interval, the wait operation ceases with an indica-
- tion of SUCCESS. If the time interval expires without all of the specified
- signals on, the status is FAILURE. Example:
-
- Kermit-MS> wait 12:45:00 \cd \dsr
-
- This waits until both CD and DSR asserted or until 45 minutes past noon,
- whichever happens first, returning SUCCESS or FAILURE respectively.
-
- If no modem signals are specified, then WAIT is the same as PAUSE.
-
-
- Labels and the GOTO Command
-
- Labels and the GOTO command work together in the same fashion as in DOS Batch
- files. A label is a line which starts with a colon (:) in the leftmost column
- followed immediately by a word of text (no intervening spaces); material on the
- line after the label is ignored. The GOTO command is followed by a label, the
- leading colon is optional in the GOTO command. The label may be located either
- before or after the GOTO command and is found by searching the TAKE file or
- macro from the beginning. Thus, duplicated labels will always use the first
- occurrence. The target label must be in the current TAKE file or macro; one
- may not GOTO a label in another TAKE file or macro. Example:
-
- :LOOP
- echo again and\32
- goto loop
-
- will print "again and again and again and..." forever (until you type Ctrl-C).
- As a macro:
-
- define test :loop,echo again and\32,goto loop
- do test
-
- Note that if a label follows a comma in a macro definition, there must be no
- intervening spaces:
-
- define test ..., :top, ..., goto top ; bad, space before colon.
- define best ...,:top, ..., goto top ; good, no space.
-
- In this example, the best macro will work, the test macro won't.
-
-
- The IF Command
-
- Syntax: IF test-condition MS-Kermit Command
-
- The IF command gives MS-Kermit scripts the ability to make a decision based
- upon the criterion specified as the test-condition. If the test condition is
- true, then the command is executed. Otherwise, it is skipped. The test con-
- ditions are:
-
- NOT Modifier for other conditions below.
-
- ALARM True if the current time of day is at or later than the alarm clock
- time. The alarm clock time is set by the command SET ALARM time.
- IF ALARM distinguishes early from late with a 12 hour field of
- view.
-
- COUNT True if the current COUNT variable is greater than zero. COUNT is
- a special Kermit variable for each active TAKE file or macro. It
- is set by the command SET COUNT and it is both tested and modified
- by the IF COUNT command. The intent is to construct simple script
- loops where the IF COUNT command first decreases COUNT by one (but
- never below zero) and then if COUNT is greater than zero the fol-
- lowing Kermit command is executed. Because COUNT exists only for
- TAKE files and macros it cannot be used interactively. Each TAKE
- file or macro has its own distinct copy of COUNT, and nested TAKE
- files or macros do not interact through their COUNTs. Initially
- COUNT is zero.
-
- DEFINED symbol
- True if the named macro or variable is defined. You can use this
- feature to remember things for future reference.
-
- EQUAL word1 word2 command
- True if the two words are lexically equal. Alphabetic case is ig-
- nored unless SET INPUT CASE OBSERVE. If they match, the following
- command is executed. The modifier NOT may be inserted to invert
- the sense of the test. Substitution variables may be used in place
- of word1 and word2, but the command will only work if these vari-
- ables contain single words, not phrases. If word1 or word2 begin
- with @, then the rest of the word is interpreted as a file
- specification, and the first word in the file is used.
-
- ERRORLEVEL number
- True if the DOS errorlevel number matches or exceeds the given
- (decimal) number.
-
- EXIST filespec
- True if the specified file exists.
-
- FAILURE True if the previous status-returning Kermit command reported
- failure.
-
- SUCCESS True if the previous status-returning Kermit command reported suc-
- cess. When using IF SUCCESS and IF FAILURE, it is important to SET
- INPUT TIMEOUT PROCEED, otherwise the script will quit immediately
- upon a failing INPUT or REINPUT, before getting to the IF state-
- ment.
-
- IF commands are closely modeled on those of DOS Batch files, for familiarity.
- They consist of a test condition, perhaps modified by the leading word NOT, and
- then any legal Kermit command. GOTO is an especially useful command here to
- branch in the TAKE file or macro.
-
- The "object" of an IF command is a Kermit command, which can be:
-
- - A regular, predefined Kermit command, like SEND FOO.BAR or SET SPEED
- 1200.
-
- - A GOTO, allowing subsequent statements to be skipped.
-
- - Another IF command, as in IF DEFINED \%3 IF EXIST FOO.BAR SEND
- FOO.BAR. The SEND command is executed only if both IF conditions are
- true.
-
- - A macro. This allows a semblence of structured programming, with an
- implied "begin" and "end" around the commands that compose the macro.
- For instance:
-
- define giveup echo I give up!, hangup, stop
- input 10 Login:
- if failure giveup
- output myusername
-
- The Kermit commands which yield SUCCESS or FAILURE conditions are: GET, SEND,
- RECEIVE, the REMOTE commands, INPUT, REINPUT, BYE, FINISH, LOGOUT, and WAIT.
-
-
- The POP and STOP Commands
-
- Use these commands for terminating execution of a TAKE file or macro. POP ter-
- minates the current level and returns to the previous level. For example, if
- you gave the command "take shower", and the SHOWER file contained a command
- "take bath", and the BATH file contained a command "take hike", and a POP com-
- mand was encountered in the HIKE file, then the next command executed would be
- the one following the "take hike" command in the BATH file. If a STOP command
- was encountered in any of these files, MS-Kermit would return immediately to
- interactive command level. POP and STOP work in similar fashion with nested
- macro invocations: POP returns to the invoking macro, STOP returns to command
- level.
- Script Examples
-
- A counting loop. This TAKE file excerpt says hello three times, then says
- goodbye:
-
- set count 3 ; Prime the loop counter for three passes
- :TOP ; A label for GOTO
- echo Hello\13 ; Something to see, with carriage return
- if count goto top ; Loop if COUNT is greater than zero
- echo Goodbye!\13
-
- Figure 1-2 shows a simple script file that logs in to a computer, prompting the
- user for her password using the @con construction, and then connects as a ter-
- minal. Notice the semicolons used to indicate comments in TAKE files. If
-
- -------------------------------------------------------------------------------
-
-
- define ermsg echo \%1\13, stop ; Define an error handling macro.
- clear ; Clear the input buffer.
- set speed 9600 ; Set the transmission speed.
- output \13 ; Carriage return to awaken host.
- input 15 Login: ; Wait up to 15 secs for prompt.
- if failure ermsg No_login_prompt! ; Give up if none.
- output Sari\13 ; Send username and CR.
- set input echo off ; Privacy, please.
- input 5 Password: ; Quietly wait for this.
- if failure ermsg No_password_prompt! ; Give up if it doesn't come.
- echo Type your password now... ; Make our own prompt.
- output @CON ; Send console keystrokes.
- output \13 ; Add a real carriage return.
- input 30 $ ; Wait for system prompt.
- if failure ermsg No_system_prompt! ; Give up if none.
- connect ; Start terminal emulation.
-
- Figure 1-2: MS-Kermit Script for Logging In
-
- -------------------------------------------------------------------------------
-
- these same commands were typed by hand at the Kermit prompt the semicolon
- material would be considered part of a string! Typing a Control-C will inter-
- rupt and terminate any of the commands.
-
- Figure 1-3 illustrates some detailed control of the Hayes 2400 modem. Some un-
- derstanding of the Hayes dialing language is helpful for deciphering this
- script (consult your Hayes modem manual). If the script is stored in a file
- called HAYES.SCR, then a DIAL macro can be defined like this:
-
- define dial take hayes.scr
-
- The trick here is that any invocation of the "dial" or "do dial" command with
- an operand will set the variable \%1, which is used in the TAKE file, for in-
- stance:
-
- dial 765-4321
-
- will set \%1 to "765-4321", the number to be dialed. You can also type
-
- dial {212 765 4321}
-
- if you want to include spaces in the phone number. This script requires ver-
- sion 2.32 of Kermit or later.
-
- -------------------------------------------------------------------------------
-
-
- def errstop echo \%1\13, def \%1, hang, stop ; Error handler.
- if not defined \%1 errstop {Please supply a phone number!}
- assign \%n \%1 ; Copy the phone number.
- clear ; Clear the input buffer.
- set speed 2400 ; Dial at high speed.
- wait 2 \cts ; Is modem turned on?
- if fail errstop {Please turn on your modem.} ; No.
- echo Initializing modem...\13\10 ; Yes.
- output ATZ\13 ; Reset the modem.
- pause 2 ; Give it a little time.
- output AT F1 Q0 V1 X4 S0=0\13 ; Put modem in known state.
- input 8 OK ; Look for response.
- if fail errstop {Can't initialize modem.}
- pause 1 ; Pause for a second first.
- set count 5 ; Set the redial limit.
- define \%d \13Dialing ; Initial dial message.
- :REDIAL
- echo \%d \%n...\13\10 ; Tell them we're dialing.
- output ATDT\%n\13 ; Dial the phone number.
- clear ; Clear away the command echo.
- input 60 CONNECT ; Wait for CONNECT message.
- if success goto speed ; Got it, go check speed.
- define \%m No dialtone or no answer. ; Make this the error message.
- reinput BUSY ; Didn't connect. Was it busy?
- if failure errstop {\%m\10\13Try again later.} ; No
- Echo \13Busy... ; It's busy, let them know.
- hangup ; Drop DTR momentarily.
- pause 60 ; Wait one minute.
- define \%d \13Redialing ; Change message to "Redialing".
- if count goto redial ; Then go redial.
- define \%m \13Line busy. ; After 5 tries set this message.
- :SPEED ; Connected!
- pause 1 ; Wait for text after CONNECT.
- define \%s 2400 ; Assume speed is 2400.
- reinput 1 2400 ; Rescan current text for "2400"
- if success goto done ; It is.
- define \%s 1200 ; It isn't, so assume 1200.
- reinput 1 1200 ; Is it?
- if failure define \%s 300 ; It isn't, so it must be 300.
- :DONE ; We know the speed.
- set speed \%s ; So set it.
- echo Connecting at \%s bps...\13 ; Tell the user.
- pause 2 ; Give her a chance to read it.
- set terminal clear ; Clear screen.
- define \%1 ; Clear argument.
- connect ; And start terminal emulation.
-
- Figure 1-3: MS-Kermit Script for More Control of a Hayes 2400 bps Modem
-
- -------------------------------------------------------------------------------
-
- A combination of DOS Batch and Kermit Script files is shown in Figures 1-4 and
- 1-5 (see your DOS manual for an explanation of the batch file syntax). The
- purpose is to allow a user to say "SEND filename" at the DOS prompt. The DOS
- batch shell, SEND.BAT, and the login script, KX, are combined to login to a VAX
- through a data switch, run VMS Kermit in server mode, transfer the file, submit
- it to VMS Mail, delete the disk file, shut down the server and logout from the
- VAX, and report the overall transfer status. The user is asked to provide a
- password interactively.
-
- -------------------------------------------------------------------------------
-
- File SEND.BAT, DOS batch program:
-
- echo off
- Rem Kermit, one-line file mailer, by Joe Doupnik.
- Rem Logon to VAX, run Kermit, Send user's file,
- Rem post via MAIL, logout from VAX.
- if ".%2" == "." goto usage
- if exist %1 goto proceed
- echo No file to send!
- :usage
- echo Usage is SEND filename username
- goto done
- :proceed
- echo Logging onto the Vax ...
- kermit set disp q,take kx,send %1,pau,rem host mail %1 %2,pau 2,bye,
- if errorlevel 3 goto badrem
- if errorlevel 2 goto badrcv
- if errorlevel 1 goto badsnd
- echo File(s) "%1" has been mailed to %2.
- goto done
- :badrem
- echo Mail did not cooperate!
- :badrcv
- echo Receive failed!
- goto done
- :badsnd
- echo Send failed!
- goto done
- :done
- echo on
-
- Figure 1-4: MS-DOS Batch File Invoking Kermit to Send VAX Mail
-
- -------------------------------------------------------------------------------
-
-
- 1.9. Initialization Files Revisited
-
- At Columbia University, we have IBM 370-series mainframes running VM/CMS, and
- VAX and SUN systems running Unix. All of these systems are accessible through
- an IBM/Rolm (now Siemens/Rolm) voice/data CBX. The IBM systems have two dif-
- ferent kinds of front ends, a COMTEN 3695 (similar to IBM 3705) for linemode
- half-duplex connections, and various Series/1-style protocol converters
- (including the 7171 and 4994) for full-screen, full-duplex 3270 emulation, all
- of which use various combinations of parity and other settings. The VAX is
- connected directly to the CBX, whereas the SUNs are connected to the CBX
- through Cisco Ethernet terminal servers. Figure 1-6 shows the MSKERMIT.INI
- file used at Columbia for automatic login to these systems. It illustrates the
- creative use of macros and scripts. Numerous site- and system-dependent key
- definitions have been omitted.
-
- A bit of explanation might clarify some of this. The IBM/Rolm CBX prompt is
- "CALL, DISPLAY OR MODIFY?" and we respond with a CALL command for the desired
- system or front end, like CALL SIMB (IBM mainframe in full screen mode through
- a 7171 protocol converter), CALL CUVMB (IBM mainframe in linemode through the
- COMTEN), CALL CUNIXC (a VAX), or CALL CUNIXA (a SUN, through an Ethernet ter-
- minal server). When the initial call through the CBX is completed, the message
- "CALL COMPLETE" appears, and then begins the interaction with the desired host,
- front end, or terminal server, each of which has its own set of prompts and
- responses.
-
- To connect to a given system, one types "do simb", "do cunixc" to invoke a
- "connecting" macro. Each of these, in turn, invokes the CBX macro to navigate
- through the CBX to the desired system. If the CALL COMPLETE message is encoun-
- tered, then further macros (3695, 7171, etc) are used to get past any as-
- sociated front end (e.g. to tell the COMTEN which IBM mainframe is wanted, or
- to tell the protocol converter what terminal to emulate), and then to login on
- the desired system, prompting on the screen for user ID and password. Finally,
- a macro like "vml" (VM linemode), "xed" (XEDIT, i.e. VM full screen), or "dec"
- (VAX or SUN) is executed to set the communication parameters for the system
- just logged in to. The key definitions that are shown in the "vml", "xed", and
- "dec" macros assign the host's character deletion code (backspace or rubout) to
-
- -------------------------------------------------------------------------------
-
- File KX, Kermit script:
-
- Comment Login script for VAXA via Micom data PBX Switch.
- set input timeout quit
- set input echo off
- set display quiet
- output \13
- comment - "slowly." and "CLASS" are part of the switch's prompt.
- input 10 slowly.
- input 10 CLASS
- pause
- comment - Slowly tell switch "vaxa", wait for beep.
- output v
- output a
- output x
- output a
- output \13
- pause
- input 5 \7
- comment - Done with Switch, wake up the VAX and log in.
- pause
- output \13
- pause
- input 5 Username:
- set input timeout proceed
- output MYNAME\13
- input 2 Password:
- comment - Prompt ourselves, then get password from console.
- echo Enter password:
- output @con
- comment - Send a carriage return at the end of the password.
- output \13
- comment - Expect ESC Z from the VAX's Set Term/Inquire...
- comment - Respond ESC [ <query symbol> 6 c (say we are VT102).
- comment - Note syntax for including question mark!
- input 15 \27Z
- output \27[\{63}6c
- comment Look for VMS dollar sign prompt
- input 15 $
- comment Start VMS Kermit and place it in server mode
- output kermit server\13
- comment - allow server's message to finish, "machine." appears twice.
- input 10 machine.
- input 10 machine.
- pause
-
- Figure 1-5: MS-Kermit Script for Logging into VAX and Sending Mail
-
- -------------------------------------------------------------------------------
-
- -------------------------------------------------------------------------------
-
-
- ; MS-Kermit 2.31, 2.32 Initialization File for the IBM PC, XT, AT, PS2, etc.
- ; Christine Gianone, Vace Kundakci, Columbia University, December 1988
- echo Columbia University IBM PC Kermit Initialization file...
-
- ; User IDs on various systems. Substitute your own IDs.
- def \%c XYZCU ; User ID for IBM mainframe
- def \%u xyz ; UNIX ID for UNIX
-
- ; General settings
- set warning on ; Change this to "off" to allow overwriting of files.
- set speed 9600 ; Use 9600 bits per second by default
- set term vt102 ; Emulate a DEC VT-102 terminal
- set term wrap on ; Have Kermit wrap lines at column 80
-
- ; Behavior of INPUT command in script programs
- set input timeout quit ; Exit from script if input pattern not found
- set input echo on ; Echo characters that arrive during INPUT
- set input case observe ; Match according to alphabetic case
-
- ; Macros for connecting to different systems thru the IBM/Rolm CBX
- def cuvmb do cbx,o c cuvm\13, i 10 PLETE, do 3695, o vmb\13, do 4381
- def simb do cbx,o c simb\13, i 10 PLETE, pau, do 7171, do 3270
- def cunix do cbx,o c cunix\13, i 10 PLETE, pau, do cuts, do unix
- def cunixa def \%s cunixa,do cunix
- def cunixb def \%s cunixb,do cunix
- def cunixc do cbx,o c cunixc\13,i 10 PLETE, pau, out \13, do unix
-
- ; Macros for navigating thru front end and login prompts
- def cbx do def,o \13,i 10 MODIFY? ; IBM/Rolm CBX
- def 3695 i 5 ING CHARACTERS:\32\32 ; COMTEN
- def 7171 pau,cle,o \13,i 5 TERMINAL TYPE:\32,o vt-100\13 ; 7171 front end
- def 4381 do vml,i 5 BREAK KEY,o \b,i 5 .\17,o LOG \%c\13,c ; VM/CMS linemode
- def 3270 pau,cle,o \13,o L \%c\13,do vmf,c ; VM/CMS fullsc.
-
- ; CU Terminal Servers (cutsa, cutsb, etc)
- def cuts set inp tim p,out \13,pau,set co 8,:loop,out \13,i 3 >,-
- if suc goto ok,if cou goto loop,ech Failed,stop,:ok,out \%s\13,set inp tim q
-
- ; UNIX login with speed matching
- def unix set inp timeout proc,set count 8,-
- :loop,i 5 login:\32,if suc goto ok,out \13,if count goto loop,-
- echo Failed,stop,:ok,out \%u\13,do dec,set inp tim q,connect
-
- ; Macros for interacting with different systems:
- def vml do tty,set par m,set k \270 \8, set k \3 \Kbreak ; VM linemode
- def vmf do def,set par e,set k \270 \8, set k \3 \3,do simk ; VM fullscreen
- def dec do def,set par n,set k \270 \127,set k \3 \3 ; DEC, SUN, etc
- def def set tim of,set loc of,set hand non,set flow xon,do nosimk ; Default
- def tty set tim on,set loc on,set hand xon,set flow non,do nosimk ; IBM TTY
-
- Figure 1-6: An Advanced MS-Kermit Initialization File
-
- -------------------------------------------------------------------------------
-
- the AT's backarrow key.
-
-
- 1.10. International Character Sets
-
- MS-Kermit may be used on the IBM family and compatibles for interacting with
- host computers in different languages. MS Kermit CONNECT mode has separate
- translation mechanisms for screen and keyboard. Keyboard translations are
- managed through the SET KEY facility which maintains a table of defined keys
- and their output values (single characters, strings, or Kermit keyboard verbs).
- The keyboard is normally read via the system Bios, but it may also be read via
- DOS (with a loss of some key combinations) by saying SET KEY OFF (i.e., turn
- off Bios reading). The keyboard can be modified rapidly by a group of SET KEY
- commands placed in a macro. The host has no direct control of the keyboard
- translations; the host thinks Kermit is a real Digital VT102/VT52 or Tektronix
- 4010 terminal and those devices do not have redefinable keys.
-
- Screen translation is accomplished in two places, the SET TRANSLATION INPUT
- table and the built-in character sets. SET TRANSLATION INPUT is a table of
- received versus reported character codes, and it is enabled by SET TRANSLATION
- INPUT ON. The table is initially an identity which allows individual entries
- to be modified as desired by the command
-
- SET TRANSLATION INPUT <received-code> <displayed-code>
-
- Only characters destined for the screen as text or cursor control (control
- codes) are translated; escape sequences and transparent printing characters
- bypass the SET TRANSLATION table. The table is bypassed for printing to permit
- binary graphics streams to be sent to the printer. A character about to be
- shown on the screen can be modified by selection of a character set, such as
- US-ASCII, UK-ASCII, ALTERNATE-ROM, or line drawing.
-
- The SET TRANSLATION INPUT mechanism operates at the Kermit command level and is
- available to macros, TAKE files, and hand typed control. Host control is
- available only indirectly via the special macros TERMINALR and TERMINALS, dis-
- cussed below, which may contain the SET TRANSLATION INPUT and other commands.
-
- Character sets can be selected either by the Kermit command SET TERMINAL
- CHARACTER-SET (expressed by hand, in macros, or in Take files), or by host con-
- trol of the terminal emulator via the escape sequences ESC ( char or ESC ) char
- and the Control-O and Control-N codes. Thus, rapid changes of displayed
- characters is available to the host and to the user through all three dynamic
- pathways: macros, Take files, hand typing or received codes.
-
- Version 2.32 of MS-Kermit also includes a new ability to operate right-to-left
- during CONNECT mode, in order to interact with Hebrew or Arabic language ap-
- plications on the host computer. The pertinent commands are SET TERMINAL
- DIRECTION {LEFT-TO-RIGHT | RIGHT-TO-LEFT}, and SET TERMINAL CHARACTER-SET
- ALTERNATE-ROM. The latter command makes these high bit characters available by
- active user selection, or by reception of the escape sequences below to as-
- sociate them with one of the two VT102 character set pointers called G0
- (normal) and G1 (alternate). Arrival of Control-O selects the G0 set (default)
- and Control-N the G1 set.
-
- In addition, two special macro names TERMINALR and TERMINALS have been set
- aside, which can be invoked within the VT102 emulator by reception from the
- host of the special escape sequences:
- ESC [ ? 34 h (invokes macro TERMINALS)
- ESC [ ? 34 l (lower case L, invokes macro TERMINALR)
- and/or by using new keyboard "verbs" (not preassigned to keys):
- \Kterminals (invokes macro TERMINALS)
- \Kterminalr (invokes macro TERMINALR)
-
- When these macros are invoked within the terminal emulator and if they are
- defined then CONNECT mode is exited and the macro is executed. There is no
- automatic return to Connect mode at the completion of the macro. If the macro
- is not defined then CONNECT is not exited and nothing happens. Initially nei-
- ther macro is defined. If a return to Connect mode is desired then include
- CONNECT in the macro. Any legal action is permitted in these macros, including
- invoking other macros and Take files.
-
- The purpose of these two names and macros is to allow a host or the local user
- to interactively select two local operations while within the terminal
- emulator, such as changing language specific setups or other desirable things,
- which are much more involved than an existing keyboard verb. There is no
- restriction on what the macros may do since Kermit is then operating not in
- Connect mode but at the Kermit command prompt level, as it is for other macros.
-
- The escape sequences above are a Kermit specific extensions of Digital Equip-
- ment Corporation's private escape sequences to set and reset modes; hence the
- letters S and R in the macro names.
-
- One suggestion for employing SET TERM DIRECTION, SET TERM CHARACTER, and the
- macros TERMINALR and TERMINALS to facilitate mixed Hebrew and English com-
- munications is the simple Take file below:
-
- ; Define macros hebrew and english to do all the work
-
- def hebrew set term dir right, set term char alt, hkey, comkey
- def english set term dir left, set term char us, set key clear, comkey
-
- ; Define host-reachable macros for on the fly changes while
- ; staying in the emulator
-
- def terminalr english, connect
- def terminals hebrew, connect
-
- ; Define IBM-PC F1 key as switch to English, F2 as switch to Hebrew.
- ; Done here to be remembered despite SET KEY CLEAR in macro English.
- ; F1 and F2 thus are user-level commands during emulation.
-
- def comkey set k \315 \Kterminalr,set k \316 \Kterminals
-
- ; Define SET KEYs for Hebrew keyboard layout via macro hkey
-
- def hkey set k \x27 \x2c,set k \x2c \x9a,set k . \x95,set k / \x2e,-
- set k \x3b \x93,set k \x60 \x3b,set k a \x99,set k b \x90, hkey1
- def hkey1 set k c \x81,set k d \x82,set k e \x97,set k f \x8b,-
- set k g \x92,set k h \x89,set k i \x8f,set k k \x87,hkey2
- def hkey2 set k l \x8c,set k m \x8a,set k m \x96,set k n \x8e,-
- set k o \x8d,set k p \x94,set k q /,set k r \x98,set k s \x83,hkey3
- def hkey3 set k t \x80,set k u \x85,set k v \x84,set k x \x91,-
- set k y \x88,set k z \x86
-
- After executing this file, one may switch Connect mode language support between
- Hebrew (right to left, national display characters, similarly translate out-
- going keyboard characters) and English by stating a single keyword at the Ker-
- mit prompt, "Hebrew" or "English", or while within Connect mode by pushing the
- F1 or F2 keys (in this example), or by reception of ESC [ ? 34 h or l from the
- host. All the work is done from memory material and is essentially instan-
- taneous. Clearly, other languages can also utilize these tools.
-
- IBM PCs or compatibles will normally have national characters installed in the
- upper portion of the character set ROM, in positions 80H-9AH. EGA systems
- generally come with a program to load the appropriate national character set
- into this portion of memory, such as HEBEGA for Hebrew. Version 3.30 (and
- later) of DOS supports the notion of "Code Page" for PS/2 systems, or other
- systems with EGA or LCD adapters, described in Appendices B and C of the DOS
- 3.30 reference manual.
-
-
- 1.11. MS-Kermit Features for Different Systems
-
- As noted early on, MS-Kermit was designed primarily for the IBM PC family, and
- later adapted to various non-IBM-compatible MS-DOS (and even non-MS-DOS) sys-
- tems. Some of these adaptations provide all the features of the IBM PC ver-
- sion, others provide only a subset, and still others may include features not
- available on the IBM family. These features are all of the system-dependent
- variety; the Kermit file transfer protocol should be implemented identically on
- all versions of MS-Kermit. The most obvious differences are in the terminal
- emulation options and the keyboards. Table 1-7 shows the terminal emulation
- options for the systems presently supported by Kermit-MS, and Table 1-8, shows
- which keys are used for screen rollback on the various systems supported by
- MS-Kermit.
-
- -------------------------------------------------------------------------------
-
-
- System EscChar Capabilities Terminal Service
- ACT Apricot ^] K VT52 ???
- DEC Rainbow ^] R P K D VT102 firmware
- DECmate/DOS ^] K VT100
- Generic DOS ^] K Depends on system
- Grid Compass ^] K ???
- HP-110 ^] K Dumb terminal
- HP-150 ^] R K HP-2623 firmware
- IBM PC family ^] R M P K D H19,VT52,VT102,Tek emulation
- Intel 3xx ^] K Uses real terminal
- NEC 9801 ^] M P K D VT102, Tektronix emulation
- NEC APC3 ^] R M P K D H19,VT52,VT102 emulation
- NEC APC ^] R P K VT100, ADM3A firmware
- Olivetti M24 ^] R M P K D Same as IBM PC
- Sanyo MBC55x ^] R M P K D H19,VT52,VT102 emulation
- Wang PC ^A K Wang firmware
- TI Pro ^] M P K VT100/Tektronix
- Victor 9000 Alt-] M P K D H19,VT52,VT102 and/or Tek4010
- Zenith Z100 ^] K Heath-19 emulation
-
- R=Rollback, M=Modeline, P=Printer control, K=Key redefinition, D=screen Dump
-
- Table 1-7: Kermit-MS Terminal Emulation Options
-
- -------------------------------------------------------------------------------
-
- -------------------------------------------------------------------------------
-
- System Screen Down Line Down Screen Up Line Up
- IBM PC PgUp Ctrl-PgUp PgDn Ctrl-PgDn
- Rainbow PrevScreen Ctrl-PrevScreen NextScreen Ctrl-NextScreen
- HP-150 Prev Shift-UpArrow Next Shift-DownArrow
- NEC APC Uparrow Ctrl-UpArrow DownArrow Ctrl-DownArrow
- NEC APC3 PgUp Ctrl-PgUp PgDn Ctrl-PgDn
- Sanyo 55x PgUp Ctrl-RtArrow PgDn Ctrl-PgDn
- The IBM PC also allows use of the Home key to get to the top of its display
- memory and End key to get to the bottom, and the keypad minus (-) key to toggle
- the mode line on and off. The Rainbow uses Shift-Next-Screen to get to the
- bottom of its display memory, but provides no key for moving directly to the
- top.
-
- Table 1-8: Kermit-MS Screen Scroll Keys
-
- -------------------------------------------------------------------------------
-
- Another difference is the default communication port, the number of communica-
- tion ports supported, and the names given to them. For instance, the IBM PC
- family supports COM1 and COM2, and uses COM1 by default. MS-Kermit may be per-
- suaded to support higher-numbered IBM ports using the method outlined in sec-
- tion 1.18.3. For remote operation, IBM's name for the console is CON, so if
- you CTTY COM1, you do CTTY CON to put the PC back to normal.
-
-
- The DEC Rainbow
-
- The DEC Rainbow version of MS-Kermit uses the built-in VT102 terminal firmware
- and setup modes, and can operate at speeds up to 9600 baud. It has no 25th
- screen line, and therefore no Kermit mode line during CONNECT. It supports
- only the Rainbow's single communication port, and not the printer port, so SET
- PORT for the Rainbow is not implemented (but of course the printer may be used
- for printing.) The Rainbow may be put in remote mode by CTTY AUX, and returned
- to normal with CTTY SCRN. The Rainbow supports several SET TERMINAL commands:
- VT102, VT52, and ROLL.
-
- The keypad and cursor keys all work properly in VT102 and VT52 modes and in ap-
- plication as well as native states (they never had in previous versions).
- Newline mode is activated for received characters (LF ==> CR/LF). Screen roll
- back is almost 11 screenfuls. Table 1-9 shows the verb names and default key
- assignments for the Rainbow. On the main typewriter keyboard the shifted comma
- and period are converted to special keys available for Set Key assignment with-
- out impacting the normal unshifted ASCII actions; Shift Lock has no effect on
- these keys.
-
- -------------------------------------------------------------------------------
-
-
- Rainbow Key Verb Name Operation
-
- PF1 \Kpf1,\Kgold Keypad function key
- PF2..PF4 \Kpf2..\Kpf4 Keypad function keys
- keypad 0..9 \Kkp0..\Kkp9 Keypad digit keys
- keypad - \Kkpminus Keypad minus key
- keypad , \Kkpcoma Keypad commma
- keypad . \Kkpdot Keypad dot (period) key
- keypad Enter \Kkpenter Keypad Enter key
-
- up arrow \Kuparr Cursor keys
- down arrow \Kdnarr
- left arrow \Klfarr
- right arrow \Krtarr
- Shift Prev Screen \Khome Rewind to start of screen buffer
- Shift Next Screen \Kend Unwind to end of screen buffer
- Ctrl Prev screen \Kupone Backup one screen line
- Ctrl Next screen \Kdnone Advance one screen line
- Prev screen \Kupscn Backup one screen
- Next screen \Kdnscn Advance one screen
- Print Screen \Kprtscr Copy screen to printer
- Ctrl Print Screen \Ktoggle_prn Toggle echoing screen to printer
- (printer failure resets toggle)
- Do \Kdump Copy screen to file (KERMIT.SCN)
- Break \Kbreak Send a BREAK
- Shift Break \Klbreak Send a Long BREAK
- Main Screen \KDOS Push to DOS
- Help \Khelp Show Connect mode help menu
- Exit \Kexit Exit Connect mode
- * \Knull send a null out the serial port
- * \Khangup hangup phone by dropping DTR, RTS
- * \Klogon resume logging, if active
- * \Klogof suspend logging
- * \Kstatus display status table
-
- * (verbs not pre-assigned to keys)
-
-
- Table 1-9: Kermit-MS Verbs for the DEC Rainbow
-
- -------------------------------------------------------------------------------
-
-
- The DECmate II
-
- MS-Kermit for the DECmate II with the XPU option is somewhat similar to Rainbow
- Kermit. It uses built-in terminal VT100 firmware and setup modes and baud
- rates up to 9600 on the single communication port. The printer port is not
- available for communications in this version. There is no mode line, but other
- connect-mode escapes are supported, including sending BREAK. Disks A through I
- are supported, and the floppy disk format is compatible with the Rainbow. DEC
- utilities are available for file conversion between DOS and WPS-8 files.
-
-
- The NEC APC3
-
- The NEC APC3 version of MS-Kermit assumes that the ANSI.SYS driver has been in-
- stalled and that a color monitor is being used; the color graphics option is
- not used by Kermit. Although the display should be entirely sensible with a
- monochrome system, it has not been tested. Differences from the IBM PC version
- include:
-
- SET BAUD: The useful baud rates supported range from 300 to 9600.
-
- SET PORT: The available ports are 1, 2, 3, or their equivalents AUX, AUX2,
- AUX3.
-
- SET TERMINAL COLOR: Instead of specifying colors by number, the words BLUE,
- RED, MAGENTA, GREEN, CYAN, YELLOW, or WHITE are appropriate. This is the color
- of the text in connect mode; background colors are not available. Monochrome
- monitors will respond with display changing from most dim to most bright if the
- colors are specified in the order given.
-
- SET TERMINAL KEYCLICK: Not implemented in Kermit; use the NEC provided command.
-
- SET TERMINAL SCREEN-BACKGROUND: Not implemented.
-
- During terminal emulation, screen scroll is handled by the PgUp and PgDn keys.
- If used in combination with the Ctrl key, the display moves but one line. If
- used in combination with the Fnc key, the display scrolls to the end of the
- buffer. The Fnc-INS combination toggles the mode line on/off. The Fnc-DEL
- combination toggles the terminal emulation type. The Fnc-Break combination
- resets the emulator. The Help key pulls down the connect mode menu. The ANSI
- escape sequence for disable/enable cursor is implemented.
-
-
- 1.12. Compatibility with Older Versions of MS-DOS Kermit
-
- The last monolithic (single source file) release of MS-DOS Kermit was 1.20.
- Meanwhile, implementations based on versions of that vintage will have at least
- the following incompatibilies from the version described here:
-
- - "RECEIVE filespec" is used instead of "GET filespec". There is no
- GET command in older versions, and no way to specify a new name for
- an incoming file.
- - No LOCAL or REMOTE commands.
- - No 8th-bit prefixing, repeat counts, CRCs or 2-character checksums.
- - No TAKE or initialization files.
- - No command macros or command line arguments.
- - No terminal session logging.
-
- and others, depending on the specific version.
-
- Incompatibilities between 2.29 and later releases include:
-
- - LOCAL command has been removed from 2.30 and later.
- - CLEAR command now means clear serial port buffer rather than key and
- macro definitions. Key and macro definition string space is now gar-
- bage collected, so a CLEAR command for them is no longer necessary.
- - CLRINP command is gone (replaced by CLEAR).
- - Numbers of the form \nnn default to decimal rather than octal.
- - Status of Default Disk is now shown as default disk and path.
- - LOG filespec replaced by LOG SESSION filespec and LOG PACKET
- filespec.
- - SET KEY and SHOW KEY commands use different key identifications and
- syntax:
-
- MS-Kermit no longer understands keycap names such as F1 and BACKSPACE because
- the codes are now highly dependent on individual keyboards, software, and com-
- puters. Also, not every key press combination is supported by the system
- software and key codes do depend on the keyboard in use. Thus, the SHOW KEY
- command is normally used to obtain codes for keys on your system. In most
- cases, defining one key also redefines all other keys sending the same charac-
- ter. This is a side effect of not knowing the physical details of every
- keyboard. However, efforts have been made to recognize many such "aliased"
- keys and to generate unique identifications for each. Special keys, such as F1,
- F2 and others which do not send an ASCII code are usually unique and are iden-
- tified by scan codes.
-
- Previous versions of MS Kermit used a different key coding algorithm and not
- all old codes map to the expected keys. However, Kermit does attempt to use
- the older SET KEY syntax properly as much as possible. The older syntax re-
- quired the keyword SCAN followed by a number WITHOUT the BACKSLASH. The cur-
- rent MS Kermit uses decimal as the default number base and previous versions
- used octal in certain commands. So, when Kermit senses an old style SET KEY
- command it converts the number, displays the new format and gives a warning
- message. It is best to make a new style SET KEY file.
-
-
- 1.13. What's Missing
-
- Kermit-MS has plenty of room for improvement. Missing features (which may be
- added in future releases) include:
-
- - Sliding window transport protocol.
- - Default filetype for TAKE command files.
- - Passing paramaters in TAKE command, like in DO command.
- - A way to send files with their full path names.
- - A way to play back session logs directly from disk to screen.
- - Trapping of carrier loss during CONNECT or file transfer.
- - A better built-in help facility.
- - A way to dump or print Tektronix graphics screens.
-
-
- 1.14. Installation of Kermit-MS
-
- If you already have Kermit on your PC, you can use it to obtain new versions of
- Kermit-MS when they appear on the central system at your site. If you do not
- have Kermit or any other reliable file capture facility on your PC, you can or-
- der a Kermit diskette from Columbia (write to Kermit Distribution, Columbia
- University Center for Computing Activities, 612 West 115th Street, New York, NY
- 10025, USA, for information), or from any of a number of user groups or dis-
- kette services. If you don't have Kermit already, and absolutely can't get a
- Kermit diskette, but have access to another computer that has a copy of the
- MS-DOS Kermit program (usually in ".BOO" format, explained below), there are
- two recommended methods for getting it onto your PC:
-
- 1. Use another file capture facility to get it.
-
- 2. Type in and run the "baby Kermit" program (72 lines) from chapter 7
- of the Kermit book.
-
- The first method involves either "raw capture" (no error checking), or else use
- of another protocol, such as Xmodem, which, like Kermit, requires a program to
- execute the same protocol on both ends of the connection.
-
- Raw capture generally involves "typing" the file on the other computer, with
- your PC taking the place of the terminal, and rather than displaying the file
- on the screen as it's being typed, your PC is storing it on the disk. This is
- a tricky process, however, because data can easily be lost or corrupted. For
- instance, you could write a very short BASIC program to capture a file in this
- way, but it could probably not keep up -- even at low baud rates -- with the
- transmission speed unless you included the tricky serial port BASIC commands.
- The DOS command COPY COM1 filename command has the same speed problem, and it
- stops only when it receives a Control-Z character from the other computer.
-
- If the other computer has Kermit on it -- which is likely, since this is prob-
- ably the reason you want to get Kermit onto your PC -- you should type in the
- receive-only BASIC Kermit program listed on pp.186-188 of the Kermit book, and
- then use it in conjunction with the other computer's Kermit to transfer the
- file. Make sure to set a long enough delay on the other computer to give your-
- self time to escape back to the PC and start up the "baby Kermit" before pack-
- ets start to arrive, otherwise you'll probably get fatal DOS i/o errors.
-
- Note that Kermit programs are often distributed under names other than
- "Kermit". The Columbia Kermit program library contains hundreds of Kermit
- programs, which must be given unique names. MS-DOS Kermit for the IBM PC, for
- instance, is called MSVIBM. Once you have this program in .EXE format on your
- disk, you probably should rename it to KERMIT.EXE, because the distribution
- name is harder to remember (and type).
-
- You will probably also want to create an MS-Kermit initialization file. A
- sample is distributed with MS-Kermit as MSVIBM.INI. This should be tailored to
- your requirements, and then renamed to MSKERMIT.INI, and stored where Kermit
- can find it (in the current directory or any directory in your DOS PATH).
-
-
- ".BOO Files"
-
- MS-Kermit (and many other Kermit programs) are often distributed using a spe-
- cial encoding called "boo" (short for "bootstrap") format, developed especially
- for distribution of MS-Kermit over networks and communication lines. MS-Kermit
- has grown to have so many features that the binary program image (the .EXE
- file) has become quite large. But binary files are generally not compatible
- with the common labeled tape formats (e.g. ANSI D), electronic mail, or raw
- downloading -- the methods most commonly used for Kermit distribution.
-
- A common practice is to encode .EXE and other binary files into printable
- characters, such as hexadecimal digits, for transportability. A simple "hex"
- encoding results in two characters per 8-bit binary byte, plus CRLFs added
- every 80 (or less) hex characters to allow the file to pass through
- card-oriented links. A hex file is therefore more than twice as large as the
- original binary file.
-
- A .BOO file is a more compact, but somewhat more complicated, encoding. Every
- three binary bytes (24 bits) are split up into four 6-bit bytes with 48 (ASCII
- character "0") added to each, resulting in four ASCII characters ranging from
- "0" (ASCII 48) to "o" (ASCII 111), with CRLFs added at or near "column 76".
- The resulting file size would therefore be about 4/3 the .EXE file size. This
- is still quite large, so .BOO files also compress consecutive null (zero)
- bytes. Up to 78 consecutive nulls are compressed into two characters. Tilde
- ("~") is the null-compression lead-in, and the following character indicates
- how many nulls are represented (subtract 48 from this character's ASCII value).
- For instance "~A" means 17 consecutive nulls; "~~" means 78 of them. Repeated
- nulls are very common in .EXE files.
-
- 4-for-3 encoding combined with null compression reduces the size of the encoded
- file to approximately the same size as the original .EXE file, and sometimes
- even smaller. The first line of a .BOO file is the name (in plain text) of the
- original file. Here's what the first few lines of a typical .BOO file look
- like:
-
- MSVIBM.EXE
- CEYP0Id05@0P~3oomo2Y01FWeP8@007P000040HB4001`W~28bL005\W~2JBP00722V0ZHPYP:
- \8:H2]R2V0[`PYP:68>H2S23V0YHPiP:Xg800;Qd~2UWD006Yg~2Ogl009]o~2L8000;20~~~~
- ~~~~~~~:R2H008TV?P761T410<H6@P40j4l6RRH0083l17@PP?`1M@?YSP20o0Ee0nUD0h3l
- 1WD3jO@3]0VjW03=8L?X4`N0o01h1\H6~20l>0i7n0o1]e7[@2\PO=8LH60@00Raj>04^97Xh0
-
-
- Programs for Handling .BOO Files
-
- Kermit Distribution includes several useful .BOO-file programs:
-
- MSBPCT.BAS This Microsoft BASIC program can be used on any PC that has
- BASIC to decode a .BOO file into an .EXE file. It's about 50
- lines line, so it can be typed in.
-
- MSBPCT.BOO BASIC programs run rather slowly, so .BOO-file decoders have
- also been written in high-level languages like C. The
- MSBPCT.EXE file that was produced by compiling MSBPCT.C is en-
- coded into MSBPCT.BOO, which can be decoded back into
- MSBPCT.EXE using MSBPCT.BAS. Once you've done that, you don't
- need to run the slow BASIC version any more, which is a bless-
- ing, because the MS-Kermit .BOO file takes up to half an hour
- to decode using the BASIC version (depending on the system),
- but only seconds using MSBPCT.EXE.
-
- MSBPCT.* There are .BOO-file decoders written in other languages too,
- like assembler, Turbo Pascal, Fortran, etc. Take your pick.
- They all do the same thing.
-
- MSBMKB.* This is the program for encoding an .EXE file into a .BOO file.
- It is written in C, compiled, and translated (by itself) into
- .BOO format, suitable for decoding back into .EXE form by any
- of the MSBPCT programs. Also in other languages, including
- Fortran and Turbo Pascal.
-
- MSBHEX.* are C programs for producing and decoding straight hex files.
-
-
- 1.15. Program Organization
-
- Kermit-MS version 2 is composed of separate assembler source files, assembled
- separately, and linked together. The modules are:
-
- System/Device Independent:
-
- MSSKER.ASM Main program
- MSSSEN.ASM File sender
- MSSRCV.ASM File receiver
- MSSSER.ASM Server operation
- MSSFIL.ASM File i/o
- MSSCMD.ASM Command parser
- MSSTER.ASM CONNECT command
- MSSCOM.ASM Packet reader and sender
- MSSSET.ASM SET, SHOW, and STATUS commands
- MSSSCP.ASM Script CLEAR, ECHO, INPUT, OUTPUT, PAUSE, TRANSMIT commands
- MSSFIN.ASM Dummy module for the end of the data segment; must be linked
- LAST.
- MSSDEF.H Data structure definitions and equates
-
- System/Device Dependent:
-
- MSGxxx.ASM System-dependent graphics terminal for system xxx
- MSUxxx.ASM System-dependent keyboard translator for system xxx
- MSXxxx.ASM System-dependent code for system xxx
- MSYxxx.ASM Terminal emulation for system xxx
- MSZxxx.ASM More terminal emulation for system xxx
-
- The xxx is replaced by a 3-letter code for the particular system, e.g. IBM for
- the IBM PC family, RB1 for the Rainbow-100, etc.
-
- The modular organization allows easier modification of the program, quicker
- transfer of modified portions from system-to-system. The modules are designed
- to be well-defined and self-contained, such that they can be easily replaced.
- For instance, someone who prefers windows and mice to typing commands should be
- able to replace the command parsing module without having to worry about the
- effect on the other modules.
-
- To assemble any of the Kermit modules, file MSSDEF.H must be on the default
- disk.
-
- All the Kermit implementations require the modules MSSCMD, MSSCOM, MSSFIL,
- MSSKER, MSSRCV, MSSSCP, MSSSEN, MSSSER, MSSSET, MSSTER, MSSFIN. MSSFIN must be
- linked last.
-
- Each particular implementation requires at least an MSXxxx module, usually an
- MSUxxx module, and, if it is doing terminal emulation in software, also an
- MSYxxx and possible also an MSZxxx module, and for graphics terminal emulation,
- also an MSGxxx module. See the batch or make files from the source distribu-
- tion for details of exactly which modules are required for a particular im-
- plementation.
-
- Once all the required object modules exist, they may be linked together to
- produce a Kermit program. For example, on the IBM PC:
-
- A>link
-
- Microsoft Object Linker V2.00
- (C) Copyright 1982 by Microsoft Inc.
-
- Object Modules [.OBJ]: msscmd+msscom+mssfil+mssker+mssrcv+mssscp+msssen+
- mssser+mssset+msster+msgibm+msuibm+msxibm+msyibm+mszibm+mssfin
- Run File [MSSCMD.EXE]: kermit
- List File [NUL.MAP]:;
-
- A>
-
- Warning: old versions of MASM may not be able to assemble several of the large
- files now present in Kermit-MS. The solution is to acquire Microsoft MASM 4.0
- or later.
-
-
- 1.16. Bringing Kermit to New Systems
-
- You can bring Kermit-MS to MS-DOS systems that are not explicitly supported in
- one of two ways -- attempt to run the "generic" MS-DOS Kermit on it, or add ex-
- plicit code to support your system.
-
- To get started with Kermit on a new system, try running "generic" MS-DOS Ker-
- mit; in many cases, it will run as is. The generic version accomplishes all
- its port and console i/o through DOS calls, and during terminal connection does
- not attempt to emulate any particular kind of terminal. In some cases, the
- generic version may still require some fiddling to run on a new system; for in-
- stance, different systems refer to their communication ports in different ways
- -- COM1, J1, AUX, etc. The SET PORT command allows you to specify the port
- using any of these device names, or using DOS file handles -- keep trying until
- you find the one that works. Generic MS-DOS Kermit will probably run no faster
- than 1200 baud, and it only works with DOS 2.0 or later.
-
- If you want to write code to explicitly support a new system, first call or
- write Kermit Distribution at Columbia to make sure no one else is already doing
- the same work. If you're the first, then begin by reading the file MSXAAA.DOC,
- provided with the MS-DOS Kermit sources in the Kermit distribution, which is a
- guide to the system dependent modules of Kermit-MS. Then create new MSUxxx.ASM
- and MSXxxx.ASM modules, and, if your version is also doing terminal emulation
- in software, also an MSY and possibly an MSZ module patterned after those that
- have been written for other systems.
- 1.17. Kermit-MS VT102 Terminal Emulator Technical Summary
-
-
- 1.17.1. Treatment of Inbound Characters During Terminal Emulation
-
- The following sections summarize the Kermit-MS keyboard and screen operation
- during emulation of H19, VT52, and VT102 terminals, prinicipally for the IBM PC
- but also used by the NEC APC3, Victor 9000, and Sanyo 55x systems.
-
- Many things can happen to a character that arrives at the communication port
- before you see it. The sequence of events for version 2.32 is summarized in
- the following picture. 2.31 is similar except for no national characters.
-
- -------------------------------------------------------------------------------
- character from serial port or network
- |
- v
- NUL: discard unless DEBUG is ON
- DEL: discard unless DEBUG is ON or doing Tektronix
- |
- character available to rest of Kermit
- |
- v
- TERMINAL NONE <-------*-------*---> to packet reader
- DISPLAY 8-BIT? | |
- Yes No v v
- | | | |
- | remove 8-th bit | Script routines.
- | | | remove parity bit, if parity used.
- --------- | apply SET TRANSLATION INPUT table,
- | | if active.
- apply SET TRANSLATION | |
- INPUT, if active | LOG SESSION active?
- | | No Yes
- copy char to printer? | | |
- No Yes | | DEBUG ON or DISPLAY 8-BIT?
- | | | | Yes No
- | print char | | | |
- | via DOS | | | remove 8-th bit
- | | | | | |
- --------- | | ---------
- | | | |
- log char if | | |
- LOG SESSION active. | | |--> log character
- | | v v
- v | -------------
- DEBUG ON? | |
- No Yes | DISPLAY 8-BIT?
- | | | Yes No
- | show chars, with | | |
- | tilde/caret modifiers | | remove 8-th bit
- | | | | |
- | Exit | v v
- | | -------------> character to scripts
- display char via DOS |
- Exit |
- v
- VT102 terminal emulator
- |
- SET DEBUG ON?
- No Yes --> display characters:
- | show leading tilde if bit 8
- | set; for lower 7 bits show
- | caret-char if Control code.
- | |
- | Exit.
- v
- Printing Transparently? (ESC [ 4/5 i)
- No Yes
- | |
- | log character if LOG SESSION is active,
- | send char to printer but not to screen.
- | |
- | Exit.
- v
- SET DISPLAY 8-BIT?
- Yes No
- | |
- | remove 8-th bit of character
- | |
- v v
- -----------------
- |
- v
- Control character?
- Yes No
- | |
- | Doing escape sequence?
- | No Yes
- | | |
- v v |
- ----------------- |
- | |
- v |
- do SET TRANSLATION INPUT, |
- if active. |
- | v
- ---------------------------------
- |
- v
- NUL or DEL character?
- No Yes --> Exit (discard)
- |
- |
- log character if LOG SESSION is active.
- |
- Control character?
- Yes No
- | |
- do control ops map character according to
- | active character-set pointer. (See below)
- Exit |
- display character on screen
- (with double width/height, if req'd).
- |
- print character via DOS if
- Controller Print is active (ESC [ ? 4/5 i)
- or if Kermit copy screen to printer active.
- |
- v
- Exit
- -------------------------------------------------------------------------------
-
- Updating of the cursor position is automatic and can be influenced by the Ker-
- mit command SET TERMINAL DIRECTION {RIGHT-TO-LEFT | LEFT-TO-RIGHT}. As a con-
- venience, the keyboard left and right arrow keys are interchanged when the
- writing direction is reversed; thus, the right arrow always requests the host
- to move the cursor to the visual right.
-
- The active character-set pointer is determined by two conditions:
-
- 1. The VT102 maintains two character set pointers (selectors), G0 and
- G1. G0 is the default pointer. Reception of Control-O selects the
- G0 pointer, Control-N selects the G1 pointer.
-
- 2. Which character set: US-ASCII, UK-ASCII, ALTERNATE-ROM, or
- line-drawing, has been assigned to G0 and G1 pointers. The command
- SET CHARACTER-SET {US-ASCII, UK-ASCII, ALTERNATE-ROM} assigns that
- set to the G0 AND G1 pointers. Similarly, the host can assign any of
- the four sets to either G0 OR G1 via the escape sequences ESC ( char
- or ESC ) char, respectively, as summarized below:
-
- ESC ( A G0 points to UK symbols (ASCII with Pound Sterling sign)
- ESC ) A G1 points to UK symbols
- ESC ( B G0 points to ASCII symbols (ASCII with US pound sign #)
- ESC ) B G1 points to ASCII symbols
- ESC ( 0 G0 points to special (line drawing) graphics
- ESC ) 0 G1 points to special (line drawing) graphics
- ESC ( 1 G0 points to ALTERNATE-ROM national characters
- ESC ) 1 G1 points to ALTERNATE-ROM national characters
- ESC ( 2 G0 points to special (line drawing) graphics
- ESC ) 2 G1 points to special (line drawing) graphics
-
- All character sets produce
-
- !" pound-sign $%&'()*+,-./0123456789:;<=>?
- @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
-
- The lower case field, `ab..yz{|}~ changes to line drawing or national charac-
- ters, depending on the character set. National characters replace the character
- codes 60h to 7Ah (accent grave, lower case a-z) with codes 80h to 9Ah; lower
- case a becomes umlated u, etc in standard IBM display adapters.
-
- DOS Code Page support
-
- Code Pages are sets of translation tables maintained within DOS to support na-
- tional languages. They affect the characters reported by the keyboard and those
- displayed on the screen and printer. Code Page support is loaded as device
- driver information in CONFIG.SYS and activated by DOS programs NLSFUNC, CHCP,
- KEYB, and MODE, at least under PC DOS 3.30. An EGA adapter is required for
- screen support; similarly, only IBM printers are discussed. Making Code Pages
- operate is not exactly easy, and there have been rumors that MS-DOS Code Pages
- from various vendors are not bug free. However, the goal is an ability to
- change translations for screen, keyboard, and printer by DOS commands.
-
- Since Code Pages are the province of DOS it is clear that operations at the
- Bios or hardware levels will not experience Code Pages. Kermit uniformly uses
- DOS for printer output. Kermit CONNECT mode keyboard reading is normally done
- via the Bios, unless SET KEY OFF has been stated. Kermit CONNECT mode Screen
- reading and writing is done via both the Bios and the hardware for the
- VT102/VT52/Tek4010 emulators, but the terminal type of NONE uses only DOS.
- Thus, full Code Page support is available in Kermit by stating SET KEY OFF (use
- DOS) and SET TERMINAL NONE (use DOS). Outside of CONNECT mode all Kermit
- screen and keyboard input and output is done through DOS.
- 1.17.2. Keyboard Layout and Characters Sent
-
- Here is how the keypad functions are assigned to the IBM keyboard function
- keys. You may change them by using the SET KEY command to define a desired key
- as the appropriate Kermit action verb; use SET KEY without a definition to un-
- define a key. Names of appropriate verbs are also shown for use in the Set Key
- command, such as
-
- Set Key \2352 \Kbreak (IBM Alt-B assigned to verb BREAK)
-
- Verb names are system dependent, use ? in the Set Key definition part for a
- list of local verbs. IBM PC verbs are listed in Table 1-6; IBM key values are
- either straight ASCII or the IBM Bios scan code, plus 256, plus 512 for Shift
- key held down, plus 1024 for Control key held down, plus 2048 for Alt key held
- down; non-ASCII keys are always 256 decimal or greater. Keys particular to the
- Enhanced Keyboard have 4096 added to the result.
-
- ---------------------------------------------------------------------------
-
- Heath-19 and VT52 Keypads VT102 keypad
- IBM Keys IBM keys
- +------+------+-------+----------+ +------+------+------+------+
- | Blue | Red | Grey | up arrow | | PF1 | PF2 | PF3 | PF4 |
- | F1 | F2 | F3 | up arrow | | F1 | F2 | F3 | F4 |
- +------+------+-------+----------+ +------+------+------+------+
- | 7 | 8 | 9 |down arrow| | 7 | 8 | 9 | - |
- | F5 | F6 | F7 |down arrow| | F5 | F6 | F7 | F8 |
- +------+------+-------+----------+ +------+------+------+------+
- | 4 | 5 | 6 | rgt arrow| | 4 | 5 | 6 | , |
- | F9 | F10 | SF1 | rgt arrow| | F9 | F10 | SF1 | SF2 |
- +------+------+-------+----------+ +------+------+------+------+
- | 1 | 2 | 3 |left arrow| | 1 | 2 | 3 | E |
- | SF3 | SF4 | SF5 |left arrow| | SF3 | SF4 | SF5 | n S|
- +------+------+-------+----------+ +------+------+------+ t F|
- | 0------0 | . | Enter | | 0------0 | . | e 6|
- | SF7 | SF8 | SF6 | | SF7 | SF8 | r |
- +-------------+-------+----------+ +-------------+------+------+
-
- SF1 means push Shift and F1 keys simultaneously
- ---------------------------------------------------------------------------
-
- CURSOR KEYS:
- H-19 & VT52 VT102
- VT52/H19 key IBM Verb IBM key All Modes Numeric Application
-
- up arrow UPARR up arrow ESC A ESC [ A ESC O A
- down arrow DNARR down arrow ESC B ESC [ B ESC O B
- right arrow RTARR right arrow ESC C ESC [ C ESC O C
- left arrow LFARR left arrow ESC D ESC [ D ESC O D
-
- AUXILIARY KEYPAD:
- Heath-19 & VT52 VT102
- VT52/H19 key IBM Verb IBM key Numeric Applic. Numeric Applic.
-
- PF1/HF7/Blue GOLD,PF1 F1 ESC P ESC P ESC O P ESC O P
- PF2/HF8/Red PF2 F2 ESC Q ESC Q ESC O Q ESC O Q
- PF3/HF9/Grey PF3 F3 ESC R ESC R ESC O R ESC O R
- PF4/HF1 PF4 F4 ESC S ESC S ESC O S ESC O S
- 0 KP0 SF7 0 ESC ? p 0 ESC O p
- 1 KP1 SF3 1 ESC ? q 1 ESC O q
- 2 KP2 SF4 2 ESC ? r 2 ESC O r
- 3 KP3 SF5 3 ESC ? s 3 ESC O s
- 4 KP4 F9 4 ESC ? t 4 ESC O t
- 5 KP5 F10 5 ESC ? u 5 ESC O u
- 6 KP6 SF1 6 ESC ? v 6 ESC O v
- 7 KP7 F5 7 ESC ? w 7 ESC O w
- 8 KP8 F6 8 ESC ? x 8 ESC O x
- 9 KP9 F7 9 ESC ? y 9 ESC O y
- comma (,) KPCOMA SF2 , ESC ? l , ESC O l
- minus (-) KPMINUS F8 - ESC ? m - ESC O m
- period (.) KPDOT SF8 . ESC ? n . ESC O n
- Enter KPENTER SF6 ^M(cr) ESC ? M ^M ESC O M
-
- (SFn means hold down Shift key while pressing Function key n.)
-
- An often confusing item is knowing the mode of the auxillary keypad: numeric or
- application. Digital Equipment Corporation designed the terminal to change
- modes only under command from the remote computer and not at all from the
- keyboard. So the startup state is numeric/cursor mode, and reception of escape
- sequences "ESC [ ? 1 h" or "l" changes the mode. Kermit verbs for the keypad
- and cursor keys generate the correct escape sequences appropriate to the cur-
- rent mode and terminal type.
-
- A best attempt is made to safely test for the 101/102 key Enhanced keyboard and
- use it if present. If it is present then the keyboard translator separates the
- individual arrow keys from those on the numeric keypad and also separates the
- asterisk and forward slash keys on the keypad from those on the regular
- typewriter keyboard. These special Enhanced keyboard keys are reported as scan
- codes with 4096 added to the base scan code.
- OTHER IBM KEYS OPERATIONAL IN CONNECT MODE:
-
- IBM key IBM Verb Action
-
- Keypad Del Send ASCII Del code (rubout) \127
- Backspace (<-) Send ASCII Del code (rubout) \127 (BS is \8)
- Keypad - MODELINE Toggle mode line on/off (only if Mode Line is
- enabled and not used by the host).
- Alt - TERMTYPE Toggle among H-19, VT52, and VT100 emulations.
- Alt = RESET Clear screen and reset terminal emulator to
- starting (setup) state.
- Alt B BREAK Send a BREAK signal
- Alt H HELP Show drop down help menu (detailed below)
- Alt S STATUS Show settings
- Alt X EXIT Exit Connect mode, back to Kermit prompt
-
- Home HOMSCN Roll screen up (text down) to beginning of
- storage.
- End ENDSCN Roll screen down (text up) to end of storage.
- PgUp UPSCN Roll screen up (back, earlier) one screen.
- PgDn DNSCN Roll screen down (forward, later) one screen.
- Ctrl-PgUp UPONE Roll screen up one line.
- Ctrl-PdDn DNONE Roll screen down one line.
-
- Control PrtSc PRTSCN Toggle on/off copying of received text to
- printer, "PRN" shows on far right of mode
- line when activated.
-
- Control-End DUMP Dump image of screen to a disk file or device.
- Default filename is KERMIT.SCN in the current
- directory. Use command SET DUMP to change the
- filename. Screen images are appended to the
- file, separated by formfeeds.
-
- Shift-PrtSc Standard DOS Print-screen, dump screen image to printer.
-
- unassigned HOLDSCRN DEC style Holdscreen, same as typing Control-S.
-
- "Alt -" means hold down Alt and type minus on the upper key rank. This
- switches among the various kinds of emulation but does not change most operat-
- ing parameters of the emulator.
-
- CONNECT ESCAPE COMMANDS:
-
- Type the Kermit escape character (normally "^]"), then one of the keys below:
- (equivalent IBM Verb)
- ? display this short list. HELP
- 0 send a null character. NULL
- B send a BREAK signal. BREAK
- C close connect session & return to Kermit prompt. EXIT
- F dump screen to filespec, default is KERMIT.SCN. DUMP
- H hangup the phone or network connection HANGUP
- L send a Long BREAK signal LBREAK
- M toggle mode line on/off. MODELINE
- P push to DOS. DOS
- Q quit (suspend) logging. LOGOFF
- R resume logging. LOGON
- S show status. STATUS
- Kermit escape character itself: send it to the host.
-
-
- 1.17.3. Responses To Characters Received By the Terminal Emulator
-
- Spaces shown between characters of escape sequences are there for ease of read-
- ing. The actual sequences contain no spaces. Unknown escape sequences of the
- form "ESC char" are absorbed by the emulator without further effect; longer un-
- known escape sequences echo the extra characters.
-
- DEC VT102 functions while in ANSI (VT102) mode, unsupported features marked by
- an asterisk (*):
- Escape Seq Mnemonic Description of Action
-
- ESC D IND Index, moves cursor down one line, can scroll
- ESC E NEL Move cursor to start of line below, can scroll
- ESC H HTS Set one horizontal tab at current position
- ESC M RI Reverse Index, cursor up one line, can scroll
- ESC Z DECID Identify terminal (response is ESC [ ? 6 c)
- ESC c RIS Reset terminal to initial state
- ESC = DECKPAM Enter keypad application mode
- ESC > DECKNPNM Enter keypad numeric mode
- ESC 7 DECSC Save cursor position and attributes
- ESC 8 DECRC Restore cursor from previously saved position
- ESC # 3 DECDHL Double height and width line, top half
- ESC # 4 DECDHL Double height and width line, bottom half
- ESC # 5 DECSWL Single height and width line
- ESC # 6 DECDWL Double width single height line
- ESC # 8 DECALN Test screen alignment, fill screen with E's
- ESC [ Pn @ ICH ANSI insert Pn spaces at and after cursor
- ESC [ Pn A CUU Cursor up Pn lines, does not scroll
- ESC [ Pn B CUD Cursor down Pn lines, does not scroll
- ESC [ Pn C CUF Cursor forward, stays on same line
- ESC [ Pn D CUB Cursor backward, stays on same line
- ESC [ Pn; Pn H CUP Set cursor to row, column (same as HVP)
- ESC [ Ps J ED Erase in display:
- 0 = cursor to end of screen, inclusive
- 1 = start of screen to cursor, inclusive
- 2 = entire screen, reset lines to single
- width, cursor does not move.
- ESC [ Ps K EL Erase in line:
- 0 = cursor to end of line, inclusive
- 1 = start of line to cursor, inclusive
- 2 = entire line, cursor does not move
- ESC [ Pn L IL Insert Pn lines preceding current line.
- ESC [ Pn M DL Delete Pn lines from current downward, incl.
- ESC [ Pn P DCH Delete Pn chars from cursor to left, incl.
- ESC [ Pn; Pn R CPR Cursor report (row, column), sent by terminal
- Example: home position yields ESC [ 1; 1 R
- ESC [ Pn c DA Device attributes (reports ESC [ ? 6 c)
- ESC [ Pn; Pn f HVP Set cursor to row, column (same as CUP)
- ESC [ Ps g TBC Tabs clear, 0 = at this position, 3 = all
- ESC [ 4 h IRM Insert mode on
- ESC [ 20 h LNM Set newline mode (cr => cr/lf)
- ESC [ 4 l IRM Replacement mode on
- ESC [ 20 l LNM Reset newline mode (cr => cr)
- ESC [ ? Ps;...;Ps h SM Set mode, see table below
- ESC [ ? Ps;...;Ps l RM Reset mode, see table below
- Ps Mnemonic Mode Set (h) Reset (l)
- 0 error (ignored)
- 1 DECCKM cursor keys application cursor/numeric
- 2 DECANM ANSI/VT52 ANSI/VT102 VT52
- 3 DECCOLM Columns +132 col 80 col
- 4 DECSCLM *Scrolling smooth jump
- 5 DECSCNM Screen reverse video normal
- 6 DECOM Origin relative absolute
- 7 DECAWM Autowrap on off
- 8 DECARM *Autorepeat on off
- 9 DECINLM *Interlace on off
- 18 DECPFF Printer termination character, use FF if set
- 19 DECPEX Printer extent,set=screen,off=scrolling region
- 34 n/a Invoke macro: TERMINALS TERMINALR
- 38 n/a Graphics (Tek) ++graphics text
- + See comments on EGA boards.
- ++ Ignored if DISABLE TEK has been given.
- ESC [ Pn i MC Printer controls (Media Copy)
- 0 Print whole Screen
- 4 Exit printer controller (transparent print)
- 5 Enter printer controller (transparent print)
- ESC [ ? Pn i MC Printer controls (Media Copy)
- 1 Print line containing cursor
- 4 Exit auto print (stop echoing to printer)
- 5 Enter autoprint (echo screen chars to printer)
- ESC [ Ps;...;Ps m SGR Select graphic rendition
- 0 = all attributes off (#'s 1, 4, 5, 7)
- 1 = bold, intensify foreground
- 4 = underscore (reverse video on IBM CGA)
- 5 = blink
- 7 = reverse video
- non-DEC extensions: 30-37 = foreground color = 30 + colors
- 40-47 = background color = 40 + colors
- colors: 1 = red, 2 = green, 4 = blue
- ESC [ Ps n DSR Device Status Report.
- Response from VT100: 0=ready, 3=malfunction.
- Command to VT100: 5=report status with DSR,
- 6=report cursor position using CPR sequence.
- ESC [ Ps;...;Ps q DECLL Load LEDs, Ps = 0 means clear LED #1-4
- Ps = 1,2,3,4 sets LED # 1,2,3,4 on status line.
- ESC [ Pn; Pn r DECSTBM Set top and bottom scrolling margins, resp.
- ESC [ r resets margin to full screen.
- ESC [ sol x DECREQTPARM Request terminal parameters, see table below
- ESC [ sol; par; nbits; xspeed; rspeed; clkmul; flags x
- DECREPTPARM Reports terminal parameters
- sol = 0 request; terminal can send unsolicited
- reports - supported as sol = 1 below.
- sol = 1, request; term reports only on request
- sol = 2, this is a report (DECREPTPARM)
- sol = 3, terminal reporting only on request
- par = 1 none, 2 space, 3 mark, 4 odd, 5 even
- nbits = 1 (8 bits/char), 2 (7 bits/char)
- xspeed,rspeed = transmit & receive speed index
- 0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120,128 correspond to speeds of
- 50,75,110,134.5,150,200,300,600,1200,1800,2000,2400,3600,4800,9600,19200,
- and 38400 baud. clkmul = 1 (clock rate multiplier is 16)
- flags = 0-15 (Setup Block #5), always 0 here
- ESC [ 2; Ps y DECST *Confidence tests - not supported
- SCS Select character sets.
- ESC ( A SCS G0 points to UK symbols
- ESC ) A SCS G1 points to UK symbols
- ESC ( B SCS G0 points to ASCII symbols
- ESC ) B SCS G1 points to ASCII symbols
- ESC ( 0 SCS G0 points to special (line drawing) graphics
- ESC ) 0 SCS G1 points to special (line drawing) graphics
- ESC ( 1 SCS G0 points to alt char ROM - national symbols
- ESC ) 1 SCS G1 points to alt char ROM - national symbols
- ESC ( 2 SCS G0 points to alt graphics ROM - as ESC ( 0
- ESC ) 2 SCS G1 points to alt graphics ROM - as ESC ) 0
- (Separate graphics used for DEC and Heath)
- ^E ENQ *Answerback message (not supported)
- ^G BELL Sound VT102 style beep
- ^H BS Backspace, move cursor left one character
- ^I HT Horizontal tab, move cursor to next tabstop
- ^J LF Linefeed, move cursor down one line
- ^K VT Vertical Tab, treated as a line feed
- ^L FF Formfeed, treated as a line feed
- ^M CR Carriage return, move cursor to col 1
- ^N SO Select usage of G1 character set
- ^O SI Select usage of G0 character set
- ^X CAN Cancel escape sequence in progress
- ^Z SUB Treated as a CAN
-
- Other extensions:
- ESC [ 25; Pc f VT52/VT100 move cursor to 25th line.
- ESC [ 25; Pc H VT52/VT100 move cursor to 25th line.
- (These will disable Kermit's own status line.)
- ESC * char VT200 series graphics command, ignored.
- ESC ^L Enter Tektronix sub-mode, clear Tek screen.
- (This is ignored if DISABLE TEK has been given)
-
-
- 1.17.4. DEC VT102 Functions While in VT52 Mode
-
- Escape sequence Description of action
-
- ESC A Cursor up
- ESC B Cursor down
- ESC C Cursor right
- ESC D Cursor left
- ESC F Enter graphics mode
- ESC G Exit graphics mode
- ESC H Cursor home
- ESC I Reverse line feed
- ESC J Erase to end of screen
- ESC K Erase to end of line
- ESC V Print cursor line
- ESC X Exit Printer Controller mode, transparent print
- ESC Y row column Direct cursor address, offset from space
- ESC W Enter Printer Controller mode,transparent print
- ESC Z Identify (response is ESC / Z)
- ESC ^ (caret) Enter autoprint mode (printer echoes screen)
- ESC _ (underscore) Exit autoprint mode
- ESC ] Print Screen
- ESC = Enter alternate keypad mode
- ESC > Exit alternate keypad mode
- ESC < Enter ANSI mode (changes to VT102)
-
-
- 1.17.5. Heath-19 Functions While in Non-ANSI Mode
-
- Escape seq Mnemonic Description of action
-
- ESC A HCUU Cursor Up
- ESC B HCUD Cursor Down
- ESC C HCUF Cursor Forward, stays on same line
- ESC D HCUB Cursor Backward, stays on same line
- ESC E HCD Clear display
- ESC F HEGM Enter Graphics mode
- ESC G HXGM Exit Graphic mode
- ESC H HCUH Cursor Home
- ESC I HRI Reverse Index
- ESC J HEOP Erase to end of page
- ESC K HEOL Erase to end of line
- ESC L HIL Insert line
- ESC M HDL Delete line
- ESC N HDCH Delete character
- ESC O HERM Exit Insert Char mode
- ESC Y row col HDCA Direct cursor addressing, offset from space
- ESC Z HID Identify (response is ESC / K which is a VT52)
- ESC b HBD Erase Beginning of display
- ESC j HSCP Save cursor position
- ESC k HRCP Set cursor to saved position
- ESC l HEL Erase entire line
- ESC n HCPR Cursor Position Report request
- ESC o HEBL Erase beginning of line
- ESC p HERV Enter Reverse Video mode
- ESC q HXRV Exit Reverse Video mode
- ESC r Bn HMBR *Modify baud rate - not supported
- ESC t HEKS *Enter Keypad shifted mode, not supported
- ESC u HXKS *Exit Keypad shifted mode, not supported
- ESC v HEWA Wrap around at end of line
- ESC w HXWA Discard at end of line
- ESC x Ps HSM Set Mode. See table below
- ESC y Ps HRM Reset Mode. See table below
-
- Ps Mnemonic Mode Set (x) Reset (y)
- 1 HSM/HRM 25th line enabled +disabled
- 2 *keyclick off on
- 3 *holdscreen enabled disabled
- 4 cursor type block underline
- 5 cursor on/off on off
- 6 *keypad-shifted shifted unshifted
- 7 alt app keypad enabled disabled
- 8 *linefeed lf=>cr/lf lf=>lf
- 9 newline mode cr=>cr/lf cr=>cr
- + disabling the 25th line also clears it
-
- ESC z HRAM Reset to power-up configuration
- ESC = HAKM Enter Alternate Keypad mode
- ESC > HXAM Exit Alternate Keypad mode
- ESC < HEAM Enter ANSI mode (ESC [ stuff)
- ESC @ HEIM Enter Insert Char mode
- ESC [ HEHS *Enter Hold Screen mode, not supported
- ESC \ HXHS *Exit Hold Screen mode, not supported
- ESC { and } HEK, HDK *Keyboard enable/disable, not supported
- ESC ] HX25 *Transmit 25th line, not supported
- ESC # HXMP *Transmit page, not supported
-
-
- 1.17.6. Heath-19 Functions While in ANSI Mode
-
- Escape Seq Mnenonic Description of Action
-
- ESC [ s PSCP Save cursor position & attributes
- ESC [ u PRCP Restore cursor position & attributes
- ESC [ z PRAM Reset to power-up configuration
- ESC [ 2 J ED Erase entire screen but do not move cursor;
- regular Heath-19 moves cursor to Home.
- ESC [ ? 2 h PEHM Revert to normal Heath-19 non-ANSI mode
- ESC [ > Ps h SM Same as ESC x Ps
- ESC [ > Ps l RM Same as ESC y Ps
- Plus most of the ANSI escape sequences listed for the VT102.
- 1.17.7. Tektronix 4010/4014 Graphics Terminal Functions
-
- MS-Kermit's Tektronix 4010 emulator responds to ordinary text, several special
- control codes (for drawing lines and dots), and several escape sequences, as
- shown in Table 1-10. The commands SET DEBUG and SET TRANSLATION INPUT are ef-
- fective in Tek mode.
-
- -------------------------------------------------------------------------------
-
- Control Code Action
- FS, Control-\ Backslash draw dots
- GS, Control-] Right square bracket draw lines
- RS, Control-^ Caret Draw dots incrementally
- US, Control-_ Underscore Display text
- BEL, Control-G Beep, make a noise
- BS, Control-H Backspace, non-destructive
- HT, Control-I Tab, convert to single space
- LF, Control-J Line feed, go down one line
- VT, Control-K Move up one text line
- FF, Control-L Clears the screen
- CR, Control-M Carriage return, start of line
- CAN, Control-X Exit Tek sub-mode, or ignore
- DEL, RUBOUT Delete code, same as BS
-
- Escape Sequence Action
- ESC Control-E Send a status report, turn on Bypass mode
- ESC Control-L Clear the screen (enter sub-mode from VT102)
- ESC Control-X Turn on Bypass mode
- ESC Control-Z Activate crosshairs (GIN mode) and Bypass mode
- ESC Z Send terminal identification
- ESC ` (accent grave) Use solid lines in drawing
- ESC a through ESC e Use dashed line patterns:
- a=fine dots, b=short dashes
- c=dash dot, d=long dash dot
- e=dash dot dot.
- ESC [ Pn ; Pn m Set ANSI colors. Same as for VT102.
- ESC [ ? 3 8 l Exit Tek mode (become text terminal, VT102 etc)
- ESC [ ? 3 8 h Enter Tek mode (from VT102 mode)
-
- Table 1-10: Response of MS-Kermit Tektronix Emulator to Received Characters
-
- -------------------------------------------------------------------------------
-
- In the table, US is the name for the ASCII character Control-Underscore, 31
- decimal. Text is written starting with the last drawn point being the lower
- left corner of the first 8 by 8 character cell. The drawing position is up-
- dated by 8 dots to the right for each character, and lines wrap at column 80
- (column 90 for Hercules boards). If text extends "below the screen" the sign
- "More >" is shown at the bottom right corner and the user needs to press a key
- to continue. Then the screen will be cleared and the new text will start at
- the top of the screen (no scrolling is done in graphics mode). A real Tek 4010
- begins new text at column 40 and will overwrite dots from older material. The
- high resolution EGA screen and the Hercules screen will hold 43 lines, the CGA
- and Monochome screens hold 25 lines, and the AT&T screen holds 50 lines. Her-
- cules screens are 90 characters wide and others are 80 characters wide.
- Monochrome systems lack graphics so the text is the normal hardware character
- font placed at the nearest normal 80x25 location (similarly, "drawing" on
- Monochrome systems is achieved by using a text plus ("+") sign where a dot
- would appear). Text mode is interrupted by the drawing commands discussed
- below.
-
-
- Bypass Mode:
-
- Certain Tektronix commands turn on or off "Bypass" mode whereby incoming text
- is not displayed on the screen. Removal of echos of the GIN mode, discussed
- below, is the major use of Bypass. Bypass mode is turned on by receipt of ESC
- Control-E, ESC Control-X, and ESC Control-Z and it is turned off upon receipt
- of BEL, LF, CR, US, other escape sequences, and resetting the terminal.
-
-
- Drawing commands GS, FS, RS:
-
- 1. Draw a line or move to a point: GS <xy xy ... xy>
-
- GS is the name for ASCII character Control-] (right square bracket), decimal
- 29. <xy> stands for an encoded x,y coordinate as explained below. One or more
- x,y coordinates may follow GS and line segments are drawn from point to point.
- The first point is reached without drawing so that GS and the initial <xy> is a
- simple "move-to" command rather than a "draw-to" command. Lines may be con-
- structed from six dash patterns described in Table 1-10. <xy> coordinates are
- encoded by separating the 10 bit value of x and of y into 5 bit components and
- then adding two high bits to each to identify which component is being
- represented: high-y, low-y, high-x, or low-x. They are transmitted in that or-
- der, with the low-x byte always sent last. In fact, bytes may be omitted if
- they do not change from point to point, provided that low-x is always sent.
- These bytes range from ASCII space (32 decimal) to ASCII DEL (127 decimal).
- Details are given below, and summarized in Table 1-12. This mode completes
- when a new command or a CR LF (carriage return, line feed) arrives; escape se-
- quences are processed transparently but other control codes are ignored. The
- interrupting character is accepted and processed next.
-
- 2. Draw dots at given locations: FS <xy xy ... xy>
-
- FS is the name for the ASCII character Control-\ (backslash), decimal 28. <xy>
- is in the same form as above. A dot is drawn at each x,y point. This mode
- completes when a new command or a CRLF character arrives; escape sequences are
- processed transparently but other control codes are ignored. The interrupting
- character is accepted and processed next.
-
- 3. Draw dots from the current location: RS <pen> <direction> <direction> ...
- <direction>
-
- RS is the name for the ASCII character Control-^ (caret), decimal 30. pen is
- the character Space (32 decimal) to move without drawing or P (80 decimal) to
- draw while moving. <direction> is one of the letters A, E, D, F, B, J, H, I as
- shown in Table 1-11.
-
- -------------------------------------------------------------------------------
-
- direction Move One Tek Dot This Way
- A East (right)
- E East and North F D E
- D North (up)
- F North and West B * A (* is current location)
- B West
- J South and West J H I
- H South
- I South and East
-
- Table 1-11: Tektronix Dot-Drawing Commands
-
- -------------------------------------------------------------------------------
-
- Example: RS P J J J (no spaces here, naturally) means draw three dots in the
- southwest direction, stepping to each in turn. This mode completes when a new
- command or a non-<pen> or non-<direction> character arrives; the interrupting
- character is accepted and processed next.
-
-
- Graphics INput (GIN) mode:
-
- Graphics input mode is entered when ESC Control-Z is received. A crosshair is
- drawn on the screen and may be moved by the numeric keypad arrows (fine scale
- motion) or the Shift key and these arrows (coarse scale motion). Pressing an
- ASCII-producing key sends the position of the crosshairs to the host as the se-
- quence of: pressed key, X coordinate, Y coordinate, carriage return, then
- removes the crosshairs, and then returns to text mode. The coordinates are en-
- coded by splitting them into five bit fields, adding an ascii space (20H) to
- each, and are sent as high-y, low-y, high-x and low-x bytes. Bypass mode is ac-
- tive while the report is sent to supress echos of the report. One may prema-
- turely exit GIN mode by typing Control-C or Control-Break. Shift-PrtSc (DOS
- screen dump) remains active, however.
-
-
- Status or Position Report:
-
- ESCAPE Control-E requests a status report from the emulator. Tek terminals
- have many sub-fields. Kermit-MS sends a byte of 24 hex for being in text mode
- or 20 hex otherwise, followed by the encoded X then Y coordinates and a car-
- riage return. Coordinates are encoded 5 bits at a time similar to the GIN
- report.
-
-
- Identification Report:
-
- ESCAPE Z requests terminal identification, as for VT52 and VT102. Currently
- this report is the 10 character sequence IBM_TEK ESCAPE / Z (no spaces).
-
-
- Screen Capturing:
-
- Kermit does not implement a graphics screen capture facility. There are many
- such Terminate-and-Stay-Resident (TSR) programs in circulation, as either
- public domain offerings or parts of commercial packages (Paint programs and
- even GRAPHICS.COM from DOS). High resolution EGA screens require more than the
- GRAPHICS.COM program. MS Windows tells the program (Kermit-MS) the system is
- using a pure text-only monochrome adapter so dots are shown as plus signs.
-
- Although Kermit cannot save graphics screens directly (e.g. via the ^]F
- connect-mode command), the received Tektronix escape sequences can still be
- logged to a PC file using the LOG SESSION command. The resulting log cannot be
- "played back" directly on the PC, but it can be transferred to the host and run
- through Kermit's Tek emulator again, just like a character-mode Kermit session
- log.
-
-
- VGA Modes:
-
- Considerable effort went into ensuring the graphics display would work
- automatically and not damage monitors. Thus, Kermit-MS safely tests the active
- display adapter for its kind and capabilities before starting graphics mode.
- Recent VGA and EGA+ display boards are capable of the 640 by 480 scan-line
- 16-color "VGA" mode which is now available on IBM PS/2 computers. The Tek
- emulator will happily run with 480 scan lines, but: the normal 256KB of video
- memory is sufficient to save only the top 407 lines of the graphics image. So
- activating this higher resolution mode is accomplished by the command SET TER-
- MINAL GRAPHICS VGA and is not done automatically (the VGA is used in EGA mode).
- The 320 by 200 line by 256 color MCGA mode has too coarse a resolution for
- graphics line drawing and is not supported by Kermit.
-
-
- Coordinate Encoding:
-
- Coordinate 0,0 is the lower left corner and the X axis is horizontal. Tektronix
- positions are mapped into the typically 640 dots wide by 200 or 350 dots high
- PC screen and thus adjacent Tek positions may yield the same PC screen dot.
-
- 4010-like devices use positions from 0 to 1023 for both X and Y, although only
- 0 to 779 are visible for Y due to screen geometry. The Tek screen is 10.24 by
- 7.80 inches and coordinates are sent as 1-4 characters.
-
- 4014-like devices use positions 0 to 4095, but each movement is a multiple of 4
- positions unless the high-resolution LSBXY are sent. This makes it compatible
- with the 4010 in that a full sized plot fills the screen. The emulator accepts
- the LSBXY components but does not use them.
-
- The various modes are summarized in Table 1-12, in which the following notation
- is used:
-
- HIX, HIY = High order 5 bits of a 10 or 12 bit position.
- LOX, LOY = Middle order 5 bits of position (low order of Tek 4010).
- LSBXY = Low order 2 bits of X + low order 2 bits of Y (4014 mode),
- recognized by the Tek emulator but not used to calculate position.
-
- -------------------------------------------------------------------------------
-
- Hi Y Lo Y Hi X LSBXY Characters Sent (Lo-X Always Sent)
- Same Same Same Same Lo-X
- Same Same Same Diff LSB, Lo-Y, Lo-X 4014
- Same Same Diff Same Lo-Y, Hi-X, Lo-X
- Same Same Diff Diff LSB, Lo-Y, Hi-X, Lo-X 4014
- Same Diff Same Same Lo-Y, Lo-X
- Same Diff Same Diff LSB, Lo-Y, Lo-X 4014
- Same Diff Diff Same Lo-Y, Hi-X, Lo-X
- Same Diff Diff Diff LSB, Lo-Y, Hi-X, Lo-X 4014
- Diff Same Same Same Hi-Y, Lo-X
- Diff Same Same Diff Hi-Y, LSB, Lo-Y, Lo-X 4014
- Diff Same Diff Same Hi-Y, Lo-Y, Hi-X, Lo-X
- Diff Same Diff Diff Hi-Y, LSB, Lo-Y, Hi-X, Lo-X 4014
- Diff Diff Same Same Hi-Y, Lo-Y, Lo-X
- Diff Diff Same Diff Hi-Y, LSB, Lo-Y, Lo-X 4014
- Diff Diff Diff Same Hi-y, Lo-Y, Hi-X, Lo-X
- Diff Diff Diff Diff Hi-y, LSB, Lo-Y, Hi-X, Lo-X 4014
- Kind code for byte: 20h 60h 60h 20h 40h
- (transmitted left to right)
-
- Table 1-12: MS-Kermit Tektronix Coordinate Interpretation
-
- -------------------------------------------------------------------------------
-
- Note that LO-Y must be sent if HI-X has changed so that the Tektronix knows the
- HI-X byte (in the range of 20h-3Fh) is HI-X and not HI-Y. LO-Y must also be
- sent if LSBXY has changed, so that the 4010 will ignore LSBXY and accept LO-Y.
- The LSBXY byte is
-
- 60h + (MARGIN * 10h) + (LSBY * 4) + LSBX
-
- MARGIN is 0 here and refers to splitting the screen left and right for text
- rollover, which the Kermit Tek emulator does not do.
-
-
- Tek 4010 Example:
-
- Suppose <xy> is point y = 300, x = 500 in Tektronix coordinates. Split each
- 10-bit coordinate into 5-bit groups, add add the Kind code to each. Send the X
- part last.
-
- HI-Y LO-Y HI-X LO-X
- Y=300d=012Ch= 01001 01100 X=500d=01F4h= 01111 10100
- +Kind code +100000 +1100000 +kind code +100000 +1000000
- Binary 101001 01101100 101111 1000100
- ASCII ) l / D
-
- So <xy> = (500,300) is sent or received in a GS command as ")l/D". An example
- in C (program fragments):
-
- #define ESC 27
- #define GS 29
- #define US 31
- FILE *fp; /* File descriptor for terminal */
- . . .
-
- fputc( GS, fp); coord( 75, 65); /* Move to 75,65 */
- fputc( ESC, fp); fputs("[31m", fp); /* Set foreground to red */
- fputc( US, fp); fputs("A House", fp); /* Annotate at 75,65 */
- fputc( ESC, fp); fputs("[33m", fp); /* Set foreground to yellow */
- fputc( GS, fp); /* Now draw lines... */
- coord( 50, 50); coord(300, 50); /* Bottom side */
- coord(300,200); coord( 50,200); /* Right wall, top */
- coord(175,250); coord(300,200); /* Roof */
- fputc( GS, fp); /* Start a new line */
- coord( 50, 50); coord( 50,200); /* Left wall at 50,50 */
- fputc( ESC, fp); fputs("[37m", fp); /* Set foreground to white */
- . . .
-
- coord(x, y) int x, y; { /* Send x,y coordinates to Tek 4010 */
- fputc((y / 32) + 32, fp); /* High y */
- fputc((y % 32) + 96, fp); /* Low y */
- fputc((x / 32) + 32, fp); /* High x */
- fputc((x % 32) + 64, fp); /* Low x */
- }
-
-
- 1.18. IBM PC Kermit Technical Summaries
-
- Under normal circumstances, MS-Kermit takes advantage of the computer's
- hardware, and often bypasses DOS (sometimes even BIOS) to achieve high perfor-
- mance, to exercise special machine features, or to produce an attractive screen
- display. Thus, it is not in all respects a "well behaved" DOS program.
-
- MS-Kermit redirects interrupts 0BH (COM2/4) or 0CH (COM1/3), 14H (serial port),
- 23H (Control-Break), 24H (DOS Critical Error) and returns them when done. It
- uses the BIOS for keyboard, video display, and system information interrupts.
- It examines segment 40H for EGA operating modes and it does direct screen reads
- and writes. Memory for the screen roll backbuffer is negotiated with DOS to
- leave room for a second copy of COMMAND.COM to run tasks within Kermit; about
- 100KB to 148KB is needed for the entire program. Video page zero is normally
- used, but page one is employed to save screens with non-standard dimensions.
- Hercules and other graphics mode displays are supported only in Tektronix ter-
- minal mode. Kermit's timing delays are dynamically adjusted each time the
- serial port is started to accomodate machines of different speeds; duration of
- the normal software timing loop is measured with the hardware timer chip and
- looping is adjusted to produce uniform delays on 8088 through 80386 machines.
-
-
- 1.18.1. Kermit-MS/IBM on Local Area Networks
-
- The IBM version of Kermit-MS has support for the IBM Local Area Network NetBIOS
- (and emulators) interface, Interrupt 5CH, with additional support for selected
- vendor specific features (presently just AT&T STARLAN), activated by the SET
- PORT NET command, described above, direct support for the Ungermann Bass Net
- One proprietary Interrupt 14h interface, and via SET PORT BIOSn support for
- many other networks which intercept the Bios serial port interrupt 14h. Com-
- munications across a LAN occurring through the NetBIOS interface use virtual
- circuits (Sessions), named nodes, and conventional NetBIOS packets. Kermit-MS
- does not use LAN terminal interface packages nor the Redirector or similar
- functions.
-
- Kermit LAN operations are harmonious with normal network activity and many
- pairs of Kermits can communicate simultaneously. Kermit does not use LAN File
- Server functions, since these are proprietary and vendor-specific. Kermit can,
- however, send and receive files to/from a LAN file server.
-
- Since Kermit uses the standard NetBIOS interrupt 5CH interface, it will run on
- most LANS including IBM PC Net, IBM Token Ring, AT&T STARLAN, and many others,
- and will run with Novell NetWare software. Presently, Kermit knows some
- details of STARLAN and is able to send a BREAK across the net and can use ISN
- node names with long path parts. If STARLAN is not operating these features
- are not available. As more detailed information becomes available special fea-
- tures of other networks can be built-in.
-
- The sequence of operations is similar for a client or server Kermit. The SET
- PORT NET command is issued by both. This command causes Kermit to validate the
- presence of the Interrupt 5CH interface, test for vendor additions, test for a
- session already underway, establish and display a unique Kermit node name, but
- not make a network session. The node name of the remote server machine follows
- the word NET; this is not to be confused with our own node name discussed
- below.
-
- If an earlier LAN session is still active then the current remote node name
- field of the command is examined for presence of a name. If a name is given
- then Kermit asks the user whether to RESUME the session or start a NEW one.
- Starting a new one results in Kermit hanging up the old session (HANGUP) before
- proceeding; resuming an old one requires no further work at this point.
-
- When Kermit attaches to the network for the first time it needs to select a
- unique local node name so that two systems can form a Session by using these
- names as addresses. Kermit uses a simple algorithm to make the name. Kermit
- probes the network adapter board/software for the name of the local system. If
- the name is present Kermit makes its own name by appending a dot K (.K) to the
- local name. If the local name is absent then Kermit first tries a standard name
- of "mskermit.K"; should the network report that the name is not unique (another
- node is using the name) then the user is asked to choose a name. This process
- continues until a unique name is obtained or the user decides to quit. The
- final Kermit node name is reported on the screen; client Kermits will need to
- know the name of the server Kermit.
-
- Communication across the LAN begins differently for client and server Kermits.
- The server must be started first, by simply placing a Kermit in server mode.
- This results in a network Listen request being posted so that arriving packets
- with the correct node name can be delivered to the server Kermit. Next, a
- client Kermit tries to connect to the server by issuing a Kermit server command
- to the proper node name (as given in the client's SET PORT NET node command);
- REMOTE WHO is a satisfactory choice. The client machine actually issues a net-
- work Call to the server's node name to make a connection and then follows it
- with data packets holding the Kermit server request. The initial exchange of
- packets establishes a particular virtual circuit between the two nodes. If the
- connection cannot be started then the client Kermit reports this fact to the
- user. The most common causes of a failure at this point are:
-
- 1. The client Kermit did not specify the correct server Kermit node
- name (spelling errors, wrong case for letters, missing dot K),
-
- 2. One or both machines are using a network adapter board which is not
- the first in the machine; Kermit uses only the first board,
-
- 3. The LAN NetBIOS emulator does not fully support IBM standard virtual
- circuits,
-
- 4. The server machine was not started on the network before the client.
-
- A virtual circuit will be broken if a sender or receiver gets no response to a
- request within a short time interval set by the LAN hardware/software.
- However, the LAN procedures within Kermit automatically reestablish the circuit
- transparently to the user when new information is communicated; the last used
- remote node name is remembered internally for this purpose. This also means
- the server Kermit will respond to a connection from a new client Kermit if the
- first client is idle for say a minute or so. A session can be terminated by the
- user by issuing the HANGUP command or by exiting Kermit. A session will not be
- broken this way if the user on the client Kermit changes to a regular serial
- port.
-
- Finally, when Kermit returns control to DOS, but not via the PUSH command, its
- unique Kermit node name is removed from the network adapter board.
-
- During network communications Kermit uses network packets holding 256 bytes of
- data. If both Kermits are given the command
-
- SET RECEIVE PACKET 1000
-
- then the network and Kermit will be used to best efficiency. Experience has
- shown that the client Kermit should have its TIMER OFF because the server may
- be asked to do an operation via DOS which does not complete before the client
- side would timeout. An observation of some token passing networks indicates
- that Kermit packets slightly longer than 256, 512, etc bytes result in marked
- slowing down because the remaining small piece is not sent until a net timer
- expires. Carrier sense (Ethernet, STARLAN) boards seem to be more agressive
- and export small packets immediately.
-
- Support for the Ungermann-Bass Net/One network, with its NET Command Interface
- (NETCI), was contributed by Renne Rehmann and Henrik Levkowetz. In addition to
- the SET PORT NET [nodename] command, which may be used to connect to other
- nodes on the net with the standard NetBIOS calls, NETCI provides the means to
- connect directly to serial ports on the Ungermann-Bass network. Use SET PORT
- UB-Net1 and enter Connect mode. The NETCI prompt, >>, should appear and all the
- usual NETCI commands (connect, get, list, resume, abandon, examine, identify,
- set, logout, quit) may be selected. This line is disconnected when Kermit ex-
- its. However, the line may be put on hold, exit Kermit, then later restart Ker-
- mit and give the SET PORT UB-Net1 and CONNECT commands, and Resume the line.
-
- Some LANs intercept the normal serial port Bios interrupt 14H and masquerade as
- a modem. This service can be engaged within Kermit by the SET PORT BIOSn com-
- mand, where n is 1, 2, 3, or 4, as appropriate for the LAN software. To work
- properly the LAN must support the same use of registers as the system Bios.
- Several X.25 and TCP/IP packages have been operated successfully with the SET
- PORT BIOSn command. Since this channel appears to Kermit as a simple software
- level serial port, Kermit provides neither interrupt driven i/o nor LAN session
- support.
-
- Kermit can access files on the LAN file server via DOS even while using the LAN
- as a communications medium. Network administrators should note this point be-
- cause a user operating Kermit in Server mode can allow his or her file server
- directories to be available to other network users also running Kermit, without
- additional security checking of the other users. The network drives visible to
- the Server Kermit can become devices available for Kermit-to-Kermit file trans-
- fers, etc, unless the DISABLE command is used to confine access to the current
- disk and directory. A corollary is when files are accessible to DOS commands
- they can become public.
-
-
- 1.18.2. Use of Kermit-MS with External Device Drivers
-
- It is often desirable to supplement or modify the behavior of a DOS program by
- loading it with special external device drivers. These drivers may operate at
- either the DOS or BIOS level. When Kermit-MS accesses the BIOS directly,
- DOS-level drivers are ineffective. When Kermit accesses the hardware directly,
- both the DOS and the BIOS level drivers are bypassed. Kermit-MS provides
- several mechanisms to allow these external drivers to operate as intended.
-
- Here are a few examples:
-
- - IBM's ANSI.SYS console driver operates at the DOS level. It allows
- the major IBM PC keys to be redefined, and also interprets selected
- ANSI-format escape sequences for screen control. It works fine at
- Kermit-MS command level, except SHOW KEY does not recognize strings
- assigned to keys via ANSI.SYS, and fine at CONNECT level. To use
- ANSI.SYS at CONNECT level, issue the Kermit-MS commands SET KEY OFF
- (to read keys via DOS) and SET TERMINAL NONE (to display characters
- through DOS).
-
- - Blind people often have speaking or Braille machines attached to
- their PCs. DOS-level device drivers are generally used to redirect
- screen output to these devices, which works OK at DOS or MS-Kermit
- command level. SET TERMINAL NONE will allow this redirection to take
- place during CONNECT. But these devices also need to have the
- computer's output appear as a coherent stream of text, so users
- should also take care to inform the remote host to format its output
- for a "dumb" or hardcopy terminal. In addition, Kermit-MS' normal
- file transfer display does not mesh well with these devices, but that
- can be remedied using SET DISPLAY SERIAL.
-
- - People with motor impairments may be using special keyboard replace-
- ments supported by DOS-level device drivers. As with ANSI.SYS,
- Kermit-MS may be directed to use such keyboard drivers with the com-
- mand SET KEY OFF.
-
- - Other keyboard drivers are available that work, like Kermit-MS, at
- BIOS level. Examples include ProKey and SuperKey. These may be used
- at DOS or Kermit-MS command level as well as during CONNECT.
-
- - Conceivably, drivers exist that allow DOS communication programs to
- emulate terminals other than ANSI. You should be able to use them,
- if they exist, in conjunction with Kermit-MS by telling Kermit to SET
- TERMINAL NONE, but the speed may not be high because of the interven-
- ing DOS calls.
-
-
- 1.18.3. Kermit-MS/IBM Serial Port Information
-
- Kermit-MS for IBM PC's and compatibles does testing of serial ports before use.
- This section describes those tests so users may understand what Kermit does.
-
- When a serial port is selected by the SET PORT COMx command Kermit looks at low
- memory addresses in segment 40H assigned to hold the base address of each COMx
- port; COM1 is in word 40:0H, COM2 is in word 40:2H, and so on. If the value in
- the appropriate word is binary zero then Kermit declares the port to be un-
- available. Otherwise, Kermit runs read-only (i.e., safe) tests at the base ad-
- dress to validate the presence of an official 8250 UART chip. If the tests
- fail Kermit indicates it will do i/o through the slow Bios pathway; some PC
- clones need to work this way even though the Bios has speed problems even at
- 1200 baud. Otherwise, interrupt driven i/o will be done through the 8250 UART
- (that is, very fast).
-
- There is a special case when a communications board is present, set for COM2,
- but a normal COM1 serial port is not. Kermit detects this situation.
-
- Many machines now have more than two serial ports, but until recently there has
- been no standard about addresses for COM3 and COM4. PC DOS 3.30 does not as-
- sign them either because it is really a problem of the system ROM Bios boot
- code run when the power is turned on. However, Kermit will use COM3 and/or
- COM4 if the base address of a port is placed in low memory words 40:4H (COM3)
- or 40:6H (COM4); the tests described above are then carried out. One restric-
- tion is that the Interrupt ReQuest number (IRQ in the serial port board manual)
- must be either IRQ4 or IRQ3. Kermit attempts to locate which line is correct
- with a short test. If the test is not successful it uses the IRQ4 for COM3
- (and for COM1) and IRQ3 for COM4 (and for COM2) on the PC/AT, and on the PS/2
- it uses IRQ3 for COM2, COM3, and COM4. Check the board and its manual. DOS
- utility DEBUG can be used to create a short program to insert the board's ad-
- dresses into the segment 40H memory locations; a sample program is given below.
-
- -------------------------------------------------------------------------------
-
-
- Serial Port Address IRQ Line Conventions
- COM1 03F8H 4 IBM standard
- COM2 02F8H 3 IBM standard
- COM3 ? 4 (3 for PS/2) Board
- COM4 ? 3 Board
-
- Table 1-13: IBM PC/XT/AT Serial Port Numbers
-
- -------------------------------------------------------------------------------
-
- The addresses shown as query marks are to be found in the board's reference
- manual; values such as 2E8H and 2E0H would be common. However, there is no
- standard for anything to do with COM3 and COM4 on non-PS/2's.
-
- Assuming that you have selected an address in harmony with the rest of the sys-
- tem (good luck on that part), set the board's switches or jumpers, and use
- DEBUG to insert the address(es) in segment 40H memory. The example below
- creates a small program named SETCOM3.COM to put address 02E8H into the memory
- word 40:04H for COM3 and writes the program to drive A. (Disregard the xxxx
- items below):
-
- A> DEBUG don't type these comments
- -n a:setcom3.com sets name of output file
- -a assemble command
- xxxx:100 mov ax,40 value 40h
- xxxx:103 mov es,ax put it into register es
- xxxx:105 mov ah,02 the 02 part of 02E8H
- xxxx:107 mov al,e8 the E8 part of same
- xxxx:109 es:
- xxxx:10A mov [4],ax store in 40:4 for com3 ([6] for com4)
- xxxx:10D int 20 return to DOS
- xxxx:10F blank line to end assemble mode
- -r cx show contents of register cx
- CX 0000
- : 0f set register cx to write 0fh bytes
- -w write material to the disk file
- -q quit debug
- A> DEBUG setcom3.com
- -u unassemble to see if all is well
- -q quit debug
-
- Note, for COM4, use [6] above rather than [4], and of course employ your
- board's port address in place of 02E8H (check the manual). Finally, try it:
-
- A> setcom3 run the program
- A> DEBUG now see what's down there
- -d 40:00 display bytes in seg 40H
-
- ( Shows many bytes. See yours? Good. )
-
- -q
- A>
-
- A small side effect noted in practice is the first time the extra port is used
- there may be garbage from it. Just return to the Kermit prompt and try again,
- if necessary SET PORT to the other COM lines momentarily, all should be well
- the second time.
-
- More technical comments, for those with an interest. When Kermit finishes with
- a port it disables interrupts for that serial port and returns the IRQ signal
- line to its state found when Kermit started since many devices can share the
- same Interrupt ReQuest line but only one device at a time can be active on it.
- If you find that transmissions are good but there is no reception then another
- device has stolen the IRQ; disable it or find a guru. Kermit will work with
- non-standard addresses for COM1 and COM2 but the IRQ's must be as in the table
- above. Accessing a non-existent port produces a message and all communications
- are discarded safely in the bit bucket.
-
-
- 1.18.4. CTTY COMx for IBM Machines
-
- The DOS command CTTY COMx redirects the standard input and output from the
- keyboard and screen, respectively, to the indicated communications channel. If
- a Kermit Server is operated this way, "through the back port", then both DOS
- and Kermit can access the port hardware simultaneously; a deadlock develops on
- IBM machines. The items below refer to only the IBM version of Kermit-MS.
-
- Kermit-MS/IBM version successfully resolves the deadlock in the following man-
- ner. When Kermit requires the serial port it also attaches itself to Interrupt
- 16H, the Bios RS232 serial port routine. Code within Kermit receives the DOS
- serial port requests via Interrupt 14H and either passes the request to the
- Bios if the COM line is not that used by Kermit or it handles the request in-
- ternally for conflicting situations. When the same port is used by both DOS
- and Kermit, Kermit discards DOS output material (typically a prompt, but could
- be the dreaded Abort, Retry, Ignore message) and returns a success code to DOS,
- it returns an ascii Backspace code to DOS read requests (this is a key item to
- keep DOS complacent while Kermit communicates), and it returns reasonable
- status for modem status. The interception ceases when Kermit releases the
- port, such as when the Kermit prompt is displayed, and this lets DOS converse
- out the serial port.
-
- It is worth restating that a large number of programs bypass DOS to achieve
- higher performance. When such programs are started through the back door they
- may still require input from the real keyboard and will hang, waiting for it.
- There is nothing to do about this situation except a) don't let it happen, b)
- contact the local operator to push some keys.
-
-
- 1.18.5. Screen Sizes and the EGA Board, IBM Versions
-
- Support has been included for Enhanced Graphics Adapter (EGA) video display
- boards which can be configured for other than the standard 80 columns by 25
- lines, say 132 columns or 43 lines or other. Several boards, the Tseng Labs
- EVA (also Orchid Designer) board with the 132 column kit installed, the ATI EGA
- Wonder, the Video 7 Deluxe and VGA, and the Everex EV-659 (ega) and EV-673
- (vga), can be controlled directly by Kermit for 80/132 column changes. Other
- boards need to be placed in the desired display mode by the user. Kermit then
- adapts to the settings if the board obeys standard rules for using the Bios EGA
- memory areas in segment 40H. The Video-7 boards have been used successfully in
- all screen sizes, including 132 columns by 43 lines, with an NEC Multisync
- monitor.
-
- The IBM EGA board has several noteworthy bugs which are now standards. One is
- the cursor dots are not always on the correct scan lines when the number of
- screen lines is other than 25. Kermit-MS attempts to compensate for this at-
- tribute. Screen roll back space is fixed in size so there are fewer pages for
- more dense screens; standard screens use an internal buffer, non-standard
- screens use a buffer plus video page 1. ANSI.SYS is hard coded for 25 line dis-
- plays so all DOS i/o will eventually overwrite itself on line 25; the emulator
- does not use DOS i/o. Commercial replacements for ANSI.SYS should be able to
- use all screen lines.
-
- Screen dumps work correctly if done with Kermit commands. DOS PrintScreen may
- or may not, depending on your EGA board. Graphics dumps are not managed by Ker-
- mit.
-
- When the VT102 receives escape sequences to change between 80 and 132 column
- modes the screen is reset and the ATI EGA Wonder, or Everex EV-659 (EGA) or
- EV-673 (vga), Tseng Labs Multipak (and Orchid Designer), or Video 7 Vega or VGA
- board is asked to change modes (but only if that board is present); other dis-
- play adapters are left in their current state. Users of Tseng boards must run
- the Tseng BIGSCR /R:25 program before starting Kermit. The right margin is en-
- forced strongly so a board in 132 column mode will not display material to the
- right of column 80 if the emulator is in 80 column mode. Similarly, material
- to the right of column 80 is not preserved in the emulator if the display
- adapter is operating in 80 column mode; real VT102s keep that invisible
- material in hardware memory whereas the emulator does not.
-
- Reference is made to line 25 in the emulator; this is normally the status/mode
- line in Kermit. Real VT102's have only 24 line displays. If the display
- adapter is set for a different number of lines per screen then the 25th line is
- interpreted to mean the bottom display adapter line, such as line 43. Should
- the host access the status/mode line then the line is declared to be disabled
- (same as SET MODE OFF) so that Kermit's own status information does not over-
- write the host's when the screen is restored. Toggling a disabled mode line
- has no effect; only SET MODE ON will enable it again. The Heath-19 terminal
- has the unusual feature that disabling the mode line (ESC y 1) also clears it.
-
-
- 1.18.6. Kermit-MS/IBM Printer Control
-
- The IBM PC MS-Kermit VT102 terminal emulator also supports full transparent
- printing of 8-bit binary bytes. The escape sequence "ESC [ 5 i" turns on
- transparent printing, in which all further 8-bit characters are sent directly
- to the printer, bypassing the SET TRANSLATION INPUT filter, and are not shown
- on the screen. Escape sequence "ESC [ 4 i" turns off transparent printing and
- the escape sequence is not sent to the printer. Non-transparent printing is
- controlled by the "ESC [ ? 5 i" and "ESC [ ? 4 i" sequences. Such printing
- simply duplicates text intended for the screen, excluding escape sequences.
- The text also appears on the screen.
-
- Kermit-MS accesses the system printer through DOS calls several ways; neither
- the Bios nor the hardware are used. Files directed to the printer by the SET
- DESTINATION PRINTER command are written by opening a file with the name PRN
- (DOS's name for the system printer) and writing to it the same as to a disk
- file; DOS provides limited buffering. LOGging to device PRN works the same
- way, as can be noticed by the last line or so not being printed until the log
- file is CLOSED. DOS is used again while emulating a terminal in CONNECT mode.
- If the VT102 emulator found in the IBM PC is used for transparent or Controller
- printing, single characters are written to DOS file handle 4, the DOS standard
- print device. If the screen is echoed to the printer via the typical Control
- PrtSc key combination, or equivalent, single characters are written by the DOS
- function 05H Printer Output call. In both cases of terminal emulation the
- printer's ready status is found by the DOS IOCTL 44H call. Only the Control
- PrtSc case results in the PRN message being displayed on the status line.
- Finally, the classical IBM PC Shift PrtSc command to copy the whole screen to
- the printer is unknown to Kermit because the system Bios traps the key combina-
- tion and does not tell Kermit about it. If the Control P command is given to
- DOS before Kermit starts then again characters are echoed by the system Bios
- without Kermit's knowledge; this situation can result in lost characters.
-
- Print spoolers generally operate by being told an existing filename and then in
- the background they steal cpu cycles to read from disk and write to the
- printer. The DOS PRINT command invokes such a spooler. Although an active
- Kermit does not feed these software programs directly the spooler and Kermit
- can compete for cpu cycles and characters can be lost. If a non-DOS resident
- program intercepts characters destined for the printer device and spools them
- Kermit does not know about it and similar competion can occur.
-
- During file transfers printing is carefully sequenced to occur only when the
- local Kermit is in control of the communications line so that a small pause
- will not result in missing characters arriving at the serial port. When ter-
- minal emulation is active then printing competes for cpu time with the serial
- port routines. Generally, the serial port wins such contests if the port is
- interrupt driven (Generic Kermit is not interrupt driven, so beware). However,
- the printing itself can use enough cpu cycles to delay processing of characters
- to the screen and eventually the receive buffer of the serial port fills to the
- high water mark and an XOFF flow control character is sent to the host to
- suspend further transmissions until we send an XON. If FLOW is NONE then ex-
- pect lost characters at the serial port. Experience with ordinary IBM PC's
- through 80386 machines at very high baud rates indicates no characters are lost
- when FLOW is XON/XOFF. However, it is possible on some machines for the
- printer to have priority over the serial port, and hence to have lost charac-
- ters, especially if a Terminate Stay Resident program intercepts characters
- destined for the printer and keeps interrupts turned off too long.
- Index
-
- -F Command 3, 6
-
- .BOO Files 27
- .PIF Files 4
-
- 132 Column Mode 35
-
- 7171 24
-
- Alarm 15
- ANSI Printer Control 35
- ANSI.SYS 5, 6, 17, 18, 19,
- 26, 35
- ASCII 5
- ASSIGN 21
- Asynchronous Communication
- Server 4
- ATI EGA Wonder 35
- Attributes 11, 15
- Autoanswer Modem 13
- AUTOEXEC.BAT 4
-
- Backslash Number Format 5
- Batch Operation of Kermit-MS
- 4
- Baud Rate 2, 19
- Bell 15
- Binary Files 3, 11, 17
- BIOS 33
- Bios LAN 34
- Blind 8, 15, 34
- Block Check 15
- BOO Files 27
- Bootstrapping MS-DOS Kermit
- 27
-
- Cancelling a File Transfer
- 11, 12
- Checksum 15
- CLOSE Command 14
- Code Page 26, 29
- COM3 and COM4 18, 34
- Command Files 19
- Command Macro 21
- COMMENT Command 6
- Completion 3, 5
- Concurrent DOS 4
- CONFIG.SYS 4
- CONNECT Command 8
- Control-X,-Z 11, 12
- Count 15
- CRC 15
- CTTY 4, 18, 26
-
- Debugging 15
- DEFINE 21
- DG/1 1
- DIAL Command 21
- Display, File Transfer 15,
- 34
- DO Command 21
- Dump Screen 9, 16
-
- ECHO Command 6
- EGA Boards 35
- Eighth-Bit Prefix 17
- End Of File 3, 16
- ERRORLEVEL 4, 16
- Escape Character for CONNECT
- 8, 16
- Everex EV-659 35
- EXEPACK 1
-
- File Attributes 11
- File Warning 20
- Flow Control 16, 35
-
- Generic MS-DOS Kermit 18, 28
- German 20
- GOTO Command 23
- Graphics 9, 32
- Graphics Screen Capture 32
-
- Handicapped 15, 34
- Handshake 16
- HANGUP 8
- Heath/Zenith-19 Emulation 29
- Hebrew 25
- Help 4
-
- IBM Mainframe 24
- IBM PC Family 1
- IF Command 23
- Incomplete File Disposition
- 12, 16
- INPUT Command 16, 17, 22
- International Characters 25
-
- Japanese 2
-
- Kana, Kanji 2
- Key Redefinition 16
-
- Labels 23
- LAN 4
- Local Area Network 4, 13
- Local Echo 8, 17
- LOG Command 14
- LOG PACKETS 14
- LOG SESSION 12
- LOG TRANSACTION 14
- Long Packets 18
-
- Macro 21
- MAIL Command 14
- MASM 28
- Menu 5
- Mode Line 8, 17
- Modem 2, 6, 8, 20, 24
- MS-DOS 1
- MS-Windows 1, 4
- MSKERMIT.INI 3, 6, 16, 17,
- 19, 24
-
- National Characters 5, 8, 16
- NEC APC3 26
- NetBIOS 4, 18, 33
- Network 4
- Network security 13, 34
- Novell 33
-
- OUTPUT Command 22
-
- Parity 12, 17, 22
- PATH 2, 3, 4, 6, 7, 11
- PC-DOS 1
- POP 6
- POP Command 23
- Printer 8, 9, 12, 15, 17, 35
- ProKey 17
- Protocol Converter 24
- PUSH Command 6
-
- Rainbow 26
- RAM Disk 4, 11
- RECEIVE Command 11
- Redirected input and output
- 3
- REINPUT Command 22
- Rollback 9
-
- Screen Dump 9, 16
- Screen Rollback 9
- Script Files 22
- Security 13, 34
- SEND Command 11
- Server 12
- SET PORT NETBIOS 4, 18
- SET PORT UB-NET1 4, 18
- SET TERMINAL 19
- Speaking Device 15
- Speed 19
- Starlan 33
- STAY 3
- STAY Command 6
- STOP 6
- STOP Command 23
- SuperKey 17
-
- Tab Stops 20
- Tektronix 9, 19, 32
- Telenet 17
- Terminal Emulation 1, 8
- Terminal Settings 19
- Timeout 20
- Token Ring 33
- TopView 1
- TRANSLATION 20
- TRANSMIT 12
- Tseng Labs Multipak 35
-
- UART 1
- Ungermann Bass Net One LAN
- 34
- Ungermann-Bass 4, 34
-
- Variables, substitution 21
- VERSION 5
- Video 7 Vega 35
- VT102 Emulation 1, 19, 29
- VT52 Emulation 29
-
- Warning 20
- Wildcard 2, 11
-
- Xmodem 27
- XON/XOFF 1, 12, 16
- XSEND 11
-
- Table of Contents
-
- 1. MS-DOS KERMIT 1
-
- 1.1. System Requirements 1
- 1.2. History 1
- 1.3. Using MS-Kermit 2
- 1.4. The MS-DOS File System 2
- 1.4.1. File Specifications 2
- 1.4.2. File Formats 3
- 1.5. Program Setup and Invocation 3
- 1.6. Kermit-MS Commands 4
- 1.6.1. Program Management Commands 5
- 1.6.2. Local File Management Commands 6
- 1.6.3. COMMANDS FOR TERMINAL CONNECTION 8
- 1.6.4. COMMANDS FOR FILE TRANSFER 11
- 1.6.5. Hints for Transferring Large Files 12
- 1.6.6. Commands for Raw Uploading and Downloading 12
- 1.6.7. Kermit Server Commands 12
- 1.6.8. Commands for Controlling Remote Kermit Servers 13
- 1.6.9. The LOG and CLOSE Commands 14
- 1.6.10. The SET Command 15
- 1.6.11. The STATUS and SHOW Commands 20
- 1.7. Macros 20
- 1.8. SCRIPTS 22
- 1.9. Initialization Files Revisited 24
- 1.10. International Character Sets 25
- 1.11. MS-Kermit Features for Different Systems 26
- 1.12. Compatibility with Older Versions of MS-DOS Kermit 27
- 1.13. What's Missing 27
- 1.14. Installation of Kermit-MS 27
- 1.15. Program Organization 28
- 1.16. Bringing Kermit to New Systems 28
- 1.17. Kermit-MS VT102 Terminal Emulator Technical Summary 29
- 1.17.1. Treatment of Inbound Characters During Terminal Emulation 29
- 1.17.2. Keyboard Layout and Characters Sent 30
- 1.17.3. Responses To Characters Received By the Terminal Emulator 30
- 1.17.4. DEC VT102 Functions While in VT52 Mode 31
- 1.17.5. Heath-19 Functions While in Non-ANSI Mode 31
- 1.17.6. Heath-19 Functions While in ANSI Mode 31
- 1.17.7. Tektronix 4010/4014 Graphics Terminal Functions 32
- 1.18. IBM PC Kermit Technical Summaries 33
- 1.18.1. Kermit-MS/IBM on Local Area Networks 33
- 1.18.2. Use of Kermit-MS with External Device Drivers 34
- 1.18.3. Kermit-MS/IBM Serial Port Information 34
- 1.18.4. CTTY COMx for IBM Machines 35
- 1.18.5. Screen Sizes and the EGA Board, IBM Versions 35
- 1.18.6. Kermit-MS/IBM Printer Control 35
-
- Index 36
-
- List of Figures
-
- Figure 1-1: MS-Kermit File Transfer Display Screen 11
- Figure 1-2: MS-Kermit Script for Logging In 24
- Figure 1-3: MS-Kermit Script for More Control of a Hayes 2400 bps 24
- Modem
- Figure 1-4: MS-DOS Batch File Invoking Kermit to Send VAX Mail 24
- Figure 1-5: MS-Kermit Script for Logging into VAX and Sending Mail 25
- Figure 1-6: An Advanced MS-Kermit Initialization File 25
-
- List of Tables
-
- Table 1-1: MS-DOS Kermit Backslash Codes 5
- Table 1-2: The US ASCII Character Set (ANSI X3.4-1977) 5
- Table 1-3: RS-232-C Modem Signals 8
- Table 1-4: Kermit-MS Single-Character CONNECT Escape Commands 9
- Table 1-5: Adapters Supported by IBM PC MS-Kermit for Tektronix 10
- Emulation
- Table 1-6: Kermit-MS Verbs for the IBM PC Family 17
- Table 1-7: Kermit-MS Terminal Emulation Options 26
- Table 1-8: Kermit-MS Screen Scroll Keys 26
- Table 1-9: Kermit-MS Verbs for the DEC Rainbow 26
- Table 1-10: Response of MS-Kermit Tektronix Emulator to Received 32
- Characters
- Table 1-11: Tektronix Dot-Drawing Commands 32
- Table 1-12: MS-Kermit Tektronix Coordinate Interpretation 33
- Table 1-13: IBM PC/XT/AT Serial Port Numbers 34
-