MS-DOS Kermit 2.31 Release Notes, 1 July 1988 This file lists the differences between version 2.31 and 2.30. A WIDER RANGE OF COMMUNICATION OPTIONS: - SET PORT COMn (n = 1 to 4). Support for COM1 through COM4 on the IBM PC/AT and PS/2 series. Previously only 1 and 2 were supported. - SET PORT BIOSn (n = 1 to 4). Support for communication ports 1 to 4, using Bios-level drivers, like those supplied with certain local area networks. - SET PORT NET [] as in 2.30, for NetBios-based local area networks. - SET PORT UB-NET1 for Ungermann-Bass Net/One. COMMUNICATION IMPROVEMENTS: Echoed XOFFs are now detected and no longer cause a deadlock. Under network operation, files opened read-only now have the DOS DENY-NONE bit set so that competing tasks may access them simultaneously, such as when they are run by Pushing or RUN within Kermit. FILE ATTRIBUTES: Kermit File Attributes packets are now exchanged with other Kermit programs that know about them. This lets MS-DOS Kermit know the size of incoming files in advance, lets it reject them if there's not enough disk space, and lets MS-Kermit display the percent done for incoming as well as outbound files. Attribute packets also allow arriving files be stored with their original creation dates and times. This mechanism has been tested successfully with Kermit-370 on IBM mainframes, PDP-11 Kermit, and with MS-DOS Kermit itself. A new MAIL command, that lets MS-Kermit send a file to a Kermit server with instructions (in an Attribute packet) to deliver it as mail to a specified user (as yet, no Kermit servers can do this). USER AND SYSTEM INTERFACE: A new HELP command was added (just a concise screenful of text, nothing fancy). CD is now a synomym for CWD. DO is no longer required to invoke a macro; a macro name can be typed by itself... with parameters! (see below) Improved operation under MS-Windows (screen scrolling via PgUp/PgDn now works). Error messages have been redesigned to be more helpful, and the command parser is more understanding. There is greater consistency among the commands about what forms they will accept numbers in, etc. The Kermit command line interface now permits full 8-bit character inputs, with only NUL, ESC, DEL/BS, ^W (delete word), ^U (delete line), and ^C being special. This is to enhance support for various languages and keyboards. Long Kermit commands (e.g. in TAKE files) can now be continued onto subsequent lines by hyphenating them. WARNING: This means that if you had lines in your old TAKE or initialation files that ended with dash (like "set key \330 -"), you should change them by adding a comment or changing the dash to \45, as in "set key \330 - ; keypad dash", or "set key \330 \45". MS-DOS Kermit can now accept commands from DOS files via DOS redirection (as in "kermit < todo.lst > todo.log"), or from other DOS processes via pipes (as in "sort < todo.lst | kermit"). Kermit's return status code is now user-settable, via SET ERRORLEVEL. Also, automatic ERRORLEVEL setting by the SEND command was broken in 2.30, now fixed. There is now a transaction log, for recording the progress of file transfers (LOG TRANSACTIONS). This is in addition to the session and packet logs supported in 2.30. There are now many new SHOW commands for displaying SET parameters by category: SHOW COMMUNICATIONS, SHOW TERMINAL, SHOW PROTOCOL, etc. And macro definitions can now be shown individually. A file TRANSACTION log is available to record the filenames, times and dates, sizes, status, etc of files sent or received. The CLOSE command now requires the kind of log file to close, such as SESSION, PACKET, TRANSACTION, or all. TERMINAL EMULATION: The Tektronix 4010 emulator has been improved and made more like a real Tek 4010 terminal. The user may allow Kermit to select the active graphics display adapter (default) or may override that choice via the command SET TERMINAL GRAPHICS Auto-sensing | CGA | EGA | VGA | HERCULES | ATT ATT includes Olivetti M24/M28/DEC VAXmate/Toshiba T3100/AT&T 6300/6300+. VGA invokes a 640x480 dot color display but the bottom 73 lines are not saved due to display adapter memory limits. New Tektronix text overwrites old material without clearing a character cell. Echo supression, typically for GIN mode, obeys Tektronix "bypass mode" rules. The GIN mode cursor position is remembered. Dots can be given individual colors via the ANSI (and Kermit) standard escape sequence ESC [ 3x ; 4x m where x is 0-7 to represent the sum of colors, as in SET TERMINAL COLOR. VT102 screen scrolling has been speeded up the case where the top and bottom display lines do not scroll (scrolling regions). A new \Kholdscrn verb has been added (VT100 "hold screen"). The VT102 emulator now supports the escape sequence pair ESC [ 1 2 h/l to let the host control local echoing. Ctrl-@ now sends ASCII NUL (0) by default. VT52 printer-control escape sequences ESC W and ESC X now work. MS-Kermit's reply to the ESC Z "what are you?" query has been changed from "ESC [ ? 6 ; 2 c" to "ESC [ ? 6 c", which is what a VT102 actually reports. Automatic 132 column support has been expanded to include the EGA/VGA boards ATI EVA-Wonder, Everex EV-659 (ega) and -673 (vga), Video 7 VEGA Deluxe (ega) and VGA (vga), and Tseng Labs EVA w/132 column kit. SERVER IMPROVEMENTS: The SERVER command now accepts an optional time limit, to make the server shut down after a certain amount of elapsed time or at a given time of day. The SPACE command no longer requires presence of CHKDSK.COM, and therefore no longer hangs the MS-Kermit server if it finds something wrong. SCRIPT LANGUAGE: Kermit's script language has been significantly expanded. It has become a regular little programming language, similar to what's found in recent releases of Crosstalk, Smartcom, etc. Here are some examples: - Substitutable parameters in macro invocations, similar to DOS Batch. - Variables can be defined, referenced, and undefined. - GOTO and labels for transfer of control within a TAKE file or macro - IF statements for testing conditions including SUCCESS or FAILURE of the preceding command (like SEND, GET, RECEIVE, INPUT, etc), or the time of day, or whether a file exists, or whether a variable is defined, etc. - A loop counting mechanism. - A way to reexamine text that has already been INPUT. - A way to test for the modem signals CD, CTS, and DSR. - Limited interaction with user ("Type any key when ready...") OTHER CHANGES: Some internal forward references were juggled so that MS-Kermit 2.31 can be assembled with Microsoft MASM 5.1 (2.30 could not be...). However, the increased size of some files means that one needs MASM version 4 or later to build the sources. Date: Sun, 2 Oct 88 14:58 MDT From: Subject: File MST23A.UPD (change notes for 2.31/A beta 2 Oct 1988) MS Kermit beta test 2.31/A 2 October 1988 Corrections and additions following 2.31 1 July 1988 and mid-August maintenance release. These apply to all MS DOS machines unless noted otherwise. New to 2.31/A since maintenance release (with affected source files): - Accept any character, except the start of packet character, in the End of Line position of a packet. (msscom.asm) - Account for file destinations of screen and printer when checking for sufficient disk space while receiving files. Correct bug of using incorrect disk when checking space available. (mssfil.asm) - Show current Kermit Connect mode escape character in main HELP display rather than just the default Control-]. (mssker.asm) - Add copyright notice display, to save repeated explanations that Kermit is not in the Public Domain, yet it may be distributed at no cost. (mssker.asm) - Correct file size test for attribute packet, use block device identification for bridged or joined drives. (mssrcv.asm) - Display messages in ACK packets, permit interspersed 'M' message packets. Change formatted file transfer screen line "Last warning" to read "Last message". (mssfil.asm, mssrcv.asm, msssen.asm) - Let SET EOF {Ctrl-Z | Noctrl-Z} end of file test apply to TRANSMIT command. SET EOF Ctrl-Z now ends the file when a Control-Z is read. (mssscp.asm) - Correct bug requiring spaces after formal labels and bug clearing VT102 Connect mode tab stops when CLEAR command is issued. (mssscp.asm) - Allow TRANSMIT command prompt be a literal ascii character or a \number. (mssscp.asm) - Allow dollar signs in received error messages. (msssen.asm) - Correct long standing problem of local 8-bit quoting requirment not following current operating conditions. (msssen.asm, mssset.asm, mssdef.h) - Add REMOTE LOGIN {username {password {account}}} command. All three items may contain embedded spaces and Kermit non-editing characters. Username may be on the same line as REMOTE LOGIN; password and account are always solicited via prompts. This command applies only to a remote Kermit server and not to a remote operating system; an MS Kermit server does not understand the command. (mssser.asm) - Allow password for REMOTE CWD command to contain embedded spaces and other Kermit non-editing characters. (mssser.asm) - Add one more presence test for AT&T/Olivetti machines in Tektronix graphics mode for IBM-PC version of MS Kermit. (msgibm.asm) - Small internal changes to serial port management details. (msxibm.asm) - Revise printing strategy within Connect mode to buffer 132 characters and to send XOFF/XON to the host while the buffer is written to DOS. This helps prevent serial port overruns noted with slow PCs at high baud rates when the printer is attached to a network or similar. (msyibm.asm, mszibm.asm) - Absorb without action the escape sequences ESC * char, ESC + char, and ESC in the VT102 emulator. (mszibm.asm) - Verify that MS Kermit operates across DECnet using the NetBios emulator supplied with DECnet-DOS 2.0 (aka PSCA). The portion of my DECnet-DOS startup file MSNET.INI to use NetBios (with a Micom NI5010-1 or a Digital DEPCA Ethernet board in this example) reads: start netbios schpc dll /irq:5 dll802 /p:-1 /m:-1 /b:-1 /s:-1 dnpethpc \netrun netbios /msn:-1 /rem:-1 /nbs:-1 /cmd:-1 /lan:0 /nam:-1 /m:e /i2a:-1 Start the network via DOS command NET START NETBIOS. For reasons best known to Digital the local machine name is not inserted in the NetBios name table. Adding the Redirector via the line \netrun redir /* does insert the local machine name but prevents Kermit-Kermit communications if both sides have this line; I don't know why. Digital has problems. ----------------------- Changes to MS Kermit 2.31 (IBM-PC) between 1 July and mid-August versions: - A maintenance release to correct several problems. - Ungermann Bass Net One support had two fatal bugs, now fixed. - The Bios in some machines objected to the stray interrupt generated when Kermit disconnected from the serial port. Fixed. Also solves problem of an earlier task, such as Smartcom II or PC-Talk III, forgetting to replace the serial port interrupt it borrowed and causing a crash during Kermit operations. - A serial port with COM2 addressing (port 02E8H, IRQ 3) placed in the COM1 Bios data area, such as happens with some PC jrs, could not be found. Corrected to switch to COM2 addressing if the Bios data area for COM1 is 02E8H. COM1 is normally port 03F8H and IRQ 4. - The main Kermit command line parser sometimes gave a spurious message "?more parameters are needed" when query mark help was used. - A bug in finding labels in scripts, as in the commands GOTO end :end1 commands :end could let label ":end1" be jumped to by mistake if ":end1" appeared first. A note on the label in a GOTO phrase: the label can be a variable name, which is immediately replaced by the definition string. The target label, however, is not expanded by presence of variable names. Thus, GOTO lab\%b is replaced by GOTO lab and can be used to select labels based on earlier text held in a variable. - The test for available disk space when receiving files with attributes packets inflated the disk space rather than the file size. Revised to proper form: inflate file size by 17/16, decline file if not enough disk space. Additionally, the disk is sought from DOS internal information, rather than from the filename string, so that bridged or joined disks can be used effectively in the space computation (uses the fundamental device rather than a pseudo device letter created by utilities). Thanks to Henrik Levkowetz for this as well as the Ungermann Bass material. - Two commands are present for scripts: ASK This displays the indicated prompt and reads a line of text from the key board (or pipe if redirected) and stores it in the selected macro or variable. A variable (form of \%character) is the more useful of the two. The line is echoed and may be edited the same way as a Kermit command line. If a comma is entered it is stored in numerical form, \{44}, so that it is not mistaken for a command separator but is still a comma when the string is sent or used in other ways. IF [NOT] EQUAL word1 word2 command The two words are compared for the same spelling, and optionally the same case if SET INPUT CASE is set to OBSERVE, and if they match the following Kermit command is executed. Modifier NOT may be used to invert the sense of the test. Substitution variables may be used in this IF command, but if the variable's definition is more than one word it may confuse the testing; i.e., Kermit-MS> ask \%a Enter your name: Enter your name: my name is Chris Kermit-MS> if equal \%a Chris goto welcome is immediately expanded to Kermit-MS> if equal my name is Chris Chris goto welcome and fails because the words being compared are "my" and "name", plus the command becomes "is Chris Chris goto welcome". If either word is stated as @filespec then the first word of the file is read and used as the test word; this is useful for some username/password automation in scripts. If the file starts with @filespec the process nests to the final file. [End of MST23A.UPD]